changeset 3468:804434dc50c3 libavcodec

set mvP2 also in PSKIP macroblock
author stefang
date Fri, 14 Jul 2006 18:48:50 +0000
parents 33af013504d5
children c9059c843d4c
files cavs.c
diffstat 1 files changed, 6 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- 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;