summaryrefslogtreecommitdiff
path: root/libavcodec/movtextenc.c
diff options
context:
space:
mode:
authorAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2020-10-17 07:47:43 +0200
committerAndreas Rheinhardt <andreas.rheinhardt@gmail.com>2020-10-19 21:45:22 +0200
commit21346672270ae723aa774a9c8b0749954a75b3df (patch)
tree1a25e85383d453e00c7fd6bd2b440bc9791387b5 /libavcodec/movtextenc.c
parenteab812d6d61912cddbfbe72ad4419286eb43514d (diff)
avcodec/movtextenc: Cleanup generically on init failure
Reviewed-by: Philip Langdale <philipl@overt.org> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@gmail.com>
Diffstat (limited to 'libavcodec/movtextenc.c')
-rw-r--r--libavcodec/movtextenc.c14
1 files changed, 5 insertions, 9 deletions
diff --git a/libavcodec/movtextenc.c b/libavcodec/movtextenc.c
index 2082dc9b25..1bef21e0b9 100644
--- a/libavcodec/movtextenc.c
+++ b/libavcodec/movtextenc.c
@@ -30,6 +30,7 @@
#include "ass_split.h"
#include "ass.h"
#include "bytestream.h"
+#include "internal.h"
#define STYLE_FLAG_BOLD (1<<0)
#define STYLE_FLAG_ITALIC (1<<1)
@@ -331,19 +332,13 @@ static av_cold int mov_text_encode_init(AVCodecContext *avctx)
av_bprint_init(&s->buffer, 0, AV_BPRINT_SIZE_UNLIMITED);
s->ass_ctx = ff_ass_split(avctx->subtitle_header);
- if (!s->ass_ctx) {
- ret = AVERROR_INVALIDDATA;
- goto fail;
- }
+ if (!s->ass_ctx)
+ return AVERROR_INVALIDDATA;
ret = encode_sample_description(avctx);
if (ret < 0)
- goto fail;
+ return ret;
return 0;
-
-fail:
- mov_text_encode_close(avctx);
- return ret;
}
// Start a new style box if needed
@@ -736,4 +731,5 @@ AVCodec ff_movtext_encoder = {
.init = mov_text_encode_init,
.encode_sub = mov_text_encode_frame,
.close = mov_text_encode_close,
+ .caps_internal = FF_CODEC_CAP_INIT_CLEANUP,
};