diff options
author | Cheng Chen <chengchen@google.com> | 2022-06-06 16:46:55 -0700 |
---|---|---|
committer | Cheng Chen <chengchen@google.com> | 2022-06-07 11:42:25 -0700 |
commit | 7b1b9f7cd23e085d97c26ed026d2c817d78a14d6 (patch) | |
tree | 05799aadc817f4244af4530fa0d064d8f7807b46 /vp9/encoder | |
parent | 7bb4bd36122e55236148190625507efc90ec5b75 (diff) | |
download | libvpx-7b1b9f7cd23e085d97c26ed026d2c817d78a14d6.tar libvpx-7b1b9f7cd23e085d97c26ed026d2c817d78a14d6.tar.gz libvpx-7b1b9f7cd23e085d97c26ed026d2c817d78a14d6.tar.bz2 libvpx-7b1b9f7cd23e085d97c26ed026d2c817d78a14d6.zip |
L2E: Use libvpx's default q in case of invalid external value
If the external model recommends an invalid q value, we use the
default q selected by libvpx's rate control strategy.
We update the test so that when the external model wants to control
GOP decision, it could get per frame information and just recommend
an invalid q.
Change-Id: I69be4b0ee0800e7ab0706d305242bb87f001b1f7
Diffstat (limited to 'vp9/encoder')
-rw-r--r-- | vp9/encoder/vp9_encoder.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/vp9/encoder/vp9_encoder.c b/vp9/encoder/vp9_encoder.c index 87f369d3b..85bd70662 100644 --- a/vp9/encoder/vp9_encoder.c +++ b/vp9/encoder/vp9_encoder.c @@ -4510,8 +4510,12 @@ static void encode_with_recode_loop(VP9_COMP *cpi, size_t *size, uint8_t *dest vpx_internal_error(&cm->error, codec_status, "vp9_extrc_get_encodeframe_decision() failed"); } - q = encode_frame_decision.q_index; - ext_rc_max_frame_size = encode_frame_decision.max_frame_size; + // If the external model recommends a reserved value, we use + // libvpx's default q. + if (encode_frame_decision.q_index != VPX_DEFAULT_Q) { + q = encode_frame_decision.q_index; + ext_rc_max_frame_size = encode_frame_decision.max_frame_size; + } } vp9_set_quantizer(cpi, q); |