431 |
|
|
432 |
pMB->mode = (hint->rawhints) ? bhint->mode : BitstreamGetBits(&bs, MODEBITS); |
pMB->mode = (hint->rawhints) ? bhint->mode : BitstreamGetBits(&bs, MODEBITS); |
433 |
|
|
434 |
if (pMB->mode == MODE_INTER || pMB->mode == MODE_INTER_Q) |
pMB->mode = (pMB->mode == MODE_INTER_Q) ? MODE_INTER : pMB->mode; |
435 |
|
pMB->mode = (pMB->mode == MODE_INTRA_Q) ? MODE_INTRA : pMB->mode; |
436 |
|
|
437 |
|
if (pMB->mode == MODE_INTER) |
438 |
{ |
{ |
439 |
tmp.x = (hint->rawhints) ? bhint->mvs[0].x : BitstreamGetBits(&bs, length); |
tmp.x = (hint->rawhints) ? bhint->mvs[0].x : BitstreamGetBits(&bs, length); |
440 |
tmp.y = (hint->rawhints) ? bhint->mvs[0].y : BitstreamGetBits(&bs, length); |
tmp.y = (hint->rawhints) ? bhint->mvs[0].y : BitstreamGetBits(&bs, length); |
468 |
pMB->pmvs[vec].y = pMB->mvs[vec].y - pred[0].y; |
pMB->pmvs[vec].y = pMB->mvs[vec].y - pred[0].y; |
469 |
} |
} |
470 |
} |
} |
471 |
else // intra / intra_q / stuffing / not_coded |
else // intra / stuffing / not_coded |
472 |
|
{ |
473 |
|
for (vec=0 ; vec<4 ; ++vec) |
474 |
|
{ |
475 |
|
pMB->mvs[vec].x = pMB->mvs[vec].y = 0; |
476 |
|
} |
477 |
|
} |
478 |
|
|
479 |
|
if (pMB->dquant != NO_CHANGE && pMB->mode == MODE_INTER4V) |
480 |
{ |
{ |
481 |
|
pMB->mode = MODE_INTRA; |
482 |
|
|
483 |
for (vec=0 ; vec<4 ; ++vec) |
for (vec=0 ; vec<4 ; ++vec) |
484 |
{ |
{ |
485 |
pMB->mvs[vec].x = pMB->mvs[vec].y = 0; |
pMB->mvs[vec].x = pMB->mvs[vec].y = 0; |