--- mbtransquant.c 2002/08/17 16:22:58 1.9 +++ mbtransquant.c 2002/09/04 06:24:37 1.11 @@ -105,7 +105,9 @@ start_timer(); pMB->field_dct = 0; - if ((frame->global_flags & XVID_INTERLACING)) { + if ((frame->global_flags & XVID_INTERLACING) && + (x_pos>0) && (x_posmb_width-1) && + (y_pos>0) && (y_posmb_height-1)) { pMB->field_dct = MBDecideFieldDCT(data); } stop_interlacing_timer(); @@ -183,7 +185,9 @@ start_timer(); pMB->field_dct = 0; - if ((frame->global_flags & XVID_INTERLACING)) { + if ((frame->global_flags & XVID_INTERLACING) && + (x_pos>0) && (x_posmb_width-1) && + (y_pos>0) && (y_posmb_height-1)) { pMB->field_dct = MBDecideFieldDCT(data); } stop_interlacing_timer(); @@ -296,8 +300,6 @@ MBTransQuantInterBVOP(const MBParam * pParam, FRAMEINFO * frame, MACROBLOCK * pMB, - const uint32_t x_pos, - const uint32_t y_pos, int16_t data[6 * 64], int16_t qcoeff[6 * 64]) {