decoder.c: Remove return after long jump Bug: aomedia:444707595 Change-Id: If3c5f3bcd16725609298cfebb5e3f6dbac718106
diff --git a/av1/decoder/decoder.c b/av1/decoder/decoder.c index 0ae0b86..aecad2b 100644 --- a/av1/decoder/decoder.c +++ b/av1/decoder/decoder.c
@@ -260,16 +260,17 @@ const YV12_BUFFER_CONFIG *const cfg = get_ref_frame(cm, idx); if (cfg == NULL) { - aom_internal_error(&pbi->error, AOM_CODEC_ERROR, "No reference frame"); - return AOM_CODEC_ERROR; + aom_set_error(&pbi->error, AOM_CODEC_ERROR, "No reference frame"); + return pbi->error.error_code; } - if (!equal_dimensions(cfg, sd)) - aom_internal_error(&pbi->error, AOM_CODEC_ERROR, - "Incorrect buffer dimensions"); - else - aom_yv12_copy_frame(cfg, sd, num_planes); + if (!equal_dimensions(cfg, sd)) { + aom_set_error(&pbi->error, AOM_CODEC_ERROR, "Incorrect buffer dimensions"); + return pbi->error.error_code; + } - return pbi->error.error_code; + aom_yv12_copy_frame(cfg, sd, num_planes); + + return AOM_CODEC_OK; } static int equal_dimensions_and_border(const YV12_BUFFER_CONFIG *a, @@ -292,37 +293,35 @@ ref_buf = get_ref_frame(cm, idx); if (ref_buf == NULL) { - aom_internal_error(cm->error, AOM_CODEC_ERROR, "No reference frame"); - return AOM_CODEC_ERROR; + aom_set_error(cm->error, AOM_CODEC_ERROR, "No reference frame"); + return cm->error->error_code; } if (!use_external_ref) { if (!equal_dimensions(ref_buf, sd)) { - aom_internal_error(cm->error, AOM_CODEC_ERROR, - "Incorrect buffer dimensions"); - } else { - // Overwrite the reference frame buffer. - aom_yv12_copy_frame(sd, ref_buf, num_planes); + aom_set_error(cm->error, AOM_CODEC_ERROR, "Incorrect buffer dimensions"); + return cm->error->error_code; } + // Overwrite the reference frame buffer. + aom_yv12_copy_frame(sd, ref_buf, num_planes); } else { if (!equal_dimensions_and_border(ref_buf, sd)) { - aom_internal_error(cm->error, AOM_CODEC_ERROR, - "Incorrect buffer dimensions"); - } else { - // Overwrite the reference frame buffer pointers. - // Once we no longer need the external reference buffer, these pointers - // are restored. - ref_buf->store_buf_adr[0] = ref_buf->y_buffer; - ref_buf->store_buf_adr[1] = ref_buf->u_buffer; - ref_buf->store_buf_adr[2] = ref_buf->v_buffer; - ref_buf->y_buffer = sd->y_buffer; - ref_buf->u_buffer = sd->u_buffer; - ref_buf->v_buffer = sd->v_buffer; - ref_buf->use_external_reference_buffers = 1; + aom_set_error(cm->error, AOM_CODEC_ERROR, "Incorrect buffer dimensions"); + return cm->error->error_code; } + // Overwrite the reference frame buffer pointers. + // Once we no longer need the external reference buffer, these pointers + // are restored. + ref_buf->store_buf_adr[0] = ref_buf->y_buffer; + ref_buf->store_buf_adr[1] = ref_buf->u_buffer; + ref_buf->store_buf_adr[2] = ref_buf->v_buffer; + ref_buf->y_buffer = sd->y_buffer; + ref_buf->u_buffer = sd->u_buffer; + ref_buf->v_buffer = sd->v_buffer; + ref_buf->use_external_reference_buffers = 1; } - return cm->error->error_code; + return AOM_CODEC_OK; } aom_codec_err_t av1_copy_new_frame_dec(AV1_COMMON *cm, @@ -330,13 +329,14 @@ YV12_BUFFER_CONFIG *sd) { const int num_planes = av1_num_planes(cm); - if (!equal_dimensions_and_border(new_frame, sd)) - aom_internal_error(cm->error, AOM_CODEC_ERROR, - "Incorrect buffer dimensions"); - else - aom_yv12_copy_frame(new_frame, sd, num_planes); + if (!equal_dimensions_and_border(new_frame, sd)) { + aom_set_error(cm->error, AOM_CODEC_ERROR, "Incorrect buffer dimensions"); + return cm->error->error_code; + } - return cm->error->error_code; + aom_yv12_copy_frame(new_frame, sd, num_planes); + + return AOM_CODEC_OK; } static void release_current_frame(AV1Decoder *pbi) {