write correct atoms based on tag and not format, fixes subs stream copy
authorBaptiste Coudurier <baptiste.coudurier@gmail.com>
Wed, 11 Mar 2009 08:01:39 +0000 (08:01 +0000)
committerBaptiste Coudurier <baptiste.coudurier@gmail.com>
Wed, 11 Mar 2009 08:01:39 +0000 (08:01 +0000)
Originally committed as revision 17936 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/movenc.c

index ddc0e29..a23423f 100644 (file)
@@ -922,7 +922,7 @@ static int mov_write_hdlr_tag(ByteIOContext *pb, MOVTrack *track)
             hdlr_type = "soun";
             descr = "SoundHandler";
         } else if (track->enc->codec_type == CODEC_TYPE_SUBTITLE) {
             hdlr_type = "soun";
             descr = "SoundHandler";
         } else if (track->enc->codec_type == CODEC_TYPE_SUBTITLE) {
-            if (track->mode == MODE_IPOD) hdlr_type = "sbtl";
+            if (track->tag == MKTAG('t','x','3','g')) hdlr_type = "sbtl";
             else                          hdlr_type = "text";
             descr = "SubtitleHandler";
         }
             else                          hdlr_type = "text";
             descr = "SubtitleHandler";
         }
@@ -951,7 +951,7 @@ static int mov_write_minf_tag(ByteIOContext *pb, MOVTrack *track)
     else if (track->enc->codec_type == CODEC_TYPE_AUDIO)
         mov_write_smhd_tag(pb);
     else if (track->enc->codec_type == CODEC_TYPE_SUBTITLE) {
     else if (track->enc->codec_type == CODEC_TYPE_AUDIO)
         mov_write_smhd_tag(pb);
     else if (track->enc->codec_type == CODEC_TYPE_SUBTITLE) {
-        if (track->mode == MODE_MOV) mov_write_gmhd_tag(pb);
+        if (track->tag == MKTAG('t','e','x','t')) mov_write_gmhd_tag(pb);
         else                         mov_write_nmhd_tag(pb);
     }
     if (track->mode == MODE_MOV) /* FIXME: Why do it for MODE_MOV only ? */
         else                         mov_write_nmhd_tag(pb);
     }
     if (track->mode == MODE_MOV) /* FIXME: Why do it for MODE_MOV only ? */