diff --git a/libavcodec/ra288.c b/libavcodec/ra288.c index 00ce49102b..8f5a7f2289 100644 --- a/libavcodec/ra288.c +++ b/libavcodec/ra288.c @@ -207,14 +207,16 @@ static int ra288_decode_frame(AVCodecContext * avctx, void *data, return AVERROR_INVALIDDATA; } + ret = init_get_bits8(&gb, buf, avctx->block_align); + if (ret < 0) + return ret; + /* get output buffer */ frame->nb_samples = RA288_BLOCK_SIZE * RA288_BLOCKS_PER_FRAME; if ((ret = ff_get_buffer(avctx, frame, 0)) < 0) return ret; out = (float *)frame->data[0]; - init_get_bits8(&gb, buf, avctx->block_align); - for (i=0; i < RA288_BLOCKS_PER_FRAME; i++) { float gain = amptable[get_bits(&gb, 3)]; int cb_coef = get_bits(&gb, 6 + (i&1));