blob: e15b41a6fa68a2a9a64e8da2bec395900e9834af [file] [log] [blame]
pbos@webrtc.orgaf8d5af2013-07-09 08:02:33 +00001/*
2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved.
3 *
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
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10#include <stdio.h>
11
sprang89c4a7e2017-06-30 13:27:40 -070012#include "webrtc/modules/pacing/alr_detector.h"
ilnikcb8c1462017-03-09 09:23:30 -080013#include "webrtc/test/field_trial.h"
kwiberg77eab702016-09-28 17:42:01 -070014#include "webrtc/test/gtest.h"
ivica5d6a06c2015-09-17 05:30:24 -070015#include "webrtc/video/video_quality_test.h"
pbos@webrtc.orgaf8d5af2013-07-09 08:02:33 +000016
pbos@webrtc.orgaf8d5af2013-07-09 08:02:33 +000017namespace webrtc {
18
sprang89c4a7e2017-06-30 13:27:40 -070019namespace {
brandtrdd369c62016-11-16 23:56:57 -080020static const int kFullStackTestDurationSecs = 45;
sprang89c4a7e2017-06-30 13:27:40 -070021} // namespace
pbos@webrtc.orgb613b5a2013-12-03 10:13:04 +000022
ivica5d6a06c2015-09-17 05:30:24 -070023class FullStackTest : public VideoQualityTest {
pbos@webrtc.orgaf8d5af2013-07-09 08:02:33 +000024 public:
ivica5d6a06c2015-09-17 05:30:24 -070025 void RunTest(const VideoQualityTest::Params &params) {
26 RunWithAnalyzer(params);
pbos@webrtc.org94015242013-10-16 11:05:37 +000027 }
sprang89c4a7e2017-06-30 13:27:40 -070028
29 protected:
30 const std::string kScreenshareSimulcastExperiment =
31 "WebRTC-SimulcastScreenshare/Enabled/";
32 const std::string kAlrProbingExperiment =
33 std::string(AlrDetector::kScreenshareProbingBweExperimentName) +
34 "/1.1-2875-80-90/";
pbos@webrtc.orgaf8d5af2013-07-09 08:02:33 +000035};
36
sprangce4aef12015-11-02 07:23:20 -080037// VideoQualityTest::Params params = {
38// { ... }, // Common.
39// { ... }, // Video-specific settings.
40// { ... }, // Screenshare-specific settings.
41// { ... }, // Analyzer settings.
42// pipe, // FakeNetworkPipe::Config
43// { ... }, // Spatial scalability.
44// logs // bool
45// };
pbos@webrtc.orgaf8d5af2013-07-09 08:02:33 +000046
Peter Boström12996152016-05-14 02:03:18 +020047#if !defined(RTC_DISABLE_VP9)
asapersson88b0a222016-02-12 13:16:43 -080048TEST_F(FullStackTest, ForemanCifWithoutPacketLossVp9) {
brandtr93c5d032016-11-30 07:50:07 -080049 // TODO(pbos): Decide on psnr/ssim thresholds for foreman_cif.
50 VideoQualityTest::Params foreman_cif;
51 foreman_cif.call.send_side_bwe = true;
52 foreman_cif.video = {true, 352, 288, 30, 700000, 700000, 700000, false,
53 "VP9", 1, 0, 0, false, false, "", "foreman_cif"};
54 foreman_cif.analyzer = {"foreman_cif_net_delay_0_0_plr_0_VP9", 0.0, 0.0,
55 kFullStackTestDurationSecs};
56 RunTest(foreman_cif);
asapersson88b0a222016-02-12 13:16:43 -080057}
58
59TEST_F(FullStackTest, ForemanCifPlr5Vp9) {
brandtr93c5d032016-11-30 07:50:07 -080060 VideoQualityTest::Params foreman_cif;
61 foreman_cif.call.send_side_bwe = true;
62 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false,
63 "VP9", 1, 0, 0, false, false, "", "foreman_cif"};
64 foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5_VP9", 0.0, 0.0,
65 kFullStackTestDurationSecs};
66 foreman_cif.pipe.loss_percent = 5;
67 foreman_cif.pipe.queue_delay_ms = 50;
68 RunTest(foreman_cif);
asapersson88b0a222016-02-12 13:16:43 -080069}
Peter Boström12996152016-05-14 02:03:18 +020070#endif // !defined(RTC_DISABLE_VP9)
asapersson88b0a222016-02-12 13:16:43 -080071
pbos@webrtc.org994d0b72014-06-27 08:47:52 +000072TEST_F(FullStackTest, ParisQcifWithoutPacketLoss) {
minyue626bc952016-10-31 05:47:02 -070073 VideoQualityTest::Params paris_qcif;
74 paris_qcif.call.send_side_bwe = true;
75 paris_qcif.video = {true, 176, 144, 30, 300000, 300000, 300000, false,
brandtr1293aca2016-11-16 22:47:29 -080076 "VP8", 1, 0, 0, false, false, "", "paris_qcif"};
minyue626bc952016-10-31 05:47:02 -070077 paris_qcif.analyzer = {"net_delay_0_0_plr_0", 36.0, 0.96,
78 kFullStackTestDurationSecs};
stefan@webrtc.orgb8e9e442014-07-09 11:29:06 +000079 RunTest(paris_qcif);
pbos@webrtc.org994d0b72014-06-27 08:47:52 +000080}
81
82TEST_F(FullStackTest, ForemanCifWithoutPacketLoss) {
stefan@webrtc.orgb8e9e442014-07-09 11:29:06 +000083 // TODO(pbos): Decide on psnr/ssim thresholds for foreman_cif.
minyue626bc952016-10-31 05:47:02 -070084 VideoQualityTest::Params foreman_cif;
85 foreman_cif.call.send_side_bwe = true;
86 foreman_cif.video = {true, 352, 288, 30, 700000, 700000, 700000, false, "VP8",
brandtr1293aca2016-11-16 22:47:29 -080087 1, 0, 0, false, false, "", "foreman_cif"};
minyue626bc952016-10-31 05:47:02 -070088 foreman_cif.analyzer = {"foreman_cif_net_delay_0_0_plr_0", 0.0, 0.0,
89 kFullStackTestDurationSecs};
stefan@webrtc.orgb8e9e442014-07-09 11:29:06 +000090 RunTest(foreman_cif);
pbos@webrtc.org994d0b72014-06-27 08:47:52 +000091}
pbos@webrtc.orgaf8d5af2013-07-09 08:02:33 +000092
asaperssonfb6ad3b2016-12-16 06:54:01 -080093TEST_F(FullStackTest, ForemanCif30kbpsWithoutPacketLoss) {
94 VideoQualityTest::Params foreman_cif;
95 foreman_cif.call.send_side_bwe = true;
96 foreman_cif.video = {true, 352, 288, 10, 30000, 30000, 30000, false,
97 "VP8", 1, 0, 0, false, false, "", "foreman_cif"};
98 foreman_cif.analyzer = {"foreman_cif_30kbps_net_delay_0_0_plr_0", 0.0, 0.0,
99 kFullStackTestDurationSecs};
100 RunTest(foreman_cif);
101}
102
sprang@webrtc.org343096a2015-02-23 08:34:17 +0000103TEST_F(FullStackTest, ForemanCifPlr5) {
minyue626bc952016-10-31 05:47:02 -0700104 VideoQualityTest::Params foreman_cif;
105 foreman_cif.call.send_side_bwe = true;
106 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false, "VP8",
brandtr1293aca2016-11-16 22:47:29 -0800107 1, 0, 0, false, false, "", "foreman_cif"};
minyue626bc952016-10-31 05:47:02 -0700108 foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5", 0.0, 0.0,
109 kFullStackTestDurationSecs};
ivica5d6a06c2015-09-17 05:30:24 -0700110 foreman_cif.pipe.loss_percent = 5;
111 foreman_cif.pipe.queue_delay_ms = 50;
stefan@webrtc.orgc216b9a2014-10-14 10:38:49 +0000112 RunTest(foreman_cif);
113}
114
brandtr93c5d032016-11-30 07:50:07 -0800115TEST_F(FullStackTest, ForemanCifPlr5Ulpfec) {
116 VideoQualityTest::Params foreman_cif;
117 foreman_cif.call.send_side_bwe = true;
118 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false, "VP8",
119 1, 0, 0, true, false, "", "foreman_cif"};
120 foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5_ulpfec", 0.0, 0.0,
121 kFullStackTestDurationSecs};
122 foreman_cif.pipe.loss_percent = 5;
123 foreman_cif.pipe.queue_delay_ms = 50;
124 RunTest(foreman_cif);
125}
126
127TEST_F(FullStackTest, ForemanCifPlr5Flexfec) {
128 VideoQualityTest::Params foreman_cif;
129 foreman_cif.call.send_side_bwe = true;
130 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false, "VP8",
131 1, 0, 0, false, true, "", "foreman_cif"};
132 foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5_flexfec", 0.0, 0.0,
133 kFullStackTestDurationSecs};
134 foreman_cif.pipe.loss_percent = 5;
135 foreman_cif.pipe.queue_delay_ms = 50;
136 RunTest(foreman_cif);
137}
138
stefan889d9652017-07-05 03:03:02 -0700139TEST_F(FullStackTest, ForemanCif500kbpsPlr3Flexfec) {
140 VideoQualityTest::Params foreman_cif;
141 foreman_cif.call.send_side_bwe = true;
142 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000,
143 false, "VP8", 1, 0, 0, false, true,
144 "", "foreman_cif"};
145 foreman_cif.analyzer = {"foreman_cif_500kbps_delay_50_0_plr_3_flexfec", 0.0,
146 0.0, kFullStackTestDurationSecs};
147 foreman_cif.pipe.loss_percent = 3;
148 foreman_cif.pipe.link_capacity_kbps = 500;
149 foreman_cif.pipe.queue_delay_ms = 50;
150 RunTest(foreman_cif);
151}
152
153TEST_F(FullStackTest, ForemanCif500kbpsPlr3Ulpfec) {
154 VideoQualityTest::Params foreman_cif;
155 foreman_cif.call.send_side_bwe = true;
156 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000,
157 false, "VP8", 1, 0, 0, true, false,
158 "", "foreman_cif"};
159 foreman_cif.analyzer = {"foreman_cif_500kbps_delay_50_0_plr_3_ulpfec", 0.0,
160 0.0, kFullStackTestDurationSecs};
161 foreman_cif.pipe.loss_percent = 3;
162 foreman_cif.pipe.link_capacity_kbps = 500;
163 foreman_cif.pipe.queue_delay_ms = 50;
164 RunTest(foreman_cif);
165}
166
brandtrdd369c62016-11-16 23:56:57 -0800167#if defined(WEBRTC_USE_H264)
168TEST_F(FullStackTest, ForemanCifWithoutPacketlossH264) {
brandtr93c5d032016-11-30 07:50:07 -0800169 // TODO(pbos): Decide on psnr/ssim thresholds for foreman_cif.
170 VideoQualityTest::Params foreman_cif;
171 foreman_cif.call.send_side_bwe = true;
172 foreman_cif.video = {true, 352, 288, 30, 700000, 700000, 700000, false,
173 "H264", 1, 0, 0, false, false, "", "foreman_cif"};
174 foreman_cif.analyzer = {"foreman_cif_net_delay_0_0_plr_0_H264", 0.0, 0.0,
175 kFullStackTestDurationSecs};
176 RunTest(foreman_cif);
brandtrdd369c62016-11-16 23:56:57 -0800177}
178
asaperssonfb6ad3b2016-12-16 06:54:01 -0800179TEST_F(FullStackTest, ForemanCif30kbpsWithoutPacketlossH264) {
180 VideoQualityTest::Params foreman_cif;
181 foreman_cif.call.send_side_bwe = true;
182 foreman_cif.video = {true, 352, 288, 10, 30000, 30000, 30000, false, "H264",
183 1, 0, 0, false, false, "", "foreman_cif"};
184 foreman_cif.analyzer = {"foreman_cif_30kbps_net_delay_0_0_plr_0_H264", 0.0,
185 0.0, kFullStackTestDurationSecs};
186 RunTest(foreman_cif);
187}
188
brandtrdd369c62016-11-16 23:56:57 -0800189TEST_F(FullStackTest, ForemanCifPlr5H264) {
brandtr93c5d032016-11-30 07:50:07 -0800190 VideoQualityTest::Params foreman_cif;
191 foreman_cif.call.send_side_bwe = true;
192 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false,
193 "H264", 1, 0, 0, false, false, "", "foreman_cif"};
194 std::string fec_description;
195 foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5_H264", 0.0, 0.0,
196 kFullStackTestDurationSecs};
197 foreman_cif.pipe.loss_percent = 5;
198 foreman_cif.pipe.queue_delay_ms = 50;
199 RunTest(foreman_cif);
brandtrdd369c62016-11-16 23:56:57 -0800200}
201
202// Verify that this is worth the bot time, before enabling.
203TEST_F(FullStackTest, ForemanCifPlr5H264Flexfec) {
brandtr93c5d032016-11-30 07:50:07 -0800204 VideoQualityTest::Params foreman_cif;
205 foreman_cif.call.send_side_bwe = true;
206 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false,
207 "H264", 1, 0, 0, false, true, "", "foreman_cif"};
208 foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5_H264_flexfec", 0.0, 0.0,
209 kFullStackTestDurationSecs};
210 foreman_cif.pipe.loss_percent = 5;
211 foreman_cif.pipe.queue_delay_ms = 50;
212 RunTest(foreman_cif);
brandtrdd369c62016-11-16 23:56:57 -0800213}
214
215// Ulpfec with H264 is an unsupported combination, so this test is only useful
216// for debugging. It is therefore disabled by default.
217TEST_F(FullStackTest, DISABLED_ForemanCifPlr5H264Ulpfec) {
brandtr93c5d032016-11-30 07:50:07 -0800218 VideoQualityTest::Params foreman_cif;
219 foreman_cif.call.send_side_bwe = true;
220 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false,
221 "H264", 1, 0, 0, true, false, "", "foreman_cif"};
222 foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5_H264_ulpfec", 0.0, 0.0,
223 kFullStackTestDurationSecs};
224 foreman_cif.pipe.loss_percent = 5;
225 foreman_cif.pipe.queue_delay_ms = 50;
226 RunTest(foreman_cif);
brandtrdd369c62016-11-16 23:56:57 -0800227}
228#endif // defined(WEBRTC_USE_H264)
229
stefan@webrtc.orgb8e9e442014-07-09 11:29:06 +0000230TEST_F(FullStackTest, ForemanCif500kbps) {
minyue626bc952016-10-31 05:47:02 -0700231 VideoQualityTest::Params foreman_cif;
232 foreman_cif.call.send_side_bwe = true;
233 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false, "VP8",
brandtr1293aca2016-11-16 22:47:29 -0800234 1, 0, 0, false, false, "", "foreman_cif"};
minyue626bc952016-10-31 05:47:02 -0700235 foreman_cif.analyzer = {"foreman_cif_500kbps", 0.0, 0.0,
236 kFullStackTestDurationSecs};
ivica5d6a06c2015-09-17 05:30:24 -0700237 foreman_cif.pipe.queue_length_packets = 0;
238 foreman_cif.pipe.queue_delay_ms = 0;
239 foreman_cif.pipe.link_capacity_kbps = 500;
stefan@webrtc.orgb8e9e442014-07-09 11:29:06 +0000240 RunTest(foreman_cif);
241}
242
243TEST_F(FullStackTest, ForemanCif500kbpsLimitedQueue) {
minyue626bc952016-10-31 05:47:02 -0700244 VideoQualityTest::Params foreman_cif;
245 foreman_cif.call.send_side_bwe = true;
246 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false, "VP8",
brandtr1293aca2016-11-16 22:47:29 -0800247 1, 0, 0, false, false, "", "foreman_cif"};
minyue626bc952016-10-31 05:47:02 -0700248 foreman_cif.analyzer = {"foreman_cif_500kbps_32pkts_queue", 0.0, 0.0,
249 kFullStackTestDurationSecs};
ivica5d6a06c2015-09-17 05:30:24 -0700250 foreman_cif.pipe.queue_length_packets = 32;
251 foreman_cif.pipe.queue_delay_ms = 0;
252 foreman_cif.pipe.link_capacity_kbps = 500;
stefan@webrtc.orgb8e9e442014-07-09 11:29:06 +0000253 RunTest(foreman_cif);
254}
255
256TEST_F(FullStackTest, ForemanCif500kbps100ms) {
minyue626bc952016-10-31 05:47:02 -0700257 VideoQualityTest::Params foreman_cif;
258 foreman_cif.call.send_side_bwe = true;
259 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false, "VP8",
brandtr1293aca2016-11-16 22:47:29 -0800260 1, 0, 0, false, false, "", "foreman_cif"};
minyue626bc952016-10-31 05:47:02 -0700261 foreman_cif.analyzer = {"foreman_cif_500kbps_100ms", 0.0, 0.0,
262 kFullStackTestDurationSecs};
ivica5d6a06c2015-09-17 05:30:24 -0700263 foreman_cif.pipe.queue_length_packets = 0;
264 foreman_cif.pipe.queue_delay_ms = 100;
265 foreman_cif.pipe.link_capacity_kbps = 500;
stefan@webrtc.orgb8e9e442014-07-09 11:29:06 +0000266 RunTest(foreman_cif);
267}
268
269TEST_F(FullStackTest, ForemanCif500kbps100msLimitedQueue) {
minyue626bc952016-10-31 05:47:02 -0700270 VideoQualityTest::Params foreman_cif;
271 foreman_cif.call.send_side_bwe = true;
272 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false, "VP8",
brandtr1293aca2016-11-16 22:47:29 -0800273 1, 0, 0, false, false, "", "foreman_cif"};
minyue626bc952016-10-31 05:47:02 -0700274 foreman_cif.analyzer = {"foreman_cif_500kbps_100ms_32pkts_queue", 0.0, 0.0,
275 kFullStackTestDurationSecs};
stefanb1797672016-08-11 07:00:57 -0700276 foreman_cif.pipe.queue_length_packets = 32;
277 foreman_cif.pipe.queue_delay_ms = 100;
278 foreman_cif.pipe.link_capacity_kbps = 500;
279 RunTest(foreman_cif);
280}
281
282TEST_F(FullStackTest, ForemanCif500kbps100msLimitedQueueRecvBwe) {
minyue626bc952016-10-31 05:47:02 -0700283 VideoQualityTest::Params foreman_cif;
brandtr93c5d032016-11-30 07:50:07 -0800284 foreman_cif.call.send_side_bwe = false;
minyue626bc952016-10-31 05:47:02 -0700285 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false, "VP8",
brandtr1293aca2016-11-16 22:47:29 -0800286 1, 0, 0, false, false, "", "foreman_cif"};
brandtr93c5d032016-11-30 07:50:07 -0800287 foreman_cif.analyzer = {"foreman_cif_500kbps_100ms_32pkts_queue_recv_bwe",
288 0.0, 0.0, kFullStackTestDurationSecs};
ivica5d6a06c2015-09-17 05:30:24 -0700289 foreman_cif.pipe.queue_length_packets = 32;
290 foreman_cif.pipe.queue_delay_ms = 100;
291 foreman_cif.pipe.link_capacity_kbps = 500;
stefan@webrtc.orgb8e9e442014-07-09 11:29:06 +0000292 RunTest(foreman_cif);
293}
294
295TEST_F(FullStackTest, ForemanCif1000kbps100msLimitedQueue) {
minyue626bc952016-10-31 05:47:02 -0700296 VideoQualityTest::Params foreman_cif;
297 foreman_cif.call.send_side_bwe = true;
298 foreman_cif.video = {true, 352, 288, 30, 30000, 2000000, 2000000, false,
brandtr1293aca2016-11-16 22:47:29 -0800299 "VP8", 1, 0, 0, false, false, "", "foreman_cif"};
minyue626bc952016-10-31 05:47:02 -0700300 foreman_cif.analyzer = {"foreman_cif_1000kbps_100ms_32pkts_queue", 0.0, 0.0,
301 kFullStackTestDurationSecs};
ivica5d6a06c2015-09-17 05:30:24 -0700302 foreman_cif.pipe.queue_length_packets = 32;
303 foreman_cif.pipe.queue_delay_ms = 100;
304 foreman_cif.pipe.link_capacity_kbps = 1000;
stefan@webrtc.orgb8e9e442014-07-09 11:29:06 +0000305 RunTest(foreman_cif);
306}
sprang@webrtc.org131bea82015-02-18 12:46:06 +0000307
stefanb1797672016-08-11 07:00:57 -0700308TEST_F(FullStackTest, ConferenceMotionHd2000kbps100msLimitedQueue) {
minyue626bc952016-10-31 05:47:02 -0700309 VideoQualityTest::Params conf_motion_hd;
310 conf_motion_hd.call.send_side_bwe = true;
311 conf_motion_hd.video = {true, 1280, 720, 50, 30000, 3000000, 3000000, false,
brandtr1293aca2016-11-16 22:47:29 -0800312 "VP8", 1, 0, 0, false, false, "",
minyue626bc952016-10-31 05:47:02 -0700313 "ConferenceMotion_1280_720_50"};
314 conf_motion_hd.analyzer = {"conference_motion_hd_2000kbps_100ms_32pkts_queue",
315 0.0, 0.0, kFullStackTestDurationSecs};
stefanb1797672016-08-11 07:00:57 -0700316 conf_motion_hd.pipe.queue_length_packets = 32;
317 conf_motion_hd.pipe.queue_delay_ms = 100;
318 conf_motion_hd.pipe.link_capacity_kbps = 2000;
319 RunTest(conf_motion_hd);
320}
321
jianj390e64d2017-02-03 09:51:23 -0800322#if !defined(RTC_DISABLE_VP9)
323TEST_F(FullStackTest, ConferenceMotionHd2000kbps100msLimitedQueueVP9) {
324 VideoQualityTest::Params conf_motion_hd;
325 conf_motion_hd.call.send_side_bwe = true;
326 conf_motion_hd.video = {true, 1280, 720, 50, 30000, 3000000, 3000000, false,
327 "VP9", 1, 0, 0, false, false, "",
328 "ConferenceMotion_1280_720_50"};
329 conf_motion_hd.analyzer = {
330 "conference_motion_hd_2000kbps_100ms_32pkts_queue_vp9", 0.0, 0.0,
331 kFullStackTestDurationSecs};
332 conf_motion_hd.pipe.queue_length_packets = 32;
333 conf_motion_hd.pipe.queue_delay_ms = 100;
334 conf_motion_hd.pipe.link_capacity_kbps = 2000;
335 RunTest(conf_motion_hd);
336}
337#endif
338
ivica7bd242e2015-10-06 02:04:06 -0700339TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL) {
minyue626bc952016-10-31 05:47:02 -0700340 VideoQualityTest::Params screenshare;
341 screenshare.call.send_side_bwe = true;
342 screenshare.video = {true, 1850, 1110, 5, 50000, 200000, 2000000, false,
brandtr1293aca2016-11-16 22:47:29 -0800343 "VP8", 2, 1, 400000, false, false, "", ""};
minyue626bc952016-10-31 05:47:02 -0700344 screenshare.screenshare = {true, 10};
345 screenshare.analyzer = {"screenshare_slides", 0.0, 0.0,
346 kFullStackTestDurationSecs};
ivica5d6a06c2015-09-17 05:30:24 -0700347 RunTest(screenshare);
Erik SprĂ¥ng6ee69aa2015-09-03 15:58:05 +0200348}
349
ilnikcb8c1462017-03-09 09:23:30 -0800350TEST_F(FullStackTest, ScreenshareSlidesVP8_3TL_Simulcast) {
sprang89c4a7e2017-06-30 13:27:40 -0700351 test::ScopedFieldTrials field_trial(kScreenshareSimulcastExperiment);
ilnikcb8c1462017-03-09 09:23:30 -0800352 VideoQualityTest::Params screenshare;
353 screenshare.call.send_side_bwe = true;
354 screenshare.screenshare = {true, 10};
355 screenshare.video = {true, 1850, 1110, 5, 800000, 2500000,
356 2500000, false, "VP8", 3, 2, 400000,
357 false, false, "", ""};
358 screenshare.analyzer = {"screenshare_slides_simulcast", 0.0, 0.0,
359 kFullStackTestDurationSecs};
360 VideoQualityTest::Params screenshare_params_high;
361 screenshare_params_high.video = {true, 1850, 1110, 5, 800000, 2500000,
362 2500000, false, "VP8", 3, 0, 400000,
363 false, false, "", ""};
364 VideoQualityTest::Params screenshare_params_low;
365 screenshare_params_low.video = {true, 1850, 1110, 5, 50000, 200000,
366 2000000, false, "VP8", 2, 0, 400000,
367 false, false, "", ""};
368
369 std::vector<VideoStream> streams = {
370 DefaultVideoStream(screenshare_params_low),
371 DefaultVideoStream(screenshare_params_high)};
ilnik6b826ef2017-06-16 06:53:48 -0700372 screenshare.ss = {streams, 1, 1, 0, std::vector<SpatialLayer>(), false};
ilnikcb8c1462017-03-09 09:23:30 -0800373 RunTest(screenshare);
374}
375
ivica7bd242e2015-10-06 02:04:06 -0700376TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_Scroll) {
minyue626bc952016-10-31 05:47:02 -0700377 VideoQualityTest::Params config;
378 config.call.send_side_bwe = true;
379 config.video = {true, 1850, 1110 / 2, 5, 50000, 200000, 2000000, false,
brandtr1293aca2016-11-16 22:47:29 -0800380 "VP8", 2, 1, 400000, false, false, "", ""};
minyue626bc952016-10-31 05:47:02 -0700381 config.screenshare = {true, 10, 2};
382 config.analyzer = {"screenshare_slides_scrolling", 0.0, 0.0,
383 kFullStackTestDurationSecs};
ivica5d6a06c2015-09-17 05:30:24 -0700384 RunTest(config);
ivica028cf482015-07-30 02:15:56 -0700385}
386
sprangee37de32015-11-23 06:10:23 -0800387TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_LossyNet) {
minyue626bc952016-10-31 05:47:02 -0700388 VideoQualityTest::Params screenshare;
389 screenshare.call.send_side_bwe = true;
390 screenshare.video = {true, 1850, 1110, 5, 50000, 200000, 2000000, false,
brandtr1293aca2016-11-16 22:47:29 -0800391 "VP8", 2, 1, 400000, false, false, "", ""};
minyue626bc952016-10-31 05:47:02 -0700392 screenshare.screenshare = {true, 10};
393 screenshare.analyzer = {"screenshare_slides_lossy_net", 0.0, 0.0,
394 kFullStackTestDurationSecs};
sprangee37de32015-11-23 06:10:23 -0800395 screenshare.pipe.loss_percent = 5;
396 screenshare.pipe.queue_delay_ms = 200;
397 screenshare.pipe.link_capacity_kbps = 500;
398 RunTest(screenshare);
399}
400
401TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_VeryLossyNet) {
minyue626bc952016-10-31 05:47:02 -0700402 VideoQualityTest::Params screenshare;
403 screenshare.call.send_side_bwe = true;
404 screenshare.video = {true, 1850, 1110, 5, 50000, 200000, 2000000, false,
brandtr1293aca2016-11-16 22:47:29 -0800405 "VP8", 2, 1, 400000, false, false, "", ""};
minyue626bc952016-10-31 05:47:02 -0700406 screenshare.screenshare = {true, 10};
407 screenshare.analyzer = {"screenshare_slides_very_lossy", 0.0, 0.0,
408 kFullStackTestDurationSecs};
sprangee37de32015-11-23 06:10:23 -0800409 screenshare.pipe.loss_percent = 10;
410 screenshare.pipe.queue_delay_ms = 200;
411 screenshare.pipe.link_capacity_kbps = 500;
412 RunTest(screenshare);
413}
414
sprange566e172017-06-08 01:29:15 -0700415TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_LossyNetRestrictedQueue) {
416 VideoQualityTest::Params screenshare;
417 screenshare.call.send_side_bwe = true;
418 screenshare.video = {true, 1850, 1110, 5, 50000, 200000, 2000000, false,
419 "VP8", 2, 1, 400000, false, false, "", ""};
420 screenshare.screenshare = {true, 10};
421 screenshare.analyzer = {"screenshare_slides_lossy_limited", 0.0, 0.0,
422 kFullStackTestDurationSecs};
423 screenshare.pipe.loss_percent = 5;
424 screenshare.pipe.link_capacity_kbps = 200;
425 screenshare.pipe.queue_length_packets = 30;
426
427 RunTest(screenshare);
428}
429
sprang89c4a7e2017-06-30 13:27:40 -0700430TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_ModeratelyRestricted) {
431 VideoQualityTest::Params screenshare;
432 screenshare.call.send_side_bwe = true;
433 screenshare.video = {true, 1850, 1110, 5, 50000, 200000, 2000000, false,
434 "VP8", 2, 1, 400000, false, false, "", ""};
435 screenshare.screenshare = {true, 10};
436 screenshare.analyzer = {"screenshare_slides_moderately_restricted", 0.0, 0.0,
437 kFullStackTestDurationSecs};
438 screenshare.pipe.loss_percent = 1;
439 screenshare.pipe.link_capacity_kbps = 1200;
440 screenshare.pipe.queue_length_packets = 30;
441
442 RunTest(screenshare);
443}
444
445// TODO(sprang): Retire these tests once experiment is removed.
446TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_LossyNetRestrictedQueue_ALR) {
447 test::ScopedFieldTrials field_trial(kAlrProbingExperiment);
448 VideoQualityTest::Params screenshare;
449 screenshare.call.send_side_bwe = true;
450 screenshare.video = {true, 1850, 1110, 5, 50000, 200000, 2000000, false,
451 "VP8", 2, 1, 400000, false, false, "", ""};
452 screenshare.screenshare = {true, 10};
453 screenshare.analyzer = {"screenshare_slides_lossy_limited_ALR", 0.0, 0.0,
454 kFullStackTestDurationSecs};
455 screenshare.pipe.loss_percent = 5;
456 screenshare.pipe.link_capacity_kbps = 200;
457 screenshare.pipe.queue_length_packets = 30;
458
459 RunTest(screenshare);
460}
461
462TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_ALR) {
463 test::ScopedFieldTrials field_trial(kAlrProbingExperiment);
464 VideoQualityTest::Params screenshare;
465 screenshare.call.send_side_bwe = true;
466 screenshare.video = {true, 1850, 1110, 5, 50000, 200000, 2000000, false,
467 "VP8", 2, 1, 400000, false, false, "", ""};
468 screenshare.screenshare = {true, 10};
469 screenshare.analyzer = {"screenshare_slides_ALR", 0.0, 0.0,
470 kFullStackTestDurationSecs};
471 RunTest(screenshare);
472}
473
474TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_ModeratelyRestricted_ALR) {
475 test::ScopedFieldTrials field_trial(kAlrProbingExperiment);
476 VideoQualityTest::Params screenshare;
477 screenshare.call.send_side_bwe = true;
478 screenshare.video = {true, 1850, 1110, 5, 50000, 200000, 2000000, false,
479 "VP8", 2, 1, 400000, false, false, "", ""};
480 screenshare.screenshare = {true, 10};
481 screenshare.analyzer = {"screenshare_slides_moderately_restricted_ALR", 0.0,
482 0.0, kFullStackTestDurationSecs};
483 screenshare.pipe.loss_percent = 1;
484 screenshare.pipe.link_capacity_kbps = 1200;
485 screenshare.pipe.queue_length_packets = 30;
486
487 RunTest(screenshare);
488}
489
490TEST_F(FullStackTest, ScreenshareSlidesVP8_3TL_Simulcast_ALR) {
491 test::ScopedFieldTrials field_trial(kScreenshareSimulcastExperiment +
492 kAlrProbingExperiment);
493 VideoQualityTest::Params screenshare;
494 screenshare.call.send_side_bwe = true;
495 screenshare.screenshare = {true, 10};
496 screenshare.video = {true, 1850, 1110, 5, 800000, 2500000,
497 2500000, false, "VP8", 3, 2, 400000,
498 false, false, "", ""};
499 screenshare.analyzer = {"screenshare_slides_simulcast_alr", 0.0, 0.0,
500 kFullStackTestDurationSecs};
501 VideoQualityTest::Params screenshare_params_high;
502 screenshare_params_high.video = {true, 1850, 1110, 5, 800000, 2500000,
503 2500000, false, "VP8", 3, 0, 400000,
504 false, false, "", ""};
505 VideoQualityTest::Params screenshare_params_low;
506 screenshare_params_low.video = {true, 1850, 1110, 5, 50000, 200000,
507 2000000, false, "VP8", 2, 0, 400000,
508 false, false, "", ""};
509
510 std::vector<VideoStream> streams = {
511 DefaultVideoStream(screenshare_params_low),
512 DefaultVideoStream(screenshare_params_high)};
513 screenshare.ss = {streams, 1, 1, 0, std::vector<SpatialLayer>(), false};
514 RunTest(screenshare);
515}
516
ilnik566c43b2017-03-07 04:42:54 -0800517const VideoQualityTest::Params::Video kSvcVp9Video = {
518 true, 1280, 720, 30,
519 800000, 2500000, 2500000, false,
520 "VP9", 3, 2, 400000,
521 false, false, "", "ConferenceMotion_1280_720_50"};
522
523const VideoQualityTest::Params::Video kSimulcastVp8VideoHigh = {
524 true, 1280, 720, 30,
525 800000, 2500000, 2500000, false,
526 "VP8", 3, 2, 400000,
527 false, false, "", "ConferenceMotion_1280_720_50"};
528
529const VideoQualityTest::Params::Video kSimulcastVp8VideoMedium = {
530 true, 640, 360, 30,
531 150000, 500000, 700000, false,
532 "VP8", 3, 2, 400000,
533 false, false, "", "ConferenceMotion_1280_720_50"};
534
535const VideoQualityTest::Params::Video kSimulcastVp8VideoLow = {
536 true, 320, 180, 30,
537 30000, 150000, 200000, false,
538 "VP8", 3, 2, 400000,
539 false, false, "", "ConferenceMotion_1280_720_50"};
540
Peter Boström12996152016-05-14 02:03:18 +0200541#if !defined(RTC_DISABLE_VP9)
marpan5f4aaeb2017-04-06 10:52:23 -0700542TEST_F(FullStackTest, ScreenshareSlidesVP9_2SL) {
minyue626bc952016-10-31 05:47:02 -0700543 VideoQualityTest::Params screenshare;
544 screenshare.call.send_side_bwe = true;
545 screenshare.video = {true, 1850, 1110, 5, 50000, 200000, 2000000, false,
brandtr1293aca2016-11-16 22:47:29 -0800546 "VP9", 1, 0, 400000, false, false, "", ""};
minyue626bc952016-10-31 05:47:02 -0700547 screenshare.screenshare = {true, 10};
548 screenshare.analyzer = {"screenshare_slides_vp9_2sl", 0.0, 0.0,
549 kFullStackTestDurationSecs};
550 screenshare.logs = false;
ilnik6b826ef2017-06-16 06:53:48 -0700551 screenshare.ss = {std::vector<VideoStream>(), 0, 2, 1,
552 std::vector<SpatialLayer>(), false};
ivica5d6a06c2015-09-17 05:30:24 -0700553 RunTest(screenshare);
sprang@webrtc.org131bea82015-02-18 12:46:06 +0000554}
ilnik2a8c2f52017-02-15 02:23:28 -0800555
556TEST_F(FullStackTest, VP9SVC_3SL_High) {
557 VideoQualityTest::Params simulcast;
558 simulcast.call.send_side_bwe = true;
ilnik566c43b2017-03-07 04:42:54 -0800559 simulcast.video = kSvcVp9Video;
ilnik2a8c2f52017-02-15 02:23:28 -0800560 simulcast.analyzer = {"vp9svc_3sl_high", 0.0, 0.0,
561 kFullStackTestDurationSecs};
562 simulcast.logs = false;
ilnik6b826ef2017-06-16 06:53:48 -0700563 simulcast.ss = {std::vector<VideoStream>(), 0, 3, 2,
564 std::vector<SpatialLayer>(), false};
ilnik2a8c2f52017-02-15 02:23:28 -0800565 RunTest(simulcast);
566}
567
568TEST_F(FullStackTest, VP9SVC_3SL_Medium) {
569 VideoQualityTest::Params simulcast;
570 simulcast.call.send_side_bwe = true;
ilnik566c43b2017-03-07 04:42:54 -0800571 simulcast.video = kSvcVp9Video;
ilnik2a8c2f52017-02-15 02:23:28 -0800572 simulcast.analyzer = {"vp9svc_3sl_medium", 0.0, 0.0,
573 kFullStackTestDurationSecs};
574 simulcast.logs = false;
ilnik6b826ef2017-06-16 06:53:48 -0700575 simulcast.ss = {std::vector<VideoStream>(), 0, 3, 1,
576 std::vector<SpatialLayer>(), false};
ilnik2a8c2f52017-02-15 02:23:28 -0800577 RunTest(simulcast);
578}
579
580TEST_F(FullStackTest, VP9SVC_3SL_Low) {
581 VideoQualityTest::Params simulcast;
582 simulcast.call.send_side_bwe = true;
ilnik566c43b2017-03-07 04:42:54 -0800583 simulcast.video = kSvcVp9Video;
ilnik2a8c2f52017-02-15 02:23:28 -0800584 simulcast.analyzer = {"vp9svc_3sl_low", 0.0, 0.0, kFullStackTestDurationSecs};
585 simulcast.logs = false;
ilnik6b826ef2017-06-16 06:53:48 -0700586 simulcast.ss = {std::vector<VideoStream>(), 0, 3, 0,
587 std::vector<SpatialLayer>(), false};
ilnik2a8c2f52017-02-15 02:23:28 -0800588 RunTest(simulcast);
589}
Peter Boström12996152016-05-14 02:03:18 +0200590#endif // !defined(RTC_DISABLE_VP9)
brandtr93c5d032016-11-30 07:50:07 -0800591
ilnik6b826ef2017-06-16 06:53:48 -0700592// Android bots can't handle FullHD, so disable the test.
ilnik267041c2017-06-27 07:21:01 -0700593#if defined(WEBRTC_ANDROID)
ilnik6b826ef2017-06-16 06:53:48 -0700594#define MAYBE_SimulcastFullHdOveruse DISABLED_SimulcastFullHdOveruse
595#else
596#define MAYBE_SimulcastFullHdOveruse SimulcastFullHdOveruse
597#endif
598
599TEST_F(FullStackTest, MAYBE_SimulcastFullHdOveruse) {
600 VideoQualityTest::Params simulcast;
601 simulcast.call.send_side_bwe = true;
602 simulcast.video = {true, 1920, 1080, 30, 800000, 2500000,
603 2500000, false, "VP8", 3, 2, 400000,
604 false, false, "", "Generator"};
605 simulcast.analyzer = {"simulcast_HD_high", 0.0, 0.0,
606 kFullStackTestDurationSecs};
607 simulcast.pipe.loss_percent = 0;
608 simulcast.pipe.queue_delay_ms = 100;
609 std::vector<VideoStream> streams = {DefaultVideoStream(simulcast),
610 DefaultVideoStream(simulcast),
611 DefaultVideoStream(simulcast)};
612 simulcast.ss = {streams, 2, 1, 0, std::vector<SpatialLayer>(), true};
613 webrtc::test::ScopedFieldTrials override_trials(
614 "WebRTC-ForceSimulatedOveruseIntervalMs/1000-50000-300/");
615 RunTest(simulcast);
616}
617
ilnik3dd5ad92017-02-09 04:58:53 -0800618TEST_F(FullStackTest, SimulcastVP8_3SL_High) {
619 VideoQualityTest::Params simulcast;
620 simulcast.call.send_side_bwe = true;
ilnik566c43b2017-03-07 04:42:54 -0800621 simulcast.video = kSimulcastVp8VideoHigh;
ilnik2a8c2f52017-02-15 02:23:28 -0800622 simulcast.analyzer = {"simulcast_vp8_3sl_high", 0.0, 0.0,
ilnik3dd5ad92017-02-09 04:58:53 -0800623 kFullStackTestDurationSecs};
624 simulcast.pipe.loss_percent = 0;
625 simulcast.pipe.queue_delay_ms = 100;
626 VideoQualityTest::Params video_params_high;
ilnik566c43b2017-03-07 04:42:54 -0800627 video_params_high.video = kSimulcastVp8VideoHigh;
ilnik3dd5ad92017-02-09 04:58:53 -0800628 VideoQualityTest::Params video_params_medium;
ilnik566c43b2017-03-07 04:42:54 -0800629 video_params_medium.video = kSimulcastVp8VideoMedium;
ilnik3dd5ad92017-02-09 04:58:53 -0800630 VideoQualityTest::Params video_params_low;
ilnik566c43b2017-03-07 04:42:54 -0800631 video_params_low.video = kSimulcastVp8VideoLow;
ilnik3dd5ad92017-02-09 04:58:53 -0800632
633 std::vector<VideoStream> streams = {DefaultVideoStream(video_params_low),
634 DefaultVideoStream(video_params_medium),
635 DefaultVideoStream(video_params_high)};
ilnik6b826ef2017-06-16 06:53:48 -0700636 simulcast.ss = {streams, 2, 1, 0, std::vector<SpatialLayer>(), false};
ilnik3dd5ad92017-02-09 04:58:53 -0800637 RunTest(simulcast);
638}
639
640TEST_F(FullStackTest, SimulcastVP8_3SL_Medium) {
641 VideoQualityTest::Params simulcast;
642 simulcast.call.send_side_bwe = true;
ilnik566c43b2017-03-07 04:42:54 -0800643 simulcast.video = kSimulcastVp8VideoHigh;
ilnik2a8c2f52017-02-15 02:23:28 -0800644 simulcast.analyzer = {"simulcast_vp8_3sl_medium", 0.0, 0.0,
ilnik3dd5ad92017-02-09 04:58:53 -0800645 kFullStackTestDurationSecs};
646 simulcast.pipe.loss_percent = 0;
647 simulcast.pipe.queue_delay_ms = 100;
648 VideoQualityTest::Params video_params_high;
ilnik566c43b2017-03-07 04:42:54 -0800649 video_params_high.video = kSimulcastVp8VideoHigh;
ilnik3dd5ad92017-02-09 04:58:53 -0800650 VideoQualityTest::Params video_params_medium;
ilnik566c43b2017-03-07 04:42:54 -0800651 video_params_medium.video = kSimulcastVp8VideoMedium;
ilnik3dd5ad92017-02-09 04:58:53 -0800652 VideoQualityTest::Params video_params_low;
ilnik566c43b2017-03-07 04:42:54 -0800653 video_params_low.video = kSimulcastVp8VideoLow;
ilnik3dd5ad92017-02-09 04:58:53 -0800654
655 std::vector<VideoStream> streams = {DefaultVideoStream(video_params_low),
656 DefaultVideoStream(video_params_medium),
657 DefaultVideoStream(video_params_high)};
ilnik6b826ef2017-06-16 06:53:48 -0700658 simulcast.ss = {streams, 1, 1, 0, std::vector<SpatialLayer>(), false};
ilnik3dd5ad92017-02-09 04:58:53 -0800659 RunTest(simulcast);
660}
661
662TEST_F(FullStackTest, SimulcastVP8_3SL_Low) {
663 VideoQualityTest::Params simulcast;
664 simulcast.call.send_side_bwe = true;
ilnik566c43b2017-03-07 04:42:54 -0800665 simulcast.video = kSimulcastVp8VideoHigh;
ilnik2a8c2f52017-02-15 02:23:28 -0800666 simulcast.analyzer = {"simulcast_vp8_3sl_low", 0.0, 0.0,
ilnik3dd5ad92017-02-09 04:58:53 -0800667 kFullStackTestDurationSecs};
668 simulcast.pipe.loss_percent = 0;
669 simulcast.pipe.queue_delay_ms = 100;
670 VideoQualityTest::Params video_params_high;
ilnik566c43b2017-03-07 04:42:54 -0800671 video_params_high.video = kSimulcastVp8VideoHigh;
ilnik3dd5ad92017-02-09 04:58:53 -0800672 VideoQualityTest::Params video_params_medium;
ilnik566c43b2017-03-07 04:42:54 -0800673 video_params_medium.video = kSimulcastVp8VideoMedium;
ilnik3dd5ad92017-02-09 04:58:53 -0800674 VideoQualityTest::Params video_params_low;
ilnik566c43b2017-03-07 04:42:54 -0800675 video_params_low.video = kSimulcastVp8VideoLow;
ilnik3dd5ad92017-02-09 04:58:53 -0800676
677 std::vector<VideoStream> streams = {DefaultVideoStream(video_params_low),
678 DefaultVideoStream(video_params_medium),
679 DefaultVideoStream(video_params_high)};
ilnik6b826ef2017-06-16 06:53:48 -0700680 simulcast.ss = {streams, 0, 1, 0, std::vector<SpatialLayer>(), false};
ilnik3dd5ad92017-02-09 04:58:53 -0800681 RunTest(simulcast);
682}
683
ilnika014cc52017-03-07 04:21:04 -0800684TEST_F(FullStackTest, LargeRoomVP8_5thumb) {
685 VideoQualityTest::Params large_room;
686 large_room.call.send_side_bwe = true;
ilnik566c43b2017-03-07 04:42:54 -0800687 large_room.video = kSimulcastVp8VideoHigh;
ilnika014cc52017-03-07 04:21:04 -0800688 large_room.analyzer = {"largeroom_5thumb", 0.0, 0.0,
689 kFullStackTestDurationSecs};
690 large_room.pipe.loss_percent = 0;
691 large_room.pipe.queue_delay_ms = 100;
692 VideoQualityTest::Params video_params_high;
ilnik566c43b2017-03-07 04:42:54 -0800693 video_params_high.video = kSimulcastVp8VideoHigh;
ilnika014cc52017-03-07 04:21:04 -0800694 VideoQualityTest::Params video_params_medium;
ilnik566c43b2017-03-07 04:42:54 -0800695 video_params_medium.video = kSimulcastVp8VideoMedium;
ilnika014cc52017-03-07 04:21:04 -0800696 VideoQualityTest::Params video_params_low;
ilnik566c43b2017-03-07 04:42:54 -0800697 video_params_low.video = kSimulcastVp8VideoLow;
ilnika014cc52017-03-07 04:21:04 -0800698
699 std::vector<VideoStream> streams = {DefaultVideoStream(video_params_low),
700 DefaultVideoStream(video_params_medium),
701 DefaultVideoStream(video_params_high)};
702 large_room.num_thumbnails = 5;
ilnik6b826ef2017-06-16 06:53:48 -0700703 large_room.ss = {streams, 2, 1, 0, std::vector<SpatialLayer>(), false};
ilnika014cc52017-03-07 04:21:04 -0800704 RunTest(large_room);
705}
706
ilnikbaded152017-03-17 05:55:25 -0700707#if defined(WEBRTC_ANDROID)
708// Fails on Android:
ilnikf89a7382017-03-07 06:15:27 -0800709// https://bugs.chromium.org/p/webrtc/issues/detail?id=7301
710#define MAYBE_LargeRoomVP8_50thumb DISABLED_LargeRoomVP8_50thumb
ilnik3ae7c252017-03-08 01:17:35 -0800711#define MAYBE_LargeRoomVP8_15thumb DISABLED_LargeRoomVP8_15thumb
ilnikf89a7382017-03-07 06:15:27 -0800712#else
713#define MAYBE_LargeRoomVP8_50thumb LargeRoomVP8_50thumb
ilnik3ae7c252017-03-08 01:17:35 -0800714#define MAYBE_LargeRoomVP8_15thumb LargeRoomVP8_15thumb
ilnikf89a7382017-03-07 06:15:27 -0800715#endif
716
717TEST_F(FullStackTest, MAYBE_LargeRoomVP8_15thumb) {
ilnika014cc52017-03-07 04:21:04 -0800718 VideoQualityTest::Params large_room;
719 large_room.call.send_side_bwe = true;
ilnik566c43b2017-03-07 04:42:54 -0800720 large_room.video = kSimulcastVp8VideoHigh;
ilnika014cc52017-03-07 04:21:04 -0800721 large_room.analyzer = {"largeroom_15thumb", 0.0, 0.0,
722 kFullStackTestDurationSecs};
723 large_room.pipe.loss_percent = 0;
724 large_room.pipe.queue_delay_ms = 100;
725 VideoQualityTest::Params video_params_high;
ilnik566c43b2017-03-07 04:42:54 -0800726 video_params_high.video = kSimulcastVp8VideoHigh;
ilnika014cc52017-03-07 04:21:04 -0800727 VideoQualityTest::Params video_params_medium;
ilnik566c43b2017-03-07 04:42:54 -0800728 video_params_medium.video = kSimulcastVp8VideoMedium;
ilnika014cc52017-03-07 04:21:04 -0800729 VideoQualityTest::Params video_params_low;
ilnik566c43b2017-03-07 04:42:54 -0800730 video_params_low.video = kSimulcastVp8VideoLow;
ilnika014cc52017-03-07 04:21:04 -0800731
732 std::vector<VideoStream> streams = {DefaultVideoStream(video_params_low),
733 DefaultVideoStream(video_params_medium),
734 DefaultVideoStream(video_params_high)};
735 large_room.num_thumbnails = 15;
ilnik6b826ef2017-06-16 06:53:48 -0700736 large_room.ss = {streams, 2, 1, 0, std::vector<SpatialLayer>(), false};
ilnika014cc52017-03-07 04:21:04 -0800737 RunTest(large_room);
738}
739
ilnika014cc52017-03-07 04:21:04 -0800740TEST_F(FullStackTest, MAYBE_LargeRoomVP8_50thumb) {
741 VideoQualityTest::Params large_room;
742 large_room.call.send_side_bwe = true;
ilnik566c43b2017-03-07 04:42:54 -0800743 large_room.video = kSimulcastVp8VideoHigh;
ilnika014cc52017-03-07 04:21:04 -0800744 large_room.analyzer = {"largeroom_50thumb", 0.0, 0.0,
745 kFullStackTestDurationSecs};
746 large_room.pipe.loss_percent = 0;
747 large_room.pipe.queue_delay_ms = 100;
748 VideoQualityTest::Params video_params_high;
ilnik566c43b2017-03-07 04:42:54 -0800749 video_params_high.video = kSimulcastVp8VideoHigh;
ilnika014cc52017-03-07 04:21:04 -0800750 VideoQualityTest::Params video_params_medium;
ilnik566c43b2017-03-07 04:42:54 -0800751 video_params_medium.video = kSimulcastVp8VideoMedium;
ilnika014cc52017-03-07 04:21:04 -0800752 VideoQualityTest::Params video_params_low;
ilnik566c43b2017-03-07 04:42:54 -0800753 video_params_low.video = kSimulcastVp8VideoLow;
ilnika014cc52017-03-07 04:21:04 -0800754
755 std::vector<VideoStream> streams = {DefaultVideoStream(video_params_low),
756 DefaultVideoStream(video_params_medium),
757 DefaultVideoStream(video_params_high)};
758 large_room.num_thumbnails = 50;
ilnik6b826ef2017-06-16 06:53:48 -0700759 large_room.ss = {streams, 2, 1, 0, std::vector<SpatialLayer>(), false};
ilnika014cc52017-03-07 04:21:04 -0800760 RunTest(large_room);
761}
762
763
pbos@webrtc.orgaf8d5af2013-07-09 08:02:33 +0000764} // namespace webrtc