set mvP2 also in PSKIP macroblock

Originally committed as revision 5748 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
Stefan Gehrer 2006-07-14 18:48:50 +00:00
parent ab01b2b82a
commit 77f173bef5
1 changed files with 6 additions and 10 deletions

View File

@ -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 *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;