diff --git a/libavcodec/mpc8.c b/libavcodec/mpc8.c index f682edbed7..f2e8342dcb 100644 --- a/libavcodec/mpc8.c +++ b/libavcodec/mpc8.c @@ -270,7 +270,7 @@ static int mpc8_decode_frame(AVCodecContext * avctx, void *data, maxband = c->last_max_band + get_vlc2(gb, band_vlc.table, MPC8_BANDS_BITS, 2); if(maxband > 32) maxband -= 33; } - if(maxband > c->maxbands) + if(maxband > c->maxbands + 1) return AVERROR_INVALIDDATA; c->last_max_band = maxband; @@ -405,7 +405,8 @@ static int mpc8_decode_frame(AVCodecContext * avctx, void *data, } } - ff_mpc_dequantize_and_synth(c, maxband, c->frame.data[0], avctx->channels); + ff_mpc_dequantize_and_synth(c, maxband - 1, c->frame.data[0], + avctx->channels); c->cur_frame++;