diff --git a/libavcodec/h264.c b/libavcodec/h264.c index 2361660327..28b14cd6a0 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -52,6 +52,8 @@ #include "thread.h" #include "vdpau_compat.h" +static int h264_decode_end(AVCodecContext *avctx); + const uint16_t ff_h264_mb_sizes[4] = { 256, 384, 512, 768 }; int avpriv_h264_has_num_reorder_frames(AVCodecContext *avctx) @@ -679,7 +681,7 @@ av_cold int ff_h264_decode_init(AVCodecContext *avctx) if (avctx->extradata_size > 0 && avctx->extradata) { ret = ff_h264_decode_extradata(h, avctx->extradata, avctx->extradata_size); if (ret < 0) { - ff_h264_free_context(h); + h264_decode_end(avctx); return ret; } }