diff options
Diffstat (limited to 'pc/videotrack_unittest.cc')
-rw-r--r-- | pc/videotrack_unittest.cc | 31 |
1 files changed, 20 insertions, 11 deletions
diff --git a/pc/videotrack_unittest.cc b/pc/videotrack_unittest.cc index 77d16dec78..e833d6ddf0 100644 --- a/pc/videotrack_unittest.cc +++ b/pc/videotrack_unittest.cc @@ -25,22 +25,31 @@ using webrtc::VideoTrackSource; using webrtc::VideoTrack; using webrtc::VideoTrackInterface; +class TestVideoTrackSource : public VideoTrackSource { + public: + TestVideoTrackSource() : VideoTrackSource(true /* remote */) {} + rtc::VideoSourceInterface<webrtc::VideoFrame>* source() override { + return &capturer_; + } + cricket::FakeVideoCapturerWithTaskQueue* capturer() { return &capturer_; } + + private: + cricket::FakeVideoCapturerWithTaskQueue capturer_; +}; class VideoTrackTest : public testing::Test { public: VideoTrackTest() { static const char kVideoTrackId[] = "track_id"; - video_track_source_ = new rtc::RefCountedObject<VideoTrackSource>( - &capturer_, true /* remote */); + video_track_source_ = new rtc::RefCountedObject<TestVideoTrackSource>(); video_track_ = VideoTrack::Create(kVideoTrackId, video_track_source_, rtc::Thread::Current()); - capturer_.Start( + video_track_source_->capturer()->Start( cricket::VideoFormat(640, 480, cricket::VideoFormat::FpsToInterval(30), cricket::FOURCC_I420)); } protected: - cricket::FakeVideoCapturerWithTaskQueue capturer_; - rtc::scoped_refptr<VideoTrackSource> video_track_source_; + rtc::scoped_refptr<TestVideoTrackSource> video_track_source_; rtc::scoped_refptr<VideoTrackInterface> video_track_; }; @@ -58,18 +67,18 @@ TEST_F(VideoTrackTest, RenderVideo) { std::unique_ptr<FakeVideoTrackRenderer> renderer_1( new FakeVideoTrackRenderer(video_track_.get())); - capturer_.CaptureFrame(); + video_track_source_->capturer()->CaptureFrame(); EXPECT_EQ(1, renderer_1->num_rendered_frames()); // FakeVideoTrackRenderer register itself to |video_track_| std::unique_ptr<FakeVideoTrackRenderer> renderer_2( new FakeVideoTrackRenderer(video_track_.get())); - capturer_.CaptureFrame(); + video_track_source_->capturer()->CaptureFrame(); EXPECT_EQ(2, renderer_1->num_rendered_frames()); EXPECT_EQ(1, renderer_2->num_rendered_frames()); renderer_1.reset(nullptr); - capturer_.CaptureFrame(); + video_track_source_->capturer()->CaptureFrame(); EXPECT_EQ(2, renderer_2->num_rendered_frames()); } @@ -78,17 +87,17 @@ TEST_F(VideoTrackTest, DisableTrackBlackout) { std::unique_ptr<FakeVideoTrackRenderer> renderer( new FakeVideoTrackRenderer(video_track_.get())); - capturer_.CaptureFrame(); + video_track_source_->capturer()->CaptureFrame(); EXPECT_EQ(1, renderer->num_rendered_frames()); EXPECT_FALSE(renderer->black_frame()); video_track_->set_enabled(false); - capturer_.CaptureFrame(); + video_track_source_->capturer()->CaptureFrame(); EXPECT_EQ(2, renderer->num_rendered_frames()); EXPECT_TRUE(renderer->black_frame()); video_track_->set_enabled(true); - capturer_.CaptureFrame(); + video_track_source_->capturer()->CaptureFrame(); EXPECT_EQ(3, renderer->num_rendered_frames()); EXPECT_FALSE(renderer->black_frame()); } |