OLD | NEW |
1 /* | 1 /* |
2 * Copyright (c) 2013 The WebRTC project authors. All Rights Reserved. | 2 * Copyright (c) 2013 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 #include <stdio.h> | 10 #include <stdio.h> |
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
42 // pipe, // FakeNetworkPipe::Config | 42 // pipe, // FakeNetworkPipe::Config |
43 // { ... }, // Spatial scalability. | 43 // { ... }, // Spatial scalability. |
44 // logs // bool | 44 // logs // bool |
45 // }; | 45 // }; |
46 | 46 |
47 #if !defined(RTC_DISABLE_VP9) | 47 #if !defined(RTC_DISABLE_VP9) |
48 TEST_F(FullStackTest, ForemanCifWithoutPacketLossVp9) { | 48 TEST_F(FullStackTest, ForemanCifWithoutPacketLossVp9) { |
49 // TODO(pbos): Decide on psnr/ssim thresholds for foreman_cif. | 49 // TODO(pbos): Decide on psnr/ssim thresholds for foreman_cif. |
50 VideoQualityTest::Params foreman_cif; | 50 VideoQualityTest::Params foreman_cif; |
51 foreman_cif.call.send_side_bwe = true; | 51 foreman_cif.call.send_side_bwe = true; |
52 foreman_cif.video = {true, 352, 288, 30, 700000, 700000, 700000, false, | 52 foreman_cif.video = {true, 352, 288, 30, 700000, 700000, 700000, false, |
53 "VP9", 1, 0, 0, false, false, "", "foreman_cif"}; | 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, | 54 foreman_cif.analyzer = {"foreman_cif_net_delay_0_0_plr_0_VP9", 0.0, 0.0, |
55 kFullStackTestDurationSecs}; | 55 kFullStackTestDurationSecs}; |
56 RunTest(foreman_cif); | 56 RunTest(foreman_cif); |
57 } | 57 } |
58 | 58 |
59 TEST_F(FullStackTest, ForemanCifPlr5Vp9) { | 59 TEST_F(FullStackTest, ForemanCifPlr5Vp9) { |
60 VideoQualityTest::Params foreman_cif; | 60 VideoQualityTest::Params foreman_cif; |
61 foreman_cif.call.send_side_bwe = true; | 61 foreman_cif.call.send_side_bwe = true; |
62 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false, | 62 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false, |
63 "VP9", 1, 0, 0, false, false, "", "foreman_cif"}; | 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, | 64 foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5_VP9", 0.0, 0.0, |
65 kFullStackTestDurationSecs}; | 65 kFullStackTestDurationSecs}; |
66 foreman_cif.pipe.loss_percent = 5; | 66 foreman_cif.pipe.loss_percent = 5; |
67 foreman_cif.pipe.queue_delay_ms = 50; | 67 foreman_cif.pipe.queue_delay_ms = 50; |
68 RunTest(foreman_cif); | 68 RunTest(foreman_cif); |
69 } | 69 } |
70 #endif // !defined(RTC_DISABLE_VP9) | 70 #endif // !defined(RTC_DISABLE_VP9) |
71 | 71 |
72 TEST_F(FullStackTest, ParisQcifWithoutPacketLoss) { | 72 TEST_F(FullStackTest, ParisQcifWithoutPacketLoss) { |
73 VideoQualityTest::Params paris_qcif; | 73 VideoQualityTest::Params paris_qcif; |
74 paris_qcif.call.send_side_bwe = true; | 74 paris_qcif.call.send_side_bwe = true; |
75 paris_qcif.video = {true, 176, 144, 30, 300000, 300000, 300000, false, | 75 paris_qcif.video = {true, 176, 144, 30, 300000, 300000, 300000, false, |
76 "VP8", 1, 0, 0, false, false, "", "paris_qcif"}; | 76 "VP8", 1, 0, 0, false, false, "paris_qcif"}; |
77 paris_qcif.analyzer = {"net_delay_0_0_plr_0", 36.0, 0.96, | 77 paris_qcif.analyzer = {"net_delay_0_0_plr_0", 36.0, 0.96, |
78 kFullStackTestDurationSecs}; | 78 kFullStackTestDurationSecs}; |
79 RunTest(paris_qcif); | 79 RunTest(paris_qcif); |
80 } | 80 } |
81 | 81 |
82 TEST_F(FullStackTest, ForemanCifWithoutPacketLoss) { | 82 TEST_F(FullStackTest, ForemanCifWithoutPacketLoss) { |
83 // TODO(pbos): Decide on psnr/ssim thresholds for foreman_cif. | 83 // TODO(pbos): Decide on psnr/ssim thresholds for foreman_cif. |
84 VideoQualityTest::Params foreman_cif; | 84 VideoQualityTest::Params foreman_cif; |
85 foreman_cif.call.send_side_bwe = true; | 85 foreman_cif.call.send_side_bwe = true; |
86 foreman_cif.video = {true, 352, 288, 30, 700000, 700000, 700000, false, "VP8", | 86 foreman_cif.video = {true, 352, 288, 30, 700000, 700000, 700000, false, |
87 1, 0, 0, false, false, "", "foreman_cif"}; | 87 "VP8", 1, 0, 0, false, false, "foreman_cif"}; |
88 foreman_cif.analyzer = {"foreman_cif_net_delay_0_0_plr_0", 0.0, 0.0, | 88 foreman_cif.analyzer = {"foreman_cif_net_delay_0_0_plr_0", 0.0, 0.0, |
89 kFullStackTestDurationSecs}; | 89 kFullStackTestDurationSecs}; |
90 RunTest(foreman_cif); | 90 RunTest(foreman_cif); |
91 } | 91 } |
92 | 92 |
93 TEST_F(FullStackTest, ForemanCif30kbpsWithoutPacketLoss) { | 93 TEST_F(FullStackTest, ForemanCif30kbpsWithoutPacketLoss) { |
94 VideoQualityTest::Params foreman_cif; | 94 VideoQualityTest::Params foreman_cif; |
95 foreman_cif.call.send_side_bwe = true; | 95 foreman_cif.call.send_side_bwe = true; |
96 foreman_cif.video = {true, 352, 288, 10, 30000, 30000, 30000, false, | 96 foreman_cif.video = {true, 352, 288, 10, 30000, 30000, 30000, false, |
97 "VP8", 1, 0, 0, false, false, "", "foreman_cif"}; | 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, | 98 foreman_cif.analyzer = {"foreman_cif_30kbps_net_delay_0_0_plr_0", 0.0, 0.0, |
99 kFullStackTestDurationSecs}; | 99 kFullStackTestDurationSecs}; |
100 RunTest(foreman_cif); | 100 RunTest(foreman_cif); |
101 } | 101 } |
102 | 102 |
103 TEST_F(FullStackTest, ForemanCifPlr5) { | 103 TEST_F(FullStackTest, ForemanCifPlr5) { |
104 VideoQualityTest::Params foreman_cif; | 104 VideoQualityTest::Params foreman_cif; |
105 foreman_cif.call.send_side_bwe = true; | 105 foreman_cif.call.send_side_bwe = true; |
106 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false, "VP8", | 106 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false, |
107 1, 0, 0, false, false, "", "foreman_cif"}; | 107 "VP8", 1, 0, 0, false, false, "foreman_cif"}; |
108 foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5", 0.0, 0.0, | 108 foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5", 0.0, 0.0, |
109 kFullStackTestDurationSecs}; | 109 kFullStackTestDurationSecs}; |
110 foreman_cif.pipe.loss_percent = 5; | 110 foreman_cif.pipe.loss_percent = 5; |
111 foreman_cif.pipe.queue_delay_ms = 50; | 111 foreman_cif.pipe.queue_delay_ms = 50; |
112 RunTest(foreman_cif); | 112 RunTest(foreman_cif); |
113 } | 113 } |
114 | 114 |
115 TEST_F(FullStackTest, ForemanCifPlr5Ulpfec) { | 115 TEST_F(FullStackTest, ForemanCifPlr5Ulpfec) { |
116 VideoQualityTest::Params foreman_cif; | 116 VideoQualityTest::Params foreman_cif; |
117 foreman_cif.call.send_side_bwe = true; | 117 foreman_cif.call.send_side_bwe = true; |
118 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false, "VP8", | 118 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false, |
119 1, 0, 0, true, false, "", "foreman_cif"}; | 119 "VP8", 1, 0, 0, true, false, "foreman_cif"}; |
120 foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5_ulpfec", 0.0, 0.0, | 120 foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5_ulpfec", 0.0, 0.0, |
121 kFullStackTestDurationSecs}; | 121 kFullStackTestDurationSecs}; |
122 foreman_cif.pipe.loss_percent = 5; | 122 foreman_cif.pipe.loss_percent = 5; |
123 foreman_cif.pipe.queue_delay_ms = 50; | 123 foreman_cif.pipe.queue_delay_ms = 50; |
124 RunTest(foreman_cif); | 124 RunTest(foreman_cif); |
125 } | 125 } |
126 | 126 |
127 TEST_F(FullStackTest, ForemanCifPlr5Flexfec) { | 127 TEST_F(FullStackTest, ForemanCifPlr5Flexfec) { |
128 VideoQualityTest::Params foreman_cif; | 128 VideoQualityTest::Params foreman_cif; |
129 foreman_cif.call.send_side_bwe = true; | 129 foreman_cif.call.send_side_bwe = true; |
130 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false, "VP8", | 130 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false, |
131 1, 0, 0, false, true, "", "foreman_cif"}; | 131 "VP8", 1, 0, 0, false, true, "foreman_cif"}; |
132 foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5_flexfec", 0.0, 0.0, | 132 foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5_flexfec", 0.0, 0.0, |
133 kFullStackTestDurationSecs}; | 133 kFullStackTestDurationSecs}; |
134 foreman_cif.pipe.loss_percent = 5; | 134 foreman_cif.pipe.loss_percent = 5; |
135 foreman_cif.pipe.queue_delay_ms = 50; | 135 foreman_cif.pipe.queue_delay_ms = 50; |
136 RunTest(foreman_cif); | 136 RunTest(foreman_cif); |
137 } | 137 } |
138 | 138 |
139 TEST_F(FullStackTest, ForemanCif500kbpsPlr3Flexfec) { | 139 TEST_F(FullStackTest, ForemanCif500kbpsPlr3Flexfec) { |
140 VideoQualityTest::Params foreman_cif; | 140 VideoQualityTest::Params foreman_cif; |
141 foreman_cif.call.send_side_bwe = true; | 141 foreman_cif.call.send_side_bwe = true; |
142 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, | 142 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false, |
143 false, "VP8", 1, 0, 0, false, true, | 143 "VP8", 1, 0, 0, false, true, "foreman_cif"}; |
144 "", "foreman_cif"}; | |
145 foreman_cif.analyzer = {"foreman_cif_500kbps_delay_50_0_plr_3_flexfec", 0.0, | 144 foreman_cif.analyzer = {"foreman_cif_500kbps_delay_50_0_plr_3_flexfec", 0.0, |
146 0.0, kFullStackTestDurationSecs}; | 145 0.0, kFullStackTestDurationSecs}; |
147 foreman_cif.pipe.loss_percent = 3; | 146 foreman_cif.pipe.loss_percent = 3; |
148 foreman_cif.pipe.link_capacity_kbps = 500; | 147 foreman_cif.pipe.link_capacity_kbps = 500; |
149 foreman_cif.pipe.queue_delay_ms = 50; | 148 foreman_cif.pipe.queue_delay_ms = 50; |
150 RunTest(foreman_cif); | 149 RunTest(foreman_cif); |
151 } | 150 } |
152 | 151 |
153 TEST_F(FullStackTest, ForemanCif500kbpsPlr3Ulpfec) { | 152 TEST_F(FullStackTest, ForemanCif500kbpsPlr3Ulpfec) { |
154 VideoQualityTest::Params foreman_cif; | 153 VideoQualityTest::Params foreman_cif; |
155 foreman_cif.call.send_side_bwe = true; | 154 foreman_cif.call.send_side_bwe = true; |
156 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, | 155 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false, |
157 false, "VP8", 1, 0, 0, true, false, | 156 "VP8", 1, 0, 0, true, false, "foreman_cif"}; |
158 "", "foreman_cif"}; | |
159 foreman_cif.analyzer = {"foreman_cif_500kbps_delay_50_0_plr_3_ulpfec", 0.0, | 157 foreman_cif.analyzer = {"foreman_cif_500kbps_delay_50_0_plr_3_ulpfec", 0.0, |
160 0.0, kFullStackTestDurationSecs}; | 158 0.0, kFullStackTestDurationSecs}; |
161 foreman_cif.pipe.loss_percent = 3; | 159 foreman_cif.pipe.loss_percent = 3; |
162 foreman_cif.pipe.link_capacity_kbps = 500; | 160 foreman_cif.pipe.link_capacity_kbps = 500; |
163 foreman_cif.pipe.queue_delay_ms = 50; | 161 foreman_cif.pipe.queue_delay_ms = 50; |
164 RunTest(foreman_cif); | 162 RunTest(foreman_cif); |
165 } | 163 } |
166 | 164 |
167 #if defined(WEBRTC_USE_H264) | 165 #if defined(WEBRTC_USE_H264) |
168 TEST_F(FullStackTest, ForemanCifWithoutPacketlossH264) { | 166 TEST_F(FullStackTest, ForemanCifWithoutPacketlossH264) { |
169 // TODO(pbos): Decide on psnr/ssim thresholds for foreman_cif. | 167 // TODO(pbos): Decide on psnr/ssim thresholds for foreman_cif. |
170 VideoQualityTest::Params foreman_cif; | 168 VideoQualityTest::Params foreman_cif; |
171 foreman_cif.call.send_side_bwe = true; | 169 foreman_cif.call.send_side_bwe = true; |
172 foreman_cif.video = {true, 352, 288, 30, 700000, 700000, 700000, false, | 170 foreman_cif.video = {true, 352, 288, 30, 700000, |
173 "H264", 1, 0, 0, false, false, "", "foreman_cif"}; | 171 700000, 700000, false, "H264", 1, |
| 172 0, 0, false, false, "foreman_cif"}; |
174 foreman_cif.analyzer = {"foreman_cif_net_delay_0_0_plr_0_H264", 0.0, 0.0, | 173 foreman_cif.analyzer = {"foreman_cif_net_delay_0_0_plr_0_H264", 0.0, 0.0, |
175 kFullStackTestDurationSecs}; | 174 kFullStackTestDurationSecs}; |
176 RunTest(foreman_cif); | 175 RunTest(foreman_cif); |
177 } | 176 } |
178 | 177 |
179 TEST_F(FullStackTest, ForemanCif30kbpsWithoutPacketlossH264) { | 178 TEST_F(FullStackTest, ForemanCif30kbpsWithoutPacketlossH264) { |
180 VideoQualityTest::Params foreman_cif; | 179 VideoQualityTest::Params foreman_cif; |
181 foreman_cif.call.send_side_bwe = true; | 180 foreman_cif.call.send_side_bwe = true; |
182 foreman_cif.video = {true, 352, 288, 10, 30000, 30000, 30000, false, "H264", | 181 foreman_cif.video = {true, 352, 288, 10, 30000, 30000, 30000, false, |
183 1, 0, 0, false, false, "", "foreman_cif"}; | 182 "H264", 1, 0, 0, false, false, "foreman_cif"}; |
184 foreman_cif.analyzer = {"foreman_cif_30kbps_net_delay_0_0_plr_0_H264", 0.0, | 183 foreman_cif.analyzer = {"foreman_cif_30kbps_net_delay_0_0_plr_0_H264", 0.0, |
185 0.0, kFullStackTestDurationSecs}; | 184 0.0, kFullStackTestDurationSecs}; |
186 RunTest(foreman_cif); | 185 RunTest(foreman_cif); |
187 } | 186 } |
188 | 187 |
189 TEST_F(FullStackTest, ForemanCifPlr5H264) { | 188 TEST_F(FullStackTest, ForemanCifPlr5H264) { |
190 VideoQualityTest::Params foreman_cif; | 189 VideoQualityTest::Params foreman_cif; |
191 foreman_cif.call.send_side_bwe = true; | 190 foreman_cif.call.send_side_bwe = true; |
192 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false, | 191 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false, |
193 "H264", 1, 0, 0, false, false, "", "foreman_cif"}; | 192 "H264", 1, 0, 0, false, false, "foreman_cif"}; |
194 std::string fec_description; | 193 std::string fec_description; |
195 foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5_H264", 0.0, 0.0, | 194 foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5_H264", 0.0, 0.0, |
196 kFullStackTestDurationSecs}; | 195 kFullStackTestDurationSecs}; |
197 foreman_cif.pipe.loss_percent = 5; | 196 foreman_cif.pipe.loss_percent = 5; |
198 foreman_cif.pipe.queue_delay_ms = 50; | 197 foreman_cif.pipe.queue_delay_ms = 50; |
199 RunTest(foreman_cif); | 198 RunTest(foreman_cif); |
200 } | 199 } |
201 | 200 |
202 // Verify that this is worth the bot time, before enabling. | 201 // Verify that this is worth the bot time, before enabling. |
203 TEST_F(FullStackTest, ForemanCifPlr5H264Flexfec) { | 202 TEST_F(FullStackTest, ForemanCifPlr5H264Flexfec) { |
204 VideoQualityTest::Params foreman_cif; | 203 VideoQualityTest::Params foreman_cif; |
205 foreman_cif.call.send_side_bwe = true; | 204 foreman_cif.call.send_side_bwe = true; |
206 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false, | 205 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false, |
207 "H264", 1, 0, 0, false, true, "", "foreman_cif"}; | 206 "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, | 207 foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5_H264_flexfec", 0.0, 0.0, |
209 kFullStackTestDurationSecs}; | 208 kFullStackTestDurationSecs}; |
210 foreman_cif.pipe.loss_percent = 5; | 209 foreman_cif.pipe.loss_percent = 5; |
211 foreman_cif.pipe.queue_delay_ms = 50; | 210 foreman_cif.pipe.queue_delay_ms = 50; |
212 RunTest(foreman_cif); | 211 RunTest(foreman_cif); |
213 } | 212 } |
214 | 213 |
215 // Ulpfec with H264 is an unsupported combination, so this test is only useful | 214 // Ulpfec with H264 is an unsupported combination, so this test is only useful |
216 // for debugging. It is therefore disabled by default. | 215 // for debugging. It is therefore disabled by default. |
217 TEST_F(FullStackTest, DISABLED_ForemanCifPlr5H264Ulpfec) { | 216 TEST_F(FullStackTest, DISABLED_ForemanCifPlr5H264Ulpfec) { |
218 VideoQualityTest::Params foreman_cif; | 217 VideoQualityTest::Params foreman_cif; |
219 foreman_cif.call.send_side_bwe = true; | 218 foreman_cif.call.send_side_bwe = true; |
220 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false, | 219 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false, |
221 "H264", 1, 0, 0, true, false, "", "foreman_cif"}; | 220 "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, | 221 foreman_cif.analyzer = {"foreman_cif_delay_50_0_plr_5_H264_ulpfec", 0.0, 0.0, |
223 kFullStackTestDurationSecs}; | 222 kFullStackTestDurationSecs}; |
224 foreman_cif.pipe.loss_percent = 5; | 223 foreman_cif.pipe.loss_percent = 5; |
225 foreman_cif.pipe.queue_delay_ms = 50; | 224 foreman_cif.pipe.queue_delay_ms = 50; |
226 RunTest(foreman_cif); | 225 RunTest(foreman_cif); |
227 } | 226 } |
228 #endif // defined(WEBRTC_USE_H264) | 227 #endif // defined(WEBRTC_USE_H264) |
229 | 228 |
230 TEST_F(FullStackTest, ForemanCif500kbps) { | 229 TEST_F(FullStackTest, ForemanCif500kbps) { |
231 VideoQualityTest::Params foreman_cif; | 230 VideoQualityTest::Params foreman_cif; |
232 foreman_cif.call.send_side_bwe = true; | 231 foreman_cif.call.send_side_bwe = true; |
233 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false, "VP8", | 232 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false, |
234 1, 0, 0, false, false, "", "foreman_cif"}; | 233 "VP8", 1, 0, 0, false, false, "foreman_cif"}; |
235 foreman_cif.analyzer = {"foreman_cif_500kbps", 0.0, 0.0, | 234 foreman_cif.analyzer = {"foreman_cif_500kbps", 0.0, 0.0, |
236 kFullStackTestDurationSecs}; | 235 kFullStackTestDurationSecs}; |
237 foreman_cif.pipe.queue_length_packets = 0; | 236 foreman_cif.pipe.queue_length_packets = 0; |
238 foreman_cif.pipe.queue_delay_ms = 0; | 237 foreman_cif.pipe.queue_delay_ms = 0; |
239 foreman_cif.pipe.link_capacity_kbps = 500; | 238 foreman_cif.pipe.link_capacity_kbps = 500; |
240 RunTest(foreman_cif); | 239 RunTest(foreman_cif); |
241 } | 240 } |
242 | 241 |
243 TEST_F(FullStackTest, ForemanCif500kbpsLimitedQueue) { | 242 TEST_F(FullStackTest, ForemanCif500kbpsLimitedQueue) { |
244 VideoQualityTest::Params foreman_cif; | 243 VideoQualityTest::Params foreman_cif; |
245 foreman_cif.call.send_side_bwe = true; | 244 foreman_cif.call.send_side_bwe = true; |
246 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false, "VP8", | 245 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false, |
247 1, 0, 0, false, false, "", "foreman_cif"}; | 246 "VP8", 1, 0, 0, false, false, "foreman_cif"}; |
248 foreman_cif.analyzer = {"foreman_cif_500kbps_32pkts_queue", 0.0, 0.0, | 247 foreman_cif.analyzer = {"foreman_cif_500kbps_32pkts_queue", 0.0, 0.0, |
249 kFullStackTestDurationSecs}; | 248 kFullStackTestDurationSecs}; |
250 foreman_cif.pipe.queue_length_packets = 32; | 249 foreman_cif.pipe.queue_length_packets = 32; |
251 foreman_cif.pipe.queue_delay_ms = 0; | 250 foreman_cif.pipe.queue_delay_ms = 0; |
252 foreman_cif.pipe.link_capacity_kbps = 500; | 251 foreman_cif.pipe.link_capacity_kbps = 500; |
253 RunTest(foreman_cif); | 252 RunTest(foreman_cif); |
254 } | 253 } |
255 | 254 |
256 TEST_F(FullStackTest, ForemanCif500kbps100ms) { | 255 TEST_F(FullStackTest, ForemanCif500kbps100ms) { |
257 VideoQualityTest::Params foreman_cif; | 256 VideoQualityTest::Params foreman_cif; |
258 foreman_cif.call.send_side_bwe = true; | 257 foreman_cif.call.send_side_bwe = true; |
259 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false, "VP8", | 258 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false, |
260 1, 0, 0, false, false, "", "foreman_cif"}; | 259 "VP8", 1, 0, 0, false, false, "foreman_cif"}; |
261 foreman_cif.analyzer = {"foreman_cif_500kbps_100ms", 0.0, 0.0, | 260 foreman_cif.analyzer = {"foreman_cif_500kbps_100ms", 0.0, 0.0, |
262 kFullStackTestDurationSecs}; | 261 kFullStackTestDurationSecs}; |
263 foreman_cif.pipe.queue_length_packets = 0; | 262 foreman_cif.pipe.queue_length_packets = 0; |
264 foreman_cif.pipe.queue_delay_ms = 100; | 263 foreman_cif.pipe.queue_delay_ms = 100; |
265 foreman_cif.pipe.link_capacity_kbps = 500; | 264 foreman_cif.pipe.link_capacity_kbps = 500; |
266 RunTest(foreman_cif); | 265 RunTest(foreman_cif); |
267 } | 266 } |
268 | 267 |
269 TEST_F(FullStackTest, ForemanCif500kbps100msLimitedQueue) { | 268 TEST_F(FullStackTest, ForemanCif500kbps100msLimitedQueue) { |
270 VideoQualityTest::Params foreman_cif; | 269 VideoQualityTest::Params foreman_cif; |
271 foreman_cif.call.send_side_bwe = true; | 270 foreman_cif.call.send_side_bwe = true; |
272 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false, "VP8", | 271 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false, |
273 1, 0, 0, false, false, "", "foreman_cif"}; | 272 "VP8", 1, 0, 0, false, false, "foreman_cif"}; |
274 foreman_cif.analyzer = {"foreman_cif_500kbps_100ms_32pkts_queue", 0.0, 0.0, | 273 foreman_cif.analyzer = {"foreman_cif_500kbps_100ms_32pkts_queue", 0.0, 0.0, |
275 kFullStackTestDurationSecs}; | 274 kFullStackTestDurationSecs}; |
276 foreman_cif.pipe.queue_length_packets = 32; | 275 foreman_cif.pipe.queue_length_packets = 32; |
277 foreman_cif.pipe.queue_delay_ms = 100; | 276 foreman_cif.pipe.queue_delay_ms = 100; |
278 foreman_cif.pipe.link_capacity_kbps = 500; | 277 foreman_cif.pipe.link_capacity_kbps = 500; |
279 RunTest(foreman_cif); | 278 RunTest(foreman_cif); |
280 } | 279 } |
281 | 280 |
282 TEST_F(FullStackTest, ForemanCif500kbps100msLimitedQueueRecvBwe) { | 281 TEST_F(FullStackTest, ForemanCif500kbps100msLimitedQueueRecvBwe) { |
283 VideoQualityTest::Params foreman_cif; | 282 VideoQualityTest::Params foreman_cif; |
284 foreman_cif.call.send_side_bwe = false; | 283 foreman_cif.call.send_side_bwe = false; |
285 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false, "VP8", | 284 foreman_cif.video = {true, 352, 288, 30, 30000, 500000, 2000000, false, |
286 1, 0, 0, false, false, "", "foreman_cif"}; | 285 "VP8", 1, 0, 0, false, false, "foreman_cif"}; |
287 foreman_cif.analyzer = {"foreman_cif_500kbps_100ms_32pkts_queue_recv_bwe", | 286 foreman_cif.analyzer = {"foreman_cif_500kbps_100ms_32pkts_queue_recv_bwe", |
288 0.0, 0.0, kFullStackTestDurationSecs}; | 287 0.0, 0.0, kFullStackTestDurationSecs}; |
289 foreman_cif.pipe.queue_length_packets = 32; | 288 foreman_cif.pipe.queue_length_packets = 32; |
290 foreman_cif.pipe.queue_delay_ms = 100; | 289 foreman_cif.pipe.queue_delay_ms = 100; |
291 foreman_cif.pipe.link_capacity_kbps = 500; | 290 foreman_cif.pipe.link_capacity_kbps = 500; |
292 RunTest(foreman_cif); | 291 RunTest(foreman_cif); |
293 } | 292 } |
294 | 293 |
295 TEST_F(FullStackTest, ForemanCif1000kbps100msLimitedQueue) { | 294 TEST_F(FullStackTest, ForemanCif1000kbps100msLimitedQueue) { |
296 VideoQualityTest::Params foreman_cif; | 295 VideoQualityTest::Params foreman_cif; |
297 foreman_cif.call.send_side_bwe = true; | 296 foreman_cif.call.send_side_bwe = true; |
298 foreman_cif.video = {true, 352, 288, 30, 30000, 2000000, 2000000, false, | 297 foreman_cif.video = {true, 352, 288, 30, 30000, 2000000, 2000000, false, |
299 "VP8", 1, 0, 0, false, false, "", "foreman_cif"}; | 298 "VP8", 1, 0, 0, false, false, "foreman_cif"}; |
300 foreman_cif.analyzer = {"foreman_cif_1000kbps_100ms_32pkts_queue", 0.0, 0.0, | 299 foreman_cif.analyzer = {"foreman_cif_1000kbps_100ms_32pkts_queue", 0.0, 0.0, |
301 kFullStackTestDurationSecs}; | 300 kFullStackTestDurationSecs}; |
302 foreman_cif.pipe.queue_length_packets = 32; | 301 foreman_cif.pipe.queue_length_packets = 32; |
303 foreman_cif.pipe.queue_delay_ms = 100; | 302 foreman_cif.pipe.queue_delay_ms = 100; |
304 foreman_cif.pipe.link_capacity_kbps = 1000; | 303 foreman_cif.pipe.link_capacity_kbps = 1000; |
305 RunTest(foreman_cif); | 304 RunTest(foreman_cif); |
306 } | 305 } |
307 | 306 |
308 TEST_F(FullStackTest, ConferenceMotionHd2000kbps100msLimitedQueue) { | 307 TEST_F(FullStackTest, ConferenceMotionHd2000kbps100msLimitedQueue) { |
309 VideoQualityTest::Params conf_motion_hd; | 308 VideoQualityTest::Params conf_motion_hd; |
310 conf_motion_hd.call.send_side_bwe = true; | 309 conf_motion_hd.call.send_side_bwe = true; |
311 conf_motion_hd.video = {true, 1280, 720, 50, 30000, 3000000, 3000000, false, | 310 conf_motion_hd.video = { |
312 "VP8", 1, 0, 0, false, false, "", | 311 true, 1280, 720, 50, 30000, |
313 "ConferenceMotion_1280_720_50"}; | 312 3000000, 3000000, false, "VP8", 1, |
| 313 0, 0, false, false, "ConferenceMotion_1280_720_50"}; |
314 conf_motion_hd.analyzer = {"conference_motion_hd_2000kbps_100ms_32pkts_queue", | 314 conf_motion_hd.analyzer = {"conference_motion_hd_2000kbps_100ms_32pkts_queue", |
315 0.0, 0.0, kFullStackTestDurationSecs}; | 315 0.0, 0.0, kFullStackTestDurationSecs}; |
316 conf_motion_hd.pipe.queue_length_packets = 32; | 316 conf_motion_hd.pipe.queue_length_packets = 32; |
317 conf_motion_hd.pipe.queue_delay_ms = 100; | 317 conf_motion_hd.pipe.queue_delay_ms = 100; |
318 conf_motion_hd.pipe.link_capacity_kbps = 2000; | 318 conf_motion_hd.pipe.link_capacity_kbps = 2000; |
319 RunTest(conf_motion_hd); | 319 RunTest(conf_motion_hd); |
320 } | 320 } |
321 | 321 |
322 #if !defined(RTC_DISABLE_VP9) | 322 #if !defined(RTC_DISABLE_VP9) |
323 TEST_F(FullStackTest, ConferenceMotionHd2000kbps100msLimitedQueueVP9) { | 323 TEST_F(FullStackTest, ConferenceMotionHd2000kbps100msLimitedQueueVP9) { |
324 VideoQualityTest::Params conf_motion_hd; | 324 VideoQualityTest::Params conf_motion_hd; |
325 conf_motion_hd.call.send_side_bwe = true; | 325 conf_motion_hd.call.send_side_bwe = true; |
326 conf_motion_hd.video = {true, 1280, 720, 50, 30000, 3000000, 3000000, false, | 326 conf_motion_hd.video = { |
327 "VP9", 1, 0, 0, false, false, "", | 327 true, 1280, 720, 50, 30000, |
328 "ConferenceMotion_1280_720_50"}; | 328 3000000, 3000000, false, "VP9", 1, |
| 329 0, 0, false, false, "ConferenceMotion_1280_720_50"}; |
329 conf_motion_hd.analyzer = { | 330 conf_motion_hd.analyzer = { |
330 "conference_motion_hd_2000kbps_100ms_32pkts_queue_vp9", 0.0, 0.0, | 331 "conference_motion_hd_2000kbps_100ms_32pkts_queue_vp9", 0.0, 0.0, |
331 kFullStackTestDurationSecs}; | 332 kFullStackTestDurationSecs}; |
332 conf_motion_hd.pipe.queue_length_packets = 32; | 333 conf_motion_hd.pipe.queue_length_packets = 32; |
333 conf_motion_hd.pipe.queue_delay_ms = 100; | 334 conf_motion_hd.pipe.queue_delay_ms = 100; |
334 conf_motion_hd.pipe.link_capacity_kbps = 2000; | 335 conf_motion_hd.pipe.link_capacity_kbps = 2000; |
335 RunTest(conf_motion_hd); | 336 RunTest(conf_motion_hd); |
336 } | 337 } |
337 #endif | 338 #endif |
338 | 339 |
339 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL) { | 340 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL) { |
340 VideoQualityTest::Params screenshare; | 341 VideoQualityTest::Params screenshare; |
341 screenshare.call.send_side_bwe = true; | 342 screenshare.call.send_side_bwe = true; |
342 screenshare.video = {true, 1850, 1110, 5, 50000, 200000, 2000000, false, | 343 screenshare.video = {true, 1850, 1110, 5, 50000, 200000, 2000000, false, |
343 "VP8", 2, 1, 400000, false, false, "", ""}; | 344 "VP8", 2, 1, 400000, false, false, ""}; |
344 screenshare.screenshare = {true, 10}; | 345 screenshare.screenshare = {true, 10}; |
345 screenshare.analyzer = {"screenshare_slides", 0.0, 0.0, | 346 screenshare.analyzer = {"screenshare_slides", 0.0, 0.0, |
346 kFullStackTestDurationSecs}; | 347 kFullStackTestDurationSecs}; |
347 RunTest(screenshare); | 348 RunTest(screenshare); |
348 } | 349 } |
349 | 350 |
350 TEST_F(FullStackTest, ScreenshareSlidesVP8_3TL_Simulcast) { | 351 TEST_F(FullStackTest, ScreenshareSlidesVP8_3TL_Simulcast) { |
351 test::ScopedFieldTrials field_trial(kScreenshareSimulcastExperiment); | 352 test::ScopedFieldTrials field_trial(kScreenshareSimulcastExperiment); |
352 VideoQualityTest::Params screenshare; | 353 VideoQualityTest::Params screenshare; |
353 screenshare.call.send_side_bwe = true; | 354 screenshare.call.send_side_bwe = true; |
354 screenshare.screenshare = {true, 10}; | 355 screenshare.screenshare = {true, 10}; |
355 screenshare.video = {true, 1850, 1110, 5, 800000, 2500000, | 356 screenshare.video = {true, 1850, 1110, 5, 800000, |
356 2500000, false, "VP8", 3, 2, 400000, | 357 2500000, 2500000, false, "VP8", 3, |
357 false, false, "", ""}; | 358 2, 400000, false, false, ""}; |
358 screenshare.analyzer = {"screenshare_slides_simulcast", 0.0, 0.0, | 359 screenshare.analyzer = {"screenshare_slides_simulcast", 0.0, 0.0, |
359 kFullStackTestDurationSecs}; | 360 kFullStackTestDurationSecs}; |
360 VideoQualityTest::Params screenshare_params_high; | 361 VideoQualityTest::Params screenshare_params_high; |
361 screenshare_params_high.video = {true, 1850, 1110, 5, 800000, 2500000, | 362 screenshare_params_high.video = {true, 1850, 1110, 5, 800000, |
362 2500000, false, "VP8", 3, 0, 400000, | 363 2500000, 2500000, false, "VP8", 3, |
363 false, false, "", ""}; | 364 0, 400000, false, false, ""}; |
364 VideoQualityTest::Params screenshare_params_low; | 365 VideoQualityTest::Params screenshare_params_low; |
365 screenshare_params_low.video = {true, 1850, 1110, 5, 50000, 200000, | 366 screenshare_params_low.video = {true, 1850, 1110, 5, 50000, |
366 2000000, false, "VP8", 2, 0, 400000, | 367 200000, 2000000, false, "VP8", 2, |
367 false, false, "", ""}; | 368 0, 400000, false, false, ""}; |
368 | 369 |
369 std::vector<VideoStream> streams = { | 370 std::vector<VideoStream> streams = { |
370 DefaultVideoStream(screenshare_params_low), | 371 DefaultVideoStream(screenshare_params_low), |
371 DefaultVideoStream(screenshare_params_high)}; | 372 DefaultVideoStream(screenshare_params_high)}; |
372 screenshare.ss = {streams, 1, 1, 0, std::vector<SpatialLayer>(), false}; | 373 screenshare.ss = {streams, 1, 1, 0, std::vector<SpatialLayer>(), false}; |
373 RunTest(screenshare); | 374 RunTest(screenshare); |
374 } | 375 } |
375 | 376 |
376 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_Scroll) { | 377 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_Scroll) { |
377 VideoQualityTest::Params config; | 378 VideoQualityTest::Params config; |
378 config.call.send_side_bwe = true; | 379 config.call.send_side_bwe = true; |
379 config.video = {true, 1850, 1110 / 2, 5, 50000, 200000, 2000000, false, | 380 config.video = {true, 1850, 1110 / 2, 5, 50000, 200000, 2000000, false, |
380 "VP8", 2, 1, 400000, false, false, "", ""}; | 381 "VP8", 2, 1, 400000, false, false, ""}; |
381 config.screenshare = {true, 10, 2}; | 382 config.screenshare = {true, 10, 2}; |
382 config.analyzer = {"screenshare_slides_scrolling", 0.0, 0.0, | 383 config.analyzer = {"screenshare_slides_scrolling", 0.0, 0.0, |
383 kFullStackTestDurationSecs}; | 384 kFullStackTestDurationSecs}; |
384 RunTest(config); | 385 RunTest(config); |
385 } | 386 } |
386 | 387 |
387 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_LossyNet) { | 388 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_LossyNet) { |
388 VideoQualityTest::Params screenshare; | 389 VideoQualityTest::Params screenshare; |
389 screenshare.call.send_side_bwe = true; | 390 screenshare.call.send_side_bwe = true; |
390 screenshare.video = {true, 1850, 1110, 5, 50000, 200000, 2000000, false, | 391 screenshare.video = {true, 1850, 1110, 5, 50000, 200000, 2000000, false, |
391 "VP8", 2, 1, 400000, false, false, "", ""}; | 392 "VP8", 2, 1, 400000, false, false, ""}; |
392 screenshare.screenshare = {true, 10}; | 393 screenshare.screenshare = {true, 10}; |
393 screenshare.analyzer = {"screenshare_slides_lossy_net", 0.0, 0.0, | 394 screenshare.analyzer = {"screenshare_slides_lossy_net", 0.0, 0.0, |
394 kFullStackTestDurationSecs}; | 395 kFullStackTestDurationSecs}; |
395 screenshare.pipe.loss_percent = 5; | 396 screenshare.pipe.loss_percent = 5; |
396 screenshare.pipe.queue_delay_ms = 200; | 397 screenshare.pipe.queue_delay_ms = 200; |
397 screenshare.pipe.link_capacity_kbps = 500; | 398 screenshare.pipe.link_capacity_kbps = 500; |
398 RunTest(screenshare); | 399 RunTest(screenshare); |
399 } | 400 } |
400 | 401 |
401 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_VeryLossyNet) { | 402 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_VeryLossyNet) { |
402 VideoQualityTest::Params screenshare; | 403 VideoQualityTest::Params screenshare; |
403 screenshare.call.send_side_bwe = true; | 404 screenshare.call.send_side_bwe = true; |
404 screenshare.video = {true, 1850, 1110, 5, 50000, 200000, 2000000, false, | 405 screenshare.video = {true, 1850, 1110, 5, 50000, 200000, 2000000, false, |
405 "VP8", 2, 1, 400000, false, false, "", ""}; | 406 "VP8", 2, 1, 400000, false, false, ""}; |
406 screenshare.screenshare = {true, 10}; | 407 screenshare.screenshare = {true, 10}; |
407 screenshare.analyzer = {"screenshare_slides_very_lossy", 0.0, 0.0, | 408 screenshare.analyzer = {"screenshare_slides_very_lossy", 0.0, 0.0, |
408 kFullStackTestDurationSecs}; | 409 kFullStackTestDurationSecs}; |
409 screenshare.pipe.loss_percent = 10; | 410 screenshare.pipe.loss_percent = 10; |
410 screenshare.pipe.queue_delay_ms = 200; | 411 screenshare.pipe.queue_delay_ms = 200; |
411 screenshare.pipe.link_capacity_kbps = 500; | 412 screenshare.pipe.link_capacity_kbps = 500; |
412 RunTest(screenshare); | 413 RunTest(screenshare); |
413 } | 414 } |
414 | 415 |
415 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_LossyNetRestrictedQueue) { | 416 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_LossyNetRestrictedQueue) { |
416 VideoQualityTest::Params screenshare; | 417 VideoQualityTest::Params screenshare; |
417 screenshare.call.send_side_bwe = true; | 418 screenshare.call.send_side_bwe = true; |
418 screenshare.video = {true, 1850, 1110, 5, 50000, 200000, 2000000, false, | 419 screenshare.video = {true, 1850, 1110, 5, 50000, 200000, 2000000, false, |
419 "VP8", 2, 1, 400000, false, false, "", ""}; | 420 "VP8", 2, 1, 400000, false, false, ""}; |
420 screenshare.screenshare = {true, 10}; | 421 screenshare.screenshare = {true, 10}; |
421 screenshare.analyzer = {"screenshare_slides_lossy_limited", 0.0, 0.0, | 422 screenshare.analyzer = {"screenshare_slides_lossy_limited", 0.0, 0.0, |
422 kFullStackTestDurationSecs}; | 423 kFullStackTestDurationSecs}; |
423 screenshare.pipe.loss_percent = 5; | 424 screenshare.pipe.loss_percent = 5; |
424 screenshare.pipe.link_capacity_kbps = 200; | 425 screenshare.pipe.link_capacity_kbps = 200; |
425 screenshare.pipe.queue_length_packets = 30; | 426 screenshare.pipe.queue_length_packets = 30; |
426 | 427 |
427 RunTest(screenshare); | 428 RunTest(screenshare); |
428 } | 429 } |
429 | 430 |
430 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_ModeratelyRestricted) { | 431 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_ModeratelyRestricted) { |
431 VideoQualityTest::Params screenshare; | 432 VideoQualityTest::Params screenshare; |
432 screenshare.call.send_side_bwe = true; | 433 screenshare.call.send_side_bwe = true; |
433 screenshare.video = {true, 1850, 1110, 5, 50000, 200000, 2000000, false, | 434 screenshare.video = {true, 1850, 1110, 5, 50000, 200000, 2000000, false, |
434 "VP8", 2, 1, 400000, false, false, "", ""}; | 435 "VP8", 2, 1, 400000, false, false, ""}; |
435 screenshare.screenshare = {true, 10}; | 436 screenshare.screenshare = {true, 10}; |
436 screenshare.analyzer = {"screenshare_slides_moderately_restricted", 0.0, 0.0, | 437 screenshare.analyzer = {"screenshare_slides_moderately_restricted", 0.0, 0.0, |
437 kFullStackTestDurationSecs}; | 438 kFullStackTestDurationSecs}; |
438 screenshare.pipe.loss_percent = 1; | 439 screenshare.pipe.loss_percent = 1; |
439 screenshare.pipe.link_capacity_kbps = 1200; | 440 screenshare.pipe.link_capacity_kbps = 1200; |
440 screenshare.pipe.queue_length_packets = 30; | 441 screenshare.pipe.queue_length_packets = 30; |
441 | 442 |
442 RunTest(screenshare); | 443 RunTest(screenshare); |
443 } | 444 } |
444 | 445 |
445 // TODO(sprang): Retire these tests once experiment is removed. | 446 // TODO(sprang): Retire these tests once experiment is removed. |
446 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_LossyNetRestrictedQueue_ALR) { | 447 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_LossyNetRestrictedQueue_ALR) { |
447 test::ScopedFieldTrials field_trial(kAlrProbingExperiment); | 448 test::ScopedFieldTrials field_trial(kAlrProbingExperiment); |
448 VideoQualityTest::Params screenshare; | 449 VideoQualityTest::Params screenshare; |
449 screenshare.call.send_side_bwe = true; | 450 screenshare.call.send_side_bwe = true; |
450 screenshare.video = {true, 1850, 1110, 5, 50000, 200000, 2000000, false, | 451 screenshare.video = {true, 1850, 1110, 5, 50000, 200000, 2000000, false, |
451 "VP8", 2, 1, 400000, false, false, "", ""}; | 452 "VP8", 2, 1, 400000, false, false, ""}; |
452 screenshare.screenshare = {true, 10}; | 453 screenshare.screenshare = {true, 10}; |
453 screenshare.analyzer = {"screenshare_slides_lossy_limited_ALR", 0.0, 0.0, | 454 screenshare.analyzer = {"screenshare_slides_lossy_limited_ALR", 0.0, 0.0, |
454 kFullStackTestDurationSecs}; | 455 kFullStackTestDurationSecs}; |
455 screenshare.pipe.loss_percent = 5; | 456 screenshare.pipe.loss_percent = 5; |
456 screenshare.pipe.link_capacity_kbps = 200; | 457 screenshare.pipe.link_capacity_kbps = 200; |
457 screenshare.pipe.queue_length_packets = 30; | 458 screenshare.pipe.queue_length_packets = 30; |
458 | 459 |
459 RunTest(screenshare); | 460 RunTest(screenshare); |
460 } | 461 } |
461 | 462 |
462 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_ALR) { | 463 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_ALR) { |
463 test::ScopedFieldTrials field_trial(kAlrProbingExperiment); | 464 test::ScopedFieldTrials field_trial(kAlrProbingExperiment); |
464 VideoQualityTest::Params screenshare; | 465 VideoQualityTest::Params screenshare; |
465 screenshare.call.send_side_bwe = true; | 466 screenshare.call.send_side_bwe = true; |
466 screenshare.video = {true, 1850, 1110, 5, 50000, 200000, 2000000, false, | 467 screenshare.video = {true, 1850, 1110, 5, 50000, 200000, 2000000, false, |
467 "VP8", 2, 1, 400000, false, false, "", ""}; | 468 "VP8", 2, 1, 400000, false, false, ""}; |
468 screenshare.screenshare = {true, 10}; | 469 screenshare.screenshare = {true, 10}; |
469 screenshare.analyzer = {"screenshare_slides_ALR", 0.0, 0.0, | 470 screenshare.analyzer = {"screenshare_slides_ALR", 0.0, 0.0, |
470 kFullStackTestDurationSecs}; | 471 kFullStackTestDurationSecs}; |
471 RunTest(screenshare); | 472 RunTest(screenshare); |
472 } | 473 } |
473 | 474 |
474 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_ModeratelyRestricted_ALR) { | 475 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_ModeratelyRestricted_ALR) { |
475 test::ScopedFieldTrials field_trial(kAlrProbingExperiment); | 476 test::ScopedFieldTrials field_trial(kAlrProbingExperiment); |
476 VideoQualityTest::Params screenshare; | 477 VideoQualityTest::Params screenshare; |
477 screenshare.call.send_side_bwe = true; | 478 screenshare.call.send_side_bwe = true; |
478 screenshare.video = {true, 1850, 1110, 5, 50000, 200000, 2000000, false, | 479 screenshare.video = {true, 1850, 1110, 5, 50000, 200000, 2000000, false, |
479 "VP8", 2, 1, 400000, false, false, "", ""}; | 480 "VP8", 2, 1, 400000, false, false, ""}; |
480 screenshare.screenshare = {true, 10}; | 481 screenshare.screenshare = {true, 10}; |
481 screenshare.analyzer = {"screenshare_slides_moderately_restricted_ALR", 0.0, | 482 screenshare.analyzer = {"screenshare_slides_moderately_restricted_ALR", 0.0, |
482 0.0, kFullStackTestDurationSecs}; | 483 0.0, kFullStackTestDurationSecs}; |
483 screenshare.pipe.loss_percent = 1; | 484 screenshare.pipe.loss_percent = 1; |
484 screenshare.pipe.link_capacity_kbps = 1200; | 485 screenshare.pipe.link_capacity_kbps = 1200; |
485 screenshare.pipe.queue_length_packets = 30; | 486 screenshare.pipe.queue_length_packets = 30; |
486 | 487 |
487 RunTest(screenshare); | 488 RunTest(screenshare); |
488 } | 489 } |
489 | 490 |
490 TEST_F(FullStackTest, ScreenshareSlidesVP8_3TL_Simulcast_ALR) { | 491 TEST_F(FullStackTest, ScreenshareSlidesVP8_3TL_Simulcast_ALR) { |
491 test::ScopedFieldTrials field_trial(kScreenshareSimulcastExperiment + | 492 test::ScopedFieldTrials field_trial(kScreenshareSimulcastExperiment + |
492 kAlrProbingExperiment); | 493 kAlrProbingExperiment); |
493 VideoQualityTest::Params screenshare; | 494 VideoQualityTest::Params screenshare; |
494 screenshare.call.send_side_bwe = true; | 495 screenshare.call.send_side_bwe = true; |
495 screenshare.screenshare = {true, 10}; | 496 screenshare.screenshare = {true, 10}; |
496 screenshare.video = {true, 1850, 1110, 5, 800000, 2500000, | 497 screenshare.video = {true, 1850, 1110, 5, 800000, |
497 2500000, false, "VP8", 3, 2, 400000, | 498 2500000, 2500000, false, "VP8", 3, |
498 false, false, "", ""}; | 499 2, 400000, false, false, ""}; |
499 screenshare.analyzer = {"screenshare_slides_simulcast_alr", 0.0, 0.0, | 500 screenshare.analyzer = {"screenshare_slides_simulcast_alr", 0.0, 0.0, |
500 kFullStackTestDurationSecs}; | 501 kFullStackTestDurationSecs}; |
501 VideoQualityTest::Params screenshare_params_high; | 502 VideoQualityTest::Params screenshare_params_high; |
502 screenshare_params_high.video = {true, 1850, 1110, 5, 800000, 2500000, | 503 screenshare_params_high.video = {true, 1850, 1110, 5, 800000, |
503 2500000, false, "VP8", 3, 0, 400000, | 504 2500000, 2500000, false, "VP8", 3, |
504 false, false, "", ""}; | 505 0, 400000, false, false, ""}; |
505 VideoQualityTest::Params screenshare_params_low; | 506 VideoQualityTest::Params screenshare_params_low; |
506 screenshare_params_low.video = {true, 1850, 1110, 5, 50000, 200000, | 507 screenshare_params_low.video = {true, 1850, 1110, 5, 50000, |
507 2000000, false, "VP8", 2, 0, 400000, | 508 200000, 2000000, false, "VP8", 2, |
508 false, false, "", ""}; | 509 0, 400000, false, false, ""}; |
509 | 510 |
510 std::vector<VideoStream> streams = { | 511 std::vector<VideoStream> streams = { |
511 DefaultVideoStream(screenshare_params_low), | 512 DefaultVideoStream(screenshare_params_low), |
512 DefaultVideoStream(screenshare_params_high)}; | 513 DefaultVideoStream(screenshare_params_high)}; |
513 screenshare.ss = {streams, 1, 1, 0, std::vector<SpatialLayer>(), false}; | 514 screenshare.ss = {streams, 1, 1, 0, std::vector<SpatialLayer>(), false}; |
514 RunTest(screenshare); | 515 RunTest(screenshare); |
515 } | 516 } |
516 | 517 |
517 const VideoQualityTest::Params::Video kSvcVp9Video = { | 518 const VideoQualityTest::Params::Video kSvcVp9Video = { |
518 true, 1280, 720, 30, | 519 true, 1280, 720, 30, 800000, |
519 800000, 2500000, 2500000, false, | 520 2500000, 2500000, false, "VP9", 3, |
520 "VP9", 3, 2, 400000, | 521 2, 400000, false, false, "ConferenceMotion_1280_720_50"}; |
521 false, false, "", "ConferenceMotion_1280_720_50"}; | |
522 | 522 |
523 const VideoQualityTest::Params::Video kSimulcastVp8VideoHigh = { | 523 const VideoQualityTest::Params::Video kSimulcastVp8VideoHigh = { |
524 true, 1280, 720, 30, | 524 true, 1280, 720, 30, 800000, |
525 800000, 2500000, 2500000, false, | 525 2500000, 2500000, false, "VP8", 3, |
526 "VP8", 3, 2, 400000, | 526 2, 400000, false, false, "ConferenceMotion_1280_720_50"}; |
527 false, false, "", "ConferenceMotion_1280_720_50"}; | |
528 | 527 |
529 const VideoQualityTest::Params::Video kSimulcastVp8VideoMedium = { | 528 const VideoQualityTest::Params::Video kSimulcastVp8VideoMedium = { |
530 true, 640, 360, 30, | 529 true, 640, 360, 30, 150000, |
531 150000, 500000, 700000, false, | 530 500000, 700000, false, "VP8", 3, |
532 "VP8", 3, 2, 400000, | 531 2, 400000, false, false, "ConferenceMotion_1280_720_50"}; |
533 false, false, "", "ConferenceMotion_1280_720_50"}; | |
534 | 532 |
535 const VideoQualityTest::Params::Video kSimulcastVp8VideoLow = { | 533 const VideoQualityTest::Params::Video kSimulcastVp8VideoLow = { |
536 true, 320, 180, 30, | 534 true, 320, 180, 30, 30000, |
537 30000, 150000, 200000, false, | 535 150000, 200000, false, "VP8", 3, |
538 "VP8", 3, 2, 400000, | 536 2, 400000, false, false, "ConferenceMotion_1280_720_50"}; |
539 false, false, "", "ConferenceMotion_1280_720_50"}; | |
540 | 537 |
541 #if !defined(RTC_DISABLE_VP9) | 538 #if !defined(RTC_DISABLE_VP9) |
542 TEST_F(FullStackTest, ScreenshareSlidesVP9_2SL) { | 539 TEST_F(FullStackTest, ScreenshareSlidesVP9_2SL) { |
543 VideoQualityTest::Params screenshare; | 540 VideoQualityTest::Params screenshare; |
544 screenshare.call.send_side_bwe = true; | 541 screenshare.call.send_side_bwe = true; |
545 screenshare.video = {true, 1850, 1110, 5, 50000, 200000, 2000000, false, | 542 screenshare.video = {true, 1850, 1110, 5, 50000, 200000, 2000000, false, |
546 "VP9", 1, 0, 400000, false, false, "", ""}; | 543 "VP9", 1, 0, 400000, false, false, ""}; |
547 screenshare.screenshare = {true, 10}; | 544 screenshare.screenshare = {true, 10}; |
548 screenshare.analyzer = {"screenshare_slides_vp9_2sl", 0.0, 0.0, | 545 screenshare.analyzer = {"screenshare_slides_vp9_2sl", 0.0, 0.0, |
549 kFullStackTestDurationSecs}; | 546 kFullStackTestDurationSecs}; |
550 screenshare.logs = false; | |
551 screenshare.ss = {std::vector<VideoStream>(), 0, 2, 1, | 547 screenshare.ss = {std::vector<VideoStream>(), 0, 2, 1, |
552 std::vector<SpatialLayer>(), false}; | 548 std::vector<SpatialLayer>(), false}; |
553 RunTest(screenshare); | 549 RunTest(screenshare); |
554 } | 550 } |
555 | 551 |
556 TEST_F(FullStackTest, VP9SVC_3SL_High) { | 552 TEST_F(FullStackTest, VP9SVC_3SL_High) { |
557 VideoQualityTest::Params simulcast; | 553 VideoQualityTest::Params simulcast; |
558 simulcast.call.send_side_bwe = true; | 554 simulcast.call.send_side_bwe = true; |
559 simulcast.video = kSvcVp9Video; | 555 simulcast.video = kSvcVp9Video; |
560 simulcast.analyzer = {"vp9svc_3sl_high", 0.0, 0.0, | 556 simulcast.analyzer = {"vp9svc_3sl_high", 0.0, 0.0, |
561 kFullStackTestDurationSecs}; | 557 kFullStackTestDurationSecs}; |
562 simulcast.logs = false; | |
563 simulcast.ss = {std::vector<VideoStream>(), 0, 3, 2, | 558 simulcast.ss = {std::vector<VideoStream>(), 0, 3, 2, |
564 std::vector<SpatialLayer>(), false}; | 559 std::vector<SpatialLayer>(), false}; |
565 RunTest(simulcast); | 560 RunTest(simulcast); |
566 } | 561 } |
567 | 562 |
568 TEST_F(FullStackTest, VP9SVC_3SL_Medium) { | 563 TEST_F(FullStackTest, VP9SVC_3SL_Medium) { |
569 VideoQualityTest::Params simulcast; | 564 VideoQualityTest::Params simulcast; |
570 simulcast.call.send_side_bwe = true; | 565 simulcast.call.send_side_bwe = true; |
571 simulcast.video = kSvcVp9Video; | 566 simulcast.video = kSvcVp9Video; |
572 simulcast.analyzer = {"vp9svc_3sl_medium", 0.0, 0.0, | 567 simulcast.analyzer = {"vp9svc_3sl_medium", 0.0, 0.0, |
573 kFullStackTestDurationSecs}; | 568 kFullStackTestDurationSecs}; |
574 simulcast.logs = false; | |
575 simulcast.ss = {std::vector<VideoStream>(), 0, 3, 1, | 569 simulcast.ss = {std::vector<VideoStream>(), 0, 3, 1, |
576 std::vector<SpatialLayer>(), false}; | 570 std::vector<SpatialLayer>(), false}; |
577 RunTest(simulcast); | 571 RunTest(simulcast); |
578 } | 572 } |
579 | 573 |
580 TEST_F(FullStackTest, VP9SVC_3SL_Low) { | 574 TEST_F(FullStackTest, VP9SVC_3SL_Low) { |
581 VideoQualityTest::Params simulcast; | 575 VideoQualityTest::Params simulcast; |
582 simulcast.call.send_side_bwe = true; | 576 simulcast.call.send_side_bwe = true; |
583 simulcast.video = kSvcVp9Video; | 577 simulcast.video = kSvcVp9Video; |
584 simulcast.analyzer = {"vp9svc_3sl_low", 0.0, 0.0, kFullStackTestDurationSecs}; | 578 simulcast.analyzer = {"vp9svc_3sl_low", 0.0, 0.0, kFullStackTestDurationSecs}; |
585 simulcast.logs = false; | |
586 simulcast.ss = {std::vector<VideoStream>(), 0, 3, 0, | 579 simulcast.ss = {std::vector<VideoStream>(), 0, 3, 0, |
587 std::vector<SpatialLayer>(), false}; | 580 std::vector<SpatialLayer>(), false}; |
588 RunTest(simulcast); | 581 RunTest(simulcast); |
589 } | 582 } |
590 #endif // !defined(RTC_DISABLE_VP9) | 583 #endif // !defined(RTC_DISABLE_VP9) |
591 | 584 |
592 // Android bots can't handle FullHD, so disable the test. | 585 // Android bots can't handle FullHD, so disable the test. |
593 #if defined(WEBRTC_ANDROID) | 586 #if defined(WEBRTC_ANDROID) |
594 #define MAYBE_SimulcastFullHdOveruse DISABLED_SimulcastFullHdOveruse | 587 #define MAYBE_SimulcastFullHdOveruse DISABLED_SimulcastFullHdOveruse |
595 #else | 588 #else |
596 #define MAYBE_SimulcastFullHdOveruse SimulcastFullHdOveruse | 589 #define MAYBE_SimulcastFullHdOveruse SimulcastFullHdOveruse |
597 #endif | 590 #endif |
598 | 591 |
599 TEST_F(FullStackTest, MAYBE_SimulcastFullHdOveruse) { | 592 TEST_F(FullStackTest, MAYBE_SimulcastFullHdOveruse) { |
600 VideoQualityTest::Params simulcast; | 593 VideoQualityTest::Params simulcast; |
601 simulcast.call.send_side_bwe = true; | 594 simulcast.call.send_side_bwe = true; |
602 simulcast.video = {true, 1920, 1080, 30, 800000, 2500000, | 595 simulcast.video = {true, 1920, 1080, 30, 800000, |
603 2500000, false, "VP8", 3, 2, 400000, | 596 2500000, 2500000, false, "VP8", 3, |
604 false, false, "", "Generator"}; | 597 2, 400000, false, false, "Generator"}; |
605 simulcast.analyzer = {"simulcast_HD_high", 0.0, 0.0, | 598 simulcast.analyzer = {"simulcast_HD_high", 0.0, 0.0, |
606 kFullStackTestDurationSecs}; | 599 kFullStackTestDurationSecs}; |
607 simulcast.pipe.loss_percent = 0; | 600 simulcast.pipe.loss_percent = 0; |
608 simulcast.pipe.queue_delay_ms = 100; | 601 simulcast.pipe.queue_delay_ms = 100; |
609 std::vector<VideoStream> streams = {DefaultVideoStream(simulcast), | 602 std::vector<VideoStream> streams = {DefaultVideoStream(simulcast), |
610 DefaultVideoStream(simulcast), | 603 DefaultVideoStream(simulcast), |
611 DefaultVideoStream(simulcast)}; | 604 DefaultVideoStream(simulcast)}; |
612 simulcast.ss = {streams, 2, 1, 0, std::vector<SpatialLayer>(), true}; | 605 simulcast.ss = {streams, 2, 1, 0, std::vector<SpatialLayer>(), true}; |
613 webrtc::test::ScopedFieldTrials override_trials( | 606 webrtc::test::ScopedFieldTrials override_trials( |
614 "WebRTC-ForceSimulatedOveruseIntervalMs/1000-50000-300/"); | 607 "WebRTC-ForceSimulatedOveruseIntervalMs/1000-50000-300/"); |
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
692 VideoQualityTest::Params video_params_high; | 685 VideoQualityTest::Params video_params_high; |
693 video_params_high.video = kSimulcastVp8VideoHigh; | 686 video_params_high.video = kSimulcastVp8VideoHigh; |
694 VideoQualityTest::Params video_params_medium; | 687 VideoQualityTest::Params video_params_medium; |
695 video_params_medium.video = kSimulcastVp8VideoMedium; | 688 video_params_medium.video = kSimulcastVp8VideoMedium; |
696 VideoQualityTest::Params video_params_low; | 689 VideoQualityTest::Params video_params_low; |
697 video_params_low.video = kSimulcastVp8VideoLow; | 690 video_params_low.video = kSimulcastVp8VideoLow; |
698 | 691 |
699 std::vector<VideoStream> streams = {DefaultVideoStream(video_params_low), | 692 std::vector<VideoStream> streams = {DefaultVideoStream(video_params_low), |
700 DefaultVideoStream(video_params_medium), | 693 DefaultVideoStream(video_params_medium), |
701 DefaultVideoStream(video_params_high)}; | 694 DefaultVideoStream(video_params_high)}; |
702 large_room.num_thumbnails = 5; | 695 large_room.call.num_thumbnails = 5; |
703 large_room.ss = {streams, 2, 1, 0, std::vector<SpatialLayer>(), false}; | 696 large_room.ss = {streams, 2, 1, 0, std::vector<SpatialLayer>(), false}; |
704 RunTest(large_room); | 697 RunTest(large_room); |
705 } | 698 } |
706 | 699 |
707 #if defined(WEBRTC_ANDROID) | 700 #if defined(WEBRTC_ANDROID) |
708 // Fails on Android: | 701 // Fails on Android: |
709 // https://bugs.chromium.org/p/webrtc/issues/detail?id=7301 | 702 // https://bugs.chromium.org/p/webrtc/issues/detail?id=7301 |
710 #define MAYBE_LargeRoomVP8_50thumb DISABLED_LargeRoomVP8_50thumb | 703 #define MAYBE_LargeRoomVP8_50thumb DISABLED_LargeRoomVP8_50thumb |
711 #define MAYBE_LargeRoomVP8_15thumb DISABLED_LargeRoomVP8_15thumb | 704 #define MAYBE_LargeRoomVP8_15thumb DISABLED_LargeRoomVP8_15thumb |
712 #else | 705 #else |
(...skipping 12 matching lines...) Expand all Loading... |
725 VideoQualityTest::Params video_params_high; | 718 VideoQualityTest::Params video_params_high; |
726 video_params_high.video = kSimulcastVp8VideoHigh; | 719 video_params_high.video = kSimulcastVp8VideoHigh; |
727 VideoQualityTest::Params video_params_medium; | 720 VideoQualityTest::Params video_params_medium; |
728 video_params_medium.video = kSimulcastVp8VideoMedium; | 721 video_params_medium.video = kSimulcastVp8VideoMedium; |
729 VideoQualityTest::Params video_params_low; | 722 VideoQualityTest::Params video_params_low; |
730 video_params_low.video = kSimulcastVp8VideoLow; | 723 video_params_low.video = kSimulcastVp8VideoLow; |
731 | 724 |
732 std::vector<VideoStream> streams = {DefaultVideoStream(video_params_low), | 725 std::vector<VideoStream> streams = {DefaultVideoStream(video_params_low), |
733 DefaultVideoStream(video_params_medium), | 726 DefaultVideoStream(video_params_medium), |
734 DefaultVideoStream(video_params_high)}; | 727 DefaultVideoStream(video_params_high)}; |
735 large_room.num_thumbnails = 15; | 728 large_room.call.num_thumbnails = 15; |
736 large_room.ss = {streams, 2, 1, 0, std::vector<SpatialLayer>(), false}; | 729 large_room.ss = {streams, 2, 1, 0, std::vector<SpatialLayer>(), false}; |
737 RunTest(large_room); | 730 RunTest(large_room); |
738 } | 731 } |
739 | 732 |
740 TEST_F(FullStackTest, MAYBE_LargeRoomVP8_50thumb) { | 733 TEST_F(FullStackTest, MAYBE_LargeRoomVP8_50thumb) { |
741 VideoQualityTest::Params large_room; | 734 VideoQualityTest::Params large_room; |
742 large_room.call.send_side_bwe = true; | 735 large_room.call.send_side_bwe = true; |
743 large_room.video = kSimulcastVp8VideoHigh; | 736 large_room.video = kSimulcastVp8VideoHigh; |
744 large_room.analyzer = {"largeroom_50thumb", 0.0, 0.0, | 737 large_room.analyzer = {"largeroom_50thumb", 0.0, 0.0, |
745 kFullStackTestDurationSecs}; | 738 kFullStackTestDurationSecs}; |
746 large_room.pipe.loss_percent = 0; | 739 large_room.pipe.loss_percent = 0; |
747 large_room.pipe.queue_delay_ms = 100; | 740 large_room.pipe.queue_delay_ms = 100; |
748 VideoQualityTest::Params video_params_high; | 741 VideoQualityTest::Params video_params_high; |
749 video_params_high.video = kSimulcastVp8VideoHigh; | 742 video_params_high.video = kSimulcastVp8VideoHigh; |
750 VideoQualityTest::Params video_params_medium; | 743 VideoQualityTest::Params video_params_medium; |
751 video_params_medium.video = kSimulcastVp8VideoMedium; | 744 video_params_medium.video = kSimulcastVp8VideoMedium; |
752 VideoQualityTest::Params video_params_low; | 745 VideoQualityTest::Params video_params_low; |
753 video_params_low.video = kSimulcastVp8VideoLow; | 746 video_params_low.video = kSimulcastVp8VideoLow; |
754 | 747 |
755 std::vector<VideoStream> streams = {DefaultVideoStream(video_params_low), | 748 std::vector<VideoStream> streams = {DefaultVideoStream(video_params_low), |
756 DefaultVideoStream(video_params_medium), | 749 DefaultVideoStream(video_params_medium), |
757 DefaultVideoStream(video_params_high)}; | 750 DefaultVideoStream(video_params_high)}; |
758 large_room.num_thumbnails = 50; | 751 large_room.call.num_thumbnails = 50; |
759 large_room.ss = {streams, 2, 1, 0, std::vector<SpatialLayer>(), false}; | 752 large_room.ss = {streams, 2, 1, 0, std::vector<SpatialLayer>(), false}; |
760 RunTest(large_room); | 753 RunTest(large_room); |
761 } | 754 } |
762 | 755 |
763 | 756 |
764 } // namespace webrtc | 757 } // namespace webrtc |
OLD | NEW |