lavf/aiffdec: Support QDMC demuxing.
authorCarl Eugen Hoyos <cehoyos@ag.or.at>
Sun, 3 Jul 2016 02:37:48 +0000 (04:37 +0200)
committerCarl Eugen Hoyos <cehoyos@ag.or.at>
Sun, 3 Jul 2016 02:37:48 +0000 (04:37 +0200)
libavformat/aiff.h
libavformat/aiffdec.c

index 2a87d6e..0ed10a2 100644 (file)
@@ -50,6 +50,7 @@ static const AVCodecTag ff_codec_aiff_tags[] = {
     { AV_CODEC_ID_PCM_S16BE,    MKTAG('t','w','o','s') },
     { AV_CODEC_ID_PCM_S16LE,    MKTAG('s','o','w','t') },
     { AV_CODEC_ID_ADPCM_IMA_QT, MKTAG('i','m','a','4') },
+    { AV_CODEC_ID_QDMC,         MKTAG('Q','D','M','C') },
     { AV_CODEC_ID_QDM2,         MKTAG('Q','D','M','2') },
     { AV_CODEC_ID_QCELP,        MKTAG('Q','c','l','p') },
     { AV_CODEC_ID_SDX2_DPCM,    MKTAG('S','D','X','2') },
index d191bc4..9bff565 100644 (file)
@@ -301,7 +301,8 @@ static int aiff_read_header(AVFormatContext *s)
                 return -1;
             if (ff_get_extradata(s, st->codecpar, pb, size) < 0)
                 return AVERROR(ENOMEM);
-            if (st->codecpar->codec_id == AV_CODEC_ID_QDM2 && size>=12*4 && !st->codecpar->block_align) {
+            if (   (st->codecpar->codec_id == AV_CODEC_ID_QDMC || st->codecpar->codec_id == AV_CODEC_ID_QDM2)
+                && size>=12*4 && !st->codecpar->block_align) {
                 st->codecpar->block_align = AV_RB32(st->codecpar->extradata+11*4);
                 aiff->block_duration = AV_RB32(st->codecpar->extradata+9*4);
             } else if (st->codecpar->codec_id == AV_CODEC_ID_QCELP) {