diff options
author | angiebird <angiebird@google.com> | 2020-08-03 19:49:43 -0700 |
---|---|---|
committer | angiebird <angiebird@google.com> | 2020-08-07 16:48:08 -0700 |
commit | 3ec043a795cdf4dfa4cf31a9a0c82cbeef52c866 (patch) | |
tree | 77b8045998bbcb18446ffa4237268bd4afd82750 /test | |
parent | bb7a2ccc38475ce0e70be134b5bf862000a3fc82 (diff) | |
download | libvpx-3ec043a795cdf4dfa4cf31a9a0c82cbeef52c866.tar libvpx-3ec043a795cdf4dfa4cf31a9a0c82cbeef52c866.tar.gz libvpx-3ec043a795cdf4dfa4cf31a9a0c82cbeef52c866.tar.bz2 libvpx-3ec043a795cdf4dfa4cf31a9a0c82cbeef52c866.zip |
Add rq_history to encode_frame_result
Change-Id: Ic2a52dcf5e5a6d57b80d390a2c48ee498e89e7b2
Diffstat (limited to 'test')
-rw-r--r-- | test/simple_encode_test.cc | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/test/simple_encode_test.cc b/test/simple_encode_test.cc index 1790b56ac..c5674466d 100644 --- a/test/simple_encode_test.cc +++ b/test/simple_encode_test.cc @@ -163,6 +163,40 @@ TEST_F(SimpleEncodeTest, ObserveKeyFrameMap) { simple_encode.EndEncode(); } +TEST_F(SimpleEncodeTest, EncodeFrameWithTargetFrameBits) { + SimpleEncode simple_encode(width_, height_, frame_rate_num_, frame_rate_den_, + target_bitrate_, num_frames_, + in_file_path_str_.c_str()); + simple_encode.ComputeFirstPassStats(); + const int num_coding_frames = simple_encode.GetCodingFrameNum(); + simple_encode.StartEncode(); + for (int i = 0; i < num_coding_frames; ++i) { + EncodeFrameInfo encode_frame_info = simple_encode.GetNextEncodeFrameInfo(); + int target_frame_bits = 20000; + if (encode_frame_info.frame_type == kFrameTypeKey || + encode_frame_info.frame_type == kFrameTypeAltRef || + encode_frame_info.frame_type == kFrameTypeGolden) { + target_frame_bits = 100000; + } + if (encode_frame_info.frame_type == kFrameTypeOverlay) { + target_frame_bits = 2000; + } + + EncodeFrameResult encode_frame_result; + simple_encode.EncodeFrameWithTargetFrameBits(&encode_frame_result, + target_frame_bits); + const int recode_count = encode_frame_result.recode_count; + // TODO(angiebird): Replace 7 by RATE_CTRL_MAX_RECODE_NUM + EXPECT_LE(recode_count, 7); + EXPECT_GE(recode_count, 1); + + double diff = fabs((double)encode_frame_result.coding_data_bit_size - + target_frame_bits); + EXPECT_LE(diff * 100 / target_frame_bits, 15); + } + simple_encode.EndEncode(); +} + TEST_F(SimpleEncodeTest, EncodeFrameWithQuantizeIndex) { SimpleEncode simple_encode(width_, height_, frame_rate_num_, frame_rate_den_, target_bitrate_, num_frames_, |