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.31 2002-07-18 00:07:04 chenm001 Exp $ |
* $Id: decoder.c,v 1.32 2002-07-19 11:15:21 albeu Exp $ |
59 |
* |
* |
60 |
*************************************************************************/ |
*************************************************************************/ |
61 |
|
|
493 |
decoder_mbintra(dec, mb, x, y, acpred_flag, cbp, bs, quant, |
decoder_mbintra(dec, mb, x, y, acpred_flag, cbp, bs, quant, |
494 |
intra_dc_threshold, bound); |
intra_dc_threshold, bound); |
495 |
} |
} |
496 |
|
if(dec->out_frm) |
497 |
|
output_slice(&dec->cur, dec->edged_width,dec->width,dec->out_frm,0,y,dec->mb_width); |
498 |
|
|
499 |
} |
} |
500 |
|
|
501 |
} |
} |
559 |
|
|
560 |
uint32_t x, y; |
uint32_t x, y; |
561 |
uint32_t bound; |
uint32_t bound; |
562 |
|
int cp_mb, st_mb; |
563 |
|
|
564 |
start_timer(); |
start_timer(); |
565 |
image_setedges(&dec->refn[0], dec->edged_width, dec->edged_height, |
image_setedges(&dec->refn[0], dec->edged_width, dec->edged_height, |
569 |
bound = 0; |
bound = 0; |
570 |
|
|
571 |
for (y = 0; y < dec->mb_height; y++) { |
for (y = 0; y < dec->mb_height; y++) { |
572 |
|
cp_mb = st_mb = 0; |
573 |
for (x = 0; x < dec->mb_width; x++) { |
for (x = 0; x < dec->mb_width; x++) { |
574 |
MACROBLOCK *mb; |
MACROBLOCK *mb; |
575 |
|
|
597 |
uint32_t cbp; |
uint32_t cbp; |
598 |
uint32_t intra; |
uint32_t intra; |
599 |
|
|
600 |
|
cp_mb++; |
601 |
mcbpc = get_mcbpc_inter(bs); |
mcbpc = get_mcbpc_inter(bs); |
602 |
mb->mode = mcbpc & 7; |
mb->mode = mcbpc & 7; |
603 |
cbpc = (mcbpc >> 4); |
cbpc = (mcbpc >> 4); |
724 |
dec->refn[0].v + |
dec->refn[0].v + |
725 |
(8 * y) * dec->edged_width / 2 + (8 * x), |
(8 * y) * dec->edged_width / 2 + (8 * x), |
726 |
dec->edged_width / 2); |
dec->edged_width / 2); |
|
|
|
727 |
stop_transfer_timer(); |
stop_transfer_timer(); |
728 |
|
if(dec->out_frm && cp_mb > 0) { |
729 |
|
output_slice(&dec->cur, dec->edged_width,dec->width,dec->out_frm,st_mb,y,cp_mb); |
730 |
|
cp_mb = 0; |
731 |
} |
} |
732 |
|
st_mb = x+1; |
733 |
} |
} |
734 |
} |
} |
735 |
|
if(dec->out_frm && cp_mb > 0) |
736 |
|
output_slice(&dec->cur, dec->edged_width,dec->width,dec->out_frm,st_mb,y,cp_mb); |
737 |
|
} |
738 |
} |
} |
739 |
|
|
740 |
|
|
1294 |
|
|
1295 |
start_global_timer(); |
start_global_timer(); |
1296 |
|
|
1297 |
|
dec->out_frm = (frame->colorspace == XVID_CSP_EXTERN) ? frame->image : NULL; |
1298 |
|
|
1299 |
BitstreamInit(&bs, frame->bitstream, frame->length); |
BitstreamInit(&bs, frame->bitstream, frame->length); |
1300 |
|
|
1301 |
// add by chenm001 <chenm001@163.com> |
// add by chenm001 <chenm001@163.com> |