summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Ekström <jan.ekstrom@24i.com>2021-03-15 12:41:18 +0200
committerJan Ekström <jeebjp@gmail.com>2021-04-26 16:40:31 +0300
commitb71184faefce38c8a965c7d0e8552e049ae9e150 (patch)
tree5940fc4fc545bfeead7ca431fa771c0bc258f15b
parent343d54a73337f25fe802fc588bc163bab023c12f (diff)
downloadffmpeg-b71184faefce38c8a965c7d0e8552e049ae9e150.tar.gz
avcodec/ttmlenc: split header writing into its own function
Signed-off-by: Jan Ekström <jan.ekstrom@24i.com>
-rw-r--r--libavcodec/ttmlenc.c27
1 files changed, 18 insertions, 9 deletions
diff --git a/libavcodec/ttmlenc.c b/libavcodec/ttmlenc.c
index 3972b4368c..e3c155fdd1 100644
--- a/libavcodec/ttmlenc.c
+++ b/libavcodec/ttmlenc.c
@@ -173,16 +173,8 @@ static av_cold int ttml_encode_close(AVCodecContext *avctx)
return 0;
}
-static av_cold int ttml_encode_init(AVCodecContext *avctx)
+static int ttml_write_header_content(AVCodecContext *avctx)
{
- TTMLContext *s = avctx->priv_data;
-
- s->avctx = avctx;
-
- if (!(s->ass_ctx = ff_ass_split(avctx->subtitle_header))) {
- return AVERROR_INVALIDDATA;
- }
-
if (!(avctx->extradata = av_mallocz(TTMLENC_EXTRADATA_SIGNATURE_SIZE +
1 + AV_INPUT_BUFFER_PADDING_SIZE))) {
return AVERROR(ENOMEM);
@@ -192,8 +184,25 @@ static av_cold int ttml_encode_init(AVCodecContext *avctx)
memcpy(avctx->extradata, TTMLENC_EXTRADATA_SIGNATURE,
TTMLENC_EXTRADATA_SIGNATURE_SIZE);
+ return 0;
+}
+
+static av_cold int ttml_encode_init(AVCodecContext *avctx)
+{
+ TTMLContext *s = avctx->priv_data;
+ int ret = AVERROR_BUG;
+ s->avctx = avctx;
+
av_bprint_init(&s->buffer, 0, AV_BPRINT_SIZE_UNLIMITED);
+ if (!(s->ass_ctx = ff_ass_split(avctx->subtitle_header))) {
+ return AVERROR_INVALIDDATA;
+ }
+
+ if ((ret = ttml_write_header_content(avctx)) < 0) {
+ return ret;
+ }
+
return 0;
}