diff --git a/webrtc/common_video/libyuv/include/webrtc_libyuv.h b/webrtc/common_video/libyuv/include/webrtc_libyuv.h index 1bea4f1852..777e7c72d9 100644 --- a/webrtc/common_video/libyuv/include/webrtc_libyuv.h +++ b/webrtc/common_video/libyuv/include/webrtc_libyuv.h @@ -44,7 +44,7 @@ enum VideoType { }; // This is the max PSNR value our algorithms can return. -const double kPerfectPSNR = 48.0f; +const double kInfinitePSNR = 48.0f; // Conversion between the RawVideoType and the LibYuv videoType. // TODO(wu): Consolidate types into one type throughout WebRtc. diff --git a/webrtc/common_video/libyuv/webrtc_libyuv.cc b/webrtc/common_video/libyuv/webrtc_libyuv.cc index 750235528f..fdef255302 100644 --- a/webrtc/common_video/libyuv/webrtc_libyuv.cc +++ b/webrtc/common_video/libyuv/webrtc_libyuv.cc @@ -354,7 +354,7 @@ double I420PSNR(const I420VideoFrame* ref_frame, test_frame->width(), test_frame->height()); // LibYuv sets the max psnr value to 128, we restrict it here. // In case of 0 mse in one frame, 128 can skew the results significantly. - return (psnr > kPerfectPSNR) ? kPerfectPSNR : psnr; + return (psnr > kInfinitePSNR) ? kInfinitePSNR : psnr; } // Compute SSIM for an I420 frame (all planes) @@ -409,7 +409,7 @@ double I420PSNR(const uint8_t* ref_frame, width, height); // LibYuv sets the max psnr value to 128, we restrict it here. // In case of 0 mse in one frame, 128 can skew the results significantly. - return (psnr > kPerfectPSNR) ? kPerfectPSNR : psnr; + return (psnr > kInfinitePSNR) ? kInfinitePSNR : psnr; } // Compute SSIM for an I420 frame (all planes) double I420SSIM(const uint8_t* ref_frame, diff --git a/webrtc/test/testsupport/metrics/video_metrics.cc b/webrtc/test/testsupport/metrics/video_metrics.cc index 632786af8a..c9d6d9dcc5 100644 --- a/webrtc/test/testsupport/metrics/video_metrics.cc +++ b/webrtc/test/testsupport/metrics/video_metrics.cc @@ -21,7 +21,7 @@ namespace webrtc { namespace test { // Copy here so our callers won't need to include libyuv for this constant. -double kMetricsPerfectPSNR = kPerfectPSNR; +double kMetricsInfinitePSNR = kInfinitePSNR; // Used for calculating min and max values. static bool LessForFrameResultValue (const FrameResult& s1, diff --git a/webrtc/test/testsupport/metrics/video_metrics.h b/webrtc/test/testsupport/metrics/video_metrics.h index 8448ccfd24..36e62a0769 100644 --- a/webrtc/test/testsupport/metrics/video_metrics.h +++ b/webrtc/test/testsupport/metrics/video_metrics.h @@ -18,7 +18,7 @@ namespace webrtc { namespace test { // The highest PSNR value our algorithms will return. -extern double kMetricsPerfectPSNR; +extern double kMetricsInfinitePSNR; // Contains video quality metrics result for a single frame. struct FrameResult { diff --git a/webrtc/video_engine/test/auto_test/automated/vie_video_verification_test.cc b/webrtc/video_engine/test/auto_test/automated/vie_video_verification_test.cc index bbac1d119a..c0094dd83e 100644 --- a/webrtc/video_engine/test/auto_test/automated/vie_video_verification_test.cc +++ b/webrtc/video_engine/test/auto_test/automated/vie_video_verification_test.cc @@ -160,8 +160,6 @@ TEST_F(ViEVideoVerificationTest, RunsBaseStandardTestWithoutErrors) { // However, it's hard to make 100% stringent requirements on the video engine // since for instance the jitter buffer has non-deterministic elements. If it // breaks five times in a row though, you probably introduced a bug. - const double kReasonablePsnr = webrtc::test::kMetricsPerfectPSNR - 2.0f; - const double kReasonableSsim = 0.99f; const int kNumAttempts = 5; for (int attempt = 0; attempt < kNumAttempts; ++attempt) { InitializeFileRenderers(); @@ -174,11 +172,12 @@ TEST_F(ViEVideoVerificationTest, RunsBaseStandardTestWithoutErrors) { double actual_psnr = 0; double actual_ssim = 0; - CompareFiles(input_file_, remote_file, &actual_psnr, &actual_ssim); + CompareFiles(local_preview, remote_file, &actual_psnr, &actual_ssim); TearDownFileRenderers(); - if (actual_psnr > kReasonablePsnr && actual_ssim > kReasonableSsim) { + if (actual_psnr == webrtc::test::kMetricsInfinitePSNR && + actual_ssim == 1.0f) { // Test successful. return; } else { @@ -186,7 +185,7 @@ TEST_F(ViEVideoVerificationTest, RunsBaseStandardTestWithoutErrors) { } } - FAIL() << "Failed to achieve near-perfect PSNR and SSIM results after " << + FAIL() << "Failed to achieve perfect PSNR and SSIM results after " << kNumAttempts << " attempts."; }