avcodec/4xm: Cleanup generically on init failure

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
Andreas Rheinhardt 2022-02-08 13:11:39 +01:00
parent c6fcd2ae36
commit 21c41237d2
1 changed files with 2 additions and 4 deletions

View File

@ -1008,10 +1008,8 @@ static av_cold int decode_init(AVCodecContext *avctx)
f->frame_buffer = av_mallocz(avctx->width * avctx->height * 2);
f->last_frame_buffer = av_mallocz(avctx->width * avctx->height * 2);
if (!f->frame_buffer || !f->last_frame_buffer) {
decode_end(avctx);
if (!f->frame_buffer || !f->last_frame_buffer)
return AVERROR(ENOMEM);
}
f->version = AV_RL32(avctx->extradata) >> 16;
ff_blockdsp_init(&f->bdsp, avctx);
@ -1038,5 +1036,5 @@ const AVCodec ff_fourxm_decoder = {
.close = decode_end,
.decode = decode_frame,
.capabilities = AV_CODEC_CAP_DR1,
.caps_internal = FF_CODEC_CAP_INIT_THREADSAFE,
.caps_internal = FF_CODEC_CAP_INIT_THREADSAFE | FF_CODEC_CAP_INIT_CLEANUP,
};