[FFmpeg-cvslog] matroska: Mark S_TEXT/UTF-8 as Subrip encoded subtitles.

Philip Langdale git at videolan.org
Sat Aug 25 22:16:03 CEST 2012


ffmpeg | branch: master | Philip Langdale <philipl at overt.org> | Sat Aug 11 20:29:20 2012 -0700| [2626cc4580bfd560c6983338d77b2c11c16af94f] | committer: 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: Philip Langdale <philipl at overt.org>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=2626cc4580bfd560c6983338d77b2c11c16af94f
---

 Changelog                 |    2 ++
 libavformat/matroska.c    |    1 +
 libavformat/matroskadec.c |    2 +-
 3 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/Changelog b/Changelog
index 801cbff..e42f7c6 100644
--- 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:
diff --git a/libavformat/matroska.c b/libavformat/matroska.c
index b386d74..b016491 100644
--- a/libavformat/matroska.c
+++ b/libavformat/matroska.c
@@ -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},
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index 41375e3..1d0dbb3 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -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;



More information about the ffmpeg-cvslog mailing list