summaryrefslogtreecommitdiff
path: root/libavformat
diff options
context:
space:
mode:
authorCarl Eugen Hoyos <cehoyos@ag.or.at>2011-04-23 10:31:03 +0200
committerCarl Eugen Hoyos <cehoyos@ag.or.at>2011-04-23 10:31:03 +0200
commit8f2e438e52d4a6cd138968df18cd9e54d7f6394f (patch)
tree15478ea4a019089052fbaeecd3d7b7cd187085a0 /libavformat
parent8bb5d1c39c9646022720ec93ef8a1b49bf558790 (diff)
Support channel layout when demuxing aif files.
Diffstat (limited to 'libavformat')
-rw-r--r--libavformat/Makefile2
-rw-r--r--libavformat/aiffdec.c6
2 files changed, 7 insertions, 1 deletions
diff --git a/libavformat/Makefile b/libavformat/Makefile
index 45871721b6..f83642f30c 100644
--- a/libavformat/Makefile
+++ b/libavformat/Makefile
@@ -23,7 +23,7 @@ OBJS-$(CONFIG_AC3_DEMUXER) += ac3dec.o rawdec.o
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
+OBJS-$(CONFIG_AIFF_DEMUXER) += aiffdec.o riff.o pcm.o caf.o
OBJS-$(CONFIG_AIFF_MUXER) += aiffenc.o riff.o
OBJS-$(CONFIG_AMR_DEMUXER) += amr.o
OBJS-$(CONFIG_AMR_MUXER) += amr.o
diff --git a/libavformat/aiffdec.c b/libavformat/aiffdec.c
index 25a93f5fb9..a3aecee0a8 100644
--- a/libavformat/aiffdec.c
+++ b/libavformat/aiffdec.c
@@ -23,6 +23,7 @@
#include "avformat.h"
#include "pcm.h"
#include "aiff.h"
+#include "caf.h"
#define AIFF 0
#define AIFF_C_VERSION1 0xA2805140
@@ -253,6 +254,11 @@ static int aiff_read_header(AVFormatContext *s,
st->codec->extradata_size = size;
avio_read(pb, st->codec->extradata, size);
break;
+ case MKTAG('C','H','A','N'):
+ if (size < 12)
+ return AVERROR_INVALIDDATA;
+ ff_read_chan_chunk(s, size, st->codec);
+ break;
default: /* Jump */
if (size & 1) /* Always even aligned */
size++;