OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2012 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 177 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
188 int packets_per_frame = 6; | 188 int packets_per_frame = 6; |
189 int frame_duration_ms = 33; | 189 int frame_duration_ms = 33; |
190 int drift_per_frame_ms = 1; | 190 int drift_per_frame_ms = 1; |
191 int sigma_ms = 0; // No variance. | 191 int sigma_ms = 0; // No variance. |
192 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, | 192 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, |
193 frame_duration_ms, sigma_ms); | 193 frame_duration_ms, sigma_ms); |
194 | 194 |
195 EXPECT_EQ(0, unique_overuse); | 195 EXPECT_EQ(0, unique_overuse); |
196 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, | 196 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, |
197 frame_duration_ms, sigma_ms, drift_per_frame_ms); | 197 frame_duration_ms, sigma_ms, drift_per_frame_ms); |
198 EXPECT_EQ(8, frames_until_overuse); | 198 EXPECT_EQ(5, frames_until_overuse); |
199 } | 199 } |
200 | 200 |
201 TEST_F(OveruseDetectorTest, SimpleOveruse100kbit10fps) { | 201 TEST_F(OveruseDetectorTest, SimpleOveruse100kbit10fps) { |
202 size_t packet_size = 1200; | 202 size_t packet_size = 1200; |
203 int packets_per_frame = 1; | 203 int packets_per_frame = 1; |
204 int frame_duration_ms = 100; | 204 int frame_duration_ms = 100; |
205 int drift_per_frame_ms = 1; | 205 int drift_per_frame_ms = 1; |
206 int sigma_ms = 0; // No variance. | 206 int sigma_ms = 0; // No variance. |
207 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, | 207 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, |
208 frame_duration_ms, sigma_ms); | 208 frame_duration_ms, sigma_ms); |
209 | 209 |
210 EXPECT_EQ(0, unique_overuse); | 210 EXPECT_EQ(0, unique_overuse); |
211 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, | 211 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, |
212 frame_duration_ms, sigma_ms, drift_per_frame_ms); | 212 frame_duration_ms, sigma_ms, drift_per_frame_ms); |
213 EXPECT_EQ(6, frames_until_overuse); | 213 EXPECT_EQ(5, frames_until_overuse); |
214 } | 214 } |
215 | 215 |
216 TEST_F(OveruseDetectorTest, DISABLED_OveruseWithHighVariance100Kbit10fps) { | 216 TEST_F(OveruseDetectorTest, DISABLED_OveruseWithHighVariance100Kbit10fps) { |
217 uint32_t frame_duration_ms = 100; | 217 uint32_t frame_duration_ms = 100; |
218 uint32_t drift_per_frame_ms = 10; | 218 uint32_t drift_per_frame_ms = 10; |
219 uint32_t rtp_timestamp = frame_duration_ms * 90; | 219 uint32_t rtp_timestamp = frame_duration_ms * 90; |
220 size_t packet_size = 1200; | 220 size_t packet_size = 1200; |
221 int offset = 10; | 221 int offset = 10; |
222 | 222 |
223 // Run 1000 samples to reach steady state. | 223 // Run 1000 samples to reach steady state. |
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
295 if (i % 2) { | 295 if (i % 2) { |
296 offset = random_.Rand(0, 1); | 296 offset = random_.Rand(0, 1); |
297 now_ms_ += frame_duration_ms - offset; | 297 now_ms_ += frame_duration_ms - offset; |
298 } else { | 298 } else { |
299 now_ms_ += frame_duration_ms + offset; | 299 now_ms_ += frame_duration_ms + offset; |
300 } | 300 } |
301 EXPECT_EQ(kBwNormal, overuse_detector_->State()); | 301 EXPECT_EQ(kBwNormal, overuse_detector_->State()); |
302 } | 302 } |
303 // Simulate a higher send pace, that is too high. | 303 // Simulate a higher send pace, that is too high. |
304 // Total build up of 30 ms. | 304 // Total build up of 30 ms. |
305 for (int j = 0; j < 5; ++j) { | 305 for (int j = 0; j < 3; ++j) { |
306 UpdateDetector(rtp_timestamp, now_ms_, packet_size); | 306 UpdateDetector(rtp_timestamp, now_ms_, packet_size); |
307 UpdateDetector(rtp_timestamp, now_ms_, packet_size); | 307 UpdateDetector(rtp_timestamp, now_ms_, packet_size); |
308 UpdateDetector(rtp_timestamp, now_ms_, packet_size); | 308 UpdateDetector(rtp_timestamp, now_ms_, packet_size); |
309 UpdateDetector(rtp_timestamp, now_ms_, packet_size); | 309 UpdateDetector(rtp_timestamp, now_ms_, packet_size); |
310 UpdateDetector(rtp_timestamp, now_ms_, packet_size); | 310 UpdateDetector(rtp_timestamp, now_ms_, packet_size); |
311 UpdateDetector(rtp_timestamp, now_ms_, packet_size); | 311 UpdateDetector(rtp_timestamp, now_ms_, packet_size); |
312 now_ms_ += frame_duration_ms + drift_per_frame_ms * 6; | 312 now_ms_ += frame_duration_ms + drift_per_frame_ms * 6; |
313 rtp_timestamp += frame_duration_ms * 90; | 313 rtp_timestamp += frame_duration_ms * 90; |
314 EXPECT_EQ(kBwNormal, overuse_detector_->State()); | 314 EXPECT_EQ(kBwNormal, overuse_detector_->State()); |
315 } | 315 } |
316 UpdateDetector(rtp_timestamp, now_ms_, packet_size); | 316 UpdateDetector(rtp_timestamp, now_ms_, packet_size); |
317 EXPECT_EQ(kBwOverusing, overuse_detector_->State()); | 317 EXPECT_EQ(kBwOverusing, overuse_detector_->State()); |
318 } | 318 } |
319 | 319 |
320 #if defined(WEBRTC_ANDROID) | 320 #if defined(WEBRTC_ANDROID) |
321 #define MAYBE_LowGaussianVariance30Kbit3fps \ | 321 #define MAYBE_LowGaussianVariance30Kbit3fps \ |
322 DISABLED_LowGaussianVariance30Kbit3fps | 322 DISABLED_LowGaussianVariance30Kbit3fps |
323 #else | 323 #else |
324 #define MAYBE_LowGaussianVariance30Kbit3fps LowGaussianVariance30Kbit3fps | 324 #define MAYBE_LowGaussianVariance30Kbit3fps LowGaussianVariance30Kbit3fps |
325 #endif | 325 #endif |
326 TEST_F(OveruseDetectorTest, MAYBE_LowGaussianVariance30Kbit3fps) { | 326 TEST_F(OveruseDetectorTest, MAYBE_LowGaussianVariance30Kbit3fps) { |
327 size_t packet_size = 1200; | 327 size_t packet_size = 1200; |
328 int packets_per_frame = 1; | 328 int packets_per_frame = 1; |
329 int frame_duration_ms = 333; | 329 int frame_duration_ms = 333; |
330 int drift_per_frame_ms = 1; | 330 int drift_per_frame_ms = 1; |
331 int sigma_ms = 3; | 331 int sigma_ms = 3; |
332 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, | 332 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, |
333 frame_duration_ms, sigma_ms); | 333 frame_duration_ms, sigma_ms); |
334 EXPECT_EQ(1, unique_overuse); | 334 EXPECT_EQ(56, unique_overuse); |
335 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, | 335 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, |
336 frame_duration_ms, sigma_ms, drift_per_frame_ms); | 336 frame_duration_ms, sigma_ms, drift_per_frame_ms); |
337 EXPECT_EQ(13, frames_until_overuse); | 337 EXPECT_EQ(430, frames_until_overuse); |
338 } | 338 } |
339 | 339 |
340 TEST_F(OveruseDetectorTest, LowGaussianVarianceFastDrift30Kbit3fps) { | 340 TEST_F(OveruseDetectorTest, LowGaussianVarianceFastDrift30Kbit3fps) { |
341 size_t packet_size = 1200; | 341 size_t packet_size = 1200; |
342 int packets_per_frame = 1; | 342 int packets_per_frame = 1; |
343 int frame_duration_ms = 333; | 343 int frame_duration_ms = 333; |
344 int drift_per_frame_ms = 100; | 344 int drift_per_frame_ms = 100; |
345 int sigma_ms = 3; | 345 int sigma_ms = 3; |
346 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, | 346 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, |
347 frame_duration_ms, sigma_ms); | 347 frame_duration_ms, sigma_ms); |
348 EXPECT_EQ(1, unique_overuse); | 348 EXPECT_EQ(56, unique_overuse); |
349 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, | 349 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, |
350 frame_duration_ms, sigma_ms, drift_per_frame_ms); | 350 frame_duration_ms, sigma_ms, drift_per_frame_ms); |
351 EXPECT_EQ(4, frames_until_overuse); | 351 EXPECT_EQ(4, frames_until_overuse); |
352 } | 352 } |
353 | 353 |
354 TEST_F(OveruseDetectorTest, HighGaussianVariance30Kbit3fps) { | 354 TEST_F(OveruseDetectorTest, HighGaussianVariance30Kbit3fps) { |
355 size_t packet_size = 1200; | 355 size_t packet_size = 1200; |
356 int packets_per_frame = 1; | 356 int packets_per_frame = 1; |
357 int frame_duration_ms = 333; | 357 int frame_duration_ms = 333; |
358 int drift_per_frame_ms = 1; | 358 int drift_per_frame_ms = 1; |
359 int sigma_ms = 10; | 359 int sigma_ms = 10; |
360 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, | 360 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, |
361 frame_duration_ms, sigma_ms); | 361 frame_duration_ms, sigma_ms); |
362 EXPECT_EQ(1, unique_overuse); | 362 EXPECT_EQ(77, unique_overuse); |
363 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, | 363 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, |
364 frame_duration_ms, sigma_ms, drift_per_frame_ms); | 364 frame_duration_ms, sigma_ms, drift_per_frame_ms); |
365 EXPECT_EQ(32, frames_until_overuse); | 365 EXPECT_EQ(430, frames_until_overuse); |
366 } | 366 } |
367 | 367 |
368 TEST_F(OveruseDetectorTest, HighGaussianVarianceFastDrift30Kbit3fps) { | 368 TEST_F(OveruseDetectorTest, HighGaussianVarianceFastDrift30Kbit3fps) { |
369 size_t packet_size = 1200; | 369 size_t packet_size = 1200; |
370 int packets_per_frame = 1; | 370 int packets_per_frame = 1; |
371 int frame_duration_ms = 333; | 371 int frame_duration_ms = 333; |
372 int drift_per_frame_ms = 100; | 372 int drift_per_frame_ms = 100; |
373 int sigma_ms = 10; | 373 int sigma_ms = 10; |
374 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, | 374 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, |
375 frame_duration_ms, sigma_ms); | 375 frame_duration_ms, sigma_ms); |
376 EXPECT_EQ(1, unique_overuse); | 376 EXPECT_EQ(77, unique_overuse); |
377 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, | 377 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, |
378 frame_duration_ms, sigma_ms, drift_per_frame_ms); | 378 frame_duration_ms, sigma_ms, drift_per_frame_ms); |
379 EXPECT_EQ(4, frames_until_overuse); | 379 EXPECT_EQ(4, frames_until_overuse); |
380 } | 380 } |
381 | 381 |
382 #if defined(WEBRTC_ANDROID) | 382 #if defined(WEBRTC_ANDROID) |
383 #define MAYBE_LowGaussianVariance100Kbit5fps \ | 383 #define MAYBE_LowGaussianVariance100Kbit5fps \ |
384 DISABLED_LowGaussianVariance100Kbit5fps | 384 DISABLED_LowGaussianVariance100Kbit5fps |
385 #else | 385 #else |
386 #define MAYBE_LowGaussianVariance100Kbit5fps LowGaussianVariance100Kbit5fps | 386 #define MAYBE_LowGaussianVariance100Kbit5fps LowGaussianVariance100Kbit5fps |
387 #endif | 387 #endif |
388 TEST_F(OveruseDetectorTest, MAYBE_LowGaussianVariance100Kbit5fps) { | 388 TEST_F(OveruseDetectorTest, MAYBE_LowGaussianVariance100Kbit5fps) { |
389 size_t packet_size = 1200; | 389 size_t packet_size = 1200; |
390 int packets_per_frame = 2; | 390 int packets_per_frame = 2; |
391 int frame_duration_ms = 200; | 391 int frame_duration_ms = 200; |
392 int drift_per_frame_ms = 1; | 392 int drift_per_frame_ms = 1; |
393 int sigma_ms = 3; | 393 int sigma_ms = 3; |
394 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, | 394 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, |
395 frame_duration_ms, sigma_ms); | 395 frame_duration_ms, sigma_ms); |
396 EXPECT_EQ(0, unique_overuse); | 396 EXPECT_EQ(45, unique_overuse); |
397 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, | 397 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, |
398 frame_duration_ms, sigma_ms, drift_per_frame_ms); | 398 frame_duration_ms, sigma_ms, drift_per_frame_ms); |
399 EXPECT_EQ(13, frames_until_overuse); | 399 EXPECT_EQ(32, frames_until_overuse); |
400 } | 400 } |
401 | 401 |
402 #if defined(WEBRTC_ANDROID) | 402 #if defined(WEBRTC_ANDROID) |
403 #define MAYBE_HighGaussianVariance100Kbit5fps \ | 403 #define MAYBE_HighGaussianVariance100Kbit5fps \ |
404 DISABLED_HighGaussianVariance100Kbit5fps | 404 DISABLED_HighGaussianVariance100Kbit5fps |
405 #else | 405 #else |
406 #define MAYBE_HighGaussianVariance100Kbit5fps HighGaussianVariance100Kbit5fps | 406 #define MAYBE_HighGaussianVariance100Kbit5fps HighGaussianVariance100Kbit5fps |
407 #endif | 407 #endif |
408 TEST_F(OveruseDetectorTest, MAYBE_HighGaussianVariance100Kbit5fps) { | 408 TEST_F(OveruseDetectorTest, MAYBE_HighGaussianVariance100Kbit5fps) { |
409 size_t packet_size = 1200; | 409 size_t packet_size = 1200; |
410 int packets_per_frame = 2; | 410 int packets_per_frame = 2; |
411 int frame_duration_ms = 200; | 411 int frame_duration_ms = 200; |
412 int drift_per_frame_ms = 1; | 412 int drift_per_frame_ms = 1; |
413 int sigma_ms = 10; | 413 int sigma_ms = 10; |
414 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, | 414 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, |
415 frame_duration_ms, sigma_ms); | 415 frame_duration_ms, sigma_ms); |
416 EXPECT_EQ(1, unique_overuse); | 416 EXPECT_EQ(70, unique_overuse); |
417 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, | 417 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, |
418 frame_duration_ms, sigma_ms, drift_per_frame_ms); | 418 frame_duration_ms, sigma_ms, drift_per_frame_ms); |
419 EXPECT_EQ(32, frames_until_overuse); | 419 EXPECT_EQ(32, frames_until_overuse); |
420 } | 420 } |
421 | 421 |
422 #if defined(WEBRTC_ANDROID) | 422 #if defined(WEBRTC_ANDROID) |
423 #define MAYBE_LowGaussianVariance100Kbit10fps \ | 423 #define MAYBE_LowGaussianVariance100Kbit10fps \ |
424 DISABLED_LowGaussianVariance100Kbit10fps | 424 DISABLED_LowGaussianVariance100Kbit10fps |
425 #else | 425 #else |
426 #define MAYBE_LowGaussianVariance100Kbit10fps LowGaussianVariance100Kbit10fps | 426 #define MAYBE_LowGaussianVariance100Kbit10fps LowGaussianVariance100Kbit10fps |
427 #endif | 427 #endif |
428 TEST_F(OveruseDetectorTest, MAYBE_LowGaussianVariance100Kbit10fps) { | 428 TEST_F(OveruseDetectorTest, MAYBE_LowGaussianVariance100Kbit10fps) { |
429 size_t packet_size = 1200; | 429 size_t packet_size = 1200; |
430 int packets_per_frame = 1; | 430 int packets_per_frame = 1; |
431 int frame_duration_ms = 100; | 431 int frame_duration_ms = 100; |
432 int drift_per_frame_ms = 1; | 432 int drift_per_frame_ms = 1; |
433 int sigma_ms = 3; | 433 int sigma_ms = 3; |
434 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, | 434 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, |
435 frame_duration_ms, sigma_ms); | 435 frame_duration_ms, sigma_ms); |
436 EXPECT_EQ(1, unique_overuse); | 436 EXPECT_EQ(33, unique_overuse); |
437 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, | 437 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, |
438 frame_duration_ms, sigma_ms, drift_per_frame_ms); | 438 frame_duration_ms, sigma_ms, drift_per_frame_ms); |
439 EXPECT_EQ(13, frames_until_overuse); | 439 EXPECT_EQ(13, frames_until_overuse); |
440 } | 440 } |
441 | 441 |
442 #if defined(WEBRTC_ANDROID) | 442 #if defined(WEBRTC_ANDROID) |
443 #define MAYBE_HighGaussianVariance100Kbit10fps \ | 443 #define MAYBE_HighGaussianVariance100Kbit10fps \ |
444 DISABLED_HighGaussianVariance100Kbit10fps | 444 DISABLED_HighGaussianVariance100Kbit10fps |
445 #else | 445 #else |
446 #define MAYBE_HighGaussianVariance100Kbit10fps HighGaussianVariance100Kbit10fps | 446 #define MAYBE_HighGaussianVariance100Kbit10fps HighGaussianVariance100Kbit10fps |
447 #endif | 447 #endif |
448 TEST_F(OveruseDetectorTest, MAYBE_HighGaussianVariance100Kbit10fps) { | 448 TEST_F(OveruseDetectorTest, MAYBE_HighGaussianVariance100Kbit10fps) { |
449 size_t packet_size = 1200; | 449 size_t packet_size = 1200; |
450 int packets_per_frame = 1; | 450 int packets_per_frame = 1; |
451 int frame_duration_ms = 100; | 451 int frame_duration_ms = 100; |
452 int drift_per_frame_ms = 1; | 452 int drift_per_frame_ms = 1; |
453 int sigma_ms = 10; | 453 int sigma_ms = 10; |
454 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, | 454 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, |
455 frame_duration_ms, sigma_ms); | 455 frame_duration_ms, sigma_ms); |
456 EXPECT_EQ(0, unique_overuse); | 456 EXPECT_EQ(45, unique_overuse); |
457 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, | 457 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, |
458 frame_duration_ms, sigma_ms, drift_per_frame_ms); | 458 frame_duration_ms, sigma_ms, drift_per_frame_ms); |
459 EXPECT_EQ(32, frames_until_overuse); | 459 EXPECT_EQ(31, frames_until_overuse); |
460 } | 460 } |
461 | 461 |
462 #if defined(WEBRTC_ANDROID) | 462 #if defined(WEBRTC_ANDROID) |
463 #define MAYBE_LowGaussianVariance300Kbit30fps \ | 463 #define MAYBE_LowGaussianVariance300Kbit30fps \ |
464 DISABLED_LowGaussianVariance300Kbit30fps | 464 DISABLED_LowGaussianVariance300Kbit30fps |
465 #else | 465 #else |
466 #define MAYBE_LowGaussianVariance300Kbit30fps LowGaussianVariance300Kbit30fps | 466 #define MAYBE_LowGaussianVariance300Kbit30fps LowGaussianVariance300Kbit30fps |
467 #endif | 467 #endif |
468 TEST_F(OveruseDetectorTest, MAYBE_LowGaussianVariance300Kbit30fps) { | 468 TEST_F(OveruseDetectorTest, MAYBE_LowGaussianVariance300Kbit30fps) { |
469 size_t packet_size = 1200; | 469 size_t packet_size = 1200; |
470 int packets_per_frame = 1; | 470 int packets_per_frame = 1; |
471 int frame_duration_ms = 33; | 471 int frame_duration_ms = 33; |
472 int drift_per_frame_ms = 1; | 472 int drift_per_frame_ms = 1; |
473 int sigma_ms = 3; | 473 int sigma_ms = 3; |
474 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, | 474 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, |
475 frame_duration_ms, sigma_ms); | 475 frame_duration_ms, sigma_ms); |
476 EXPECT_EQ(0, unique_overuse); | 476 EXPECT_EQ(25, unique_overuse); |
477 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, | 477 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, |
478 frame_duration_ms, sigma_ms, drift_per_frame_ms); | 478 frame_duration_ms, sigma_ms, drift_per_frame_ms); |
479 EXPECT_EQ(15, frames_until_overuse); | 479 EXPECT_EQ(13, frames_until_overuse); |
480 } | 480 } |
481 | 481 |
482 TEST_F(OveruseDetectorTest, LowGaussianVarianceFastDrift300Kbit30fps) { | 482 TEST_F(OveruseDetectorTest, LowGaussianVarianceFastDrift300Kbit30fps) { |
483 size_t packet_size = 1200; | 483 size_t packet_size = 1200; |
484 int packets_per_frame = 1; | 484 int packets_per_frame = 1; |
485 int frame_duration_ms = 33; | 485 int frame_duration_ms = 33; |
486 int drift_per_frame_ms = 10; | 486 int drift_per_frame_ms = 10; |
487 int sigma_ms = 3; | 487 int sigma_ms = 3; |
488 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, | 488 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, |
489 frame_duration_ms, sigma_ms); | 489 frame_duration_ms, sigma_ms); |
490 EXPECT_EQ(0, unique_overuse); | 490 EXPECT_EQ(25, unique_overuse); |
491 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, | 491 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, |
492 frame_duration_ms, sigma_ms, drift_per_frame_ms); | 492 frame_duration_ms, sigma_ms, drift_per_frame_ms); |
493 EXPECT_EQ(6, frames_until_overuse); | 493 EXPECT_EQ(4, frames_until_overuse); |
494 } | 494 } |
495 | 495 |
496 TEST_F(OveruseDetectorTest, HighGaussianVariance300Kbit30fps) { | 496 TEST_F(OveruseDetectorTest, HighGaussianVariance300Kbit30fps) { |
497 size_t packet_size = 1200; | 497 size_t packet_size = 1200; |
498 int packets_per_frame = 1; | 498 int packets_per_frame = 1; |
499 int frame_duration_ms = 33; | 499 int frame_duration_ms = 33; |
500 int drift_per_frame_ms = 1; | 500 int drift_per_frame_ms = 1; |
501 int sigma_ms = 10; | 501 int sigma_ms = 10; |
502 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, | 502 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, |
503 frame_duration_ms, sigma_ms); | 503 frame_duration_ms, sigma_ms); |
504 EXPECT_EQ(0, unique_overuse); | 504 EXPECT_EQ(46, unique_overuse); |
505 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, | 505 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, |
506 frame_duration_ms, sigma_ms, drift_per_frame_ms); | 506 frame_duration_ms, sigma_ms, drift_per_frame_ms); |
507 EXPECT_EQ(41, frames_until_overuse); | 507 EXPECT_EQ(31, frames_until_overuse); |
508 } | 508 } |
509 | 509 |
510 TEST_F(OveruseDetectorTest, HighGaussianVarianceFastDrift300Kbit30fps) { | 510 TEST_F(OveruseDetectorTest, HighGaussianVarianceFastDrift300Kbit30fps) { |
511 size_t packet_size = 1200; | 511 size_t packet_size = 1200; |
512 int packets_per_frame = 1; | 512 int packets_per_frame = 1; |
513 int frame_duration_ms = 33; | 513 int frame_duration_ms = 33; |
514 int drift_per_frame_ms = 10; | 514 int drift_per_frame_ms = 10; |
515 int sigma_ms = 10; | 515 int sigma_ms = 10; |
516 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, | 516 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, |
517 frame_duration_ms, sigma_ms); | 517 frame_duration_ms, sigma_ms); |
518 EXPECT_EQ(0, unique_overuse); | 518 EXPECT_EQ(46, unique_overuse); |
519 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, | 519 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, |
520 frame_duration_ms, sigma_ms, drift_per_frame_ms); | 520 frame_duration_ms, sigma_ms, drift_per_frame_ms); |
521 EXPECT_EQ(10, frames_until_overuse); | 521 EXPECT_EQ(6, frames_until_overuse); |
522 } | 522 } |
523 | 523 |
524 #if defined(WEBRTC_ANDROID) | 524 #if defined(WEBRTC_ANDROID) |
525 #define MAYBE_LowGaussianVariance1000Kbit30fps \ | 525 #define MAYBE_LowGaussianVariance1000Kbit30fps \ |
526 DISABLED_LowGaussianVariance1000Kbit30fps | 526 DISABLED_LowGaussianVariance1000Kbit30fps |
527 #else | 527 #else |
528 #define MAYBE_LowGaussianVariance1000Kbit30fps LowGaussianVariance1000Kbit30fps | 528 #define MAYBE_LowGaussianVariance1000Kbit30fps LowGaussianVariance1000Kbit30fps |
529 #endif | 529 #endif |
530 TEST_F(OveruseDetectorTest, MAYBE_LowGaussianVariance1000Kbit30fps) { | 530 TEST_F(OveruseDetectorTest, MAYBE_LowGaussianVariance1000Kbit30fps) { |
531 size_t packet_size = 1200; | 531 size_t packet_size = 1200; |
532 int packets_per_frame = 3; | 532 int packets_per_frame = 3; |
533 int frame_duration_ms = 33; | 533 int frame_duration_ms = 33; |
534 int drift_per_frame_ms = 1; | 534 int drift_per_frame_ms = 1; |
535 int sigma_ms = 3; | 535 int sigma_ms = 3; |
536 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, | 536 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, |
537 frame_duration_ms, sigma_ms); | 537 frame_duration_ms, sigma_ms); |
538 EXPECT_EQ(0, unique_overuse); | 538 EXPECT_EQ(25, unique_overuse); |
539 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, | 539 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, |
540 frame_duration_ms, sigma_ms, drift_per_frame_ms); | 540 frame_duration_ms, sigma_ms, drift_per_frame_ms); |
541 EXPECT_EQ(15, frames_until_overuse); | 541 EXPECT_EQ(13, frames_until_overuse); |
542 } | 542 } |
543 | 543 |
544 TEST_F(OveruseDetectorTest, LowGaussianVarianceFastDrift1000Kbit30fps) { | 544 TEST_F(OveruseDetectorTest, LowGaussianVarianceFastDrift1000Kbit30fps) { |
545 size_t packet_size = 1200; | 545 size_t packet_size = 1200; |
546 int packets_per_frame = 3; | 546 int packets_per_frame = 3; |
547 int frame_duration_ms = 33; | 547 int frame_duration_ms = 33; |
548 int drift_per_frame_ms = 10; | 548 int drift_per_frame_ms = 10; |
549 int sigma_ms = 3; | 549 int sigma_ms = 3; |
550 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, | 550 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, |
551 frame_duration_ms, sigma_ms); | 551 frame_duration_ms, sigma_ms); |
552 EXPECT_EQ(0, unique_overuse); | 552 EXPECT_EQ(25, unique_overuse); |
553 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, | 553 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, |
554 frame_duration_ms, sigma_ms, drift_per_frame_ms); | 554 frame_duration_ms, sigma_ms, drift_per_frame_ms); |
555 EXPECT_EQ(6, frames_until_overuse); | 555 EXPECT_EQ(4, frames_until_overuse); |
556 } | 556 } |
557 | 557 |
558 TEST_F(OveruseDetectorTest, HighGaussianVariance1000Kbit30fps) { | 558 TEST_F(OveruseDetectorTest, HighGaussianVariance1000Kbit30fps) { |
559 size_t packet_size = 1200; | 559 size_t packet_size = 1200; |
560 int packets_per_frame = 3; | 560 int packets_per_frame = 3; |
561 int frame_duration_ms = 33; | 561 int frame_duration_ms = 33; |
562 int drift_per_frame_ms = 1; | 562 int drift_per_frame_ms = 1; |
563 int sigma_ms = 10; | 563 int sigma_ms = 10; |
564 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, | 564 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, |
565 frame_duration_ms, sigma_ms); | 565 frame_duration_ms, sigma_ms); |
566 EXPECT_EQ(0, unique_overuse); | 566 EXPECT_EQ(45, unique_overuse); |
567 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, | 567 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, |
568 frame_duration_ms, sigma_ms, drift_per_frame_ms); | 568 frame_duration_ms, sigma_ms, drift_per_frame_ms); |
569 EXPECT_EQ(41, frames_until_overuse); | 569 EXPECT_EQ(31, frames_until_overuse); |
570 } | 570 } |
571 | 571 |
572 TEST_F(OveruseDetectorTest, HighGaussianVarianceFastDrift1000Kbit30fps) { | 572 TEST_F(OveruseDetectorTest, HighGaussianVarianceFastDrift1000Kbit30fps) { |
573 size_t packet_size = 1200; | 573 size_t packet_size = 1200; |
574 int packets_per_frame = 3; | 574 int packets_per_frame = 3; |
575 int frame_duration_ms = 33; | 575 int frame_duration_ms = 33; |
576 int drift_per_frame_ms = 10; | 576 int drift_per_frame_ms = 10; |
577 int sigma_ms = 10; | 577 int sigma_ms = 10; |
578 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, | 578 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, |
579 frame_duration_ms, sigma_ms); | 579 frame_duration_ms, sigma_ms); |
580 EXPECT_EQ(0, unique_overuse); | 580 EXPECT_EQ(45, unique_overuse); |
581 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, | 581 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, |
582 frame_duration_ms, sigma_ms, drift_per_frame_ms); | 582 frame_duration_ms, sigma_ms, drift_per_frame_ms); |
583 EXPECT_EQ(10, frames_until_overuse); | 583 EXPECT_EQ(6, frames_until_overuse); |
584 } | 584 } |
585 | 585 |
586 #if defined(WEBRTC_ANDROID) | 586 #if defined(WEBRTC_ANDROID) |
587 #define MAYBE_LowGaussianVariance2000Kbit30fps \ | 587 #define MAYBE_LowGaussianVariance2000Kbit30fps \ |
588 DISABLED_LowGaussianVariance2000Kbit30fps | 588 DISABLED_LowGaussianVariance2000Kbit30fps |
589 #else | 589 #else |
590 #define MAYBE_LowGaussianVariance2000Kbit30fps LowGaussianVariance2000Kbit30fps | 590 #define MAYBE_LowGaussianVariance2000Kbit30fps LowGaussianVariance2000Kbit30fps |
591 #endif | 591 #endif |
592 TEST_F(OveruseDetectorTest, MAYBE_LowGaussianVariance2000Kbit30fps) { | 592 TEST_F(OveruseDetectorTest, MAYBE_LowGaussianVariance2000Kbit30fps) { |
593 size_t packet_size = 1200; | 593 size_t packet_size = 1200; |
594 int packets_per_frame = 6; | 594 int packets_per_frame = 6; |
595 int frame_duration_ms = 33; | 595 int frame_duration_ms = 33; |
596 int drift_per_frame_ms = 1; | 596 int drift_per_frame_ms = 1; |
597 int sigma_ms = 3; | 597 int sigma_ms = 3; |
598 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, | 598 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, |
599 frame_duration_ms, sigma_ms); | 599 frame_duration_ms, sigma_ms); |
600 EXPECT_EQ(0, unique_overuse); | 600 EXPECT_EQ(25, unique_overuse); |
601 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, | 601 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, |
602 frame_duration_ms, sigma_ms, drift_per_frame_ms); | 602 frame_duration_ms, sigma_ms, drift_per_frame_ms); |
603 EXPECT_EQ(15, frames_until_overuse); | 603 EXPECT_EQ(13, frames_until_overuse); |
604 } | 604 } |
605 | 605 |
606 TEST_F(OveruseDetectorTest, LowGaussianVarianceFastDrift2000Kbit30fps) { | 606 TEST_F(OveruseDetectorTest, LowGaussianVarianceFastDrift2000Kbit30fps) { |
607 size_t packet_size = 1200; | 607 size_t packet_size = 1200; |
608 int packets_per_frame = 6; | 608 int packets_per_frame = 6; |
609 int frame_duration_ms = 33; | 609 int frame_duration_ms = 33; |
610 int drift_per_frame_ms = 10; | 610 int drift_per_frame_ms = 10; |
611 int sigma_ms = 3; | 611 int sigma_ms = 3; |
612 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, | 612 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, |
613 frame_duration_ms, sigma_ms); | 613 frame_duration_ms, sigma_ms); |
614 EXPECT_EQ(0, unique_overuse); | 614 EXPECT_EQ(25, unique_overuse); |
615 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, | 615 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, |
616 frame_duration_ms, sigma_ms, drift_per_frame_ms); | 616 frame_duration_ms, sigma_ms, drift_per_frame_ms); |
617 EXPECT_EQ(6, frames_until_overuse); | 617 EXPECT_EQ(4, frames_until_overuse); |
618 } | 618 } |
619 | 619 |
620 TEST_F(OveruseDetectorTest, HighGaussianVariance2000Kbit30fps) { | 620 TEST_F(OveruseDetectorTest, HighGaussianVariance2000Kbit30fps) { |
621 size_t packet_size = 1200; | 621 size_t packet_size = 1200; |
622 int packets_per_frame = 6; | 622 int packets_per_frame = 6; |
623 int frame_duration_ms = 33; | 623 int frame_duration_ms = 33; |
624 int drift_per_frame_ms = 1; | 624 int drift_per_frame_ms = 1; |
625 int sigma_ms = 10; | 625 int sigma_ms = 10; |
626 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, | 626 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, |
627 frame_duration_ms, sigma_ms); | 627 frame_duration_ms, sigma_ms); |
628 EXPECT_EQ(0, unique_overuse); | 628 EXPECT_EQ(45, unique_overuse); |
629 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, | 629 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, |
630 frame_duration_ms, sigma_ms, drift_per_frame_ms); | 630 frame_duration_ms, sigma_ms, drift_per_frame_ms); |
631 EXPECT_EQ(41, frames_until_overuse); | 631 EXPECT_EQ(31, frames_until_overuse); |
632 } | 632 } |
633 | 633 |
634 TEST_F(OveruseDetectorTest, HighGaussianVarianceFastDrift2000Kbit30fps) { | 634 TEST_F(OveruseDetectorTest, HighGaussianVarianceFastDrift2000Kbit30fps) { |
635 size_t packet_size = 1200; | 635 size_t packet_size = 1200; |
636 int packets_per_frame = 6; | 636 int packets_per_frame = 6; |
637 int frame_duration_ms = 33; | 637 int frame_duration_ms = 33; |
638 int drift_per_frame_ms = 10; | 638 int drift_per_frame_ms = 10; |
639 int sigma_ms = 10; | 639 int sigma_ms = 10; |
640 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, | 640 int unique_overuse = Run100000Samples(packets_per_frame, packet_size, |
641 frame_duration_ms, sigma_ms); | 641 frame_duration_ms, sigma_ms); |
642 EXPECT_EQ(0, unique_overuse); | 642 EXPECT_EQ(45, unique_overuse); |
643 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, | 643 int frames_until_overuse = RunUntilOveruse(packets_per_frame, packet_size, |
644 frame_duration_ms, sigma_ms, drift_per_frame_ms); | 644 frame_duration_ms, sigma_ms, drift_per_frame_ms); |
645 EXPECT_EQ(10, frames_until_overuse); | 645 EXPECT_EQ(6, frames_until_overuse); |
646 } | 646 } |
647 | 647 |
648 class OveruseDetectorExperimentTest : public OveruseDetectorTest { | 648 class OveruseDetectorExperimentTest : public OveruseDetectorTest { |
649 public: | 649 public: |
650 OveruseDetectorExperimentTest() | 650 OveruseDetectorExperimentTest() |
651 : override_field_trials_( | 651 : override_field_trials_( |
652 "WebRTC-AdaptiveBweThreshold/Enabled-0.01,0.00018/") {} | 652 "WebRTC-AdaptiveBweThreshold/Enabled-0.01,0.00018/") {} |
653 | 653 |
654 protected: | 654 protected: |
655 void SetUp() override { | 655 void SetUp() override { |
(...skipping 118 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
774 if (overuse_state == kBwOverusing) { | 774 if (overuse_state == kBwOverusing) { |
775 overuse_detected = true; | 775 overuse_detected = true; |
776 } | 776 } |
777 ++num_deltas; | 777 ++num_deltas; |
778 now_ms += 5; | 778 now_ms += 5; |
779 } | 779 } |
780 EXPECT_TRUE(overuse_detected); | 780 EXPECT_TRUE(overuse_detected); |
781 } | 781 } |
782 } // namespace testing | 782 } // namespace testing |
783 } // namespace webrtc | 783 } // namespace webrtc |
OLD | NEW |