int decode_luma_intra_block(VC9Context *v, int mquant)

{

    GetBitContext *gb = &v->s.gb;

    int dcdiff;



    dcdiff = get_vlc2(gb, v->luma_dc_vlc->table,

                      DC_VLC_BITS, 2);

    if (dcdiff)

    {

        if (dcdiff == 119 /* ESC index value */)

        {

            /* TODO: Optimize */

            if (mquant == 1) dcdiff = get_bits(gb, 10);

            else if (mquant == 2) dcdiff = get_bits(gb, 9);

            else dcdiff = get_bits(gb, 8);

        }

        else

        {

            if (mquant == 1)

                dcdiff = (dcdiff<<2) + get_bits(gb, 2) - 3;

            else if (mquant == 2)

                dcdiff = (dcdiff<<1) + get_bits(gb, 1) - 1;

        }

        if (get_bits(gb, 1))

            dcdiff = -dcdiff;

    }

    /* FIXME: 8.1.1.15, p(1)13, coeff scaling for Adv Profile */



    return 0;

}

int decode_luma_intra_block(VC9Context *v, int mquant)

{

    GetBitContext *gb = &v->s.gb;

    int dcdiff;



    dcdiff = get_vlc2(gb, v->luma_dc_vlc->table,

                      DC_VLC_BITS, 2);

    if (dcdiff)

    {

        if (dcdiff == 119 )

        {

            

            if (mquant == 1) dcdiff = get_bits(gb, 10);

            else if (mquant == 2) dcdiff = get_bits(gb, 9);

            else dcdiff = get_bits(gb, 8);

        }

        else

        {

            if (mquant == 1)

                dcdiff = (dcdiff<<2) + get_bits(gb, 2) - 3;

            else if (mquant == 2)

                dcdiff = (dcdiff<<1) + get_bits(gb, 1) - 1;

        }

        if (get_bits(gb, 1))

            dcdiff = -dcdiff;

    }

    



    return 0;

}

    GetBitContext *gb = &v->s.gb;     GetBitContext *gb = &v->s.gb; int decode_luma_intra_block(VC9Context *v, int mquant)     int dcdiff;     dcdiff = get_vlc2(gb, v->luma_dc_vlc->table,                       DC_VLC_BITS, 2);     if (dcdiff)             if (mquant == 1) dcdiff = get_bits(gb, 10);             else if (mquant == 2) dcdiff = get_bits(gb, 9);             else dcdiff = get_bits(gb, 8);             if (mquant == 1)                 dcdiff = (dcdiff<<2) + get_bits(gb, 2) - 3;             else if (mquant == 2)                 dcdiff = (dcdiff<<1) + get_bits(gb, 1) - 1;         if (get_bits(gb, 1))             dcdiff = -dcdiff;
int FUNC_0(VC9Context *VAR_0, int VAR_1)

{

    GetBitContext *gb = &VAR_0->s.gb;

    int VAR_2;



    VAR_2 = get_vlc2(gb, VAR_0->luma_dc_vlc->table,

                      DC_VLC_BITS, 2);

    if (VAR_2)

    {

        if (VAR_2 == 119 )

        {

            

            if (VAR_1 == 1) VAR_2 = get_bits(gb, 10);

            else if (VAR_1 == 2) VAR_2 = get_bits(gb, 9);

            else VAR_2 = get_bits(gb, 8);

        }

        else

        {

            if (VAR_1 == 1)

                VAR_2 = (VAR_2<<2) + get_bits(gb, 2) - 3;

            else if (VAR_1 == 2)

                VAR_2 = (VAR_2<<1) + get_bits(gb, 1) - 1;

        }

        if (get_bits(gb, 1))

            VAR_2 = -VAR_2;

    }

    



    return 0;

}

int FUNC_0(VC9Context *VAR_0, int VAR_1)
{ GetBitContext *gb = &VAR_0->s.gb; int VAR_2; VAR_2 = get_vlc2(gb, VAR_0->luma_dc_vlc->table,
DC_VLC_BITS, 2); if (VAR_2)
{ if (VAR_2 == 119 )
{ if (VAR_1 == 1) VAR_2 = get_bits(gb, 10); else if (VAR_1 == 2) VAR_2 = get_bits(gb, 9); else VAR_2 = get_bits(gb, 8); } else
{ if (VAR_1 == 1)
VAR_2 = (VAR_2<<2) + get_bits(gb, 2) - 3; else if (VAR_1 == 2)
VAR_2 = (VAR_2<<1) + get_bits(gb, 1) - 1; } if (get_bits(gb, 1))
VAR_2 = -VAR_2; } return 0; }