55 |
* 22.12.2001 lock based interpolation |
* 22.12.2001 lock based interpolation |
56 |
* 01.12.2001 inital version; (c)2001 peter ross <pross@cs.rmit.edu.au> |
* 01.12.2001 inital version; (c)2001 peter ross <pross@cs.rmit.edu.au> |
57 |
* |
* |
58 |
* $Id: decoder.c,v 1.37.2.11 2002-11-12 15:53:36 Isibaar Exp $ |
* $Id: decoder.c,v 1.37.2.12 2002-11-19 13:21:24 suxen_drol Exp $ |
59 |
* |
* |
60 |
*************************************************************************/ |
*************************************************************************/ |
61 |
|
|
1463 |
uint32_t intra_dc_threshold; |
uint32_t intra_dc_threshold; |
1464 |
VECTOR gmc_mv[5]; |
VECTOR gmc_mv[5]; |
1465 |
uint32_t vop_type; |
uint32_t vop_type; |
1466 |
|
int success = 0; |
1467 |
|
|
1468 |
start_global_timer(); |
start_global_timer(); |
1469 |
|
|
1495 |
|
|
1496 |
DPRINTF(DPRINTF_HEADER, "vop_type=%i", vop_type); |
DPRINTF(DPRINTF_HEADER, "vop_type=%i", vop_type); |
1497 |
|
|
1498 |
|
if (vop_type == -1 && success) |
1499 |
|
goto done; |
1500 |
|
|
1501 |
if (vop_type == -2 || vop_type == -3) |
if (vop_type == -2 || vop_type == -3) |
1502 |
{ |
{ |
1503 |
if (vop_type == -3) |
if (vop_type == -3) |
1567 |
default: |
default: |
1568 |
if (stats) |
if (stats) |
1569 |
stats->notify = 0; |
stats->notify = 0; |
1570 |
|
|
1571 |
|
emms(); |
1572 |
return XVID_ERR_FAIL; |
return XVID_ERR_FAIL; |
1573 |
} |
} |
1574 |
|
|
1615 |
mb_swap(&dec->mbs, &dec->last_mbs); |
mb_swap(&dec->mbs, &dec->last_mbs); |
1616 |
} |
} |
1617 |
|
|
1618 |
|
success = 1; |
1619 |
|
|
1620 |
if (frame->length > BitstreamPos(&bs) / 8) // multiple vops packed together |
if (frame->length > BitstreamPos(&bs) / 8) // multiple vops packed together |
1621 |
goto start; |
goto start; |
1622 |
|
|
1623 |
|
done : |
1624 |
|
|
1625 |
frame->length = BitstreamPos(&bs) / 8; |
frame->length = BitstreamPos(&bs) / 8; |
1626 |
|
|
1627 |
if (stats) |
if (stats) |