]> git.sesse.net Git - ffmpeg/commitdiff
avcodec/mimic: Cleanup generically upon init failure
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
Sun, 15 Nov 2020 12:34:57 +0000 (13:34 +0100)
committerAndreas Rheinhardt <andreas.rheinhardt@gmail.com>
Tue, 24 Nov 2020 10:35:03 +0000 (11:35 +0100)
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
libavcodec/mimic.c

index 0f8103ef8574f882039a0963134e9f248de81e9a..e91ba4353f8de2ff2e93a5843802ed9316ee2d21 100644 (file)
@@ -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,
 };