From 568c9e72d149662dab92a671bd3139e4ae7f167a Mon Sep 17 00:00:00 2001 From: terelius Date: Tue, 24 Jan 2017 02:03:31 -0800 Subject: [PATCH] New simulators to test BWE at low bitrates (15-50kbps range). I've tested both the old and the new delay estimators and they all work ok at 15 kbps. The new estimators are a bit slower to adapt down so the maximum delay is a bit higher, especially at lower bitrates. None of the estimators work at 10 kbps, but that is likely because the bitrate controller is configured to never go below 10 kbps. This means that it's impossible to empty the queues after a capacity drop to 10kbps (regardless of what the estimators do), so the delay stays high until the capacity increases. BUG=webrtc:7022 Review-Url: https://codereview.webrtc.org/2644463009 Cr-Commit-Position: refs/heads/master@{#16233} --- .../bwe_simulations.cc | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/webrtc/modules/remote_bitrate_estimator/bwe_simulations.cc b/webrtc/modules/remote_bitrate_estimator/bwe_simulations.cc index b671a13dbd..485f7522a0 100644 --- a/webrtc/modules/remote_bitrate_estimator/bwe_simulations.cc +++ b/webrtc/modules/remote_bitrate_estimator/bwe_simulations.cc @@ -178,6 +178,36 @@ TEST_P(BweSimulation, Choke200kbps30kbps200kbps) { RunFor(60 * 1000); } +TEST_P(BweSimulation, PacerChoke50kbps15kbps50kbps) { + AdaptiveVideoSource source(0, 30, 300, 0, 0); + PacedVideoSender sender(&uplink_, &source, GetParam()); + ChokeFilter filter(&uplink_, 0); + RateCounterFilter counter(&uplink_, 0, "Receiver", bwe_names[GetParam()]); + PacketReceiver receiver(&uplink_, 0, GetParam(), true, true); + filter.set_capacity_kbps(50); + filter.set_max_delay_ms(500); + RunFor(60 * 1000); + filter.set_capacity_kbps(15); + RunFor(60 * 1000); + filter.set_capacity_kbps(50); + RunFor(60 * 1000); +} + +TEST_P(BweSimulation, Choke50kbps15kbps50kbps) { + AdaptiveVideoSource source(0, 30, 300, 0, 0); + VideoSender sender(&uplink_, &source, GetParam()); + ChokeFilter filter(&uplink_, 0); + RateCounterFilter counter(&uplink_, 0, "Receiver", bwe_names[GetParam()]); + PacketReceiver receiver(&uplink_, 0, GetParam(), true, true); + filter.set_capacity_kbps(50); + filter.set_max_delay_ms(500); + RunFor(60 * 1000); + filter.set_capacity_kbps(15); + RunFor(60 * 1000); + filter.set_capacity_kbps(50); + RunFor(60 * 1000); +} + TEST_P(BweSimulation, GoogleWifiTrace3Mbps) { AdaptiveVideoSource source(0, 30, 300, 0, 0); VideoSender sender(&uplink_, &source, GetParam());