Chromium Code Reviews| 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 |