Chromium Code Reviews| Index: webrtc/call/congestion_controller.cc |
| diff --git a/webrtc/call/congestion_controller.cc b/webrtc/call/congestion_controller.cc |
| index 52704154bbdc9576da90798d87335af9bfb91d9d..b512a786a828691f9343471dd7d0286fb66d0cce 100644 |
| --- a/webrtc/call/congestion_controller.cc |
| +++ b/webrtc/call/congestion_controller.cc |
| @@ -282,16 +282,22 @@ void CongestionController::SignalNetworkState(NetworkState state) { |
| void CongestionController::OnNetworkChanged(uint32_t target_bitrate_bps, |
| uint8_t fraction_loss, |
| int64_t rtt) { |
| - bitrate_allocator_->OnNetworkChanged(target_bitrate_bps, fraction_loss, rtt); |
| + uint32_t allocated_bitrate_bps = bitrate_allocator_->OnNetworkChanged( |
| + target_bitrate_bps, fraction_loss, rtt); |
| int pad_up_to_bitrate_bps = 0; |
| { |
| rtc::CritScope lock(&encoder_crit_); |
| for (const auto& encoder : encoders_) |
| pad_up_to_bitrate_bps += encoder->GetPaddingNeededBps(); |
| } |
| + // Allocated bitrate might be higher than bitrate estimate if enforcing min |
| + // bitrate, or lower if estimate is higher than the sum of max bitrates, so |
| + // set the pacer bitrate to the maxaimum of the two. |
|
stefan-webrtc
2015/11/05 11:10:42
maximum
sprang_webrtc
2015/11/05 11:35:39
Done.
|
| + uint32_t pacer_bitrate_bps = |
| + std::max(target_bitrate_bps, allocated_bitrate_bps); |
| pacer_->UpdateBitrate( |
| - target_bitrate_bps / 1000, |
| - PacedSender::kDefaultPaceMultiplier * target_bitrate_bps / 1000, |
| + pacer_bitrate_bps / 1000, |
| + PacedSender::kDefaultPaceMultiplier * pacer_bitrate_bps / 1000, |
| pad_up_to_bitrate_bps / 1000); |
| } |