diff options
author | Baptiste Coudurier <baptiste.coudurier@gmail.com> | 2007-02-14 11:01:05 +0000 |
---|---|---|
committer | Baptiste Coudurier <baptiste.coudurier@gmail.com> | 2007-02-14 11:01:05 +0000 |
commit | 400615b68b1f741b2bc267c97b8dcf2caa7c913d (patch) | |
tree | 5b9658813dbc42ac7b1340ec1b2039d7ba73aa14 | |
parent | e13d80238c362c5b0588de15ccb127491fe01735 (diff) | |
download | ffmpeg-400615b68b1f741b2bc267c97b8dcf2caa7c913d.tar.gz |
use aiff when we can, some players only support aiff
Originally committed as revision 7978 to svn://svn.ffmpeg.org/ffmpeg/trunk
-rw-r--r-- | libavformat/aiff.c | 12 | ||||
-rw-r--r-- | tests/libav.regression.ref | 4 |
2 files changed, 12 insertions, 4 deletions
diff --git a/libavformat/aiff.c b/libavformat/aiff.c index 813c7626a4..0d75f3be30 100644 --- a/libavformat/aiff.c +++ b/libavformat/aiff.c @@ -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"); diff --git a/tests/libav.regression.ref b/tests/libav.regression.ref index a9584c5dd8..6c9f931847 100644 --- a/tests/libav.regression.ref +++ b/tests/libav.regression.ref @@ -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 |