Signed-off-by: Andreas Rheinhardt <andreas.rheinha...@gmail.com> --- libavcodec/smvjpegdec.c | 15 ++++----------- 1 file changed, 4 insertions(+), 11 deletions(-)
diff --git a/libavcodec/smvjpegdec.c b/libavcodec/smvjpegdec.c index 32756b54f3..807d990d00 100644 --- a/libavcodec/smvjpegdec.c +++ b/libavcodec/smvjpegdec.c @@ -105,37 +105,29 @@ static av_cold int smvjpeg_decode_init(AVCodecContext *avctx) return AVERROR(ENOMEM); s->picture[1] = av_frame_alloc(); - if (!s->picture[1]) { - av_frame_free(&s->picture[0]); + if (!s->picture[1]) return AVERROR(ENOMEM); - } s->jpg.picture_ptr = s->picture[0]; codec = avcodec_find_decoder(AV_CODEC_ID_MJPEG); if (!codec) { av_log(avctx, AV_LOG_ERROR, "MJPEG codec not found\n"); - smvjpeg_decode_end(avctx); return AVERROR_DECODER_NOT_FOUND; } s->avctx = avcodec_alloc_context3(codec); - if (!s->avctx) { - smvjpeg_decode_end(avctx); + if (!s->avctx) return AVERROR(ENOMEM); - } av_dict_set(&thread_opt, "threads", "1", 0); s->avctx->refcounted_frames = 1; s->avctx->flags = avctx->flags; s->avctx->idct_algo = avctx->idct_algo; - if ((ret = ff_codec_open2_recursive(s->avctx, codec, &thread_opt)) < 0) { + if ((ret = ff_codec_open2_recursive(s->avctx, codec, &thread_opt)) < 0) av_log(avctx, AV_LOG_ERROR, "MJPEG codec failed to open\n"); - } av_dict_free(&thread_opt); - if (ret < 0) - smvjpeg_decode_end(avctx); return ret; } @@ -219,4 +211,5 @@ AVCodec ff_smvjpeg_decoder = { .close = smvjpeg_decode_end, .decode = smvjpeg_decode_frame, .priv_class = &smvjpegdec_class, + .caps_internal = FF_CODEC_CAP_INIT_CLEANUP, }; -- 2.25.1 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".