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
30#include "libavutil/avstring.h"30#include "libavutil/avstring.h"
31#include "avformat.h"31#include "avformat.h"
32#include "internal.h"32#include "internal.h"
33#include "ttmlenc.h"
33#include "libavcodec/ttmlenc.h"34#include "libavcodec/ttmlenc.h"
34#include "libavutil/internal.h"35#include "libavutil/internal.h"
35 36
@@ -138,13 +139,7 @@ static int ttml_write_header(AVFormatContext *ctx) · 102 unmodified lines
138 0);139 0);
139 const char *printed_lang = (lang && lang->value) ? lang->value : "";140 const char *printed_lang = (lang && lang->value) ? lang->value : "";
140 141
141 // Not perfect, but decide whether the packet is a document or not142 ttml_ctx->input_type = ff_is_ttml_stream_paragraph_based(st->codecpar) ?
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)) ?
148 PACKET_TYPE_PARAGRAPH :143 PACKET_TYPE_PARAGRAPH :
149 PACKET_TYPE_DOCUMENT;144 PACKET_TYPE_DOCUMENT;
150 145
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
28static 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