Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(513)

Side by Side Diff: modules/video_coding/codecs/test/videoprocessor_integrationtest_libvpx.cc

Issue 3011373002: Updating OpenH264 to v1.7.0 (Closed)
Patch Set: increasing frame size mismatch threshold Created 3 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (c) 2012 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2012 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 10
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
62 RateProfile rate_profile; 62 RateProfile rate_profile;
63 SetRateProfile(&rate_profile, 0, 500, 30, 0); 63 SetRateProfile(&rate_profile, 0, 500, 30, 0);
64 rate_profile.frame_index_rate_update[1] = kNumFramesShort + 1; 64 rate_profile.frame_index_rate_update[1] = kNumFramesShort + 1;
65 rate_profile.num_frames = kNumFramesShort; 65 rate_profile.num_frames = kNumFramesShort;
66 66
67 std::vector<RateControlThresholds> rc_thresholds; 67 std::vector<RateControlThresholds> rc_thresholds;
68 AddRateControlThresholds(0, 40, 20, 10, 20, 0, 1, &rc_thresholds); 68 AddRateControlThresholds(0, 40, 20, 10, 20, 0, 1, &rc_thresholds);
69 69
70 QualityThresholds quality_thresholds(37.0, 36.0, 0.93, 0.92); 70 QualityThresholds quality_thresholds(37.0, 36.0, 0.93, 0.92);
71 71
72 ProcessFramesAndMaybeVerify(rate_profile, &rc_thresholds, &quality_thresholds, 72 ProcessFramesAndMaybeVerify(rate_profile, &rc_thresholds,
73 kNoVisualizationParams); 73 &quality_thresholds, nullptr, kNoVisualizationParams);
74 } 74 }
75 75
76 // VP9: Run with 5% packet loss and fixed bitrate. Quality should be a bit 76 // VP9: Run with 5% packet loss and fixed bitrate. Quality should be a bit
77 // lower. One key frame (first frame only) in sequence. 77 // lower. One key frame (first frame only) in sequence.
78 TEST_F(VideoProcessorIntegrationTestLibvpx, Process5PercentPacketLossVP9) { 78 TEST_F(VideoProcessorIntegrationTestLibvpx, Process5PercentPacketLossVP9) {
79 config_.networking_config.packet_loss_probability = 0.05f; 79 config_.networking_config.packet_loss_probability = 0.05f;
80 SetCodecSettings(&config_, kVideoCodecVP9, 1, false, false, true, false, 80 SetCodecSettings(&config_, kVideoCodecVP9, 1, false, false, true, false,
81 kResilienceOn, kCifWidth, kCifHeight); 81 kResilienceOn, kCifWidth, kCifHeight);
82 82
83 RateProfile rate_profile; 83 RateProfile rate_profile;
84 SetRateProfile(&rate_profile, 0, 500, 30, 0); 84 SetRateProfile(&rate_profile, 0, 500, 30, 0);
85 rate_profile.frame_index_rate_update[1] = kNumFramesShort + 1; 85 rate_profile.frame_index_rate_update[1] = kNumFramesShort + 1;
86 rate_profile.num_frames = kNumFramesShort; 86 rate_profile.num_frames = kNumFramesShort;
87 87
88 std::vector<RateControlThresholds> rc_thresholds; 88 std::vector<RateControlThresholds> rc_thresholds;
89 AddRateControlThresholds(0, 40, 20, 10, 20, 0, 1, &rc_thresholds); 89 AddRateControlThresholds(0, 40, 20, 10, 20, 0, 1, &rc_thresholds);
90 90
91 QualityThresholds quality_thresholds(17.0, 14.0, 0.45, 0.36); 91 QualityThresholds quality_thresholds(17.0, 14.0, 0.45, 0.36);
92 92
93 ProcessFramesAndMaybeVerify(rate_profile, &rc_thresholds, &quality_thresholds, 93 ProcessFramesAndMaybeVerify(rate_profile, &rc_thresholds,
94 kNoVisualizationParams); 94 &quality_thresholds, nullptr, kNoVisualizationParams);
95 } 95 }
96 96
97 // VP9: Run with no packet loss, with varying bitrate (3 rate updates): 97 // VP9: Run with no packet loss, with varying bitrate (3 rate updates):
98 // low to high to medium. Check that quality and encoder response to the new 98 // low to high to medium. Check that quality and encoder response to the new
99 // target rate/per-frame bandwidth (for each rate update) is within limits. 99 // target rate/per-frame bandwidth (for each rate update) is within limits.
100 // One key frame (first frame only) in sequence. 100 // One key frame (first frame only) in sequence.
101 TEST_F(VideoProcessorIntegrationTestLibvpx, ProcessNoLossChangeBitRateVP9) { 101 TEST_F(VideoProcessorIntegrationTestLibvpx, ProcessNoLossChangeBitRateVP9) {
102 SetCodecSettings(&config_, kVideoCodecVP9, 1, false, false, true, false, 102 SetCodecSettings(&config_, kVideoCodecVP9, 1, false, false, true, false,
103 kResilienceOn, kCifWidth, kCifHeight); 103 kResilienceOn, kCifWidth, kCifHeight);
104 104
105 RateProfile rate_profile; 105 RateProfile rate_profile;
106 SetRateProfile(&rate_profile, 0, 200, 30, 0); 106 SetRateProfile(&rate_profile, 0, 200, 30, 0);
107 SetRateProfile(&rate_profile, 1, 700, 30, 100); 107 SetRateProfile(&rate_profile, 1, 700, 30, 100);
108 SetRateProfile(&rate_profile, 2, 500, 30, 200); 108 SetRateProfile(&rate_profile, 2, 500, 30, 200);
109 rate_profile.frame_index_rate_update[3] = kNumFramesLong + 1; 109 rate_profile.frame_index_rate_update[3] = kNumFramesLong + 1;
110 rate_profile.num_frames = kNumFramesLong; 110 rate_profile.num_frames = kNumFramesLong;
111 111
112 std::vector<RateControlThresholds> rc_thresholds; 112 std::vector<RateControlThresholds> rc_thresholds;
113 AddRateControlThresholds(0, 30, 20, 20, 35, 0, 1, &rc_thresholds); 113 AddRateControlThresholds(0, 30, 20, 20, 35, 0, 1, &rc_thresholds);
114 AddRateControlThresholds(2, 0, 20, 20, 60, 0, 0, &rc_thresholds); 114 AddRateControlThresholds(2, 0, 20, 20, 60, 0, 0, &rc_thresholds);
115 AddRateControlThresholds(0, 0, 25, 20, 40, 0, 0, &rc_thresholds); 115 AddRateControlThresholds(0, 0, 25, 20, 40, 0, 0, &rc_thresholds);
116 116
117 QualityThresholds quality_thresholds(35.5, 30.0, 0.90, 0.85); 117 QualityThresholds quality_thresholds(35.5, 30.0, 0.90, 0.85);
118 118
119 ProcessFramesAndMaybeVerify(rate_profile, &rc_thresholds, &quality_thresholds, 119 ProcessFramesAndMaybeVerify(rate_profile, &rc_thresholds,
120 kNoVisualizationParams); 120 &quality_thresholds, nullptr, kNoVisualizationParams);
121 } 121 }
122 122
123 // VP9: Run with no packet loss, with an update (decrease) in frame rate. 123 // VP9: Run with no packet loss, with an update (decrease) in frame rate.
124 // Lower frame rate means higher per-frame-bandwidth, so easier to encode. 124 // Lower frame rate means higher per-frame-bandwidth, so easier to encode.
125 // At the low bitrate in this test, this means better rate control after the 125 // At the low bitrate in this test, this means better rate control after the
126 // update(s) to lower frame rate. So expect less frame drops, and max values 126 // update(s) to lower frame rate. So expect less frame drops, and max values
127 // for the rate control metrics can be lower. One key frame (first frame only). 127 // for the rate control metrics can be lower. One key frame (first frame only).
128 // Note: quality after update should be higher but we currently compute quality 128 // Note: quality after update should be higher but we currently compute quality
129 // metrics averaged over whole sequence run. 129 // metrics averaged over whole sequence run.
130 TEST_F(VideoProcessorIntegrationTestLibvpx, 130 TEST_F(VideoProcessorIntegrationTestLibvpx,
131 ProcessNoLossChangeFrameRateFrameDropVP9) { 131 ProcessNoLossChangeFrameRateFrameDropVP9) {
132 SetCodecSettings(&config_, kVideoCodecVP9, 1, false, false, true, false, 132 SetCodecSettings(&config_, kVideoCodecVP9, 1, false, false, true, false,
133 kResilienceOn, kCifWidth, kCifHeight); 133 kResilienceOn, kCifWidth, kCifHeight);
134 134
135 RateProfile rate_profile; 135 RateProfile rate_profile;
136 SetRateProfile(&rate_profile, 0, 100, 24, 0); 136 SetRateProfile(&rate_profile, 0, 100, 24, 0);
137 SetRateProfile(&rate_profile, 1, 100, 15, 100); 137 SetRateProfile(&rate_profile, 1, 100, 15, 100);
138 SetRateProfile(&rate_profile, 2, 100, 10, 200); 138 SetRateProfile(&rate_profile, 2, 100, 10, 200);
139 rate_profile.frame_index_rate_update[3] = kNumFramesLong + 1; 139 rate_profile.frame_index_rate_update[3] = kNumFramesLong + 1;
140 rate_profile.num_frames = kNumFramesLong; 140 rate_profile.num_frames = kNumFramesLong;
141 141
142 std::vector<RateControlThresholds> rc_thresholds; 142 std::vector<RateControlThresholds> rc_thresholds;
143 AddRateControlThresholds(45, 50, 95, 15, 45, 0, 1, &rc_thresholds); 143 AddRateControlThresholds(45, 50, 95, 15, 45, 0, 1, &rc_thresholds);
144 AddRateControlThresholds(20, 0, 50, 10, 30, 0, 0, &rc_thresholds); 144 AddRateControlThresholds(20, 0, 50, 10, 30, 0, 0, &rc_thresholds);
145 AddRateControlThresholds(5, 0, 30, 5, 25, 0, 0, &rc_thresholds); 145 AddRateControlThresholds(5, 0, 30, 5, 25, 0, 0, &rc_thresholds);
146 146
147 QualityThresholds quality_thresholds(31.5, 18.0, 0.80, 0.43); 147 QualityThresholds quality_thresholds(31.5, 18.0, 0.80, 0.43);
148 148
149 ProcessFramesAndMaybeVerify(rate_profile, &rc_thresholds, &quality_thresholds, 149 ProcessFramesAndMaybeVerify(rate_profile, &rc_thresholds,
150 kNoVisualizationParams); 150 &quality_thresholds, nullptr, kNoVisualizationParams);
151 } 151 }
152 152
153 // VP9: Run with no packet loss and denoiser on. One key frame (first frame). 153 // VP9: Run with no packet loss and denoiser on. One key frame (first frame).
154 TEST_F(VideoProcessorIntegrationTestLibvpx, ProcessNoLossDenoiserOnVP9) { 154 TEST_F(VideoProcessorIntegrationTestLibvpx, ProcessNoLossDenoiserOnVP9) {
155 SetCodecSettings(&config_, kVideoCodecVP9, 1, false, true, true, false, 155 SetCodecSettings(&config_, kVideoCodecVP9, 1, false, true, true, false,
156 kResilienceOn, kCifWidth, kCifHeight); 156 kResilienceOn, kCifWidth, kCifHeight);
157 157
158 RateProfile rate_profile; 158 RateProfile rate_profile;
159 SetRateProfile(&rate_profile, 0, 500, 30, 0); 159 SetRateProfile(&rate_profile, 0, 500, 30, 0);
160 rate_profile.frame_index_rate_update[1] = kNumFramesShort + 1; 160 rate_profile.frame_index_rate_update[1] = kNumFramesShort + 1;
161 rate_profile.num_frames = kNumFramesShort; 161 rate_profile.num_frames = kNumFramesShort;
162 162
163 std::vector<RateControlThresholds> rc_thresholds; 163 std::vector<RateControlThresholds> rc_thresholds;
164 AddRateControlThresholds(0, 40, 20, 10, 20, 0, 1, &rc_thresholds); 164 AddRateControlThresholds(0, 40, 20, 10, 20, 0, 1, &rc_thresholds);
165 165
166 QualityThresholds quality_thresholds(36.8, 35.8, 0.92, 0.91); 166 QualityThresholds quality_thresholds(36.8, 35.8, 0.92, 0.91);
167 167
168 ProcessFramesAndMaybeVerify(rate_profile, &rc_thresholds, &quality_thresholds, 168 ProcessFramesAndMaybeVerify(rate_profile, &rc_thresholds,
169 kNoVisualizationParams); 169 &quality_thresholds, nullptr, kNoVisualizationParams);
170 } 170 }
171 171
172 // Run with no packet loss, at low bitrate. 172 // Run with no packet loss, at low bitrate.
173 // spatial_resize is on, for this low bitrate expect one resize in sequence. 173 // spatial_resize is on, for this low bitrate expect one resize in sequence.
174 // Resize happens on delta frame. Expect only one key frame (first frame). 174 // Resize happens on delta frame. Expect only one key frame (first frame).
175 TEST_F(VideoProcessorIntegrationTestLibvpx, 175 TEST_F(VideoProcessorIntegrationTestLibvpx,
176 DISABLED_ProcessNoLossSpatialResizeFrameDropVP9) { 176 DISABLED_ProcessNoLossSpatialResizeFrameDropVP9) {
177 SetCodecSettings(&config_, kVideoCodecVP9, 1, false, false, true, true, 177 SetCodecSettings(&config_, kVideoCodecVP9, 1, false, false, true, true,
178 kResilienceOn, kCifWidth, kCifHeight); 178 kResilienceOn, kCifWidth, kCifHeight);
179 179
180 RateProfile rate_profile; 180 RateProfile rate_profile;
181 SetRateProfile(&rate_profile, 0, 50, 30, 0); 181 SetRateProfile(&rate_profile, 0, 50, 30, 0);
182 rate_profile.frame_index_rate_update[1] = kNumFramesLong + 1; 182 rate_profile.frame_index_rate_update[1] = kNumFramesLong + 1;
183 rate_profile.num_frames = kNumFramesLong; 183 rate_profile.num_frames = kNumFramesLong;
184 184
185 std::vector<RateControlThresholds> rc_thresholds; 185 std::vector<RateControlThresholds> rc_thresholds;
186 AddRateControlThresholds(228, 70, 160, 15, 80, 1, 1, &rc_thresholds); 186 AddRateControlThresholds(228, 70, 160, 15, 80, 1, 1, &rc_thresholds);
187 187
188 QualityThresholds quality_thresholds(24.0, 13.0, 0.65, 0.37); 188 QualityThresholds quality_thresholds(24.0, 13.0, 0.65, 0.37);
189 189
190 ProcessFramesAndMaybeVerify(rate_profile, &rc_thresholds, &quality_thresholds, 190 ProcessFramesAndMaybeVerify(rate_profile, &rc_thresholds,
191 kNoVisualizationParams); 191 &quality_thresholds, nullptr, kNoVisualizationParams);
192 } 192 }
193 193
194 // TODO(marpan): Add temporal layer test for VP9, once changes are in 194 // TODO(marpan): Add temporal layer test for VP9, once changes are in
195 // vp9 wrapper for this. 195 // vp9 wrapper for this.
196 196
197 #endif // !defined(RTC_DISABLE_VP9) 197 #endif // !defined(RTC_DISABLE_VP9)
198 198
199 // VP8: Run with no packet loss and fixed bitrate. Quality should be very high. 199 // VP8: Run with no packet loss and fixed bitrate. Quality should be very high.
200 // One key frame (first frame only) in sequence. Setting |key_frame_interval| 200 // One key frame (first frame only) in sequence. Setting |key_frame_interval|
201 // to -1 below means no periodic key frames in test. 201 // to -1 below means no periodic key frames in test.
202 TEST_F(VideoProcessorIntegrationTestLibvpx, ProcessZeroPacketLoss) { 202 TEST_F(VideoProcessorIntegrationTestLibvpx, ProcessZeroPacketLoss) {
203 SetCodecSettings(&config_, kVideoCodecVP8, 1, false, true, true, false, 203 SetCodecSettings(&config_, kVideoCodecVP8, 1, false, true, true, false,
204 kResilienceOn, kCifWidth, kCifHeight); 204 kResilienceOn, kCifWidth, kCifHeight);
205 205
206 RateProfile rate_profile; 206 RateProfile rate_profile;
207 SetRateProfile(&rate_profile, 0, 500, 30, 0); 207 SetRateProfile(&rate_profile, 0, 500, 30, 0);
208 rate_profile.frame_index_rate_update[1] = kNumFramesShort + 1; 208 rate_profile.frame_index_rate_update[1] = kNumFramesShort + 1;
209 rate_profile.num_frames = kNumFramesShort; 209 rate_profile.num_frames = kNumFramesShort;
210 210
211 std::vector<RateControlThresholds> rc_thresholds; 211 std::vector<RateControlThresholds> rc_thresholds;
212 AddRateControlThresholds(0, 40, 20, 10, 15, 0, 1, &rc_thresholds); 212 AddRateControlThresholds(0, 40, 20, 10, 15, 0, 1, &rc_thresholds);
213 213
214 QualityThresholds quality_thresholds(34.95, 33.0, 0.90, 0.89); 214 QualityThresholds quality_thresholds(34.95, 33.0, 0.90, 0.89);
215 215
216 ProcessFramesAndMaybeVerify(rate_profile, &rc_thresholds, &quality_thresholds, 216 ProcessFramesAndMaybeVerify(rate_profile, &rc_thresholds,
217 kNoVisualizationParams); 217 &quality_thresholds, nullptr, kNoVisualizationParams);
218 } 218 }
219 219
220 // VP8: Run with 5% packet loss and fixed bitrate. Quality should be a bit 220 // VP8: Run with 5% packet loss and fixed bitrate. Quality should be a bit
221 // lower. One key frame (first frame only) in sequence. 221 // lower. One key frame (first frame only) in sequence.
222 TEST_F(VideoProcessorIntegrationTestLibvpx, Process5PercentPacketLoss) { 222 TEST_F(VideoProcessorIntegrationTestLibvpx, Process5PercentPacketLoss) {
223 config_.networking_config.packet_loss_probability = 0.05f; 223 config_.networking_config.packet_loss_probability = 0.05f;
224 SetCodecSettings(&config_, kVideoCodecVP8, 1, false, true, true, false, 224 SetCodecSettings(&config_, kVideoCodecVP8, 1, false, true, true, false,
225 kResilienceOn, kCifWidth, kCifHeight); 225 kResilienceOn, kCifWidth, kCifHeight);
226 226
227 RateProfile rate_profile; 227 RateProfile rate_profile;
228 SetRateProfile(&rate_profile, 0, 500, 30, 0); 228 SetRateProfile(&rate_profile, 0, 500, 30, 0);
229 rate_profile.frame_index_rate_update[1] = kNumFramesShort + 1; 229 rate_profile.frame_index_rate_update[1] = kNumFramesShort + 1;
230 rate_profile.num_frames = kNumFramesShort; 230 rate_profile.num_frames = kNumFramesShort;
231 231
232 std::vector<RateControlThresholds> rc_thresholds; 232 std::vector<RateControlThresholds> rc_thresholds;
233 AddRateControlThresholds(0, 40, 20, 10, 15, 0, 1, &rc_thresholds); 233 AddRateControlThresholds(0, 40, 20, 10, 15, 0, 1, &rc_thresholds);
234 234
235 QualityThresholds quality_thresholds(20.0, 16.0, 0.60, 0.40); 235 QualityThresholds quality_thresholds(20.0, 16.0, 0.60, 0.40);
236 236
237 ProcessFramesAndMaybeVerify(rate_profile, &rc_thresholds, &quality_thresholds, 237 ProcessFramesAndMaybeVerify(rate_profile, &rc_thresholds,
238 kNoVisualizationParams); 238 &quality_thresholds, nullptr, kNoVisualizationParams);
239 } 239 }
240 240
241 // VP8: Run with 10% packet loss and fixed bitrate. Quality should be lower. 241 // VP8: Run with 10% packet loss and fixed bitrate. Quality should be lower.
242 // One key frame (first frame only) in sequence. 242 // One key frame (first frame only) in sequence.
243 TEST_F(VideoProcessorIntegrationTestLibvpx, Process10PercentPacketLoss) { 243 TEST_F(VideoProcessorIntegrationTestLibvpx, Process10PercentPacketLoss) {
244 config_.networking_config.packet_loss_probability = 0.1f; 244 config_.networking_config.packet_loss_probability = 0.1f;
245 SetCodecSettings(&config_, kVideoCodecVP8, 1, false, true, true, false, 245 SetCodecSettings(&config_, kVideoCodecVP8, 1, false, true, true, false,
246 kResilienceOn, kCifWidth, kCifHeight); 246 kResilienceOn, kCifWidth, kCifHeight);
247 247
248 RateProfile rate_profile; 248 RateProfile rate_profile;
249 SetRateProfile(&rate_profile, 0, 500, 30, 0); 249 SetRateProfile(&rate_profile, 0, 500, 30, 0);
250 rate_profile.frame_index_rate_update[1] = kNumFramesShort + 1; 250 rate_profile.frame_index_rate_update[1] = kNumFramesShort + 1;
251 rate_profile.num_frames = kNumFramesShort; 251 rate_profile.num_frames = kNumFramesShort;
252 252
253 std::vector<RateControlThresholds> rc_thresholds; 253 std::vector<RateControlThresholds> rc_thresholds;
254 AddRateControlThresholds(0, 40, 20, 10, 15, 0, 1, &rc_thresholds); 254 AddRateControlThresholds(0, 40, 20, 10, 15, 0, 1, &rc_thresholds);
255 255
256 QualityThresholds quality_thresholds(19.0, 16.0, 0.50, 0.35); 256 QualityThresholds quality_thresholds(19.0, 16.0, 0.50, 0.35);
257 257
258 ProcessFramesAndMaybeVerify(rate_profile, &rc_thresholds, &quality_thresholds, 258 ProcessFramesAndMaybeVerify(rate_profile, &rc_thresholds,
259 kNoVisualizationParams); 259 &quality_thresholds, nullptr, kNoVisualizationParams);
260 } 260 }
261 261
262 #endif // !defined(WEBRTC_IOS) 262 #endif // !defined(WEBRTC_IOS)
263 263
264 // The tests below are currently disabled for Android. For ARM, the encoder 264 // The tests below are currently disabled for Android. For ARM, the encoder
265 // uses |cpu_speed| = 12, as opposed to default |cpu_speed| <= 6 for x86, 265 // uses |cpu_speed| = 12, as opposed to default |cpu_speed| <= 6 for x86,
266 // which leads to significantly different quality. The quality and rate control 266 // which leads to significantly different quality. The quality and rate control
267 // settings in the tests below are defined for encoder speed setting 267 // settings in the tests below are defined for encoder speed setting
268 // |cpu_speed| <= ~6. A number of settings would need to be significantly 268 // |cpu_speed| <= ~6. A number of settings would need to be significantly
269 // modified for the |cpu_speed| = 12 case. For now, keep the tests below 269 // modified for the |cpu_speed| = 12 case. For now, keep the tests below
(...skipping 23 matching lines...) Expand all
293 rate_profile.frame_index_rate_update[3] = kNumFramesLong + 1; 293 rate_profile.frame_index_rate_update[3] = kNumFramesLong + 1;
294 rate_profile.num_frames = kNumFramesLong; 294 rate_profile.num_frames = kNumFramesLong;
295 295
296 std::vector<RateControlThresholds> rc_thresholds; 296 std::vector<RateControlThresholds> rc_thresholds;
297 AddRateControlThresholds(0, 45, 20, 10, 15, 0, 1, &rc_thresholds); 297 AddRateControlThresholds(0, 45, 20, 10, 15, 0, 1, &rc_thresholds);
298 AddRateControlThresholds(0, 0, 25, 20, 10, 0, 0, &rc_thresholds); 298 AddRateControlThresholds(0, 0, 25, 20, 10, 0, 0, &rc_thresholds);
299 AddRateControlThresholds(0, 0, 25, 15, 10, 0, 0, &rc_thresholds); 299 AddRateControlThresholds(0, 0, 25, 15, 10, 0, 0, &rc_thresholds);
300 300
301 QualityThresholds quality_thresholds(34.0, 32.0, 0.85, 0.80); 301 QualityThresholds quality_thresholds(34.0, 32.0, 0.85, 0.80);
302 302
303 ProcessFramesAndMaybeVerify(rate_profile, &rc_thresholds, &quality_thresholds, 303 ProcessFramesAndMaybeVerify(rate_profile, &rc_thresholds,
304 kNoVisualizationParams); 304 &quality_thresholds, nullptr, kNoVisualizationParams);
305 } 305 }
306 306
307 // VP8: Run with no packet loss, with an update (decrease) in frame rate. 307 // VP8: Run with no packet loss, with an update (decrease) in frame rate.
308 // Lower frame rate means higher per-frame-bandwidth, so easier to encode. 308 // Lower frame rate means higher per-frame-bandwidth, so easier to encode.
309 // At the bitrate in this test, this means better rate control after the 309 // At the bitrate in this test, this means better rate control after the
310 // update(s) to lower frame rate. So expect less frame drops, and max values 310 // update(s) to lower frame rate. So expect less frame drops, and max values
311 // for the rate control metrics can be lower. One key frame (first frame only). 311 // for the rate control metrics can be lower. One key frame (first frame only).
312 // Note: quality after update should be higher but we currently compute quality 312 // Note: quality after update should be higher but we currently compute quality
313 // metrics averaged over whole sequence run. 313 // metrics averaged over whole sequence run.
314 // Too slow to finish before timeout on iOS. See webrtc:4755. 314 // Too slow to finish before timeout on iOS. See webrtc:4755.
(...skipping 16 matching lines...) Expand all
331 rate_profile.frame_index_rate_update[3] = kNumFramesLong + 1; 331 rate_profile.frame_index_rate_update[3] = kNumFramesLong + 1;
332 rate_profile.num_frames = kNumFramesLong; 332 rate_profile.num_frames = kNumFramesLong;
333 333
334 std::vector<RateControlThresholds> rc_thresholds; 334 std::vector<RateControlThresholds> rc_thresholds;
335 AddRateControlThresholds(40, 20, 75, 15, 60, 0, 1, &rc_thresholds); 335 AddRateControlThresholds(40, 20, 75, 15, 60, 0, 1, &rc_thresholds);
336 AddRateControlThresholds(10, 0, 25, 10, 35, 0, 0, &rc_thresholds); 336 AddRateControlThresholds(10, 0, 25, 10, 35, 0, 0, &rc_thresholds);
337 AddRateControlThresholds(0, 0, 20, 10, 15, 0, 0, &rc_thresholds); 337 AddRateControlThresholds(0, 0, 20, 10, 15, 0, 0, &rc_thresholds);
338 338
339 QualityThresholds quality_thresholds(31.0, 22.0, 0.80, 0.65); 339 QualityThresholds quality_thresholds(31.0, 22.0, 0.80, 0.65);
340 340
341 ProcessFramesAndMaybeVerify(rate_profile, &rc_thresholds, &quality_thresholds, 341 ProcessFramesAndMaybeVerify(rate_profile, &rc_thresholds,
342 kNoVisualizationParams); 342 &quality_thresholds, nullptr, kNoVisualizationParams);
343 } 343 }
344 344
345 // VP8: Run with no packet loss, with 3 temporal layers, with a rate update in 345 // VP8: Run with no packet loss, with 3 temporal layers, with a rate update in
346 // the middle of the sequence. The max values for the frame size mismatch and 346 // the middle of the sequence. The max values for the frame size mismatch and
347 // encoding rate mismatch are applied to each layer. 347 // encoding rate mismatch are applied to each layer.
348 // No dropped frames in this test, and internal spatial resizer is off. 348 // No dropped frames in this test, and internal spatial resizer is off.
349 // One key frame (first frame only) in sequence, so no spatial resizing. 349 // One key frame (first frame only) in sequence, so no spatial resizing.
350 // Too slow to finish before timeout on iOS. See webrtc:4755. 350 // Too slow to finish before timeout on iOS. See webrtc:4755.
351 #if defined(WEBRTC_ANDROID) || defined(WEBRTC_IOS) 351 #if defined(WEBRTC_ANDROID) || defined(WEBRTC_IOS)
352 #define MAYBE_ProcessNoLossTemporalLayersVP8 \ 352 #define MAYBE_ProcessNoLossTemporalLayersVP8 \
(...skipping 11 matching lines...) Expand all
364 SetRateProfile(&rate_profile, 1, 400, 30, 150); 364 SetRateProfile(&rate_profile, 1, 400, 30, 150);
365 rate_profile.frame_index_rate_update[2] = kNumFramesLong + 1; 365 rate_profile.frame_index_rate_update[2] = kNumFramesLong + 1;
366 rate_profile.num_frames = kNumFramesLong; 366 rate_profile.num_frames = kNumFramesLong;
367 367
368 std::vector<RateControlThresholds> rc_thresholds; 368 std::vector<RateControlThresholds> rc_thresholds;
369 AddRateControlThresholds(0, 20, 30, 10, 10, 0, 1, &rc_thresholds); 369 AddRateControlThresholds(0, 20, 30, 10, 10, 0, 1, &rc_thresholds);
370 AddRateControlThresholds(0, 0, 30, 15, 10, 0, 0, &rc_thresholds); 370 AddRateControlThresholds(0, 0, 30, 15, 10, 0, 0, &rc_thresholds);
371 371
372 QualityThresholds quality_thresholds(32.5, 30.0, 0.85, 0.80); 372 QualityThresholds quality_thresholds(32.5, 30.0, 0.85, 0.80);
373 373
374 ProcessFramesAndMaybeVerify(rate_profile, &rc_thresholds, &quality_thresholds, 374 ProcessFramesAndMaybeVerify(rate_profile, &rc_thresholds,
375 kNoVisualizationParams); 375 &quality_thresholds, nullptr, kNoVisualizationParams);
376 } 376 }
377 377
378 } // namespace test 378 } // namespace test
379 } // namespace webrtc 379 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698