diff options
author | Angie Chiang <angiebird@google.com> | 2021-01-19 17:57:00 -0800 |
---|---|---|
committer | Angie Chiang <angiebird@google.com> | 2021-01-19 18:54:07 -0800 |
commit | d890579a2ec8a8a36b1e75b3fe6662faa99608e5 (patch) | |
tree | 498ef80f33fa26a79103e5add6bf1ba662e6ffb3 | |
parent | 27f1838519ea1354bb8a038ec4e9d2c6da0da994 (diff) | |
download | libvpx-d890579a2ec8a8a36b1e75b3fe6662faa99608e5.tar.gz libvpx-d890579a2ec8a8a36b1e75b3fe6662faa99608e5.tar.bz2 libvpx-d890579a2ec8a8a36b1e75b3fe6662faa99608e5.zip |
Add status in vp9_extrc_get_encodeframe_decision
Bug: webm:1716
Change-Id: Ie6d63a68539369c51fefefa528e299b00a967e29
-rw-r--r-- | vp9/encoder/vp9_ext_ratectrl.c | 12 | ||||
-rw-r--r-- | vp9/encoder/vp9_ext_ratectrl.h | 2 |
2 files changed, 11 insertions, 3 deletions
diff --git a/vp9/encoder/vp9_ext_ratectrl.c b/vp9/encoder/vp9_ext_ratectrl.c index 4a2e1b82d..ec6e198af 100644 --- a/vp9/encoder/vp9_ext_ratectrl.c +++ b/vp9/encoder/vp9_ext_ratectrl.c @@ -135,12 +135,16 @@ static int extrc_get_frame_type(FRAME_UPDATE_TYPE update_type) { } } -void vp9_extrc_get_encodeframe_decision( +vpx_codec_err_t vp9_extrc_get_encodeframe_decision( EXT_RATECTRL *ext_ratectrl, int show_index, int coding_index, int gop_index, FRAME_UPDATE_TYPE update_type, RefCntBuffer *ref_frame_bufs[MAX_INTER_REF_FRAMES], int ref_frame_flags, vpx_rc_encodeframe_decision_t *encode_frame_decision) { + if (ext_ratectrl == NULL) { + return VPX_CODEC_ERROR; + } if (ext_ratectrl->ready) { + vpx_rc_status_t rc_status; vpx_rc_encodeframe_info_t encode_frame_info; encode_frame_info.show_index = show_index; encode_frame_info.coding_index = coding_index; @@ -151,9 +155,13 @@ void vp9_extrc_get_encodeframe_decision( encode_frame_info.ref_frame_coding_indexes, encode_frame_info.ref_frame_valid_list); - ext_ratectrl->funcs.get_encodeframe_decision( + rc_status = ext_ratectrl->funcs.get_encodeframe_decision( ext_ratectrl->model, &encode_frame_info, encode_frame_decision); + if (rc_status == VPX_RC_ERROR) { + return VPX_CODEC_ERROR; + } } + return VPX_CODEC_OK; } void vp9_extrc_update_encodeframe_result(EXT_RATECTRL *ext_ratectrl, diff --git a/vp9/encoder/vp9_ext_ratectrl.h b/vp9/encoder/vp9_ext_ratectrl.h index fbb5ebf05..2082cd530 100644 --- a/vp9/encoder/vp9_ext_ratectrl.h +++ b/vp9/encoder/vp9_ext_ratectrl.h @@ -33,7 +33,7 @@ vpx_codec_err_t vp9_extrc_delete(EXT_RATECTRL *ext_ratectrl); vpx_codec_err_t vp9_extrc_send_firstpass_stats( EXT_RATECTRL *ext_ratectrl, const FIRST_PASS_INFO *first_pass_info); -void vp9_extrc_get_encodeframe_decision( +vpx_codec_err_t vp9_extrc_get_encodeframe_decision( EXT_RATECTRL *ext_ratectrl, int show_index, int coding_index, int gop_index, FRAME_UPDATE_TYPE update_type, RefCntBuffer *ref_frame_bufs[MAX_INTER_REF_FRAMES], int ref_frame_flags, |