Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1195)

Unified Diff: webrtc/modules/video_coding/video_sender.cc

Issue 2531383002: Wire up BitrateAllocation to be sent as RTCP TargetBitrate (Closed)
Patch Set: Undo crit removal Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webrtc/modules/video_coding/video_sender.cc
diff --git a/webrtc/modules/video_coding/video_sender.cc b/webrtc/modules/video_coding/video_sender.cc
index d754c56550cfc14abc5b554f95041224a3eeff52..536e33ad9ae0d3a18eb41481725b12b361fcbccb 100644
--- a/webrtc/modules/video_coding/video_sender.cc
+++ b/webrtc/modules/video_coding/video_sender.cc
@@ -63,7 +63,6 @@ void VideoSender::Process() {
send_stats_callback_->SendStatistics(bitRate, frameRate);
}
}
-
{
rtc::CritScope cs(&params_crit_);
// Force an encoder parameters update, so that incoming frame rate is
@@ -122,6 +121,7 @@ int32_t VideoSender::RegisterSendCodec(const VideoCodec* sendCodec,
} else if (frame_dropper_enabled_) {
_mediaOpt.EnableFrameDropper(true);
}
+
{
rtc::CritScope cs(&params_crit_);
next_frame_types_.clear();
@@ -212,30 +212,41 @@ EncoderParameters VideoSender::UpdateEncoderParameters(
bitrate_allocation = default_allocator.GetAllocation(video_target_rate_bps,
input_frame_rate);
}
-
EncoderParameters new_encoder_params = {bitrate_allocation, params.loss_rate,
params.rtt, input_frame_rate};
return new_encoder_params;
}
void VideoSender::UpdateChannelParemeters(
- VideoBitrateAllocator* bitrate_allocator) {
- rtc::CritScope cs(&params_crit_);
- encoder_params_ =
- UpdateEncoderParameters(encoder_params_, bitrate_allocator,
- encoder_params_.target_bitrate.get_sum_bps());
+ VideoBitrateAllocator* bitrate_allocator,
+ VideoBitrateAllocationObserver* bitrate_updated_callback) {
+ BitrateAllocation target_rate;
+ {
+ rtc::CritScope cs(&params_crit_);
+ encoder_params_ =
+ UpdateEncoderParameters(encoder_params_, bitrate_allocator,
+ encoder_params_.target_bitrate.get_sum_bps());
+ target_rate = encoder_params_.target_bitrate;
+ }
+ if (bitrate_updated_callback)
+ bitrate_updated_callback->OnBitrateAllocationUpdated(target_rate);
}
int32_t VideoSender::SetChannelParameters(
uint32_t target_bitrate_bps,
- uint8_t lossRate,
+ uint8_t loss_rate,
int64_t rtt,
- VideoBitrateAllocator* bitrate_allocator) {
+ VideoBitrateAllocator* bitrate_allocator,
+ VideoBitrateAllocationObserver* bitrate_updated_callback) {
EncoderParameters encoder_params;
- encoder_params.loss_rate = lossRate;
+ encoder_params.loss_rate = loss_rate;
encoder_params.rtt = rtt;
encoder_params = UpdateEncoderParameters(encoder_params, bitrate_allocator,
target_bitrate_bps);
+ if (bitrate_updated_callback) {
+ bitrate_updated_callback->OnBitrateAllocationUpdated(
+ encoder_params.target_bitrate);
+ }
bool encoder_has_internal_source;
{
« no previous file with comments | « webrtc/modules/video_coding/video_coding_impl.cc ('k') | webrtc/modules/video_coding/video_sender_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698