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

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

Issue 1817473002: Delete VideoRendererInterface. (Closed) Base URL: https://chromium.googlesource.com/external/webrtc.git@master
Patch Set: Rebase. 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 12
13 #include "webrtc/api/test/fakevideotrackrenderer.h" 13 #include "webrtc/api/test/fakevideotrackrenderer.h"
14 #include "webrtc/api/videocapturertracksource.h" 14 #include "webrtc/api/videocapturertracksource.h"
15 #include "webrtc/api/videotrack.h" 15 #include "webrtc/api/videotrack.h"
16 #include "webrtc/base/gunit.h" 16 #include "webrtc/base/gunit.h"
17 #include "webrtc/base/scoped_ptr.h" 17 #include "webrtc/base/scoped_ptr.h"
18 #include "webrtc/media/base/fakevideocapturer.h" 18 #include "webrtc/media/base/fakevideocapturer.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 21
22 using webrtc::FakeVideoTrackRenderer; 22 using webrtc::FakeVideoTrackRenderer;
23 using webrtc::FakeVideoTrackRendererOld;
24 using webrtc::MediaSourceInterface; 23 using webrtc::MediaSourceInterface;
25 using webrtc::MediaStreamTrackInterface; 24 using webrtc::MediaStreamTrackInterface;
26 using webrtc::VideoTrackSource; 25 using webrtc::VideoTrackSource;
27 using webrtc::VideoTrack; 26 using webrtc::VideoTrack;
28 using webrtc::VideoTrackInterface; 27 using webrtc::VideoTrackInterface;
29 28
30 class VideoTrackTest : public testing::Test { 29 class VideoTrackTest : public testing::Test {
31 public: 30 public:
32 VideoTrackTest() { 31 VideoTrackTest() {
33 static const char kVideoTrackId[] = "track_id"; 32 static const char kVideoTrackId[] = "track_id";
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 new FakeVideoTrackRenderer(video_track_.get())); 66 new FakeVideoTrackRenderer(video_track_.get()));
68 capturer_.CaptureFrame(); 67 capturer_.CaptureFrame();
69 EXPECT_EQ(2, renderer_1->num_rendered_frames()); 68 EXPECT_EQ(2, renderer_1->num_rendered_frames());
70 EXPECT_EQ(1, renderer_2->num_rendered_frames()); 69 EXPECT_EQ(1, renderer_2->num_rendered_frames());
71 70
72 renderer_1.reset(nullptr); 71 renderer_1.reset(nullptr);
73 capturer_.CaptureFrame(); 72 capturer_.CaptureFrame();
74 EXPECT_EQ(2, renderer_2->num_rendered_frames()); 73 EXPECT_EQ(2, renderer_2->num_rendered_frames());
75 } 74 }
76 75
77 // Test adding renderers to a video track and render to them by
78 // providing frames to the source. Uses the old VideoTrack interface
79 // with AddRenderer and RemoveRenderer.
80 TEST_F(VideoTrackTest, RenderVideoOld) {
81 // FakeVideoTrackRenderer register itself to |video_track_|
82 rtc::scoped_ptr<FakeVideoTrackRendererOld> renderer_1(
83 new FakeVideoTrackRendererOld(video_track_.get()));
84
85 capturer_.CaptureFrame();
86 EXPECT_EQ(1, renderer_1->num_rendered_frames());
87
88 // FakeVideoTrackRenderer register itself to |video_track_|
89 rtc::scoped_ptr<FakeVideoTrackRenderer> renderer_2(
90 new FakeVideoTrackRenderer(video_track_.get()));
91
92 capturer_.CaptureFrame();
93 EXPECT_EQ(2, renderer_1->num_rendered_frames());
94 EXPECT_EQ(1, renderer_2->num_rendered_frames());
95
96 renderer_1.reset(nullptr);
97 capturer_.CaptureFrame();
98 EXPECT_EQ(2, renderer_2->num_rendered_frames());
99 }
100
101 // Test that disabling the track results in blacked out frames. 76 // Test that disabling the track results in blacked out frames.
102 TEST_F(VideoTrackTest, DisableTrackBlackout) { 77 TEST_F(VideoTrackTest, DisableTrackBlackout) {
103 rtc::scoped_ptr<FakeVideoTrackRenderer> renderer( 78 rtc::scoped_ptr<FakeVideoTrackRenderer> renderer(
104 new FakeVideoTrackRenderer(video_track_.get())); 79 new FakeVideoTrackRenderer(video_track_.get()));
105 80
106 capturer_.CaptureFrame(); 81 capturer_.CaptureFrame();
107 EXPECT_EQ(1, renderer->num_rendered_frames()); 82 EXPECT_EQ(1, renderer->num_rendered_frames());
108 EXPECT_FALSE(renderer->black_frame()); 83 EXPECT_FALSE(renderer->black_frame());
109 84
110 video_track_->set_enabled(false); 85 video_track_->set_enabled(false);
111 capturer_.CaptureFrame(); 86 capturer_.CaptureFrame();
112 EXPECT_EQ(2, renderer->num_rendered_frames()); 87 EXPECT_EQ(2, renderer->num_rendered_frames());
113 EXPECT_TRUE(renderer->black_frame()); 88 EXPECT_TRUE(renderer->black_frame());
114 89
115 video_track_->set_enabled(true); 90 video_track_->set_enabled(true);
116 capturer_.CaptureFrame(); 91 capturer_.CaptureFrame();
117 EXPECT_EQ(3, renderer->num_rendered_frames()); 92 EXPECT_EQ(3, renderer->num_rendered_frames());
118 EXPECT_FALSE(renderer->black_frame()); 93 EXPECT_FALSE(renderer->black_frame());
119 } 94 }
OLDNEW
« no previous file with comments | « webrtc/api/test/fakevideotrackrenderer.h ('k') | webrtc/examples/peerconnection/client/linux/main_wnd.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698