diff options
author | Misty De Meo <mistydemeo@gmail.com> | 2018-01-03 19:14:22 +1100 |
---|---|---|
committer | Michael Niedermayer <michael@niedermayer.cc> | 2018-01-04 21:39:34 +0100 |
commit | fde057dfb25e2b6917fc896a0b2dfec0f336b1ce (patch) | |
tree | 12cc22f4f34bd96e1d1b1e645703a188be6f035a | |
parent | 8d9c9775b248b0a0f43bd96a242b5311fcc28b72 (diff) |
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>
-rw-r--r-- | libavformat/aiffdec.c | 7 |
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; |