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

Side by Side Diff: webrtc/media/base/videobroadcaster_unittest.cc

Issue 2716643002: Add framerate to VideoSinkWants and ability to signal on overuse (Closed)
Patch Set: Comments Created 3 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
« no previous file with comments | « webrtc/media/base/videobroadcaster.cc ('k') | webrtc/media/base/videocapturer.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2016 The WebRTC project authors. All Rights Reserved. 2 * Copyright 2016 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
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 80
81 broadcaster.AddOrUpdateSink(&sink2, wants2); 81 broadcaster.AddOrUpdateSink(&sink2, wants2);
82 EXPECT_TRUE(broadcaster.wants().rotation_applied); 82 EXPECT_TRUE(broadcaster.wants().rotation_applied);
83 83
84 broadcaster.RemoveSink(&sink2); 84 broadcaster.RemoveSink(&sink2);
85 EXPECT_FALSE(broadcaster.wants().rotation_applied); 85 EXPECT_FALSE(broadcaster.wants().rotation_applied);
86 } 86 }
87 87
88 TEST(VideoBroadcasterTest, AppliesMinOfSinkWantsMaxPixelCount) { 88 TEST(VideoBroadcasterTest, AppliesMinOfSinkWantsMaxPixelCount) {
89 VideoBroadcaster broadcaster; 89 VideoBroadcaster broadcaster;
90 EXPECT_TRUE(!broadcaster.wants().max_pixel_count); 90 EXPECT_EQ(std::numeric_limits<int>::max(),
91 broadcaster.wants().max_pixel_count);
91 92
92 FakeVideoRenderer sink1; 93 FakeVideoRenderer sink1;
93 VideoSinkWants wants1; 94 VideoSinkWants wants1;
94 wants1.max_pixel_count = rtc::Optional<int>(1280 * 720); 95 wants1.max_pixel_count = 1280 * 720;
95 96
96 broadcaster.AddOrUpdateSink(&sink1, wants1); 97 broadcaster.AddOrUpdateSink(&sink1, wants1);
97 EXPECT_EQ(1280 * 720, *broadcaster.wants().max_pixel_count); 98 EXPECT_EQ(1280 * 720, broadcaster.wants().max_pixel_count);
98 99
99 FakeVideoRenderer sink2; 100 FakeVideoRenderer sink2;
100 VideoSinkWants wants2; 101 VideoSinkWants wants2;
101 wants2.max_pixel_count = rtc::Optional<int>(640 * 360); 102 wants2.max_pixel_count = 640 * 360;
102 broadcaster.AddOrUpdateSink(&sink2, wants2); 103 broadcaster.AddOrUpdateSink(&sink2, wants2);
103 EXPECT_EQ(640 * 360, *broadcaster.wants().max_pixel_count); 104 EXPECT_EQ(640 * 360, broadcaster.wants().max_pixel_count);
104 105
105 broadcaster.RemoveSink(&sink2); 106 broadcaster.RemoveSink(&sink2);
106 EXPECT_EQ(1280 * 720, *broadcaster.wants().max_pixel_count); 107 EXPECT_EQ(1280 * 720, broadcaster.wants().max_pixel_count);
107 } 108 }
108 109
109 TEST(VideoBroadcasterTest, AppliesMinOfSinkWantsMaxAndTargetPixelCount) { 110 TEST(VideoBroadcasterTest, AppliesMinOfSinkWantsMaxAndTargetPixelCount) {
110 VideoBroadcaster broadcaster; 111 VideoBroadcaster broadcaster;
111 EXPECT_TRUE(!broadcaster.wants().target_pixel_count); 112 EXPECT_TRUE(!broadcaster.wants().target_pixel_count);
112 113
113 FakeVideoRenderer sink1; 114 FakeVideoRenderer sink1;
114 VideoSinkWants wants1; 115 VideoSinkWants wants1;
115 wants1.target_pixel_count = rtc::Optional<int>(1280 * 720); 116 wants1.target_pixel_count = rtc::Optional<int>(1280 * 720);
116 117
117 broadcaster.AddOrUpdateSink(&sink1, wants1); 118 broadcaster.AddOrUpdateSink(&sink1, wants1);
118 EXPECT_EQ(1280 * 720, *broadcaster.wants().target_pixel_count); 119 EXPECT_EQ(1280 * 720, *broadcaster.wants().target_pixel_count);
119 120
120 FakeVideoRenderer sink2; 121 FakeVideoRenderer sink2;
121 VideoSinkWants wants2; 122 VideoSinkWants wants2;
122 wants2.target_pixel_count = rtc::Optional<int>(640 * 360); 123 wants2.target_pixel_count = rtc::Optional<int>(640 * 360);
123 broadcaster.AddOrUpdateSink(&sink2, wants2); 124 broadcaster.AddOrUpdateSink(&sink2, wants2);
124 EXPECT_EQ(640 * 360, *broadcaster.wants().target_pixel_count); 125 EXPECT_EQ(640 * 360, *broadcaster.wants().target_pixel_count);
125 126
126 broadcaster.RemoveSink(&sink2); 127 broadcaster.RemoveSink(&sink2);
127 EXPECT_EQ(1280 * 720, *broadcaster.wants().target_pixel_count); 128 EXPECT_EQ(1280 * 720, *broadcaster.wants().target_pixel_count);
128 } 129 }
129 130
131 TEST(VideoBroadcasterTest, AppliesMinOfSinkWantsMaxFramerate) {
132 VideoBroadcaster broadcaster;
133 EXPECT_EQ(std::numeric_limits<int>::max(),
134 broadcaster.wants().max_framerate_fps);
135
136 FakeVideoRenderer sink1;
137 VideoSinkWants wants1;
138 wants1.max_framerate_fps = 30;
139
140 broadcaster.AddOrUpdateSink(&sink1, wants1);
141 EXPECT_EQ(30, broadcaster.wants().max_framerate_fps);
142
143 FakeVideoRenderer sink2;
144 VideoSinkWants wants2;
145 wants2.max_framerate_fps = 15;
146 broadcaster.AddOrUpdateSink(&sink2, wants2);
147 EXPECT_EQ(15, broadcaster.wants().max_framerate_fps);
148
149 broadcaster.RemoveSink(&sink2);
150 EXPECT_EQ(30, broadcaster.wants().max_framerate_fps);
151 }
152
130 TEST(VideoBroadcasterTest, SinkWantsBlackFrames) { 153 TEST(VideoBroadcasterTest, SinkWantsBlackFrames) {
131 VideoBroadcaster broadcaster; 154 VideoBroadcaster broadcaster;
132 EXPECT_TRUE(!broadcaster.wants().black_frames); 155 EXPECT_TRUE(!broadcaster.wants().black_frames);
133 156
134 FakeVideoRenderer sink1; 157 FakeVideoRenderer sink1;
135 VideoSinkWants wants1; 158 VideoSinkWants wants1;
136 wants1.black_frames = true; 159 wants1.black_frames = true;
137 broadcaster.AddOrUpdateSink(&sink1, wants1); 160 broadcaster.AddOrUpdateSink(&sink1, wants1);
138 161
139 FakeVideoRenderer sink2; 162 FakeVideoRenderer sink2;
(...skipping 21 matching lines...) Expand all
161 broadcaster.AddOrUpdateSink(&sink2, wants2); 184 broadcaster.AddOrUpdateSink(&sink2, wants2);
162 185
163 webrtc::VideoFrame frame2(buffer, webrtc::kVideoRotation_0, 186 webrtc::VideoFrame frame2(buffer, webrtc::kVideoRotation_0,
164 30 /* timestamp_us */); 187 30 /* timestamp_us */);
165 broadcaster.OnFrame(frame2); 188 broadcaster.OnFrame(frame2);
166 EXPECT_FALSE(sink1.black_frame()); 189 EXPECT_FALSE(sink1.black_frame());
167 EXPECT_EQ(30, sink1.timestamp_us()); 190 EXPECT_EQ(30, sink1.timestamp_us());
168 EXPECT_TRUE(sink2.black_frame()); 191 EXPECT_TRUE(sink2.black_frame());
169 EXPECT_EQ(30, sink2.timestamp_us()); 192 EXPECT_EQ(30, sink2.timestamp_us());
170 } 193 }
OLDNEW
« no previous file with comments | « webrtc/media/base/videobroadcaster.cc ('k') | webrtc/media/base/videocapturer.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698