X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fsmvjpegdec.c;h=f30d240e2c377cdaa77ce8941756bc6a8886b08e;hb=43b434210e597d484aef57c4139c3126d22b7e2b;hp=5eca9bb6a2679808194134eba29fb26d4a7f2aef;hpb=44e4a86c8afca4ac1f7498ff4419364b839a15f9;p=ffmpeg diff --git a/libavcodec/smvjpegdec.c b/libavcodec/smvjpegdec.c index 5eca9bb6a26..f30d240e2c3 100644 --- a/libavcodec/smvjpegdec.c +++ b/libavcodec/smvjpegdec.c @@ -94,7 +94,7 @@ static av_cold int smvjpeg_decode_init(AVCodecContext *avctx) SMVJpegDecodeContext *s = avctx->priv_data; AVCodec *codec; AVDictionary *thread_opt = NULL; - int ret = 0; + int ret = 0, r; s->frames_per_jpeg = 0; @@ -115,13 +115,14 @@ static av_cold int smvjpeg_decode_init(AVCodecContext *avctx) if (s->frames_per_jpeg <= 0) { av_log(avctx, AV_LOG_ERROR, "Invalid number of frames per jpeg.\n"); - ret = -1; + ret = AVERROR_INVALIDDATA; } codec = avcodec_find_decoder(AV_CODEC_ID_MJPEG); if (!codec) { av_log(avctx, AV_LOG_ERROR, "MJPEG codec not found\n"); - ret = -1; + smvjpeg_decode_end(avctx); + return AVERROR_DECODER_NOT_FOUND; } s->avctx = avcodec_alloc_context3(codec); @@ -130,9 +131,9 @@ static av_cold int smvjpeg_decode_init(AVCodecContext *avctx) s->avctx->refcounted_frames = 1; s->avctx->flags = avctx->flags; s->avctx->idct_algo = avctx->idct_algo; - if (ff_codec_open2_recursive(s->avctx, codec, &thread_opt) < 0) { + if ((r = ff_codec_open2_recursive(s->avctx, codec, &thread_opt)) < 0) { av_log(avctx, AV_LOG_ERROR, "MJPEG codec failed to open\n"); - ret = -1; + ret = r; } av_dict_free(&thread_opt);