use aiff when we can, some players only support aiff
authorBaptiste Coudurier <baptiste.coudurier@gmail.com>
Wed, 14 Feb 2007 11:01:05 +0000 (11:01 +0000)
committerBaptiste Coudurier <baptiste.coudurier@gmail.com>
Wed, 14 Feb 2007 11:01:05 +0000 (11:01 +0000)
Originally committed as revision 7978 to svn://svn.ffmpeg.org/ffmpeg/trunk

libavformat/aiff.c
tests/libav.regression.ref

index 813c7626a473c9ca0cd353d08a59740b7281d634..0d75f3be3080e1c0f7da3ac49f26639332cb6163 100644 (file)
@@ -163,26 +163,32 @@ static int aiff_write_header(AVFormatContext *s)
     ByteIOContext *pb = &s->pb;
     AVCodecContext *enc = s->streams[0]->codec;
     AVExtFloat sample_rate;
+    int aifc = 0;
 
     /* First verify if format is ok */
     if (!enc->codec_tag) {
         return -1;
     }
 
+    if (enc->codec_tag != MKTAG('N','O','N','E'))
+        aifc = 1;
+
     /* FORM AIFF header */
     put_tag(pb, "FORM");
     aiff->form = url_ftell(pb);
     put_be32(pb, 0);                    /* file length */
-    put_tag(pb, "AIFC");
+    put_tag(pb, aifc ? "AIFC" : "AIFF");
 
+    if (aifc) {
     /* Version chunk */
     put_tag(pb, "FVER");
     put_be32(pb, 4);
     put_be32(pb, 0xA2805140);
+    }
 
     /* Common chunk */
     put_tag(pb, "COMM");
-    put_be32(pb, 24); /* size */
+    put_be32(pb, aifc ? 24 : 18); /* size */
     put_be16(pb, enc->channels);        /* Number of channels */
 
     aiff->frames = url_ftell(pb);
@@ -202,8 +208,10 @@ static int aiff_write_header(AVFormatContext *s)
     sample_rate = av_dbl2ext((double)enc->sample_rate);
     put_buffer(pb, (uint8_t*)&sample_rate, sizeof(sample_rate));
 
+    if (aifc) {
     put_le32(pb, enc->codec_tag);
     put_be16(pb, 0);
+    }
 
     /* Sound data chunk */
     put_tag(pb, "SSND");
index a9584c5dd85100c85b62ec29a3ca6d441f5e05aa..6c9f9318470caf5517288e9a9eba704e14494250 100644 (file)
@@ -62,8 +62,8 @@ e2a6d6fae17394dfe87cb5bb8ae11837 *./data/b-libav.al
 272b91d8fc31ed43b08246d182719751 *./data/b-libav.mmf
   22609 ./data/b-libav.mmf
 ./data/b-libav.mmf CRC=0x03633476
-c8cf5bac13fb7862bcbce76977328f92 *./data/b-libav.aif
-89160 ./data/b-libav.aif
+ae3a23a7ea13c92a2909445ca8144dcd *./data/b-libav.aif
+89142 ./data/b-libav.aif
 ./data/b-libav.aif CRC=0x2a09519c
 8d117c49d6b210abe783d1b0b897cec7 *./data/b-libav.voc
   32768 ./data/b-libav.voc