[FFmpeg-devel] [PATCH 4/6] ffmpeg: set sub_text_format to ass (without timing) by default

Clément Bœsch u at pkh.me
Sun Feb 21 13:08:31 CET 2016


---
 ffmpeg.c                     |  2 ++
 tests/ref/fate/sub-charenc   |  2 +-
 tests/ref/fate/sub-textenc   | 66 ++++++++++++++++++++++----------------------
 tests/ref/fate/sub-webvttenc | 66 ++++++++++++++++++++++----------------------
 4 files changed, 69 insertions(+), 67 deletions(-)

diff --git a/ffmpeg.c b/ffmpeg.c
index 32f7bd2..9c9bc11 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -2547,6 +2547,8 @@ static int init_input_stream(int ist_index, char *error, int error_len)
                 av_log(NULL, AV_LOG_WARNING, "Warning using DVB subtitles for filtering and output at the same time is not fully supported, also see -compute_edt [0|1]\n");
         }
 
+        av_dict_set(&ist->decoder_opts, "sub_text_format", "ass", AV_DICT_DONT_OVERWRITE);
+
         if (!av_dict_get(ist->decoder_opts, "threads", NULL, 0))
             av_dict_set(&ist->decoder_opts, "threads", "auto", 0);
         if ((ret = avcodec_open2(ist->dec_ctx, codec, &ist->decoder_opts)) < 0) {
diff --git a/tests/ref/fate/sub-charenc b/tests/ref/fate/sub-charenc
index ed5cdbe..a056cd1 100644
--- a/tests/ref/fate/sub-charenc
+++ b/tests/ref/fate/sub-charenc
@@ -16,7 +16,7 @@ Dialogue: 0,0:01:22.17,0:01:24.05,Default,,0,0,0,,Учителят Ли е ту
 Dialogue: 0,0:01:45.48,0:01:47.32,Default,,0,0,0,,Шу Лиен!
 Dialogue: 0,0:01:54.53,0:01:57.24,Default,,0,0,0,,Ли Му Бай е тук.
 Dialogue: 0,0:02:05.83,0:02:09.00,Default,,0,0,0,,- Как вървят нещата?\N- Добре. Моля, влезте!
-Dialogue: 0,0:02:23.48,0:02:26.52,Default,,0,0,0,,Му Бай...\NМина много време.
+Dialogue: 0,0:02:23.48,0:02:26.53,Default,,0,0,0,,Му Бай...\NМина много време.
 Dialogue: 0,0:02:26.73,0:02:28.11,Default,,0,0,0,,Така е.
 Dialogue: 0,0:02:28.57,0:02:31.41,Default,,0,0,0,,- Как върви бизнесът?\N- Добре.
 Dialogue: 0,0:02:31.61,0:02:33.90,Default,,0,0,0,,- А ти как си?\N- Добре.
diff --git a/tests/ref/fate/sub-textenc b/tests/ref/fate/sub-textenc
index cb0db7f..f7d82ce 100644
--- a/tests/ref/fate/sub-textenc
+++ b/tests/ref/fate/sub-textenc
@@ -16,13 +16,13 @@ If you see this with the normal font, the player don't (fully) support font face
 Hidden
 
 4
-00:00:04,501 --> 00:00:07,501
+00:00:04,501 --> 00:00:07,500
 This text should be small
 This text should be normal
 This text should be big
 
 5
-00:00:07,501 --> 00:00:11,501
+00:00:07,501 --> 00:00:11,500
 This should be an E with an accent: È
 日本語
 This text should be bold, italics and underline
@@ -31,7 +31,7 @@ This text should be small and red
 This text should be big and brown
 
 6
-00:00:11,501 --> 00:00:14,501
+00:00:11,501 --> 00:00:14,500
 This line should be bold
 This line should be italics
 This line should be underline
@@ -40,7 +40,7 @@ Both lines
 should be underline
 
 7
-00:00:14,501 --> 00:00:17,501
+00:00:14,501 --> 00:00:17,500
 >
 It would be a good thing to
 hide invalid html tags that are closed and show the text in them
@@ -49,7 +49,7 @@ Show not opened tags</invalid_tag_not_opened>
 <
 
 8
-00:00:17,501 --> 00:00:20,501
+00:00:17,501 --> 00:00:20,500
 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
@@ -57,66 +57,66 @@ This text should be showed underlined without problems also: 2<3,5>1,4<6
 This shouldn't be underlined
 
 9
-00:00:20,501 --> 00:00:21,501
+00:00:20,501 --> 00:00:21,500
 This text should be in the normal position...
 
 10
-00:00:21,501 --> 00:00:22,501
+00:00:21,501 --> 00:00:22,500
 This text should NOT be in the normal position
 
 11
-00:00:22,501 --> 00:00:24,501
+00:00:22,501 --> 00:00:24,500
 Implementation is the same of the ASS tag
 This text should be at the
 top and horizontally centered
 
 12
-00:00:22,501 --> 00:00:24,501
+00:00:22,501 --> 00:00:24,500
 This text should be at the
 middle and horizontally centered
 
 13
-00:00:22,501 --> 00:00:24,501
+00:00:22,501 --> 00:00:24,500
 This text should be at the
 bottom and horizontally centered
 
 14
-00:00:24,501 --> 00:00:26,501
+00:00:24,501 --> 00:00:26,500
 This text should be at the
 top and horizontally at the left
 
 15
-00:00:24,501 --> 00:00:26,501
+00:00:24,501 --> 00:00:26,500
 This text should be at the
 middle and horizontally at the left
 (The second position must be ignored)
 
 16
-00:00:24,501 --> 00:00:26,501
+00:00:24,501 --> 00:00:26,500
 This text should be at the
 bottom and horizontally at the left
 
 17
-00:00:26,501 --> 00:00:28,501
+00:00:26,501 --> 00:00:28,500
 This text should be at the
 top and horizontally at the right
 
 18
-00:00:26,501 --> 00:00:28,501
+00:00:26,501 --> 00:00:28,500
 This text should be at the
 middle and horizontally at the right
 
 19
-00:00:26,501 --> 00:00:28,501
+00:00:26,501 --> 00:00:28,500
 This text should be at the
 bottom and horizontally at the right
 
 20
-00:00:28,501 --> 00:00:31,501
+00:00:28,501 --> 00:00:31,500
 This could be the most difficult thing to implement
 
 21
-00:00:31,501 --> 00:00:50,501
+00:00:31,501 --> 00:00:50,500
 First text
 
 22
@@ -124,38 +124,38 @@ First text
 Second, it shouldn't overlap first
 
 23
-00:00:35,501 --> 00:00:37,501
+00:00:35,501 --> 00:00:37,500
 Third, it should replace second
 
 24
-00:00:36,501 --> 00:00:50,501
+00:00:36,501 --> 00:00:50,500
 Fourth, it shouldn't overlap first and third
 
 25
-00:00:40,501 --> 00:00:45,501
+00:00:40,501 --> 00:00:45,500
 Fifth, it should replace third
 
 26
-00:00:45,501 --> 00:00:50,501
+00:00:45,501 --> 00:00:50,500
 Sixth, it shouldn't be
 showed overlapped
 
 27
-00:00:50,501 --> 00:00:52,501
+00:00:50,501 --> 00:00:52,500
 TEXT 1 (bottom)
 
 28
-00:00:50,501 --> 00:00:52,501
+00:00:50,501 --> 00:00:52,500
 text 2
 
 29
-00:00:52,501 --> 00:00:54,501
+00:00:52,501 --> 00:00:54,500
 Hide these tags:
 also hide these tags:
 but show this: {normal text}
 
 30
-00:00:54,501 --> 00:01:00,501
+00:00:54,501 --> 00:01:00,500
 
 \ N is a forced line break
 \ h is a hard space
@@ -163,21 +163,21 @@ Normal spaces at the start and at the end of the line are trimmed while hard spa
 The\hline\hwill\hnever\hbreak\hautomatically\hright\hbefore\hor\hafter\ha\hhard\hspace.\h:-D
 
 31
-00:00:54,501 --> 00:00:56,501
+00:00:54,501 --> 00:00:56,500
 
 \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)
 
 32
