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