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 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
61 ForemanCifWithoutPacketLoss("VP9"); | 61 ForemanCifWithoutPacketLoss("VP9"); |
62 } | 62 } |
63 | 63 |
64 TEST_F(FullStackTest, ForemanCifPlr5Vp9) { | 64 TEST_F(FullStackTest, ForemanCifPlr5Vp9) { |
65 ForemanCifPlr5("VP9"); | 65 ForemanCifPlr5("VP9"); |
66 } | 66 } |
67 #endif // !defined(RTC_DISABLE_VP9) | 67 #endif // !defined(RTC_DISABLE_VP9) |
68 | 68 |
69 TEST_F(FullStackTest, ParisQcifWithoutPacketLoss) { | 69 TEST_F(FullStackTest, ParisQcifWithoutPacketLoss) { |
70 VideoQualityTest::Params paris_qcif = { | 70 VideoQualityTest::Params paris_qcif = { |
71 {176, 144, 30, 300000, 300000, 300000, false, "VP8", 1}, | 71 {176, 144, 30, 300000, 300000, 300000, false, "VP8", 1, 0, 0, true}, |
72 {"paris_qcif"}, | 72 {"paris_qcif"}, |
73 {}, | 73 {}, |
74 {"net_delay_0_0_plr_0", 36.0, 0.96, kFullStackTestDurationSecs}}; | 74 {"net_delay_0_0_plr_0", 36.0, 0.96, kFullStackTestDurationSecs}}; |
75 RunTest(paris_qcif); | 75 RunTest(paris_qcif); |
76 } | 76 } |
77 | 77 |
78 TEST_F(FullStackTest, ForemanCifWithoutPacketLoss) { | 78 TEST_F(FullStackTest, ForemanCifWithoutPacketLoss) { |
79 // TODO(pbos): Decide on psnr/ssim thresholds for foreman_cif. | 79 // TODO(pbos): Decide on psnr/ssim thresholds for foreman_cif. |
80 VideoQualityTest::Params foreman_cif = { | 80 VideoQualityTest::Params foreman_cif = { |
81 {352, 288, 30, 700000, 700000, 700000, false, "VP8", 1}, | 81 {352, 288, 30, 700000, 700000, 700000, false, "VP8", 1, 0, 0, true}, |
82 {"foreman_cif"}, | 82 {"foreman_cif"}, |
83 {}, | 83 {}, |
84 {"foreman_cif_net_delay_0_0_plr_0", 0.0, 0.0, kFullStackTestDurationSecs} | 84 {"foreman_cif_net_delay_0_0_plr_0", 0.0, 0.0, |
85 }; | 85 kFullStackTestDurationSecs}}; |
86 RunTest(foreman_cif); | 86 RunTest(foreman_cif); |
87 } | 87 } |
88 | 88 |
89 TEST_F(FullStackTest, ForemanCifPlr5) { | 89 TEST_F(FullStackTest, ForemanCifPlr5) { |
90 VideoQualityTest::Params foreman_cif = { | 90 VideoQualityTest::Params foreman_cif = { |
91 {352, 288, 30, 30000, 500000, 2000000, false, "VP8", 1}, | 91 {352, 288, 30, 30000, 500000, 2000000, false, "VP8", 1, 0, 0, true}, |
92 {"foreman_cif"}, | 92 {"foreman_cif"}, |
93 {}, | 93 {}, |
94 {"foreman_cif_delay_50_0_plr_5", 0.0, 0.0, kFullStackTestDurationSecs}}; | 94 {"foreman_cif_delay_50_0_plr_5", 0.0, 0.0, kFullStackTestDurationSecs}}; |
95 foreman_cif.pipe.loss_percent = 5; | 95 foreman_cif.pipe.loss_percent = 5; |
96 foreman_cif.pipe.queue_delay_ms = 50; | 96 foreman_cif.pipe.queue_delay_ms = 50; |
97 RunTest(foreman_cif); | 97 RunTest(foreman_cif); |
98 } | 98 } |
99 | 99 |
100 TEST_F(FullStackTest, ForemanCif500kbps) { | 100 TEST_F(FullStackTest, ForemanCif500kbps) { |
101 VideoQualityTest::Params foreman_cif = { | 101 VideoQualityTest::Params foreman_cif = { |
102 {352, 288, 30, 30000, 500000, 2000000, false, "VP8", 1}, | 102 {352, 288, 30, 30000, 500000, 2000000, false, "VP8", 1, 0, 0, true}, |
103 {"foreman_cif"}, | 103 {"foreman_cif"}, |
104 {}, | 104 {}, |
105 {"foreman_cif_500kbps", 0.0, 0.0, kFullStackTestDurationSecs}}; | 105 {"foreman_cif_500kbps", 0.0, 0.0, kFullStackTestDurationSecs}}; |
106 foreman_cif.pipe.queue_length_packets = 0; | 106 foreman_cif.pipe.queue_length_packets = 0; |
107 foreman_cif.pipe.queue_delay_ms = 0; | 107 foreman_cif.pipe.queue_delay_ms = 0; |
108 foreman_cif.pipe.link_capacity_kbps = 500; | 108 foreman_cif.pipe.link_capacity_kbps = 500; |
109 RunTest(foreman_cif); | 109 RunTest(foreman_cif); |
110 } | 110 } |
111 | 111 |
112 TEST_F(FullStackTest, ForemanCif500kbpsLimitedQueue) { | 112 TEST_F(FullStackTest, ForemanCif500kbpsLimitedQueue) { |
113 VideoQualityTest::Params foreman_cif = { | 113 VideoQualityTest::Params foreman_cif = { |
114 {352, 288, 30, 30000, 500000, 2000000, false, "VP8", 1}, | 114 {352, 288, 30, 30000, 500000, 2000000, false, "VP8", 1, 0, 0, true}, |
115 {"foreman_cif"}, | 115 {"foreman_cif"}, |
116 {}, | 116 {}, |
117 {"foreman_cif_500kbps_32pkts_queue", 0.0, 0.0, kFullStackTestDurationSecs} | 117 {"foreman_cif_500kbps_32pkts_queue", 0.0, 0.0, |
118 }; | 118 kFullStackTestDurationSecs}}; |
119 foreman_cif.pipe.queue_length_packets = 32; | 119 foreman_cif.pipe.queue_length_packets = 32; |
120 foreman_cif.pipe.queue_delay_ms = 0; | 120 foreman_cif.pipe.queue_delay_ms = 0; |
121 foreman_cif.pipe.link_capacity_kbps = 500; | 121 foreman_cif.pipe.link_capacity_kbps = 500; |
122 RunTest(foreman_cif); | 122 RunTest(foreman_cif); |
123 } | 123 } |
124 | 124 |
125 TEST_F(FullStackTest, ForemanCif500kbps100ms) { | 125 TEST_F(FullStackTest, ForemanCif500kbps100ms) { |
126 VideoQualityTest::Params foreman_cif = { | 126 VideoQualityTest::Params foreman_cif = { |
127 {352, 288, 30, 30000, 500000, 2000000, false, "VP8", 1}, | 127 {352, 288, 30, 30000, 500000, 2000000, false, "VP8", 1, 0, 0, true}, |
128 {"foreman_cif"}, | 128 {"foreman_cif"}, |
129 {}, | 129 {}, |
130 {"foreman_cif_500kbps_100ms", 0.0, 0.0, kFullStackTestDurationSecs}}; | 130 {"foreman_cif_500kbps_100ms", 0.0, 0.0, kFullStackTestDurationSecs}}; |
131 foreman_cif.pipe.queue_length_packets = 0; | 131 foreman_cif.pipe.queue_length_packets = 0; |
132 foreman_cif.pipe.queue_delay_ms = 100; | 132 foreman_cif.pipe.queue_delay_ms = 100; |
133 foreman_cif.pipe.link_capacity_kbps = 500; | 133 foreman_cif.pipe.link_capacity_kbps = 500; |
134 RunTest(foreman_cif); | 134 RunTest(foreman_cif); |
135 } | 135 } |
136 | 136 |
137 TEST_F(FullStackTest, ForemanCif500kbps100msLimitedQueue) { | 137 TEST_F(FullStackTest, ForemanCif500kbps100msLimitedQueue) { |
138 VideoQualityTest::Params foreman_cif = { | 138 VideoQualityTest::Params foreman_cif = { |
139 {352, 288, 30, 30000, 500000, 2000000, false, "VP8", 1}, | 139 {352, 288, 30, 30000, 500000, 2000000, false, "VP8", 1, 0, 0, true}, |
140 {"foreman_cif"}, | 140 {"foreman_cif"}, |
141 {}, | 141 {}, |
142 {"foreman_cif_500kbps_100ms_32pkts_queue", 0.0, 0.0, | 142 {"foreman_cif_500kbps_100ms_32pkts_queue", 0.0, 0.0, |
143 kFullStackTestDurationSecs}}; | 143 kFullStackTestDurationSecs}}; |
144 foreman_cif.pipe.queue_length_packets = 32; | 144 foreman_cif.pipe.queue_length_packets = 32; |
145 foreman_cif.pipe.queue_delay_ms = 100; | 145 foreman_cif.pipe.queue_delay_ms = 100; |
146 foreman_cif.pipe.link_capacity_kbps = 500; | 146 foreman_cif.pipe.link_capacity_kbps = 500; |
147 RunTest(foreman_cif); | 147 RunTest(foreman_cif); |
148 } | 148 } |
149 | 149 |
150 TEST_F(FullStackTest, ForemanCif1000kbps100msLimitedQueue) { | 150 TEST_F(FullStackTest, ForemanCif1000kbps100msLimitedQueue) { |
151 VideoQualityTest::Params foreman_cif = { | 151 VideoQualityTest::Params foreman_cif = { |
152 {352, 288, 30, 30000, 2000000, 2000000, false, "VP8", 1}, | 152 {352, 288, 30, 30000, 2000000, 2000000, false, "VP8", 1, 0, 0, true}, |
153 {"foreman_cif"}, | 153 {"foreman_cif"}, |
154 {}, | 154 {}, |
155 {"foreman_cif_1000kbps_100ms_32pkts_queue", 0.0, 0.0, | 155 {"foreman_cif_1000kbps_100ms_32pkts_queue", 0.0, 0.0, |
156 kFullStackTestDurationSecs}}; | 156 kFullStackTestDurationSecs}}; |
157 foreman_cif.pipe.queue_length_packets = 32; | 157 foreman_cif.pipe.queue_length_packets = 32; |
158 foreman_cif.pipe.queue_delay_ms = 100; | 158 foreman_cif.pipe.queue_delay_ms = 100; |
159 foreman_cif.pipe.link_capacity_kbps = 1000; | 159 foreman_cif.pipe.link_capacity_kbps = 1000; |
160 RunTest(foreman_cif); | 160 RunTest(foreman_cif); |
161 } | 161 } |
162 | 162 |
| 163 TEST_F(FullStackTest, ConferenceMotionHd2000kbps100msLimitedQueue) { |
| 164 VideoQualityTest::Params conf_motion_hd = { |
| 165 {1280, 720, 50, 30000, 3000000, 3000000, false, "VP8", 1, 0, 0, true}, |
| 166 {"ConferenceMotion_1280_720_50"}, |
| 167 {}, |
| 168 {"conference_motion_hd_2000kbps_100ms_32pkts_queue", 0.0, 0.0, |
| 169 kFullStackTestDurationSecs}}; |
| 170 conf_motion_hd.pipe.queue_length_packets = 32; |
| 171 conf_motion_hd.pipe.queue_delay_ms = 100; |
| 172 conf_motion_hd.pipe.link_capacity_kbps = 2000; |
| 173 RunTest(conf_motion_hd); |
| 174 } |
| 175 |
163 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL) { | 176 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL) { |
164 VideoQualityTest::Params screenshare = { | 177 VideoQualityTest::Params screenshare = { |
165 {1850, 1110, 5, 50000, 200000, 2000000, false, "VP8", 2, 1, 400000}, | 178 {1850, 1110, 5, 50000, 200000, 2000000, false, "VP8", 2, 1, 400000, true}, |
166 {}, | 179 {}, |
167 {true, 10}, | 180 {true, 10}, |
168 {"screenshare_slides", 0.0, 0.0, kFullStackTestDurationSecs}}; | 181 {"screenshare_slides", 0.0, 0.0, kFullStackTestDurationSecs}}; |
169 RunTest(screenshare); | 182 RunTest(screenshare); |
170 } | 183 } |
171 | 184 |
172 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_Scroll) { | 185 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_Scroll) { |
173 VideoQualityTest::Params config = { | 186 VideoQualityTest::Params config = { |
174 {1850, 1110 / 2, 5, 50000, 200000, 2000000, false, "VP8", 2, 1, 400000}, | 187 {1850, 1110 / 2, 5, 50000, 200000, 2000000, false, "VP8", 2, 1, 400000, |
| 188 true}, |
175 {}, | 189 {}, |
176 {true, 10, 2}, | 190 {true, 10, 2}, |
177 {"screenshare_slides_scrolling", 0.0, 0.0, kFullStackTestDurationSecs}}; | 191 {"screenshare_slides_scrolling", 0.0, 0.0, kFullStackTestDurationSecs}}; |
178 RunTest(config); | 192 RunTest(config); |
179 } | 193 } |
180 | 194 |
181 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_LossyNet) { | 195 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_LossyNet) { |
182 VideoQualityTest::Params screenshare = { | 196 VideoQualityTest::Params screenshare = { |
183 {1850, 1110, 5, 50000, 200000, 2000000, false, "VP8", 2, 1, 400000}, | 197 {1850, 1110, 5, 50000, 200000, 2000000, false, "VP8", 2, 1, 400000, true}, |
184 {}, // Video-specific. | 198 {}, // Video-specific. |
185 {true, 10}, // Screenshare-specific. | 199 {true, 10}, // Screenshare-specific. |
186 {"screenshare_slides_lossy_net", 0.0, 0.0, kFullStackTestDurationSecs}}; | 200 {"screenshare_slides_lossy_net", 0.0, 0.0, kFullStackTestDurationSecs}}; |
187 screenshare.pipe.loss_percent = 5; | 201 screenshare.pipe.loss_percent = 5; |
188 screenshare.pipe.queue_delay_ms = 200; | 202 screenshare.pipe.queue_delay_ms = 200; |
189 screenshare.pipe.link_capacity_kbps = 500; | 203 screenshare.pipe.link_capacity_kbps = 500; |
190 RunTest(screenshare); | 204 RunTest(screenshare); |
191 } | 205 } |
192 | 206 |
193 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_VeryLossyNet) { | 207 TEST_F(FullStackTest, ScreenshareSlidesVP8_2TL_VeryLossyNet) { |
194 VideoQualityTest::Params screenshare = { | 208 VideoQualityTest::Params screenshare = { |
195 {1850, 1110, 5, 50000, 200000, 2000000, false, "VP8", 2, 1, 400000}, | 209 {1850, 1110, 5, 50000, 200000, 2000000, false, "VP8", 2, 1, 400000, true}, |
196 {}, // Video-specific. | 210 {}, // Video-specific. |
197 {true, 10}, // Screenshare-specific. | 211 {true, 10}, // Screenshare-specific. |
198 {"screenshare_slides_very_lossy", 0.0, 0.0, kFullStackTestDurationSecs}}; | 212 {"screenshare_slides_very_lossy", 0.0, 0.0, kFullStackTestDurationSecs}}; |
199 screenshare.pipe.loss_percent = 10; | 213 screenshare.pipe.loss_percent = 10; |
200 screenshare.pipe.queue_delay_ms = 200; | 214 screenshare.pipe.queue_delay_ms = 200; |
201 screenshare.pipe.link_capacity_kbps = 500; | 215 screenshare.pipe.link_capacity_kbps = 500; |
202 RunTest(screenshare); | 216 RunTest(screenshare); |
203 } | 217 } |
204 | 218 |
205 #if !defined(RTC_DISABLE_VP9) | 219 #if !defined(RTC_DISABLE_VP9) |
206 TEST_F(FullStackTest, ScreenshareSlidesVP9_2SL) { | 220 TEST_F(FullStackTest, ScreenshareSlidesVP9_2SL) { |
207 VideoQualityTest::Params screenshare = { | 221 VideoQualityTest::Params screenshare = { |
208 {1850, 1110, 5, 50000, 200000, 2000000, false, "VP9", 1, 0, 400000}, | 222 {1850, 1110, 5, 50000, 200000, 2000000, false, "VP9", 1, 0, 400000, true}, |
209 {}, | 223 {}, |
210 {true, 10}, | 224 {true, 10}, |
211 {"screenshare_slides_vp9_2sl", 0.0, 0.0, kFullStackTestDurationSecs}, | 225 {"screenshare_slides_vp9_2sl", 0.0, 0.0, kFullStackTestDurationSecs}, |
212 {}, | 226 {}, |
213 false, | 227 false, |
214 {std::vector<VideoStream>(), 0, 2, 1}}; | 228 {std::vector<VideoStream>(), 0, 2, 1}}; |
215 RunTest(screenshare); | 229 RunTest(screenshare); |
216 } | 230 } |
217 #endif // !defined(RTC_DISABLE_VP9) | 231 #endif // !defined(RTC_DISABLE_VP9) |
218 } // namespace webrtc | 232 } // namespace webrtc |
OLD | NEW |