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.22 2002-12-14 09:39:42 suxen_drol Exp $ |
* $Id: decoder.c,v 1.37.2.23 2002-12-16 08:54:44 suxen_drol Exp $ |
59 |
* |
* |
60 |
*************************************************************************/ |
*************************************************************************/ |
61 |
|
|
1651 |
dec->low_delay_default = (frame->general & XVID_DEC_LOWDELAY); |
dec->low_delay_default = (frame->general & XVID_DEC_LOWDELAY); |
1652 |
dec->out_frm = (frame->colorspace == XVID_CSP_EXTERN) ? frame->image : NULL; |
dec->out_frm = (frame->colorspace == XVID_CSP_EXTERN) ? frame->image : NULL; |
1653 |
|
|
1654 |
|
if ((frame->general & XVID_DEC_DISCONTINUITY)) |
1655 |
|
dec->frames = 0; |
1656 |
|
|
1657 |
if (frame->length < 0) /* decoder flush */ |
if (frame->length < 0) /* decoder flush */ |
1658 |
{ |
{ |
1659 |
/* if not decoding "low_delay/packed", and this isn't low_delay and |
/* if not decoding "low_delay/packed", and this isn't low_delay and |
1838 |
{ |
{ |
1839 |
/* output the recently decoded frame */ |
/* output the recently decoded frame */ |
1840 |
decoder_output(dec, &dec->refn[0], dec->last_mbs, frame, dec->last_reduced_resolution); |
decoder_output(dec, &dec->refn[0], dec->last_mbs, frame, dec->last_reduced_resolution); |
1841 |
|
output = 1; |
1842 |
} |
} |
1843 |
else |
else |
1844 |
{ |
{ |
1850 |
|
|
1851 |
decoder_output(dec, &dec->cur, NULL, frame, 1 /*disable pp*/); |
decoder_output(dec, &dec->cur, NULL, frame, 1 /*disable pp*/); |
1852 |
} |
} |
|
output = 1; |
|
1853 |
} |
} |
1854 |
|
|
1855 |
frame->length = BitstreamPos(&bs) / 8; |
frame->length = BitstreamPos(&bs) / 8; |