Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(5)

Side by Side Diff: webrtc/api/videosource_unittest.cc

Issue 1759473003: Removed VideoSource dependency to ChannelManager. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Created 4 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright 2012 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 #include <string> 11 #include <string>
12 #include <vector> 12 #include <vector>
13 13
14 #include "webrtc/api/remotevideocapturer.h" 14 #include "webrtc/api/remotevideocapturer.h"
15 #include "webrtc/api/test/fakeconstraints.h" 15 #include "webrtc/api/test/fakeconstraints.h"
16 #include "webrtc/api/videosource.h" 16 #include "webrtc/api/videosource.h"
17 #include "webrtc/base/gunit.h" 17 #include "webrtc/base/gunit.h"
18 #include "webrtc/media/base/fakemediaengine.h" 18 #include "webrtc/media/base/fakemediaengine.h"
19 #include "webrtc/media/base/fakevideocapturer.h" 19 #include "webrtc/media/base/fakevideocapturer.h"
20 #include "webrtc/media/base/fakevideorenderer.h" 20 #include "webrtc/media/base/fakevideorenderer.h"
21 #include "webrtc/media/engine/webrtcvideoframe.h" 21 #include "webrtc/media/engine/webrtcvideoframe.h"
22 #include "webrtc/pc/channelmanager.h"
23 22
24 using webrtc::FakeConstraints; 23 using webrtc::FakeConstraints;
25 using webrtc::VideoSource; 24 using webrtc::VideoSource;
26 using webrtc::MediaConstraintsInterface; 25 using webrtc::MediaConstraintsInterface;
27 using webrtc::MediaSourceInterface; 26 using webrtc::MediaSourceInterface;
28 using webrtc::ObserverInterface; 27 using webrtc::ObserverInterface;
29 using webrtc::VideoSourceInterface; 28 using webrtc::VideoSourceInterface;
30 29
31 namespace { 30 namespace {
32 31
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
104 } 103 }
105 MediaSourceInterface::SourceState state() const { return state_; } 104 MediaSourceInterface::SourceState state() const { return state_; }
106 105
107 private: 106 private:
108 MediaSourceInterface::SourceState state_; 107 MediaSourceInterface::SourceState state_;
109 rtc::scoped_refptr<VideoSourceInterface> source_; 108 rtc::scoped_refptr<VideoSourceInterface> source_;
110 }; 109 };
111 110
112 class VideoSourceTest : public testing::Test { 111 class VideoSourceTest : public testing::Test {
113 protected: 112 protected:
114 VideoSourceTest() 113 VideoSourceTest() {
115 : channel_manager_(new cricket::ChannelManager(
116 new cricket::FakeMediaEngine(), rtc::Thread::Current())) {
117 InitCapturer(false); 114 InitCapturer(false);
118 } 115 }
119 void InitCapturer(bool is_screencast) { 116 void InitCapturer(bool is_screencast) {
120 capturer_cleanup_ = rtc::scoped_ptr<TestVideoCapturer>( 117 capturer_cleanup_ = rtc::scoped_ptr<TestVideoCapturer>(
121 new TestVideoCapturer(is_screencast)); 118 new TestVideoCapturer(is_screencast));
122 capturer_ = capturer_cleanup_.get(); 119 capturer_ = capturer_cleanup_.get();
123 } 120 }
124 121
125 void InitScreencast() { InitCapturer(true); } 122 void InitScreencast() { InitCapturer(true); }
126 123
127 void SetUp() {
128 ASSERT_TRUE(channel_manager_->Init());
129 }
130
131 void CreateVideoSource() { 124 void CreateVideoSource() {
132 CreateVideoSource(NULL); 125 CreateVideoSource(NULL);
133 } 126 }
134 127
135 void CreateVideoSource( 128 void CreateVideoSource(
136 const webrtc::MediaConstraintsInterface* constraints) { 129 const webrtc::MediaConstraintsInterface* constraints) {
137 // VideoSource take ownership of |capturer_| 130 // VideoSource take ownership of |capturer_|
138 source_ = 131 source_ =
139 VideoSource::Create(channel_manager_.get(), capturer_cleanup_.release(), 132 VideoSource::Create(rtc::Thread::Current(), capturer_cleanup_.release(),
140 constraints, false); 133 constraints, false);
141 134
142 ASSERT_TRUE(source_.get() != NULL); 135 ASSERT_TRUE(source_.get() != NULL);
143 EXPECT_EQ(capturer_, source_->GetVideoCapturer()); 136 EXPECT_EQ(capturer_, source_->GetVideoCapturer());
144 137
145 state_observer_.reset(new StateObserver(source_)); 138 state_observer_.reset(new StateObserver(source_));
146 source_->RegisterObserver(state_observer_.get()); 139 source_->RegisterObserver(state_observer_.get());
147 source_->AddSink(&renderer_); 140 source_->AddSink(&renderer_);
148 } 141 }
149 142
150 rtc::scoped_ptr<TestVideoCapturer> capturer_cleanup_; 143 rtc::scoped_ptr<TestVideoCapturer> capturer_cleanup_;
151 TestVideoCapturer* capturer_; 144 TestVideoCapturer* capturer_;
152 cricket::FakeVideoRenderer renderer_; 145 cricket::FakeVideoRenderer renderer_;
153 rtc::scoped_ptr<cricket::ChannelManager> channel_manager_;
154 rtc::scoped_ptr<StateObserver> state_observer_; 146 rtc::scoped_ptr<StateObserver> state_observer_;
155 rtc::scoped_refptr<VideoSource> source_; 147 rtc::scoped_refptr<VideoSource> source_;
156 }; 148 };
157 149
158 150
159 // Test that a VideoSource transition to kLive state when the capture 151 // Test that a VideoSource transition to kLive state when the capture
160 // device have started and kEnded if it is stopped. 152 // device have started and kEnded if it is stopped.
161 // It also test that an output can receive video frames. 153 // It also test that an output can receive video frames.
162 TEST_F(VideoSourceTest, CapturerStartStop) { 154 TEST_F(VideoSourceTest, CapturerStartStop) {
163 // Initialize without constraints. 155 // Initialize without constraints.
(...skipping 29 matching lines...) Expand all
193 185
194 ASSERT_TRUE(capturer_->CaptureFrame()); 186 ASSERT_TRUE(capturer_->CaptureFrame());
195 EXPECT_EQ(2, renderer_.num_rendered_frames()); 187 EXPECT_EQ(2, renderer_.num_rendered_frames());
196 188
197 source_->Stop(); 189 source_->Stop();
198 } 190 }
199 191
200 // Test start stop with a remote VideoSource - the video source that has a 192 // Test start stop with a remote VideoSource - the video source that has a
201 // RemoteVideoCapturer and takes video frames from FrameInput. 193 // RemoteVideoCapturer and takes video frames from FrameInput.
202 TEST_F(VideoSourceTest, StartStopRemote) { 194 TEST_F(VideoSourceTest, StartStopRemote) {
203 source_ = VideoSource::Create(channel_manager_.get(), 195 source_ = VideoSource::Create(rtc::Thread::Current(),
204 new webrtc::RemoteVideoCapturer(), NULL, true); 196 new webrtc::RemoteVideoCapturer(), NULL, true);
205 197
206 ASSERT_TRUE(source_.get() != NULL); 198 ASSERT_TRUE(source_.get() != NULL);
207 EXPECT_TRUE(NULL != source_->GetVideoCapturer()); 199 EXPECT_TRUE(NULL != source_->GetVideoCapturer());
208 200
209 state_observer_.reset(new StateObserver(source_)); 201 state_observer_.reset(new StateObserver(source_));
210 source_->RegisterObserver(state_observer_.get()); 202 source_->RegisterObserver(state_observer_.get());
211 source_->AddSink(&renderer_); 203 source_->AddSink(&renderer_);
212 204
213 EXPECT_EQ_WAIT(MediaSourceInterface::kLive, state_observer_->state(), 205 EXPECT_EQ_WAIT(MediaSourceInterface::kLive, state_observer_->state(),
(...skipping 314 matching lines...) Expand 10 before | Expand all | Expand 10 after
528 FakeConstraints constraints; 520 FakeConstraints constraints;
529 constraints.AddOptional(MediaConstraintsInterface::kMaxFrameRate, 0.5); 521 constraints.AddOptional(MediaConstraintsInterface::kMaxFrameRate, 0.5);
530 522
531 CreateVideoSource(&constraints); 523 CreateVideoSource(&constraints);
532 EXPECT_EQ_WAIT(MediaSourceInterface::kLive, state_observer_->state(), 524 EXPECT_EQ_WAIT(MediaSourceInterface::kLive, state_observer_->state(),
533 kMaxWaitMs); 525 kMaxWaitMs);
534 const cricket::VideoFormat* format = capturer_->GetCaptureFormat(); 526 const cricket::VideoFormat* format = capturer_->GetCaptureFormat();
535 ASSERT_TRUE(format != NULL); 527 ASSERT_TRUE(format != NULL);
536 EXPECT_EQ(30, format->framerate()); 528 EXPECT_EQ(30, format->framerate());
537 } 529 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698