changeset 2969:f3a3115a96e4 libavformat

Set correct codec type and id for text subtitles. fixes http://samples.mplayerhq.hu/mov/subtitles-embedded/subtitlemovie.mov closes issue341
author michael
date Sat, 26 Jan 2008 20:30:03 +0000
parents bd458b341e40
children ed7e36770ee5
files isom.c isom.h mov.c
diffstat 3 files changed, 11 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/isom.c	Sat Jan 26 20:07:57 2008 +0000
+++ b/isom.c	Sat Jan 26 20:30:03 2008 +0000
@@ -167,6 +167,11 @@
     { 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 */
--- a/isom.h	Sat Jan 26 20:07:57 2008 +0000
+++ b/isom.h	Sat Jan 26 20:30:03 2008 +0000
@@ -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);
--- a/mov.c	Sat Jan 26 20:07:57 2008 +0000
+++ b/mov.c	Sat Jan 26 20:30:03 2008 +0000
@@ -624,6 +624,11 @@
                 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,