vc9_decode_block(v, block[i], i, 0 , mquant);
vc9_decode_block(v, block[i], i, 0, v->pq);
int vc9_decode_p_mb(VC9Context *v, DCTELEM block[6][64]){    MpegEncContext *s = &v->s;    GetBitContext *gb = &s->gb;    int i, mb_offset = s->mb_x + s->mb_y*s->mb_width; /* XXX: mb_stride */    int cbp; /* cbp decoding stuff */    int hybrid_pred; /* Prediction types */    int mv_mode_bit = 0;     int mqdiff, mquant; /* MB quantization */    int ttmb; /* MB Transform type */    int status;    uint8_t *coded_val;    static const int size_table[6] = { 0, 2, 3, 4, 5, 8 },      offset_table[6] = { 0, 1, 3, 7, 15, 31 };    int mb_has_coeffs = 1; /* last_flag */    int dmv_x, dmv_y; /* Differential MV components */    int index, index1; /* LUT indices */    int val, sign; /* temp values */    if (v->mv_type_mb_plane.is_raw)        v->mv_type_mb_plane.data[mb_offset] = get_bits(gb, 1);    if (v->skip_mb_plane.is_raw)        v->skip_mb_plane.data[mb_offset] = get_bits(gb, 1);    if (!mv_mode_bit) /* 1MV mode */    {        if (!v->skip_mb_plane.data[mb_offset])        {            GET_MVDATA(dmv_x, dmv_y);                        /* hybrid mv pred, 8.3.5.3.4 */            if (v->mv_mode == MV_PMODE_1MV ||                v->mv_mode == MV_PMODE_MIXED_MV)                hybrid_pred = get_bits(gb, 1);            if (s->mb_intra && !mb_has_coeffs)            {                GET_MQUANT();                s->ac_pred = get_bits(gb, 1);                /* XXX: how to handle cbp ? */            }            else if (mb_has_coeffs)            {                if (s->mb_intra) s->ac_pred = get_bits(gb, 1);                cbp = get_vlc2(&v->s.gb, v->cbpcy_vlc->table, VC9_CBPCY_P_VLC_BITS, 2);                GET_MQUANT();            }            else            {                mquant = v->pq;                /* XXX: How to handle cbp ? */            }            if (!v->ttmbf)                ttmb = get_vlc2(gb, vc9_ttmb_vlc[v->tt_index].table,                                VC9_TTMB_VLC_BITS, 12);            for (i=0; i<6; i++)            {                val = ((cbp >> (5 - i)) & 1);                if (i < 4) {                    int pred = vc9_coded_block_pred(&v->s, i, &coded_val);                    val = val ^ pred;                    *coded_val = val;                }                vc9_decode_block(v, block[i], i, val, mquant); //FIXME            }        }        else //Skipped        {            /* hybrid mv pred, 8.3.5.3.4 */            if (v->mv_mode == MV_PMODE_1MV ||                v->mv_mode == MV_PMODE_MIXED_MV)                hybrid_pred = get_bits(gb, 1);            /* TODO: blah */            return 0;        }    } //1MV mode    else //4MV mode    {        if (!v->skip_mb_plane.data[mb_offset] /* unskipped MB */)        {            /* Get CBPCY */            cbp = get_vlc2(&v->s.gb, v->cbpcy_vlc->table, VC9_CBPCY_P_VLC_BITS, 2);            for (i=0; i<6; i++)            {                val = ((cbp >> (5 - i)) & 1);                if (i < 4) {                    int pred = vc9_coded_block_pred(&v->s, i, &coded_val);                    val = val ^ pred;                    *coded_val = val;                }                if (i<4 && val)                {                    GET_MVDATA(dmv_x, dmv_y);                }                if (v->mv_mode == MV_PMODE_MIXED_MV /* Hybrid pred */)                    hybrid_pred = get_bits(gb, 1);                GET_MQUANT();                if (s->mb_intra /* One of the 4 blocks is intra */ &&                    index /* non-zero pred for that block */)                    s->ac_pred = get_bits(gb, 1);                if (!v->ttmbf)                    ttmb = get_vlc2(gb, vc9_ttmb_vlc[v->tt_index].table,                                    VC9_TTMB_VLC_BITS, 12);                status = vc9_decode_block(v, block[i], i, val, mquant);            }            return status;        }        else //Skipped MB        {            for (i=0; i<4; i++)            {                if (v->mv_mode == MV_PMODE_MIXED_MV /* Hybrid pred */)                    hybrid_pred = get_bits(gb, 1);                vc9_decode_block(v, block[i], i, 0 /*cbp[i]*/, mquant); //FIXME            }            /* TODO: blah */            return 0;        }    }        /* Should never happen */    return -1;}