[FFmpeg-devel] [PATCH] fate: make subtitles tests output to stdout instead of md5

Clément Bœsch u at pkh.me
Sat Oct 11 13:56:16 CEST 2014


This makes tracking subtitles changes simpler.
---
 tests/fate-run.sh                 |   6 ++
 tests/fate/subtitles.mak          |  38 ++++----
 tests/ref/fate/sub-aqtitle        |  45 +++++++++-
 tests/ref/fate/sub-charenc        |  62 ++++++++++++-
 tests/ref/fate/sub-jacosub        |  23 ++++-
 tests/ref/fate/sub-microdvd       |  23 ++++-
 tests/ref/fate/sub-microdvd-remux | Bin 33 -> 436 bytes
 tests/ref/fate/sub-movtext        |  15 +++-
 tests/ref/fate/sub-mpl2           |  16 +++-
 tests/ref/fate/sub-mpsub          |  33 ++++++-
 tests/ref/fate/sub-mpsub-frames   |  14 ++-
 tests/ref/fate/sub-pjs            |  15 +++-
 tests/ref/fate/sub-realtext       |  17 +++-
 tests/ref/fate/sub-sami           |  21 ++++-
 tests/ref/fate/sub-srt            |  49 ++++++++++-
 tests/ref/fate/sub-subripenc      |  15 +++-
 tests/ref/fate/sub-subviewer      |  15 +++-
 tests/ref/fate/sub-subviewer1     |  22 ++++-
 tests/ref/fate/sub-vplayer        |  15 +++-
 tests/ref/fate/sub-webvtt         |  27 +++++-
 tests/ref/fate/sub-webvttenc      | 178 +++++++++++++++++++++++++++++++++++++-
 21 files changed, 612 insertions(+), 37 deletions(-)

diff --git a/tests/fate-run.sh b/tests/fate-run.sh
index b994aba..224da8b 100755
--- a/tests/fate-run.sh
+++ b/tests/fate-run.sh
@@ -114,6 +114,12 @@ pcm(){
     ffmpeg "$@" -vn -f s16le -
 }
 
