summaryrefslogtreecommitdiff
path: root/libavformat/aiffdec.c
diff options
context:
space:
mode:
authorMisty De Meo <mistydemeo@gmail.com>2018-01-03 19:14:22 +1100
committerMichael Niedermayer <michael@niedermayer.cc>2018-01-04 21:39:34 +0100
commitfde057dfb25e2b6917fc896a0b2dfec0f336b1ce (patch)
tree12cc22f4f34bd96e1d1b1e645703a188be6f035a /libavformat/aiffdec.c
parent8d9c9775b248b0a0f43bd96a242b5311fcc28b72 (diff)
downloadffmpeg-fde057dfb25e2b6917fc896a0b2dfec0f336b1ce.tar.gz
aiff: add support for XA ADPCM
Certain AIFF files encode XA ADPCM compressed audio using a chunk with the tag `APCM`. Aside from this custom chunk type, they're otherwise standard AIFF files. I've only observed these files in the Sega Saturn game Sonic Jam so far. Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
Diffstat (limited to 'libavformat/aiffdec.c')
-rw-r--r--libavformat/aiffdec.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/libavformat/aiffdec.c b/libavformat/aiffdec.c
index 99e05c78ec..a6c180fc8d 100644
--- a/libavformat/aiffdec.c
+++ b/libavformat/aiffdec.c
@@ -325,6 +325,13 @@ static int aiff_read_header(AVFormatContext *s)
if(ff_mov_read_chan(s, pb, st, size) < 0)
return AVERROR_INVALIDDATA;
break;
+ case MKTAG('A','P','C','M'): /* XA ADPCM compressed sound chunk */
+ st->codecpar->codec_id = AV_CODEC_ID_ADPCM_XA;
+ aiff->data_end = avio_tell(pb) + size;
+ offset = avio_tell(pb) + 8;
+ /* This field is unknown and its data seems to be irrelevant */
+ avio_rb32(pb);
+ st->codecpar->block_align = avio_rb32(pb);
case 0:
if (offset > 0 && st->codecpar->block_align) // COMM && SSND
goto got_sound;