1b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org/* 2b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * Copyright (c) 2011 The WebRTC project authors. All Rights Reserved. 3b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * 4b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * Use of this source code is governed by a BSD-style license 5b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * that can be found in the LICENSE file in the root of the source 6b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * tree. An additional intellectual property rights grant can be found 7b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * in the file PATENTS. All contributing project authors may 8b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org * be found in the AUTHORS file in the root of the source tree. 9b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org */ 10b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 11026e6b63725deadacbecd23e1d37c95fbf402970mikhal@webrtc.org#include "webrtc/common_video/libyuv/include/webrtc_libyuv.h" 12c4e10b884294e4622e2470235489809a7bd73a1epbos@webrtc.org#include "webrtc/modules/video_processing/main/interface/video_processing.h" 13c4e10b884294e4622e2470235489809a7bd73a1epbos@webrtc.org#include "webrtc/modules/video_processing/main/source/content_analysis.h" 1498ac1e82064ce73a6655812958fdd80466996cefpbos@webrtc.org#include "webrtc/modules/video_processing/main/test/unit_test/video_processing_unittest.h" 15b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 16b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.orgnamespace webrtc { 17b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 18b576a696e444c2873191463dcf03de1a82a50dd4mikhal@webrtc.orgTEST_F(VideoProcessingModuleTest, ContentAnalysis) { 19b576a696e444c2873191463dcf03de1a82a50dd4mikhal@webrtc.org VPMContentAnalysis ca__c(false); 20b576a696e444c2873191463dcf03de1a82a50dd4mikhal@webrtc.org VPMContentAnalysis ca__sse(true); 21b576a696e444c2873191463dcf03de1a82a50dd4mikhal@webrtc.org VideoContentMetrics *_cM_c, *_cM_SSE; 22b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 23b576a696e444c2873191463dcf03de1a82a50dd4mikhal@webrtc.org ca__c.Initialize(width_,height_); 24b576a696e444c2873191463dcf03de1a82a50dd4mikhal@webrtc.org ca__sse.Initialize(width_,height_); 25b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 26ba47616ee5a8d8a4d94e160b64b79a56845e291bandrew@webrtc.org scoped_ptr<uint8_t[]> video_buffer(new uint8_t[frame_length_]); 27b576a696e444c2873191463dcf03de1a82a50dd4mikhal@webrtc.org while (fread(video_buffer.get(), 1, frame_length_, source_file_) 28b576a696e444c2873191463dcf03de1a82a50dd4mikhal@webrtc.org == frame_length_) { 29b576a696e444c2873191463dcf03de1a82a50dd4mikhal@webrtc.org // Using ConvertToI420 to add stride to the image. 30b576a696e444c2873191463dcf03de1a82a50dd4mikhal@webrtc.org EXPECT_EQ(0, ConvertToI420(kI420, video_buffer.get(), 0, 0, 31b576a696e444c2873191463dcf03de1a82a50dd4mikhal@webrtc.org width_, height_, 32b576a696e444c2873191463dcf03de1a82a50dd4mikhal@webrtc.org 0, kRotateNone, &video_frame_)); 33b576a696e444c2873191463dcf03de1a82a50dd4mikhal@webrtc.org _cM_c = ca__c.ComputeContentMetrics(video_frame_); 34b576a696e444c2873191463dcf03de1a82a50dd4mikhal@webrtc.org _cM_SSE = ca__sse.ComputeContentMetrics(video_frame_); 35b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 36b576a696e444c2873191463dcf03de1a82a50dd4mikhal@webrtc.org ASSERT_EQ(_cM_c->spatial_pred_err, _cM_SSE->spatial_pred_err); 37b576a696e444c2873191463dcf03de1a82a50dd4mikhal@webrtc.org ASSERT_EQ(_cM_c->spatial_pred_err_v, _cM_SSE->spatial_pred_err_v); 38b576a696e444c2873191463dcf03de1a82a50dd4mikhal@webrtc.org ASSERT_EQ(_cM_c->spatial_pred_err_h, _cM_SSE->spatial_pred_err_h); 39b576a696e444c2873191463dcf03de1a82a50dd4mikhal@webrtc.org ASSERT_EQ(_cM_c->motion_magnitude, _cM_SSE->motion_magnitude); 40b576a696e444c2873191463dcf03de1a82a50dd4mikhal@webrtc.org } 41b576a696e444c2873191463dcf03de1a82a50dd4mikhal@webrtc.org ASSERT_NE(0, feof(source_file_)) << "Error reading source file"; 42b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} 43b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org 44b015cbede88899f67a53fbbe581b02ce8e32794andrew@webrtc.org} // namespace webrtc 45