]> granicus.if.org Git - libvpx/commitdiff
Add status in vp9_extrc_get_encodeframe_decision
authorAngie Chiang <angiebird@google.com>
Wed, 20 Jan 2021 01:57:00 +0000 (17:57 -0800)
committerAngie Chiang <angiebird@google.com>
Wed, 20 Jan 2021 02:54:07 +0000 (18:54 -0800)
Bug: webm:1716
Change-Id: Ie6d63a68539369c51fefefa528e299b00a967e29

vp9/encoder/vp9_ext_ratectrl.c
vp9/encoder/vp9_ext_ratectrl.h

index 4a2e1b82dca2eb813a20ef57ccc609e0af690d24..ec6e198af0b2c9948b0927052971fcd77100475f 100644 (file)
@@ -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,
index fbb5ebf05d8b61bc6d0daca8d84bb61086a55212..2082cd530e5895f3c0f0fdbaf8831eb7734624a0 100644 (file)
@@ -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,