-00:00:56,501 --> 00:00:58,501
+00:00:56,501 --> 00:00:58,500
 \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: \-)
 
 33
-00:00:58,501 --> 00:01:00,501
+00:00:58,501 --> 00:01:00,500
 
 A letter followed by 05 hard spaces: A\h\h\h\h\h
 A letter followed by normal  spaces: A
@@ -188,26 +188,26 @@ A letter followed by no hard spaces: A
 ^--Forced line break
 
 34
-00:01:00,501 --> 00:01:02,501
+00:01:00,501 --> 00:01:02,500
 Both line should be strikethrough,
 yes.
 Correctly closed tags
 should be hidden.
 
 35
-00:01:02,501 --> 00:01:04,501
+00:01:02,501 --> 00:01:04,500
 It shouldn't be strikethrough,
 not opened tag showed as text.</s>
 Not opened tag showed as text.</xxxxx>
 
 36
-00:01:04,501 --> 00:01:06,501
+00:01:04,501 --> 00:01:06,500
 Three lines should be strikethrough,
 yes.
 <yyyy>Not closed tags showed as text
 
 37
-00:01:06,501 --> 00:01:08,501
+00:01:06,501 --> 00:01:08,500
 Both line should be strikethrough but
 the wrong closing tag should be showed</b>
 
diff --git a/tests/ref/fate/sub-webvttenc b/tests/ref/fate/sub-webvttenc
index dbeadb0..ba567c3 100644
--- a/tests/ref/fate/sub-webvttenc
+++ b/tests/ref/fate/sub-webvttenc
@@ -14,12 +14,12 @@ 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
+00:04.501 --> 00:07.500
 This text should be small
 This text should be normal
 This text should be big
 
