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; |
{ |