OLD | NEW |
(Empty) | |
| 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. |
| 4 |
| 5 #include <algorithm> |
| 6 |
| 7 #include "content/renderer/media/webrtc/webrtc_video_capturer_adapter.h" |
| 8 #include "media/base/video_frame.h" |
| 9 #include "testing/gtest/include/gtest/gtest.h" |
| 10 |
| 11 namespace content { |
| 12 |
| 13 class WebRtcVideoCapturerAdapterTest |
| 14 : public sigslot::has_slots<>, |
| 15 public ::testing::Test { |
| 16 public: |
| 17 WebRtcVideoCapturerAdapterTest() |
| 18 : adapter_(false), |
| 19 output_frame_width_(0), |
| 20 output_frame_height_(0) { |
| 21 adapter_.SignalFrameCaptured.connect( |
| 22 this, &WebRtcVideoCapturerAdapterTest::OnFrameCaptured); |
| 23 } |
| 24 virtual ~WebRtcVideoCapturerAdapterTest() {} |
| 25 |
| 26 void TestSourceCropFrame(int capture_width, |
| 27 int capture_height, |
| 28 int expected_width, |
| 29 int expected_height) { |
| 30 const int visible_width = std::min(capture_width, expected_width); |
| 31 const int horiz_crop = ((capture_width - visible_width) / 2); |
| 32 const int visible_height = std::min(capture_height, expected_height); |
| 33 const int vert_crop = ((expected_height - visible_height) / 2); |
| 34 |
| 35 gfx::Size coded_size(capture_width, capture_height); |
| 36 gfx::Rect view_rect(horiz_crop, vert_crop, visible_width, visible_height); |
| 37 scoped_refptr<media::VideoFrame> frame = |
| 38 media::VideoFrame::CreateFrame(media::VideoFrame::I420, |
| 39 coded_size, view_rect, coded_size, |
| 40 base::TimeDelta()); |
| 41 adapter_.OnFrameCaptured(frame); |
| 42 EXPECT_EQ(expected_width, output_frame_width_); |
| 43 EXPECT_EQ(expected_height, output_frame_height_); |
| 44 } |
| 45 protected: |
| 46 void OnFrameCaptured(cricket::VideoCapturer* capturer, |
| 47 const cricket::CapturedFrame* frame) { |
| 48 output_frame_width_ = frame->width; |
| 49 output_frame_height_ = frame->height; |
| 50 } |
| 51 |
| 52 private: |
| 53 WebRtcVideoCapturerAdapter adapter_; |
| 54 int output_frame_width_; |
| 55 int output_frame_height_; |
| 56 }; |
| 57 |
| 58 TEST_F(WebRtcVideoCapturerAdapterTest, CropFrameTo640360) { |
| 59 TestSourceCropFrame(640, 480, 640, 360); |
| 60 } |
| 61 |
| 62 TEST_F(WebRtcVideoCapturerAdapterTest, CropFrameTo732489) { |
| 63 TestSourceCropFrame(1280, 720, 731, 489); |
| 64 } |
| 65 |
| 66 } // namespace content |
OLD | NEW |