-00:07.501 --> 00:11.501
+00:07.501 --> 00:11.500
 This should be an E with an accent: È
 日本語
 <b><i><u>This text should be bold, italics and underline</u></i></b>
@@ -27,7 +27,7 @@ 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
+00:11.501 --> 00:14.500
 <b>This line should be bold</b>
 <i>This line should be italics</i>
 <u>This line should be underline</u>
@@ -35,7 +35,7 @@ This line should be strikethrough
 <u>Both lines
 should be underline</u>
 
-00:14.501 --> 00:17.501
+00:14.501 --> 00:17.500
 >
 It would be a good thing to
 hide invalid html tags that are closed and show the text in them
@@ -43,110 +43,110 @@ hide invalid html tags that are closed and show the text in them
 Show not opened tags</invalid_tag_not_opened>
 <
 
-00:17.501 --> 00:20.501
+00:17.501 --> 00:20.500
 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
+00:20.501 --> 00:21.500
 This text should be in the normal position...
 
-00:21.501 --> 00:22.501
+00:21.501 --> 00:22.500
 This text should NOT be in the normal position
 
-00:22.501 --> 00:24.501
+00:22.501 --> 00:24.500
 Implementation is the same of the ASS tag
 This text should be at the
 top and horizontally centered
 
-00:22.501 --> 00:24.501
+00:22.501 --> 00:24.500
 This text should be at the
 middle and horizontally centered
 
-00:22.501 --> 00:24.501
+00:22.501 --> 00:24.500
 This text should be at the
 bottom and horizontally centered
 
-00:24.501 --> 00:26.501
+00:24.501 --> 00:26.500
 This text should be at the
 top and horizontally at the left
 
-00:24.501 --> 00:26.501
+00:24.501 --> 00:26.500
 This text should be at the
 middle and horizontally at the left
 (The second position must be ignored)
 
-00:24.501 --> 00:26.501
+00:24.501 --> 00:26.500
 This text should be at the
 bottom and horizontally at the left
 
-00:26.501 --> 00:28.501
+00:26.501 --> 00:28.500
 This text should be at the
 top and horizontally at the right
 
-00:26.501 --> 00:28.501
+00:26.501 --> 00:28.500
 This text should be at the
 middle and horizontally at the right
 
-00:26.501 --> 00:28.501
+00:26.501 --> 00:28.500
 This text should be at the
 bottom and horizontally at the right
 
-00:28.501 --> 00:31.501
+00:28.501 --> 00:31.500
 This could be the most difficult thing to implement
 
-00:31.501 --> 00:50.501
+00:31.501 --> 00:50.500
 First text
 
 00:33.500 --> 00:35.500
 Second, it shouldn't overlap first
 
-00:35.501 --> 00:37.501
+00:35.501 --> 00:37.500
 Third, it should replace second
 
-00:36.501 --> 00:50.501
+00:36.501 --> 00:50.500
 Fourth, it shouldn't overlap first and third
 
-00:40.501 --> 00:45.501
+00:40.501 --> 00:45.500
 Fifth, it should replace third
 
-00:45.501 --> 00:50.501
+00:45.501 --> 00:50.500
 Sixth, it shouldn't be
 showed overlapped
 
-00:50.501 --> 00:52.501
+00:50.501 --> 00:52.500
 TEXT 1 (bottom)
 
-00:50.501 --> 00:52.501
+00:50.501 --> 00:52.500
 text 2
 
-00:52.501 --> 00:54.501
+00:52.501 --> 00:54.500
 Hide these tags:
 also hide these tags:
 but show this: {normal text}
 
-00:54.501 --> 01:00.501
+00:54.501 --> 01:00.500
 
 \ 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
+00:54.501 --> 00:56.500
 
 \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
+00:56.501 --> 00:58.500
 \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
+00:58.501 --> 01:00.500
 
 A letter followed by 05 hard spaces: A\h\h\h\h\h
 A letter followed by normal  spaces: A
@@ -156,22 +156,22 @@ A letter followed by no hard spaces: A
 
 ^--Forced line break
 
-01:00.501 --> 01:02.501
+01:00.501 --> 01:02.500
 Both line should be strikethrough,
 yes.
 Correctly closed tags
 should be hidden.
 
-01:02.501 --> 01:04.501
+01:02.501 --> 01:04.500
 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
+01:04.501 --> 01:06.500
 Three lines should be strikethrough,
 yes.
 <yyyy>Not closed tags showed as text
 
-01:06.501 --> 01:08.501
+01:06.501 --> 01:08.500
 Both line should be strikethrough but
 the wrong closing tag should be showed</b>
-- 
2.7.1



More information about the ffmpeg-devel mailing list