Index: webrtc/modules/bitrate_controller/send_side_bandwidth_estimation.cc |
diff --git a/webrtc/modules/bitrate_controller/send_side_bandwidth_estimation.cc b/webrtc/modules/bitrate_controller/send_side_bandwidth_estimation.cc |
index 258c4d94def99192a572d614a9350e5115299f7a..68912907e6f6faa0a081597eb53c5fd8da444a8e 100644 |
--- a/webrtc/modules/bitrate_controller/send_side_bandwidth_estimation.cc |
+++ b/webrtc/modules/bitrate_controller/send_side_bandwidth_estimation.cc |
@@ -55,6 +55,7 @@ SendSideBandwidthEstimation::SendSideBandwidthEstimation() |
last_fraction_loss_(0), |
last_round_trip_time_ms_(0), |
bwe_incoming_(0), |
+ delay_based_bitrate_bps_(0), |
time_last_decrease_ms_(0), |
first_report_time_ms_(-1), |
initially_lost_packets_(0), |
@@ -104,6 +105,13 @@ void SendSideBandwidthEstimation::UpdateReceiverEstimate( |
bitrate_ = CapBitrateToThresholds(now_ms, bitrate_); |
} |
+void SendSideBandwidthEstimation::UpdateDelayBasedEstimate( |
+ int64_t now_ms, |
+ uint32_t bitrate_bps) { |
+ delay_based_bitrate_bps_ = bitrate_bps; |
+ bitrate_ = CapBitrateToThresholds(now_ms, bitrate_); |
+} |
+ |
void SendSideBandwidthEstimation::UpdateReceiverBlock(uint8_t fraction_loss, |
int64_t rtt, |
int number_of_packets, |
@@ -268,6 +276,9 @@ uint32_t SendSideBandwidthEstimation::CapBitrateToThresholds( |
if (bwe_incoming_ > 0 && bitrate > bwe_incoming_) { |
bitrate = bwe_incoming_; |
} |
+ if (delay_based_bitrate_bps_ > 0 && bitrate > delay_based_bitrate_bps_) { |
+ bitrate = delay_based_bitrate_bps_; |
+ } |
if (bitrate > max_bitrate_configured_) { |
bitrate = max_bitrate_configured_; |
} |