if( !IS_SKIP(s->current_picture.mb_type[mba_xy] ) && !IS_INTRA_PCM(s->current_picture.mb_type[mba_xy] ) &&
if( !IS_INTRA_PCM(s->current_picture.mb_type[mba_xy] ) &&
static int get_cabac_cbf_ctx( H264Context *h, int cat, int idx ) {    MpegEncContext * const s = &h->s;    const int mb_xy  = s->mb_x + s->mb_y*s->mb_stride;    int mba_xy = -1;    int mbb_xy = -1;    int nza = -1;    int nzb = -1;    int ctx = 0;    if( cat == 0 ) {        if( s->mb_x > 0 ) {            mba_xy = mb_xy - 1;            if( IS_INTRA16x16(s->current_picture.mb_type[mba_xy] ) )                    nza = h->cbp_table[mba_xy]&0x100;        }        if( s->mb_y > 0 ) {            mbb_xy = mb_xy - s->mb_stride;            if( IS_INTRA16x16(s->current_picture.mb_type[mbb_xy] ) )                    nzb = h->cbp_table[mbb_xy]&0x100;        }    } else if( cat == 1 || cat == 2 ) {        int i8x8a, i8x8b;        int x, y;        x = block_idx_x[idx];        y = block_idx_y[idx];        if( x > 0 )            mba_xy = mb_xy;        else if( s->mb_x > 0 )            mba_xy = mb_xy - 1;        if( y > 0 )            mbb_xy = mb_xy;        else if( s->mb_y > 0 )            mbb_xy = mb_xy - s->mb_stride;        if( mba_xy >= 0 ) {            i8x8a = block_idx_xy[(x-1)&0x03][y]/4;            if( !IS_SKIP(s->current_picture.mb_type[mba_xy] ) &&                !IS_INTRA_PCM(s->current_picture.mb_type[mba_xy] ) &&                ((h->cbp_table[mba_xy]&0x0f)>>i8x8a))                nza = h->non_zero_count_cache[scan8[idx] - 1];        }        if( mbb_xy >= 0 ) {            i8x8b = block_idx_xy[x][(y-1)&0x03]/4;            if( !IS_SKIP(s->current_picture.mb_type[mbb_xy] ) &&                !IS_INTRA_PCM(s->current_picture.mb_type[mbb_xy] ) &&                ((h->cbp_table[mbb_xy]&0x0f)>>i8x8b))                nzb = h->non_zero_count_cache[scan8[idx] - 8];        }    } else if( cat == 3 ) {        if( s->mb_x > 0 ) {            mba_xy = mb_xy - 1;            if( !IS_SKIP(s->current_picture.mb_type[mba_xy] ) &&                !IS_INTRA_PCM(s->current_picture.mb_type[mba_xy] ) &&                (h->cbp_table[mba_xy]&0x30) )                nza = (h->cbp_table[mba_xy]>>(6+idx))&0x01;        }        if( s->mb_y > 0 ) {            mbb_xy = mb_xy - s->mb_stride;            if( !IS_SKIP(s->current_picture.mb_type[mbb_xy] ) &&                !IS_INTRA_PCM(s->current_picture.mb_type[mbb_xy] ) &&                (h->cbp_table[mbb_xy]&0x30) )                nzb = (h->cbp_table[mbb_xy]>>(6+idx))&0x01;        }    } else if( cat == 4 ) {        int idxc = idx % 4 ;        if( idxc == 1 || idxc == 3 )            mba_xy = mb_xy;        else if( s->mb_x > 0 )            mba_xy = mb_xy -1;        if( idxc == 2 || idxc == 3 )            mbb_xy = mb_xy;        else if( s->mb_y > 0 )            mbb_xy = mb_xy - s->mb_stride;        if( mba_xy >= 0 &&            !IS_SKIP(s->current_picture.mb_type[mba_xy] ) &&            !IS_INTRA_PCM(s->current_picture.mb_type[mba_xy] ) &&            (h->cbp_table[mba_xy]&0x30) == 0x20 )            nza = h->non_zero_count_cache[scan8[16+idx] - 1];        if( mbb_xy >= 0 &&            !IS_SKIP(s->current_picture.mb_type[mbb_xy] ) &&            !IS_INTRA_PCM(s->current_picture.mb_type[mbb_xy] ) &&            (h->cbp_table[mbb_xy]&0x30) == 0x20 )            nzb = h->non_zero_count_cache[scan8[16+idx] - 8];    }    if( ( mba_xy < 0 && IS_INTRA( s->current_picture.mb_type[mb_xy] ) ) ||        ( mba_xy >= 0 && IS_INTRA_PCM(s->current_picture.mb_type[mba_xy] ) ) ||          nza > 0 )        ctx++;    if( ( mbb_xy < 0 && IS_INTRA( s->current_picture.mb_type[mb_xy] ) ) ||        ( mbb_xy >= 0 && IS_INTRA_PCM(s->current_picture.mb_type[mbb_xy] ) ) ||          nzb > 0 )        ctx += 2;    return ctx + 4 * cat;}