static int ra288_decode_frame(AVCodecContext * avctx, void *data,

                              int *data_size, const uint8_t * buf,

                              int buf_size)

{

    int16_t *out = data;

    int i, j;

    RA288Context *ractx = avctx->priv_data;

    GetBitContext gb;



    if (buf_size < avctx->block_align) {

        av_log(avctx, AV_LOG_ERROR,

               "Error! Input buffer is too small [%d<%d]\n",

               buf_size, avctx->block_align);

        return 0;

    }



    init_get_bits(&gb, buf, avctx->block_align * 8);



    for (i=0; i < 32; i++) {

        float gain = amptable[get_bits(&gb, 3)];

        int cb_coef = get_bits(&gb, 6 + (i&1));



        decode(ractx, gain, cb_coef);



        for (j=0; j < 5; j++)

            *(out++) = 8 * ractx->sp_block[4 - j];



        if ((i & 7) == 3)

            backward_filter(ractx);

    }



    *data_size = (char *)out - (char *)data;

    return avctx->block_align;

}

static int ra288_decode_frame(AVCodecContext * avctx, void *data,

                              int *data_size, const uint8_t * buf,

                              int buf_size)

{

    int16_t *out = data;

    int i, j;

    RA288Context *ractx = avctx->priv_data;

    GetBitContext gb;



    if (buf_size < avctx->block_align) {

        av_log(avctx, AV_LOG_ERROR,

               "Error! Input buffer is too small [%d<%d]\n",

               buf_size, avctx->block_align);

        return 0;

    }



    init_get_bits(&gb, buf, avctx->block_align * 8);



    for (i=0; i < 32; i++) {

        float gain = amptable[get_bits(&gb, 3)];

        int cb_coef = get_bits(&gb, 6 + (i&1));



        decode(ractx, gain, cb_coef);



        for (j=0; j < 5; j++)

            *(out++) = 8 * ractx->sp_block[4 - j];



        if ((i & 7) == 3)

            backward_filter(ractx);

    }



    *data_size = (char *)out - (char *)data;

    return avctx->block_align;

}

static int FUNC_0(AVCodecContext * VAR_0, void *VAR_1,

                              int *VAR_2, const uint8_t * VAR_3,

                              int VAR_4)

{

    int16_t *out = VAR_1;

    int VAR_5, VAR_6;

    RA288Context *ractx = VAR_0->priv_data;

    GetBitContext gb;



    if (VAR_4 < VAR_0->block_align) {

        av_log(VAR_0, AV_LOG_ERROR,

               "Error! Input buffer is too small [%d<%d]\n",

               VAR_4, VAR_0->block_align);

        return 0;

    }



    init_get_bits(&gb, VAR_3, VAR_0->block_align * 8);



    for (VAR_5=0; VAR_5 < 32; VAR_5++) {

        float VAR_7 = amptable[get_bits(&gb, 3)];

        int VAR_8 = get_bits(&gb, 6 + (VAR_5&1));



        decode(ractx, VAR_7, VAR_8);



        for (VAR_6=0; VAR_6 < 5; VAR_6++)

            *(out++) = 8 * ractx->sp_block[4 - VAR_6];



        if ((VAR_5 & 7) == 3)

            backward_filter(ractx);

    }



    *VAR_2 = (char *)out - (char *)VAR_1;

    return VAR_0->block_align;

}

static int FUNC_0(AVCodecContext * VAR_0, void *VAR_1,
int *VAR_2, const uint8_t * VAR_3,
int VAR_4)
{ int16_t *out = VAR_1; int VAR_5, VAR_6; RA288Context *ractx = VAR_0->priv_data; GetBitContext gb; if (VAR_4 < VAR_0->block_align) { av_log(VAR_0, AV_LOG_ERROR,
"Error! Input buffer is too small [%d<%d]\n",
VAR_4, VAR_0->block_align); return 0; } init_get_bits(&gb, VAR_3, VAR_0->block_align * 8); for (VAR_5=0; VAR_5 < 32; VAR_5++) { float VAR_7 = amptable[get_bits(&gb, 3)]; int VAR_8 = get_bits(&gb, 6 + (VAR_5&1)); decode(ractx, VAR_7, VAR_8); for (VAR_6=0; VAR_6 < 5; VAR_6++) *(out++) = 8 * ractx->sp_block[4 - VAR_6]; if ((VAR_5 & 7) == 3)
backward_filter(ractx); } *VAR_2 = (char *)out - (char *)VAR_1; return VAR_0->block_align; }