summaryrefslogtreecommitdiff
path: root/vp9/encoder
diff options
context:
space:
mode:
authorCheng Chen <chengchen@google.com>2022-06-06 16:46:55 -0700
committerCheng Chen <chengchen@google.com>2022-06-07 11:42:25 -0700
commit7b1b9f7cd23e085d97c26ed026d2c817d78a14d6 (patch)
tree05799aadc817f4244af4530fa0d064d8f7807b46 /vp9/encoder
parent7bb4bd36122e55236148190625507efc90ec5b75 (diff)
downloadlibvpx-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.c8
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);