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 }; | 24 }; |
25 | 25 |
26 | 26 |
27 TEST_F(FullStackTest, ParisQcifWithoutPacketLoss) { | 27 // TEST_F(FullStackTest, ParisQcifWithoutPacketLoss) { |
28 VideoQualityTest::Params paris_qcif = { | 28 // VideoQualityTest::Params paris_qcif = { |
29 {176, 144, 30, 300000, 300000, 300000, "VP8", 1}, | 29 // {176, 144, 30, 300000, 300000, 300000, "VP8", 1}, |
30 {"paris_qcif"}, | 30 // {"paris_qcif"}, |
31 {}, | 31 // {}, |
32 {"net_delay_0_0_plr_0", 36.0, 0.96, kFullStackTestDurationSecs}}; | 32 // {"net_delay_0_0_plr_0", 36.0, 0.96, kFullStackTestDurationSecs}}; |
33 RunTest(paris_qcif); | 33 // RunTest(paris_qcif); |
| 34 // } |
| 35 // |
| 36 // TEST_F(FullStackTest, ForemanCifWithoutPacketLoss) { |
| 37 // // TODO(pbos): Decide on psnr/ssim thresholds for foreman_cif. |
| 38 // VideoQualityTest::Params foreman_cif = { |
| 39 // {352, 288, 30, 700000, 700000, 700000, "VP8", 1}, |
| 40 // {"foreman_cif"}, |
| 41 // {}, |
| 42 // {"foreman_cif_net_delay_0_0_plr_0", 0.0, 0.0, kFullStackTestDurationSec
s} |
| 43 // }; |
| 44 // RunTest(foreman_cif); |
| 45 // } |
| 46 // |
| 47 // TEST_F(FullStackTest, ForemanCifPlr5) { |
| 48 // VideoQualityTest::Params foreman_cif = { |
| 49 // {352, 288, 30, 30000, 500000, 2000000, "VP8", 1}, |
| 50 // {"foreman_cif"}, |
| 51 // {}, |
| 52 // {"foreman_cif_delay_50_0_plr_5", 0.0, 0.0, kFullStackTestDurationSecs}}
; |
| 53 // foreman_cif.pipe.loss_percent = 5; |
| 54 // foreman_cif.pipe.queue_delay_ms = 50; |
| 55 // RunTest(foreman_cif); |
| 56 // } |
| 57 // |
| 58 // TEST_F(FullStackTest, ForemanCif500kbps) { |
| 59 // VideoQualityTest::Params foreman_cif = { |
| 60 // {352, 288, 30, 30000, 500000, 2000000, "VP8", 1}, |
| 61 // {"foreman_cif"}, |
| 62 // {}, |
| 63 // {"foreman_cif_500kbps", 0.0, 0.0, kFullStackTestDurationSecs}}; |
| 64 // foreman_cif.pipe.queue_length_packets = 0; |
| 65 // foreman_cif.pipe.queue_delay_ms = 0; |
| 66 // foreman_cif.pipe.link_capacity_kbps = 500; |
| 67 // RunTest(foreman_cif); |
| 68 // } |
| 69 // |
| 70 // TEST_F(FullStackTest, ForemanCif500kbpsLimitedQueue) { |
| 71 // VideoQualityTest::Params foreman_cif = { |
| 72 // {352, 288, 30, 30000, 500000, 2000000, "VP8", 1}, |
| 73 // {"foreman_cif"}, |
| 74 // {}, |
| 75 // {"foreman_cif_500kbps_32pkts_queue", 0.0, 0.0, kFullStackTestDurationSe
cs} |
| 76 // }; |
| 77 // foreman_cif.pipe.queue_length_packets = 32; |
| 78 // foreman_cif.pipe.queue_delay_ms = 0; |
| 79 // foreman_cif.pipe.link_capacity_kbps = 500; |
| 80 // RunTest(foreman_cif); |
| 81 // } |
| 82 // |
| 83 // TEST_F(FullStackTest, ForemanCif500kbps100ms) { |
| 84 // VideoQualityTest::Params foreman_cif = { |
| 85 // {352, 288, 30, 30000, 500000, 2000000, "VP8", 1}, |
| 86 // {"foreman_cif"}, |
| 87 // {}, |
| 88 // {"foreman_cif_500kbps_100ms", 0.0, 0.0, kFullStackTestDurationSecs}}; |
| 89 // foreman_cif.pipe.queue_length_packets = 0; |
| 90 // foreman_cif.pipe.queue_delay_ms = 100; |
| 91 // foreman_cif.pipe.link_capacity_kbps = 500; |
| 92 // RunTest(foreman_cif); |
| 93 // } |
| 94 // |
| 95 // TEST_F(FullStackTest, ForemanCif500kbps100msLimitedQueue) { |
| 96 // VideoQualityTest::Params foreman_cif = { |
| 97 // {352, 288, 30, 30000, 500000, 2000000, "VP8", 1}, |
| 98 // {"foreman_cif"}, |
| 99 // {}, |
| 100 // {"foreman_cif_500kbps_100ms_32pkts_queue", 0.0, 0.0, |
| 101 // kFullStackTestDurationSecs}}; |
| 102 // foreman_cif.pipe.queue_length_packets = 32; |
| 103 // foreman_cif.pipe.queue_delay_ms = 100; |
| 104 // foreman_cif.pipe.link_capacity_kbps = 500; |
| 105 // RunTest(foreman_cif); |
| 106 // } |
| 107 // |
| 108 // TEST_F(FullStackTest, ForemanCif1000kbps100msLimitedQueue) { |
| 109 // VideoQualityTest::Params foreman_cif = { |
| 110 // {352, 288, 30, 30000, 2000000, 2000000, "VP8", 1}, |
| 111 // {"foreman_cif"}, |
| 112 // {}, |
| 113 // {"foreman_cif_1000kbps_100ms_32pkts_queue", 0.0, 0.0, |
| 114 // kFullStackTestDurationSecs}}; |
| 115 // foreman_cif.pipe.queue_length_packets = 32; |
| 116 // foreman_cif.pipe.queue_delay_ms = 100; |
| 117 // foreman_cif.pipe.link_capacity_kbps = 1000; |
| 118 // RunTest(foreman_cif); |
| 119 // } |
| 120 // |
| 121 // // Temporarily disabled on Android due to low test timeouts. |
| 122 // // https://code.google.com/p/chromium/issues/detail?id=513170 |
| 123 // #include "webrtc/test/testsupport/gtest_disable.h" |
| 124 // TEST_F(FullStackTest, DISABLED_ON_ANDROID(ScreenshareSlidesVP8_2TL)) { |
| 125 // VideoQualityTest::Params screenshare = { |
| 126 // {1850, 1110, 5, 50000, 200000, 2000000, "VP8", 2, 400000}, |
| 127 // {}, // Video-specific. |
| 128 // {true, 10}, // Screenshare-specific. |
| 129 // {"screenshare_slides", 0.0, 0.0, kFullStackTestDurationSecs}}; |
| 130 // RunTest(screenshare); |
| 131 // } |
| 132 // |
| 133 // TEST_F(FullStackTest, DISABLED_ON_ANDROID(ScreenshareSlidesVP8_2TL_Scroll)) { |
| 134 // VideoQualityTest::Params config = { |
| 135 // {1850, 1110 / 2, 5, 50000, 200000, 2000000, "VP8", 2, 400000}, |
| 136 // {}, |
| 137 // {true, 10, 2}, |
| 138 // {"screenshare_slides_scrolling", 0.0, 0.0, kFullStackTestDurationSecs}}
; |
| 139 // RunTest(config); |
| 140 // } |
| 141 |
| 142 #define SCREENSHARE_VP8_2TL { \ |
| 143 VideoQualityTest::Params screenshare = { \ |
| 144 {1850, 1110, 5, 50000, 200000, 2000000, "VP8", 2, 400000}, \ |
| 145 {}, \ |
| 146 {true, 10}, \ |
| 147 {"screenshare_slides", 0.0, 0.0, kFullStackTestDurationSecs}}; \ |
| 148 RunTest(screenshare); \ |
34 } | 149 } |
35 | 150 |
36 TEST_F(FullStackTest, ForemanCifWithoutPacketLoss) { | 151 #define SCREENSHARE_VP9_2TL { \ |
37 // TODO(pbos): Decide on psnr/ssim thresholds for foreman_cif. | 152 VideoQualityTest::Params screenshare = { \ |
38 VideoQualityTest::Params foreman_cif = { | 153 {1850, 1110, 5, 50000, 200000, 2000000, "VP9", 2, 400000}, \ |
39 {352, 288, 30, 700000, 700000, 700000, "VP8", 1}, | 154 {}, \ |
40 {"foreman_cif"}, | 155 {true, 10}, \ |
41 {}, | 156 {"screenshare_slides_vp9_2tl", 0.0, 0.0, kFullStackTestDurationSecs}}; \ |
42 {"foreman_cif_net_delay_0_0_plr_0", 0.0, 0.0, kFullStackTestDurationSecs} | 157 RunTest(screenshare); \ |
43 }; | |
44 RunTest(foreman_cif); | |
45 } | 158 } |
46 | 159 |
47 TEST_F(FullStackTest, ForemanCifPlr5) { | 160 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_Master_0) SCREENSHARE_VP8_2TL; |
48 VideoQualityTest::Params foreman_cif = { | 161 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_Master_1) SCREENSHARE_VP8_2TL; |
49 {352, 288, 30, 30000, 500000, 2000000, "VP8", 1}, | 162 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_Master_2) SCREENSHARE_VP8_2TL; |
50 {"foreman_cif"}, | 163 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_Master_3) SCREENSHARE_VP8_2TL; |
51 {}, | 164 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_Master_4) SCREENSHARE_VP8_2TL; |
52 {"foreman_cif_delay_50_0_plr_5", 0.0, 0.0, kFullStackTestDurationSecs}}; | 165 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_Master_5) SCREENSHARE_VP8_2TL; |
53 foreman_cif.pipe.loss_percent = 5; | 166 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_Master_6) SCREENSHARE_VP8_2TL; |
54 foreman_cif.pipe.queue_delay_ms = 50; | 167 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_Master_7) SCREENSHARE_VP8_2TL; |
55 RunTest(foreman_cif); | 168 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_Master_8) SCREENSHARE_VP8_2TL; |
56 } | 169 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_Master_9) SCREENSHARE_VP8_2TL; |
57 | 170 |
58 TEST_F(FullStackTest, ForemanCif500kbps) { | |
59 VideoQualityTest::Params foreman_cif = { | |
60 {352, 288, 30, 30000, 500000, 2000000, "VP8", 1}, | |
61 {"foreman_cif"}, | |
62 {}, | |
63 {"foreman_cif_500kbps", 0.0, 0.0, kFullStackTestDurationSecs}}; | |
64 foreman_cif.pipe.queue_length_packets = 0; | |
65 foreman_cif.pipe.queue_delay_ms = 0; | |
66 foreman_cif.pipe.link_capacity_kbps = 500; | |
67 RunTest(foreman_cif); | |
68 } | |
69 | |
70 TEST_F(FullStackTest, ForemanCif500kbpsLimitedQueue) { | |
71 VideoQualityTest::Params foreman_cif = { | |
72 {352, 288, 30, 30000, 500000, 2000000, "VP8", 1}, | |
73 {"foreman_cif"}, | |
74 {}, | |
75 {"foreman_cif_500kbps_32pkts_queue", 0.0, 0.0, kFullStackTestDurationSecs} | |
76 }; | |
77 foreman_cif.pipe.queue_length_packets = 32; | |
78 foreman_cif.pipe.queue_delay_ms = 0; | |
79 foreman_cif.pipe.link_capacity_kbps = 500; | |
80 RunTest(foreman_cif); | |
81 } | |
82 | |
83 TEST_F(FullStackTest, ForemanCif500kbps100ms) { | |
84 VideoQualityTest::Params foreman_cif = { | |
85 {352, 288, 30, 30000, 500000, 2000000, "VP8", 1}, | |
86 {"foreman_cif"}, | |
87 {}, | |
88 {"foreman_cif_500kbps_100ms", 0.0, 0.0, kFullStackTestDurationSecs}}; | |
89 foreman_cif.pipe.queue_length_packets = 0; | |
90 foreman_cif.pipe.queue_delay_ms = 100; | |
91 foreman_cif.pipe.link_capacity_kbps = 500; | |
92 RunTest(foreman_cif); | |
93 } | |
94 | |
95 TEST_F(FullStackTest, ForemanCif500kbps100msLimitedQueue) { | |
96 VideoQualityTest::Params foreman_cif = { | |
97 {352, 288, 30, 30000, 500000, 2000000, "VP8", 1}, | |
98 {"foreman_cif"}, | |
99 {}, | |
100 {"foreman_cif_500kbps_100ms_32pkts_queue", 0.0, 0.0, | |
101 kFullStackTestDurationSecs}}; | |
102 foreman_cif.pipe.queue_length_packets = 32; | |
103 foreman_cif.pipe.queue_delay_ms = 100; | |
104 foreman_cif.pipe.link_capacity_kbps = 500; | |
105 RunTest(foreman_cif); | |
106 } | |
107 | |
108 TEST_F(FullStackTest, ForemanCif1000kbps100msLimitedQueue) { | |
109 VideoQualityTest::Params foreman_cif = { | |
110 {352, 288, 30, 30000, 2000000, 2000000, "VP8", 1}, | |
111 {"foreman_cif"}, | |
112 {}, | |
113 {"foreman_cif_1000kbps_100ms_32pkts_queue", 0.0, 0.0, | |
114 kFullStackTestDurationSecs}}; | |
115 foreman_cif.pipe.queue_length_packets = 32; | |
116 foreman_cif.pipe.queue_delay_ms = 100; | |
117 foreman_cif.pipe.link_capacity_kbps = 1000; | |
118 RunTest(foreman_cif); | |
119 } | |
120 | |
121 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL) { | |
122 VideoQualityTest::Params screenshare = { | |
123 {1850, 1110, 5, 50000, 200000, 2000000, "VP8", 2, 400000}, | |
124 {}, // Video-specific. | |
125 {true, 10}, // Screenshare-specific. | |
126 {"screenshare_slides", 0.0, 0.0, kFullStackTestDurationSecs}}; | |
127 RunTest(screenshare); | |
128 } | |
129 | |
130 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_Scroll) { | |
131 VideoQualityTest::Params config = { | |
132 {1850, 1110 / 2, 5, 50000, 200000, 2000000, "VP8", 2, 400000}, | |
133 {}, | |
134 {true, 10, 2}, | |
135 {"screenshare_slides_scrolling", 0.0, 0.0, kFullStackTestDurationSecs}}; | |
136 RunTest(config); | |
137 } | |
138 | |
139 TEST_F(FullStackTest, ScreenshareSlidesVP9_2TL) { | |
140 VideoQualityTest::Params screenshare = { | |
141 {1850, 1110, 5, 50000, 200000, 2000000, "VP9", 2, 400000}, | |
142 {}, | |
143 {true, 10}, | |
144 {"screenshare_slides_vp9_2tl", 0.0, 0.0, kFullStackTestDurationSecs}}; | |
145 RunTest(screenshare); | |
146 } | |
147 } // namespace webrtc | 171 } // namespace webrtc |
OLD | NEW |