summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libavcodec/vaapi_decode.c14
1 files changed, 8 insertions, 6 deletions
diff --git a/libavcodec/vaapi_decode.c b/libavcodec/vaapi_decode.c
index ece75c0815..69512e1d45 100644
--- a/libavcodec/vaapi_decode.c
+++ b/libavcodec/vaapi_decode.c
@@ -200,12 +200,8 @@ int ff_vaapi_decode_issue(AVCodecContext *avctx,
AV_VAAPI_DRIVER_QUIRK_RENDER_PARAM_BUFFERS)
ff_vaapi_decode_destroy_buffers(avctx, pic);
- pic->nb_param_buffers = 0;
- pic->nb_slices = 0;
- pic->slices_allocated = 0;
- av_freep(&pic->slice_buffers);
-
- return 0;
+ err = 0;
+ goto exit;
fail_with_picture:
vas = vaEndPicture(ctx->hwctx->display, ctx->va_context);
@@ -216,6 +212,12 @@ fail_with_picture:
fail:
ff_vaapi_decode_destroy_buffers(avctx, pic);
fail_at_end:
+exit:
+ pic->nb_param_buffers = 0;
+ pic->nb_slices = 0;
+ pic->slices_allocated = 0;
+ av_freep(&pic->slice_buffers);
+
return err;
}