Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 /* | 1 /* |
| 2 * Copyright (c) 2004 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2004 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 |
| 11 #ifdef HAVE_WEBRTC_VIDEO | 11 // TODO(nisse): For some reason rtc_media_unittests is built (gyp) |
| 12 // without -DHAVE_WEBRTC_VIDEO. How to fix? | |
|
nisse-webrtc
2016/08/19 12:01:16
Should this be set explicitly in media.gyp? Or sho
perkj_webrtc
2016/08/19 13:08:59
just see what happens if you drop if HAVE_WEBRTC_V
nisse-webrtc
2016/08/19 13:30:02
Let's see if kjellander has any comments on the ot
nisse-webrtc
2016/08/23 08:36:26
That cl was landed, so reverted this change.
| |
| 12 | 13 |
| 14 // #ifdef HAVE_WEBRTC_VIDEO | |
| 15 #if 1 | |
| 13 #include <stdio.h> | 16 #include <stdio.h> |
| 14 | 17 |
| 15 #include <memory> | 18 #include <memory> |
| 16 #include <vector> | 19 #include <vector> |
| 17 | 20 |
| 18 #include "webrtc/base/gunit.h" | 21 #include "webrtc/base/gunit.h" |
| 19 #include "webrtc/base/logging.h" | 22 #include "webrtc/base/logging.h" |
| 20 #include "webrtc/base/stringutils.h" | 23 #include "webrtc/base/stringutils.h" |
| 21 #include "webrtc/base/thread.h" | 24 #include "webrtc/base/thread.h" |
| 22 #include "webrtc/media/base/testutils.h" | 25 #include "webrtc/media/base/testutils.h" |
| 23 #include "webrtc/media/base/videocommon.h" | 26 #include "webrtc/media/base/videocommon.h" |
| 24 #include "webrtc/media/engine/fakewebrtcvcmfactory.h" | 27 #include "webrtc/media/engine/fakewebrtcvcmfactory.h" |
| 25 #include "webrtc/media/engine/webrtcvideocapturer.h" | 28 #include "webrtc/media/engine/webrtcvideocapturer.h" |
| 26 | 29 |
| 27 using cricket::VideoFormat; | 30 using cricket::VideoFormat; |
| 28 | 31 |
| 29 static const std::string kTestDeviceName = "JuberTech FakeCam Q123"; | 32 static const std::string kTestDeviceName = "JuberTech FakeCam Q123"; |
| 30 static const std::string kTestDeviceId = "foo://bar/baz"; | 33 static const std::string kTestDeviceId = "foo://bar/baz"; |
| 31 const VideoFormat kDefaultVideoFormat = | 34 const VideoFormat kDefaultVideoFormat = |
| 32 VideoFormat(640, 400, VideoFormat::FpsToInterval(30), cricket::FOURCC_ANY); | 35 VideoFormat(640, 400, VideoFormat::FpsToInterval(30), cricket::FOURCC_ANY); |
| 33 | 36 |
| 34 class WebRtcVideoCapturerTest : public testing::Test { | 37 class WebRtcVideoCapturerTest : public testing::Test { |
| 35 public: | 38 public: |
| 36 WebRtcVideoCapturerTest() | 39 WebRtcVideoCapturerTest() |
| 37 : factory_(new FakeWebRtcVcmFactory), | 40 : factory_(new FakeWebRtcVcmFactory), |
| 38 capturer_(new cricket::WebRtcVideoCapturer(factory_)), | 41 capturer_(new cricket::WebRtcVideoCapturer(factory_)) { |
| 39 listener_(capturer_.get()) { | |
| 40 factory_->device_info.AddDevice(kTestDeviceName, kTestDeviceId); | 42 factory_->device_info.AddDevice(kTestDeviceName, kTestDeviceId); |
| 41 // add a VGA/I420 capability | 43 // add a VGA/I420 capability |
| 42 webrtc::VideoCaptureCapability vga; | 44 webrtc::VideoCaptureCapability vga; |
| 43 vga.width = 640; | 45 vga.width = 640; |
| 44 vga.height = 480; | 46 vga.height = 480; |
| 45 vga.maxFPS = 30; | 47 vga.maxFPS = 30; |
| 46 vga.rawType = webrtc::kVideoI420; | 48 vga.rawType = webrtc::kVideoI420; |
| 47 factory_->device_info.AddCapability(kTestDeviceId, vga); | 49 factory_->device_info.AddCapability(kTestDeviceId, vga); |
| 48 } | 50 } |
| 49 | 51 |
| 50 protected: | 52 protected: |
| 51 FakeWebRtcVcmFactory* factory_; // owned by capturer_ | 53 FakeWebRtcVcmFactory* factory_; // owned by capturer_ |
| 52 std::unique_ptr<cricket::WebRtcVideoCapturer> capturer_; | 54 std::unique_ptr<cricket::WebRtcVideoCapturer> capturer_; |
| 53 cricket::VideoCapturerListener listener_; | |
| 54 }; | 55 }; |
| 55 | 56 |
| 56 TEST_F(WebRtcVideoCapturerTest, TestNotOpened) { | 57 TEST_F(WebRtcVideoCapturerTest, TestNotOpened) { |
| 57 EXPECT_EQ("", capturer_->GetId()); | 58 EXPECT_EQ("", capturer_->GetId()); |
| 58 EXPECT_TRUE(capturer_->GetSupportedFormats()->empty()); | 59 EXPECT_TRUE(capturer_->GetSupportedFormats()->empty()); |
| 59 EXPECT_TRUE(capturer_->GetCaptureFormat() == NULL); | 60 EXPECT_TRUE(capturer_->GetCaptureFormat() == NULL); |
| 60 EXPECT_FALSE(capturer_->IsRunning()); | 61 EXPECT_FALSE(capturer_->IsRunning()); |
| 61 } | 62 } |
| 62 | 63 |
| 63 TEST_F(WebRtcVideoCapturerTest, TestBadInit) { | 64 TEST_F(WebRtcVideoCapturerTest, TestBadInit) { |
| (...skipping 12 matching lines...) Expand all Loading... | |
| 76 EXPECT_FALSE(capturer_->IsRunning()); | 77 EXPECT_FALSE(capturer_->IsRunning()); |
| 77 } | 78 } |
| 78 | 79 |
| 79 TEST_F(WebRtcVideoCapturerTest, TestInitVcm) { | 80 TEST_F(WebRtcVideoCapturerTest, TestInitVcm) { |
| 80 EXPECT_TRUE(capturer_->Init(factory_->Create(0, | 81 EXPECT_TRUE(capturer_->Init(factory_->Create(0, |
| 81 reinterpret_cast<const char*>(kTestDeviceId.c_str())))); | 82 reinterpret_cast<const char*>(kTestDeviceId.c_str())))); |
| 82 } | 83 } |
| 83 | 84 |
| 84 TEST_F(WebRtcVideoCapturerTest, TestCapture) { | 85 TEST_F(WebRtcVideoCapturerTest, TestCapture) { |
| 85 EXPECT_TRUE(capturer_->Init(cricket::Device(kTestDeviceName, kTestDeviceId))); | 86 EXPECT_TRUE(capturer_->Init(cricket::Device(kTestDeviceName, kTestDeviceId))); |
| 87 cricket::VideoCapturerListener listener(capturer_.get()); | |
| 86 cricket::VideoFormat format( | 88 cricket::VideoFormat format( |
| 87 capturer_->GetSupportedFormats()->at(0)); | 89 capturer_->GetSupportedFormats()->at(0)); |
| 88 EXPECT_EQ(cricket::CS_STARTING, capturer_->Start(format)); | 90 EXPECT_EQ(cricket::CS_STARTING, capturer_->Start(format)); |
| 89 EXPECT_TRUE(capturer_->IsRunning()); | 91 EXPECT_TRUE(capturer_->IsRunning()); |
| 90 ASSERT_TRUE(capturer_->GetCaptureFormat() != NULL); | 92 ASSERT_TRUE(capturer_->GetCaptureFormat() != NULL); |
| 91 EXPECT_EQ(format, *capturer_->GetCaptureFormat()); | 93 EXPECT_EQ(format, *capturer_->GetCaptureFormat()); |
| 92 EXPECT_EQ_WAIT(cricket::CS_RUNNING, listener_.last_capture_state(), 1000); | 94 EXPECT_EQ_WAIT(cricket::CS_RUNNING, listener.last_capture_state(), 1000); |
| 93 factory_->modules[0]->SendFrame(640, 480); | 95 factory_->modules[0]->SendFrame(640, 480); |
| 94 EXPECT_TRUE_WAIT(listener_.frame_count() > 0, 5000); | 96 EXPECT_TRUE_WAIT(listener.frame_count() > 0, 5000); |
| 95 EXPECT_EQ(capturer_->GetCaptureFormat()->fourcc, listener_.frame_fourcc()); | 97 EXPECT_EQ(640, listener.frame_width()); |
| 96 EXPECT_EQ(640, listener_.frame_width()); | 98 EXPECT_EQ(480, listener.frame_height()); |
| 97 EXPECT_EQ(480, listener_.frame_height()); | |
| 98 EXPECT_EQ(cricket::CS_FAILED, capturer_->Start(format)); | 99 EXPECT_EQ(cricket::CS_FAILED, capturer_->Start(format)); |
| 99 capturer_->Stop(); | 100 capturer_->Stop(); |
| 100 EXPECT_FALSE(capturer_->IsRunning()); | 101 EXPECT_FALSE(capturer_->IsRunning()); |
| 101 EXPECT_TRUE(capturer_->GetCaptureFormat() == NULL); | 102 EXPECT_TRUE(capturer_->GetCaptureFormat() == NULL); |
| 102 EXPECT_EQ_WAIT(cricket::CS_STOPPED, listener_.last_capture_state(), 1000); | 103 EXPECT_EQ_WAIT(cricket::CS_STOPPED, listener.last_capture_state(), 1000); |
| 103 } | 104 } |
| 104 | 105 |
| 105 TEST_F(WebRtcVideoCapturerTest, TestCaptureVcm) { | 106 TEST_F(WebRtcVideoCapturerTest, TestCaptureVcm) { |
| 106 EXPECT_TRUE(capturer_->Init(factory_->Create(0, | 107 EXPECT_TRUE(capturer_->Init(factory_->Create(0, |
| 107 reinterpret_cast<const char*>(kTestDeviceId.c_str())))); | 108 reinterpret_cast<const char*>(kTestDeviceId.c_str())))); |
| 109 cricket::VideoCapturerListener listener(capturer_.get()); | |
| 108 EXPECT_TRUE(capturer_->GetSupportedFormats()->empty()); | 110 EXPECT_TRUE(capturer_->GetSupportedFormats()->empty()); |
| 109 VideoFormat format; | 111 VideoFormat format; |
| 110 EXPECT_TRUE(capturer_->GetBestCaptureFormat(kDefaultVideoFormat, &format)); | 112 EXPECT_TRUE(capturer_->GetBestCaptureFormat(kDefaultVideoFormat, &format)); |
| 111 EXPECT_EQ(kDefaultVideoFormat.width, format.width); | 113 EXPECT_EQ(kDefaultVideoFormat.width, format.width); |
| 112 EXPECT_EQ(kDefaultVideoFormat.height, format.height); | 114 EXPECT_EQ(kDefaultVideoFormat.height, format.height); |
| 113 EXPECT_EQ(kDefaultVideoFormat.interval, format.interval); | 115 EXPECT_EQ(kDefaultVideoFormat.interval, format.interval); |
| 114 EXPECT_EQ(cricket::FOURCC_I420, format.fourcc); | 116 EXPECT_EQ(cricket::FOURCC_I420, format.fourcc); |
| 115 EXPECT_EQ(cricket::CS_STARTING, capturer_->Start(format)); | 117 EXPECT_EQ(cricket::CS_STARTING, capturer_->Start(format)); |
| 116 EXPECT_TRUE(capturer_->IsRunning()); | 118 EXPECT_TRUE(capturer_->IsRunning()); |
| 117 ASSERT_TRUE(capturer_->GetCaptureFormat() != NULL); | 119 ASSERT_TRUE(capturer_->GetCaptureFormat() != NULL); |
| 118 EXPECT_EQ(format, *capturer_->GetCaptureFormat()); | 120 EXPECT_EQ(format, *capturer_->GetCaptureFormat()); |
| 119 EXPECT_EQ_WAIT(cricket::CS_RUNNING, listener_.last_capture_state(), 1000); | 121 EXPECT_EQ_WAIT(cricket::CS_RUNNING, listener.last_capture_state(), 1000); |
| 120 factory_->modules[0]->SendFrame(640, 480); | 122 factory_->modules[0]->SendFrame(640, 480); |
| 121 EXPECT_TRUE_WAIT(listener_.frame_count() > 0, 5000); | 123 EXPECT_TRUE_WAIT(listener.frame_count() > 0, 5000); |
| 122 EXPECT_EQ(capturer_->GetCaptureFormat()->fourcc, listener_.frame_fourcc()); | 124 EXPECT_EQ(640, listener.frame_width()); |
| 123 EXPECT_EQ(640, listener_.frame_width()); | 125 EXPECT_EQ(480, listener.frame_height()); |
| 124 EXPECT_EQ(480, listener_.frame_height()); | |
| 125 EXPECT_EQ(cricket::CS_FAILED, capturer_->Start(format)); | 126 EXPECT_EQ(cricket::CS_FAILED, capturer_->Start(format)); |
| 126 capturer_->Stop(); | 127 capturer_->Stop(); |
| 127 EXPECT_FALSE(capturer_->IsRunning()); | 128 EXPECT_FALSE(capturer_->IsRunning()); |
| 128 EXPECT_TRUE(capturer_->GetCaptureFormat() == NULL); | 129 EXPECT_TRUE(capturer_->GetCaptureFormat() == NULL); |
| 129 } | 130 } |
| 130 | 131 |
| 131 TEST_F(WebRtcVideoCapturerTest, TestCaptureWithoutInit) { | 132 TEST_F(WebRtcVideoCapturerTest, TestCaptureWithoutInit) { |
| 132 cricket::VideoFormat format; | 133 cricket::VideoFormat format; |
| 133 EXPECT_EQ(cricket::CS_FAILED, capturer_->Start(format)); | 134 EXPECT_EQ(cricket::CS_FAILED, capturer_->Start(format)); |
| 134 EXPECT_TRUE(capturer_->GetCaptureFormat() == NULL); | 135 EXPECT_TRUE(capturer_->GetCaptureFormat() == NULL); |
| 135 EXPECT_FALSE(capturer_->IsRunning()); | 136 EXPECT_FALSE(capturer_->IsRunning()); |
| 136 } | 137 } |
| 137 | 138 |
| 138 #endif // HAVE_WEBRTC_VIDEO | 139 #endif // HAVE_WEBRTC_VIDEO |
| OLD | NEW |