| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (c) 2008 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2008 The WebRTC project authors. All Rights Reserved. |
| 3 * | 3 * |
| 4 * Use of this source code is governed by a BSD-style license | 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 | 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 | 6 * tree. An additional intellectual property rights grant can be found |
| 7 * in the file PATENTS. All contributing project authors may | 7 * in the file PATENTS. All contributing project authors may |
| 8 * be found in the AUTHORS file in the root of the source tree. | 8 * be found in the AUTHORS file in the root of the source tree. |
| 9 */ | 9 */ |
| 10 | 10 |
| (...skipping 21 matching lines...) Expand all Loading... |
| 32 | 32 |
| 33 class VideoCapturerTest | 33 class VideoCapturerTest |
| 34 : public sigslot::has_slots<>, | 34 : public sigslot::has_slots<>, |
| 35 public testing::Test { | 35 public testing::Test { |
| 36 public: | 36 public: |
| 37 VideoCapturerTest() | 37 VideoCapturerTest() |
| 38 : capture_state_(cricket::CS_STOPPED), | 38 : capture_state_(cricket::CS_STOPPED), |
| 39 num_state_changes_(0), | 39 num_state_changes_(0), |
| 40 video_frames_received_(0), | 40 video_frames_received_(0), |
| 41 expects_rotation_applied_(true) { | 41 expects_rotation_applied_(true) { |
| 42 capturer_.SignalVideoFrame.connect(this, &VideoCapturerTest::OnVideoFrame); | 42 renderer_.SignalRenderFrame.connect(this, &VideoCapturerTest::OnVideoFrame); |
| 43 capturer_.SignalStateChange.connect(this, | 43 capturer_.SignalStateChange.connect(this, |
| 44 &VideoCapturerTest::OnStateChange); | 44 &VideoCapturerTest::OnStateChange); |
| 45 capturer_.AddSink(&renderer_); |
| 45 } | 46 } |
| 46 | 47 |
| 47 void set_expected_compensation(bool compensation) { | 48 void set_expected_compensation(bool compensation) { |
| 48 expects_rotation_applied_ = compensation; | 49 expects_rotation_applied_ = compensation; |
| 49 } | 50 } |
| 50 | 51 |
| 51 protected: | 52 protected: |
| 52 void OnVideoFrame(cricket::VideoCapturer*, const cricket::VideoFrame* frame) { | 53 void OnVideoFrame(const cricket::VideoFrame* frame) { |
| 53 ++video_frames_received_; | 54 ++video_frames_received_; |
| 54 if (expects_rotation_applied_) { | 55 if (expects_rotation_applied_) { |
| 55 EXPECT_EQ(webrtc::kVideoRotation_0, frame->GetRotation()); | 56 EXPECT_EQ(webrtc::kVideoRotation_0, frame->GetRotation()); |
| 56 } else { | 57 } else { |
| 57 EXPECT_EQ(capturer_.GetRotation(), frame->GetRotation()); | 58 EXPECT_EQ(capturer_.GetRotation(), frame->GetRotation()); |
| 58 } | 59 } |
| 59 renderer_.RenderFrame(frame); | |
| 60 } | 60 } |
| 61 void OnStateChange(cricket::VideoCapturer*, | 61 void OnStateChange(cricket::VideoCapturer*, |
| 62 cricket::CaptureState capture_state) { | 62 cricket::CaptureState capture_state) { |
| 63 capture_state_ = capture_state; | 63 capture_state_ = capture_state; |
| 64 ++num_state_changes_; | 64 ++num_state_changes_; |
| 65 } | 65 } |
| 66 cricket::CaptureState capture_state() { return capture_state_; } | 66 cricket::CaptureState capture_state() { return capture_state_; } |
| 67 int num_state_changes() { return num_state_changes_; } | 67 int num_state_changes() { return num_state_changes_; } |
| 68 int video_frames_received() const { | 68 int video_frames_received() const { |
| 69 return video_frames_received_; | 69 return video_frames_received_; |
| (...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 207 int kWidth = 800; | 207 int kWidth = 800; |
| 208 int kHeight = 400; | 208 int kHeight = 400; |
| 209 int frame_count = 0; | 209 int frame_count = 0; |
| 210 | 210 |
| 211 std::vector<cricket::VideoFormat> formats; | 211 std::vector<cricket::VideoFormat> formats; |
| 212 formats.push_back(cricket::VideoFormat(kWidth, kHeight, | 212 formats.push_back(cricket::VideoFormat(kWidth, kHeight, |
| 213 cricket::VideoFormat::FpsToInterval(5), | 213 cricket::VideoFormat::FpsToInterval(5), |
| 214 cricket::FOURCC_I420)); | 214 cricket::FOURCC_I420)); |
| 215 | 215 |
| 216 capturer_.ResetSupportedFormats(formats); | 216 capturer_.ResetSupportedFormats(formats); |
| 217 |
| 217 // capturer_ should compensate rotation as default. | 218 // capturer_ should compensate rotation as default. |
| 218 capturer_.UpdateAspectRatio(400, 200); | 219 capturer_.UpdateAspectRatio(400, 200); |
| 219 | 220 |
| 220 EXPECT_EQ(cricket::CS_RUNNING, | 221 EXPECT_EQ(cricket::CS_RUNNING, |
| 221 capturer_.Start(cricket::VideoFormat( | 222 capturer_.Start(cricket::VideoFormat( |
| 222 kWidth, kHeight, cricket::VideoFormat::FpsToInterval(30), | 223 kWidth, kHeight, cricket::VideoFormat::FpsToInterval(30), |
| 223 cricket::FOURCC_I420))); | 224 cricket::FOURCC_I420))); |
| 224 EXPECT_TRUE(capturer_.IsRunning()); | 225 EXPECT_TRUE(capturer_.IsRunning()); |
| 225 EXPECT_EQ(0, renderer_.num_rendered_frames()); | 226 EXPECT_EQ(0, renderer_.num_rendered_frames()); |
| 226 | 227 |
| (...skipping 27 matching lines...) Expand all Loading... |
| 254 int kWidth = 800; | 255 int kWidth = 800; |
| 255 int kHeight = 400; | 256 int kHeight = 400; |
| 256 | 257 |
| 257 std::vector<cricket::VideoFormat> formats; | 258 std::vector<cricket::VideoFormat> formats; |
| 258 formats.push_back(cricket::VideoFormat(kWidth, kHeight, | 259 formats.push_back(cricket::VideoFormat(kWidth, kHeight, |
| 259 cricket::VideoFormat::FpsToInterval(5), | 260 cricket::VideoFormat::FpsToInterval(5), |
| 260 cricket::FOURCC_I420)); | 261 cricket::FOURCC_I420)); |
| 261 | 262 |
| 262 capturer_.ResetSupportedFormats(formats); | 263 capturer_.ResetSupportedFormats(formats); |
| 263 // capturer_ should not compensate rotation. | 264 // capturer_ should not compensate rotation. |
| 264 capturer_.SetApplyRotation(false); | 265 set_expected_compensation(false); |
| 266 rtc::VideoSinkHints hints; |
| 267 hints.can_apply_rotation = true; |
| 268 capturer_.AddOrUpdateSink(&renderer_, hints); |
| 269 |
| 265 capturer_.UpdateAspectRatio(400, 200); | 270 capturer_.UpdateAspectRatio(400, 200); |
| 266 set_expected_compensation(false); | |
| 267 | 271 |
| 268 EXPECT_EQ(cricket::CS_RUNNING, | 272 EXPECT_EQ(cricket::CS_RUNNING, |
| 269 capturer_.Start(cricket::VideoFormat( | 273 capturer_.Start(cricket::VideoFormat( |
| 270 kWidth, kHeight, cricket::VideoFormat::FpsToInterval(30), | 274 kWidth, kHeight, cricket::VideoFormat::FpsToInterval(30), |
| 271 cricket::FOURCC_I420))); | 275 cricket::FOURCC_I420))); |
| 272 EXPECT_TRUE(capturer_.IsRunning()); | 276 EXPECT_TRUE(capturer_.IsRunning()); |
| 273 EXPECT_EQ(0, renderer_.num_rendered_frames()); | 277 EXPECT_EQ(0, renderer_.num_rendered_frames()); |
| 274 | 278 |
| 275 // If the frame's rotation is compensated anywhere in the pipeline, the frame | 279 // If the frame's rotation is compensated anywhere in the pipeline, the frame |
| 276 // won't have its original dimension out from capturer. Since the renderer | 280 // won't have its original dimension out from capturer. Since the renderer |
| (...skipping 514 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 791 capturer_.set_enable_camera_list(true); | 795 capturer_.set_enable_camera_list(true); |
| 792 capturer_.ConstrainSupportedFormats(vga_format); | 796 capturer_.ConstrainSupportedFormats(vga_format); |
| 793 EXPECT_EQ(2u, capturer_.GetSupportedFormats()->size()); | 797 EXPECT_EQ(2u, capturer_.GetSupportedFormats()->size()); |
| 794 // To make sure it's not just the camera list being broken, add in VGA and | 798 // To make sure it's not just the camera list being broken, add in VGA and |
| 795 // try again. This time, only the VGA format should be there. | 799 // try again. This time, only the VGA format should be there. |
| 796 supported_formats.push_back(vga_format); | 800 supported_formats.push_back(vga_format); |
| 797 capturer_.ResetSupportedFormats(supported_formats); | 801 capturer_.ResetSupportedFormats(supported_formats); |
| 798 ASSERT_EQ(1u, capturer_.GetSupportedFormats()->size()); | 802 ASSERT_EQ(1u, capturer_.GetSupportedFormats()->size()); |
| 799 EXPECT_EQ(vga_format.height, capturer_.GetSupportedFormats()->at(0).height); | 803 EXPECT_EQ(vga_format.height, capturer_.GetSupportedFormats()->at(0).height); |
| 800 } | 804 } |
| OLD | NEW |