Commit 77f173be authored by Stefan Gehrer's avatar Stefan Gehrer

set mvP2 also in PSKIP macroblock

Originally committed as revision 5748 to svn://svn.ffmpeg.org/ffmpeg/trunk
parent ab01b2b8
...@@ -576,23 +576,19 @@ static void mv_pred(AVSContext *h, enum mv_loc_t nP, enum mv_loc_t nC, ...@@ -576,23 +576,19 @@ static void mv_pred(AVSContext *h, enum mv_loc_t nP, enum mv_loc_t nC,
vector_t *mvA = &h->mv[nP-1]; vector_t *mvA = &h->mv[nP-1];
vector_t *mvB = &h->mv[nP-4]; vector_t *mvB = &h->mv[nP-4];
vector_t *mvC = &h->mv[nC]; vector_t *mvC = &h->mv[nC];
vector_t *mvP2 = NULL; const vector_t *mvP2 = NULL;
mvP->ref = ref; mvP->ref = ref;
mvP->dist = h->dist[mvP->ref]; mvP->dist = h->dist[mvP->ref];
if(mvC->ref == NOT_AVAIL) if(mvC->ref == NOT_AVAIL)
mvC = &h->mv[nP-5]; // set to top-left (mvD) mvC = &h->mv[nP-5]; // set to top-left (mvD)
if(mode == MV_PRED_PSKIP) { if((mode == MV_PRED_PSKIP) &&
if((mvA->ref == NOT_AVAIL) || (mvB->ref == NOT_AVAIL) || ((mvA->ref == NOT_AVAIL) || (mvB->ref == NOT_AVAIL) ||
((mvA->x | mvA->y | mvA->ref) == 0) || ((mvA->x | mvA->y | mvA->ref) == 0) ||
((mvB->x | mvB->y | mvB->ref) == 0) ) { ((mvB->x | mvB->y | mvB->ref) == 0) )) {
mvP->x = mvP->y = 0; mvP2 = &un_mv;
set_mvs(mvP,size);
return;
}
}
/* if there is only one suitable candidate, take it */ /* 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; mvP2= mvA;
} else if((mvA->ref < 0) && (mvB->ref >= 0) && (mvC->ref < 0)) { } else if((mvA->ref < 0) && (mvB->ref >= 0) && (mvC->ref < 0)) {
mvP2= mvB; mvP2= mvB;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment