[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