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

Side by Side Diff: modules/video_coding/codecs/test/videoprocessor_integrationtest.h

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) 2017 The WebRTC project authors. All Rights Reserved. 2 * Copyright (c) 2017 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 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
64 : min_avg_psnr(min_avg_psnr), 64 : min_avg_psnr(min_avg_psnr),
65 min_min_psnr(min_min_psnr), 65 min_min_psnr(min_min_psnr),
66 min_avg_ssim(min_avg_ssim), 66 min_avg_ssim(min_avg_ssim),
67 min_min_ssim(min_min_ssim) {} 67 min_min_ssim(min_min_ssim) {}
68 double min_avg_psnr; 68 double min_avg_psnr;
69 double min_min_psnr; 69 double min_min_psnr;
70 double min_avg_ssim; 70 double min_avg_ssim;
71 double min_min_ssim; 71 double min_min_ssim;
72 }; 72 };
73 73
74 struct BitstreamThresholds {
75 explicit BitstreamThresholds(size_t max_nalu_length)
76 : max_nalu_length(max_nalu_length) {}
77 size_t max_nalu_length;
78 };
79
74 // Should video files be saved persistently to disk for post-run visualization? 80 // Should video files be saved persistently to disk for post-run visualization?
75 struct VisualizationParams { 81 struct VisualizationParams {
76 bool save_encoded_ivf; 82 bool save_encoded_ivf;
77 bool save_decoded_y4m; 83 bool save_decoded_y4m;
78 }; 84 };
79 85
80 // Integration test for video processor. Encodes+decodes a clip and 86 // Integration test for video processor. Encodes+decodes a clip and
81 // writes it to the output directory. After completion, quality metrics 87 // writes it to the output directory. After completion, quality metrics
82 // (PSNR and SSIM) and rate control metrics are computed and compared to given 88 // (PSNR and SSIM) and rate control metrics are computed and compared to given
83 // thresholds, to verify that the quality and encoder response is acceptable. 89 // thresholds, to verify that the quality and encoder response is acceptable.
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
115 int max_bitrate_mismatch_percent, 121 int max_bitrate_mismatch_percent,
116 int max_num_frames_to_hit_target, 122 int max_num_frames_to_hit_target,
117 int num_spatial_resizes, 123 int num_spatial_resizes,
118 int num_key_frames, 124 int num_key_frames,
119 std::vector<RateControlThresholds>* rc_thresholds); 125 std::vector<RateControlThresholds>* rc_thresholds);
120 126
121 void ProcessFramesAndMaybeVerify( 127 void ProcessFramesAndMaybeVerify(
122 const RateProfile& rate_profile, 128 const RateProfile& rate_profile,
123 const std::vector<RateControlThresholds>* rc_thresholds, 129 const std::vector<RateControlThresholds>* rc_thresholds,
124 const QualityThresholds* quality_thresholds, 130 const QualityThresholds* quality_thresholds,
131 const BitstreamThresholds* bs_thresholds,
125 const VisualizationParams* visualization_params); 132 const VisualizationParams* visualization_params);
126 133
127 // Config. 134 // Config.
128 TestConfig config_; 135 TestConfig config_;
129 136
130 private: 137 private:
131 static const int kMaxNumTemporalLayers = 3; 138 static const int kMaxNumTemporalLayers = 3;
132 139
133 struct TestResults { 140 struct TestResults {
134 int KeyFrameSizeMismatchPercent() const { 141 int KeyFrameSizeMismatchPercent() const {
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
185 void PrintRateControlMetrics( 192 void PrintRateControlMetrics(
186 int rate_update_index, 193 int rate_update_index,
187 const std::vector<int>& num_dropped_frames, 194 const std::vector<int>& num_dropped_frames,
188 const std::vector<int>& num_spatial_resizes) const; 195 const std::vector<int>& num_spatial_resizes) const;
189 void VerifyRateControlMetrics( 196 void VerifyRateControlMetrics(
190 int rate_update_index, 197 int rate_update_index,
191 const std::vector<RateControlThresholds>* rc_thresholds, 198 const std::vector<RateControlThresholds>* rc_thresholds,
192 const std::vector<int>& num_dropped_frames, 199 const std::vector<int>& num_dropped_frames,
193 const std::vector<int>& num_spatial_resizes) const; 200 const std::vector<int>& num_spatial_resizes) const;
194 201
202 void VerifyBitstream(int frame_number,
203 const BitstreamThresholds *bs_thresholds);
204
195 // Codecs. 205 // Codecs.
196 std::unique_ptr<VideoEncoder> encoder_; 206 std::unique_ptr<VideoEncoder> encoder_;
197 std::unique_ptr<cricket::WebRtcVideoDecoderFactory> decoder_factory_; 207 std::unique_ptr<cricket::WebRtcVideoDecoderFactory> decoder_factory_;
198 VideoDecoder* decoder_; 208 VideoDecoder* decoder_;
199 209
200 // Helper objects. 210 // Helper objects.
201 std::unique_ptr<FrameReader> analysis_frame_reader_; 211 std::unique_ptr<FrameReader> analysis_frame_reader_;
202 std::unique_ptr<FrameWriter> analysis_frame_writer_; 212 std::unique_ptr<FrameWriter> analysis_frame_writer_;
203 std::unique_ptr<IvfFileWriter> encoded_frame_writer_; 213 std::unique_ptr<IvfFileWriter> encoded_frame_writer_;
204 std::unique_ptr<FrameWriter> decoded_frame_writer_; 214 std::unique_ptr<FrameWriter> decoded_frame_writer_;
205 PacketReader packet_reader_; 215 PacketReader packet_reader_;
206 std::unique_ptr<PacketManipulator> packet_manipulator_; 216 std::unique_ptr<PacketManipulator> packet_manipulator_;
207 Stats stats_; 217 Stats stats_;
208 std::unique_ptr<VideoProcessor> processor_; 218 std::unique_ptr<VideoProcessor> processor_;
209 219
210 // Quantities updated for every encoded frame. 220 // Quantities updated for every encoded frame.
211 TestResults actual_; 221 TestResults actual_;
212 222
213 // Rates set for every encoder rate update. 223 // Rates set for every encoder rate update.
214 TargetRates target_; 224 TargetRates target_;
215 }; 225 };
216 226
217 } // namespace test 227 } // namespace test
218 } // namespace webrtc 228 } // namespace webrtc
219 229
220 #endif // MODULES_VIDEO_CODING_CODECS_TEST_VIDEOPROCESSOR_INTEGRATIONTEST_H_ 230 #endif // MODULES_VIDEO_CODING_CODECS_TEST_VIDEOPROCESSOR_INTEGRATIONTEST_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698