diff --git a/libavcodec/tiff.c b/libavcodec/tiff.c index 9f24796a88..f537e99b5a 100644 --- a/libavcodec/tiff.c +++ b/libavcodec/tiff.c @@ -2090,8 +2090,6 @@ static av_cold int tiff_init(AVCodecContext *avctx) s->avctx_mjpeg->idct_algo = avctx->idct_algo; ret = ff_codec_open2_recursive(s->avctx_mjpeg, codec, NULL); if (ret < 0) { - av_frame_free(&s->jpgframe); - avcodec_free_context(&s->avctx_mjpeg); return ret; } @@ -2142,5 +2140,6 @@ AVCodec ff_tiff_decoder = { .decode = decode_frame, .init_thread_copy = ONLY_IF_THREADS_ENABLED(tiff_init), .capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_FRAME_THREADS, + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, .priv_class = &tiff_decoder_class, };