]> git.sesse.net Git - ffmpeg/commitdiff
support for alac in .mov
authorBaptiste Coudurier <baptiste.coudurier@gmail.com>
Thu, 24 Apr 2008 13:59:39 +0000 (13:59 +0000)
committerBaptiste Coudurier <baptiste.coudurier@gmail.com>
Thu, 24 Apr 2008 13:59:39 +0000 (13:59 +0000)
Originally committed as revision 12938 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/movenc.c

index 738b97ff0207b16dd6bd21f0b08783e01f7a11d1..08070fca3b925f0d2597c6f51a0ab016617f4700 100644 (file)
@@ -219,6 +219,16 @@ static int mov_write_amr_tag(ByteIOContext *pb, MOVTrack *track)
     return 0x11;
 }
 
+/**
+ * This function writes extradata "as is".
+ * Extradata must be formated like a valid atom (with size and tag)
+ */
+static int mov_write_extradata_tag(ByteIOContext *pb, MOVTrack *track)
+{
+    put_buffer(pb, track->enc->extradata, track->enc->extradata_size);
+    return track->enc->extradata_size;
+}
+
 static int mov_write_enda_tag(ByteIOContext *pb)
 {
     put_be32(pb, 10);
@@ -316,6 +326,8 @@ static int mov_write_wave_tag(ByteIOContext *pb, MOVTrack* track)
         mov_write_enda_tag(pb);
     } else if (track->enc->codec_id == CODEC_ID_AMR_NB) {
         mov_write_amr_tag(pb, track);
+    } else if (track->enc->codec_id == CODEC_ID_ALAC) {
+        mov_write_extradata_tag(pb, track);
     }
 
     put_be32(pb, 8);     /* size */
@@ -380,7 +392,8 @@ static int mov_write_audio_tag(ByteIOContext *pb, MOVTrack* track)
        (track->enc->codec_id == CODEC_ID_AAC ||
         track->enc->codec_id == CODEC_ID_AMR_NB ||
         track->enc->codec_id == CODEC_ID_PCM_S24LE ||
-        track->enc->codec_id == CODEC_ID_PCM_S32LE))
+        track->enc->codec_id == CODEC_ID_PCM_S32LE ||
+        track->enc->codec_id == CODEC_ID_ALAC))
         mov_write_wave_tag(pb, track);
     else if(track->tag == MKTAG('m','p','4','a'))
         mov_write_esds_tag(pb, track);