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

Side by Side Diff: webrtc/modules/video_coding/codecs/test/videoprocessor_integrationtest.cc

Issue 2962293002: Remove ProcessParams struct. (Closed)
Patch Set: rebase Created 3 years, 4 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
« no previous file with comments | « webrtc/modules/video_coding/codecs/test/videoprocessor_integrationtest.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 29 matching lines...) Expand all
40 // these unittests appears to drop "packets" in a way that is not compatible 40 // these unittests appears to drop "packets" in a way that is not compatible
41 // with H264. Therefore ProcessXPercentPacketLossH264, X != 0, unittests have 41 // with H264. Therefore ProcessXPercentPacketLossH264, X != 0, unittests have
42 // not been added. 42 // not been added.
43 TEST_F(VideoProcessorIntegrationTest, Process0PercentPacketLossH264) { 43 TEST_F(VideoProcessorIntegrationTest, Process0PercentPacketLossH264) {
44 // Bit rate and frame rate profile. 44 // Bit rate and frame rate profile.
45 RateProfile rate_profile; 45 RateProfile rate_profile;
46 SetRateProfile(&rate_profile, 0, 500, 30, 0); 46 SetRateProfile(&rate_profile, 0, 500, 30, 0);
47 rate_profile.frame_index_rate_update[1] = kNumFramesShort + 1; 47 rate_profile.frame_index_rate_update[1] = kNumFramesShort + 1;
48 rate_profile.num_frames = kNumFramesShort; 48 rate_profile.num_frames = kNumFramesShort;
49 // Codec/network settings. 49 // Codec/network settings.
50 ProcessParams process_settings(kHwCodec, kUseSingleCore, 0.0f, -1, 50 SetProcessParams(&config_, kHwCodec, kUseSingleCore, 0.0f, -1, kForemanCif,
51 kForemanCif, kVerboseLogging, kBatchMode); 51 kVerboseLogging, kBatchMode);
52 SetCodecSettings(&config_, &codec_settings_, kVideoCodecH264, 1, false, false, 52 SetCodecSettings(&config_, &codec_settings_, kVideoCodecH264, 1, false, false,
53 true, false, kResilienceOn, kCifWidth, kCifHeight); 53 true, false, kResilienceOn, kCifWidth, kCifHeight);
54 // Thresholds for expected quality. 54 // Thresholds for expected quality.
55 QualityThresholds quality_thresholds; 55 QualityThresholds quality_thresholds(35.0, 25.0, 0.93, 0.70);
56 SetQualityThresholds(&quality_thresholds, 35.0, 25.0, 0.93, 0.70);
57 // Thresholds for rate control. 56 // Thresholds for rate control.
58 RateControlThresholds rc_thresholds[1]; 57 RateControlThresholds rc_thresholds[1];
59 SetRateControlThresholds(rc_thresholds, 0, 2, 60, 20, 10, 20, 0, 1); 58 SetRateControlThresholds(rc_thresholds, 0, 2, 60, 20, 10, 20, 0, 1);
60 ProcessFramesAndVerify(quality_thresholds, rate_profile, process_settings, 59 ProcessFramesAndVerify(quality_thresholds, rate_profile, rc_thresholds,
61 rc_thresholds, nullptr /* visualization_params */); 60 nullptr /* visualization_params */);
62 } 61 }
63 62
64 #endif // defined(WEBRTC_VIDEOPROCESSOR_H264_TESTS) 63 #endif // defined(WEBRTC_VIDEOPROCESSOR_H264_TESTS)
65 64
66 // Fails on iOS. See webrtc:4755. 65 // Fails on iOS. See webrtc:4755.
67 #if !defined(WEBRTC_IOS) 66 #if !defined(WEBRTC_IOS)
68 67
69 #if !defined(RTC_DISABLE_VP9) 68 #if !defined(RTC_DISABLE_VP9)
70 // VP9: Run with no packet loss and fixed bitrate. Quality should be very high. 69 // VP9: Run with no packet loss and fixed bitrate. Quality should be very high.
71 // One key frame (first frame only) in sequence. Setting |key_frame_interval| 70 // One key frame (first frame only) in sequence. Setting |key_frame_interval|
72 // to -1 below means no periodic key frames in test. 71 // to -1 below means no periodic key frames in test.
73 TEST_F(VideoProcessorIntegrationTest, Process0PercentPacketLossVP9) { 72 TEST_F(VideoProcessorIntegrationTest, Process0PercentPacketLossVP9) {
74 // Bit rate and frame rate profile. 73 // Bit rate and frame rate profile.
75 RateProfile rate_profile; 74 RateProfile rate_profile;
76 SetRateProfile(&rate_profile, 0, 500, 30, 0); 75 SetRateProfile(&rate_profile, 0, 500, 30, 0);
77 rate_profile.frame_index_rate_update[1] = kNumFramesShort + 1; 76 rate_profile.frame_index_rate_update[1] = kNumFramesShort + 1;
78 rate_profile.num_frames = kNumFramesShort; 77 rate_profile.num_frames = kNumFramesShort;
79 // Codec/network settings. 78 // Codec/network settings.
80 ProcessParams process_settings(kHwCodec, kUseSingleCore, 0.0f, -1, 79 SetProcessParams(&config_, kHwCodec, kUseSingleCore, 0.0f, -1, kForemanCif,
81 kForemanCif, kVerboseLogging, kBatchMode); 80 kVerboseLogging, kBatchMode);
82 SetCodecSettings(&config_, &codec_settings_, kVideoCodecVP9, 1, false, false, 81 SetCodecSettings(&config_, &codec_settings_, kVideoCodecVP9, 1, false, false,
83 true, false, kResilienceOn, kCifWidth, kCifHeight); 82 true, false, kResilienceOn, kCifWidth, kCifHeight);
84 // Thresholds for expected quality. 83 // Thresholds for expected quality.
85 QualityThresholds quality_thresholds; 84 QualityThresholds quality_thresholds(37.0, 36.0, 0.93, 0.92);
86 SetQualityThresholds(&quality_thresholds, 37.0, 36.0, 0.93, 0.92);
87 // Thresholds for rate control. 85 // Thresholds for rate control.
88 RateControlThresholds rc_thresholds[1]; 86 RateControlThresholds rc_thresholds[1];
89 SetRateControlThresholds(rc_thresholds, 0, 0, 40, 20, 10, 20, 0, 1); 87 SetRateControlThresholds(rc_thresholds, 0, 0, 40, 20, 10, 20, 0, 1);
90 ProcessFramesAndVerify(quality_thresholds, rate_profile, process_settings, 88 ProcessFramesAndVerify(quality_thresholds, rate_profile, rc_thresholds,
91 rc_thresholds, nullptr /* visualization_params */); 89 nullptr /* visualization_params */);
92 } 90 }
93 91
94 // VP9: Run with 5% packet loss and fixed bitrate. Quality should be a bit 92 // VP9: Run with 5% packet loss and fixed bitrate. Quality should be a bit
95 // lower. One key frame (first frame only) in sequence. 93 // lower. One key frame (first frame only) in sequence.
96 TEST_F(VideoProcessorIntegrationTest, Process5PercentPacketLossVP9) { 94 TEST_F(VideoProcessorIntegrationTest, Process5PercentPacketLossVP9) {
97 // Bit rate and frame rate profile. 95 // Bit rate and frame rate profile.
98 RateProfile rate_profile; 96 RateProfile rate_profile;
99 SetRateProfile(&rate_profile, 0, 500, 30, 0); 97 SetRateProfile(&rate_profile, 0, 500, 30, 0);
100 rate_profile.frame_index_rate_update[1] = kNumFramesShort + 1; 98 rate_profile.frame_index_rate_update[1] = kNumFramesShort + 1;
101 rate_profile.num_frames = kNumFramesShort; 99 rate_profile.num_frames = kNumFramesShort;
102 // Codec/network settings. 100 // Codec/network settings.
103 ProcessParams process_settings(kHwCodec, kUseSingleCore, 0.05f, -1, 101 SetProcessParams(&config_, kHwCodec, kUseSingleCore, 0.05f, -1, kForemanCif,
104 kForemanCif, kVerboseLogging, kBatchMode); 102 kVerboseLogging, kBatchMode);
105 SetCodecSettings(&config_, &codec_settings_, kVideoCodecVP9, 1, false, false, 103 SetCodecSettings(&config_, &codec_settings_, kVideoCodecVP9, 1, false, false,
106 true, false, kResilienceOn, kCifWidth, kCifHeight); 104 true, false, kResilienceOn, kCifWidth, kCifHeight);
107 // Thresholds for expected quality. 105 // Thresholds for expected quality.
108 QualityThresholds quality_thresholds; 106 QualityThresholds quality_thresholds(17.0, 14.0, 0.45, 0.36);
109 SetQualityThresholds(&quality_thresholds, 17.0, 14.0, 0.45, 0.36);
110 // Thresholds for rate control. 107 // Thresholds for rate control.
111 RateControlThresholds rc_thresholds[1]; 108 RateControlThresholds rc_thresholds[1];
112 SetRateControlThresholds(rc_thresholds, 0, 0, 40, 20, 10, 20, 0, 1); 109 SetRateControlThresholds(rc_thresholds, 0, 0, 40, 20, 10, 20, 0, 1);
113 ProcessFramesAndVerify(quality_thresholds, rate_profile, process_settings, 110 ProcessFramesAndVerify(quality_thresholds, rate_profile, rc_thresholds,
114 rc_thresholds, nullptr /* visualization_params */); 111 nullptr /* visualization_params */);
115 } 112 }
116 113
117 // VP9: Run with no packet loss, with varying bitrate (3 rate updates): 114 // VP9: Run with no packet loss, with varying bitrate (3 rate updates):
118 // low to high to medium. Check that quality and encoder response to the new 115 // low to high to medium. Check that quality and encoder response to the new
119 // target rate/per-frame bandwidth (for each rate update) is within limits. 116 // target rate/per-frame bandwidth (for each rate update) is within limits.
120 // One key frame (first frame only) in sequence. 117 // One key frame (first frame only) in sequence.
121 TEST_F(VideoProcessorIntegrationTest, ProcessNoLossChangeBitRateVP9) { 118 TEST_F(VideoProcessorIntegrationTest, ProcessNoLossChangeBitRateVP9) {
122 // Bit rate and frame rate profile. 119 // Bit rate and frame rate profile.
123 RateProfile rate_profile; 120 RateProfile rate_profile;
124 SetRateProfile(&rate_profile, 0, 200, 30, 0); 121 SetRateProfile(&rate_profile, 0, 200, 30, 0);
125 SetRateProfile(&rate_profile, 1, 700, 30, 100); 122 SetRateProfile(&rate_profile, 1, 700, 30, 100);
126 SetRateProfile(&rate_profile, 2, 500, 30, 200); 123 SetRateProfile(&rate_profile, 2, 500, 30, 200);
127 rate_profile.frame_index_rate_update[3] = kNumFramesLong + 1; 124 rate_profile.frame_index_rate_update[3] = kNumFramesLong + 1;
128 rate_profile.num_frames = kNumFramesLong; 125 rate_profile.num_frames = kNumFramesLong;
129 // Codec/network settings. 126 // Codec/network settings.
130 ProcessParams process_settings(kHwCodec, kUseSingleCore, 0.0f, -1, 127 SetProcessParams(&config_, kHwCodec, kUseSingleCore, 0.0f, -1, kForemanCif,
131 kForemanCif, kVerboseLogging, kBatchMode); 128 kVerboseLogging, kBatchMode);
132 SetCodecSettings(&config_, &codec_settings_, kVideoCodecVP9, 1, false, false, 129 SetCodecSettings(&config_, &codec_settings_, kVideoCodecVP9, 1, false, false,
133 true, false, kResilienceOn, kCifWidth, kCifHeight); 130 true, false, kResilienceOn, kCifWidth, kCifHeight);
134 // Thresholds for expected quality. 131 // Thresholds for expected quality.
135 QualityThresholds quality_thresholds; 132 QualityThresholds quality_thresholds(35.5, 30.0, 0.90, 0.85);
136 SetQualityThresholds(&quality_thresholds, 35.5, 30.0, 0.90, 0.85);
137 // Thresholds for rate control. 133 // Thresholds for rate control.
138 RateControlThresholds rc_thresholds[3]; 134 RateControlThresholds rc_thresholds[3];
139 SetRateControlThresholds(rc_thresholds, 0, 0, 30, 20, 20, 35, 0, 1); 135 SetRateControlThresholds(rc_thresholds, 0, 0, 30, 20, 20, 35, 0, 1);
140 SetRateControlThresholds(rc_thresholds, 1, 2, 0, 20, 20, 60, 0, 0); 136 SetRateControlThresholds(rc_thresholds, 1, 2, 0, 20, 20, 60, 0, 0);
141 SetRateControlThresholds(rc_thresholds, 2, 0, 0, 25, 20, 40, 0, 0); 137 SetRateControlThresholds(rc_thresholds, 2, 0, 0, 25, 20, 40, 0, 0);
142 ProcessFramesAndVerify(quality_thresholds, rate_profile, process_settings, 138 ProcessFramesAndVerify(quality_thresholds, rate_profile, rc_thresholds,
143 rc_thresholds, nullptr /* visualization_params */); 139 nullptr /* visualization_params */);
144 } 140 }
145 141
146 // VP9: Run with no packet loss, with an update (decrease) in frame rate. 142 // VP9: Run with no packet loss, with an update (decrease) in frame rate.
147 // Lower frame rate means higher per-frame-bandwidth, so easier to encode. 143 // Lower frame rate means higher per-frame-bandwidth, so easier to encode.
148 // At the low bitrate in this test, this means better rate control after the 144 // At the low bitrate in this test, this means better rate control after the
149 // update(s) to lower frame rate. So expect less frame drops, and max values 145 // update(s) to lower frame rate. So expect less frame drops, and max values
150 // for the rate control metrics can be lower. One key frame (first frame only). 146 // for the rate control metrics can be lower. One key frame (first frame only).
151 // Note: quality after update should be higher but we currently compute quality 147 // Note: quality after update should be higher but we currently compute quality
152 // metrics averaged over whole sequence run. 148 // metrics averaged over whole sequence run.
153 TEST_F(VideoProcessorIntegrationTest, 149 TEST_F(VideoProcessorIntegrationTest,
154 ProcessNoLossChangeFrameRateFrameDropVP9) { 150 ProcessNoLossChangeFrameRateFrameDropVP9) {
155 config_.networking_config.packet_loss_probability = 0; 151 config_.networking_config.packet_loss_probability = 0;
156 // Bit rate and frame rate profile. 152 // Bit rate and frame rate profile.
157 RateProfile rate_profile; 153 RateProfile rate_profile;
158 SetRateProfile(&rate_profile, 0, 100, 24, 0); 154 SetRateProfile(&rate_profile, 0, 100, 24, 0);
159 SetRateProfile(&rate_profile, 1, 100, 15, 100); 155 SetRateProfile(&rate_profile, 1, 100, 15, 100);
160 SetRateProfile(&rate_profile, 2, 100, 10, 200); 156 SetRateProfile(&rate_profile, 2, 100, 10, 200);
161 rate_profile.frame_index_rate_update[3] = kNumFramesLong + 1; 157 rate_profile.frame_index_rate_update[3] = kNumFramesLong + 1;
162 rate_profile.num_frames = kNumFramesLong; 158 rate_profile.num_frames = kNumFramesLong;
163 // Codec/network settings. 159 // Codec/network settings.
164 ProcessParams process_settings(kHwCodec, kUseSingleCore, 0.0f, -1, 160 SetProcessParams(&config_, kHwCodec, kUseSingleCore, 0.0f, -1, kForemanCif,
165 kForemanCif, kVerboseLogging, kBatchMode); 161 kVerboseLogging, kBatchMode);
166 SetCodecSettings(&config_, &codec_settings_, kVideoCodecVP9, 1, false, false, 162 SetCodecSettings(&config_, &codec_settings_, kVideoCodecVP9, 1, false, false,
167 true, false, kResilienceOn, kCifWidth, kCifHeight); 163 true, false, kResilienceOn, kCifWidth, kCifHeight);
168 // Thresholds for expected quality. 164 // Thresholds for expected quality.
169 QualityThresholds quality_thresholds; 165 QualityThresholds quality_thresholds(31.5, 18.0, 0.80, 0.43);
170 SetQualityThresholds(&quality_thresholds, 31.5, 18.0, 0.80, 0.43);
171 // Thresholds for rate control. 166 // Thresholds for rate control.
172 RateControlThresholds rc_thresholds[3]; 167 RateControlThresholds rc_thresholds[3];
173 SetRateControlThresholds(rc_thresholds, 0, 45, 50, 95, 15, 45, 0, 1); 168 SetRateControlThresholds(rc_thresholds, 0, 45, 50, 95, 15, 45, 0, 1);
174 SetRateControlThresholds(rc_thresholds, 1, 20, 0, 50, 10, 30, 0, 0); 169 SetRateControlThresholds(rc_thresholds, 1, 20, 0, 50, 10, 30, 0, 0);
175 SetRateControlThresholds(rc_thresholds, 2, 5, 0, 30, 5, 25, 0, 0); 170 SetRateControlThresholds(rc_thresholds, 2, 5, 0, 30, 5, 25, 0, 0);
176 ProcessFramesAndVerify(quality_thresholds, rate_profile, process_settings, 171 ProcessFramesAndVerify(quality_thresholds, rate_profile, rc_thresholds,
177 rc_thresholds, nullptr /* visualization_params */); 172 nullptr /* visualization_params */);
178 } 173 }
179 174
180 // VP9: Run with no packet loss and denoiser on. One key frame (first frame). 175 // VP9: Run with no packet loss and denoiser on. One key frame (first frame).
181 TEST_F(VideoProcessorIntegrationTest, ProcessNoLossDenoiserOnVP9) { 176 TEST_F(VideoProcessorIntegrationTest, ProcessNoLossDenoiserOnVP9) {
182 // Bit rate and frame rate profile. 177 // Bit rate and frame rate profile.
183 RateProfile rate_profile; 178 RateProfile rate_profile;
184 SetRateProfile(&rate_profile, 0, 500, 30, 0); 179 SetRateProfile(&rate_profile, 0, 500, 30, 0);
185 rate_profile.frame_index_rate_update[1] = kNumFramesShort + 1; 180 rate_profile.frame_index_rate_update[1] = kNumFramesShort + 1;
186 rate_profile.num_frames = kNumFramesShort; 181 rate_profile.num_frames = kNumFramesShort;
187 // Codec/network settings. 182 // Codec/network settings.
188 ProcessParams process_settings(kHwCodec, kUseSingleCore, 0.0f, -1, 183 SetProcessParams(&config_, kHwCodec, kUseSingleCore, 0.0f, -1, kForemanCif,
189 kForemanCif, kVerboseLogging, kBatchMode); 184 kVerboseLogging, kBatchMode);
190 SetCodecSettings(&config_, &codec_settings_, kVideoCodecVP9, 1, false, true, 185 SetCodecSettings(&config_, &codec_settings_, kVideoCodecVP9, 1, false, true,
191 true, false, kResilienceOn, kCifWidth, kCifHeight); 186 true, false, kResilienceOn, kCifWidth, kCifHeight);
192 // Thresholds for expected quality. 187 // Thresholds for expected quality.
193 QualityThresholds quality_thresholds; 188 QualityThresholds quality_thresholds(36.8, 35.8, 0.92, 0.91);
194 SetQualityThresholds(&quality_thresholds, 36.8, 35.8, 0.92, 0.91);
195 // Thresholds for rate control. 189 // Thresholds for rate control.
196 RateControlThresholds rc_thresholds[1]; 190 RateControlThresholds rc_thresholds[1];
197 SetRateControlThresholds(rc_thresholds, 0, 0, 40, 20, 10, 20, 0, 1); 191 SetRateControlThresholds(rc_thresholds, 0, 0, 40, 20, 10, 20, 0, 1);
198 ProcessFramesAndVerify(quality_thresholds, rate_profile, process_settings, 192 ProcessFramesAndVerify(quality_thresholds, rate_profile, rc_thresholds,
199 rc_thresholds, nullptr /* visualization_params */); 193 nullptr /* visualization_params */);
200 } 194 }
201 195
202 // Run with no packet loss, at low bitrate. 196 // Run with no packet loss, at low bitrate.
203 // spatial_resize is on, for this low bitrate expect one resize in sequence. 197 // spatial_resize is on, for this low bitrate expect one resize in sequence.
204 // Resize happens on delta frame. Expect only one key frame (first frame). 198 // Resize happens on delta frame. Expect only one key frame (first frame).
205 TEST_F(VideoProcessorIntegrationTest, 199 TEST_F(VideoProcessorIntegrationTest,
206 DISABLED_ProcessNoLossSpatialResizeFrameDropVP9) { 200 DISABLED_ProcessNoLossSpatialResizeFrameDropVP9) {
207 config_.networking_config.packet_loss_probability = 0; 201 config_.networking_config.packet_loss_probability = 0;
208 // Bit rate and frame rate profile. 202 // Bit rate and frame rate profile.
209 RateProfile rate_profile; 203 RateProfile rate_profile;
210 SetRateProfile(&rate_profile, 0, 50, 30, 0); 204 SetRateProfile(&rate_profile, 0, 50, 30, 0);
211 rate_profile.frame_index_rate_update[1] = kNumFramesLong + 1; 205 rate_profile.frame_index_rate_update[1] = kNumFramesLong + 1;
212 rate_profile.num_frames = kNumFramesLong; 206 rate_profile.num_frames = kNumFramesLong;
213 // Codec/network settings. 207 // Codec/network settings.
214 ProcessParams process_settings(kHwCodec, kUseSingleCore, 0.0f, -1, 208 SetProcessParams(&config_, kHwCodec, kUseSingleCore, 0.0f, -1, kForemanCif,
215 kForemanCif, kVerboseLogging, kBatchMode); 209 kVerboseLogging, kBatchMode);
216 SetCodecSettings(&config_, &codec_settings_, kVideoCodecVP9, 1, false, false, 210 SetCodecSettings(&config_, &codec_settings_, kVideoCodecVP9, 1, false, false,
217 true, true, kResilienceOn, kCifWidth, kCifHeight); 211 true, true, kResilienceOn, kCifWidth, kCifHeight);
218 // Thresholds for expected quality. 212 // Thresholds for expected quality.
219 QualityThresholds quality_thresholds; 213 QualityThresholds quality_thresholds(24.0, 13.0, 0.65, 0.37);
220 SetQualityThresholds(&quality_thresholds, 24.0, 13.0, 0.65, 0.37);
221 // Thresholds for rate control. 214 // Thresholds for rate control.
222 RateControlThresholds rc_thresholds[1]; 215 RateControlThresholds rc_thresholds[1];
223 SetRateControlThresholds(rc_thresholds, 0, 228, 70, 160, 15, 80, 1, 1); 216 SetRateControlThresholds(rc_thresholds, 0, 228, 70, 160, 15, 80, 1, 1);
224 ProcessFramesAndVerify(quality_thresholds, rate_profile, process_settings, 217 ProcessFramesAndVerify(quality_thresholds, rate_profile, rc_thresholds,
225 rc_thresholds, nullptr /* visualization_params */); 218 nullptr /* visualization_params */);
226 } 219 }
227 220
228 // TODO(marpan): Add temporal layer test for VP9, once changes are in 221 // TODO(marpan): Add temporal layer test for VP9, once changes are in
229 // vp9 wrapper for this. 222 // vp9 wrapper for this.
230 223
231 #endif // !defined(RTC_DISABLE_VP9) 224 #endif // !defined(RTC_DISABLE_VP9)
232 225
233 // VP8: Run with no packet loss and fixed bitrate. Quality should be very high. 226 // VP8: Run with no packet loss and fixed bitrate. Quality should be very high.
234 // One key frame (first frame only) in sequence. Setting |key_frame_interval| 227 // One key frame (first frame only) in sequence. Setting |key_frame_interval|
235 // to -1 below means no periodic key frames in test. 228 // to -1 below means no periodic key frames in test.
236 TEST_F(VideoProcessorIntegrationTest, ProcessZeroPacketLoss) { 229 TEST_F(VideoProcessorIntegrationTest, ProcessZeroPacketLoss) {
237 // Bit rate and frame rate profile. 230 // Bit rate and frame rate profile.
238 RateProfile rate_profile; 231 RateProfile rate_profile;
239 SetRateProfile(&rate_profile, 0, 500, 30, 0); 232 SetRateProfile(&rate_profile, 0, 500, 30, 0);
240 rate_profile.frame_index_rate_update[1] = kNumFramesShort + 1; 233 rate_profile.frame_index_rate_update[1] = kNumFramesShort + 1;
241 rate_profile.num_frames = kNumFramesShort; 234 rate_profile.num_frames = kNumFramesShort;
242 // Codec/network settings. 235 // Codec/network settings.
243 ProcessParams process_settings(kHwCodec, kUseSingleCore, 0.0f, -1, 236 SetProcessParams(&config_, kHwCodec, kUseSingleCore, 0.0f, -1, kForemanCif,
244 kForemanCif, kVerboseLogging, kBatchMode); 237 kVerboseLogging, kBatchMode);
245 SetCodecSettings(&config_, &codec_settings_, kVideoCodecVP8, 1, false, true, 238 SetCodecSettings(&config_, &codec_settings_, kVideoCodecVP8, 1, false, true,
246 true, false, kResilienceOn, kCifWidth, kCifHeight); 239 true, false, kResilienceOn, kCifWidth, kCifHeight);
247 // Thresholds for expected quality. 240 // Thresholds for expected quality.
248 QualityThresholds quality_thresholds; 241 QualityThresholds quality_thresholds(34.95, 33.0, 0.90, 0.89);
249 SetQualityThresholds(&quality_thresholds, 34.95, 33.0, 0.90, 0.89);
250 // Thresholds for rate control. 242 // Thresholds for rate control.
251 RateControlThresholds rc_thresholds[1]; 243 RateControlThresholds rc_thresholds[1];
252 SetRateControlThresholds(rc_thresholds, 0, 0, 40, 20, 10, 15, 0, 1); 244 SetRateControlThresholds(rc_thresholds, 0, 0, 40, 20, 10, 15, 0, 1);
253 ProcessFramesAndVerify(quality_thresholds, rate_profile, process_settings, 245 ProcessFramesAndVerify(quality_thresholds, rate_profile, rc_thresholds,
254 rc_thresholds, nullptr /* visualization_params */); 246 nullptr /* visualization_params */);
255 } 247 }
256 248
257 // VP8: Run with 5% packet loss and fixed bitrate. Quality should be a bit 249 // VP8: Run with 5% packet loss and fixed bitrate. Quality should be a bit
258 // lower. One key frame (first frame only) in sequence. 250 // lower. One key frame (first frame only) in sequence.
259 TEST_F(VideoProcessorIntegrationTest, Process5PercentPacketLoss) { 251 TEST_F(VideoProcessorIntegrationTest, Process5PercentPacketLoss) {
260 // Bit rate and frame rate profile. 252 // Bit rate and frame rate profile.
261 RateProfile rate_profile; 253 RateProfile rate_profile;
262 SetRateProfile(&rate_profile, 0, 500, 30, 0); 254 SetRateProfile(&rate_profile, 0, 500, 30, 0);
263 rate_profile.frame_index_rate_update[1] = kNumFramesShort + 1; 255 rate_profile.frame_index_rate_update[1] = kNumFramesShort + 1;
264 rate_profile.num_frames = kNumFramesShort; 256 rate_profile.num_frames = kNumFramesShort;
265 // Codec/network settings. 257 // Codec/network settings.
266 ProcessParams process_settings(kHwCodec, kUseSingleCore, 0.05f, -1, 258 SetProcessParams(&config_, kHwCodec, kUseSingleCore, 0.05f, -1, kForemanCif,
267 kForemanCif, kVerboseLogging, kBatchMode); 259 kVerboseLogging, kBatchMode);
268 SetCodecSettings(&config_, &codec_settings_, kVideoCodecVP8, 1, false, true, 260 SetCodecSettings(&config_, &codec_settings_, kVideoCodecVP8, 1, false, true,
269 true, false, kResilienceOn, kCifWidth, kCifHeight); 261 true, false, kResilienceOn, kCifWidth, kCifHeight);
270 // Thresholds for expected quality. 262 // Thresholds for expected quality.
271 QualityThresholds quality_thresholds; 263 QualityThresholds quality_thresholds(20.0, 16.0, 0.60, 0.40);
272 SetQualityThresholds(&quality_thresholds, 20.0, 16.0, 0.60, 0.40);
273 // Thresholds for rate control. 264 // Thresholds for rate control.
274 RateControlThresholds rc_thresholds[1]; 265 RateControlThresholds rc_thresholds[1];
275 SetRateControlThresholds(rc_thresholds, 0, 0, 40, 20, 10, 15, 0, 1); 266 SetRateControlThresholds(rc_thresholds, 0, 0, 40, 20, 10, 15, 0, 1);
276 ProcessFramesAndVerify(quality_thresholds, rate_profile, process_settings, 267 ProcessFramesAndVerify(quality_thresholds, rate_profile, rc_thresholds,
277 rc_thresholds, nullptr /* visualization_params */); 268 nullptr /* visualization_params */);
278 } 269 }
279 270
280 // VP8: Run with 10% packet loss and fixed bitrate. Quality should be lower. 271 // VP8: Run with 10% packet loss and fixed bitrate. Quality should be lower.
281 // One key frame (first frame only) in sequence. 272 // One key frame (first frame only) in sequence.
282 TEST_F(VideoProcessorIntegrationTest, Process10PercentPacketLoss) { 273 TEST_F(VideoProcessorIntegrationTest, Process10PercentPacketLoss) {
283 // Bit rate and frame rate profile. 274 // Bit rate and frame rate profile.
284 RateProfile rate_profile; 275 RateProfile rate_profile;
285 SetRateProfile(&rate_profile, 0, 500, 30, 0); 276 SetRateProfile(&rate_profile, 0, 500, 30, 0);
286 rate_profile.frame_index_rate_update[1] = kNumFramesShort + 1; 277 rate_profile.frame_index_rate_update[1] = kNumFramesShort + 1;
287 rate_profile.num_frames = kNumFramesShort; 278 rate_profile.num_frames = kNumFramesShort;
288 // Codec/network settings. 279 // Codec/network settings.
289 ProcessParams process_settings(kHwCodec, kUseSingleCore, 0.1f, -1, 280 SetProcessParams(&config_, kHwCodec, kUseSingleCore, 0.1f, -1, kForemanCif,
290 kForemanCif, kVerboseLogging, kBatchMode); 281 kVerboseLogging, kBatchMode);
291 SetCodecSettings(&config_, &codec_settings_, kVideoCodecVP8, 1, false, true, 282 SetCodecSettings(&config_, &codec_settings_, kVideoCodecVP8, 1, false, true,
292 true, false, kResilienceOn, kCifWidth, kCifHeight); 283 true, false, kResilienceOn, kCifWidth, kCifHeight);
293 // Thresholds for expected quality. 284 // Thresholds for expected quality.
294 QualityThresholds quality_thresholds; 285 QualityThresholds quality_thresholds(19.0, 16.0, 0.50, 0.35);
295 SetQualityThresholds(&quality_thresholds, 19.0, 16.0, 0.50, 0.35);
296 // Thresholds for rate control. 286 // Thresholds for rate control.
297 RateControlThresholds rc_thresholds[1]; 287 RateControlThresholds rc_thresholds[1];
298 SetRateControlThresholds(rc_thresholds, 0, 0, 40, 20, 10, 15, 0, 1); 288 SetRateControlThresholds(rc_thresholds, 0, 0, 40, 20, 10, 15, 0, 1);
299 ProcessFramesAndVerify(quality_thresholds, rate_profile, process_settings, 289 ProcessFramesAndVerify(quality_thresholds, rate_profile, rc_thresholds,
300 rc_thresholds, nullptr /* visualization_params */); 290 nullptr /* visualization_params */);
301 } 291 }
302 292
303 // This test is identical to VideoProcessorIntegrationTest.ProcessZeroPacketLoss 293 // This test is identical to VideoProcessorIntegrationTest.ProcessZeroPacketLoss
304 // except that |batch_mode| is turned on. The main point of this test is to see 294 // except that |batch_mode| is turned on. The main point of this test is to see
305 // that the reported stats are not wildly varying between batch mode and the 295 // that the reported stats are not wildly varying between batch mode and the
306 // regular online mode. 296 // regular online mode.
307 TEST_F(VideoProcessorIntegrationTest, ProcessInBatchMode) { 297 TEST_F(VideoProcessorIntegrationTest, ProcessInBatchMode) {
308 // Bit rate and frame rate profile. 298 // Bit rate and frame rate profile.
309 RateProfile rate_profile; 299 RateProfile rate_profile;
310 SetRateProfile(&rate_profile, 0, 500, 30, 0); 300 SetRateProfile(&rate_profile, 0, 500, 30, 0);
311 rate_profile.frame_index_rate_update[1] = kNumFramesShort + 1; 301 rate_profile.frame_index_rate_update[1] = kNumFramesShort + 1;
312 rate_profile.num_frames = kNumFramesShort; 302 rate_profile.num_frames = kNumFramesShort;
313 // Codec/network settings. 303 // Codec/network settings.
314 ProcessParams process_settings(kHwCodec, kUseSingleCore, 0.0f, -1, 304 SetProcessParams(&config_, kHwCodec, kUseSingleCore, 0.0f, -1, kForemanCif,
315 kForemanCif, kVerboseLogging, 305 kVerboseLogging, true /* batch_mode */);
316 true /* batch_mode */);
317 SetCodecSettings(&config_, &codec_settings_, kVideoCodecVP8, 1, false, true, 306 SetCodecSettings(&config_, &codec_settings_, kVideoCodecVP8, 1, false, true,
318 true, false, kResilienceOn, kCifWidth, kCifHeight); 307 true, false, kResilienceOn, kCifWidth, kCifHeight);
319 // Thresholds for expected quality. 308 // Thresholds for expected quality.
320 QualityThresholds quality_thresholds; 309 QualityThresholds quality_thresholds(34.95, 33.0, 0.90, 0.89);
321 SetQualityThresholds(&quality_thresholds, 34.95, 33.0, 0.90, 0.89);
322 // Thresholds for rate control. 310 // Thresholds for rate control.
323 RateControlThresholds rc_thresholds[1]; 311 RateControlThresholds rc_thresholds[1];
324 SetRateControlThresholds(rc_thresholds, 0, 0, 40, 20, 10, 15, 0, 1); 312 SetRateControlThresholds(rc_thresholds, 0, 0, 40, 20, 10, 15, 0, 1);
325 ProcessFramesAndVerify(quality_thresholds, rate_profile, process_settings, 313 ProcessFramesAndVerify(quality_thresholds, rate_profile, rc_thresholds,
326 rc_thresholds, nullptr /* visualization_params */); 314 nullptr /* visualization_params */);
327 } 315 }
328 316
329 #endif // !defined(WEBRTC_IOS) 317 #endif // !defined(WEBRTC_IOS)
330 318
331 // The tests below are currently disabled for Android. For ARM, the encoder 319 // The tests below are currently disabled for Android. For ARM, the encoder
332 // uses |cpu_speed| = 12, as opposed to default |cpu_speed| <= 6 for x86, 320 // uses |cpu_speed| = 12, as opposed to default |cpu_speed| <= 6 for x86,
333 // which leads to significantly different quality. The quality and rate control 321 // which leads to significantly different quality. The quality and rate control
334 // settings in the tests below are defined for encoder speed setting 322 // settings in the tests below are defined for encoder speed setting
335 // |cpu_speed| <= ~6. A number of settings would need to be significantly 323 // |cpu_speed| <= ~6. A number of settings would need to be significantly
336 // modified for the |cpu_speed| = 12 case. For now, keep the tests below 324 // modified for the |cpu_speed| = 12 case. For now, keep the tests below
(...skipping 13 matching lines...) Expand all
350 #endif 338 #endif
351 TEST_F(VideoProcessorIntegrationTest, MAYBE_ProcessNoLossChangeBitRateVP8) { 339 TEST_F(VideoProcessorIntegrationTest, MAYBE_ProcessNoLossChangeBitRateVP8) {
352 // Bit rate and frame rate profile. 340 // Bit rate and frame rate profile.
353 RateProfile rate_profile; 341 RateProfile rate_profile;
354 SetRateProfile(&rate_profile, 0, 200, 30, 0); 342 SetRateProfile(&rate_profile, 0, 200, 30, 0);
355 SetRateProfile(&rate_profile, 1, 800, 30, 100); 343 SetRateProfile(&rate_profile, 1, 800, 30, 100);
356 SetRateProfile(&rate_profile, 2, 500, 30, 200); 344 SetRateProfile(&rate_profile, 2, 500, 30, 200);
357 rate_profile.frame_index_rate_update[3] = kNumFramesLong + 1; 345 rate_profile.frame_index_rate_update[3] = kNumFramesLong + 1;
358 rate_profile.num_frames = kNumFramesLong; 346 rate_profile.num_frames = kNumFramesLong;
359 // Codec/network settings. 347 // Codec/network settings.
360 ProcessParams process_settings(kHwCodec, kUseSingleCore, 0.0f, -1, 348 SetProcessParams(&config_, kHwCodec, kUseSingleCore, 0.0f, -1, kForemanCif,
361 kForemanCif, kVerboseLogging, kBatchMode); 349 kVerboseLogging, kBatchMode);
362 SetCodecSettings(&config_, &codec_settings_, kVideoCodecVP8, 1, false, true, 350 SetCodecSettings(&config_, &codec_settings_, kVideoCodecVP8, 1, false, true,
363 true, false, kResilienceOn, kCifWidth, kCifHeight); 351 true, false, kResilienceOn, kCifWidth, kCifHeight);
364 // Thresholds for expected quality. 352 // Thresholds for expected quality.
365 QualityThresholds quality_thresholds; 353 QualityThresholds quality_thresholds(34.0, 32.0, 0.85, 0.80);
366 SetQualityThresholds(&quality_thresholds, 34.0, 32.0, 0.85, 0.80);
367 // Thresholds for rate control. 354 // Thresholds for rate control.
368 RateControlThresholds rc_thresholds[3]; 355 RateControlThresholds rc_thresholds[3];
369 SetRateControlThresholds(rc_thresholds, 0, 0, 45, 20, 10, 15, 0, 1); 356 SetRateControlThresholds(rc_thresholds, 0, 0, 45, 20, 10, 15, 0, 1);
370 SetRateControlThresholds(rc_thresholds, 1, 0, 0, 25, 20, 10, 0, 0); 357 SetRateControlThresholds(rc_thresholds, 1, 0, 0, 25, 20, 10, 0, 0);
371 SetRateControlThresholds(rc_thresholds, 2, 0, 0, 25, 15, 10, 0, 0); 358 SetRateControlThresholds(rc_thresholds, 2, 0, 0, 25, 15, 10, 0, 0);
372 ProcessFramesAndVerify(quality_thresholds, rate_profile, process_settings, 359 ProcessFramesAndVerify(quality_thresholds, rate_profile, rc_thresholds,
373 rc_thresholds, nullptr /* visualization_params */); 360 nullptr /* visualization_params */);
374 } 361 }
375 362
376 // VP8: Run with no packet loss, with an update (decrease) in frame rate. 363 // VP8: Run with no packet loss, with an update (decrease) in frame rate.
377 // Lower frame rate means higher per-frame-bandwidth, so easier to encode. 364 // Lower frame rate means higher per-frame-bandwidth, so easier to encode.
378 // At the bitrate in this test, this means better rate control after the 365 // At the bitrate in this test, this means better rate control after the
379 // update(s) to lower frame rate. So expect less frame drops, and max values 366 // update(s) to lower frame rate. So expect less frame drops, and max values
380 // for the rate control metrics can be lower. One key frame (first frame only). 367 // for the rate control metrics can be lower. One key frame (first frame only).
381 // Note: quality after update should be higher but we currently compute quality 368 // Note: quality after update should be higher but we currently compute quality
382 // metrics averaged over whole sequence run. 369 // metrics averaged over whole sequence run.
383 // Too slow to finish before timeout on iOS. See webrtc:4755. 370 // Too slow to finish before timeout on iOS. See webrtc:4755.
384 #if defined(WEBRTC_ANDROID) || defined(WEBRTC_IOS) 371 #if defined(WEBRTC_ANDROID) || defined(WEBRTC_IOS)
385 #define MAYBE_ProcessNoLossChangeFrameRateFrameDropVP8 \ 372 #define MAYBE_ProcessNoLossChangeFrameRateFrameDropVP8 \
386 DISABLED_ProcessNoLossChangeFrameRateFrameDropVP8 373 DISABLED_ProcessNoLossChangeFrameRateFrameDropVP8
387 #else 374 #else
388 #define MAYBE_ProcessNoLossChangeFrameRateFrameDropVP8 \ 375 #define MAYBE_ProcessNoLossChangeFrameRateFrameDropVP8 \
389 ProcessNoLossChangeFrameRateFrameDropVP8 376 ProcessNoLossChangeFrameRateFrameDropVP8
390 #endif 377 #endif
391 TEST_F(VideoProcessorIntegrationTest, 378 TEST_F(VideoProcessorIntegrationTest,
392 MAYBE_ProcessNoLossChangeFrameRateFrameDropVP8) { 379 MAYBE_ProcessNoLossChangeFrameRateFrameDropVP8) {
393 config_.networking_config.packet_loss_probability = 0; 380 config_.networking_config.packet_loss_probability = 0;
394 // Bit rate and frame rate profile. 381 // Bit rate and frame rate profile.
395 RateProfile rate_profile; 382 RateProfile rate_profile;
396 SetRateProfile(&rate_profile, 0, 80, 24, 0); 383 SetRateProfile(&rate_profile, 0, 80, 24, 0);
397 SetRateProfile(&rate_profile, 1, 80, 15, 100); 384 SetRateProfile(&rate_profile, 1, 80, 15, 100);
398 SetRateProfile(&rate_profile, 2, 80, 10, 200); 385 SetRateProfile(&rate_profile, 2, 80, 10, 200);
399 rate_profile.frame_index_rate_update[3] = kNumFramesLong + 1; 386 rate_profile.frame_index_rate_update[3] = kNumFramesLong + 1;
400 rate_profile.num_frames = kNumFramesLong; 387 rate_profile.num_frames = kNumFramesLong;
401 // Codec/network settings. 388 // Codec/network settings.
402 ProcessParams process_settings(kHwCodec, kUseSingleCore, 0.0f, -1, 389 SetProcessParams(&config_, kHwCodec, kUseSingleCore, 0.0f, -1, kForemanCif,
403 kForemanCif, kVerboseLogging, kBatchMode); 390 kVerboseLogging, kBatchMode);
404 SetCodecSettings(&config_, &codec_settings_, kVideoCodecVP8, 1, false, true, 391 SetCodecSettings(&config_, &codec_settings_, kVideoCodecVP8, 1, false, true,
405 true, false, kResilienceOn, kCifWidth, kCifHeight); 392 true, false, kResilienceOn, kCifWidth, kCifHeight);
406 // Thresholds for expected quality. 393 // Thresholds for expected quality.
407 QualityThresholds quality_thresholds; 394 QualityThresholds quality_thresholds(31.0, 22.0, 0.80, 0.65);
408 SetQualityThresholds(&quality_thresholds, 31.0, 22.0, 0.80, 0.65);
409 // Thresholds for rate control. 395 // Thresholds for rate control.
410 RateControlThresholds rc_thresholds[3]; 396 RateControlThresholds rc_thresholds[3];
411 SetRateControlThresholds(rc_thresholds, 0, 40, 20, 75, 15, 60, 0, 1); 397 SetRateControlThresholds(rc_thresholds, 0, 40, 20, 75, 15, 60, 0, 1);
412 SetRateControlThresholds(rc_thresholds, 1, 10, 0, 25, 10, 35, 0, 0); 398 SetRateControlThresholds(rc_thresholds, 1, 10, 0, 25, 10, 35, 0, 0);
413 SetRateControlThresholds(rc_thresholds, 2, 0, 0, 20, 10, 15, 0, 0); 399 SetRateControlThresholds(rc_thresholds, 2, 0, 0, 20, 10, 15, 0, 0);
414 ProcessFramesAndVerify(quality_thresholds, rate_profile, process_settings, 400 ProcessFramesAndVerify(quality_thresholds, rate_profile, rc_thresholds,
415 rc_thresholds, nullptr /* visualization_params */); 401 nullptr /* visualization_params */);
416 } 402 }
417 403
418 // VP8: Run with no packet loss, with 3 temporal layers, with a rate update in 404 // VP8: Run with no packet loss, with 3 temporal layers, with a rate update in
419 // the middle of the sequence. The max values for the frame size mismatch and 405 // the middle of the sequence. The max values for the frame size mismatch and
420 // encoding rate mismatch are applied to each layer. 406 // encoding rate mismatch are applied to each layer.
421 // No dropped frames in this test, and internal spatial resizer is off. 407 // No dropped frames in this test, and internal spatial resizer is off.
422 // One key frame (first frame only) in sequence, so no spatial resizing. 408 // One key frame (first frame only) in sequence, so no spatial resizing.
423 // Too slow to finish before timeout on iOS. See webrtc:4755. 409 // Too slow to finish before timeout on iOS. See webrtc:4755.
424 #if defined(WEBRTC_ANDROID) || defined(WEBRTC_IOS) 410 #if defined(WEBRTC_ANDROID) || defined(WEBRTC_IOS)
425 #define MAYBE_ProcessNoLossTemporalLayersVP8 \ 411 #define MAYBE_ProcessNoLossTemporalLayersVP8 \
426 DISABLED_ProcessNoLossTemporalLayersVP8 412 DISABLED_ProcessNoLossTemporalLayersVP8
427 #else 413 #else
428 #define MAYBE_ProcessNoLossTemporalLayersVP8 ProcessNoLossTemporalLayersVP8 414 #define MAYBE_ProcessNoLossTemporalLayersVP8 ProcessNoLossTemporalLayersVP8
429 #endif 415 #endif
430 TEST_F(VideoProcessorIntegrationTest, MAYBE_ProcessNoLossTemporalLayersVP8) { 416 TEST_F(VideoProcessorIntegrationTest, MAYBE_ProcessNoLossTemporalLayersVP8) {
431 config_.networking_config.packet_loss_probability = 0; 417 config_.networking_config.packet_loss_probability = 0;
432 // Bit rate and frame rate profile. 418 // Bit rate and frame rate profile.
433 RateProfile rate_profile; 419 RateProfile rate_profile;
434 SetRateProfile(&rate_profile, 0, 200, 30, 0); 420 SetRateProfile(&rate_profile, 0, 200, 30, 0);
435 SetRateProfile(&rate_profile, 1, 400, 30, 150); 421 SetRateProfile(&rate_profile, 1, 400, 30, 150);
436 rate_profile.frame_index_rate_update[2] = kNumFramesLong + 1; 422 rate_profile.frame_index_rate_update[2] = kNumFramesLong + 1;
437 rate_profile.num_frames = kNumFramesLong; 423 rate_profile.num_frames = kNumFramesLong;
438 // Codec/network settings. 424 // Codec/network settings.
439 ProcessParams process_settings(kHwCodec, kUseSingleCore, 0.0f, -1, 425 SetProcessParams(&config_, kHwCodec, kUseSingleCore, 0.0f, -1, kForemanCif,
440 kForemanCif, kVerboseLogging, kBatchMode); 426 kVerboseLogging, kBatchMode);
441 SetCodecSettings(&config_, &codec_settings_, kVideoCodecVP8, 3, false, true, 427 SetCodecSettings(&config_, &codec_settings_, kVideoCodecVP8, 3, false, true,
442 true, false, kResilienceOn, kCifWidth, kCifHeight); 428 true, false, kResilienceOn, kCifWidth, kCifHeight);
443 // Thresholds for expected quality. 429 // Thresholds for expected quality.
444 QualityThresholds quality_thresholds; 430 QualityThresholds quality_thresholds(32.5, 30.0, 0.85, 0.80);
445 SetQualityThresholds(&quality_thresholds, 32.5, 30.0, 0.85, 0.80);
446 // Thresholds for rate control. 431 // Thresholds for rate control.
447 RateControlThresholds rc_thresholds[2]; 432 RateControlThresholds rc_thresholds[2];
448 SetRateControlThresholds(rc_thresholds, 0, 0, 20, 30, 10, 10, 0, 1); 433 SetRateControlThresholds(rc_thresholds, 0, 0, 20, 30, 10, 10, 0, 1);
449 SetRateControlThresholds(rc_thresholds, 1, 0, 0, 30, 15, 10, 0, 0); 434 SetRateControlThresholds(rc_thresholds, 1, 0, 0, 30, 15, 10, 0, 0);
450 ProcessFramesAndVerify(quality_thresholds, rate_profile, process_settings, 435 ProcessFramesAndVerify(quality_thresholds, rate_profile, rc_thresholds,
451 rc_thresholds, nullptr /* visualization_params */); 436 nullptr /* visualization_params */);
452 } 437 }
453 } // namespace test 438 } // namespace test
454 } // namespace webrtc 439 } // namespace webrtc
OLDNEW
« no previous file with comments | « webrtc/modules/video_coding/codecs/test/videoprocessor_integrationtest.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698