Per default enable WebRTC-Bwe-EstimateBoundedIncrease/c_upper:true This ensure upper link capacity estimate upper limit an increase in delay based estimate, but the delay based estimate is not decreased if link capacity estimate decrease. Bug: webrtc:10498, b/300868877 Change-Id: I87e76e2a869e6f721cc8fe9d422e0194371d4e45 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/327801 Reviewed-by: Björn Terelius <terelius@webrtc.org> Commit-Queue: Per Kjellander <perkj@webrtc.org> Cr-Commit-Position: refs/heads/main@{#41196}
diff --git a/modules/remote_bitrate_estimator/aimd_rate_control.h b/modules/remote_bitrate_estimator/aimd_rate_control.h index 97fa490..c9edc4f 100644 --- a/modules/remote_bitrate_estimator/aimd_rate_control.h +++ b/modules/remote_bitrate_estimator/aimd_rate_control.h
@@ -108,7 +108,7 @@ // If "Disabled", estimated link capacity is not used as upper bound. FieldTrialFlag disable_estimate_bounded_increase_{"Disabled"}; FieldTrialParameter<bool> use_current_estimate_as_min_upper_bound_{"c_upper", - false}; + true}; absl::optional<DataRate> last_decrease_; }; } // namespace webrtc
diff --git a/modules/remote_bitrate_estimator/aimd_rate_control_unittest.cc b/modules/remote_bitrate_estimator/aimd_rate_control_unittest.cc index f26afe9..401e87e 100644 --- a/modules/remote_bitrate_estimator/aimd_rate_control_unittest.cc +++ b/modules/remote_bitrate_estimator/aimd_rate_control_unittest.cc
@@ -208,6 +208,7 @@ TEST(AimdRateControlTest, SetEstimateUpperLimitedByNetworkEstimate) { AimdRateControl aimd_rate_control(ExplicitKeyValueConfig(""), /*send_side=*/true); + aimd_rate_control.SetEstimate(DataRate::BitsPerSec(300'000), kInitialTime); NetworkStateEstimate network_estimate; network_estimate.link_capacity_upper = DataRate::BitsPerSec(400'000); aimd_rate_control.SetNetworkStateEstimate(network_estimate); @@ -217,11 +218,9 @@ } TEST(AimdRateControlTest, - SetEstimateUpperLimitedByCurrentBitrateIfNetworkEstimateIsLow) { - AimdRateControl aimd_rate_control( - ExplicitKeyValueConfig( - "WebRTC-Bwe-EstimateBoundedIncrease/c_upper:true/"), - /*send_side=*/true); + SetEstimateDefaultUpperLimitedByCurrentBitrateIfNetworkEstimateIsLow) { + AimdRateControl aimd_rate_control(ExplicitKeyValueConfig(""), + /*send_side=*/true); aimd_rate_control.SetEstimate(DataRate::BitsPerSec(500'000), kInitialTime); ASSERT_EQ(aimd_rate_control.LatestEstimate(), DataRate::BitsPerSec(500'000)); @@ -233,9 +232,12 @@ } TEST(AimdRateControlTest, - SetEstimateDefaultNotUpperLimitedByCurrentBitrateIfNetworkEstimateIsLow) { - AimdRateControl aimd_rate_control(ExplicitKeyValueConfig(""), - /*send_side=*/true); + SetEstimateNotUpperLimitedByCurrentBitrateIfNetworkEstimateIsLowIf) { + AimdRateControl aimd_rate_control( + ExplicitKeyValueConfig( + "WebRTC-Bwe-EstimateBoundedIncrease/c_upper:false/"), + /*send_side=*/true); + aimd_rate_control.SetEstimate(DataRate::BitsPerSec(500'000), kInitialTime); ASSERT_EQ(aimd_rate_control.LatestEstimate(), DataRate::BitsPerSec(500'000));