提交 77f173be 编写于 作者: S Stefan Gehrer

set mvP2 also in PSKIP macroblock

Originally committed as revision 5748 to svn://svn.ffmpeg.org/ffmpeg/trunk
上级 ab01b2b8
......@@ -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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册