Add unit tests for qp parser.

Add test for vp8/vp9 qp parser in both videoprocessor_integrationtest.
Check the qp from parser equal to that from the encoder
on every frame in every test.

Add test for vp8/vp9 qp parser in vp8/vp9_impl_test.
Check the qp parser on a single key frame.

BUG=None

Review-Url: https://codereview.webrtc.org/2903163002
Cr-Commit-Position: refs/heads/master@{#18334}
This commit is contained in:
jianj
2017-05-30 10:57:25 -07:00
committed by Commit Bot
parent 6c4bbfa06f
commit b5f5bdba77
6 changed files with 74 additions and 3 deletions

View File

@ -232,6 +232,16 @@ FrameType VideoProcessorImpl::EncodedFrameType(int frame_number) {
return frame_infos_[frame_number].encoded_frame_type;
}
int VideoProcessorImpl::GetQpFromEncoder(int frame_number) {
RTC_DCHECK_LT(frame_number, frame_infos_.size());
return frame_infos_[frame_number].qp_encoder;
}
int VideoProcessorImpl::GetQpFromBitstream(int frame_number) {
RTC_DCHECK_LT(frame_number, frame_infos_.size());
return frame_infos_[frame_number].qp_bitstream;
}
int VideoProcessorImpl::NumberDroppedFrames() {
return num_dropped_frames_;
}
@ -347,6 +357,14 @@ void VideoProcessorImpl::FrameEncoded(
FrameInfo* frame_info = &frame_infos_[frame_number];
frame_info->encoded_frame_size = encoded_image._length;
frame_info->encoded_frame_type = encoded_image._frameType;
frame_info->qp_encoder = encoded_image.qp_;
if (codec == kVideoCodecVP8) {
vp8::GetQp(encoded_image._buffer, encoded_image._length,
&frame_info->qp_bitstream);
} else if (codec == kVideoCodecVP9) {
vp9::GetQp(encoded_image._buffer, encoded_image._length,
&frame_info->qp_bitstream);
}
FrameStatistic* frame_stat = &stats_->stats_[frame_number];
frame_stat->encode_time_in_us =
GetElapsedTimeMicroseconds(frame_info->encode_start_ns, encode_stop_ns);