Support channel layout when demuxing aif files.
authorCarl Eugen Hoyos <cehoyos@ag.or.at>
Sat, 23 Apr 2011 08:31:03 +0000 (10:31 +0200)
committerCarl Eugen Hoyos <cehoyos@ag.or.at>
Sat, 23 Apr 2011 08:31:03 +0000 (10:31 +0200)
libavformat/Makefile
libavformat/aiffdec.c

index 4587172..f83642f 100644 (file)
@@ -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
index 25a93f5..a3aecee 100644 (file)
@@ -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++;