summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorJan Ekström <[email protected]>2021-11-22 14:07:04 +0200
committerJan Ekström <[email protected]>2025-09-16 16:29:48 +0300
commitaf35a13f6d269a2400fd36ecc70b74ea2da1f1a8 (patch)
treef52e3575c236ac5232d6a7cba36b6118a44f250c /tests
parent8dcc65a0fc18a4741d82c2c11c3e064580c27b30 (diff)
avformat/movenc: add support for fragmented TTML muxing
Attempts to base the fragmentation timing on other streams as most receivers expect media fragments to be more or less aligned. Currently does not support fragmentation on subtitle track only, as the subtitle packet queue timings would have to be checked in addition to the current fragmentation timing logic. Signed-off-by: Jan Ekström <[email protected]>
Diffstat (limited to 'tests')
-rw-r--r--tests/fate/mov.mak21
-rw-r--r--tests/ref/fate/mov-mp4-fragmented-ttml-dfxp430
-rw-r--r--tests/ref/fate/mov-mp4-fragmented-ttml-stpp430
3 files changed, 881 insertions, 0 deletions
diff --git a/tests/fate/mov.mak b/tests/fate/mov.mak
index c43f260dd3..eb666c5865 100644
--- a/tests/fate/mov.mak
+++ b/tests/fate/mov.mak
@@ -158,6 +158,27 @@ FATE_MOV_FFMPEG_FFPROBE_SAMPLES-$(call TRANSCODE, TTML SUBRIP, MP4 MOV, SRT_DEMU
fate-mov-mp4-ttml-stpp: CMD = transcode srt $(TARGET_SAMPLES)/sub/SubRip_capability_tester.srt mp4 "-map 0:s -c:s ttml -time_base:s 1:1000" "-map 0 -c copy" "-of json -show_entries packet:stream=index,codec_type,codec_tag_string,codec_tag,codec_name,time_base,start_time,duration_ts,duration,nb_frames,nb_read_packets:stream_tags"
fate-mov-mp4-ttml-dfxp: CMD = transcode srt $(TARGET_SAMPLES)/sub/SubRip_capability_tester.srt mp4 "-map 0:s -c:s ttml -time_base:s 1:1000 -tag:s dfxp -strict unofficial" "-map 0 -c copy" "-of json -show_entries packet:stream=index,codec_type,codec_tag_string,codec_tag,codec_name,time_base,start_time,duration_ts,duration,nb_frames,nb_read_packets:stream_tags"
+FATE_MOV_FFMPEG_FFPROBE_SAMPLES-$(call TRANSCODE, TTML SUBRIP, MP4 MOV, LAVFI_INDEV SMPTEHDBARS_FILTER SRT_DEMUXER MPEG2VIDEO_ENCODER TTML_MUXER RAWVIDEO_MUXER) += fate-mov-mp4-fragmented-ttml-stpp
+fate-mov-mp4-fragmented-ttml-stpp: CMD = transcode srt $(TARGET_SAMPLES)/sub/SubRip_capability_tester.srt mp4 \
+ "-map 1:v -map 0:s \
+ -c:v mpeg2video -b:v 2M -g 48 -sc_threshold 1000000000 \
+ -c:s ttml -time_base:s 1:1000 \
+ -movflags +cmaf" \
+ "-map 0:s -c copy" \
+ "-select_streams s -of csv -show_packets -show_data_hash crc32" \
+ "-f lavfi -i smptehdbars=duration=24.5245:size=320x180:rate=24000/1001,format=yuv420p" \
+ "" "" "data"
+
+FATE_MOV_FFMPEG_FFPROBE_SAMPLES-$(call TRANSCODE, TTML SUBRIP, ISMV MOV, LAVFI_INDEV SMPTEHDBARS_FILTER SRT_DEMUXER MPEG2VIDEO_ENCODER TTML_MUXER RAWVIDEO_MUXER) += fate-mov-mp4-fragmented-ttml-dfxp
+fate-mov-mp4-fragmented-ttml-dfxp: CMD = transcode srt $(TARGET_SAMPLES)/sub/SubRip_capability_tester.srt ismv \
+ "-map 1:v -map 0:s \
+ -c:v mpeg2video -b:v 2M -g 48 -sc_threshold 1000000000 \
+ -c:s ttml -tag:s dfxp -time_base:s 1:1000" \
+ "-map 0:s -c copy" \
+ "-select_streams s -of csv -show_packets -show_data_hash crc32" \
+ "-f lavfi -i smptehdbars=duration=24.5245:size=320x180:rate=24000/1001,format=yuv420p" \
+ "" "" "data"
+
# avif demuxing - still image with 1 item.
FATE_MOV_FFMPEG_SAMPLES-$(call FRAMECRC, MOV, AV1, AV1_PARSER) \
+= fate-mov-avif-demux-still-image-1-item
diff --git a/tests/ref/fate/mov-mp4-fragmented-ttml-dfxp b/tests/ref/fate/mov-mp4-fragmented-ttml-dfxp
new file mode 100644
index 0000000000..ee1189cebf
--- /dev/null
+++ b/tests/ref/fate/mov-mp4-fragmented-ttml-dfxp
@@ -0,0 +1,430 @@
+09836de7062020ab760fc949875b7e2b *tests/data/fate/mov-mp4-fragmented-ttml-dfxp.ismv
+189404 tests/data/fate/mov-mp4-fragmented-ttml-dfxp.ismv
+<?xml version="1.0" encoding="utf-8"?>
+<tt
+ xmlns="http://www.w3.org/ns/ttml"
+ xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
+ xmlns:tts="http://www.w3.org/ns/ttml#styling"
+ xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
+ ttp:cellResolution="384 288"
+ xml:lang="">
+ <head>
+ <layout>
+ <region xml:id="Default"
+ tts:origin="3% 0%"
+ tts:extent="97% 97%"
+ tts:displayAlign="after"
+ tts:textAlign="center"
+ tts:fontSize="16c"
+ tts:fontFamily="Arial"
+ tts:overflow="visible" />
+ </layout>
+ </head>
+ <body>
+ <div>
+ <p
+ begin="00:00:00.000"
+ end="00:00:00.000"><span region="Default">Don't show this text it may be used to insert hidden data</span></p>
+ <p
+ begin="00:00:01.500"
+ end="00:00:02.002"><span region="Default">SubRip subtitles capability tester 1.3o by ale5000<br/>Use VLC 1.1 or higher as reference for most things and MPC Home Cinema for others<br/>This text should be blue<br/>This text should be red<br/>This text should be black<br/>If you see this with the normal font, the player don't (fully) support font face</span></p>
+ </div>
+ </body>
+</tt>
+<?xml version="1.0" encoding="utf-8"?>
+<tt
+ xmlns="http://www.w3.org/ns/ttml"
+ xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
+ xmlns:tts="http://www.w3.org/ns/ttml#styling"
+ xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
+ ttp:cellResolution="384 288"
+ xml:lang="">
+ <head>
+ <layout>
+ <region xml:id="Default"
+ tts:origin="3% 0%"
+ tts:extent="97% 97%"
+ tts:displayAlign="after"
+ tts:textAlign="center"
+ tts:fontSize="16c"
+ tts:fontFamily="Arial"
+ tts:overflow="visible" />
+ </layout>
+ </head>
+ <body>
+ <div>
+ <p
+ begin="00:00:00.000"
+ end="00:00:02.002"><span region="Default">SubRip subtitles capability tester 1.3o by ale5000<br/>Use VLC 1.1 or higher as reference for most things and MPC Home Cinema for others<br/>This text should be blue<br/>This text should be red<br/>This text should be black<br/>If you see this with the normal font, the player don't (fully) support font face</span></p>
+ </div>
+ </body>
+</tt>
+<?xml version="1.0" encoding="utf-8"?>
+<tt
+ xmlns="http://www.w3.org/ns/ttml"
+ xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
+ xmlns:tts="http://www.w3.org/ns/ttml#styling"
+ xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
+ ttp:cellResolution="384 288"
+ xml:lang="">
+ <head>
+ <layout>
+ <region xml:id="Default"
+ tts:origin="3% 0%"
+ tts:extent="97% 97%"
+ tts:displayAlign="after"
+ tts:textAlign="center"
+ tts:fontSize="16c"
+ tts:fontFamily="Arial"
+ tts:overflow="visible" />
+ </layout>
+ </head>
+ <body>
+ <div>
+ <p
+ begin="00:00:00.000"
+ end="00:00:00.496"><span region="Default">SubRip subtitles capability tester 1.3o by ale5000<br/>Use VLC 1.1 or higher as reference for most things and MPC Home Cinema for others<br/>This text should be blue<br/>This text should be red<br/>This text should be black<br/>If you see this with the normal font, the player don't (fully) support font face</span></p>
+ <p
+ begin="00:00:00.496"
+ end="00:00:00.496"><span region="Default">Hidden</span></p>
+ <p
+ begin="00:00:00.497"
+ end="00:00:02.002"><span region="Default">This text should be small<br/>This text should be normal<br/>This text should be big</span></p>
+ </div>
+ </body>
+</tt>
+<?xml version="1.0" encoding="utf-8"?>
+<tt
+ xmlns="http://www.w3.org/ns/ttml"
+ xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
+ xmlns:tts="http://www.w3.org/ns/ttml#styling"
+ xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
+ ttp:cellResolution="384 288"
+ xml:lang="">
+ <head>
+ <layout>
+ <region xml:id="Default"
+ tts:origin="3% 0%"
+ tts:extent="97% 97%"
+ tts:displayAlign="after"
+ tts:textAlign="center"
+ tts:fontSize="16c"
+ tts:fontFamily="Arial"
+ tts:overflow="visible" />
+ </layout>
+ </head>
+ <body>
+ <div>
+ <p
+ begin="00:00:00.000"
+ end="00:00:01.494"><span region="Default">This text should be small<br/>This text should be normal<br/>This text should be big</span></p>
+ <p
+ begin="00:00:01.495"
+ end="00:00:02.002"><span region="Default">This should be an E with an accent: È<br/>日本語<br/>This text should be bold, italics and underline<br/>This text should be small and green<br/>This text should be small and red<br/>This text should be big and brown</span></p>
+ </div>
+ </body>
+</tt>
+<?xml version="1.0" encoding="utf-8"?>
+<tt
+ xmlns="http://www.w3.org/ns/ttml"
+ xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
+ xmlns:tts="http://www.w3.org/ns/ttml#styling"
+ xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
+ ttp:cellResolution="384 288"
+ xml:lang="">
+ <head>
+ <layout>
+ <region xml:id="Default"
+ tts:origin="3% 0%"
+ tts:extent="97% 97%"
+ tts:displayAlign="after"
+ tts:textAlign="center"
+ tts:fontSize="16c"
+ tts:fontFamily="Arial"
+ tts:overflow="visible" />
+ </layout>
+ </head>
+ <body>
+ <div>
+ <p
+ begin="00:00:00.000"
+ end="00:00:02.002"><span region="Default">This should be an E with an accent: È<br/>日本語<br/>This text should be bold, italics and underline<br/>This text should be small and green<br/>This text should be small and red<br/>This text should be big and brown</span></p>
+ </div>
+ </body>
+</tt>
+<?xml version="1.0" encoding="utf-8"?>
+<tt
+ xmlns="http://www.w3.org/ns/ttml"
+ xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
+ xmlns:tts="http://www.w3.org/ns/ttml#styling"
+ xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
+ ttp:cellResolution="384 288"
+ xml:lang="">
+ <head>
+ <layout>
+ <region xml:id="Default"
+ tts:origin="3% 0%"
+ tts:extent="97% 97%"
+ tts:displayAlign="after"
+ tts:textAlign="center"
+ tts:fontSize="16c"
+ tts:fontFamily="Arial"
+ tts:overflow="visible" />
+ </layout>
+ </head>
+ <body>
+ <div>
+ <p
+ begin="00:00:00.000"
+ end="00:00:01.490"><span region="Default">This should be an E with an accent: È<br/>日本語<br/>This text should be bold, italics and underline<br/>This text should be small and green<br/>This text should be small and red<br/>This text should be big and brown</span></p>
+ <p
+ begin="00:00:01.491"
+ end="00:00:02.002"><span region="Default">This line should be bold<br/>This line should be italics<br/>This line should be underline<br/>This line should be strikethrough<br/>Both lines<br/>should be underline</span></p>
+ </div>
+ </body>
+</tt>
+<?xml version="1.0" encoding="utf-8"?>
+<tt
+ xmlns="http://www.w3.org/ns/ttml"
+ xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
+ xmlns:tts="http://www.w3.org/ns/ttml#styling"
+ xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
+ ttp:cellResolution="384 288"
+ xml:lang="">
+ <head>
+ <layout>
+ <region xml:id="Default"
+ tts:origin="3% 0%"
+ tts:extent="97% 97%"
+ tts:displayAlign="after"
+ tts:textAlign="center"
+ tts:fontSize="16c"
+ tts:fontFamily="Arial"
+ tts:overflow="visible" />
+ </layout>
+ </head>
+ <body>
+ <div>
+ <p
+ begin="00:00:00.000"
+ end="00:00:02.002"><span region="Default">This line should be bold<br/>This line should be italics<br/>This line should be underline<br/>This line should be strikethrough<br/>Both lines<br/>should be underline</span></p>
+ </div>
+ </body>
+</tt>
+<?xml version="1.0" encoding="utf-8"?>
+<tt
+ xmlns="http://www.w3.org/ns/ttml"
+ xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
+ xmlns:tts="http://www.w3.org/ns/ttml#styling"
+ xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
+ ttp:cellResolution="384 288"
+ xml:lang="">
+ <head>
+ <layout>
+ <region xml:id="Default"
+ tts:origin="3% 0%"
+ tts:extent="97% 97%"
+ tts:displayAlign="after"
+ tts:textAlign="center"
+ tts:fontSize="16c"
+ tts:fontFamily="Arial"
+ tts:overflow="visible" />
+ </layout>
+ </head>
+ <body>
+ <div>
+ <p
+ begin="00:00:00.000"
+ end="00:00:00.486"><span region="Default">This line should be bold<br/>This line should be italics<br/>This line should be underline<br/>This line should be strikethrough<br/>Both lines<br/>should be underline</span></p>
+ <p
+ begin="00:00:00.487"
+ end="00:00:02.002"><span region="Default">&gt;<br/>It would be a good thing to<br/>hide invalid html tags that are closed and show the text in them<br/>but show un-closed invalid html tags<br/>Show not opened tags<br/>&lt;</span></p>
+ </div>
+ </body>
+</tt>
+<?xml version="1.0" encoding="utf-8"?>
+<tt
+ xmlns="http://www.w3.org/ns/ttml"
+ xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
+ xmlns:tts="http://www.w3.org/ns/ttml#styling"
+ xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
+ ttp:cellResolution="384 288"
+ xml:lang="">
+ <head>
+ <layout>
+ <region xml:id="Default"
+ tts:origin="3% 0%"
+ tts:extent="97% 97%"
+ tts:displayAlign="after"
+ tts:textAlign="center"
+ tts:fontSize="16c"
+ tts:fontFamily="Arial"
+ tts:overflow="visible" />
+ </layout>
+ </head>
+ <body>
+ <div>
+ <p
+ begin="00:00:00.000"
+ end="00:00:01.484"><span region="Default">&gt;<br/>It would be a good thing to<br/>hide invalid html tags that are closed and show the text in them<br/>but show un-closed invalid html tags<br/>Show not opened tags<br/>&lt;</span></p>
+ <p
+ begin="00:00:01.485"
+ end="00:00:02.002"><span region="Default">and also<br/>hide invalid html tags with parameters that are closed and show the text in them<br/>but show un-closed invalid html tags<br/>This text should be showed underlined without problems also: 2&lt;3,5&gt;1,4&lt;6<br/>This shouldn't be underlined</span></p>
+ </div>
+ </body>
+</tt>
+<?xml version="1.0" encoding="utf-8"?>
+<tt
+ xmlns="http://www.w3.org/ns/ttml"
+ xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
+ xmlns:tts="http://www.w3.org/ns/ttml#styling"
+ xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
+ ttp:cellResolution="384 288"
+ xml:lang="">
+ <head>
+ <layout>
+ <region xml:id="Default"
+ tts:origin="3% 0%"
+ tts:extent="97% 97%"
+ tts:displayAlign="after"
+ tts:textAlign="center"
+ tts:fontSize="16c"
+ tts:fontFamily="Arial"
+ tts:overflow="visible" />
+ </layout>
+ </head>
+ <body>
+ <div>
+ <p
+ begin="00:00:00.000"
+ end="00:00:02.002"><span region="Default">and also<br/>hide invalid html tags with parameters that are closed and show the text in them<br/>but show un-closed invalid html tags<br/>This text should be showed underlined without problems also: 2&lt;3,5&gt;1,4&lt;6<br/>This shouldn't be underlined</span></p>
+ </div>
+ </body>
+</tt>
+<?xml version="1.0" encoding="utf-8"?>
+<tt
+ xmlns="http://www.w3.org/ns/ttml"
+ xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
+ xmlns:tts="http://www.w3.org/ns/ttml#styling"
+ xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
+ ttp:cellResolution="384 288"
+ xml:lang="">
+ <head>
+ <layout>
+ <region xml:id="Default"
+ tts:origin="3% 0%"
+ tts:extent="97% 97%"
+ tts:displayAlign="after"
+ tts:textAlign="center"
+ tts:fontSize="16c"
+ tts:fontFamily="Arial"
+ tts:overflow="visible" />
+ </layout>
+ </head>
+ <body>
+ <div>
+ <p
+ begin="00:00:00.000"
+ end="00:00:00.480"><span region="Default">and also<br/>hide invalid html tags with parameters that are closed and show the text in them<br/>but show un-closed invalid html tags<br/>This text should be showed underlined without problems also: 2&lt;3,5&gt;1,4&lt;6<br/>This shouldn't be underlined</span></p>
+ <p
+ begin="00:00:00.481"
+ end="00:00:01.480"><span region="Default">This text should be in the normal position...</span></p>
+ <p
+ begin="00:00:01.481"
+ end="00:00:02.002"><span region="Default">This text should NOT be in the normal position</span></p>
+ </div>
+ </body>
+</tt>
+<?xml version="1.0" encoding="utf-8"?>
+<tt
+ xmlns="http://www.w3.org/ns/ttml"
+ xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
+ xmlns:tts="http://www.w3.org/ns/ttml#styling"
+ xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
+ ttp:cellResolution="384 288"
+ xml:lang="">
+ <head>
+ <layout>
+ <region xml:id="Default"
+ tts:origin="3% 0%"
+ tts:extent="97% 97%"
+ tts:displayAlign="after"
+ tts:textAlign="center"
+ tts:fontSize="16c"
+ tts:fontFamily="Arial"
+ tts:overflow="visible" />
+ </layout>
+ </head>
+ <body>
+ <div>
+ <p
+ begin="00:00:00.000"
+ end="00:00:00.478"><span region="Default">This text should NOT be in the normal position</span></p>
+ <p
+ begin="00:00:00.479"
+ end="00:00:02.002"><span region="Default">Implementation is the same of the ASS tag<br/>This text should be at the<br/>top and horizontally centered</span></p>
+ <p
+ begin="00:00:00.479"
+ end="00:00:02.002"><span region="Default">This text should be at the<br/>middle and horizontally centered</span></p>
+ <p
+ begin="00:00:00.479"
+ end="00:00:02.002"><span region="Default">This text should be at the<br/>bottom and horizontally centered</span></p>
+ </div>
+ </body>
+</tt>
+<?xml version="1.0" encoding="utf-8"?>
+<tt
+ xmlns="http://www.w3.org/ns/ttml"
+ xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
+ xmlns:tts="http://www.w3.org/ns/ttml#styling"
+ xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
+ ttp:cellResolution="384 288"
+ xml:lang="">
+ <head>
+ <layout>
+ <region xml:id="Default"
+ tts:origin="3% 0%"
+ tts:extent="97% 97%"
+ tts:displayAlign="after"
+ tts:textAlign="center"
+ tts:fontSize="16c"
+ tts:fontFamily="Arial"
+ tts:overflow="visible" />
+ </layout>
+ </head>
+ <body>
+ <div>
+ <p
+ begin="00:00:00.000"
+ end="00:00:00.476"><span region="Default">Implementation is the same of the ASS tag<br/>This text should be at the<br/>top and horizontally centered</span></p>
+ <p
+ begin="00:00:00.000"
+ end="00:00:00.476"><span region="Default">This text should be at the<br/>middle and horizontally centered</span></p>
+ <p
+ begin="00:00:00.000"
+ end="00:00:00.476"><span region="Default">This text should be at the<br/>bottom and horizontally centered</span></p>
+ <p
+ begin="00:00:00.477"
+ end="00:00:00.501"><span region="Default">This text should be at the<br/>top and horizontally at the left</span></p>
+ <p
+ begin="00:00:00.477"
+ end="00:00:00.500"><span region="Default">This text should be at the<br/>middle and horizontally at the left<br/>(The second position must be ignored)</span></p>
+ <p
+ begin="00:00:00.477"
+ end="00:00:00.500"><span region="Default">This text should be at the<br/>bottom and horizontally at the left</span></p>
+ </div>
+ </body>
+</tt>
+packet,subtitle,1,0,0.000000,0,0.000000,20020000,2.002000,1172,14746,K__,CRC32:bde7afa1
+packet,subtitle,1,20020000,2.002000,20020000,2.002000,20020000,2.002000,1015,29540,K__,CRC32:c1cb78f2
+packet,subtitle,1,40040000,4.004000,40040000,4.004000,20020000,2.002000,1305,44177,K__,CRC32:267b17fe
+packet,subtitle,1,60060000,6.006000,60060000,6.006000,20020000,2.002000,1111,59104,K__,CRC32:d6aaf284
+packet,subtitle,1,80080000,8.008000,80080000,8.008000,20020000,2.002000,927,73837,K__,CRC32:0ee24ad7
+packet,subtitle,1,100100000,10.010000,100100000,10.010000,20020000,2.002000,1194,88386,K__,CRC32:a9816515
+packet,subtitle,1,120120000,12.012000,120120000,12.012000,20020000,2.002000,874,103202,K__,CRC32:c47ebb4e
+packet,subtitle,1,140140000,14.014000,140140000,14.014000,20020000,2.002000,1154,117698,K__,CRC32:09b26179
+packet,subtitle,1,160160000,16.016000,160160000,16.016000,20020000,2.002000,1240,132474,K__,CRC32:d7e3067e
+packet,subtitle,1,180180000,18.018000,180180000,18.018000,20020000,2.002000,960,147336,K__,CRC32:d2d99797
+packet,subtitle,1,200200000,20.020000,200200000,20.020000,20020000,2.002000,1251,161918,K__,CRC32:1857892c
+packet,subtitle,1,220220000,22.022000,220220000,22.022000,20020000,2.002000,1285,176791,K__,CRC32:76bd9787
+packet,subtitle,1,240240000,24.024000,240240000,24.024000,5005000,0.500500,1676,187162,K__,CRC32:b519ec6f
diff --git a/tests/ref/fate/mov-mp4-fragmented-ttml-stpp b/tests/ref/fate/mov-mp4-fragmented-ttml-stpp
new file mode 100644
index 0000000000..3e3371afad
--- /dev/null
+++ b/tests/ref/fate/mov-mp4-fragmented-ttml-stpp
@@ -0,0 +1,430 @@
+d7c6570fbe8c1ec630c2f1639ae16fcb *tests/data/fate/mov-mp4-fragmented-ttml-stpp.mp4
+183872 tests/data/fate/mov-mp4-fragmented-ttml-stpp.mp4
+<?xml version="1.0" encoding="utf-8"?>
+<tt
+ xmlns="http://www.w3.org/ns/ttml"
+ xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
+ xmlns:tts="http://www.w3.org/ns/ttml#styling"
+ xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
+ ttp:cellResolution="384 288"
+ xml:lang="">
+ <head>
+ <layout>
+ <region xml:id="Default"
+ tts:origin="3% 0%"
+ tts:extent="97% 97%"
+ tts:displayAlign="after"
+ tts:textAlign="center"
+ tts:fontSize="16c"
+ tts:fontFamily="Arial"
+ tts:overflow="visible" />
+ </layout>
+ </head>
+ <body>
+ <div>
+ <p
+ begin="00:00:00.000"
+ end="00:00:00.000"><span region="Default">Don't show this text it may be used to insert hidden data</span></p>
+ <p
+ begin="00:00:01.500"
+ end="00:00:02.002"><span region="Default">SubRip subtitles capability tester 1.3o by ale5000<br/>Use VLC 1.1 or higher as reference for most things and MPC Home Cinema for others<br/>This text should be blue<br/>This text should be red<br/>This text should be black<br/>If you see this with the normal font, the player don't (fully) support font face</span></p>
+ </div>
+ </body>
+</tt>
+<?xml version="1.0" encoding="utf-8"?>
+<tt
+ xmlns="http://www.w3.org/ns/ttml"
+ xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
+ xmlns:tts="http://www.w3.org/ns/ttml#styling"
+ xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
+ ttp:cellResolution="384 288"
+ xml:lang="">
+ <head>
+ <layout>
+ <region xml:id="Default"
+ tts:origin="3% 0%"
+ tts:extent="97% 97%"
+ tts:displayAlign="after"
+ tts:textAlign="center"
+ tts:fontSize="16c"
+ tts:fontFamily="Arial"
+ tts:overflow="visible" />
+ </layout>
+ </head>
+ <body>
+ <div>
+ <p
+ begin="00:00:02.002"
+ end="00:00:04.004"><span region="Default">SubRip subtitles capability tester 1.3o by ale5000<br/>Use VLC 1.1 or higher as reference for most things and MPC Home Cinema for others<br/>This text should be blue<br/>This text should be red<br/>This text should be black<br/>If you see this with the normal font, the player don't (fully) support font face</span></p>
+ </div>
+ </body>
+</tt>
+<?xml version="1.0" encoding="utf-8"?>
+<tt
+ xmlns="http://www.w3.org/ns/ttml"
+ xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
+ xmlns:tts="http://www.w3.org/ns/ttml#styling"
+ xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
+ ttp:cellResolution="384 288"
+ xml:lang="">
+ <head>
+ <layout>
+ <region xml:id="Default"
+ tts:origin="3% 0%"
+ tts:extent="97% 97%"
+ tts:displayAlign="after"
+ tts:textAlign="center"
+ tts:fontSize="16c"
+ tts:fontFamily="Arial"
+ tts:overflow="visible" />
+ </layout>
+ </head>
+ <body>
+ <div>
+ <p
+ begin="00:00:04.004"
+ end="00:00:04.500"><span region="Default">SubRip subtitles capability tester 1.3o by ale5000<br/>Use VLC 1.1 or higher as reference for most things and MPC Home Cinema for others<br/>This text should be blue<br/>This text should be red<br/>This text should be black<br/>If you see this with the normal font, the player don't (fully) support font face</span></p>
+ <p
+ begin="00:00:04.500"
+ end="00:00:04.500"><span region="Default">Hidden</span></p>
+ <p
+ begin="00:00:04.501"
+ end="00:00:06.006"><span region="Default">This text should be small<br/>This text should be normal<br/>This text should be big</span></p>
+ </div>
+ </body>
+</tt>
+<?xml version="1.0" encoding="utf-8"?>
+<tt
+ xmlns="http://www.w3.org/ns/ttml"
+ xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
+ xmlns:tts="http://www.w3.org/ns/ttml#styling"
+ xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
+ ttp:cellResolution="384 288"
+ xml:lang="">
+ <head>
+ <layout>
+ <region xml:id="Default"
+ tts:origin="3% 0%"
+ tts:extent="97% 97%"
+ tts:displayAlign="after"
+ tts:textAlign="center"
+ tts:fontSize="16c"
+ tts:fontFamily="Arial"
+ tts:overflow="visible" />
+ </layout>
+ </head>
+ <body>
+ <div>
+ <p
+ begin="00:00:06.006"
+ end="00:00:07.500"><span region="Default">This text should be small<br/>This text should be normal<br/>This text should be big</span></p>
+ <p
+ begin="00:00:07.501"
+ end="00:00:08.008"><span region="Default">This should be an E with an accent: È<br/>日本語<br/>This text should be bold, italics and underline<br/>This text should be small and green<br/>This text should be small and red<br/>This text should be big and brown</span></p>
+ </div>
+ </body>
+</tt>
+<?xml version="1.0" encoding="utf-8"?>
+<tt
+ xmlns="http://www.w3.org/ns/ttml"
+ xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
+ xmlns:tts="http://www.w3.org/ns/ttml#styling"
+ xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
+ ttp:cellResolution="384 288"
+ xml:lang="">
+ <head>
+ <layout>
+ <region xml:id="Default"
+ tts:origin="3% 0%"
+ tts:extent="97% 97%"
+ tts:displayAlign="after"
+ tts:textAlign="center"
+ tts:fontSize="16c"
+ tts:fontFamily="Arial"
+ tts:overflow="visible" />
+ </layout>
+ </head>
+ <body>
+ <div>
+ <p
+ begin="00:00:08.008"
+ end="00:00:10.010"><span region="Default">This should be an E with an accent: È<br/>日本語<br/>This text should be bold, italics and underline<br/>This text should be small and green<br/>This text should be small and red<br/>This text should be big and brown</span></p>
+ </div>
+ </body>
+</tt>
+<?xml version="1.0" encoding="utf-8"?>
+<tt
+ xmlns="http://www.w3.org/ns/ttml"
+ xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
+ xmlns:tts="http://www.w3.org/ns/ttml#styling"
+ xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
+ ttp:cellResolution="384 288"
+ xml:lang="">
+ <head>
+ <layout>
+ <region xml:id="Default"
+ tts:origin="3% 0%"
+ tts:extent="97% 97%"
+ tts:displayAlign="after"
+ tts:textAlign="center"
+ tts:fontSize="16c"
+ tts:fontFamily="Arial"
+ tts:overflow="visible" />
+ </layout>
+ </head>
+ <body>
+ <div>
+ <p
+ begin="00:00:10.010"
+ end="00:00:11.500"><span region="Default">This should be an E with an accent: È<br/>日本語<br/>This text should be bold, italics and underline<br/>This text should be small and green<br/>This text should be small and red<br/>This text should be big and brown</span></p>
+ <p
+ begin="00:00:11.501"
+ end="00:00:12.012"><span region="Default">This line should be bold<br/>This line should be italics<br/>This line should be underline<br/>This line should be strikethrough<br/>Both lines<br/>should be underline</span></p>
+ </div>
+ </body>
+</tt>
+<?xml version="1.0" encoding="utf-8"?>
+<tt
+ xmlns="http://www.w3.org/ns/ttml"
+ xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
+ xmlns:tts="http://www.w3.org/ns/ttml#styling"
+ xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
+ ttp:cellResolution="384 288"
+ xml:lang="">
+ <head>
+ <layout>
+ <region xml:id="Default"
+ tts:origin="3% 0%"
+ tts:extent="97% 97%"
+ tts:displayAlign="after"
+ tts:textAlign="center"
+ tts:fontSize="16c"
+ tts:fontFamily="Arial"
+ tts:overflow="visible" />
+ </layout>
+ </head>
+ <body>
+ <div>
+ <p
+ begin="00:00:12.012"
+ end="00:00:14.014"><span region="Default">This line should be bold<br/>This line should be italics<br/>This line should be underline<br/>This line should be strikethrough<br/>Both lines<br/>should be underline</span></p>
+ </div>
+ </body>
+</tt>
+<?xml version="1.0" encoding="utf-8"?>
+<tt
+ xmlns="http://www.w3.org/ns/ttml"
+ xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
+ xmlns:tts="http://www.w3.org/ns/ttml#styling"
+ xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
+ ttp:cellResolution="384 288"
+ xml:lang="">
+ <head>
+ <layout>
+ <region xml:id="Default"
+ tts:origin="3% 0%"
+ tts:extent="97% 97%"
+ tts:displayAlign="after"
+ tts:textAlign="center"
+ tts:fontSize="16c"
+ tts:fontFamily="Arial"
+ tts:overflow="visible" />
+ </layout>
+ </head>
+ <body>
+ <div>
+ <p
+ begin="00:00:14.014"
+ end="00:00:14.500"><span region="Default">This line should be bold<br/>This line should be italics<br/>This line should be underline<br/>This line should be strikethrough<br/>Both lines<br/>should be underline</span></p>
+ <p
+ begin="00:00:14.501"
+ end="00:00:16.016"><span region="Default">&gt;<br/>It would be a good thing to<br/>hide invalid html tags that are closed and show the text in them<br/>but show un-closed invalid html tags<br/>Show not opened tags<br/>&lt;</span></p>
+ </div>
+ </body>
+</tt>
+<?xml version="1.0" encoding="utf-8"?>
+<tt
+ xmlns="http://www.w3.org/ns/ttml"
+ xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
+ xmlns:tts="http://www.w3.org/ns/ttml#styling"
+ xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
+ ttp:cellResolution="384 288"
+ xml:lang="">
+ <head>
+ <layout>
+ <region xml:id="Default"
+ tts:origin="3% 0%"
+ tts:extent="97% 97%"
+ tts:displayAlign="after"
+ tts:textAlign="center"
+ tts:fontSize="16c"
+ tts:fontFamily="Arial"
+ tts:overflow="visible" />
+ </layout>
+ </head>
+ <body>
+ <div>
+ <p
+ begin="00:00:16.016"
+ end="00:00:17.500"><span region="Default">&gt;<br/>It would be a good thing to<br/>hide invalid html tags that are closed and show the text in them<br/>but show un-closed invalid html tags<br/>Show not opened tags<br/>&lt;</span></p>
+ <p
+ begin="00:00:17.501"
+ end="00:00:18.018"><span region="Default">and also<br/>hide invalid html tags with parameters that are closed and show the text in them<br/>but show un-closed invalid html tags<br/>This text should be showed underlined without problems also: 2&lt;3,5&gt;1,4&lt;6<br/>This shouldn't be underlined</span></p>
+ </div>
+ </body>
+</tt>
+<?xml version="1.0" encoding="utf-8"?>
+<tt
+ xmlns="http://www.w3.org/ns/ttml"
+ xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
+ xmlns:tts="http://www.w3.org/ns/ttml#styling"
+ xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
+ ttp:cellResolution="384 288"
+ xml:lang="">
+ <head>
+ <layout>
+ <region xml:id="Default"
+ tts:origin="3% 0%"
+ tts:extent="97% 97%"
+ tts:displayAlign="after"
+ tts:textAlign="center"
+ tts:fontSize="16c"
+ tts:fontFamily="Arial"
+ tts:overflow="visible" />
+ </layout>
+ </head>
+ <body>
+ <div>
+ <p
+ begin="00:00:18.018"
+ end="00:00:20.020"><span region="Default">and also<br/>hide invalid html tags with parameters that are closed and show the text in them<br/>but show un-closed invalid html tags<br/>This text should be showed underlined without problems also: 2&lt;3,5&gt;1,4&lt;6<br/>This shouldn't be underlined</span></p>
+ </div>
+ </body>
+</tt>
+<?xml version="1.0" encoding="utf-8"?>
+<tt
+ xmlns="http://www.w3.org/ns/ttml"
+ xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
+ xmlns:tts="http://www.w3.org/ns/ttml#styling"
+ xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
+ ttp:cellResolution="384 288"
+ xml:lang="">
+ <head>
+ <layout>
+ <region xml:id="Default"
+ tts:origin="3% 0%"
+ tts:extent="97% 97%"
+ tts:displayAlign="after"
+ tts:textAlign="center"
+ tts:fontSize="16c"
+ tts:fontFamily="Arial"
+ tts:overflow="visible" />
+ </layout>
+ </head>
+ <body>
+ <div>
+ <p
+ begin="00:00:20.020"
+ end="00:00:20.500"><span region="Default">and also<br/>hide invalid html tags with parameters that are closed and show the text in them<br/>but show un-closed invalid html tags<br/>This text should be showed underlined without problems also: 2&lt;3,5&gt;1,4&lt;6<br/>This shouldn't be underlined</span></p>
+ <p
+ begin="00:00:20.501"
+ end="00:00:21.500"><span region="Default">This text should be in the normal position...</span></p>
+ <p
+ begin="00:00:21.501"
+ end="00:00:22.022"><span region="Default">This text should NOT be in the normal position</span></p>
+ </div>
+ </body>
+</tt>
+<?xml version="1.0" encoding="utf-8"?>
+<tt
+ xmlns="http://www.w3.org/ns/ttml"
+ xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
+ xmlns:tts="http://www.w3.org/ns/ttml#styling"
+ xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
+ ttp:cellResolution="384 288"
+ xml:lang="">
+ <head>
+ <layout>
+ <region xml:id="Default"
+ tts:origin="3% 0%"
+ tts:extent="97% 97%"
+ tts:displayAlign="after"
+ tts:textAlign="center"
+ tts:fontSize="16c"
+ tts:fontFamily="Arial"
+ tts:overflow="visible" />
+ </layout>
+ </head>
+ <body>
+ <div>
+ <p
+ begin="00:00:22.022"
+ end="00:00:22.500"><span region="Default">This text should NOT be in the normal position</span></p>
+ <p
+ begin="00:00:22.501"
+ end="00:00:24.024"><span region="Default">Implementation is the same of the ASS tag<br/>This text should be at the<br/>top and horizontally centered</span></p>
+ <p
+ begin="00:00:22.502"
+ end="00:00:24.024"><span region="Default">This text should be at the<br/>middle and horizontally centered</span></p>
+ <p
+ begin="00:00:22.503"
+ end="00:00:24.024"><span region="Default">This text should be at the<br/>bottom and horizontally centered</span></p>
+ </div>
+ </body>
+</tt>
+<?xml version="1.0" encoding="utf-8"?>
+<tt
+ xmlns="http://www.w3.org/ns/ttml"
+ xmlns:ttm="http://www.w3.org/ns/ttml#metadata"
+ xmlns:tts="http://www.w3.org/ns/ttml#styling"
+ xmlns:ttp="http://www.w3.org/ns/ttml#parameter"
+ ttp:cellResolution="384 288"
+ xml:lang="">
+ <head>
+ <layout>
+ <region xml:id="Default"
+ tts:origin="3% 0%"
+ tts:extent="97% 97%"
+ tts:displayAlign="after"
+ tts:textAlign="center"
+ tts:fontSize="16c"
+ tts:fontFamily="Arial"
+ tts:overflow="visible" />
+ </layout>
+ </head>
+ <body>
+ <div>
+ <p
+ begin="00:00:24.024"
+ end="00:00:24.500"><span region="Default">Implementation is the same of the ASS tag<br/>This text should be at the<br/>top and horizontally centered</span></p>
+ <p
+ begin="00:00:24.024"
+ end="00:00:24.501"><span region="Default">This text should be at the<br/>middle and horizontally centered</span></p>
+ <p
+ begin="00:00:24.024"
+ end="00:00:24.502"><span region="Default">This text should be at the<br/>bottom and horizontally centered</span></p>
+ <p
+ begin="00:00:24.501"
+ end="00:00:24.525"><span region="Default">This text should be at the<br/>top and horizontally at the left</span></p>
+ <p
+ begin="00:00:24.502"
+ end="00:00:24.525"><span region="Default">This text should be at the<br/>middle and horizontally at the left<br/>(The second position must be ignored)</span></p>
+ <p
+ begin="00:00:24.503"
+ end="00:00:24.525"><span region="Default">This text should be at the<br/>bottom and horizontally at the left</span></p>
+ </div>
+ </body>
+</tt>
+packet,subtitle,1,0,0.000000,0,0.000000,2002,2.002000,1172,14302,K__,CRC32:bde7afa1
+packet,subtitle,1,2002,2.002000,2002,2.002000,2002,2.002000,1015,28648,K__,CRC32:bd3bd4bc
+packet,subtitle,1,4004,4.004000,4004,4.004000,2002,2.002000,1305,42837,K__,CRC32:c8ff5017
+packet,subtitle,1,6006,6.006000,6006,6.006000,2002,2.002000,1111,57316,K__,CRC32:f0b10da6
+packet,subtitle,1,8008,8.008000,8008,8.008000,2002,2.002000,927,71601,K__,CRC32:55a7bb1b
+packet,subtitle,1,10010,10.010000,10010,10.010000,2002,2.002000,1194,85702,K__,CRC32:03dc4753
+packet,subtitle,1,12012,12.012000,12012,12.012000,2002,2.002000,874,100070,K__,CRC32:c7a092d4
+packet,subtitle,1,14014,14.014000,14014,14.014000,2002,2.002000,1154,114118,K__,CRC32:b476fe9c
+packet,subtitle,1,16016,16.016000,16016,16.016000,2002,2.002000,1240,128446,K__,CRC32:912e694c
+packet,subtitle,1,18018,18.018000,18018,18.018000,2002,2.002000,960,142860,K__,CRC32:bba73912
+packet,subtitle,1,20020,20.020000,20020,20.020000,2002,2.002000,1251,156994,K__,CRC32:4c7b87d8
+packet,subtitle,1,22022,22.022000,22022,22.022000,2002,2.002000,1285,171419,K__,CRC32:c0368927
+packet,subtitle,1,24024,24.024000,24024,24.024000,501,0.501000,1676,181630,K__,CRC32:812a103f