From d017b1e306186252ed52ab84459d05efc4eb9fd4 Mon Sep 17 00:00:00 2001 From: Per K Date: Tue, 29 Aug 2023 11:52:45 +0200 Subject: [PATCH] Per default enable RobustThroughputEstimator MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Experiments has not showed significant metric changes. However, simulations has showed that RobustThroughputEstimator better follow the actually receive rate better. Especially during bursts of sent packets. Code is also simpler. Bug: webrtc:13402 chromium:1411666 Change-Id: I38c309f74e8e1322602196354545b3a465866263 Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/318040 Reviewed-by: Björn Terelius Commit-Queue: Per Kjellander Cr-Commit-Position: refs/heads/main@{#40653} --- .../acknowledged_bitrate_estimator_interface.h | 4 +++- .../goog_cc/robust_throughput_estimator_unittest.cc | 13 +++++++++++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator_interface.h b/modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator_interface.h index 515af1efc9..6184cdc114 100644 --- a/modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator_interface.h +++ b/modules/congestion_controller/goog_cc/acknowledged_bitrate_estimator_interface.h @@ -33,7 +33,9 @@ struct RobustThroughputEstimatorSettings { explicit RobustThroughputEstimatorSettings( const FieldTrialsView* key_value_config); - bool enabled = false; // Set to true to use RobustThroughputEstimator. + // Set `enabled` to true to use the RobustThroughputEstimator, false to use + // the AcknowledgedBitrateEstimator. + bool enabled = true; // The estimator keeps the smallest window containing at least // `window_packets` and at least the packets received during the last diff --git a/modules/congestion_controller/goog_cc/robust_throughput_estimator_unittest.cc b/modules/congestion_controller/goog_cc/robust_throughput_estimator_unittest.cc index 9a013aa6d0..f41ee7f3d6 100644 --- a/modules/congestion_controller/goog_cc/robust_throughput_estimator_unittest.cc +++ b/modules/congestion_controller/goog_cc/robust_throughput_estimator_unittest.cc @@ -63,6 +63,19 @@ class FeedbackGenerator { uint16_t sequence_number_ = 100; }; +TEST(RobustThroughputEstimatorTest, DefaultEnabled) { + RobustThroughputEstimatorSettings settings = + CreateRobustThroughputEstimatorSettings(""); + EXPECT_TRUE(settings.enabled); +} + +TEST(RobustThroughputEstimatorTest, CanDisable) { + RobustThroughputEstimatorSettings settings = + CreateRobustThroughputEstimatorSettings( + "WebRTC-Bwe-RobustThroughputEstimatorSettings/enabled:false/"); + EXPECT_FALSE(settings.enabled); +} + TEST(RobustThroughputEstimatorTest, InitialEstimate) { FeedbackGenerator feedback_generator; RobustThroughputEstimator throughput_estimator(