Commit 2626cc45 authored by Philip Langdale's avatar Philip Langdale

matroska: Mark S_TEXT/UTF-8 as Subrip encoded subtitles.

While not explicitly stated in the specs, the original author
has stated that S_TEXT/UTF-8 is expected to be text using Subrip
markup, but without Subrip in-band timing.

So, now that we have a decoder that conforms to this expectation,
let's use it.

Note that this change will impact tools that use libavformat. If
they expect srt subtitles to have CODEC_ID_TEXT, they must be
adjusted to expect CODEC_ID_SUBRIP. The actual content is, obviously,
unchanged.
Signed-off-by: 's avatarPhilip Langdale <philipl@overt.org>
parent 0bb37bbc
...@@ -52,6 +52,8 @@ version next: ...@@ -52,6 +52,8 @@ version next:
- ffmpeg -shortest option is now per-output file - ffmpeg -shortest option is now per-output file
- volume measurement filter - volume measurement filter
- Ut Video encoder - Ut Video encoder
- Matroska demuxer now identifies SRT subtitles as AV_CODEC_ID_SUBRIP
instead of AV_CODEC_ID_TEXT
version 0.11: version 0.11:
......
...@@ -53,6 +53,7 @@ const CodecTags ff_mkv_codec_tags[]={ ...@@ -53,6 +53,7 @@ const CodecTags ff_mkv_codec_tags[]={
{"A_VORBIS" , AV_CODEC_ID_VORBIS}, {"A_VORBIS" , AV_CODEC_ID_VORBIS},
{"A_WAVPACK4" , AV_CODEC_ID_WAVPACK}, {"A_WAVPACK4" , AV_CODEC_ID_WAVPACK},
{"S_TEXT/UTF8" , AV_CODEC_ID_SUBRIP},
{"S_TEXT/UTF8" , AV_CODEC_ID_TEXT}, {"S_TEXT/UTF8" , AV_CODEC_ID_TEXT},
{"S_TEXT/UTF8" , AV_CODEC_ID_SRT}, {"S_TEXT/UTF8" , AV_CODEC_ID_SRT},
{"S_TEXT/ASCII" , AV_CODEC_ID_TEXT}, {"S_TEXT/ASCII" , AV_CODEC_ID_TEXT},
......
...@@ -2105,7 +2105,7 @@ static int matroska_parse_block(MatroskaDemuxContext *matroska, uint8_t *data, ...@@ -2105,7 +2105,7 @@ static int matroska_parse_block(MatroskaDemuxContext *matroska, uint8_t *data,
else else
pkt->pts = timecode; pkt->pts = timecode;
pkt->pos = pos; pkt->pos = pos;
if (st->codec->codec_id == AV_CODEC_ID_TEXT) if (st->codec->codec_id == AV_CODEC_ID_SUBRIP)
pkt->convergence_duration = lace_duration; pkt->convergence_duration = lace_duration;
else if (track->type != MATROSKA_TRACK_TYPE_SUBTITLE) else if (track->type != MATROSKA_TRACK_TYPE_SUBTITLE)
pkt->duration = lace_duration; pkt->duration = lace_duration;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment