Chromium Code Reviews| Index: webrtc/modules/video_processing/test/denoiser_test.cc |
| diff --git a/webrtc/modules/video_processing/test/denoiser_test.cc b/webrtc/modules/video_processing/test/denoiser_test.cc |
| index 551a77617d8445d5084dc48df121c9ab1833843f..1c34fb4d37b878059d94e03871d654a09c777e07 100644 |
| --- a/webrtc/modules/video_processing/test/denoiser_test.cc |
| +++ b/webrtc/modules/video_processing/test/denoiser_test.cc |
| @@ -15,6 +15,43 @@ |
| #include "webrtc/modules/video_processing/test/video_processing_unittest.h" |
| #include "webrtc/modules/video_processing/video_denoiser.h" |
| +namespace { |
| +// Duplicated in i420_video_frame_unittest.cc |
|
pbos-webrtc
2016/02/09 15:18:14
Put this somewhere common, even if it's only test
nisse-webrtc
2016/02/09 15:31:33
I see no obvious place. Any suggestion for file (a
pbos-webrtc
2016/02/09 15:36:10
I'll come over and sync with you.
|
| +bool EqualPlane(const uint8_t* data1, |
| + const uint8_t* data2, |
| + int stride, |
| + int width, |
| + int height) { |
| + for (int y = 0; y < height; ++y) { |
| + if (memcmp(data1, data2, width) != 0) |
| + return false; |
| + data1 += stride; |
| + data2 += stride; |
| + } |
| + return true; |
| +} |
| +bool FramesEqual(const webrtc::VideoFrame& f1, const webrtc::VideoFrame& f2) { |
| + if (f1.width() != f2.width() || f1.height() != f2.height() || |
| + f1.stride(webrtc::kYPlane) != f2.stride(webrtc::kYPlane) || |
| + f1.stride(webrtc::kUPlane) != f2.stride(webrtc::kUPlane) || |
| + f1.stride(webrtc::kVPlane) != f2.stride(webrtc::kVPlane) || |
| + f1.timestamp() != f2.timestamp() || |
| + f1.ntp_time_ms() != f2.ntp_time_ms() || |
| + f1.render_time_ms() != f2.render_time_ms()) { |
| + return false; |
| + } |
| + const int half_width = (f1.width() + 1) / 2; |
| + const int half_height = (f1.height() + 1) / 2; |
| + return EqualPlane(f1.buffer(webrtc::kYPlane), f2.buffer(webrtc::kYPlane), |
| + f1.stride(webrtc::kYPlane), f1.width(), f1.height()) && |
| + EqualPlane(f1.buffer(webrtc::kUPlane), f2.buffer(webrtc::kUPlane), |
| + f1.stride(webrtc::kUPlane), half_width, half_height) && |
| + EqualPlane(f1.buffer(webrtc::kVPlane), f2.buffer(webrtc::kVPlane), |
| + f1.stride(webrtc::kVPlane), half_width, half_height); |
| +} |
| + |
| +} |
| + |
| namespace webrtc { |
| TEST_F(VideoProcessingTest, CopyMem) { |
| @@ -148,7 +185,7 @@ TEST_F(VideoProcessingTest, Denoiser) { |
| denoiser_sse_neon.DenoiseFrame(video_frame_, &denoised_frame_sse_neon); |
| // Denoising results should be the same for C and SSE/NEON denoiser. |
| - ASSERT_EQ(true, denoised_frame_c.EqualsFrame(denoised_frame_sse_neon)); |
| + ASSERT_EQ(true, FramesEqual(denoised_frame_c, denoised_frame_sse_neon)); |
| } |
| ASSERT_NE(0, feof(source_file_)) << "Error reading source file"; |
| } |