+fmtstdout(){
+    fmt=$1
+    shift 1
+    ffmpeg "$@" -f $fmt -
+}
+
 enc_dec_pcm(){
     out_fmt=$1
     dec_fmt=$2
diff --git a/tests/fate/subtitles.mak b/tests/fate/subtitles.mak
index 0c71882..0134752 100644
--- a/tests/fate/subtitles.mak
+++ b/tests/fate/subtitles.mak
@@ -1,62 +1,62 @@
 FATE_SUBTITLES_ASS-$(call ALLYES, AQTITLE_DEMUXER TEXT_DECODER ICONV) += fate-sub-aqtitle
-fate-sub-aqtitle: CMD = md5 -sub_charenc windows-1250 -i $(TARGET_SAMPLES)/sub/AQTitle_capability_tester.aqt -f ass
+fate-sub-aqtitle: CMD = fmtstdout ass -sub_charenc windows-1250 -i $(TARGET_SAMPLES)/sub/AQTitle_capability_tester.aqt
 
 FATE_SUBTITLES_ASS-$(call DEMDEC, JACOSUB, JACOSUB) += fate-sub-jacosub
-fate-sub-jacosub: CMD = md5 -i $(TARGET_SAMPLES)/sub/JACOsub_capability_tester.jss -f ass
+fate-sub-jacosub: CMD = fmtstdout ass -i $(TARGET_SAMPLES)/sub/JACOsub_capability_tester.jss
 
 FATE_SUBTITLES_ASS-$(call DEMDEC, MICRODVD, MICRODVD) += fate-sub-microdvd
-fate-sub-microdvd: CMD = md5 -i $(TARGET_SAMPLES)/sub/MicroDVD_capability_tester.sub -f ass
+fate-sub-microdvd: CMD = fmtstdout ass -i $(TARGET_SAMPLES)/sub/MicroDVD_capability_tester.sub
 
 FATE_SUBTITLES-$(call ALLYES, MICRODVD_DEMUXER MICRODVD_MUXER) += fate-sub-microdvd-remux
-fate-sub-microdvd-remux: CMD = md5 -i $(TARGET_SAMPLES)/sub/MicroDVD_capability_tester.sub -c:s copy -f microdvd
+fate-sub-microdvd-remux: CMD = fmtstdout microdvd -i $(TARGET_SAMPLES)/sub/MicroDVD_capability_tester.sub -c:s copy
 
 FATE_SUBTITLES_ASS-$(call DEMDEC, MOV, MOVTEXT) += fate-sub-movtext
-fate-sub-movtext: CMD = md5 -i $(TARGET_SAMPLES)/sub/MovText_capability_tester.mp4 -f ass
+fate-sub-movtext: CMD = fmtstdout ass -i $(TARGET_SAMPLES)/sub/MovText_capability_tester.mp4
 
 FATE_SUBTITLES-$(call ENCDEC, MOVTEXT, MOV) += fate-sub-movtextenc
 fate-sub-movtextenc: CMD = md5 -i $(TARGET_SAMPLES)/sub/MovText_capability_tester.mp4 -map 0 -scodec mov_text -f mp4 -flags +bitexact -movflags frag_keyframe+empty_moov
 
 FATE_SUBTITLES_ASS-$(call DEMDEC, MPL2, MPL2) += fate-sub-mpl2
-fate-sub-mpl2: CMD = md5 -i $(TARGET_SAMPLES)/sub/MPL2_capability_tester.txt -f ass
+fate-sub-mpl2: CMD = fmtstdout ass -i $(TARGET_SAMPLES)/sub/MPL2_capability_tester.txt
 
 FATE_SUBTITLES_ASS-$(call DEMDEC, MPSUB, TEXT) += fate-sub-mpsub
-fate-sub-mpsub: CMD = md5 -i $(TARGET_SAMPLES)/sub/MPSub_capability_tester.sub -f ass
+fate-sub-mpsub: CMD = fmtstdout ass -i $(TARGET_SAMPLES)/sub/MPSub_capability_tester.sub
 
 FATE_SUBTITLES_ASS-$(call DEMDEC, MPSUB, TEXT) += fate-sub-mpsub-frames
-fate-sub-mpsub-frames: CMD = md5 -i $(TARGET_SAMPLES)/sub/MPSub_capability_tester_frames.sub -f ass
+fate-sub-mpsub-frames: CMD = fmtstdout ass -i $(TARGET_SAMPLES)/sub/MPSub_capability_tester_frames.sub
 
 FATE_SUBTITLES_ASS-$(call DEMDEC, PJS, PJS) += fate-sub-pjs
-fate-sub-pjs: CMD = md5 -i $(TARGET_SAMPLES)/sub/PJS_capability_tester.pjs -f ass
+fate-sub-pjs: CMD = fmtstdout ass -i $(TARGET_SAMPLES)/sub/PJS_capability_tester.pjs
 
 FATE_SUBTITLES_ASS-$(call DEMDEC, REALTEXT, REALTEXT) += fate-sub-realtext
-fate-sub-realtext: CMD = md5 -i $(TARGET_SAMPLES)/sub/RealText_capability_tester.rt -f ass
+fate-sub-realtext: CMD = fmtstdout ass -i $(TARGET_SAMPLES)/sub/RealText_capability_tester.rt
 
 FATE_SUBTITLES_ASS-$(call DEMDEC, SAMI, SAMI) += fate-sub-sami
-fate-sub-sami: CMD = md5 -i $(TARGET_SAMPLES)/sub/SAMI_capability_tester.smi -f ass
+fate-sub-sami: CMD = fmtstdout ass -i $(TARGET_SAMPLES)/sub/SAMI_capability_tester.smi
 
 FATE_SUBTITLES_ASS-$(call DEMDEC, SRT, SUBRIP) += fate-sub-srt
-fate-sub-srt: CMD = md5 -i $(TARGET_SAMPLES)/sub/SubRip_capability_tester.srt -f ass
+fate-sub-srt: CMD = fmtstdout ass -i $(TARGET_SAMPLES)/sub/SubRip_capability_tester.srt
 
 FATE_SUBTITLES-$(call ALLYES, MOV_DEMUXER MOVTEXT_DECODER SUBRIP_ENCODER) += fate-sub-subripenc
-fate-sub-subripenc: CMD = md5 -i $(TARGET_SAMPLES)/sub/MovText_capability_tester.mp4 -scodec subrip -f srt
+fate-sub-subripenc: CMD = fmtstdout srt -i $(TARGET_SAMPLES)/sub/MovText_capability_tester.mp4 -scodec subrip
 
 FATE_SUBTITLES_ASS-$(call ALLYES, SUBVIEWER1_DEMUXER SUBVIEWER1_DECODER ICONV) += fate-sub-subviewer1
-fate-sub-subviewer1: CMD = md5 -sub_charenc windows-1250 -i $(TARGET_SAMPLES)/sub/SubViewer1_capability_tester.sub -f ass
+fate-sub-subviewer1: CMD = fmtstdout ass -sub_charenc windows-1250 -i $(TARGET_SAMPLES)/sub/SubViewer1_capability_tester.sub
 
 FATE_SUBTITLES_ASS-$(call DEMDEC, SUBVIEWER, SUBVIEWER) += fate-sub-subviewer
-fate-sub-subviewer: CMD = md5 -i $(TARGET_SAMPLES)/sub/SubViewer_capability_tester.sub -f ass
+fate-sub-subviewer: CMD = fmtstdout ass -i $(TARGET_SAMPLES)/sub/SubViewer_capability_tester.sub
 
 FATE_SUBTITLES_ASS-$(call DEMDEC, VPLAYER, VPLAYER) += fate-sub-vplayer
-fate-sub-vplayer: CMD = md5 -i $(TARGET_SAMPLES)/sub/VPlayer_capability_tester.txt -f ass
+fate-sub-vplayer: CMD = fmtstdout ass -i $(TARGET_SAMPLES)/sub/VPlayer_capability_tester.txt
 
 FATE_SUBTITLES_ASS-$(call DEMDEC, WEBVTT, WEBVTT) += fate-sub-webvtt
-fate-sub-webvtt: CMD = md5 -i $(TARGET_SAMPLES)/sub/WebVTT_capability_tester.vtt -f ass
+fate-sub-webvtt: CMD = fmtstdout ass -i $(TARGET_SAMPLES)/sub/WebVTT_capability_tester.vtt
 
 FATE_SUBTITLES_ASS-$(call ENCMUX, WEBVTT, WEBVTT) += fate-sub-webvttenc
-fate-sub-webvttenc: CMD = md5 -i $(TARGET_SAMPLES)/sub/SubRip_capability_tester.srt -f webvtt
+fate-sub-webvttenc: CMD = fmtstdout webvtt -i $(TARGET_SAMPLES)/sub/SubRip_capability_tester.srt
 
 FATE_SUBTITLES_ASS-$(call ALLYES, MICRODVD_DEMUXER MICRODVD_DECODER ICONV) += fate-sub-charenc
-fate-sub-charenc: CMD = md5 -sub_charenc cp1251 -i $(TARGET_SAMPLES)/sub/cp1251-subtitles.sub -f ass
+fate-sub-charenc: CMD = fmtstdout ass -sub_charenc cp1251 -i $(TARGET_SAMPLES)/sub/cp1251-subtitles.sub
 
 FATE_SUBTITLES-$(call ENCMUX, ASS, ASS) += $(FATE_SUBTITLES_ASS-yes)
 FATE_SUBTITLES += $(FATE_SUBTITLES-yes)
diff --git a/tests/ref/fate/sub-aqtitle b/tests/ref/fate/sub-aqtitle
index d87194b..16efca7 100644
--- a/tests/ref/fate/sub-aqtitle
+++ b/tests/ref/fate/sub-aqtitle
@@ -1 +1,44 @@
-47834efc39225264e705dfb885f57df2
+[Script Info]
+ScriptType: v4.00+
+PlayResX: 384
+PlayResY: 288
+
+[V4+ Styles]
+Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
+Style: Default,Arial,16,&Hffffff,&Hffffff,&H0,&H0,0,0,0,1,1,0,2,10,10,10,0,0
+
+[Events]
+Format: Layer, Start, End, Style, Text
+Dialogue: 0,0:03:29.92,0:03:31.28,Default,Dougu?
+Dialogue: 0,0:03:33.36,0:03:35.76,Default,Zlato, jseš v pořádku?
+Dialogue: 0,0:03:37.72,0:03:39.12,Default,Měl jsi sny.
+Dialogue: 0,0:03:41.44,0:03:43.32,Default,Byly o Marsu?
+Dialogue: 0,0:03:48.92,0:03:50.52,Default,Je to lepší?
+Dialogue: 0,0:03:53.12,0:03:54.72,Default,Chudinko moje.
+Dialogue: 0,0:03:55.76,0:03:58.08,Default,Začíná to být\Nposedlost.
+Dialogue: 0,0:04:05.92,0:04:07.16,Default,Byla tam i ona?
+Dialogue: 0,0:04:09.12,0:04:10.48,Default,Kdo?
+Dialogue: 0,0:04:12.44,0:04:15.16,Default,Ta, o které jsi mi vyprávěl.\NTa bruneta.
+Dialogue: 0,0:04:16.32,0:04:17.52,Default,Lori.
+Dialogue: 0,0:04:20.32,0:04:23.16,Default,Nemůžu uvěřit\Nže žárlíš na sen.
+Dialogue: 0,0:04:23.84,0:04:26.60,Default,- Kdo je ona?\N- Nikdo.
+Dialogue: 0,0:04:26.60,0:04:28.80,Default,"Nikdo"? Jak se jmenuje?
+Dialogue: 0,0:04:28.80,0:04:30.24,Default,Nevím.
+Dialogue: 0,0:04:31.52,0:04:33.20,Default,- Pověz!\N- Nevím!
+Dialogue: 0,0:04:33.20,0:04:35.48,Default,Radši bys mi to měl říct!
+Dialogue: 0,0:04:35.48,0:04:39.16,Default,To není legrace Dougu.\NZdá se ti o ní každou noc.
+Dialogue: 0,0:04:39.16,0:04:41.84,Default,Ale vždy se ráno probudím.
+Dialogue: 0,0:04:41.84,0:04:43.28,Default,Nech mě být!
+Dialogue: 0,0:04:45.72,0:04:47.76,Default,No tak, zlato.
+Dialogue: 0,0:04:47.76,0:04:50.72,Default,Ty víš, že jsi dívkou\Nmých snů.
+Dialogue: 0,0:04:50.72,0:04:52.40,Default,Myslíš to vážně?
+Dialogue: 0,0:04:53.48,0:04:55.32,Default,To víš že ano.
+Dialogue: 0,0:05:04.40,0:05:07.20,Default,Dám ti něco\No čem budeš snít.
+Dialogue: 0,0:05:16.76,0:05:16.92,Default,Premiér se útoku ubránil\Na řekl, že zbraně založené na vesmírných...
+Dialogue: 0,0:05:16.92,0:05:20.36,Default,Premiér se útoku ubránil\Na řekl, že zbraně založené na vesmírných...
+Dialogue: 0,0:05:20.36,0:05:24.36,Default,jsou naše jediná obrana proti\Npočetní převaze z jižního bloku.
+Dialogue: 0,0:05:24.36,0:05:26.76,Default,A další násilí na Marsu...
+Dialogue: 0,0:05:26.76,1:44:16.00,Default,[...]
+Dialogue: 0,1:44:16.00,1:44:17.60,Default,Co se děje?
+Dialogue: 0,1:44:17.60,1:44:21.28,Default,Měl jsem jenom hroznou představu.\NCo když tohle je jenom sen?
+Dialogue: 0,1:44:22.76,1:44:25.68,Default,Tak mi dej ryhcle pusu\Nnež se probudíš.
diff --git a/tests/ref/fate/sub-charenc b/tests/ref/fate/sub-charenc
index 5081731..2e993ce 100644
--- a/tests/ref/fate/sub-charenc
+++ b/tests/ref/fate/sub-charenc
@@ -1 +1,61 @@
-c088c2924fd7af0a53eeeeb54a3f4456
+[Script Info]
+ScriptType: v4.00+
+PlayResX: 384
+PlayResY: 288
+
+[V4+ Styles]
+Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
+Style: Default,Arial,16,&Hffffff,&Hffffff,&H0,&H0,0,0,0,1,1,0,2,10,10,10,0,0
+
+[Events]
+Format: Layer, Start, End, Style, Text
+Dialogue: 0,0:00:32.95,0:00:38.25,Default,КОЛУМБИА ПИКЧЪРС - АЗИЯ\NСОНИ ПИКЧЪРС и Е.Е. Co.\Nпредставят
+Dialogue: 0,0:00:52.76,0:00:58.60,Default,Т И Г Ъ Р   И   Д Р А К О Н
+Dialogue: 0,0:01:22.17,0:01:24.05,Default,Учителят Ли е тук.
+Dialogue: 0,0:01:45.48,0:01:47.32,Default,Шу Лиен!
+Dialogue: 0,0:01:54.53,0:01:57.24,Default,Ли Му Бай е тук.
+Dialogue: 0,0:02:05.83,0:02:09.00,Default,- Как вървят нещата?\N- Добре. Моля, влезте!
+Dialogue: 0,0:02:23.48,0:02:26.52,Default,Му Бай...\NМина много време.
+Dialogue: 0,0:02:26.73,0:02:28.11,Default,Така е.
+Dialogue: 0,0:02:28.57,0:02:31.41,Default,- Как върви бизнесът?\N- Добре.
+Dialogue: 0,0:02:31.61,0:02:33.90,Default,- А ти как си?\N- Добре.
+Dialogue: 0,0:02:40.16,0:02:42.79,Default,Монахът Дзенг каза,\Nче си в планината Удан.
+Dialogue: 0,0:02:43.04,0:02:46.54,Default,Каза, че практикуваш\Nдълбока медитация.
+Dialogue: 0,0:02:48.84,0:02:50.68,Default,Сигурно в планината\Nе много спокойно.
+Dialogue: 0,0:02:51.25,0:02:53.46,Default,Завиждам ти.
+Dialogue: 0,0:02:53.67,0:02:58.34,Default,Имам толкова много работа,\Nпочти не ми остава\Nвреме за почивка.
+Dialogue: 0,0:03:00.26,0:03:03.89,Default,Оставих обучението рано.
+Dialogue: 0,0:03:05.69,0:03:11.28,Default,Защо? Ти си боец на Удан.\NОбучението е всичко.
+Dialogue: 0,0:03:11.90,0:03:14.86,Default,По време на медитация…
+Dialogue: 0,0:03:15.07,0:03:18.49,Default,стигнах до място,\Nкъдето имаше дълбока тишина...
+Dialogue: 0,0:03:19.87,0:03:22.79,Default,бях обграден от светлина...
+Dialogue: 0,0:03:23.41,0:03:28.08,Default,времето и пространството изчезнаха.
+Dialogue: 0,0:03:28.71,0:03:34.09,Default,Достигнах до състояние, за което\Nучителят не ми беше казвал.
+Dialogue: 0,0:03:37.05,0:03:39.14,Default,Постигнал си просветление?
+Dialogue: 0,0:03:39.34,0:03:41.22,Default,Не.
+Dialogue: 0,0:03:41.72,0:03:45.81,Default,Не почувствах блаженството\Nна просветлението.
+Dialogue: 0,0:03:46.02,0:03:52.86,Default,Вместо това... ме обгърна\Nбезкрайна мъка.
+Dialogue: 0,0:03:53.40,0:03:56.57,Default,Не можах да издържа.
+Dialogue: 0,0:03:57.49,0:03:59.74,Default,Прекъснах медитацията си.
+Dialogue: 0,0:03:59.95,0:04:02.24,Default,Не можах да продължа.
+Dialogue: 0,0:04:03.20,0:04:07.79,Default,Нещо...\Nме дърпаше назад.
+Dialogue: 0,0:04:09.62,0:04:10.91,Default,Какво беше?
+Dialogue: 0,0:04:15.46,0:04:18.00,Default,Нещо, от което не\Nмога да се освободя.
+Dialogue: 0,0:04:23.39,0:04:24.68,Default,Скоро ли ще тръгваш?
+Dialogue: 0,0:04:26.77,0:04:30.27,Default,Подготвяме охрана\Nза една доставка...
+Dialogue: 0,0:04:30.48,0:04:31.94,Default,за Пекин.
+Dialogue: 0,0:04:32.56,0:04:34.10,Default,Мога ли да те помоля...
+Dialogue: 0,0:04:35.07,0:04:38.82,Default,да занесеш нещо на господин Те.
+Dialogue: 0,0:04:44.28,0:04:48.12,Default,Зеленият меч на Съдбата!?\NДаваш го на господин Те!?
+Dialogue: 0,0:04:48.37,0:04:52.67,Default,Да. Той винаги е бил\Nнашият най-голям покровител.
+Dialogue: 0,0:04:52.88,0:04:56.55,Default,Не разбирам.\NКак можеш да се разделиш с него?
+Dialogue: 0,0:04:56.76,0:04:59.93,Default,Той винаги е бил с теб.
+Dialogue: 0,0:05:01.18,0:05:05.52,Default,Твърде много хора са\Nзагинали от това острие.
+Dialogue: 0,0:05:09.68,0:05:14.52,Default,Чисто е единствено защото\Nкръвта се отмива лесно.
+Dialogue: 0,0:05:15.40,0:05:20.61,Default,Ти го използваш справедливо.\NДостоен си за него.
+Dialogue: 0,0:05:23.66,0:05:27.37,Default,Дойде време\Nда го оставя.
+Dialogue: 0,0:05:27.58,0:05:31.21,Default,Е, какво ще правиш\Nот сега нататък?
+Dialogue: 0,0:05:34.71,0:05:37.50,Default,Ела с мен в Пекин.
+Dialogue: 0,0:05:37.71,0:05:41.42,Default,Лично ще дадеш меча\Nна господин Те.
+Dialogue: 0,0:05:41.68,0:05:44.89,Default,Ще бъде както преди.
+Dialogue: 0,0:05:47.01,0:05:51.68,Default,Първо трябва да отида\Nна гроба на учителя си.
diff --git a/tests/ref/fate/sub-jacosub b/tests/ref/fate/sub-jacosub
index b9b0cf7..f93fc34 100644
--- a/tests/ref/fate/sub-jacosub
+++ b/tests/ref/fate/sub-jacosub
@@ -1 +1,22 @@
-3bf9f062bd9825c7d8c3b62451b6d360
+[Script Info]
+ScriptType: v4.00+
+PlayResX: 384
+PlayResY: 288
+
+[V4+ Styles]
+Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
+Style: Default,Arial,16,&Hffffff,&Hffffff,&H0,&H0,0,0,0,1,1,0,2,10,10,10,0,0
+
+[Events]
+Format: Layer, Start, End, Style, Text
+Dialogue: 0,0:00:00.12,0:00:04.36,Default,{\an5}JACOsub\N\NThis script demonstrates some of the capabilities of JACOsub.
+Dialogue: 0,0:00:04.12,0:00:14.86,Default,{\an8}Text may be positioned at the top,
+Dialogue: 0,0:00:05.12,0:00:17.46,Default,{\an5}middle,
+Dialogue: 0,0:00:06.12,0:00:20.06,Default,{\an2}or bottom of the screen.
+Dialogue: 0,0:00:08.12,0:00:27.36,Default,{\an5}{this is a comment} (And, you just saw, {another comment} timing ranges for different lines of text.
+Dialogue: 0,0:00:11.12,0:00:35.86,Default,{\an1}Within margin constraints\Nthat you set, text may be\Nleft justified,
+Dialogue: 0,0:00:13.62,0:00:42.11,Default,{\an2}{the JC is redundant - it's the default}center\Njustified,
+Dialogue: 0,0:00:14.87,0:00:45.86,Default,{\an3}and also\Nright justified.
+Dialogue: 0,0:00:22.42,0:01:12.76,Default,Text may appear in different styles\N(Normal, {\b1}Bold{\r}, {\i1}Italic{\r})
+Dialogue: 0,0:01:16.12,0:03:53.36,Default,{\an5}\N\NAt that time, you may press any key to return to the Editor.
+Dialogue: 0,0:01:16.12,0:03:53.36,Default,OK, this script will be finished when the screen goes blank.
diff --git a/tests/ref/fate/sub-microdvd b/tests/ref/fate/sub-microdvd
index f72308e..7ae06e8 100644
--- a/tests/ref/fate/sub-microdvd
+++ b/tests/ref/fate/sub-microdvd
@@ -1 +1,22 @@
-1741d6776462277430d5e320157f5bf9
+[Script Info]
+ScriptType: v4.00+
+PlayResX: 384
+PlayResY: 288
+
+[V4+ Styles]
+Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
+Style: Default,Comic Sans MS,30,&H123456,&H123456,&H0,&H0,0,0,0,1,1,0,2,10,10,10,0,0
+
+[Events]
+Format: Layer, Start, End, Style, Text
+Dialogue: 0,0:00:00.00,0:00:40.00,Default,25.000 FPS
+Dialogue: 0,0:00:40.00,0:00:52.00,Default,{\c&H345678&}foo{\c}\N{\c&HABCDEF&}bar{\c}\Nbla
+Dialogue: 0,0:00:52.00,0:00:56.00,Default,{\u1}{\s1}{\i1}{\b1}italic bold underline strike{\s0}{\u0}\Nitalic bold no-underline no-strike
+Dialogue: 0,0:00:56.00,0:01:00.00,Default,back to
+Dialogue: 0,0:01:00.00,0:01:04.00,Default,the future
+Dialogue: 0,0:01:20.00,0:01:24.92,Default,{\pos(10,20)}Some more crazy stuff
+Dialogue: 0,0:02:14.00,0:02:15.60,Default,this subtitle...
+Dialogue: 0,0:02:15.60,0:02:40.00,Default,...continues up to...
+Dialogue: 0,0:02:40.00,0:03:00.00,Default,this one.
+Dialogue: 0,0:03:04.00,0:03:12.00,Default,and now...
+Dialogue: 0,0:03:12.00,9:59:59.99,Default,...to the end of the presentation
diff --git a/tests/ref/fate/sub-microdvd-remux b/tests/ref/fate/sub-microdvd-remux
index 24b5d3dc188b857116ba21efe00a7f2460439f17..7cbab62c3e8adda33c25c6ce82bcb07331efa86e 100644
GIT binary patch
literal 436
zcmYk1KTpFj5XG7EDLgPjWXDM<*$~hPB&5K=XeW-an))jL5h_=Ich2bmi<9@>&+pFo
z^t^lcczMs5ao0b>!H#TDF0j`j<Iqc<aqO=}BinA1uaKnRoad&i>BDw!Lv=AwNU{rC
z$h&Qx0nSA#Jx*rMTKThH6wxau+CqQ!R%bl*DP$YfLZdY-6H9I~ezDH55WU at -^Z(Gn
z?O#sff>7_;C_3uZYTUC3<Q0WtLudRlY)&zGQ(;qHfDJt=BlLpbG&~P*Fzf){u+giZ
z6HQL at T%nX5p;F$L1{+vNI at -9Hx~@w|Hqu<4Nsr*7b;$&ljx>EG)(qRS#(Eu`p?hsv
j2-_{4%1z9{_XREnmZ}J>>}x25dHp?l6O4;0T5#1bF|Cgl

literal 33
ocmXprvrIKLOf at z&PqRq0NJ=p<Ge|Qsv9vTau}n5fNloDb0FxL9umAu6

diff --git a/tests/ref/fate/sub-movtext b/tests/ref/fate/sub-movtext
index 3274395..98d4ac3 100644
--- a/tests/ref/fate/sub-movtext
+++ b/tests/ref/fate/sub-movtext
@@ -1 +1,14 @@
-24c02caa25c6a82d803171697a10d8f5
+[Script Info]
+ScriptType: v4.00+
+PlayResX: 384
+PlayResY: 288
+
+[V4+ Styles]
+Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
+Style: Default,Arial,16,&Hffffff,&Hffffff,&H0,&H0,0,0,0,1,1,0,2,10,10,10,0,0
+
+[Events]
+Format: Layer, Start, End, Style, Text
+Dialogue: 0,0:00:00.97,0:00:02.54,Default,- Test 1.\N- Test 2.
+Dialogue: 0,0:00:03.05,0:00:04.74,Default,Test 3.
+Dialogue: 0,0:00:05.85,0:00:08.14,Default,- Test 4.\N- Test 5.
diff --git a/tests/ref/fate/sub-mpl2 b/tests/ref/fate/sub-mpl2
index 39b38bc..53952fa 100644
--- a/tests/ref/fate/sub-mpl2
+++ b/tests/ref/fate/sub-mpl2
@@ -1 +1,15 @@
-28fb7dad61c3394f5edc8b186fdf7dd6
+[Script Info]
+ScriptType: v4.00+
+PlayResX: 384
+PlayResY: 288
+
+[V4+ Styles]
+Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
+Style: Default,Arial,16,&Hffffff,&Hffffff,&H0,&H0,0,0,0,1,1,0,2,10,10,10,0,0
+
+[Events]
+Format: Layer, Start, End, Style, Text
+Dialogue: 0,0:00:00.00,0:00:01.20,Default,Foo\Nbar\Nbla
+Dialogue: 0,0:00:04.10,0:00:05.30,Default,{\i1}italic{\r}\N{\b1}bold{\r}\N{\b1}{\i1}italicbold
+Dialogue: 0,0:00:05.30,0:00:07.20,Default,{\u1}underline{\r}\Nnormal
+Dialogue: 0,0:00:08.40,0:00:12.80,Default,hello
diff --git a/tests/ref/fate/sub-mpsub b/tests/ref/fate/sub-mpsub
index d49ba2a..10adbd0 100644
--- a/tests/ref/fate/sub-mpsub
+++ b/tests/ref/fate/sub-mpsub
@@ -1 +1,32 @@
-2f10577c4e2631e9a50495fa2cc9a985
+[Script Info]
+ScriptType: v4.00+
+PlayResX: 384
+PlayResY: 288
+
+[V4+ Styles]
+Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
+Style: Default,Arial,16,&Hffffff,&Hffffff,&H0,&H0,0,0,0,1,1,0,2,10,10,10,0,0
+
+[Events]
+Format: Layer, Start, End, Style, Text
+Dialogue: 0,0:00:15.00,0:00:18.00,Default,A long, long time ago...
+Dialogue: 0,0:00:18.00,0:00:21.00,Default,in a galaxy far away...
+Dialogue: 0,0:00:21.00,0:00:24.00,Default,Naboo was under an attack.
+Dialogue: 0,0:00:25.00,0:00:27.50,Default,And I thought me and\NQui-Gon Jinn could
+Dialogue: 0,0:00:27.50,0:00:30.00,Default,talk the Federation into
+Dialogue: 0,0:00:30.00,0:00:34.00,Default,...maybe cutting them a\Nlittle slack.
+Dialogue: 0,0:00:36.00,0:00:39.00,Default,But their response, it\Ndidn't thrill us,
+Dialogue: 0,0:00:39.00,0:00:42.00,Default,They locked the doors,\Nand tried to kill us.
+Dialogue: 0,0:00:42.00,0:00:44.50,Default,We escaped from that gas,
+Dialogue: 0,0:00:44.50,0:00:48.00,Default,then met Jar-jar and\NBoss-Nass.
+Dialogue: 0,0:00:49.00,0:00:55.00,Default,We took a bongo from the\Nscene and we went to\NTheed to see the Queen.
+Dialogue: 0,0:00:55.00,0:01:00.00,Default,We all wound' up on\NTatooine.
+Dialogue: 0,0:01:00.00,0:01:06.00,Default,That's where, we've found\Nthis boy.
+Dialogue: 0,0:01:06.00,0:01:10.00,Default,Oh my, my this here\NAnakin guy,
+Dialogue: 0,0:01:10.00,0:01:15.00,Default,maybe Vader someday\Nlater now he's just\Na small fry.
+Dialogue: 0,0:01:15.00,0:01:19.00,Default,And he left his home and\Nkissed his mommy goodbye,
+Dialogue: 0,0:01:19.00,0:01:24.00,Default,singing "Soon I'm gonna be\Na Jedi!"
+Dialogue: 0,0:01:30.00,0:01:36.00,Default,Did you know this junkyard\Nslave isn't even old enough\Nto shave,
+Dialogue: 0,0:01:36.00,0:01:39.00,Default,but he can use the Force,\Nthey say.
+Dialogue: 0,0:01:40.00,0:01:46.00,Default,Ahh, do you see him hitting\Non the queen though he's\Njust nine and she's fourteen
+Dialogue: 0,0:01:46.00,0:01:52.00,Default,yeah, he's probably gonna\Nmarry her, someday!
diff --git a/tests/ref/fate/sub-mpsub-frames b/tests/ref/fate/sub-mpsub-frames
index f78edd0..7596fbe 100644
--- a/tests/ref/fate/sub-mpsub-frames
+++ b/tests/ref/fate/sub-mpsub-frames
@@ -1 +1,13 @@
-792dab5d9a471e0381e18b705fc408cc
+[Script Info]
+ScriptType: v4.00+
+PlayResX: 384
+PlayResY: 288
+
+[V4+ Styles]
+Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
+Style: Default,Arial,16,&Hffffff,&Hffffff,&H0,&H0,0,0,0,1,1,0,2,10,10,10,0,0
+
+[Events]
+Format: Layer, Start, End, Style, Text
+Dialogue: 0,0:00:01.00,0:00:02.48,Default,Start at 1sec,\Nlast 1.5 seconds
+Dialogue: 0,0:00:02.52,0:00:11.52,Default,One frame later,\Nduring 9 seconds
diff --git a/tests/ref/fate/sub-pjs b/tests/ref/fate/sub-pjs
index 3535039..6c0d1f0 100644
--- a/tests/ref/fate/sub-pjs
+++ b/tests/ref/fate/sub-pjs
@@ -1 +1,14 @@
-a335eefaf09b3b148e65c757bf41af4d
+[Script Info]
+ScriptType: v4.00+
+PlayResX: 384
+PlayResY: 288
+
+[V4+ Styles]
+Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
+Style: Default,Arial,16,&Hffffff,&Hffffff,&H0,&H0,0,0,0,1,1,0,2,10,10,10,0,0
+
+[Events]
+Format: Layer, Start, End, Style, Text
+Dialogue: 0,0:04:04.70,0:04:11.30,Default,You should come to the Drama Club, too.
+Dialogue: 0,0:04:11.30,0:04:19.40,Default,Yeah. The Drama Club is worried\Nthat you haven't been coming.
+Dialogue: 0,0:04:20.30,0:04:27.50,Default,I see. Sorry, I'll drop by next time.
diff --git a/tests/ref/fate/sub-realtext b/tests/ref/fate/sub-realtext
index 4dc5753..4246da4 100644
--- a/tests/ref/fate/sub-realtext
+++ b/tests/ref/fate/sub-realtext
@@ -1 +1,16 @@
-a36977a149ce60eac443e4c9bb329ca2
+[Script Info]
+ScriptType: v4.00+
+PlayResX: 384
+PlayResY: 288
+
+[V4+ Styles]
+Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
+Style: Default,Arial,16,&Hffffff,&Hffffff,&H0,&H0,0,0,0,1,1,0,2,10,10,10,0,0
+
+[Events]
+Format: Layer, Start, End, Style, Text
+Dialogue: 0,0:00:00.00,0:00:00.00,Default,Mary had a little lamb, \N
+Dialogue: 0,0:00:03.00,0:00:18.00,Default,little lamb, \N
+Dialogue: 0,0:00:06.99,0:00:21.99,Default,little lamb, \N
+Dialogue: 0,0:00:09.00,0:00:23.00,Default,Mary had a little lamb \N
+Dialogue: 0,0:00:12.34,0:00:27.34,Default,whose fleece was white as snow. 
diff --git a/tests/ref/fate/sub-sami b/tests/ref/fate/sub-sami
index 0f5dc6d..729e22c 100644
--- a/tests/ref/fate/sub-sami
+++ b/tests/ref/fate/sub-sami
@@ -1 +1,20 @@
-04098faede85ddacb40aa12c798cc0cc
+[Script Info]
+ScriptType: v4.00+
+PlayResX: 384
+PlayResY: 288
+
+[V4+ Styles]
+Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
+Style: Default,Arial,16,&Hffffff,&Hffffff,&H0,&H0,0,0,0,1,1,0,2,10,10,10,0,0
+
+[Events]
+Format: Layer, Start, End, Style, Text
+Dialogue: 0,0:00:00.00,0:00:00.01,Default,{\i1}Pres. John F. Kennedy {\i0}\N
+Dialogue: 0,0:00:00.01,0:00:08.80,Default,{\i1}Pres. John F. Kennedy {\i0}\NLet the word go forth, from this time and place to friend and foe alike that the torch 
+Dialogue: 0,0:00:08.80,0:00:19.50,Default,{\i1}Pres. John F. Kennedy {\i0}\Nhas been passed to a new generation of Americans, born in this century, tempered by war, 
+Dialogue: 0,0:00:19.50,0:00:28.00,Default,{\i1}Pres. John F. Kennedy {\i0}\Ndisciplined by a hard and bitter peace, proud of our ancient heritage, and unwilling to witness 
+Dialogue: 0,0:00:28.00,0:00:38.00,Default,{\i1}Pres. John F. Kennedy {\i0}\Nor permit the slow undoing of those human rights to which this nation has always 
+Dialogue: 0,0:00:38.00,0:00:46.00,Default,{\i1}Pres. John F. Kennedy {\i0}\Nbeen committed and to which we are committed today at home and around the world. 
+Dialogue: 0,0:00:46.00,0:01:01.00,Default,{\i1}Pres. John F. Kennedy {\i0}\NLet every nation know, whether it wishes us well or ill, that we shall pay any price, bear any burden, 
+Dialogue: 0,0:01:01.00,0:01:13.00,Default,{\i1}Pres. John F. Kennedy {\i0}\Nmeet any hardship, support any friend, oppose any foe, to ensure the survival and success of liberty. 
+Dialogue: 0,0:01:13.00,9:59:59.99,Default,{\i1}End of: {\i0}\NPresident John F. Kennedy Speech 
diff --git a/tests/ref/fate/sub-srt b/tests/ref/fate/sub-srt
index c5044e3..fa29516 100644
--- a/tests/ref/fate/sub-srt
+++ b/tests/ref/fate/sub-srt
@@ -1 +1,48 @@
-be870f5037933b6890d56e614ec4aa75
+[Script Info]
+ScriptType: v4.00+
+PlayResX: 384
+PlayResY: 288
+
+[V4+ Styles]
+Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
+Style: Default,Arial,16,&Hffffff,&Hffffff,&H0,&H0,0,0,0,1,1,0,2,10,10,10,0,0
+
+[Events]
+Format: Layer, Start, End, Style, Text
+Dialogue: 0,0:00:00.00,0:00:00.00,Default,Don't show this text it may be used to insert hidden data
+Dialogue: 0,0:00:01.50,0:00:04.50,Default,SubRip subtitles capability tester 1.3o by ale5000\N{\b1}{\i1}Use VLC 1.1 or higher as reference for most things and MPC Home Cinema for others{\i0}{\b0}\N{\c&HFF0000&}This text should be blue{\c}\N{\c&HFF&}This text should be red{\c}\N{\c&H0&}This text should be black{\c}\N{\fnWebdings}If you see this with the normal font, the player don't (fully) support font face{\fn}
+Dialogue: 0,0:00:04.50,0:00:04.50,Default,Hidden
+Dialogue: 0,0:00:04.50,0:00:07.50,Default,{\fs8}This text should be small{\fs}\NThis text should be normal\N{\fs35}This text should be big{\fs}
+Dialogue: 0,0:00:07.50,0:00:11.50,Default,This should be an E with an accent: È\N日本語\N{\fs30}{\b1}{\i1}{\u1}This text should be bold, italics and underline{\u0}{\i0}{\b0}{\fs}\N{\fs9}{\c&HFF00&}This text should be small and green{\c}{\fs}\N{\fs9}{\c&HFF&}This text should be small and red{\c}{\fs}\N{\fs24}{\c&H2A2AA5&}This text should be big and brown{\c}{\fs}
+Dialogue: 0,0:00:11.50,0:00:14.50,Default,{\b1}This line should be bold{\b0}\N{\i1}This line should be italics{\i0}\N{\u1}This line should be underline{\u0}\N{\s1}This line should be strikethrough{\s0}\N{\u1}Both lines\Nshould be underline{\u0}
+Dialogue: 0,0:00:14.50,0:00:17.50,Default,>\NIt would be a good thing to\Nhide invalid html tags that are closed and show the text in them\N<invalid_tag_unclosed>but show un-closed invalid html tags\NShow not opened tags</invalid_tag_not_opened>\N<
+Dialogue: 0,0:00:17.50,0:00:20.50,Default,and also\Nhide invalid html tags with parameters that are closed and show the text in them\N<invalid_tag_uc par=5>but show un-closed invalid html tags\N{\u1}This text should be showed underlined without problems also: 2<3,5>1,4<6{\u0}\NThis shouldn't be underlined
+Dialogue: 0,0:00:20.50,0:00:21.50,Default,This text should be in the normal position...
+Dialogue: 0,0:00:21.50,0:00:22.50,Default,{\an1}{\move(0,50,0,100)}This text should NOT be in the normal position
+Dialogue: 0,0:00:22.50,0:00:24.50,Default,Implementation is the same of the ASS tag\N{\an8}This text should be at the\Ntop and horizontally centered
+Dialogue: 0,0:00:22.50,0:00:24.50,Default,{\an5}This text should be at the\Nmiddle and horizontally centered
+Dialogue: 0,0:00:22.50,0:00:24.50,Default,{\an2}This text should be at the\Nbottom and horizontally centered
+Dialogue: 0,0:00:24.50,0:00:26.50,Default,This text should be at the\Ntop and horizontally at the left{\an7}
+Dialogue: 0,0:00:24.50,0:00:26.50,Default,{\an4}This text should be at the\Nmiddle and horizontally at the left\N(The second position must be ignored)
+Dialogue: 0,0:00:24.50,0:00:26.50,Default,{\an1}This text should be at the\Nbottom and horizontally at the left
+Dialogue: 0,0:00:26.50,0:00:28.50,Default,{\an9}This text should be at the\Ntop and horizontally at the right
+Dialogue: 0,0:00:26.50,0:00:28.50,Default,{\an6}This text should be at the\Nmiddle and horizontally at the right
+Dialogue: 0,0:00:26.50,0:00:28.50,Default,{\an3}This text should be at the\Nbottom and horizontally at the right
+Dialogue: 0,0:00:28.50,0:00:31.50,Default,{\fs6}{\c&HFF00&}This could be the {\fs35}m{\c&H0&}o{\c&HFF00&}st{\fs6} difficult thing to implement{\c}{\fs}
+Dialogue: 0,0:00:31.50,0:00:50.50,Default,First text
+Dialogue: 0,0:00:33.50,0:00:35.50,Default,Second, it shouldn't overlap first
+Dialogue: 0,0:00:35.50,0:00:37.50,Default,Third, it should replace second
+Dialogue: 0,0:00:36.50,0:00:50.50,Default,Fourth, it shouldn't overlap first and third
+Dialogue: 0,0:00:40.50,0:00:45.50,Default,Fifth, it should replace third
+Dialogue: 0,0:00:45.50,0:00:50.50,Default,Sixth, it shouldn't be\Nshowed overlapped
+Dialogue: 0,0:00:50.50,0:00:52.50,Default,TEXT 1 (bottom)
+Dialogue: 0,0:00:50.50,0:00:52.50,Default,text 2
+Dialogue: 0,0:00:52.50,0:00:54.50,Default,Hide these tags:\Nalso hide these tags:\Nbut show this: {normal text}
+Dialogue: 0,0:00:54.50,0:01:00.50,Default,{\an8}\N\ N is a forced line break\N\ h is a hard space\NNormal spaces at the start and at the end of the line are trimmed while hard spaces are not trimmed.\NThe\hline\hwill\hnever\hbreak\hautomatically\hright\hbefore\hor\hafter\ha\hhard\hspace.\h:-D
+Dialogue: 0,0:00:54.50,0:00:56.50,Default,{\an1}\N\h\h\h\h\hA (05 hard spaces followed by a letter)\NA (Normal  spaces followed by a letter)\NA (No hard spaces followed by a letter)
+Dialogue: 0,0:00:56.50,0:00:58.50,Default,\h\h\h\h\hA (05 hard spaces followed by a letter)\NA (Normal  spaces followed by a letter)\NA (No hard spaces followed by a letter)\NShow this: \TEST and this: \-)
+Dialogue: 0,0:00:58.50,0:01:00.50,Default,{\an3}\NA letter followed by 05 hard spaces: A\h\h\h\h\h\NA letter followed by normal  spaces: A\NA letter followed by no hard spaces: A\N05 hard  spaces between letters: A\h\h\h\h\hA\N5 normal spaces between letters: A     A\N\N^--Forced line break
+Dialogue: 0,0:01:00.50,0:01:02.50,Default,{\s1}Both line should be strikethrough,\Nyes.{\s0}\NCorrectly closed tags\Nshould be hidden.
+Dialogue: 0,0:01:02.50,0:01:04.50,Default,It shouldn't be strikethrough,\Nnot opened tag showed as text.</s>\NNot opened tag showed as text.</xxxxx>
+Dialogue: 0,0:01:04.50,0:01:06.50,Default,{\s1}Three lines should be strikethrough,\Nyes.\N<yyyy>Not closed tags showed as text
+Dialogue: 0,0:01:06.50,0:01:08.50,Default,{\s1}Both line should be strikethrough but\Nthe wrong closing tag should be showed</b>
diff --git a/tests/ref/fate/sub-subripenc b/tests/ref/fate/sub-subripenc
index 9666e9b..1f1e031 100644
--- a/tests/ref/fate/sub-subripenc
+++ b/tests/ref/fate/sub-subripenc
@@ -1 +1,14 @@
-b7cb0eeb34af0da364e29b238f0634ae
+1
+00:00:00,970 --> 00:00:02,540
+- Test 1.
+- Test 2.
+
+2
+00:00:03,050 --> 00:00:04,740
+Test 3.
+
+3
+00:00:05,850 --> 00:00:08,140
+- Test 4.
+- Test 5.
+
diff --git a/tests/ref/fate/sub-subviewer b/tests/ref/fate/sub-subviewer
index a083868..8c9eeed 100644
--- a/tests/ref/fate/sub-subviewer
+++ b/tests/ref/fate/sub-subviewer
@@ -1 +1,14 @@
-848f774195e873ce71febf35b6c9c541
+[Script Info]
+ScriptType: v4.00+
+PlayResX: 384
+PlayResY: 288
+
+[V4+ Styles]
+Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
+Style: Default,Arial,16,&Hffffff,&Hffffff,&H0,&H0,0,0,0,1,1,0,2,10,10,10,0,0
+
+[Events]
+Format: Layer, Start, End, Style, Text
+Dialogue: 0,0:01:00.10,0:02:00.20,Default,Hello.\NWorld!
+Dialogue: 0,0:02:00.30,0:03:00.40,Default,\Nfoo\Nbar\Nbla\Nmixed with br
+Dialogue: 0,0:03:04.12,0:03:10.20,Default,Another event.
diff --git a/tests/ref/fate/sub-subviewer1 b/tests/ref/fate/sub-subviewer1
index 7d2ca53..760b5c1 100644
--- a/tests/ref/fate/sub-subviewer1
+++ b/tests/ref/fate/sub-subviewer1
@@ -1 +1,21 @@
-040d7880a6621b1661f9d12c5375037f
+[Script Info]
+ScriptType: v4.00+
+PlayResX: 384
+PlayResY: 288
+
+[V4+ Styles]
+Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
+Style: Default,Arial,16,&Hffffff,&Hffffff,&H0,&H0,0,0,0,1,1,0,2,10,10,10,0,0
+
+[Events]
+Format: Layer, Start, End, Style, Text
+Dialogue: 0,0:03:45.00,0:03:48.00,Default,- ToIerábiIis?\N- Azt jeIenti: tűrhető.
+Dialogue: 0,0:03:48.00,0:03:51.00,Default,Tudom, mit jeIent. Megnézhetem?
+Dialogue: 0,0:03:52.00,0:03:54.00,Default,TiszteIt bírónő.
+Dialogue: 0,0:03:57.00,0:04:00.00,Default,KépzeIje magát\Na környékbeIi gyermekek heIyébe.
+Dialogue: 0,0:04:01.00,0:04:05.00,Default,Naphosszat monoton, döngöIő zaj\Nszaggatja a dobhártyájukat.
+Dialogue: 0,0:04:05.00,0:04:10.00,Default,Ahogy egyre föIébük tornyosuI,\Nrájuk veti sötét árnyékát.
+Dialogue: 0,0:04:10.00,0:04:15.00,Default,Ez a feIhőkarcoIó, az emberi\Nmohóság újabb emIékműve.
+Dialogue: 0,1:50:38.00,1:50:41.00,Default,készen áIIok.
+Dialogue: 0,1:51:00.00,1:51:03.00,Default,Joe ... Miguel keres.
+Dialogue: 0,2:00:18.00,9:59:59.99,Default,Magyar szöveg: Nikowvitz Oszkár
diff --git a/tests/ref/fate/sub-vplayer b/tests/ref/fate/sub-vplayer
index 70ba787..600de4f 100644
--- a/tests/ref/fate/sub-vplayer
+++ b/tests/ref/fate/sub-vplayer
@@ -1 +1,14 @@
-0bb5d4f72b6dc1b37d2ee7b5579ed87e
+[Script Info]
+ScriptType: v4.00+
+PlayResX: 384
+PlayResY: 288
+
+[V4+ Styles]
+Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
+Style: Default,Arial,16,&Hffffff,&Hffffff,&H0,&H0,0,0,0,1,1,0,2,10,10,10,0,0
+
+[Events]
+Format: Layer, Start, End, Style, Text
+Dialogue: 0,0:00:00.12,0:00:23.51,Default,Hello
+Dialogue: 0,0:00:23.51,0:01:02.05,Default,World
+Dialogue: 0,0:01:02.05,9:59:59.99,Default,!\Nnewline
diff --git a/tests/ref/fate/sub-webvtt b/tests/ref/fate/sub-webvtt
index 528e55c..85faa7a 100644
--- a/tests/ref/fate/sub-webvtt
+++ b/tests/ref/fate/sub-webvtt
@@ -1 +1,26 @@
-ee266bd7141df4ea11a9447ab038bb6e
+[Script Info]
+ScriptType: v4.00+
+PlayResX: 384
+PlayResY: 288
+
+[V4+ Styles]
+Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, AlphaLevel, Encoding
+Style: Default,Arial,16,&Hffffff,&Hffffff,&H0,&H0,0,0,0,1,1,0,2,10,10,10,0,0
+
+[Events]
+Format: Layer, Start, End, Style, Text
+Dialogue: 0,0:00:11.00,0:00:13.00,Default,We are in New York City\NRandom line added
+Dialogue: 0,0:00:13.00,0:00:16.00,Default,We're actually at the Lucern Hotel, just down the street
+Dialogue: 0,0:00:16.00,0:00:18.00,Default,from the American Museum of Natural History
+Dialogue: 0,0:00:18.00,0:00:20.00,Default,And with me is Neil deGrasse Tyson
+Dialogue: 0,0:00:20.00,0:00:22.00,Default,Astrophysicist, Director of the Hayden Planetarium
+Dialogue: 0,0:00:22.00,0:00:24.00,Default,at the AMNH.
+Dialogue: 0,0:00:24.00,0:00:26.00,Default,Thank you for walking down here.
+Dialogue: 0,0:00:27.00,0:00:30.00,Default,And I want to do a follow-up on the last conversation we did.\Nmultiple lines\Nagain
+Dialogue: 0,0:00:30.00,0:00:31.50,Default,When we e-mailed—
+Dialogue: 0,0:00:30.50,0:00:32.50,Default,Didn't we {\b1}talk {\i1}about\N{\i0} enough{\b0} in that conversation? \{I'm not an ASS comment\}
+Dialogue: 0,0:00:32.00,0:00:35.50,Default,No! No no no no; 'cos 'cos obviously 'cos
+Dialogue: 0,0:00:32.50,0:00:33.50,Default,{\i1}Laughs{\i0}
+Dialogue: 0,0:00:35.50,0:00:38.00,Default,You know I'm so excited my glasses are falling off here.
+Dialogue: 0,0:00:50.00,0:00:51.13,Default,This event and the following\None have CLRF
+Dialogue: 0,0:59:00.12,1:23:45.68,Default,Obiwan Kenobi
diff --git a/tests/ref/fate/sub-webvttenc b/tests/ref/fate/sub-webvttenc
index 3fe6669..dbeadb0 100644
--- a/tests/ref/fate/sub-webvttenc
+++ b/tests/ref/fate/sub-webvttenc
@@ -1 +1,177 @@
-8683216a86e147a98f29dafee33a0987
+WEBVTT
+
+00:00.000 --> 00:00.000
+Don't show this text it may be used to insert hidden data
+
+00:01.500 --> 00:04.500
+SubRip subtitles capability tester 1.3o by ale5000
+<b><i>Use VLC 1.1 or higher as reference for most things and MPC Home Cinema for others</i></b>
+This text should be blue
+This text should be red
+This text should be black
+If you see this with the normal font, the player don't (fully) support font face
+
+00:04.500 --> 00:04.500
+Hidden
+
+00:04.501 --> 00:07.501
+This text should be small
+This text should be normal
+This text should be big
+
+00:07.501 --> 00:11.501
+This should be an E with an accent: È
+日本語
+<b><i><u>This text should be bold, italics and underline</u></i></b>
+This text should be small and green
+This text should be small and red
+This text should be big and brown
+
+00:11.501 --> 00:14.501
+<b>This line should be bold</b>
+<i>This line should be italics</i>
+<u>This line should be underline</u>
+This line should be strikethrough
+<u>Both lines
+should be underline</u>
+
+00:14.501 --> 00:17.501
+>
+It would be a good thing to
+hide invalid html tags that are closed and show the text in them
+<invalid_tag_unclosed>but show un-closed invalid html tags
+Show not opened tags</invalid_tag_not_opened>
+<
+
+00:17.501 --> 00:20.501
+and also
+hide invalid html tags with parameters that are closed and show the text in them
+<invalid_tag_uc par=5>but show un-closed invalid html tags
+<u>This text should be showed underlined without problems also: 2<3,5>1,4<6</u>
+This shouldn't be underlined
+
+00:20.501 --> 00:21.501
+This text should be in the normal position...
+
+00:21.501 --> 00:22.501
+This text should NOT be in the normal position
+
+00:22.501 --> 00:24.501
+Implementation is the same of the ASS tag
+This text should be at the
+top and horizontally centered
+
+00:22.501 --> 00:24.501
+This text should be at the
+middle and horizontally centered
+
+00:22.501 --> 00:24.501
+This text should be at the
+bottom and horizontally centered
+
+00:24.501 --> 00:26.501
+This text should be at the
+top and horizontally at the left
+
+00:24.501 --> 00:26.501
+This text should be at the
+middle and horizontally at the left
+(The second position must be ignored)
+
+00:24.501 --> 00:26.501
+This text should be at the
+bottom and horizontally at the left
+
+00:26.501 --> 00:28.501
+This text should be at the
+top and horizontally at the right
+
+00:26.501 --> 00:28.501
+This text should be at the
+middle and horizontally at the right
+
+00:26.501 --> 00:28.501
+This text should be at the
+bottom and horizontally at the right
+
+00:28.501 --> 00:31.501
+This could be the most difficult thing to implement
+
+00:31.501 --> 00:50.501
+First text
+
+00:33.500 --> 00:35.500
+Second, it shouldn't overlap first
+
+00:35.501 --> 00:37.501
+Third, it should replace second
+
+00:36.501 --> 00:50.501
+Fourth, it shouldn't overlap first and third
+
+00:40.501 --> 00:45.501
+Fifth, it should replace third
+
+00:45.501 --> 00:50.501
+Sixth, it shouldn't be
+showed overlapped
+
+00:50.501 --> 00:52.501
+TEXT 1 (bottom)
+
+00:50.501 --> 00:52.501
+text 2
+
+00:52.501 --> 00:54.501
+Hide these tags:
+also hide these tags:
+but show this: {normal text}
+
+00:54.501 --> 01:00.501
+
+\ N is a forced line break
+\ h is a hard space
+Normal spaces at the start and at the end of the line are trimmed while hard spaces are not trimmed.
+The\hline\hwill\hnever\hbreak\hautomatically\hright\hbefore\hor\hafter\ha\hhard\hspace.\h:-D
+
+00:54.501 --> 00:56.501
+
+\h\h\h\h\hA (05 hard spaces followed by a letter)
+A (Normal  spaces followed by a letter)
+A (No hard spaces followed by a letter)
+
+00:56.501 --> 00:58.501
+\h\h\h\h\hA (05 hard spaces followed by a letter)
+A (Normal  spaces followed by a letter)
+A (No hard spaces followed by a letter)
+Show this: \TEST and this: \-)
+
+00:58.501 --> 01:00.501
+
+A letter followed by 05 hard spaces: A\h\h\h\h\h
+A letter followed by normal  spaces: A
+A letter followed by no hard spaces: A
+05 hard  spaces between letters: A\h\h\h\h\hA
+5 normal spaces between letters: A     A
+
+^--Forced line break
+
+01:00.501 --> 01:02.501
+Both line should be strikethrough,
+yes.
+Correctly closed tags
+should be hidden.
+
+01:02.501 --> 01:04.501
+It shouldn't be strikethrough,
+not opened tag showed as text.</s>
+Not opened tag showed as text.</xxxxx>
+
+01:04.501 --> 01:06.501
+Three lines should be strikethrough,
+yes.
+<yyyy>Not closed tags showed as text
+
+01:06.501 --> 01:08.501
+Both line should be strikethrough but
+the wrong closing tag should be showed</b>
-- 
2.1.2



More information about the ffmpeg-devel mailing list