History

avformat/ttml: split TTML paragraph based or not check into header

This way it can be re-utilized in movenc.

Jan Ekström committed 5 years ago

Commit 460beb91 parent 94653e02 files · +41 −7Browse files

Unified · Split

2 files
  1. libavformat/ttmlenc.c +2 −7
  2. libavformat/ttmlenc.h +39 −0
libavformat/ttmlenc.c+2−7
@@ -30,6 +30,7 @@ · 29 unmodified lines
3030 #include "libavutil/avstring.h"
3131 #include "avformat.h"
3232 #include "internal.h"
33+#include "ttmlenc.h"
3334 #include "libavcodec/ttmlenc.h"
3435 #include "libavutil/internal.h"
3536
@@ -138,13 +139,7 @@ static int ttml_write_header(AVFormatContext *ctx) · 102 unmodified lines
138139 0);
139140 const char *printed_lang = (lang && lang->value) ? lang->value : "";
140141
141− // Not perfect, but decide whether the packet is a document or not
142− // by the existence of the lavc ttmlenc extradata.
143− ttml_ctx->input_type = (st->codecpar->extradata &&
144− st->codecpar->extradata_size >= TTMLENC_EXTRADATA_SIGNATURE_SIZE &&
145− !memcmp(st->codecpar->extradata,
146− TTMLENC_EXTRADATA_SIGNATURE,
147− TTMLENC_EXTRADATA_SIGNATURE_SIZE)) ?
142+ ttml_ctx->input_type = ff_is_ttml_stream_paragraph_based(st->codecpar) ?
148143 PACKET_TYPE_PARAGRAPH :
149144 PACKET_TYPE_DOCUMENT;
150145
libavformat/ttmlenc.h+39−0
@@ -0,0 +1,39 @@
1+/*
2+ * Generic TTML helpers
3+ * Copyright (c) 2021 24i
4+ *
5+ * This file is part of FFmpeg.
6+ *
7+ * FFmpeg is free software; you can redistribute it and/or
8+ * modify it under the terms of the GNU Lesser General Public
9+ * License as published by the Free Software Foundation; either
10+ * version 2.1 of the License, or (at your option) any later version.
11+ *
12+ * FFmpeg is distributed in the hope that it will be useful,
13+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
14+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15+ * Lesser General Public License for more details.
16+ *
17+ * You should have received a copy of the GNU Lesser General Public
18+ * License along with FFmpeg; if not, write to the Free Software
19+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20+ */
21+
22+#ifndef AVFORMAT_TTMLENC_H
23+#define AVFORMAT_TTMLENC_H
24+
25+#include "libavcodec/codec_par.h"
26+#include "libavcodec/ttmlenc.h"
27+
28+static inline unsigned int ff_is_ttml_stream_paragraph_based(const AVCodecParameters *codecpar)
29+{
30+ // Not perfect, but decide whether the packet is a document or not
31+ // by the existence of the lavc ttmlenc extradata.
32+ return (codecpar->extradata &&
33+ codecpar->extradata_size >= TTMLENC_EXTRADATA_SIGNATURE_SIZE &&
34+ !memcmp(codecpar->extradata,
35+ TTMLENC_EXTRADATA_SIGNATURE,
36+ TTMLENC_EXTRADATA_SIGNATURE_SIZE));
37+}
38+
39+#endif /* AVFORMAT_TTMLENC_H */

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t