/* * Copyright (c) 2018 The WebRTC project authors. All Rights Reserved. * * Use of this source code is governed by a BSD-style license * that can be found in the LICENSE file in the root of the source * tree. An additional intellectual property rights grant can be found * in the file PATENTS. All contributing project authors may * be found in the AUTHORS file in the root of the source tree. */ #ifndef RTC_TOOLS_FRAME_ANALYZER_VIDEO_GEOMETRY_ALIGNER_H_ #define RTC_TOOLS_FRAME_ANALYZER_VIDEO_GEOMETRY_ALIGNER_H_ #include "api/video/video_frame_buffer.h" #include "rtc_tools/video_file_reader.h" namespace webrtc { namespace test { struct CropRegion { … }; // Crops and zooms in on the cropped region so that the returned frame has the // same resolution as the input frame. rtc::scoped_refptr<I420BufferInterface> CropAndZoom( const CropRegion& crop_region, const rtc::scoped_refptr<I420BufferInterface>& frame); // Calculate the optimal cropping region on the reference frame to maximize SSIM // to the test frame. CropRegion CalculateCropRegion( const rtc::scoped_refptr<I420BufferInterface>& reference_frame, const rtc::scoped_refptr<I420BufferInterface>& test_frame); // Returns a cropped and zoomed version of the reference frame that matches up // to the test frame. This is a simple helper function on top of // CalculateCropRegion() and CropAndZoom(). rtc::scoped_refptr<I420BufferInterface> AdjustCropping( const rtc::scoped_refptr<I420BufferInterface>& reference_frame, const rtc::scoped_refptr<I420BufferInterface>& test_frame); // Returns a cropped and zoomed version of the reference video that matches up // to the test video. Frames are individually adjusted for cropping. rtc::scoped_refptr<Video> AdjustCropping( const rtc::scoped_refptr<Video>& reference_video, const rtc::scoped_refptr<Video>& test_video); } // namespace test } // namespace webrtc #endif // RTC_TOOLS_FRAME_ANALYZER_VIDEO_GEOMETRY_ALIGNER_H_