OLD | NEW |
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 350 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
361 TEST_F(SendStatisticsProxyTest, OnSendEncodedImageWithoutQpQpSumWontExist) { | 361 TEST_F(SendStatisticsProxyTest, OnSendEncodedImageWithoutQpQpSumWontExist) { |
362 EncodedImage encoded_image; | 362 EncodedImage encoded_image; |
363 CodecSpecificInfo codec_info; | 363 CodecSpecificInfo codec_info; |
364 encoded_image.qp_ = -1; | 364 encoded_image.qp_ = -1; |
365 EXPECT_EQ(rtc::Optional<uint64_t>(), statistics_proxy_->GetStats().qp_sum); | 365 EXPECT_EQ(rtc::Optional<uint64_t>(), statistics_proxy_->GetStats().qp_sum); |
366 statistics_proxy_->OnSendEncodedImage(encoded_image, &codec_info); | 366 statistics_proxy_->OnSendEncodedImage(encoded_image, &codec_info); |
367 EXPECT_EQ(rtc::Optional<uint64_t>(), statistics_proxy_->GetStats().qp_sum); | 367 EXPECT_EQ(rtc::Optional<uint64_t>(), statistics_proxy_->GetStats().qp_sum); |
368 } | 368 } |
369 | 369 |
370 TEST_F(SendStatisticsProxyTest, GetCpuAdaptationStats) { | 370 TEST_F(SendStatisticsProxyTest, GetCpuAdaptationStats) { |
371 ViEEncoder::AdaptCounts cpu_counts; | 371 VideoStreamEncoder::AdaptCounts cpu_counts; |
372 ViEEncoder::AdaptCounts quality_counts; | 372 VideoStreamEncoder::AdaptCounts quality_counts; |
373 EXPECT_FALSE(statistics_proxy_->GetStats().cpu_limited_framerate); | 373 EXPECT_FALSE(statistics_proxy_->GetStats().cpu_limited_framerate); |
374 EXPECT_FALSE(statistics_proxy_->GetStats().cpu_limited_resolution); | 374 EXPECT_FALSE(statistics_proxy_->GetStats().cpu_limited_resolution); |
375 cpu_counts.fps = 1; | 375 cpu_counts.fps = 1; |
376 cpu_counts.resolution = 0; | 376 cpu_counts.resolution = 0; |
377 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); | 377 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); |
378 EXPECT_TRUE(statistics_proxy_->GetStats().cpu_limited_framerate); | 378 EXPECT_TRUE(statistics_proxy_->GetStats().cpu_limited_framerate); |
379 EXPECT_FALSE(statistics_proxy_->GetStats().cpu_limited_resolution); | 379 EXPECT_FALSE(statistics_proxy_->GetStats().cpu_limited_resolution); |
380 cpu_counts.fps = 0; | 380 cpu_counts.fps = 0; |
381 cpu_counts.resolution = 1; | 381 cpu_counts.resolution = 1; |
382 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); | 382 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); |
383 EXPECT_FALSE(statistics_proxy_->GetStats().cpu_limited_framerate); | 383 EXPECT_FALSE(statistics_proxy_->GetStats().cpu_limited_framerate); |
384 EXPECT_TRUE(statistics_proxy_->GetStats().cpu_limited_resolution); | 384 EXPECT_TRUE(statistics_proxy_->GetStats().cpu_limited_resolution); |
385 cpu_counts.fps = 1; | 385 cpu_counts.fps = 1; |
386 cpu_counts.resolution = -1; | 386 cpu_counts.resolution = -1; |
387 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); | 387 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); |
388 EXPECT_TRUE(statistics_proxy_->GetStats().cpu_limited_framerate); | 388 EXPECT_TRUE(statistics_proxy_->GetStats().cpu_limited_framerate); |
389 EXPECT_FALSE(statistics_proxy_->GetStats().cpu_limited_resolution); | 389 EXPECT_FALSE(statistics_proxy_->GetStats().cpu_limited_resolution); |
390 cpu_counts.fps = -1; | 390 cpu_counts.fps = -1; |
391 cpu_counts.resolution = -1; | 391 cpu_counts.resolution = -1; |
392 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); | 392 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); |
393 EXPECT_FALSE(statistics_proxy_->GetStats().cpu_limited_framerate); | 393 EXPECT_FALSE(statistics_proxy_->GetStats().cpu_limited_framerate); |
394 EXPECT_FALSE(statistics_proxy_->GetStats().cpu_limited_resolution); | 394 EXPECT_FALSE(statistics_proxy_->GetStats().cpu_limited_resolution); |
395 } | 395 } |
396 | 396 |
397 TEST_F(SendStatisticsProxyTest, GetQualityAdaptationStats) { | 397 TEST_F(SendStatisticsProxyTest, GetQualityAdaptationStats) { |
398 ViEEncoder::AdaptCounts cpu_counts; | 398 VideoStreamEncoder::AdaptCounts cpu_counts; |
399 ViEEncoder::AdaptCounts quality_counts; | 399 VideoStreamEncoder::AdaptCounts quality_counts; |
400 EXPECT_FALSE(statistics_proxy_->GetStats().bw_limited_framerate); | 400 EXPECT_FALSE(statistics_proxy_->GetStats().bw_limited_framerate); |
401 EXPECT_FALSE(statistics_proxy_->GetStats().bw_limited_resolution); | 401 EXPECT_FALSE(statistics_proxy_->GetStats().bw_limited_resolution); |
402 quality_counts.fps = 1; | 402 quality_counts.fps = 1; |
403 quality_counts.resolution = 0; | 403 quality_counts.resolution = 0; |
404 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); | 404 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); |
405 EXPECT_TRUE(statistics_proxy_->GetStats().bw_limited_framerate); | 405 EXPECT_TRUE(statistics_proxy_->GetStats().bw_limited_framerate); |
406 EXPECT_FALSE(statistics_proxy_->GetStats().bw_limited_resolution); | 406 EXPECT_FALSE(statistics_proxy_->GetStats().bw_limited_resolution); |
407 quality_counts.fps = 0; | 407 quality_counts.fps = 0; |
408 quality_counts.resolution = 1; | 408 quality_counts.resolution = 1; |
409 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); | 409 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); |
410 EXPECT_FALSE(statistics_proxy_->GetStats().bw_limited_framerate); | 410 EXPECT_FALSE(statistics_proxy_->GetStats().bw_limited_framerate); |
411 EXPECT_TRUE(statistics_proxy_->GetStats().bw_limited_resolution); | 411 EXPECT_TRUE(statistics_proxy_->GetStats().bw_limited_resolution); |
412 quality_counts.fps = 1; | 412 quality_counts.fps = 1; |
413 quality_counts.resolution = -1; | 413 quality_counts.resolution = -1; |
414 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); | 414 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); |
415 EXPECT_TRUE(statistics_proxy_->GetStats().bw_limited_framerate); | 415 EXPECT_TRUE(statistics_proxy_->GetStats().bw_limited_framerate); |
416 EXPECT_FALSE(statistics_proxy_->GetStats().bw_limited_resolution); | 416 EXPECT_FALSE(statistics_proxy_->GetStats().bw_limited_resolution); |
417 quality_counts.fps = -1; | 417 quality_counts.fps = -1; |
418 quality_counts.resolution = -1; | 418 quality_counts.resolution = -1; |
419 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); | 419 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); |
420 EXPECT_FALSE(statistics_proxy_->GetStats().bw_limited_framerate); | 420 EXPECT_FALSE(statistics_proxy_->GetStats().bw_limited_framerate); |
421 EXPECT_FALSE(statistics_proxy_->GetStats().bw_limited_resolution); | 421 EXPECT_FALSE(statistics_proxy_->GetStats().bw_limited_resolution); |
422 } | 422 } |
423 | 423 |
424 TEST_F(SendStatisticsProxyTest, GetStatsReportsCpuAdaptChanges) { | 424 TEST_F(SendStatisticsProxyTest, GetStatsReportsCpuAdaptChanges) { |
425 ViEEncoder::AdaptCounts cpu_counts; | 425 VideoStreamEncoder::AdaptCounts cpu_counts; |
426 ViEEncoder::AdaptCounts quality_counts; | 426 VideoStreamEncoder::AdaptCounts quality_counts; |
427 EXPECT_EQ(0, statistics_proxy_->GetStats().number_of_cpu_adapt_changes); | 427 EXPECT_EQ(0, statistics_proxy_->GetStats().number_of_cpu_adapt_changes); |
428 | 428 |
429 cpu_counts.resolution = 1; | 429 cpu_counts.resolution = 1; |
430 statistics_proxy_->OnCpuAdaptationChanged(cpu_counts, quality_counts); | 430 statistics_proxy_->OnCpuAdaptationChanged(cpu_counts, quality_counts); |
431 EXPECT_FALSE(statistics_proxy_->GetStats().cpu_limited_framerate); | 431 EXPECT_FALSE(statistics_proxy_->GetStats().cpu_limited_framerate); |
432 EXPECT_TRUE(statistics_proxy_->GetStats().cpu_limited_resolution); | 432 EXPECT_TRUE(statistics_proxy_->GetStats().cpu_limited_resolution); |
433 EXPECT_EQ(1, statistics_proxy_->GetStats().number_of_cpu_adapt_changes); | 433 EXPECT_EQ(1, statistics_proxy_->GetStats().number_of_cpu_adapt_changes); |
434 | 434 |
435 cpu_counts.resolution = 2; | 435 cpu_counts.resolution = 2; |
436 statistics_proxy_->OnCpuAdaptationChanged(cpu_counts, quality_counts); | 436 statistics_proxy_->OnCpuAdaptationChanged(cpu_counts, quality_counts); |
437 EXPECT_FALSE(statistics_proxy_->GetStats().cpu_limited_framerate); | 437 EXPECT_FALSE(statistics_proxy_->GetStats().cpu_limited_framerate); |
438 EXPECT_TRUE(statistics_proxy_->GetStats().cpu_limited_resolution); | 438 EXPECT_TRUE(statistics_proxy_->GetStats().cpu_limited_resolution); |
439 EXPECT_EQ(2, statistics_proxy_->GetStats().number_of_cpu_adapt_changes); | 439 EXPECT_EQ(2, statistics_proxy_->GetStats().number_of_cpu_adapt_changes); |
440 EXPECT_EQ(0, statistics_proxy_->GetStats().number_of_quality_adapt_changes); | 440 EXPECT_EQ(0, statistics_proxy_->GetStats().number_of_quality_adapt_changes); |
441 } | 441 } |
442 | 442 |
443 TEST_F(SendStatisticsProxyTest, GetStatsReportsQualityAdaptChanges) { | 443 TEST_F(SendStatisticsProxyTest, GetStatsReportsQualityAdaptChanges) { |
444 ViEEncoder::AdaptCounts cpu_counts; | 444 VideoStreamEncoder::AdaptCounts cpu_counts; |
445 ViEEncoder::AdaptCounts quality_counts; | 445 VideoStreamEncoder::AdaptCounts quality_counts; |
446 EXPECT_EQ(0, statistics_proxy_->GetStats().number_of_quality_adapt_changes); | 446 EXPECT_EQ(0, statistics_proxy_->GetStats().number_of_quality_adapt_changes); |
447 | 447 |
448 quality_counts.fps = 1; | 448 quality_counts.fps = 1; |
449 statistics_proxy_->OnQualityAdaptationChanged(cpu_counts, quality_counts); | 449 statistics_proxy_->OnQualityAdaptationChanged(cpu_counts, quality_counts); |
450 EXPECT_TRUE(statistics_proxy_->GetStats().bw_limited_framerate); | 450 EXPECT_TRUE(statistics_proxy_->GetStats().bw_limited_framerate); |
451 EXPECT_FALSE(statistics_proxy_->GetStats().bw_limited_resolution); | 451 EXPECT_FALSE(statistics_proxy_->GetStats().bw_limited_resolution); |
452 EXPECT_EQ(1, statistics_proxy_->GetStats().number_of_quality_adapt_changes); | 452 EXPECT_EQ(1, statistics_proxy_->GetStats().number_of_quality_adapt_changes); |
453 | 453 |
454 quality_counts.fps = 0; | 454 quality_counts.fps = 0; |
455 statistics_proxy_->OnQualityAdaptationChanged(cpu_counts, quality_counts); | 455 statistics_proxy_->OnQualityAdaptationChanged(cpu_counts, quality_counts); |
(...skipping 11 matching lines...) Expand all Loading... |
467 statistics_proxy_.reset(); | 467 statistics_proxy_.reset(); |
468 EXPECT_EQ(0, metrics::NumSamples("WebRTC.Video.AdaptChangesPerMinute.Cpu")); | 468 EXPECT_EQ(0, metrics::NumSamples("WebRTC.Video.AdaptChangesPerMinute.Cpu")); |
469 EXPECT_EQ(0, | 469 EXPECT_EQ(0, |
470 metrics::NumSamples("WebRTC.Video.AdaptChangesPerMinute.Quality")); | 470 metrics::NumSamples("WebRTC.Video.AdaptChangesPerMinute.Quality")); |
471 } | 471 } |
472 | 472 |
473 TEST_F(SendStatisticsProxyTest, AdaptChangesNotReported_MinRuntimeNotPassed) { | 473 TEST_F(SendStatisticsProxyTest, AdaptChangesNotReported_MinRuntimeNotPassed) { |
474 // First RTP packet sent. | 474 // First RTP packet sent. |
475 UpdateDataCounters(kFirstSsrc); | 475 UpdateDataCounters(kFirstSsrc); |
476 // Enable adaptation. | 476 // Enable adaptation. |
477 ViEEncoder::AdaptCounts cpu_counts; | 477 VideoStreamEncoder::AdaptCounts cpu_counts; |
478 ViEEncoder::AdaptCounts quality_counts; | 478 VideoStreamEncoder::AdaptCounts quality_counts; |
479 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); | 479 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); |
480 // Min runtime has not passed. | 480 // Min runtime has not passed. |
481 fake_clock_.AdvanceTimeMilliseconds(metrics::kMinRunTimeInSeconds * 1000 - 1); | 481 fake_clock_.AdvanceTimeMilliseconds(metrics::kMinRunTimeInSeconds * 1000 - 1); |
482 statistics_proxy_.reset(); | 482 statistics_proxy_.reset(); |
483 EXPECT_EQ(0, metrics::NumSamples("WebRTC.Video.AdaptChangesPerMinute.Cpu")); | 483 EXPECT_EQ(0, metrics::NumSamples("WebRTC.Video.AdaptChangesPerMinute.Cpu")); |
484 EXPECT_EQ(0, | 484 EXPECT_EQ(0, |
485 metrics::NumSamples("WebRTC.Video.AdaptChangesPerMinute.Quality")); | 485 metrics::NumSamples("WebRTC.Video.AdaptChangesPerMinute.Quality")); |
486 } | 486 } |
487 | 487 |
488 TEST_F(SendStatisticsProxyTest, ZeroAdaptChangesReported) { | 488 TEST_F(SendStatisticsProxyTest, ZeroAdaptChangesReported) { |
489 // First RTP packet sent. | 489 // First RTP packet sent. |
490 UpdateDataCounters(kFirstSsrc); | 490 UpdateDataCounters(kFirstSsrc); |
491 // Enable adaptation. | 491 // Enable adaptation. |
492 ViEEncoder::AdaptCounts cpu_counts; | 492 VideoStreamEncoder::AdaptCounts cpu_counts; |
493 ViEEncoder::AdaptCounts quality_counts; | 493 VideoStreamEncoder::AdaptCounts quality_counts; |
494 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); | 494 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); |
495 // Min runtime has passed. | 495 // Min runtime has passed. |
496 fake_clock_.AdvanceTimeMilliseconds(metrics::kMinRunTimeInSeconds * 1000); | 496 fake_clock_.AdvanceTimeMilliseconds(metrics::kMinRunTimeInSeconds * 1000); |
497 statistics_proxy_.reset(); | 497 statistics_proxy_.reset(); |
498 EXPECT_EQ(1, metrics::NumSamples("WebRTC.Video.AdaptChangesPerMinute.Cpu")); | 498 EXPECT_EQ(1, metrics::NumSamples("WebRTC.Video.AdaptChangesPerMinute.Cpu")); |
499 EXPECT_EQ(1, metrics::NumEvents("WebRTC.Video.AdaptChangesPerMinute.Cpu", 0)); | 499 EXPECT_EQ(1, metrics::NumEvents("WebRTC.Video.AdaptChangesPerMinute.Cpu", 0)); |
500 EXPECT_EQ(1, | 500 EXPECT_EQ(1, |
501 metrics::NumSamples("WebRTC.Video.AdaptChangesPerMinute.Quality")); | 501 metrics::NumSamples("WebRTC.Video.AdaptChangesPerMinute.Quality")); |
502 EXPECT_EQ( | 502 EXPECT_EQ( |
503 1, metrics::NumEvents("WebRTC.Video.AdaptChangesPerMinute.Quality", 0)); | 503 1, metrics::NumEvents("WebRTC.Video.AdaptChangesPerMinute.Quality", 0)); |
504 } | 504 } |
505 | 505 |
506 TEST_F(SendStatisticsProxyTest, CpuAdaptChangesReported) { | 506 TEST_F(SendStatisticsProxyTest, CpuAdaptChangesReported) { |
507 // First RTP packet sent. | 507 // First RTP packet sent. |
508 UpdateDataCounters(kFirstSsrc); | 508 UpdateDataCounters(kFirstSsrc); |
509 // Enable adaptation. | 509 // Enable adaptation. |
510 ViEEncoder::AdaptCounts cpu_counts; | 510 VideoStreamEncoder::AdaptCounts cpu_counts; |
511 ViEEncoder::AdaptCounts quality_counts; | 511 VideoStreamEncoder::AdaptCounts quality_counts; |
512 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); | 512 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); |
513 // Adapt changes: 1, elapsed time: 10 sec => 6 per minute. | 513 // Adapt changes: 1, elapsed time: 10 sec => 6 per minute. |
514 statistics_proxy_->OnCpuAdaptationChanged(cpu_counts, quality_counts); | 514 statistics_proxy_->OnCpuAdaptationChanged(cpu_counts, quality_counts); |
515 fake_clock_.AdvanceTimeMilliseconds(10000); | 515 fake_clock_.AdvanceTimeMilliseconds(10000); |
516 statistics_proxy_.reset(); | 516 statistics_proxy_.reset(); |
517 EXPECT_EQ(1, metrics::NumSamples("WebRTC.Video.AdaptChangesPerMinute.Cpu")); | 517 EXPECT_EQ(1, metrics::NumSamples("WebRTC.Video.AdaptChangesPerMinute.Cpu")); |
518 EXPECT_EQ(1, metrics::NumEvents("WebRTC.Video.AdaptChangesPerMinute.Cpu", 6)); | 518 EXPECT_EQ(1, metrics::NumEvents("WebRTC.Video.AdaptChangesPerMinute.Cpu", 6)); |
519 } | 519 } |
520 | 520 |
521 TEST_F(SendStatisticsProxyTest, AdaptChangesStatsExcludesDisabledTime) { | 521 TEST_F(SendStatisticsProxyTest, AdaptChangesStatsExcludesDisabledTime) { |
522 // First RTP packet sent. | 522 // First RTP packet sent. |
523 UpdateDataCounters(kFirstSsrc); | 523 UpdateDataCounters(kFirstSsrc); |
524 | 524 |
525 // Disable quality adaptation. | 525 // Disable quality adaptation. |
526 ViEEncoder::AdaptCounts cpu_counts; | 526 VideoStreamEncoder::AdaptCounts cpu_counts; |
527 ViEEncoder::AdaptCounts quality_counts; | 527 VideoStreamEncoder::AdaptCounts quality_counts; |
528 quality_counts.fps = -1; | 528 quality_counts.fps = -1; |
529 quality_counts.resolution = -1; | 529 quality_counts.resolution = -1; |
530 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); | 530 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); |
531 fake_clock_.AdvanceTimeMilliseconds(10000); | 531 fake_clock_.AdvanceTimeMilliseconds(10000); |
532 | 532 |
533 // Enable quality adaptation. | 533 // Enable quality adaptation. |
534 // Adapt changes: 2, elapsed time: 20 sec. | 534 // Adapt changes: 2, elapsed time: 20 sec. |
535 quality_counts.fps = 0; | 535 quality_counts.fps = 0; |
536 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); | 536 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); |
537 fake_clock_.AdvanceTimeMilliseconds(5000); | 537 fake_clock_.AdvanceTimeMilliseconds(5000); |
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
584 EXPECT_EQ(0, metrics::NumSamples("WebRTC.Video.AdaptChangesPerMinute.Cpu")); | 584 EXPECT_EQ(0, metrics::NumSamples("WebRTC.Video.AdaptChangesPerMinute.Cpu")); |
585 EXPECT_EQ(0, | 585 EXPECT_EQ(0, |
586 metrics::NumSamples("WebRTC.Video.AdaptChangesPerMinute.Quality")); | 586 metrics::NumSamples("WebRTC.Video.AdaptChangesPerMinute.Quality")); |
587 } | 587 } |
588 | 588 |
589 TEST_F(SendStatisticsProxyTest, QualityAdaptChangesStatsExcludesSuspendedTime) { | 589 TEST_F(SendStatisticsProxyTest, QualityAdaptChangesStatsExcludesSuspendedTime) { |
590 // First RTP packet sent. | 590 // First RTP packet sent. |
591 UpdateDataCounters(kFirstSsrc); | 591 UpdateDataCounters(kFirstSsrc); |
592 | 592 |
593 // Enable adaptation. | 593 // Enable adaptation. |
594 ViEEncoder::AdaptCounts cpu_counts; | 594 VideoStreamEncoder::AdaptCounts cpu_counts; |
595 ViEEncoder::AdaptCounts quality_counts; | 595 VideoStreamEncoder::AdaptCounts quality_counts; |
596 // Adapt changes: 2, elapsed time: 20 sec. | 596 // Adapt changes: 2, elapsed time: 20 sec. |
597 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); | 597 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); |
598 fake_clock_.AdvanceTimeMilliseconds(20000); | 598 fake_clock_.AdvanceTimeMilliseconds(20000); |
599 statistics_proxy_->OnQualityAdaptationChanged(cpu_counts, quality_counts); | 599 statistics_proxy_->OnQualityAdaptationChanged(cpu_counts, quality_counts); |
600 statistics_proxy_->OnQualityAdaptationChanged(cpu_counts, quality_counts); | 600 statistics_proxy_->OnQualityAdaptationChanged(cpu_counts, quality_counts); |
601 | 601 |
602 // Suspend and resume video. | 602 // Suspend and resume video. |
603 statistics_proxy_->OnSuspendChange(true); | 603 statistics_proxy_->OnSuspendChange(true); |
604 fake_clock_.AdvanceTimeMilliseconds(30000); | 604 fake_clock_.AdvanceTimeMilliseconds(30000); |
605 statistics_proxy_->OnSuspendChange(false); | 605 statistics_proxy_->OnSuspendChange(false); |
(...skipping 12 matching lines...) Expand all Loading... |
618 | 618 |
619 TEST_F(SendStatisticsProxyTest, CpuAdaptChangesStatsExcludesSuspendedTime) { | 619 TEST_F(SendStatisticsProxyTest, CpuAdaptChangesStatsExcludesSuspendedTime) { |
620 // First RTP packet sent. | 620 // First RTP packet sent. |
621 UpdateDataCounters(kFirstSsrc); | 621 UpdateDataCounters(kFirstSsrc); |
622 | 622 |
623 // Video not suspended. | 623 // Video not suspended. |
624 statistics_proxy_->OnSuspendChange(false); | 624 statistics_proxy_->OnSuspendChange(false); |
625 fake_clock_.AdvanceTimeMilliseconds(30000); | 625 fake_clock_.AdvanceTimeMilliseconds(30000); |
626 | 626 |
627 // Enable adaptation. | 627 // Enable adaptation. |
628 ViEEncoder::AdaptCounts cpu_counts; | 628 VideoStreamEncoder::AdaptCounts cpu_counts; |
629 ViEEncoder::AdaptCounts quality_counts; | 629 VideoStreamEncoder::AdaptCounts quality_counts; |
630 // Adapt changes: 1, elapsed time: 20 sec. | 630 // Adapt changes: 1, elapsed time: 20 sec. |
631 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); | 631 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); |
632 fake_clock_.AdvanceTimeMilliseconds(10000); | 632 fake_clock_.AdvanceTimeMilliseconds(10000); |
633 statistics_proxy_->OnCpuAdaptationChanged(cpu_counts, quality_counts); | 633 statistics_proxy_->OnCpuAdaptationChanged(cpu_counts, quality_counts); |
634 | 634 |
635 // Video not suspended, stats time already started. | 635 // Video not suspended, stats time already started. |
636 statistics_proxy_->OnSuspendChange(false); | 636 statistics_proxy_->OnSuspendChange(false); |
637 fake_clock_.AdvanceTimeMilliseconds(10000); | 637 fake_clock_.AdvanceTimeMilliseconds(10000); |
638 | 638 |
639 // Disable adaptation. | 639 // Disable adaptation. |
(...skipping 23 matching lines...) Expand all Loading... |
663 } | 663 } |
664 | 664 |
665 TEST_F(SendStatisticsProxyTest, AdaptChangesStatsNotStartedIfVideoSuspended) { | 665 TEST_F(SendStatisticsProxyTest, AdaptChangesStatsNotStartedIfVideoSuspended) { |
666 // First RTP packet sent. | 666 // First RTP packet sent. |
667 UpdateDataCounters(kFirstSsrc); | 667 UpdateDataCounters(kFirstSsrc); |
668 | 668 |
669 // Video suspended. | 669 // Video suspended. |
670 statistics_proxy_->OnSuspendChange(true); | 670 statistics_proxy_->OnSuspendChange(true); |
671 | 671 |
672 // Enable adaptation, stats time not started when suspended. | 672 // Enable adaptation, stats time not started when suspended. |
673 ViEEncoder::AdaptCounts cpu_counts; | 673 VideoStreamEncoder::AdaptCounts cpu_counts; |
674 ViEEncoder::AdaptCounts quality_counts; | 674 VideoStreamEncoder::AdaptCounts quality_counts; |
675 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); | 675 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); |
676 fake_clock_.AdvanceTimeMilliseconds(10000); | 676 fake_clock_.AdvanceTimeMilliseconds(10000); |
677 | 677 |
678 // Resume video, stats time started. | 678 // Resume video, stats time started. |
679 // Adapt changes: 1, elapsed time: 10 sec. | 679 // Adapt changes: 1, elapsed time: 10 sec. |
680 statistics_proxy_->OnSuspendChange(false); | 680 statistics_proxy_->OnSuspendChange(false); |
681 fake_clock_.AdvanceTimeMilliseconds(10000); | 681 fake_clock_.AdvanceTimeMilliseconds(10000); |
682 statistics_proxy_->OnCpuAdaptationChanged(cpu_counts, quality_counts); | 682 statistics_proxy_->OnCpuAdaptationChanged(cpu_counts, quality_counts); |
683 | 683 |
684 // Adapt changes: 1, elapsed time: 10 sec => 6 per minute. | 684 // Adapt changes: 1, elapsed time: 10 sec => 6 per minute. |
685 statistics_proxy_.reset(); | 685 statistics_proxy_.reset(); |
686 EXPECT_EQ(1, metrics::NumSamples("WebRTC.Video.AdaptChangesPerMinute.Cpu")); | 686 EXPECT_EQ(1, metrics::NumSamples("WebRTC.Video.AdaptChangesPerMinute.Cpu")); |
687 EXPECT_EQ(1, metrics::NumEvents("WebRTC.Video.AdaptChangesPerMinute.Cpu", 6)); | 687 EXPECT_EQ(1, metrics::NumEvents("WebRTC.Video.AdaptChangesPerMinute.Cpu", 6)); |
688 } | 688 } |
689 | 689 |
690 TEST_F(SendStatisticsProxyTest, AdaptChangesStatsRestartsOnFirstSentPacket) { | 690 TEST_F(SendStatisticsProxyTest, AdaptChangesStatsRestartsOnFirstSentPacket) { |
691 // Send first packet, adaptation enabled. | 691 // Send first packet, adaptation enabled. |
692 // Elapsed time before first packet is sent should be excluded. | 692 // Elapsed time before first packet is sent should be excluded. |
693 ViEEncoder::AdaptCounts cpu_counts; | 693 VideoStreamEncoder::AdaptCounts cpu_counts; |
694 ViEEncoder::AdaptCounts quality_counts; | 694 VideoStreamEncoder::AdaptCounts quality_counts; |
695 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); | 695 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); |
696 fake_clock_.AdvanceTimeMilliseconds(10000); | 696 fake_clock_.AdvanceTimeMilliseconds(10000); |
697 UpdateDataCounters(kFirstSsrc); | 697 UpdateDataCounters(kFirstSsrc); |
698 | 698 |
699 // Adapt changes: 1, elapsed time: 10 sec. | 699 // Adapt changes: 1, elapsed time: 10 sec. |
700 fake_clock_.AdvanceTimeMilliseconds(10000); | 700 fake_clock_.AdvanceTimeMilliseconds(10000); |
701 statistics_proxy_->OnQualityAdaptationChanged(cpu_counts, quality_counts); | 701 statistics_proxy_->OnQualityAdaptationChanged(cpu_counts, quality_counts); |
702 UpdateDataCounters(kFirstSsrc); | 702 UpdateDataCounters(kFirstSsrc); |
703 | 703 |
704 // Adapt changes: 1, elapsed time: 10 sec => 6 per minute. | 704 // Adapt changes: 1, elapsed time: 10 sec => 6 per minute. |
705 statistics_proxy_.reset(); | 705 statistics_proxy_.reset(); |
706 EXPECT_EQ(1, | 706 EXPECT_EQ(1, |
707 metrics::NumSamples("WebRTC.Video.AdaptChangesPerMinute.Quality")); | 707 metrics::NumSamples("WebRTC.Video.AdaptChangesPerMinute.Quality")); |
708 EXPECT_EQ( | 708 EXPECT_EQ( |
709 1, metrics::NumEvents("WebRTC.Video.AdaptChangesPerMinute.Quality", 6)); | 709 1, metrics::NumEvents("WebRTC.Video.AdaptChangesPerMinute.Quality", 6)); |
710 } | 710 } |
711 | 711 |
712 TEST_F(SendStatisticsProxyTest, AdaptChangesStatsStartedAfterFirstSentPacket) { | 712 TEST_F(SendStatisticsProxyTest, AdaptChangesStatsStartedAfterFirstSentPacket) { |
713 // Enable and disable adaptation. | 713 // Enable and disable adaptation. |
714 ViEEncoder::AdaptCounts cpu_counts; | 714 VideoStreamEncoder::AdaptCounts cpu_counts; |
715 ViEEncoder::AdaptCounts quality_counts; | 715 VideoStreamEncoder::AdaptCounts quality_counts; |
716 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); | 716 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); |
717 fake_clock_.AdvanceTimeMilliseconds(60000); | 717 fake_clock_.AdvanceTimeMilliseconds(60000); |
718 cpu_counts.fps = -1; | 718 cpu_counts.fps = -1; |
719 cpu_counts.resolution = -1; | 719 cpu_counts.resolution = -1; |
720 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); | 720 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); |
721 | 721 |
722 // Send first packet, scaling disabled. | 722 // Send first packet, scaling disabled. |
723 // Elapsed time before first packet is sent should be excluded. | 723 // Elapsed time before first packet is sent should be excluded. |
724 UpdateDataCounters(kFirstSsrc); | 724 UpdateDataCounters(kFirstSsrc); |
725 fake_clock_.AdvanceTimeMilliseconds(60000); | 725 fake_clock_.AdvanceTimeMilliseconds(60000); |
(...skipping 10 matching lines...) Expand all Loading... |
736 | 736 |
737 // Adapt changes: 1, elapsed time: 20 sec => 3 per minute. | 737 // Adapt changes: 1, elapsed time: 20 sec => 3 per minute. |
738 statistics_proxy_.reset(); | 738 statistics_proxy_.reset(); |
739 EXPECT_EQ(1, metrics::NumSamples("WebRTC.Video.AdaptChangesPerMinute.Cpu")); | 739 EXPECT_EQ(1, metrics::NumSamples("WebRTC.Video.AdaptChangesPerMinute.Cpu")); |
740 EXPECT_EQ(1, metrics::NumEvents("WebRTC.Video.AdaptChangesPerMinute.Cpu", 3)); | 740 EXPECT_EQ(1, metrics::NumEvents("WebRTC.Video.AdaptChangesPerMinute.Cpu", 3)); |
741 } | 741 } |
742 | 742 |
743 TEST_F(SendStatisticsProxyTest, AdaptChangesReportedAfterContentSwitch) { | 743 TEST_F(SendStatisticsProxyTest, AdaptChangesReportedAfterContentSwitch) { |
744 // First RTP packet sent, cpu adaptation enabled. | 744 // First RTP packet sent, cpu adaptation enabled. |
745 UpdateDataCounters(kFirstSsrc); | 745 UpdateDataCounters(kFirstSsrc); |
746 ViEEncoder::AdaptCounts cpu_counts; | 746 VideoStreamEncoder::AdaptCounts cpu_counts; |
747 ViEEncoder::AdaptCounts quality_counts; | 747 VideoStreamEncoder::AdaptCounts quality_counts; |
748 quality_counts.fps = -1; | 748 quality_counts.fps = -1; |
749 quality_counts.resolution = -1; | 749 quality_counts.resolution = -1; |
750 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); | 750 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); |
751 | 751 |
752 // Adapt changes: 2, elapsed time: 15 sec => 8 per minute. | 752 // Adapt changes: 2, elapsed time: 15 sec => 8 per minute. |
753 statistics_proxy_->OnCpuAdaptationChanged(cpu_counts, quality_counts); | 753 statistics_proxy_->OnCpuAdaptationChanged(cpu_counts, quality_counts); |
754 fake_clock_.AdvanceTimeMilliseconds(6000); | 754 fake_clock_.AdvanceTimeMilliseconds(6000); |
755 statistics_proxy_->OnCpuAdaptationChanged(cpu_counts, quality_counts); | 755 statistics_proxy_->OnCpuAdaptationChanged(cpu_counts, quality_counts); |
756 fake_clock_.AdvanceTimeMilliseconds(9000); | 756 fake_clock_.AdvanceTimeMilliseconds(9000); |
757 | 757 |
(...skipping 139 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
897 encoded_image._timeStamp = i + 1; | 897 encoded_image._timeStamp = i + 1; |
898 statistics_proxy_->OnSendEncodedImage(encoded_image, nullptr); | 898 statistics_proxy_->OnSendEncodedImage(encoded_image, nullptr); |
899 } | 899 } |
900 // Suspended time interval should not affect the framerate. | 900 // Suspended time interval should not affect the framerate. |
901 statistics_proxy_.reset(); | 901 statistics_proxy_.reset(); |
902 EXPECT_EQ(1, metrics::NumSamples("WebRTC.Video.SentFramesPerSecond")); | 902 EXPECT_EQ(1, metrics::NumSamples("WebRTC.Video.SentFramesPerSecond")); |
903 EXPECT_EQ(1, metrics::NumEvents("WebRTC.Video.SentFramesPerSecond", kFps)); | 903 EXPECT_EQ(1, metrics::NumEvents("WebRTC.Video.SentFramesPerSecond", kFps)); |
904 } | 904 } |
905 | 905 |
906 TEST_F(SendStatisticsProxyTest, CpuLimitedHistogramNotUpdatedWhenDisabled) { | 906 TEST_F(SendStatisticsProxyTest, CpuLimitedHistogramNotUpdatedWhenDisabled) { |
907 ViEEncoder::AdaptCounts cpu_counts; | 907 VideoStreamEncoder::AdaptCounts cpu_counts; |
908 ViEEncoder::AdaptCounts quality_counts; | 908 VideoStreamEncoder::AdaptCounts quality_counts; |
909 cpu_counts.resolution = -1; | 909 cpu_counts.resolution = -1; |
910 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); | 910 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); |
911 | 911 |
912 for (int i = 0; i < SendStatisticsProxy::kMinRequiredMetricsSamples; ++i) | 912 for (int i = 0; i < SendStatisticsProxy::kMinRequiredMetricsSamples; ++i) |
913 statistics_proxy_->OnIncomingFrame(kWidth, kHeight); | 913 statistics_proxy_->OnIncomingFrame(kWidth, kHeight); |
914 | 914 |
915 statistics_proxy_.reset(); | 915 statistics_proxy_.reset(); |
916 EXPECT_EQ(0, | 916 EXPECT_EQ(0, |
917 metrics::NumSamples("WebRTC.Video.CpuLimitedResolutionInPercent")); | 917 metrics::NumSamples("WebRTC.Video.CpuLimitedResolutionInPercent")); |
918 } | 918 } |
919 | 919 |
920 TEST_F(SendStatisticsProxyTest, CpuLimitedHistogramUpdated) { | 920 TEST_F(SendStatisticsProxyTest, CpuLimitedHistogramUpdated) { |
921 ViEEncoder::AdaptCounts cpu_counts; | 921 VideoStreamEncoder::AdaptCounts cpu_counts; |
922 ViEEncoder::AdaptCounts quality_counts; | 922 VideoStreamEncoder::AdaptCounts quality_counts; |
923 cpu_counts.resolution = 0; | 923 cpu_counts.resolution = 0; |
924 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); | 924 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); |
925 | 925 |
926 for (int i = 0; i < SendStatisticsProxy::kMinRequiredMetricsSamples; ++i) | 926 for (int i = 0; i < SendStatisticsProxy::kMinRequiredMetricsSamples; ++i) |
927 statistics_proxy_->OnIncomingFrame(kWidth, kHeight); | 927 statistics_proxy_->OnIncomingFrame(kWidth, kHeight); |
928 | 928 |
929 cpu_counts.resolution = 1; | 929 cpu_counts.resolution = 1; |
930 statistics_proxy_->OnCpuAdaptationChanged(cpu_counts, quality_counts); | 930 statistics_proxy_->OnCpuAdaptationChanged(cpu_counts, quality_counts); |
931 | 931 |
932 for (int i = 0; i < SendStatisticsProxy::kMinRequiredMetricsSamples; ++i) | 932 for (int i = 0; i < SendStatisticsProxy::kMinRequiredMetricsSamples; ++i) |
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1209 // Resolutions disabled. | 1209 // Resolutions disabled. |
1210 EXPECT_EQ(1, metrics::NumSamples( | 1210 EXPECT_EQ(1, metrics::NumSamples( |
1211 "WebRTC.Video.BandwidthLimitedResolutionsDisabled")); | 1211 "WebRTC.Video.BandwidthLimitedResolutionsDisabled")); |
1212 EXPECT_EQ( | 1212 EXPECT_EQ( |
1213 1, metrics::NumEvents("WebRTC.Video.BandwidthLimitedResolutionsDisabled", | 1213 1, metrics::NumEvents("WebRTC.Video.BandwidthLimitedResolutionsDisabled", |
1214 kResolutionsDisabled)); | 1214 kResolutionsDisabled)); |
1215 } | 1215 } |
1216 | 1216 |
1217 TEST_F(SendStatisticsProxyTest, | 1217 TEST_F(SendStatisticsProxyTest, |
1218 QualityLimitedHistogramsNotUpdatedWhenDisabled) { | 1218 QualityLimitedHistogramsNotUpdatedWhenDisabled) { |
1219 ViEEncoder::AdaptCounts cpu_counts; | 1219 VideoStreamEncoder::AdaptCounts cpu_counts; |
1220 ViEEncoder::AdaptCounts quality_counts; | 1220 VideoStreamEncoder::AdaptCounts quality_counts; |
1221 quality_counts.resolution = -1; | 1221 quality_counts.resolution = -1; |
1222 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); | 1222 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); |
1223 EncodedImage encoded_image; | 1223 EncodedImage encoded_image; |
1224 for (int i = 0; i < SendStatisticsProxy::kMinRequiredMetricsSamples; ++i) | 1224 for (int i = 0; i < SendStatisticsProxy::kMinRequiredMetricsSamples; ++i) |
1225 statistics_proxy_->OnSendEncodedImage(encoded_image, &kDefaultCodecInfo); | 1225 statistics_proxy_->OnSendEncodedImage(encoded_image, &kDefaultCodecInfo); |
1226 | 1226 |
1227 // Histograms are updated when the statistics_proxy_ is deleted. | 1227 // Histograms are updated when the statistics_proxy_ is deleted. |
1228 statistics_proxy_.reset(); | 1228 statistics_proxy_.reset(); |
1229 EXPECT_EQ( | 1229 EXPECT_EQ( |
1230 0, metrics::NumSamples("WebRTC.Video.QualityLimitedResolutionInPercent")); | 1230 0, metrics::NumSamples("WebRTC.Video.QualityLimitedResolutionInPercent")); |
1231 EXPECT_EQ(0, metrics::NumSamples( | 1231 EXPECT_EQ(0, metrics::NumSamples( |
1232 "WebRTC.Video.QualityLimitedResolutionDownscales")); | 1232 "WebRTC.Video.QualityLimitedResolutionDownscales")); |
1233 } | 1233 } |
1234 | 1234 |
1235 TEST_F(SendStatisticsProxyTest, | 1235 TEST_F(SendStatisticsProxyTest, |
1236 QualityLimitedHistogramsUpdatedWhenEnabled_NoResolutionDownscale) { | 1236 QualityLimitedHistogramsUpdatedWhenEnabled_NoResolutionDownscale) { |
1237 ViEEncoder::AdaptCounts cpu_counts; | 1237 VideoStreamEncoder::AdaptCounts cpu_counts; |
1238 ViEEncoder::AdaptCounts quality_counts; | 1238 VideoStreamEncoder::AdaptCounts quality_counts; |
1239 quality_counts.resolution = 0; | 1239 quality_counts.resolution = 0; |
1240 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); | 1240 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); |
1241 EncodedImage encoded_image; | 1241 EncodedImage encoded_image; |
1242 for (int i = 0; i < SendStatisticsProxy::kMinRequiredMetricsSamples; ++i) | 1242 for (int i = 0; i < SendStatisticsProxy::kMinRequiredMetricsSamples; ++i) |
1243 statistics_proxy_->OnSendEncodedImage(encoded_image, &kDefaultCodecInfo); | 1243 statistics_proxy_->OnSendEncodedImage(encoded_image, &kDefaultCodecInfo); |
1244 | 1244 |
1245 // Histograms are updated when the statistics_proxy_ is deleted. | 1245 // Histograms are updated when the statistics_proxy_ is deleted. |
1246 statistics_proxy_.reset(); | 1246 statistics_proxy_.reset(); |
1247 EXPECT_EQ( | 1247 EXPECT_EQ( |
1248 1, metrics::NumSamples("WebRTC.Video.QualityLimitedResolutionInPercent")); | 1248 1, metrics::NumSamples("WebRTC.Video.QualityLimitedResolutionInPercent")); |
1249 EXPECT_EQ(1, metrics::NumEvents( | 1249 EXPECT_EQ(1, metrics::NumEvents( |
1250 "WebRTC.Video.QualityLimitedResolutionInPercent", 0)); | 1250 "WebRTC.Video.QualityLimitedResolutionInPercent", 0)); |
1251 // No resolution downscale. | 1251 // No resolution downscale. |
1252 EXPECT_EQ(0, metrics::NumSamples( | 1252 EXPECT_EQ(0, metrics::NumSamples( |
1253 "WebRTC.Video.QualityLimitedResolutionDownscales")); | 1253 "WebRTC.Video.QualityLimitedResolutionDownscales")); |
1254 } | 1254 } |
1255 | 1255 |
1256 TEST_F(SendStatisticsProxyTest, | 1256 TEST_F(SendStatisticsProxyTest, |
1257 QualityLimitedHistogramsUpdatedWhenEnabled_TwoResolutionDownscales) { | 1257 QualityLimitedHistogramsUpdatedWhenEnabled_TwoResolutionDownscales) { |
1258 const int kDownscales = 2; | 1258 const int kDownscales = 2; |
1259 ViEEncoder::AdaptCounts cpu_counts; | 1259 VideoStreamEncoder::AdaptCounts cpu_counts; |
1260 ViEEncoder::AdaptCounts quality_counts; | 1260 VideoStreamEncoder::AdaptCounts quality_counts; |
1261 quality_counts.resolution = kDownscales; | 1261 quality_counts.resolution = kDownscales; |
1262 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); | 1262 statistics_proxy_->SetAdaptationStats(cpu_counts, quality_counts); |
1263 EncodedImage encoded_image; | 1263 EncodedImage encoded_image; |
1264 for (int i = 0; i < SendStatisticsProxy::kMinRequiredMetricsSamples; ++i) | 1264 for (int i = 0; i < SendStatisticsProxy::kMinRequiredMetricsSamples; ++i) |
1265 statistics_proxy_->OnSendEncodedImage(encoded_image, &kDefaultCodecInfo); | 1265 statistics_proxy_->OnSendEncodedImage(encoded_image, &kDefaultCodecInfo); |
1266 // Histograms are updated when the statistics_proxy_ is deleted. | 1266 // Histograms are updated when the statistics_proxy_ is deleted. |
1267 statistics_proxy_.reset(); | 1267 statistics_proxy_.reset(); |
1268 EXPECT_EQ( | 1268 EXPECT_EQ( |
1269 1, metrics::NumSamples("WebRTC.Video.QualityLimitedResolutionInPercent")); | 1269 1, metrics::NumSamples("WebRTC.Video.QualityLimitedResolutionInPercent")); |
1270 EXPECT_EQ(1, metrics::NumEvents( | 1270 EXPECT_EQ(1, metrics::NumEvents( |
(...skipping 17 matching lines...) Expand all Loading... |
1288 // Simulcast disabled resolutions | 1288 // Simulcast disabled resolutions |
1289 encoded_image.adapt_reason_.bw_resolutions_disabled = 1; | 1289 encoded_image.adapt_reason_.bw_resolutions_disabled = 1; |
1290 statistics_proxy_->OnSendEncodedImage(encoded_image, nullptr); | 1290 statistics_proxy_->OnSendEncodedImage(encoded_image, nullptr); |
1291 EXPECT_TRUE(statistics_proxy_->GetStats().bw_limited_resolution); | 1291 EXPECT_TRUE(statistics_proxy_->GetStats().bw_limited_resolution); |
1292 | 1292 |
1293 encoded_image.adapt_reason_.bw_resolutions_disabled = 0; | 1293 encoded_image.adapt_reason_.bw_resolutions_disabled = 0; |
1294 statistics_proxy_->OnSendEncodedImage(encoded_image, nullptr); | 1294 statistics_proxy_->OnSendEncodedImage(encoded_image, nullptr); |
1295 EXPECT_FALSE(statistics_proxy_->GetStats().bw_limited_resolution); | 1295 EXPECT_FALSE(statistics_proxy_->GetStats().bw_limited_resolution); |
1296 | 1296 |
1297 // Resolution scaled due to quality. | 1297 // Resolution scaled due to quality. |
1298 ViEEncoder::AdaptCounts cpu_counts; | 1298 VideoStreamEncoder::AdaptCounts cpu_counts; |
1299 ViEEncoder::AdaptCounts quality_counts; | 1299 VideoStreamEncoder::AdaptCounts quality_counts; |
1300 quality_counts.resolution = 1; | 1300 quality_counts.resolution = 1; |
1301 statistics_proxy_->OnQualityAdaptationChanged(cpu_counts, quality_counts); | 1301 statistics_proxy_->OnQualityAdaptationChanged(cpu_counts, quality_counts); |
1302 statistics_proxy_->OnSendEncodedImage(encoded_image, nullptr); | 1302 statistics_proxy_->OnSendEncodedImage(encoded_image, nullptr); |
1303 EXPECT_TRUE(statistics_proxy_->GetStats().bw_limited_resolution); | 1303 EXPECT_TRUE(statistics_proxy_->GetStats().bw_limited_resolution); |
1304 } | 1304 } |
1305 | 1305 |
1306 TEST_F(SendStatisticsProxyTest, GetStatsReportsTargetMediaBitrate) { | 1306 TEST_F(SendStatisticsProxyTest, GetStatsReportsTargetMediaBitrate) { |
1307 // Initially zero. | 1307 // Initially zero. |
1308 EXPECT_EQ(0, statistics_proxy_->GetStats().target_media_bitrate_bps); | 1308 EXPECT_EQ(0, statistics_proxy_->GetStats().target_media_bitrate_bps); |
1309 | 1309 |
(...skipping 483 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1793 fake_clock_.AdvanceTimeMilliseconds(kPeriodIntervalMs); | 1793 fake_clock_.AdvanceTimeMilliseconds(kPeriodIntervalMs); |
1794 proxy->DataCountersUpdated(counters, kFirstSsrc); | 1794 proxy->DataCountersUpdated(counters, kFirstSsrc); |
1795 } | 1795 } |
1796 | 1796 |
1797 // FEC not enabled. | 1797 // FEC not enabled. |
1798 statistics_proxy_.reset(); | 1798 statistics_proxy_.reset(); |
1799 EXPECT_EQ(0, metrics::NumSamples("WebRTC.Video.FecBitrateSentInKbps")); | 1799 EXPECT_EQ(0, metrics::NumSamples("WebRTC.Video.FecBitrateSentInKbps")); |
1800 } | 1800 } |
1801 | 1801 |
1802 } // namespace webrtc | 1802 } // namespace webrtc |
OLD | NEW |