# HG changeset patch # User stefang # Date 1152902930 0 # Node ID 804434dc50c369efb55e993ccfb7b7dd7272f734 # Parent 33af013504d506a28a4c351ace05793e976f2791 set mvP2 also in PSKIP macroblock diff -r 33af013504d5 -r 804434dc50c3 cavs.c --- a/cavs.c Fri Jul 14 18:48:38 2006 +0000 +++ b/cavs.c Fri Jul 14 18:48:50 2006 +0000 @@ -576,23 +576,19 @@ vector_t *mvA = &h->mv[nP-1]; vector_t *mvB = &h->mv[nP-4]; vector_t *mvC = &h->mv[nC]; - vector_t *mvP2 = NULL; + const vector_t *mvP2 = NULL; mvP->ref = ref; mvP->dist = h->dist[mvP->ref]; if(mvC->ref == NOT_AVAIL) mvC = &h->mv[nP-5]; // set to top-left (mvD) - if(mode == MV_PRED_PSKIP) { - if((mvA->ref == NOT_AVAIL) || (mvB->ref == NOT_AVAIL) || + if((mode == MV_PRED_PSKIP) && + ((mvA->ref == NOT_AVAIL) || (mvB->ref == NOT_AVAIL) || ((mvA->x | mvA->y | mvA->ref) == 0) || - ((mvB->x | mvB->y | mvB->ref) == 0) ) { - mvP->x = mvP->y = 0; - set_mvs(mvP,size); - return; - } - } + ((mvB->x | mvB->y | mvB->ref) == 0) )) { + mvP2 = &un_mv; /* if there is only one suitable candidate, take it */ - if((mvA->ref >= 0) && (mvB->ref < 0) && (mvC->ref < 0)) { + } else if((mvA->ref >= 0) && (mvB->ref < 0) && (mvC->ref < 0)) { mvP2= mvA; } else if((mvA->ref < 0) && (mvB->ref >= 0) && (mvC->ref < 0)) { mvP2= mvB;