summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvgeniy Stepanov <eugeni.stepanov@gmail.com>2007-12-29 20:49:03 +0000
committerAurelien Jacobs <aurel@gnuage.org>2007-12-29 20:49:03 +0000
commitf9a9b3509c28ef78cd9d0e59c4263442d1205099 (patch)
tree458168fd8e2ef72133f26db33b687b21ce618a84
parent243cc4c34a8aca1025160a4b8f6c08c6419bf3b6 (diff)
export raw SSA tracks with their own codec ID (patch by Evgeniy Stepanov)
Originally committed as revision 11352 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r--libavcodec/avcodec.h1
-rw-r--r--libavformat/matroska.c8
-rw-r--r--libavformat/matroskadec.c19
3 files changed, 5 insertions, 23 deletions
diff --git a/libavcodec/avcodec.h b/libavcodec/avcodec.h
index 46868ed97c..bcf9fb6467 100644
--- a/libavcodec/avcodec.h
+++ b/libavcodec/avcodec.h
@@ -282,6 +282,7 @@ enum CodecID {
CODEC_ID_DVB_SUBTITLE,
CODEC_ID_TEXT, ///< raw UTF-8 text
CODEC_ID_XSUB,
+ CODEC_ID_SSA,
CODEC_ID_MPEG2TS= 0x20000, /**< _FAKE_ codec to indicate a raw MPEG-2 TS
* stream (only used by libavformat) */
diff --git a/libavformat/matroska.c b/libavformat/matroska.c
index e541d2d9ea..9b0cc06dcf 100644
--- a/libavformat/matroska.c
+++ b/libavformat/matroska.c
@@ -62,10 +62,10 @@ const CodecTags ff_mkv_codec_tags[]={
{"S_TEXT/UTF8" , CODEC_ID_TEXT},
{"S_TEXT/ASCII" , CODEC_ID_TEXT},
- {"S_TEXT/ASS" , CODEC_ID_TEXT},
- {"S_TEXT/SSA" , CODEC_ID_TEXT},
- {"S_ASS" , CODEC_ID_TEXT},
- {"S_SSA" , CODEC_ID_TEXT},
+ {"S_TEXT/ASS" , CODEC_ID_SSA},
+ {"S_TEXT/SSA" , CODEC_ID_SSA},
+ {"S_ASS" , CODEC_ID_SSA},
+ {"S_SSA" , CODEC_ID_SSA},
{"S_VOBSUB" , CODEC_ID_DVD_SUBTITLE},
{NULL , CODEC_ID_NONE}
diff --git a/libavformat/matroskadec.c b/libavformat/matroskadec.c
index 8d201b6e69..f73811538a 100644
--- a/libavformat/matroskadec.c
+++ b/libavformat/matroskadec.c
@@ -94,8 +94,6 @@ typedef struct MatroskaAudioTrack {
typedef struct MatroskaSubtitleTrack {
MatroskaTrack track;
-
- int ass;
//..
} MatroskaSubtitleTrack;
@@ -2160,15 +2158,6 @@ matroska_read_header (AVFormatContext *s,
}
}
- else if (codec_id == CODEC_ID_TEXT) {
- MatroskaSubtitleTrack *subtrack=(MatroskaSubtitleTrack *)track;
- if (!strcmp(track->codec_id, "S_TEXT/ASS") ||
- !strcmp(track->codec_id, "S_TEXT/SSA") ||
- !strcmp(track->codec_id, "S_ASS") ||
- !strcmp(track->codec_id, "S_SSA"))
- subtrack->ass = 1;
- }
-
if (codec_id == CODEC_ID_NONE) {
av_log(matroska->ctx, AV_LOG_INFO,
"Unknown/unsupported CodecID %s.\n",
@@ -2438,14 +2427,6 @@ matroska_parse_block(MatroskaDemuxContext *matroska, uint8_t *data, int size,
} else {
int offset = 0;
- if (st->codec->codec_id == CODEC_ID_TEXT
- && ((MatroskaSubtitleTrack *)(matroska->tracks[track]))->ass) {
- int i;
- for (i=0; i<8 && data[offset]; offset++)
- if (data[offset] == ',')
- i++;
- }
-
pkt = av_mallocz(sizeof(AVPacket));
/* XXX: prevent data copy... */
if (av_new_packet(pkt, lace_size[n]-offset) < 0) {