diff --git a/libavcodec/pcm.c b/libavcodec/pcm.c index 13a16e7475f45667c89de428abd48167b85ac990..8e57d11a1c50db07590a5197544e80c7a5946d6d 100644 --- a/libavcodec/pcm.c +++ b/libavcodec/pcm.c @@ -299,6 +299,9 @@ static int pcm_decode_frame(AVCodecContext *avctx, samples = data; src = buf; + if(buf_size > AVCODEC_MAX_AUDIO_FRAME_SIZE/2) + buf_size = AVCODEC_MAX_AUDIO_FRAME_SIZE/2; + switch(avctx->codec->id) { case CODEC_ID_PCM_S16LE: n = buf_size >> 1;