Browse code

Support channel layout when demuxing aif files.

Carl Eugen Hoyos authored on 2011/04/23 17:31:03
Showing 2 changed files
... ...
@@ -23,7 +23,7 @@ OBJS-$(CONFIG_AC3_DEMUXER)               += ac3dec.o rawdec.o
23 23
 OBJS-$(CONFIG_AC3_MUXER)                 += rawenc.o
24 24
 OBJS-$(CONFIG_ADTS_MUXER)                += adtsenc.o
25 25
 OBJS-$(CONFIG_AEA_DEMUXER)               += aea.o pcm.o
26
-OBJS-$(CONFIG_AIFF_DEMUXER)              += aiffdec.o riff.o pcm.o
26
+OBJS-$(CONFIG_AIFF_DEMUXER)              += aiffdec.o riff.o pcm.o caf.o
27 27
 OBJS-$(CONFIG_AIFF_MUXER)                += aiffenc.o riff.o
28 28
 OBJS-$(CONFIG_AMR_DEMUXER)               += amr.o
29 29
 OBJS-$(CONFIG_AMR_MUXER)                 += amr.o
... ...
@@ -23,6 +23,7 @@
23 23
 #include "avformat.h"
24 24
 #include "pcm.h"
25 25
 #include "aiff.h"
26
+#include "caf.h"
26 27
 
27 28
 #define AIFF                    0
28 29
 #define AIFF_C_VERSION1         0xA2805140
... ...
@@ -253,6 +254,11 @@ static int aiff_read_header(AVFormatContext *s,
253 253
             st->codec->extradata_size = size;
254 254
             avio_read(pb, st->codec->extradata, size);
255 255
             break;
256
+        case MKTAG('C','H','A','N'):
257
+            if (size < 12)
258
+                return AVERROR_INVALIDDATA;
259
+            ff_read_chan_chunk(s, size, st->codec);
260
+            break;
256 261
         default: /* Jump */
257 262
             if (size & 1)   /* Always even aligned */
258 263
                 size++;