Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(409)

Side by Side Diff: webrtc/modules/remote_bitrate_estimator/remote_bitrate_estimators_test.cc

Issue 1253473004: BWE Simulation Framework: Standard plot logging (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Comments addressed [2] Created 5 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license 4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source 5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found 6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may 7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree. 8 * be found in the AUTHORS file in the root of the source tree.
9 */ 9 */
10 10
(...skipping 73 matching lines...) Expand 10 before | Expand all | Expand 10 after
84 delay.SetOneWayDelayMs(i); 84 delay.SetOneWayDelayMs(i);
85 RunFor(10 * 1000); 85 RunFor(10 * 1000);
86 } 86 }
87 RunFor(10 * 60 * 1000); 87 RunFor(10 * 60 * 1000);
88 } 88 }
89 89
90 TEST_P(DefaultBweTest, IncreasingDelay2) { 90 TEST_P(DefaultBweTest, IncreasingDelay2) {
91 VideoSource source(0, 30, 300, 0, 0); 91 VideoSource source(0, 30, 300, 0, 0);
92 VideoSender sender(&uplink_, &source, GetParam()); 92 VideoSender sender(&uplink_, &source, GetParam());
93 DelayFilter delay(&uplink_, 0); 93 DelayFilter delay(&uplink_, 0);
94 RateCounterFilter counter(&uplink_, 0, ""); 94 RateCounterFilter counter(&uplink_, 0, "", "");
95 PacketReceiver receiver(&uplink_, 0, GetParam(), false, false); 95 PacketReceiver receiver(&uplink_, 0, GetParam(), false, false);
96 RunFor(1 * 60 * 1000); 96 RunFor(1 * 60 * 1000);
97 for (int i = 1; i < 51; ++i) { 97 for (int i = 1; i < 51; ++i) {
98 delay.SetOneWayDelayMs(10.0f * i); 98 delay.SetOneWayDelayMs(10.0f * i);
99 RunFor(10 * 1000); 99 RunFor(10 * 1000);
100 } 100 }
101 delay.SetOneWayDelayMs(0.0f); 101 delay.SetOneWayDelayMs(0.0f);
102 RunFor(10 * 60 * 1000); 102 RunFor(10 * 60 * 1000);
103 } 103 }
104 104
(...skipping 10 matching lines...) Expand all
115 RunFor(1000); 115 RunFor(1000);
116 } 116 }
117 delay.SetOneWayDelayMs(0.0f); 117 delay.SetOneWayDelayMs(0.0f);
118 RunFor(10 * 60 * 1000); 118 RunFor(10 * 60 * 1000);
119 } 119 }
120 120
121 TEST_P(DefaultBweTest, SteadyJitter) { 121 TEST_P(DefaultBweTest, SteadyJitter) {
122 VideoSource source(0, 30, 300, 0, 0); 122 VideoSource source(0, 30, 300, 0, 0);
123 VideoSender sender(&uplink_, &source, GetParam()); 123 VideoSender sender(&uplink_, &source, GetParam());
124 JitterFilter jitter(&uplink_, 0); 124 JitterFilter jitter(&uplink_, 0);
125 RateCounterFilter counter(&uplink_, 0, ""); 125 RateCounterFilter counter(&uplink_, 0, "", "");
126 PacketReceiver receiver(&uplink_, 0, GetParam(), false, false); 126 PacketReceiver receiver(&uplink_, 0, GetParam(), false, false);
127 jitter.SetMaxJitter(20); 127 jitter.SetMaxJitter(20);
128 RunFor(2 * 60 * 1000); 128 RunFor(2 * 60 * 1000);
129 } 129 }
130 130
131 TEST_P(DefaultBweTest, IncreasingJitter1) { 131 TEST_P(DefaultBweTest, IncreasingJitter1) {
132 VideoSource source(0, 30, 300, 0, 0); 132 VideoSource source(0, 30, 300, 0, 0);
133 VideoSender sender(&uplink_, &source, GetParam()); 133 VideoSender sender(&uplink_, &source, GetParam());
134 JitterFilter jitter(&uplink_, 0); 134 JitterFilter jitter(&uplink_, 0);
135 PacketReceiver receiver(&uplink_, 0, GetParam(), false, false); 135 PacketReceiver receiver(&uplink_, 0, GetParam(), false, false);
(...skipping 68 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 choke.set_capacity_kbps(i); 204 choke.set_capacity_kbps(i);
205 RunFor(1000); 205 RunFor(1000);
206 } 206 }
207 } 207 }
208 208
209 TEST_P(DefaultBweTest, Multi1) { 209 TEST_P(DefaultBweTest, Multi1) {
210 VideoSource source(0, 30, 300, 0, 0); 210 VideoSource source(0, 30, 300, 0, 0);
211 VideoSender sender(&uplink_, &source, GetParam()); 211 VideoSender sender(&uplink_, &source, GetParam());
212 DelayFilter delay(&uplink_, 0); 212 DelayFilter delay(&uplink_, 0);
213 ChokeFilter choke(&uplink_, 0); 213 ChokeFilter choke(&uplink_, 0);
214 RateCounterFilter counter(&uplink_, 0, ""); 214 RateCounterFilter counter(&uplink_, 0, "", "");
215 PacketReceiver receiver(&uplink_, 0, GetParam(), false, false); 215 PacketReceiver receiver(&uplink_, 0, GetParam(), false, false);
216 choke.set_capacity_kbps(1000); 216 choke.set_capacity_kbps(1000);
217 RunFor(1 * 60 * 1000); 217 RunFor(1 * 60 * 1000);
218 for (int i = 1; i < 51; ++i) { 218 for (int i = 1; i < 51; ++i) {
219 delay.SetOneWayDelayMs(100.0f * i); 219 delay.SetOneWayDelayMs(100.0f * i);
220 RunFor(10 * 1000); 220 RunFor(10 * 1000);
221 } 221 }
222 RunFor(500 * 1000); 222 RunFor(500 * 1000);
223 delay.SetOneWayDelayMs(0.0f); 223 delay.SetOneWayDelayMs(0.0f);
224 RunFor(5 * 60 * 1000); 224 RunFor(5 * 60 * 1000);
225 } 225 }
226 226
227 TEST_P(DefaultBweTest, Multi2) { 227 TEST_P(DefaultBweTest, Multi2) {
228 VideoSource source(0, 30, 300, 0, 0); 228 VideoSource source(0, 30, 300, 0, 0);
229 VideoSender sender(&uplink_, &source, GetParam()); 229 VideoSender sender(&uplink_, &source, GetParam());
230 ChokeFilter choke(&uplink_, 0); 230 ChokeFilter choke(&uplink_, 0);
231 JitterFilter jitter(&uplink_, 0); 231 JitterFilter jitter(&uplink_, 0);
232 RateCounterFilter counter(&uplink_, 0, ""); 232 RateCounterFilter counter(&uplink_, 0, "", "");
233 PacketReceiver receiver(&uplink_, 0, GetParam(), false, false); 233 PacketReceiver receiver(&uplink_, 0, GetParam(), false, false);
234 choke.set_capacity_kbps(2000); 234 choke.set_capacity_kbps(2000);
235 jitter.SetMaxJitter(120); 235 jitter.SetMaxJitter(120);
236 RunFor(5 * 60 * 1000); 236 RunFor(5 * 60 * 1000);
237 } 237 }
238 238
239 // This test fixture is used to instantiate tests running with adaptive video 239 // This test fixture is used to instantiate tests running with adaptive video
240 // senders. 240 // senders.
241 class BweFeedbackTest 241 class BweFeedbackTest
242 : public BweTest, 242 : public BweTest,
(...skipping 18 matching lines...) Expand all
261 261
262 INSTANTIATE_TEST_CASE_P(VideoSendersTest, 262 INSTANTIATE_TEST_CASE_P(VideoSendersTest,
263 BweFeedbackTest, 263 BweFeedbackTest,
264 ::testing::Values(kRembEstimator, 264 ::testing::Values(kRembEstimator,
265 kFullSendSideEstimator)); 265 kFullSendSideEstimator));
266 266
267 TEST_P(BweFeedbackTest, ConstantCapacity) { 267 TEST_P(BweFeedbackTest, ConstantCapacity) {
268 AdaptiveVideoSource source(0, 30, 300, 0, 0); 268 AdaptiveVideoSource source(0, 30, 300, 0, 0);
269 PacedVideoSender sender(&uplink_, &source, GetParam()); 269 PacedVideoSender sender(&uplink_, &source, GetParam());
270 ChokeFilter filter(&uplink_, 0); 270 ChokeFilter filter(&uplink_, 0);
271 RateCounterFilter counter(&uplink_, 0, "receiver_input"); 271 RateCounterFilter counter(&uplink_, 0, "Receiver", bwe_names[GetParam()]);
272 PacketReceiver receiver(&uplink_, 0, GetParam(), false, false); 272 PacketReceiver receiver(&uplink_, 0, GetParam(), false, false);
273 const int kCapacityKbps = 1000; 273 const int kCapacityKbps = 1000;
274 filter.set_capacity_kbps(kCapacityKbps); 274 filter.set_capacity_kbps(kCapacityKbps);
275 filter.set_max_delay_ms(500); 275 filter.set_max_delay_ms(500);
276 RunFor(180 * 1000); 276 RunFor(180 * 1000);
277 PrintResults(kCapacityKbps, counter.GetBitrateStats(), 0, 277 PrintResults(kCapacityKbps, counter.GetBitrateStats(), 0,
278 receiver.GetDelayStats(), counter.GetBitrateStats()); 278 receiver.GetDelayStats(), counter.GetBitrateStats());
279 } 279 }
280 280
281 TEST_P(BweFeedbackTest, Choke1000kbps500kbps1000kbps) { 281 TEST_P(BweFeedbackTest, Choke1000kbps500kbps1000kbps) {
282 AdaptiveVideoSource source(0, 30, 300, 0, 0); 282 AdaptiveVideoSource source(0, 30, 300, 0, 0);
283 PacedVideoSender sender(&uplink_, &source, GetParam()); 283 PacedVideoSender sender(&uplink_, &source, GetParam());
284 ChokeFilter filter(&uplink_, 0); 284 ChokeFilter filter(&uplink_, 0);
285 RateCounterFilter counter(&uplink_, 0, "receiver_input"); 285 RateCounterFilter counter(&uplink_, 0, "Receiver", bwe_names[GetParam()]);
286 PacketReceiver receiver(&uplink_, 0, GetParam(), false, false); 286 PacketReceiver receiver(&uplink_, 0, GetParam(), false, false);
287 const int kHighCapacityKbps = 1000; 287 const int kHighCapacityKbps = 1000;
288 const int kLowCapacityKbps = 500; 288 const int kLowCapacityKbps = 500;
289 filter.set_capacity_kbps(kHighCapacityKbps); 289 filter.set_capacity_kbps(kHighCapacityKbps);
290 filter.set_max_delay_ms(500); 290 filter.set_max_delay_ms(500);
291 RunFor(60 * 1000); 291 RunFor(60 * 1000);
292 filter.set_capacity_kbps(kLowCapacityKbps); 292 filter.set_capacity_kbps(kLowCapacityKbps);
293 RunFor(60 * 1000); 293 RunFor(60 * 1000);
294 filter.set_capacity_kbps(kHighCapacityKbps); 294 filter.set_capacity_kbps(kHighCapacityKbps);
295 RunFor(60 * 1000); 295 RunFor(60 * 1000);
296 PrintResults((2 * kHighCapacityKbps + kLowCapacityKbps) / 3.0, 296 PrintResults((2 * kHighCapacityKbps + kLowCapacityKbps) / 3.0,
297 counter.GetBitrateStats(), 0, receiver.GetDelayStats(), 297 counter.GetBitrateStats(), 0, receiver.GetDelayStats(),
298 counter.GetBitrateStats()); 298 counter.GetBitrateStats());
299 } 299 }
300 300
301 TEST_P(BweFeedbackTest, Choke200kbps30kbps200kbps) { 301 TEST_P(BweFeedbackTest, Choke200kbps30kbps200kbps) {
302 AdaptiveVideoSource source(0, 30, 300, 0, 0); 302 AdaptiveVideoSource source(0, 30, 300, 0, 0);
303 PacedVideoSender sender(&uplink_, &source, GetParam()); 303 PacedVideoSender sender(&uplink_, &source, GetParam());
304 ChokeFilter filter(&uplink_, 0); 304 ChokeFilter filter(&uplink_, 0);
305 RateCounterFilter counter(&uplink_, 0, "receiver_input"); 305 RateCounterFilter counter(&uplink_, 0, "Receiver", bwe_names[GetParam()]);
306 PacketReceiver receiver(&uplink_, 0, GetParam(), false, false); 306 PacketReceiver receiver(&uplink_, 0, GetParam(), false, false);
307 const int kHighCapacityKbps = 200; 307 const int kHighCapacityKbps = 200;
308 const int kLowCapacityKbps = 30; 308 const int kLowCapacityKbps = 30;
309 filter.set_capacity_kbps(kHighCapacityKbps); 309 filter.set_capacity_kbps(kHighCapacityKbps);
310 filter.set_max_delay_ms(500); 310 filter.set_max_delay_ms(500);
311 RunFor(60 * 1000); 311 RunFor(60 * 1000);
312 filter.set_capacity_kbps(kLowCapacityKbps); 312 filter.set_capacity_kbps(kLowCapacityKbps);
313 RunFor(60 * 1000); 313 RunFor(60 * 1000);
314 filter.set_capacity_kbps(kHighCapacityKbps); 314 filter.set_capacity_kbps(kHighCapacityKbps);
315 RunFor(60 * 1000); 315 RunFor(60 * 1000);
316 316
317 PrintResults((2 * kHighCapacityKbps + kLowCapacityKbps) / 3.0, 317 PrintResults((2 * kHighCapacityKbps + kLowCapacityKbps) / 3.0,
318 counter.GetBitrateStats(), 0, receiver.GetDelayStats(), 318 counter.GetBitrateStats(), 0, receiver.GetDelayStats(),
319 counter.GetBitrateStats()); 319 counter.GetBitrateStats());
320 } 320 }
321 321
322 TEST_P(BweFeedbackTest, Verizon4gDownlinkTest) { 322 TEST_P(BweFeedbackTest, Verizon4gDownlinkTest) {
323 AdaptiveVideoSource source(0, 30, 300, 0, 0); 323 AdaptiveVideoSource source(0, 30, 300, 0, 0);
324 VideoSender sender(&uplink_, &source, GetParam()); 324 VideoSender sender(&uplink_, &source, GetParam());
325 RateCounterFilter counter1(&uplink_, 0, "sender_output"); 325 RateCounterFilter counter1(&uplink_, 0, "sender_output",
326 bwe_names[GetParam()]);
326 TraceBasedDeliveryFilter filter(&uplink_, 0, "link_capacity"); 327 TraceBasedDeliveryFilter filter(&uplink_, 0, "link_capacity");
327 RateCounterFilter counter2(&uplink_, 0, "receiver_input"); 328 RateCounterFilter counter2(&uplink_, 0, "Receiver", bwe_names[GetParam()]);
328 PacketReceiver receiver(&uplink_, 0, GetParam(), false, false); 329 PacketReceiver receiver(&uplink_, 0, GetParam(), false, false);
329 ASSERT_TRUE(filter.Init(test::ResourcePath("verizon4g-downlink", "rx"))); 330 ASSERT_TRUE(filter.Init(test::ResourcePath("verizon4g-downlink", "rx")));
330 RunFor(22 * 60 * 1000); 331 RunFor(22 * 60 * 1000);
331 PrintResults(filter.GetBitrateStats().GetMean(), counter2.GetBitrateStats(), 332 PrintResults(filter.GetBitrateStats().GetMean(), counter2.GetBitrateStats(),
332 0, receiver.GetDelayStats(), counter2.GetBitrateStats()); 333 0, receiver.GetDelayStats(), counter2.GetBitrateStats());
333 } 334 }
334 335
335 // webrtc:3277 336 // webrtc:3277
336 TEST_P(BweFeedbackTest, GoogleWifiTrace3Mbps) { 337 TEST_P(BweFeedbackTest, GoogleWifiTrace3Mbps) {
337 AdaptiveVideoSource source(0, 30, 300, 0, 0); 338 AdaptiveVideoSource source(0, 30, 300, 0, 0);
338 VideoSender sender(&uplink_, &source, GetParam()); 339 VideoSender sender(&uplink_, &source, GetParam());
339 RateCounterFilter counter1(&uplink_, 0, "sender_output"); 340 RateCounterFilter counter1(&uplink_, 0, "sender_output",
341 bwe_names[GetParam()]);
340 TraceBasedDeliveryFilter filter(&uplink_, 0, "link_capacity"); 342 TraceBasedDeliveryFilter filter(&uplink_, 0, "link_capacity");
341 filter.set_max_delay_ms(500); 343 filter.set_max_delay_ms(500);
342 RateCounterFilter counter2(&uplink_, 0, "receiver_input"); 344 RateCounterFilter counter2(&uplink_, 0, "Receiver", bwe_names[GetParam()]);
343 PacketReceiver receiver(&uplink_, 0, GetParam(), false, false); 345 PacketReceiver receiver(&uplink_, 0, GetParam(), false, false);
344 ASSERT_TRUE(filter.Init(test::ResourcePath("google-wifi-3mbps", "rx"))); 346 ASSERT_TRUE(filter.Init(test::ResourcePath("google-wifi-3mbps", "rx")));
345 RunFor(300 * 1000); 347 RunFor(300 * 1000);
346 PrintResults(filter.GetBitrateStats().GetMean(), counter2.GetBitrateStats(), 348 PrintResults(filter.GetBitrateStats().GetMean(), counter2.GetBitrateStats(),
347 0, receiver.GetDelayStats(), counter2.GetBitrateStats()); 349 0, receiver.GetDelayStats(), counter2.GetBitrateStats());
348 } 350 }
349 351
350 TEST_P(BweFeedbackTest, PacedSelfFairness50msTest) { 352 TEST_P(BweFeedbackTest, PacedSelfFairness50msTest) {
351 int64_t kRttMs = 100; 353 int64_t kRttMs = 100;
352 int64_t kMaxJitterMs = 15; 354 int64_t kMaxJitterMs = 15;
(...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after
423 for (int i = 0; i < 2; ++i) { 425 for (int i = 0; i < 2; ++i) {
424 offset_ms[i] = std::max(0, 5000 * i + rand() % 2001 - 1000); 426 offset_ms[i] = std::max(0, 5000 * i + rand() % 2001 - 1000);
425 } 427 }
426 428
427 RunFairnessTest(GetParam(), 1, 1, 300, 2000, 1000, kRttMs, kMaxJitterMs, 429 RunFairnessTest(GetParam(), 1, 1, 300, 2000, 1000, kRttMs, kMaxJitterMs,
428 offset_ms); 430 offset_ms);
429 } 431 }
430 } // namespace bwe 432 } // namespace bwe
431 } // namespace testing 433 } // namespace testing
432 } // namespace webrtc 434 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/modules/remote_bitrate_estimator/bwe_simulations.cc ('k') | webrtc/modules/remote_bitrate_estimator/test/bwe_test.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698