779 |
|
|
780 |
start_timer(); |
start_timer(); |
781 |
image_setedges(&dec->refn[0], dec->edged_width, dec->edged_height, |
image_setedges(&dec->refn[0], dec->edged_width, dec->edged_height, |
782 |
dec->width, dec->height); |
dec->width, dec->height, dec->bs_version); |
783 |
stop_edges_timer(); |
stop_edges_timer(); |
784 |
|
|
785 |
if (gmc_warp) { |
if (gmc_warp) { |
851 |
mb->quant = quant; |
mb->quant = quant; |
852 |
|
|
853 |
if (dec->interlacing) { |
if (dec->interlacing) { |
854 |
if ((cbp || intra) && !mcsel) { |
if (cbp || intra) { |
855 |
mb->field_dct = BitstreamGetBit(bs); |
mb->field_dct = BitstreamGetBit(bs); |
856 |
DPRINTF(XVID_DEBUG_MB,"decp: field_dct: %i\n", mb->field_dct); |
DPRINTF(XVID_DEBUG_MB,"decp: field_dct: %i\n", mb->field_dct); |
857 |
} |
} |
858 |
|
|
859 |
if (mb->mode == MODE_INTER || mb->mode == MODE_INTER_Q) { |
if ((mb->mode == MODE_INTER || mb->mode == MODE_INTER_Q) && !mcsel) { |
860 |
mb->field_pred = BitstreamGetBit(bs); |
mb->field_pred = BitstreamGetBit(bs); |
861 |
DPRINTF(XVID_DEBUG_MB, "decp: field_pred: %i\n", mb->field_pred); |
DPRINTF(XVID_DEBUG_MB, "decp: field_pred: %i\n", mb->field_pred); |
862 |
|
|
1180 |
|
|
1181 |
start_timer(); |
start_timer(); |
1182 |
image_setedges(&dec->refn[0], dec->edged_width, dec->edged_height, |
image_setedges(&dec->refn[0], dec->edged_width, dec->edged_height, |
1183 |
dec->width, dec->height); |
dec->width, dec->height, dec->bs_version); |
1184 |
image_setedges(&dec->refn[1], dec->edged_width, dec->edged_height, |
image_setedges(&dec->refn[1], dec->edged_width, dec->edged_height, |
1185 |
dec->width, dec->height); |
dec->width, dec->height, dec->bs_version); |
1186 |
stop_edges_timer(); |
stop_edges_timer(); |
1187 |
|
|
1188 |
for (y = 0; y < dec->mb_height; y++) { |
for (y = 0; y < dec->mb_height; y++) { |
1510 |
/* attemping to decode a bvop without atleast 2 reference frames */ |
/* attemping to decode a bvop without atleast 2 reference frames */ |
1511 |
image_printf(&dec->cur, dec->edged_width, dec->height, 16, 16, |
image_printf(&dec->cur, dec->edged_width, dec->height, 16, 16, |
1512 |
"broken b-frame, mising ref frames"); |
"broken b-frame, mising ref frames"); |
1513 |
stats->type = XVID_TYPE_NOTHING; |
if (stats) stats->type = XVID_TYPE_NOTHING; |
1514 |
} else if (dec->time_pp <= dec->time_bp) { |
} else if (dec->time_pp <= dec->time_bp) { |
1515 |
/* this occurs when dx50_bvop_compatibility==0 sequences are |
/* this occurs when dx50_bvop_compatibility==0 sequences are |
1516 |
decoded in vfw. */ |
decoded in vfw. */ |
1517 |
image_printf(&dec->cur, dec->edged_width, dec->height, 16, 16, |
image_printf(&dec->cur, dec->edged_width, dec->height, 16, 16, |
1518 |
"broken b-frame, tpp=%i tbp=%i", dec->time_pp, dec->time_bp); |
"broken b-frame, tpp=%i tbp=%i", dec->time_pp, dec->time_bp); |
1519 |
stats->type = XVID_TYPE_NOTHING; |
if (stats) stats->type = XVID_TYPE_NOTHING; |
1520 |
} else { |
} else { |
1521 |
decoder_bframe(dec, &bs, quant, fcode_forward, fcode_backward); |
decoder_bframe(dec, &bs, quant, fcode_forward, fcode_backward); |
1522 |
decoder_output(dec, &dec->cur, dec->mbs, frame, stats, coding_type, quant); |
decoder_output(dec, &dec->cur, dec->mbs, frame, stats, coding_type, quant); |
1526 |
dec->frames++; |
dec->frames++; |
1527 |
} |
} |
1528 |
|
|
1529 |
|
#if 0 /* Avoids to read to much data because of 32bit reads in our BS functions */ |
1530 |
BitstreamByteAlign(&bs); |
BitstreamByteAlign(&bs); |
1531 |
|
#endif |
1532 |
|
|
1533 |
/* low_delay_default mode: repeat in packed_mode */ |
/* low_delay_default mode: repeat in packed_mode */ |
1534 |
if (dec->low_delay_default && dec->packed_mode && output == 0 && success == 0) { |
if (dec->low_delay_default && dec->packed_mode && output == 0 && success == 0) { |
1559 |
emms(); |
emms(); |
1560 |
stop_global_timer(); |
stop_global_timer(); |
1561 |
|
|
1562 |
return BitstreamPos(&bs) / 8; /* number of bytes consumed */ |
return (BitstreamPos(&bs) + 7) / 8; /* number of bytes consumed */ |
1563 |
} |
} |