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> |
11 | 11 |
12 #include "testing/gtest/include/gtest/gtest.h" | 12 #include "testing/gtest/include/gtest/gtest.h" |
13 #include "webrtc/video/video_quality_test.h" | 13 #include "webrtc/video/video_quality_test.h" |
14 | 14 |
15 namespace webrtc { | 15 namespace webrtc { |
16 | 16 |
17 static const int kFullStackTestDurationSecs = 60; | 17 static const int kFullStackTestDurationSecs = 60; |
18 | 18 |
19 class FullStackTest : public VideoQualityTest { | 19 class FullStackTest : public VideoQualityTest { |
20 public: | 20 public: |
21 void RunTest(const VideoQualityTest::Params ¶ms) { | 21 void RunTest(const VideoQualityTest::Params ¶ms) { |
22 RunWithAnalyzer(params); | 22 RunWithAnalyzer(params); |
23 } | 23 } |
24 | |
25 void ParisQcifWithoutPacketLoss(std::string video_codec) { | |
26 VideoQualityTest::Params paris_qcif = { | |
27 {176, 144, 30, 300000, 300000, 300000, video_codec, 1}, | |
28 {"paris_qcif"}, | |
29 {}, | |
30 {"net_delay_0_0_plr_0_" + video_codec, 36.0, 0.96, | |
31 kFullStackTestDurationSecs}}; | |
32 RunTest(paris_qcif); | |
33 } | |
34 | |
35 void ForemanCifWithoutPacketLoss(std::string video_codec) { | |
36 // TODO(pbos): Decide on psnr/ssim thresholds for foreman_cif. | |
37 VideoQualityTest::Params foreman_cif = { | |
38 {352, 288, 30, 700000, 700000, 700000, video_codec, 1}, | |
39 {"foreman_cif"}, | |
40 {}, | |
41 {"foreman_cif_net_delay_0_0_plr_0_" + video_codec, 0.0, 0.0, | |
42 kFullStackTestDurationSecs}}; | |
43 RunTest(foreman_cif); | |
44 } | |
45 | |
46 void ForemanCifPlr5(std::string video_codec) { | |
pbos-webrtc
2016/02/12 10:47:56
const std::string& here and elsewhere
åsapersson
2016/02/12 10:52:56
Done.
| |
47 VideoQualityTest::Params foreman_cif = { | |
48 {352, 288, 30, 30000, 500000, 2000000, video_codec, 1}, | |
49 {"foreman_cif"}, | |
50 {}, | |
51 {"foreman_cif_delay_50_0_plr_5_" + video_codec, 0.0, 0.0, | |
52 kFullStackTestDurationSecs}}; | |
53 foreman_cif.pipe.loss_percent = 5; | |
54 foreman_cif.pipe.queue_delay_ms = 50; | |
55 RunTest(foreman_cif); | |
56 } | |
57 | |
58 void ForemanCif500kbps(std::string video_codec) { | |
59 VideoQualityTest::Params foreman_cif = { | |
60 {352, 288, 30, 30000, 500000, 2000000, video_codec, 1}, | |
61 {"foreman_cif"}, | |
62 {}, | |
63 {"foreman_cif_500kbps_" + video_codec, 0.0, 0.0, | |
64 kFullStackTestDurationSecs}}; | |
65 foreman_cif.pipe.queue_length_packets = 0; | |
66 foreman_cif.pipe.queue_delay_ms = 0; | |
67 foreman_cif.pipe.link_capacity_kbps = 500; | |
68 RunTest(foreman_cif); | |
69 } | |
70 | |
71 void ForemanCif500kbpsLimitedQueue(std::string video_codec) { | |
72 VideoQualityTest::Params foreman_cif = { | |
73 {352, 288, 30, 30000, 500000, 2000000, video_codec, 1}, | |
74 {"foreman_cif"}, | |
75 {}, | |
76 {"foreman_cif_500kbps_32pkts_queue_" + video_codec, 0.0, 0.0, | |
77 kFullStackTestDurationSecs}}; | |
78 foreman_cif.pipe.queue_length_packets = 32; | |
79 foreman_cif.pipe.queue_delay_ms = 0; | |
80 foreman_cif.pipe.link_capacity_kbps = 500; | |
81 RunTest(foreman_cif); | |
82 } | |
83 | |
84 void ForemanCif500kbps100ms(std::string video_codec) { | |
85 VideoQualityTest::Params foreman_cif = { | |
86 {352, 288, 30, 30000, 500000, 2000000, video_codec, 1}, | |
87 {"foreman_cif"}, | |
88 {}, | |
89 {"foreman_cif_500kbps_100ms_" + video_codec, 0.0, 0.0, | |
90 kFullStackTestDurationSecs}}; | |
91 foreman_cif.pipe.queue_length_packets = 0; | |
92 foreman_cif.pipe.queue_delay_ms = 100; | |
93 foreman_cif.pipe.link_capacity_kbps = 500; | |
94 RunTest(foreman_cif); | |
95 } | |
96 | |
97 void ForemanCif500kbps100msLimitedQueue(std::string video_codec) { | |
98 VideoQualityTest::Params foreman_cif = { | |
99 {352, 288, 30, 30000, 500000, 2000000, video_codec, 1}, | |
100 {"foreman_cif"}, | |
101 {}, | |
102 {"foreman_cif_500kbps_100ms_32pkts_queue_" + video_codec, 0.0, 0.0, | |
103 kFullStackTestDurationSecs}}; | |
104 foreman_cif.pipe.queue_length_packets = 32; | |
105 foreman_cif.pipe.queue_delay_ms = 100; | |
106 foreman_cif.pipe.link_capacity_kbps = 500; | |
107 RunTest(foreman_cif); | |
108 } | |
109 | |
110 void ForemanCif1000kbps100msLimitedQueue(std::string video_codec) { | |
111 VideoQualityTest::Params foreman_cif = { | |
112 {352, 288, 30, 30000, 2000000, 2000000, video_codec, 1}, | |
113 {"foreman_cif"}, | |
114 {}, | |
115 {"foreman_cif_1000kbps_100ms_32pkts_queue_" + video_codec, 0.0, 0.0, | |
116 kFullStackTestDurationSecs}}; | |
117 foreman_cif.pipe.queue_length_packets = 32; | |
118 foreman_cif.pipe.queue_delay_ms = 100; | |
119 foreman_cif.pipe.link_capacity_kbps = 1000; | |
120 RunTest(foreman_cif); | |
121 } | |
24 }; | 122 }; |
25 | 123 |
26 // VideoQualityTest::Params params = { | 124 // VideoQualityTest::Params params = { |
27 // { ... }, // Common. | 125 // { ... }, // Common. |
28 // { ... }, // Video-specific settings. | 126 // { ... }, // Video-specific settings. |
29 // { ... }, // Screenshare-specific settings. | 127 // { ... }, // Screenshare-specific settings. |
30 // { ... }, // Analyzer settings. | 128 // { ... }, // Analyzer settings. |
31 // pipe, // FakeNetworkPipe::Config | 129 // pipe, // FakeNetworkPipe::Config |
32 // { ... }, // Spatial scalability. | 130 // { ... }, // Spatial scalability. |
33 // logs // bool | 131 // logs // bool |
34 // }; | 132 // }; |
35 | 133 |
134 // Tests below now runs for both VP8 and VP9 with | |
135 // graph title: 'graph_title_VP8', 'graph_title_VP9'. | |
136 // TODO(asapersson): Keep tests below running VP8 (which do not have the codec | |
137 // name in the title ('graph_title')) until new tests have been running for some | |
138 // time. | |
36 TEST_F(FullStackTest, ParisQcifWithoutPacketLoss) { | 139 TEST_F(FullStackTest, ParisQcifWithoutPacketLoss) { |
37 VideoQualityTest::Params paris_qcif = { | 140 VideoQualityTest::Params paris_qcif = { |
38 {176, 144, 30, 300000, 300000, 300000, "VP8", 1}, | 141 {176, 144, 30, 300000, 300000, 300000, "VP8", 1}, |
39 {"paris_qcif"}, | 142 {"paris_qcif"}, |
40 {}, | 143 {}, |
41 {"net_delay_0_0_plr_0", 36.0, 0.96, kFullStackTestDurationSecs}}; | 144 {"net_delay_0_0_plr_0", 36.0, 0.96, kFullStackTestDurationSecs}}; |
42 RunTest(paris_qcif); | 145 RunTest(paris_qcif); |
43 } | 146 } |
44 | 147 |
45 TEST_F(FullStackTest, ForemanCifWithoutPacketLoss) { | 148 TEST_F(FullStackTest, ForemanCifWithoutPacketLoss) { |
(...skipping 74 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
120 {"foreman_cif"}, | 223 {"foreman_cif"}, |
121 {}, | 224 {}, |
122 {"foreman_cif_1000kbps_100ms_32pkts_queue", 0.0, 0.0, | 225 {"foreman_cif_1000kbps_100ms_32pkts_queue", 0.0, 0.0, |
123 kFullStackTestDurationSecs}}; | 226 kFullStackTestDurationSecs}}; |
124 foreman_cif.pipe.queue_length_packets = 32; | 227 foreman_cif.pipe.queue_length_packets = 32; |
125 foreman_cif.pipe.queue_delay_ms = 100; | 228 foreman_cif.pipe.queue_delay_ms = 100; |
126 foreman_cif.pipe.link_capacity_kbps = 1000; | 229 foreman_cif.pipe.link_capacity_kbps = 1000; |
127 RunTest(foreman_cif); | 230 RunTest(foreman_cif); |
128 } | 231 } |
129 | 232 |
233 TEST_F(FullStackTest, ParisQcifWithoutPacketLossVp8) { | |
234 ParisQcifWithoutPacketLoss("VP8"); | |
235 } | |
236 | |
237 TEST_F(FullStackTest, ParisQcifWithoutPacketLossVp9) { | |
238 ParisQcifWithoutPacketLoss("VP9"); | |
239 } | |
240 | |
241 TEST_F(FullStackTest, ForemanCifWithoutPacketLossVp8) { | |
242 ForemanCifWithoutPacketLoss("VP8"); | |
243 } | |
244 | |
245 TEST_F(FullStackTest, ForemanCifWithoutPacketLossVp9) { | |
246 ForemanCifWithoutPacketLoss("VP9"); | |
247 } | |
248 | |
249 TEST_F(FullStackTest, ForemanCifPlr5Vp8) { | |
250 ForemanCifPlr5("VP8"); | |
251 } | |
252 | |
253 TEST_F(FullStackTest, ForemanCifPlr5Vp9) { | |
254 ForemanCifPlr5("VP9"); | |
255 } | |
256 | |
257 TEST_F(FullStackTest, ForemanCif500kbpsVp8) { | |
258 ForemanCif500kbps("VP8"); | |
259 } | |
260 | |
261 TEST_F(FullStackTest, ForemanCif500kbpsVp9) { | |
262 ForemanCif500kbps("VP9"); | |
263 } | |
264 | |
265 TEST_F(FullStackTest, ForemanCif500kbpsLimitedQueueVp8) { | |
266 ForemanCif500kbpsLimitedQueue("VP8"); | |
267 } | |
268 | |
269 TEST_F(FullStackTest, ForemanCif500kbpsLimitedQueueVp9) { | |
270 ForemanCif500kbpsLimitedQueue("VP9"); | |
271 } | |
272 | |
273 TEST_F(FullStackTest, ForemanCif500kbps100msVp8) { | |
274 ForemanCif500kbps100ms("VP8"); | |
275 } | |
276 | |
277 TEST_F(FullStackTest, ForemanCif500kbps100msVp9) { | |
278 ForemanCif500kbps100ms("VP9"); | |
279 } | |
280 | |
281 TEST_F(FullStackTest, ForemanCif500kbps100msLimitedQueueVp8) { | |
282 ForemanCif500kbps100msLimitedQueue("VP8"); | |
283 } | |
284 | |
285 TEST_F(FullStackTest, ForemanCif500kbps100msLimitedQueueVp9) { | |
286 ForemanCif500kbps100msLimitedQueue("VP9"); | |
287 } | |
288 | |
289 TEST_F(FullStackTest, ForemanCif1000kbps100msLimitedQueueVp8) { | |
290 ForemanCif1000kbps100msLimitedQueue("VP8"); | |
291 } | |
292 | |
293 TEST_F(FullStackTest, ForemanCif1000kbps100msLimitedQueueVp9) { | |
294 ForemanCif1000kbps100msLimitedQueue("VP9"); | |
295 } | |
296 | |
130 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL) { | 297 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL) { |
131 VideoQualityTest::Params screenshare = { | 298 VideoQualityTest::Params screenshare = { |
132 {1850, 1110, 5, 50000, 200000, 2000000, "VP8", 2, 1, 400000}, | 299 {1850, 1110, 5, 50000, 200000, 2000000, "VP8", 2, 1, 400000}, |
133 {}, | 300 {}, |
134 {true, 10}, | 301 {true, 10}, |
135 {"screenshare_slides", 0.0, 0.0, kFullStackTestDurationSecs}}; | 302 {"screenshare_slides", 0.0, 0.0, kFullStackTestDurationSecs}}; |
136 RunTest(screenshare); | 303 RunTest(screenshare); |
137 } | 304 } |
138 | 305 |
139 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_Scroll) { | 306 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_Scroll) { |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
174 {1850, 1110, 5, 50000, 200000, 2000000, "VP9", 1, 0, 400000}, | 341 {1850, 1110, 5, 50000, 200000, 2000000, "VP9", 1, 0, 400000}, |
175 {}, | 342 {}, |
176 {true, 10}, | 343 {true, 10}, |
177 {"screenshare_slides_vp9_2sl", 0.0, 0.0, kFullStackTestDurationSecs}, | 344 {"screenshare_slides_vp9_2sl", 0.0, 0.0, kFullStackTestDurationSecs}, |
178 {}, | 345 {}, |
179 false, | 346 false, |
180 {std::vector<VideoStream>(), 0, 2, 1}}; | 347 {std::vector<VideoStream>(), 0, 2, 1}}; |
181 RunTest(screenshare); | 348 RunTest(screenshare); |
182 } | 349 } |
183 } // namespace webrtc | 350 } // namespace webrtc |
OLD | NEW |