--- mbtransquant.c 2002/08/19 19:19:40 1.10 +++ mbtransquant.c 2002/09/23 20:36:02 1.11.2.1 @@ -68,7 +68,7 @@ #define MIN(X, Y) ((X)<(Y)?(X):(Y)) #define MAX(X, Y) ((X)>(Y)?(X):(Y)) -#define TOOSMALL_LIMIT 3 /* skip blocks having a coefficient sum below this value */ +#define TOOSMALL_LIMIT 2 /* skip blocks having a coefficient sum below this value */ /* this isnt pretty, but its better than 20 ifdefs */ @@ -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();