--- branches/dev-api-4/xvidcore/src/motion/estimation_bvop.c 2003/09/10 22:19:00 1142 +++ branches/dev-api-4/xvidcore/src/motion/estimation_bvop.c 2003/11/16 15:32:38 1212 @@ -21,7 +21,7 @@ * along with this program ; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: estimation_bvop.c,v 1.1.2.1 2003-09-10 22:18:59 edgomez Exp $ + * $Id: estimation_bvop.c,v 1.1.2.4 2003-11-16 15:32:37 edgomez Exp $ * ****************************************************************************/ @@ -291,7 +291,7 @@ ChoosePred(const MACROBLOCK * const pMB, const uint32_t mode) { /* the stupidiest function ever */ - return (mode == MODE_FORWARD ? pMB->mvs[0] : pMB->b_mvs[0]); + return (mode == MODE_FORWARD) ? pMB->mvs[0] : pMB->b_mvs[0]; } static void __inline @@ -458,18 +458,18 @@ b_Ref->u + (y*8 + b_dy/2) * stride + x*8 + b_dx/2, stride); - if (sum >= MAX_CHROMA_SAD_FOR_SKIP * Data->iQuant) return; /* no skip */ + if (sum >= MAX_CHROMA_SAD_FOR_SKIP * (int)Data->iQuant) return; /* no skip */ sum += sad8bi(pCur->v + 8*x + 8 * y * stride, f_Ref->v + (y*8 + dy/2) * stride + x*8 + dx/2, b_Ref->v + (y*8 + b_dy/2) * stride + x*8 + b_dx/2, stride); - if (sum < MAX_CHROMA_SAD_FOR_SKIP * Data->iQuant) { + if (sum < MAX_CHROMA_SAD_FOR_SKIP * (int)Data->iQuant) { pMB->mode = MODE_DIRECT_NONE_MV; /* skipped */ for (k = 0; k < 4; k++) { - pMB->qmvs[k] = pMB->mvs[k]; - pMB->b_qmvs[k] = pMB->b_mvs[k]; + pMB->qmvs[k] = pMB->mvs[k] = Data->directmvF[k]; + pMB->b_qmvs[k] = pMB->b_mvs[k] = Data->directmvB[k]; } } } @@ -550,7 +550,7 @@ CheckCandidate(0, 0, Data, 255); /* initial (fast) skip decision */ - if (*Data->iMinSAD < Data->iQuant * INITIAL_SKIP_THRESH * (Data->chroma?3:2)) { + if (*Data->iMinSAD < (int)Data->iQuant * INITIAL_SKIP_THRESH * (Data->chroma?3:2)) { /* possible skip */ if (Data->chroma) { pMB->mode = MODE_DIRECT_NONE_MV; @@ -800,6 +800,8 @@ if (b_reference->coding_type != S_VOP) if (b_mb->mode == MODE_NOT_CODED) { pMB->mode = MODE_NOT_CODED; + pMB->mvs[0] = zeroMV; + pMB->b_mvs[0] = zeroMV; continue; }