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

Side by Side Diff: webrtc/modules/video_coding/codecs/test/videoprocessor_integrationtest.cc

Issue 2533733002: Roll chromium_revision 5e821a778b..5c22c2afac (432715:434448) (Closed)
Patch Set: Also disable ProcessNoLossDenoiserOnVP9 Created 4 years 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
« no previous file with comments | « webrtc/base/BUILD.gn ('k') | webrtc/test/BUILD.gn » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 607 matching lines...) Expand 10 before | Expand all | Expand 10 after
618 618
619 #endif // defined(WEBRTC_VIDEOPROCESSOR_H264_TESTS) 619 #endif // defined(WEBRTC_VIDEOPROCESSOR_H264_TESTS)
620 620
621 // Fails on iOS. See webrtc:4755. 621 // Fails on iOS. See webrtc:4755.
622 #if !defined(WEBRTC_IOS) 622 #if !defined(WEBRTC_IOS)
623 623
624 #if !defined(RTC_DISABLE_VP9) 624 #if !defined(RTC_DISABLE_VP9)
625 // VP9: Run with no packet loss and fixed bitrate. Quality should be very high. 625 // VP9: Run with no packet loss and fixed bitrate. Quality should be very high.
626 // One key frame (first frame only) in sequence. Setting |key_frame_interval| 626 // One key frame (first frame only) in sequence. Setting |key_frame_interval|
627 // to -1 below means no periodic key frames in test. 627 // to -1 below means no periodic key frames in test.
628 TEST_F(VideoProcessorIntegrationTest, Process0PercentPacketLossVP9) { 628
629 #if defined(THREAD_SANITIZER) || defined(UNDEFINED_SANITIZER)
630 // Fails on TSan and UBSan: https://bugs.webrtc.org/6781.
631 #define MAYBE_Process0PercentPacketLossVP9 DISABLED_Process0PercentPacketLossVP9
632 #else
633 #define MAYBE_Process0PercentPacketLossVP9 Process0PercentPacketLossVP9
634 #endif
635 TEST_F(VideoProcessorIntegrationTest, MAYBE_Process0PercentPacketLossVP9) {
629 // Bitrate and frame rate profile. 636 // Bitrate and frame rate profile.
630 RateProfile rate_profile; 637 RateProfile rate_profile;
631 SetRateProfilePars(&rate_profile, 0, 500, 30, 0); 638 SetRateProfilePars(&rate_profile, 0, 500, 30, 0);
632 rate_profile.frame_index_rate_update[1] = kNbrFramesShort + 1; 639 rate_profile.frame_index_rate_update[1] = kNbrFramesShort + 1;
633 rate_profile.num_frames = kNbrFramesShort; 640 rate_profile.num_frames = kNbrFramesShort;
634 // Codec/network settings. 641 // Codec/network settings.
635 CodecConfigPars process_settings; 642 CodecConfigPars process_settings;
636 SetCodecParameters(&process_settings, kVideoCodecVP9, 0.0f, -1, 1, false, 643 SetCodecParameters(&process_settings, kVideoCodecVP9, 0.0f, -1, 1, false,
637 false, true, false); 644 false, true, false);
638 // Metrics for expected quality. 645 // Metrics for expected quality.
(...skipping 25 matching lines...) Expand all
664 RateControlMetrics rc_metrics[1]; 671 RateControlMetrics rc_metrics[1];
665 SetRateControlMetrics(rc_metrics, 0, 0, 40, 20, 10, 20, 0, 1); 672 SetRateControlMetrics(rc_metrics, 0, 0, 40, 20, 10, 20, 0, 1);
666 ProcessFramesAndVerify(quality_metrics, rate_profile, process_settings, 673 ProcessFramesAndVerify(quality_metrics, rate_profile, process_settings,
667 rc_metrics); 674 rc_metrics);
668 } 675 }
669 676
670 // VP9: Run with no packet loss, with varying bitrate (3 rate updates): 677 // VP9: Run with no packet loss, with varying bitrate (3 rate updates):
671 // low to high to medium. Check that quality and encoder response to the new 678 // low to high to medium. Check that quality and encoder response to the new
672 // target rate/per-frame bandwidth (for each rate update) is within limits. 679 // target rate/per-frame bandwidth (for each rate update) is within limits.
673 // One key frame (first frame only) in sequence. 680 // One key frame (first frame only) in sequence.
674 TEST_F(VideoProcessorIntegrationTest, ProcessNoLossChangeBitRateVP9) { 681 #if defined(THREAD_SANITIZER) || defined(UNDEFINED_SANITIZER)
682 // Fails on TSan and UBSan: https://bugs.webrtc.org/6781.
683 #define MAYBE_ProcessNoLossChangeBitRateVP9 \
684 DISABLED_ProcessNoLossChangeBitRateVP9
685 #else
686 #define MAYBE_ProcessNoLossChangeBitRateVP9 ProcessNoLossChangeBitRateVP9
687 #endif
688 TEST_F(VideoProcessorIntegrationTest, MAYBE_ProcessNoLossChangeBitRateVP9) {
675 // Bitrate and frame rate profile. 689 // Bitrate and frame rate profile.
676 RateProfile rate_profile; 690 RateProfile rate_profile;
677 SetRateProfilePars(&rate_profile, 0, 200, 30, 0); 691 SetRateProfilePars(&rate_profile, 0, 200, 30, 0);
678 SetRateProfilePars(&rate_profile, 1, 700, 30, 100); 692 SetRateProfilePars(&rate_profile, 1, 700, 30, 100);
679 SetRateProfilePars(&rate_profile, 2, 500, 30, 200); 693 SetRateProfilePars(&rate_profile, 2, 500, 30, 200);
680 rate_profile.frame_index_rate_update[3] = kNbrFramesLong + 1; 694 rate_profile.frame_index_rate_update[3] = kNbrFramesLong + 1;
681 rate_profile.num_frames = kNbrFramesLong; 695 rate_profile.num_frames = kNbrFramesLong;
682 // Codec/network settings. 696 // Codec/network settings.
683 CodecConfigPars process_settings; 697 CodecConfigPars process_settings;
684 SetCodecParameters(&process_settings, kVideoCodecVP9, 0.0f, -1, 1, false, 698 SetCodecParameters(&process_settings, kVideoCodecVP9, 0.0f, -1, 1, false,
(...skipping 11 matching lines...) Expand all
696 } 710 }
697 711
698 // VP9: Run with no packet loss, with an update (decrease) in frame rate. 712 // VP9: Run with no packet loss, with an update (decrease) in frame rate.
699 // Lower frame rate means higher per-frame-bandwidth, so easier to encode. 713 // Lower frame rate means higher per-frame-bandwidth, so easier to encode.
700 // At the low bitrate in this test, this means better rate control after the 714 // At the low bitrate in this test, this means better rate control after the
701 // update(s) to lower frame rate. So expect less frame drops, and max values 715 // update(s) to lower frame rate. So expect less frame drops, and max values
702 // for the rate control metrics can be lower. One key frame (first frame only). 716 // for the rate control metrics can be lower. One key frame (first frame only).
703 // Note: quality after update should be higher but we currently compute quality 717 // Note: quality after update should be higher but we currently compute quality
704 // metrics averaged over whole sequence run. 718 // metrics averaged over whole sequence run.
705 719
706 #if defined(WEBRTC_ANDROID) 720 #if defined(WEBRTC_ANDROID) || defined(THREAD_SANITIZER) || \
721 defined(UNDEFINED_SANITIZER)
707 // Flaky on Android: https://bugs.chromium.org/p/webrtc/issues/detail?id=6057. 722 // Flaky on Android: https://bugs.chromium.org/p/webrtc/issues/detail?id=6057.
723 // Fails on TSan and UBSan: https://bugs.webrtc.org/6781.
708 #define MAYBE_ProcessNoLossChangeFrameRateFrameDropVP9 \ 724 #define MAYBE_ProcessNoLossChangeFrameRateFrameDropVP9 \
709 DISABLED_ProcessNoLossChangeFrameRateFrameDropVP9 725 DISABLED_ProcessNoLossChangeFrameRateFrameDropVP9
710 #else 726 #else
711 #define MAYBE_ProcessNoLossChangeFrameRateFrameDropVP9 \ 727 #define MAYBE_ProcessNoLossChangeFrameRateFrameDropVP9 \
712 ProcessNoLossChangeFrameRateFrameDropVP9 728 ProcessNoLossChangeFrameRateFrameDropVP9
713 #endif 729 #endif
714 TEST_F(VideoProcessorIntegrationTest, 730 TEST_F(VideoProcessorIntegrationTest,
715 MAYBE_ProcessNoLossChangeFrameRateFrameDropVP9) { 731 MAYBE_ProcessNoLossChangeFrameRateFrameDropVP9) {
716 config_.networking_config.packet_loss_probability = 0; 732 config_.networking_config.packet_loss_probability = 0;
717 // Bitrate and frame rate profile. 733 // Bitrate and frame rate profile.
(...skipping 13 matching lines...) Expand all
731 // Metrics for rate control. 747 // Metrics for rate control.
732 RateControlMetrics rc_metrics[3]; 748 RateControlMetrics rc_metrics[3];
733 SetRateControlMetrics(rc_metrics, 0, 38, 50, 75, 15, 45, 0, 1); 749 SetRateControlMetrics(rc_metrics, 0, 38, 50, 75, 15, 45, 0, 1);
734 SetRateControlMetrics(rc_metrics, 1, 10, 0, 40, 10, 30, 0, 0); 750 SetRateControlMetrics(rc_metrics, 1, 10, 0, 40, 10, 30, 0, 0);
735 SetRateControlMetrics(rc_metrics, 2, 5, 0, 30, 5, 20, 0, 0); 751 SetRateControlMetrics(rc_metrics, 2, 5, 0, 30, 5, 20, 0, 0);
736 ProcessFramesAndVerify(quality_metrics, rate_profile, process_settings, 752 ProcessFramesAndVerify(quality_metrics, rate_profile, process_settings,
737 rc_metrics); 753 rc_metrics);
738 } 754 }
739 755
740 // VP9: Run with no packet loss and denoiser on. One key frame (first frame). 756 // VP9: Run with no packet loss and denoiser on. One key frame (first frame).
741 TEST_F(VideoProcessorIntegrationTest, ProcessNoLossDenoiserOnVP9) { 757 #if defined(THREAD_SANITIZER) || defined(UNDEFINED_SANITIZER)
758 // Fails on TSan and UBSan: https://bugs.webrtc.org/6781.
759 #define MAYBE_ProcessNoLossDenoiserOnVP9 DISABLED_ProcessNoLossDenoiserOnVP9
760 #else
761 #define MAYBE_ProcessNoLossDenoiserOnVP9 ProcessNoLossDenoiserOnVP9
762 #endif
763 TEST_F(VideoProcessorIntegrationTest, MAYBE_ProcessNoLossDenoiserOnVP9) {
742 // Bitrate and frame rate profile. 764 // Bitrate and frame rate profile.
743 RateProfile rate_profile; 765 RateProfile rate_profile;
744 SetRateProfilePars(&rate_profile, 0, 500, 30, 0); 766 SetRateProfilePars(&rate_profile, 0, 500, 30, 0);
745 rate_profile.frame_index_rate_update[1] = kNbrFramesShort + 1; 767 rate_profile.frame_index_rate_update[1] = kNbrFramesShort + 1;
746 rate_profile.num_frames = kNbrFramesShort; 768 rate_profile.num_frames = kNbrFramesShort;
747 // Codec/network settings. 769 // Codec/network settings.
748 CodecConfigPars process_settings; 770 CodecConfigPars process_settings;
749 SetCodecParameters(&process_settings, kVideoCodecVP9, 0.0f, -1, 1, false, 771 SetCodecParameters(&process_settings, kVideoCodecVP9, 0.0f, -1, 1, false,
750 true, true, false); 772 true, true, false);
751 // Metrics for expected quality. 773 // Metrics for expected quality.
752 QualityMetrics quality_metrics; 774 QualityMetrics quality_metrics;
753 SetQualityMetrics(&quality_metrics, 36.8, 35.8, 0.92, 0.91); 775 SetQualityMetrics(&quality_metrics, 36.8, 35.8, 0.92, 0.91);
754 // Metrics for rate control. 776 // Metrics for rate control.
755 RateControlMetrics rc_metrics[1]; 777 RateControlMetrics rc_metrics[1];
756 SetRateControlMetrics(rc_metrics, 0, 0, 40, 20, 10, 20, 0, 1); 778 SetRateControlMetrics(rc_metrics, 0, 0, 40, 20, 10, 20, 0, 1);
757 ProcessFramesAndVerify(quality_metrics, rate_profile, process_settings, 779 ProcessFramesAndVerify(quality_metrics, rate_profile, process_settings,
758 rc_metrics); 780 rc_metrics);
759 } 781 }
760 782
761 // Run with no packet loss, at low bitrate. 783 // Run with no packet loss, at low bitrate.
762 // spatial_resize is on, for this low bitrate expect one resize in sequence. 784 // spatial_resize is on, for this low bitrate expect one resize in sequence.
763 // Resize happens on delta frame. Expect only one key frame (first frame). 785 // Resize happens on delta frame. Expect only one key frame (first frame).
764 TEST_F(VideoProcessorIntegrationTest, ProcessNoLossSpatialResizeFrameDropVP9) { 786 #if defined(THREAD_SANITIZER) || defined(UNDEFINED_SANITIZER)
787 // Fails on TSan and UBSan: https://bugs.webrtc.org/6781.
788 #define MAYBE_ProcessNoLossSpatialResizeFrameDropVP9 \
789 DISABLED_ProcessNoLossSpatialResizeFrameDropVP9
790 #else
791 #define MAYBE_ProcessNoLossSpatialResizeFrameDropVP9 \
792 ProcessNoLossSpatialResizeFrameDropVP9
793 #endif
794 TEST_F(VideoProcessorIntegrationTest,
795 MAYBE_ProcessNoLossSpatialResizeFrameDropVP9) {
765 config_.networking_config.packet_loss_probability = 0; 796 config_.networking_config.packet_loss_probability = 0;
766 // Bitrate and frame rate profile. 797 // Bitrate and frame rate profile.
767 RateProfile rate_profile; 798 RateProfile rate_profile;
768 SetRateProfilePars(&rate_profile, 0, 50, 30, 0); 799 SetRateProfilePars(&rate_profile, 0, 50, 30, 0);
769 rate_profile.frame_index_rate_update[1] = kNbrFramesLong + 1; 800 rate_profile.frame_index_rate_update[1] = kNbrFramesLong + 1;
770 rate_profile.num_frames = kNbrFramesLong; 801 rate_profile.num_frames = kNbrFramesLong;
771 // Codec/network settings. 802 // Codec/network settings.
772 CodecConfigPars process_settings; 803 CodecConfigPars process_settings;
773 SetCodecParameters(&process_settings, kVideoCodecVP9, 0.0f, -1, 1, false, 804 SetCodecParameters(&process_settings, kVideoCodecVP9, 0.0f, -1, 1, false,
774 false, true, true); 805 false, true, true);
(...skipping 226 matching lines...) Expand 10 before | Expand all | Expand 10 after
1001 QualityMetrics quality_metrics; 1032 QualityMetrics quality_metrics;
1002 SetQualityMetrics(&quality_metrics, 32.5, 30.0, 0.85, 0.80); 1033 SetQualityMetrics(&quality_metrics, 32.5, 30.0, 0.85, 0.80);
1003 // Metrics for rate control. 1034 // Metrics for rate control.
1004 RateControlMetrics rc_metrics[2]; 1035 RateControlMetrics rc_metrics[2];
1005 SetRateControlMetrics(rc_metrics, 0, 0, 20, 30, 10, 10, 0, 1); 1036 SetRateControlMetrics(rc_metrics, 0, 0, 20, 30, 10, 10, 0, 1);
1006 SetRateControlMetrics(rc_metrics, 1, 0, 0, 30, 15, 10, 0, 0); 1037 SetRateControlMetrics(rc_metrics, 1, 0, 0, 30, 15, 10, 0, 0);
1007 ProcessFramesAndVerify(quality_metrics, rate_profile, process_settings, 1038 ProcessFramesAndVerify(quality_metrics, rate_profile, process_settings,
1008 rc_metrics); 1039 rc_metrics);
1009 } 1040 }
1010 } // namespace webrtc 1041 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/base/BUILD.gn ('k') | webrtc/test/BUILD.gn » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698