else
else if (s->h263_pred)
void MPV_decode_mb(MpegEncContext *s, DCTELEM block[6][64]){    int mb_x, mb_y, motion_x, motion_y;    int dct_linesize, dct_offset;    op_pixels_func *op_pix;    mb_x = s->mb_x;    mb_y = s->mb_y;#ifdef FF_POSTPROCESS    quant_store[mb_y][mb_x]=s->qscale;    //printf("[%02d][%02d] %d\n",mb_x,mb_y,s->qscale);#endif    /* update DC predictors for P macroblocks */    if (!s->mb_intra) {        if (s->h263_pred) {          if(s->mbintra_table[mb_x + mb_y*s->mb_width])          {            int wrap, x, y, v;            s->mbintra_table[mb_x + mb_y*s->mb_width]=0;              wrap = 2 * s->mb_width + 2;            v = 1024;            x = 2 * mb_x + 1;            y = 2 * mb_y + 1;                        s->dc_val[0][(x) + (y) * wrap] = v;            s->dc_val[0][(x + 1) + (y) * wrap] = v;            s->dc_val[0][(x) + (y + 1) * wrap] = v;            s->dc_val[0][(x + 1) + (y + 1) * wrap] = v;            /* ac pred */            memset(s->ac_val[0][(x) + (y) * wrap], 0, 16 * sizeof(INT16));            memset(s->ac_val[0][(x + 1) + (y) * wrap], 0, 16 * sizeof(INT16));            memset(s->ac_val[0][(x) + (y + 1) * wrap], 0, 16 * sizeof(INT16));            memset(s->ac_val[0][(x + 1) + (y + 1) * wrap], 0, 16 * sizeof(INT16));            if (s->h263_msmpeg4) {                s->coded_block[(x) + (y) * wrap] = 0;                s->coded_block[(x + 1) + (y) * wrap] = 0;                s->coded_block[(x) + (y + 1) * wrap] = 0;                s->coded_block[(x + 1) + (y + 1) * wrap] = 0;            }            /* chroma */            wrap = s->mb_width + 2;            x = mb_x + 1;            y = mb_y + 1;            s->dc_val[1][(x) + (y) * wrap] = v;            s->dc_val[2][(x) + (y) * wrap] = v;            /* ac pred */            memset(s->ac_val[1][(x) + (y) * wrap], 0, 16 * sizeof(INT16));            memset(s->ac_val[2][(x) + (y) * wrap], 0, 16 * sizeof(INT16));          }        } else {            s->last_dc[0] = 128 << s->intra_dc_precision;            s->last_dc[1] = 128 << s->intra_dc_precision;            s->last_dc[2] = 128 << s->intra_dc_precision;        }    }    else        s->mbintra_table[mb_x + mb_y*s->mb_width]=1;    /* update motion predictor */    if (s->out_format == FMT_H263) {        int x, y, wrap;                x = 2 * mb_x + 1;        y = 2 * mb_y + 1;        wrap = 2 * s->mb_width + 2;        if (s->mb_intra) {            motion_x = 0;            motion_y = 0;            goto motion_init;        } else if (s->mv_type == MV_TYPE_16X16) {            motion_x = s->mv[0][0][0];            motion_y = s->mv[0][0][1];        motion_init:            /* no update if 8X8 because it has been done during parsing */            s->motion_val[(x) + (y) * wrap][0] = motion_x;            s->motion_val[(x) + (y) * wrap][1] = motion_y;            s->motion_val[(x + 1) + (y) * wrap][0] = motion_x;            s->motion_val[(x + 1) + (y) * wrap][1] = motion_y;            s->motion_val[(x) + (y + 1) * wrap][0] = motion_x;            s->motion_val[(x) + (y + 1) * wrap][1] = motion_y;            s->motion_val[(x + 1) + (y + 1) * wrap][0] = motion_x;            s->motion_val[(x + 1) + (y + 1) * wrap][1] = motion_y;        }    }        if (!s->intra_only) {        UINT8 *dest_y, *dest_cb, *dest_cr;        UINT8 *mbskip_ptr;        /* avoid copy if macroblock skipped in last frame too */        if (!s->encoding && s->pict_type != B_TYPE) {            mbskip_ptr = &s->mbskip_table[s->mb_y * s->mb_width + s->mb_x];            if (s->mb_skiped) {                s->mb_skiped = 0;                /* if previous was skipped too, then nothing to do ! */                if (*mbskip_ptr != 0)                     goto the_end;                *mbskip_ptr = 1; /* indicate that this time we skiped it */            } else {                *mbskip_ptr = 0; /* not skipped */            }        }        dest_y = s->current_picture[0] + (mb_y * 16 * s->linesize) + mb_x * 16;        dest_cb = s->current_picture[1] + (mb_y * 8 * (s->linesize >> 1)) + mb_x * 8;        dest_cr = s->current_picture[2] + (mb_y * 8 * (s->linesize >> 1)) + mb_x * 8;        if (s->interlaced_dct) {            dct_linesize = s->linesize * 2;            dct_offset = s->linesize;        } else {            dct_linesize = s->linesize;            dct_offset = s->linesize * 8;        }        if (!s->mb_intra) {            /* motion handling */            if (!s->no_rounding)                 op_pix = put_pixels_tab;            else                op_pix = put_no_rnd_pixels_tab;            if (s->mv_dir & MV_DIR_FORWARD) {                MPV_motion(s, dest_y, dest_cb, dest_cr, 0, s->last_picture, op_pix);                if (!s->no_rounding)                     op_pix = avg_pixels_tab;                else                    op_pix = avg_no_rnd_pixels_tab;            }            if (s->mv_dir & MV_DIR_BACKWARD) {                MPV_motion(s, dest_y, dest_cb, dest_cr, 1, s->next_picture, op_pix);            }            /* add dct residue */            add_dct(s, block[0], 0, dest_y, dct_linesize);            add_dct(s, block[1], 1, dest_y + 8, dct_linesize);            add_dct(s, block[2], 2, dest_y + dct_offset, dct_linesize);            add_dct(s, block[3], 3, dest_y + dct_offset + 8, dct_linesize);            add_dct(s, block[4], 4, dest_cb, s->linesize >> 1);            add_dct(s, block[5], 5, dest_cr, s->linesize >> 1);        } else {            /* dct only in intra block */            put_dct(s, block[0], 0, dest_y, dct_linesize);            put_dct(s, block[1], 1, dest_y + 8, dct_linesize);            put_dct(s, block[2], 2, dest_y + dct_offset, dct_linesize);            put_dct(s, block[3], 3, dest_y + dct_offset + 8, dct_linesize);            put_dct(s, block[4], 4, dest_cb, s->linesize >> 1);            put_dct(s, block[5], 5, dest_cr, s->linesize >> 1);        }    } the_end:    emms_c();}