bits=0; if(last>=0){
if(last>=start_i){
static int bit8x8_c(/*MpegEncContext*/ void *c, uint8_t *src1, uint8_t *src2, int stride){    MpegEncContext * const s= (MpegEncContext *)c;    const UINT8 *scantable= s->intra_scantable.permutated;    DCTELEM temp[64];    int i, last, run, bits, level, start_i;    const int esc_length= s->ac_esc_length;    uint8_t * length;    uint8_t * last_length;    s->mb_intra=0;        if (s->mb_intra) {        start_i = 1;        length     = s->intra_ac_vlc_length;        last_length= s->intra_ac_vlc_last_length;    } else {        start_i = 0;        length     = s->inter_ac_vlc_length;        last_length= s->inter_ac_vlc_last_length;    }    s->dsp.diff_pixels(temp, src1, src2, stride);    last= s->fast_dct_quantize(s, temp, 0/*FIXME*/, s->qscale, &i);        bits=0;    if(last>=0){        run=0;        for(i=start_i; i<last; i++){            int j= scantable[i];            level= temp[j];                    if(level){                level+=64;                if((level&(~127)) == 0){                    bits+= length[UNI_AC_ENC_INDEX(run, level)];                }else                    bits+= esc_length;                run=0;            }else                run++;        }        i= scantable[last];                assert(level);                level= temp[i] + 64;        if((level&(~127)) == 0){            bits+= last_length[UNI_AC_ENC_INDEX(run, level)];        }else            bits+= esc_length;    }    return bits;}