avcodec/decode: fix decoding when frames are allocated using AVHWAccel.alloc_frame()
authorJames Almer <jamrial@gmail.com>
Thu, 28 May 2020 02:10:04 +0000 (23:10 -0300)
committerJames Almer <jamrial@gmail.com>
Thu, 28 May 2020 02:10:04 +0000 (23:10 -0300)
Regression since a1133db30ef07896afd96f067e5c51531a4e85ab

Found-by: comex <comexk@gmail.com>
Signed-off-by: James Almer <jamrial@gmail.com>
libavcodec/decode.c

index e438135..eed89a8 100644 (file)
@@ -1889,7 +1889,7 @@ int ff_get_buffer(AVCodecContext *avctx, AVFrame *frame, int flags)
     if (hwaccel) {
         if (hwaccel->alloc_frame) {
             ret = hwaccel->alloc_frame(avctx, frame);
-            goto fail;
+            goto end;
         }
     } else
         avctx->sw_pix_fmt = avctx->pix_fmt;
@@ -1904,6 +1904,7 @@ int ff_get_buffer(AVCodecContext *avctx, AVFrame *frame, int flags)
     if (ret < 0)
         goto fail;
 
+end:
     if (avctx->codec_type == AVMEDIA_TYPE_VIDEO && !override_dimensions &&
         !(avctx->codec->caps_internal & FF_CODEC_CAP_EXPORTS_CROPPING)) {
         frame->width  = avctx->width;