--- mbcoding.c 2002/07/24 23:07:45 1.23 +++ mbcoding.c 2002/09/04 03:23:28 1.25 @@ -370,8 +370,10 @@ // interlacing if (frame->global_flags & XVID_INTERLACING) { - BitstreamPutBit(bs, pMB->field_dct); - DEBUG1("codep: field_dct: ", pMB->field_dct); + if (pMB->cbp) { + BitstreamPutBit(bs, pMB->field_dct); + DEBUG1("codep: field_dct: ", pMB->field_dct); + } // if inter block, write field ME flag if (pMB->mode == MODE_INTER || pMB->mode == MODE_INTER_Q) { @@ -413,18 +415,6 @@ { if (frame->coding_type == P_VOP) { - if (pMB->cbp == 0 && pMB->mode == MODE_INTER && pMB->mvs[0].x == 0 && - pMB->mvs[0].y == 0) { - -#ifdef _DISABLE_SKIP -/* disable SKIP when Bframes active until some workaround for the B-SKIP problem is found */ - BitstreamPutBit(bs, 0); // always coded! -#else - BitstreamPutBit(bs, 1); // not_coded - - return; -#endif - } else BitstreamPutBit(bs, 0); // coded } @@ -435,6 +425,15 @@ } + +void +MBSkip(Bitstream * bs) +{ + BitstreamPutBit(bs, 1); // not coded + return; +} + + /*************************************************************** * bframe encoding start ***************************************************************/