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

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

Issue 2903163002: Add unit tests for qp parser. (Closed)
Patch Set: Refactor. Created 3 years, 6 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 214 matching lines...) Expand 10 before | Expand all | Expand 10 after
225 size_t VideoProcessorImpl::EncodedFrameSize(int frame_number) { 225 size_t VideoProcessorImpl::EncodedFrameSize(int frame_number) {
226 RTC_DCHECK_LT(frame_number, frame_infos_.size()); 226 RTC_DCHECK_LT(frame_number, frame_infos_.size());
227 return frame_infos_[frame_number].encoded_frame_size; 227 return frame_infos_[frame_number].encoded_frame_size;
228 } 228 }
229 229
230 FrameType VideoProcessorImpl::EncodedFrameType(int frame_number) { 230 FrameType VideoProcessorImpl::EncodedFrameType(int frame_number) {
231 RTC_DCHECK_LT(frame_number, frame_infos_.size()); 231 RTC_DCHECK_LT(frame_number, frame_infos_.size());
232 return frame_infos_[frame_number].encoded_frame_type; 232 return frame_infos_[frame_number].encoded_frame_type;
233 } 233 }
234 234
235 int VideoProcessorImpl::GetQpFromEncoder(int frame_number) {
236 RTC_DCHECK_LT(frame_number, frame_infos_.size());
237 return frame_infos_[frame_number].qp_encoder;
238 }
239
240 int VideoProcessorImpl::GetQpFromBitstream(int frame_number) {
241 RTC_DCHECK_LT(frame_number, frame_infos_.size());
242 return frame_infos_[frame_number].qp_bitstream;
243 }
244
235 int VideoProcessorImpl::NumberDroppedFrames() { 245 int VideoProcessorImpl::NumberDroppedFrames() {
236 return num_dropped_frames_; 246 return num_dropped_frames_;
237 } 247 }
238 248
239 int VideoProcessorImpl::NumberSpatialResizes() { 249 int VideoProcessorImpl::NumberSpatialResizes() {
240 return num_spatial_resizes_; 250 return num_spatial_resizes_;
241 } 251 }
242 252
243 bool VideoProcessorImpl::ProcessFrame(int frame_number) { 253 bool VideoProcessorImpl::ProcessFrame(int frame_number) {
244 RTC_DCHECK_GE(frame_number, 0); 254 RTC_DCHECK_GE(frame_number, 0);
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after
340 } 350 }
341 // Ensure strict monotonicity. 351 // Ensure strict monotonicity.
342 RTC_CHECK_GT(frame_number, last_encoded_frame_num_); 352 RTC_CHECK_GT(frame_number, last_encoded_frame_num_);
343 last_encoded_frame_num_ = frame_number; 353 last_encoded_frame_num_ = frame_number;
344 354
345 // Frame is not dropped, so update frame information and statistics. 355 // Frame is not dropped, so update frame information and statistics.
346 RTC_DCHECK_LT(frame_number, frame_infos_.size()); 356 RTC_DCHECK_LT(frame_number, frame_infos_.size());
347 FrameInfo* frame_info = &frame_infos_[frame_number]; 357 FrameInfo* frame_info = &frame_infos_[frame_number];
348 frame_info->encoded_frame_size = encoded_image._length; 358 frame_info->encoded_frame_size = encoded_image._length;
349 frame_info->encoded_frame_type = encoded_image._frameType; 359 frame_info->encoded_frame_type = encoded_image._frameType;
360 frame_info->qp_encoder = encoded_image.qp_;
361 if (codec == kVideoCodecVP8) {
362 vp8::GetQp(encoded_image._buffer, encoded_image._length,
363 &frame_info->qp_bitstream);
364 } else if (codec == kVideoCodecVP9) {
365 vp9::GetQp(encoded_image._buffer, encoded_image._length,
366 &frame_info->qp_bitstream);
367 }
350 FrameStatistic* frame_stat = &stats_->stats_[frame_number]; 368 FrameStatistic* frame_stat = &stats_->stats_[frame_number];
351 frame_stat->encode_time_in_us = 369 frame_stat->encode_time_in_us =
352 GetElapsedTimeMicroseconds(frame_info->encode_start_ns, encode_stop_ns); 370 GetElapsedTimeMicroseconds(frame_info->encode_start_ns, encode_stop_ns);
353 frame_stat->encoding_successful = true; 371 frame_stat->encoding_successful = true;
354 frame_stat->encoded_frame_length_in_bytes = encoded_image._length; 372 frame_stat->encoded_frame_length_in_bytes = encoded_image._length;
355 frame_stat->frame_number = frame_number; 373 frame_stat->frame_number = frame_number;
356 frame_stat->frame_type = encoded_image._frameType; 374 frame_stat->frame_type = encoded_image._frameType;
357 frame_stat->qp = encoded_image.qp_; 375 frame_stat->qp = encoded_image.qp_;
358 frame_stat->bit_rate_in_kbps = encoded_image._length * bit_rate_factor_; 376 frame_stat->bit_rate_in_kbps = encoded_image._length * bit_rate_factor_;
359 frame_stat->total_packets = 377 frame_stat->total_packets =
(...skipping 137 matching lines...) Expand 10 before | Expand all | Expand 10 after
497 if (decoded_frame_writer_) { 515 if (decoded_frame_writer_) {
498 RTC_DCHECK_EQ(extracted_length, decoded_frame_writer_->FrameLength()); 516 RTC_DCHECK_EQ(extracted_length, decoded_frame_writer_->FrameLength());
499 RTC_CHECK(decoded_frame_writer_->WriteFrame(extracted_buffer.data())); 517 RTC_CHECK(decoded_frame_writer_->WriteFrame(extracted_buffer.data()));
500 } 518 }
501 519
502 last_decoded_frame_buffer_ = std::move(extracted_buffer); 520 last_decoded_frame_buffer_ = std::move(extracted_buffer);
503 } 521 }
504 522
505 } // namespace test 523 } // namespace test
506 } // namespace webrtc 524 } // namespace webrtc
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698