matroska: Mark S_TEXT/UTF-8 as Subrip encoded subtitles.
authorPhilip Langdale <philipl@overt.org>
Sun, 12 Aug 2012 03:29:20 +0000 (20:29 -0700)
committerPhilip Langdale <philipl@overt.org>
Sat, 25 Aug 2012 20:15:41 +0000 (13:15 -0700)
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: Philip Langdale <philipl@overt.org>
Changelog
libavformat/matroska.c
libavformat/matroskadec.c

index 801cbff..e42f7c6 100644 (file)
--- a/Changelog
+++ b/Changelog
@@ -52,6 +52,8 @@ version next:
 - ffmpeg -shortest option is now per-output file
 - volume measurement filter
 - Ut Video encoder
+- Matroska demuxer now identifies SRT subtitles as AV_CODEC_ID_SUBRIP
+  instead of AV_CODEC_ID_TEXT
 
 
 version 0.11:
index b386d74..b016491 100644 (file)
@@ -53,6 +53,7 @@ const CodecTags ff_mkv_codec_tags[]={
     {"A_VORBIS"         , AV_CODEC_ID_VORBIS},
     {"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_SRT},
     {"S_TEXT/ASCII"     , AV_CODEC_ID_TEXT},
index 41375e3..1d0dbb3 100644 (file)
@@ -2105,7 +2105,7 @@ static int matroska_parse_block(MatroskaDemuxContext *matroska, uint8_t *data,
                 else
                     pkt->pts = timecode;
                 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;
                 else if (track->type != MATROSKA_TRACK_TYPE_SUBTITLE)
                     pkt->duration = lace_duration;