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(¶ms_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(¶ms_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(¶ms_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(¶ms_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; |
{ |