aboutsummaryrefslogtreecommitdiffstats
path: root/libavformat
diff options
context:
space:
mode:
authorCarl Eugen Hoyos <cehoyos@ag.or.at>2011-05-17 01:56:01 +0200
committerCarl Eugen Hoyos <cehoyos@ag.or.at>2011-05-17 01:56:01 +0200
commitf2962ac8ad353c12d81bc515a01427f0912b4a69 (patch)
tree5cf960e9b9dd9dbc148953fd052987d1c101c942 /libavformat
parent6d721f714ee61d6e244b980113aa24d5afcbfee0 (diff)
downloadffmpeg-f2962ac8ad353c12d81bc515a01427f0912b4a69.tar.gz
Write channel_layout for multichannel aif files.
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/Makefile2
-rw-r--r--libavformat/aiffenc.c7
2 files changed, 8 insertions, 1 deletions
diff --git a/libavformat/Makefile b/libavformat/Makefile
index 26c094cbfc..13fe2371bf 100644
--- a/libavformat/Makefile
+++ b/libavformat/Makefile
@@ -24,7 +24,7 @@ OBJS-$(CONFIG_AC3_MUXER) += rawenc.o
OBJS-$(CONFIG_ADTS_MUXER) += adtsenc.o
OBJS-$(CONFIG_AEA_DEMUXER) += aea.o pcm.o
OBJS-$(CONFIG_AIFF_DEMUXER) += aiffdec.o riff.o pcm.o isom.o
-OBJS-$(CONFIG_AIFF_MUXER) += aiffenc.o riff.o
+OBJS-$(CONFIG_AIFF_MUXER) += aiffenc.o riff.o isom.o
OBJS-$(CONFIG_AMR_DEMUXER) += amr.o
OBJS-$(CONFIG_AMR_MUXER) += amr.o
OBJS-$(CONFIG_ANM_DEMUXER) += anm.o
diff --git a/libavformat/aiffenc.c b/libavformat/aiffenc.c
index cc3cbc4762..34ab0cc246 100644
--- a/libavformat/aiffenc.c
+++ b/libavformat/aiffenc.c
@@ -22,6 +22,7 @@
#include "avformat.h"
#include "aiff.h"
#include "avio_internal.h"
+#include "isom.h"
typedef struct {
int64_t form;
@@ -61,6 +62,12 @@ static int aiff_write_header(AVFormatContext *s)
avio_wb32(pb, 0xA2805140);
}
+ if (enc->channels > 2 && enc->channel_layout) {
+ ffio_wfourcc(pb, "CHAN");
+ avio_wb32(pb, 12);
+ ff_mov_write_chan(pb, enc->channel_layout);
+ }
+
/* Common chunk */
ffio_wfourcc(pb, "COMM");
avio_wb32(pb, aifc ? 24 : 18); /* size */