diff options
author | Michael Niedermayer <michaelni@gmx.at> | 2008-01-26 20:30:03 +0000 |
---|---|---|
committer | Michael Niedermayer <michaelni@gmx.at> | 2008-01-26 20:30:03 +0000 |
commit | 1e3c9307e628063811a9c8a0417854a6f73f8252 (patch) | |
tree | 5b093f42ee7b411f0739ed7ccfe25f1fa82142f4 | |
parent | 41e19673ef73c9ee7907bc8bfaffbb69c54eb9c1 (diff) | |
download | ffmpeg-1e3c9307e628063811a9c8a0417854a6f73f8252.tar.gz |
Set correct codec type and id for text subtitles.
fixes http://samples.mplayerhq.hu/mov/subtitles-embedded/subtitlemovie.mov
closes issue341
Originally committed as revision 11624 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r-- | libavformat/isom.c | 5 | ||||
-rw-r--r-- | libavformat/isom.h | 1 | ||||
-rw-r--r-- | libavformat/mov.c | 5 |
3 files changed, 11 insertions, 0 deletions
diff --git a/libavformat/isom.c b/libavformat/isom.c index 9df273cf6e..f20d8568ac 100644 --- a/libavformat/isom.c +++ b/libavformat/isom.c @@ -167,6 +167,11 @@ const AVCodecTag codec_movaudio_tags[] = { { CODEC_ID_NONE, 0 }, }; +const AVCodecTag ff_codec_movsubtitle_tags[] = { + { CODEC_ID_TEXT, MKTAG('t', 'e', 'x', 't') }, + { CODEC_ID_NONE, 0 }, +}; + /* map numeric codes from mdhd atom to ISO 639 */ /* cf. QTFileFormat.pdf p253, qtff.pdf p205 */ /* http://developer.apple.com/documentation/mac/Text/Text-368.html */ diff --git a/libavformat/isom.h b/libavformat/isom.h index 5370241288..7a66ce5240 100644 --- a/libavformat/isom.h +++ b/libavformat/isom.h @@ -30,6 +30,7 @@ extern const AVCodecTag ff_mp4_obj_type[]; extern const AVCodecTag codec_movvideo_tags[]; extern const AVCodecTag codec_movaudio_tags[]; +extern const AVCodecTag ff_codec_movsubtitle_tags[]; int ff_mov_iso639_to_lang(const char *lang, int mp4); int ff_mov_lang_to_iso639(int code, char *to); diff --git a/libavformat/mov.c b/libavformat/mov.c index 2b09c78a8e..7542a01adc 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -624,6 +624,11 @@ static int mov_read_stsd(MOVContext *c, ByteIOContext *pb, MOV_atom_t atom) id = codec_get_id(codec_bmp_tags, format); if (id > 0) st->codec->codec_type = CODEC_TYPE_VIDEO; + else if(st->codec->codec_type == CODEC_TYPE_DATA){ + id = codec_get_id(ff_codec_movsubtitle_tags, format); + if(id > 0) + st->codec->codec_type = CODEC_TYPE_SUBTITLE; + } } dprintf(c->fc, "size=%d 4CC= %c%c%c%c codec_type=%d\n", size, |