[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