summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPhilip Langdale <philipl@overt.org>2012-08-11 20:29:20 -0700
committerPhilip Langdale <philipl@overt.org>2012-08-25 13:15:41 -0700
commit2626cc4580bfd560c6983338d77b2c11c16af94f (patch)
tree629bfe3149d8c7fda656e9b00f6b752ca902635f
parent0bb37bbc0f55f157cb763428baca9b63d3e81108 (diff)
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@overt.org>
-rw-r--r--Changelog2
-rw-r--r--libavformat/matroska.c1
-rw-r--r--libavformat/matroskadec.c2
3 files changed, 4 insertions, 1 deletions
diff --git a/Changelog b/Changelog
index 801cbff042..e42f7c65fc 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 b386d7421b..b016491018 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 41375e3ac3..1d0dbb3296 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;