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}
This commit is contained in:

committed by
Commit Bot

parent
56d945233d
commit
8ae70f6a30
@ -378,41 +378,6 @@ TEST_F(GoogCcNetworkControllerTest,
|
|||||||
EXPECT_NEAR(client->padding_rate().kbps(), client->target_rate().kbps(), 1);
|
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) {
|
TEST_F(GoogCcNetworkControllerTest, CongestionWindowPushBackOnSendDelaySpike) {
|
||||||
ScopedFieldTrials trial(
|
ScopedFieldTrials trial(
|
||||||
"WebRTC-CongestionWindow/QueueSize:800,MinBitrate:30000/"
|
"WebRTC-CongestionWindow/QueueSize:800,MinBitrate:30000/"
|
||||||
|
@ -153,9 +153,9 @@ DataRate LinkCapacityTracker::estimate() const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
RttBasedBackoff::RttBasedBackoff()
|
RttBasedBackoff::RttBasedBackoff()
|
||||||
: rtt_limit_("limit", TimeDelta::PlusInfinity()),
|
: rtt_limit_("limit", TimeDelta::seconds(3)),
|
||||||
drop_fraction_("fraction", 0.5),
|
drop_fraction_("fraction", 0.8),
|
||||||
drop_interval_("interval", TimeDelta::ms(300)),
|
drop_interval_("interval", TimeDelta::seconds(1)),
|
||||||
bandwidth_floor_("floor", DataRate::kbps(5)),
|
bandwidth_floor_("floor", DataRate::kbps(5)),
|
||||||
// By initializing this to plus infinity, we make sure that we never
|
// By initializing this to plus infinity, we make sure that we never
|
||||||
// trigger rtt backoff unless packet feedback is enabled.
|
// trigger rtt backoff unless packet feedback is enabled.
|
||||||
|
@ -1175,7 +1175,7 @@ void VideoSendStreamTest::TestPacketFragmentationSize(VideoFormat format,
|
|||||||
}
|
}
|
||||||
void ModifySenderBitrateConfig(
|
void ModifySenderBitrateConfig(
|
||||||
BitrateConstraints* bitrate_config) override {
|
BitrateConstraints* bitrate_config) override {
|
||||||
const int kMinBitrateBps = 30000;
|
const int kMinBitrateBps = 300000;
|
||||||
bitrate_config->min_bitrate_bps = kMinBitrateBps;
|
bitrate_config->min_bitrate_bps = kMinBitrateBps;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3500,6 +3500,13 @@ void VideoSendStreamTest::TestVp9NonFlexMode(uint8_t num_temporal_layers,
|
|||||||
const uint8_t num_temporal_layers_;
|
const uint8_t num_temporal_layers_;
|
||||||
const uint8_t num_spatial_layers_;
|
const uint8_t num_spatial_layers_;
|
||||||
const bool l_field_;
|
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);
|
} test(num_temporal_layers, num_spatial_layers);
|
||||||
|
|
||||||
RunBaseTest(&test);
|
RunBaseTest(&test);
|
||||||
|
Reference in New Issue
Block a user