Enable WebRTC-Bwe-MaxRttLimit by default.
Some of the field trial default values are changed as well.
Now available bitrate estimation will be decreasing when RTT is more than 3 seconds.
Unless different parameters for the field trial are specified.
Bug: None
Change-Id: Icd1923fc2e2e7766a7f645016c5432a52537145f
Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/158840
Reviewed-by: Sebastian Jansson <srte@webrtc.org>
Reviewed-by: Erik Språng <sprang@webrtc.org>
Reviewed-by: Konrad Hofbauer <hofbauer@webrtc.org>
Reviewed-by: Christoffer Rodbro <crodbro@webrtc.org>
Commit-Queue: Nikita Zetilov <zetilovn@google.com>
Cr-Commit-Position: refs/heads/master@{#29823}
diff --git a/modules/congestion_controller/goog_cc/goog_cc_network_control_unittest.cc b/modules/congestion_controller/goog_cc/goog_cc_network_control_unittest.cc
index d74daec..885bdab 100644
--- a/modules/congestion_controller/goog_cc/goog_cc_network_control_unittest.cc
+++ b/modules/congestion_controller/goog_cc/goog_cc_network_control_unittest.cc
@@ -378,41 +378,6 @@
EXPECT_NEAR(client->padding_rate().kbps(), client->target_rate().kbps(), 1);
}
-TEST_F(GoogCcNetworkControllerTest,
- NoCongestionWindowPushbackWithoutReceiveTraffic) {
- ScopedFieldTrials trial(
- "WebRTC-CongestionWindow/QueueSize:800,MinBitrate:30000/"
- "WebRTC-Bwe-CongestionWindowDownlinkDelay/Enabled/");
- Scenario s("googcc_unit/cwnd_no_downlink", false);
- NetworkSimulationConfig net_conf;
- net_conf.bandwidth = DataRate::kbps(1000);
- net_conf.delay = TimeDelta::ms(100);
- auto send_net = s.CreateSimulationNode(net_conf);
- auto ret_net = s.CreateMutableSimulationNode(net_conf);
-
- auto* client = s.CreateClient("sender", CallClientConfig());
- auto* route = s.CreateRoutes(client, {send_net},
- s.CreateClient("return", CallClientConfig()),
- {ret_net->node()});
-
- s.CreateVideoStream(route->forward(), VideoStreamConfig());
- // A return video stream ensures we get steady traffic stream,
- // so we can better differentiate between send being down and return
- // being down.
- s.CreateVideoStream(route->reverse(), VideoStreamConfig());
-
- // Wait to stabilize the bandwidth estimate.
- s.RunFor(TimeDelta::seconds(10));
- // Disabling the return triggers the data window expansion logic
- // which will stop the congestion window from activating.
- ret_net->PauseTransmissionUntil(s.Now() + TimeDelta::seconds(10));
- s.RunFor(TimeDelta::seconds(5));
-
- // Expect that we never lost send speed because we received no packets.
- // 500kbps is enough to demonstrate that congestion window isn't activated.
- EXPECT_GE(client->target_rate().kbps(), 500);
-}
-
TEST_F(GoogCcNetworkControllerTest, CongestionWindowPushBackOnSendDelaySpike) {
ScopedFieldTrials trial(
"WebRTC-CongestionWindow/QueueSize:800,MinBitrate:30000/"
diff --git a/modules/congestion_controller/goog_cc/send_side_bandwidth_estimation.cc b/modules/congestion_controller/goog_cc/send_side_bandwidth_estimation.cc
index e215f7f..c16c83e 100644
--- a/modules/congestion_controller/goog_cc/send_side_bandwidth_estimation.cc
+++ b/modules/congestion_controller/goog_cc/send_side_bandwidth_estimation.cc
@@ -153,9 +153,9 @@
}
RttBasedBackoff::RttBasedBackoff()
- : rtt_limit_("limit", TimeDelta::PlusInfinity()),
- drop_fraction_("fraction", 0.5),
- drop_interval_("interval", TimeDelta::ms(300)),
+ : rtt_limit_("limit", TimeDelta::seconds(3)),
+ drop_fraction_("fraction", 0.8),
+ drop_interval_("interval", TimeDelta::seconds(1)),
bandwidth_floor_("floor", DataRate::kbps(5)),
// By initializing this to plus infinity, we make sure that we never
// trigger rtt backoff unless packet feedback is enabled.
diff --git a/video/video_send_stream_tests.cc b/video/video_send_stream_tests.cc
index 28f6f33..0d51cbd 100644
--- a/video/video_send_stream_tests.cc
+++ b/video/video_send_stream_tests.cc
@@ -1175,7 +1175,7 @@
}
void ModifySenderBitrateConfig(
BitrateConstraints* bitrate_config) override {
- const int kMinBitrateBps = 30000;
+ const int kMinBitrateBps = 300000;
bitrate_config->min_bitrate_bps = kMinBitrateBps;
}
@@ -3500,6 +3500,13 @@
const uint8_t num_temporal_layers_;
const uint8_t num_spatial_layers_;
const bool l_field_;
+
+ private:
+ void ModifySenderBitrateConfig(
+ BitrateConstraints* bitrate_config) override {
+ const int kMinBitrateBps = 300000;
+ bitrate_config->min_bitrate_bps = kMinBitrateBps;
+ }
} test(num_temporal_layers, num_spatial_layers);
RunBaseTest(&test);