mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-28 02:12:28 +00:00
avformat/mov: enable identifying TTML subtitle streams as such
The contents are full TTML XML documents. TTML writing tests' results are updated as the streams are now properly identified as TTML ones. Signed-off-by: Jan Ekström <jan.ekstrom@24i.com>
This commit is contained in:
parent
7de3fcb059
commit
b300552dfb
@ -2263,6 +2263,11 @@ static int mov_codec_id(AVStream *st, uint32_t format)
|
||||
(st->codecpar->codec_type == AVMEDIA_TYPE_SUBTITLE &&
|
||||
st->codecpar->codec_id == AV_CODEC_ID_NONE)) {
|
||||
id = ff_codec_get_id(ff_codec_movsubtitle_tags, format);
|
||||
if (id <= 0) {
|
||||
id = (format == MOV_MP4_TTML_TAG || format == MOV_ISMV_TTML_TAG) ?
|
||||
AV_CODEC_ID_TTML : id;
|
||||
}
|
||||
|
||||
if (id > 0)
|
||||
st->codecpar->codec_type = AVMEDIA_TYPE_SUBTITLE;
|
||||
else
|
||||
@ -2457,8 +2462,10 @@ static void mov_parse_stsd_subtitle(MOVContext *c, AVIOContext *pb,
|
||||
// ttxt stsd contains display flags, justification, background
|
||||
// color, fonts, and default styles, so fake an atom to read it
|
||||
MOVAtom fake_atom = { .size = size };
|
||||
// mp4s contains a regular esds atom
|
||||
if (st->codecpar->codec_tag != AV_RL32("mp4s"))
|
||||
// mp4s contains a regular esds atom, dfxp ISMV TTML has no content
|
||||
// in extradata unlike stpp MP4 TTML.
|
||||
if (st->codecpar->codec_tag != AV_RL32("mp4s") &&
|
||||
st->codecpar->codec_tag != MOV_ISMV_TTML_TAG)
|
||||
mov_read_glbl(c, pb, fake_atom);
|
||||
st->codecpar->width = sc->width;
|
||||
st->codecpar->height = sc->height;
|
||||
|
@ -1,13 +1,13 @@
|
||||
2e7e01c821c111466e7a2844826b7f6d *tests/data/fate/mov-mp4-ttml-dfxp.mp4
|
||||
8519 tests/data/fate/mov-mp4-ttml-dfxp.mp4
|
||||
#tb 0: 1/1000
|
||||
#media_type 0: data
|
||||
#codec_id 0: none
|
||||
#media_type 0: subtitle
|
||||
#codec_id 0: ttml
|
||||
0, 0, 0, 68500, 7866, 0x456c36b7
|
||||
{
|
||||
"packets": [
|
||||
{
|
||||
"codec_type": "data",
|
||||
"codec_type": "subtitle",
|
||||
"stream_index": 0,
|
||||
"pts": 0,
|
||||
"pts_time": "0.000000",
|
||||
@ -26,7 +26,8 @@
|
||||
"streams": [
|
||||
{
|
||||
"index": 0,
|
||||
"codec_type": "data",
|
||||
"codec_name": "ttml",
|
||||
"codec_type": "subtitle",
|
||||
"codec_tag_string": "dfxp",
|
||||
"codec_tag": "0x70786664",
|
||||
"time_base": "1/1000",
|
||||
|
@ -1,13 +1,14 @@
|
||||
cbd2c7ff864a663b0d893deac5a0caec *tests/data/fate/mov-mp4-ttml-stpp.mp4
|
||||
8547 tests/data/fate/mov-mp4-ttml-stpp.mp4
|
||||
#extradata 0: 48, 0x62100c0d
|
||||
#tb 0: 1/1000
|
||||
#media_type 0: data
|
||||
#codec_id 0: none
|
||||
#media_type 0: subtitle
|
||||
#codec_id 0: ttml
|
||||
0, 0, 0, 68500, 7866, 0x456c36b7
|
||||
{
|
||||
"packets": [
|
||||
{
|
||||
"codec_type": "data",
|
||||
"codec_type": "subtitle",
|
||||
"stream_index": 0,
|
||||
"pts": 0,
|
||||
"pts_time": "0.000000",
|
||||
@ -26,7 +27,8 @@ cbd2c7ff864a663b0d893deac5a0caec *tests/data/fate/mov-mp4-ttml-stpp.mp4
|
||||
"streams": [
|
||||
{
|
||||
"index": 0,
|
||||
"codec_type": "data",
|
||||
"codec_name": "ttml",
|
||||
"codec_type": "subtitle",
|
||||
"codec_tag_string": "stpp",
|
||||
"codec_tag": "0x70707473",
|
||||
"time_base": "1/1000",
|
||||
|
Loading…
Reference in New Issue
Block a user