From 2ccb45511fa9f1c7f57d171d3e7f41a604e07a71 Mon Sep 17 00:00:00 2001 From: Andreas Rheinhardt Date: Tue, 19 Mar 2024 23:37:11 +0100 Subject: [PATCH] avformat/ttmlenc: Avoid unnecessary block Signed-off-by: Andreas Rheinhardt --- libavformat/ttmlenc.c | 53 ++++++++++++++++++++----------------------- 1 file changed, 25 insertions(+), 28 deletions(-) diff --git a/libavformat/ttmlenc.c b/libavformat/ttmlenc.c index af2e2b85a5..1ffbd66f80 100644 --- a/libavformat/ttmlenc.c +++ b/libavformat/ttmlenc.c @@ -124,38 +124,35 @@ static int ttml_set_header_values_from_extradata( static int ttml_write_header(AVFormatContext *ctx) { TTMLMuxContext *ttml_ctx = ctx->priv_data; + AVStream *st = ctx->streams[0]; + AVIOContext *pb = ctx->pb; + + const AVDictionaryEntry *lang = av_dict_get(st->metadata, "language", NULL, + 0); + const char *printed_lang = (lang && lang->value) ? lang->value : ""; + ttml_ctx->document_written = 0; + ttml_ctx->input_type = ff_is_ttml_stream_paragraph_based(st->codecpar) ? + PACKET_TYPE_PARAGRAPH : + PACKET_TYPE_DOCUMENT; - { - AVStream *st = ctx->streams[0]; - AVIOContext *pb = ctx->pb; + avpriv_set_pts_info(st, 64, 1, 1000); - AVDictionaryEntry *lang = av_dict_get(st->metadata, "language", NULL, - 0); - const char *printed_lang = (lang && lang->value) ? lang->value : ""; - - ttml_ctx->input_type = ff_is_ttml_stream_paragraph_based(st->codecpar) ? - PACKET_TYPE_PARAGRAPH : - PACKET_TYPE_DOCUMENT; - - avpriv_set_pts_info(st, 64, 1, 1000); - - if (ttml_ctx->input_type == PACKET_TYPE_PARAGRAPH) { - struct TTMLHeaderParameters header_params; - int ret = ttml_set_header_values_from_extradata( - st->codecpar, &header_params); - if (ret < 0) { - av_log(ctx, AV_LOG_ERROR, - "Failed to parse TTML header values from extradata: " - "%s!\n", av_err2str(ret)); - return ret; - } - - avio_printf(pb, ttml_header_text, - header_params.tt_element_params, - printed_lang, - header_params.pre_body_elements); + if (ttml_ctx->input_type == PACKET_TYPE_PARAGRAPH) { + struct TTMLHeaderParameters header_params; + int ret = ttml_set_header_values_from_extradata( + st->codecpar, &header_params); + if (ret < 0) { + av_log(ctx, AV_LOG_ERROR, + "Failed to parse TTML header values from extradata: " + "%s!\n", av_err2str(ret)); + return ret; } + + avio_printf(pb, ttml_header_text, + header_params.tt_element_params, + printed_lang, + header_params.pre_body_elements); } return 0;