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

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

Issue 1684423002: Make VideoTrack and VideoTrackRenderers implement rtc::VideoSourceInterface. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Delete unused last_frame method and corresponding member. Created 4 years, 10 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 12
13 #include "webrtc/api/remotevideocapturer.h" 13 #include "webrtc/api/remotevideocapturer.h"
14 #include "webrtc/api/test/fakevideotrackrenderer.h" 14 #include "webrtc/api/test/fakevideotrackrenderer.h"
15 #include "webrtc/api/videosource.h" 15 #include "webrtc/api/videosource.h"
16 #include "webrtc/api/videotrack.h" 16 #include "webrtc/api/videotrack.h"
17 #include "webrtc/base/gunit.h" 17 #include "webrtc/base/gunit.h"
18 #include "webrtc/base/scoped_ptr.h" 18 #include "webrtc/base/scoped_ptr.h"
19 #include "webrtc/media/base/fakemediaengine.h" 19 #include "webrtc/media/base/fakemediaengine.h"
20 #include "webrtc/media/engine/webrtcvideoframe.h" 20 #include "webrtc/media/engine/webrtcvideoframe.h"
21 #include "webrtc/pc/channelmanager.h" 21 #include "webrtc/pc/channelmanager.h"
22 22
23 using webrtc::FakeVideoTrackRenderer; 23 using webrtc::FakeVideoTrackRenderer;
24 using webrtc::FakeVideoTrackRendererOld;
24 using webrtc::VideoSource; 25 using webrtc::VideoSource;
25 using webrtc::VideoTrack; 26 using webrtc::VideoTrack;
26 using webrtc::VideoTrackInterface; 27 using webrtc::VideoTrackInterface;
27 28
28 namespace { 29 namespace {
29 30
30 class WebRtcVideoTestFrame : public cricket::WebRtcVideoFrame { 31 class WebRtcVideoTestFrame : public cricket::WebRtcVideoFrame {
31 public: 32 public:
32 using cricket::WebRtcVideoFrame::SetRotation; 33 using cricket::WebRtcVideoFrame::SetRotation;
33 }; 34 };
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
79 renderer_input->OnFrame(frame); 80 renderer_input->OnFrame(frame);
80 81
81 EXPECT_EQ(123, renderer_1->width()); 82 EXPECT_EQ(123, renderer_1->width());
82 EXPECT_EQ(123, renderer_1->height()); 83 EXPECT_EQ(123, renderer_1->height());
83 EXPECT_EQ(123, renderer_2->width()); 84 EXPECT_EQ(123, renderer_2->width());
84 EXPECT_EQ(123, renderer_2->height()); 85 EXPECT_EQ(123, renderer_2->height());
85 86
86 EXPECT_EQ(2, renderer_1->num_rendered_frames()); 87 EXPECT_EQ(2, renderer_1->num_rendered_frames());
87 EXPECT_EQ(1, renderer_2->num_rendered_frames()); 88 EXPECT_EQ(1, renderer_2->num_rendered_frames());
88 89
90 video_track_->RemoveSink(renderer_1.get());
91 renderer_input->OnFrame(frame);
92
93 EXPECT_EQ(2, renderer_1->num_rendered_frames());
94 EXPECT_EQ(2, renderer_2->num_rendered_frames());
95 }
96
97 // Test adding renderers to a video track and render to them by
98 // providing frames to the source. Uses the old VideoTrack interface
99 // with AddRenderer and RemoveRenderer.
100 TEST_F(VideoTrackTest, RenderVideoOld) {
101 // FakeVideoTrackRenderer register itself to |video_track_|
102 rtc::scoped_ptr<FakeVideoTrackRendererOld> renderer_1(
103 new FakeVideoTrackRendererOld(video_track_.get()));
104
105 rtc::VideoSinkInterface<cricket::VideoFrame>* renderer_input =
106 video_track_->GetSink();
107 ASSERT_FALSE(renderer_input == NULL);
108
109 cricket::WebRtcVideoFrame frame;
110 frame.InitToBlack(123, 123, 0);
111 renderer_input->OnFrame(frame);
112 EXPECT_EQ(1, renderer_1->num_rendered_frames());
113
114 EXPECT_EQ(123, renderer_1->width());
115 EXPECT_EQ(123, renderer_1->height());
116
117 // FakeVideoTrackRenderer register itself to |video_track_|
118 rtc::scoped_ptr<FakeVideoTrackRenderer> renderer_2(
119 new FakeVideoTrackRenderer(video_track_.get()));
120
121 renderer_input->OnFrame(frame);
122
123 EXPECT_EQ(123, renderer_1->width());
124 EXPECT_EQ(123, renderer_1->height());
125 EXPECT_EQ(123, renderer_2->width());
126 EXPECT_EQ(123, renderer_2->height());
127
128 EXPECT_EQ(2, renderer_1->num_rendered_frames());
129 EXPECT_EQ(1, renderer_2->num_rendered_frames());
130
89 video_track_->RemoveRenderer(renderer_1.get()); 131 video_track_->RemoveRenderer(renderer_1.get());
90 renderer_input->OnFrame(frame); 132 renderer_input->OnFrame(frame);
91 133
92 EXPECT_EQ(2, renderer_1->num_rendered_frames()); 134 EXPECT_EQ(2, renderer_1->num_rendered_frames());
93 EXPECT_EQ(2, renderer_2->num_rendered_frames()); 135 EXPECT_EQ(2, renderer_2->num_rendered_frames());
94 } 136 }
95 137
96 // Test that disabling the track results in blacked out frames. 138 // Test that disabling the track results in blacked out frames.
97 TEST_F(VideoTrackTest, DisableTrackBlackout) { 139 TEST_F(VideoTrackTest, DisableTrackBlackout) {
98 rtc::scoped_ptr<FakeVideoTrackRenderer> renderer( 140 rtc::scoped_ptr<FakeVideoTrackRenderer> renderer(
(...skipping 21 matching lines...) Expand all
120 EXPECT_EQ(100, renderer->width()); 162 EXPECT_EQ(100, renderer->width());
121 EXPECT_EQ(200, renderer->height()); 163 EXPECT_EQ(200, renderer->height());
122 164
123 video_track_->set_enabled(true); 165 video_track_->set_enabled(true);
124 renderer_input->OnFrame(frame); 166 renderer_input->OnFrame(frame);
125 EXPECT_EQ(3, renderer->num_rendered_frames()); 167 EXPECT_EQ(3, renderer->num_rendered_frames());
126 EXPECT_FALSE(renderer->black_frame()); 168 EXPECT_FALSE(renderer->black_frame());
127 EXPECT_EQ(100, renderer->width()); 169 EXPECT_EQ(100, renderer->width());
128 EXPECT_EQ(200, renderer->height()); 170 EXPECT_EQ(200, renderer->height());
129 } 171 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698