Home | History | Annotate | Download | only in unit_test
      1 /*
      2  *  Copyright (c) 2011 The WebRTC project authors. All Rights Reserved.
      3  *
      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
      6  *  tree. An additional intellectual property rights grant can be found
      7  *  in the file PATENTS.  All contributing project authors may
      8  *  be found in the AUTHORS file in the root of the source tree.
      9  */
     10 
     11 #include "webrtc/common_video/libyuv/include/webrtc_libyuv.h"
     12 #include "webrtc/modules/video_processing/main/interface/video_processing.h"
     13 #include "webrtc/modules/video_processing/main/source/content_analysis.h"
     14 #include "webrtc/modules/video_processing/main/test/unit_test/video_processing_unittest.h"
     15 
     16 namespace webrtc {
     17 
     18 TEST_F(VideoProcessingModuleTest, ContentAnalysis) {
     19   VPMContentAnalysis    ca__c(false);
     20   VPMContentAnalysis    ca__sse(true);
     21   VideoContentMetrics  *_cM_c, *_cM_SSE;
     22 
     23   ca__c.Initialize(width_,height_);
     24   ca__sse.Initialize(width_,height_);
     25 
     26   scoped_ptr<uint8_t[]> video_buffer(new uint8_t[frame_length_]);
     27   while (fread(video_buffer.get(), 1, frame_length_, source_file_)
     28        == frame_length_) {
     29     // Using ConvertToI420 to add stride to the image.
     30     EXPECT_EQ(0, ConvertToI420(kI420, video_buffer.get(), 0, 0,
     31                                width_, height_,
     32                                0, kRotateNone, &video_frame_));
     33     _cM_c   = ca__c.ComputeContentMetrics(video_frame_);
     34     _cM_SSE = ca__sse.ComputeContentMetrics(video_frame_);
     35 
     36     ASSERT_EQ(_cM_c->spatial_pred_err, _cM_SSE->spatial_pred_err);
     37     ASSERT_EQ(_cM_c->spatial_pred_err_v, _cM_SSE->spatial_pred_err_v);
     38     ASSERT_EQ(_cM_c->spatial_pred_err_h, _cM_SSE->spatial_pred_err_h);
     39     ASSERT_EQ(_cM_c->motion_magnitude, _cM_SSE->motion_magnitude);
     40   }
     41   ASSERT_NE(0, feof(source_file_)) << "Error reading source file";
     42 }
     43 
     44 }  // namespace webrtc
     45