diff --git a/libavcodec/vmdvideo.c b/libavcodec/vmdvideo.c index 15846919d8..ad88a43ae3 100644 --- a/libavcodec/vmdvideo.c +++ b/libavcodec/vmdvideo.c @@ -423,10 +423,8 @@ static av_cold int vmdvideo_decode_init(AVCodecContext *avctx) } s->prev_frame = av_frame_alloc(); - if (!s->prev_frame) { - vmdvideo_decode_end(avctx); + if (!s->prev_frame) return AVERROR(ENOMEM); - } return 0; } @@ -477,4 +475,5 @@ const AVCodec ff_vmdvideo_decoder = { .close = vmdvideo_decode_end, .decode = vmdvideo_decode_frame, .capabilities = AV_CODEC_CAP_DR1, + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, };