Chromium Code Reviews| 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 148d2374dbcfbf0ec066b0d1602595810a75b542..d121a72dfe003257fbc1adb3830a866eedc5c358 100644 |
| --- a/webrtc/modules/video_coding/video_sender.cc |
| +++ b/webrtc/modules/video_coding/video_sender.cc |
| @@ -195,7 +195,8 @@ int VideoSender::FrameRate(unsigned int* framerate) const { |
| EncoderParameters VideoSender::UpdateEncoderParameters( |
| const EncoderParameters& params, |
| VideoBitrateAllocator* bitrate_allocator, |
| - uint32_t target_bitrate_bps) { |
| + uint32_t target_bitrate_bps, |
| + VideoBitrateAllocationObserver* bitrate_updated_callback) { |
| uint32_t video_target_rate_bps = _mediaOpt.SetTargetRates( |
| target_bitrate_bps, params.loss_rate, params.rtt); |
| uint32_t input_frame_rate = _mediaOpt.InputFrameRate(); |
| @@ -211,30 +212,34 @@ EncoderParameters VideoSender::UpdateEncoderParameters( |
| bitrate_allocation = default_allocator.GetAllocation(video_target_rate_bps, |
| input_frame_rate); |
| } |
| - |
| + if (bitrate_updated_callback) |
| + bitrate_updated_callback->OnBitrateAllocationUpdated(bitrate_allocation); |
|
stefan-webrtc
2016/12/01 08:42:20
You are holding params_crit_ when calling out here
sprang_webrtc
2016/12/01 10:47:58
I changed the one usage that made the crit useful
|
| EncoderParameters new_encoder_params = {bitrate_allocation, params.loss_rate, |
| params.rtt, input_frame_rate}; |
| return new_encoder_params; |
| } |
| void VideoSender::UpdateChannelParemeters( |
| - VideoBitrateAllocator* bitrate_allocator) { |
| + VideoBitrateAllocator* bitrate_allocator, |
| + VideoBitrateAllocationObserver* bitrate_updated_callback) { |
| rtc::CritScope cs(¶ms_crit_); |
| - encoder_params_ = |
| - UpdateEncoderParameters(encoder_params_, bitrate_allocator, |
| - encoder_params_.target_bitrate.get_sum_bps()); |
| + encoder_params_ = UpdateEncoderParameters( |
| + encoder_params_, bitrate_allocator, |
| + encoder_params_.target_bitrate.get_sum_bps(), bitrate_updated_callback); |
| } |
| int32_t VideoSender::SetChannelParameters( |
| uint32_t target_bitrate_bps, |
| uint8_t lossRate, |
| int64_t rtt, |
| - VideoBitrateAllocator* bitrate_allocator) { |
| + VideoBitrateAllocator* bitrate_allocator, |
| + VideoBitrateAllocationObserver* bitrate_updated_callback) { |
| EncoderParameters encoder_params; |
| encoder_params.loss_rate = lossRate; |
| encoder_params.rtt = rtt; |
| - encoder_params = UpdateEncoderParameters(encoder_params, bitrate_allocator, |
| - target_bitrate_bps); |
| + encoder_params = |
| + UpdateEncoderParameters(encoder_params, bitrate_allocator, |
| + target_bitrate_bps, bitrate_updated_callback); |
| bool encoder_has_internal_source; |
| { |