From 763e714442e07f6430b003c8a9f4b62deaa7b3a5 Mon Sep 17 00:00:00 2001 From: Carl Eugen Hoyos Date: Tue, 3 Jun 2014 00:54:46 +0200 Subject: [PATCH] Do not limit blocksize when reading PCM from aiff. Fixes ticket #3695. --- libavformat/aiffdec.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/libavformat/aiffdec.c b/libavformat/aiffdec.c index 81bcc64a0c..7accec453f 100644 --- a/libavformat/aiffdec.c +++ b/libavformat/aiffdec.c @@ -344,10 +344,16 @@ static int aiff_read_packet(AVFormatContext *s, return AVERROR_EOF; /* Now for that packet */ - if (st->codec->block_align >= 17) // GSM, QCLP, IMA4 + switch (st->codec->codec_id) { + case AV_CODEC_ID_ADPCM_IMA_QT: + case AV_CODEC_ID_GSM: + case AV_CODEC_ID_QDM2: + case AV_CODEC_ID_QCELP: size = st->codec->block_align; - else + break; + default: size = (MAX_SIZE / st->codec->block_align) * st->codec->block_align; + } size = FFMIN(max_size, size); res = av_get_packet(s->pb, pkt, size); if (res < 0)