aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2020-11-15 13:34:57 +0100
committerAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2020-11-24 11:35:03 +0100
commit3066b243e96f2dfa3fd405b2b89a8e8574e398dc (patch)
tree99fcb799e48f00c41fed09ef32073755410ad5d8
parente9d06fef62d811828cf49c4d0c383ddacc22884d (diff)
downloadffmpeg-3066b243e96f2dfa3fd405b2b89a8e8574e398dc.tar.gz
avcodec/mimic: Cleanup generically upon init failure
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
-rw-r--r--libavcodec/mimic.c6
1 files changed, 2 insertions, 4 deletions
diff --git a/libavcodec/mimic.c b/libavcodec/mimic.c
index 0f8103ef85..e91ba4353f 100644
--- a/libavcodec/mimic.c
+++ b/libavcodec/mimic.c
@@ -155,10 +155,8 @@ static av_cold int mimic_decode_init(AVCodecContext *avctx)
for (i = 0; i < FF_ARRAY_ELEMS(ctx->frames); i++) {
ctx->frames[i].f = av_frame_alloc();
- if (!ctx->frames[i].f) {
- mimic_decode_end(avctx);
+ if (!ctx->frames[i].f)
return AVERROR(ENOMEM);
- }
}
return 0;
@@ -460,5 +458,5 @@ AVCodec ff_mimic_decoder = {
.decode = mimic_decode_frame,
.capabilities = AV_CODEC_CAP_DR1 | AV_CODEC_CAP_FRAME_THREADS,
.update_thread_context = ONLY_IF_THREADS_ENABLED(mimic_decode_update_thread_context),
- .caps_internal = FF_CODEC_CAP_ALLOCATE_PROGRESS,
+ .caps_internal = FF_CODEC_CAP_ALLOCATE_PROGRESS | FF_CODEC_CAP_INIT_CLEANUP,
};