--- decoder.c 2004/01/27 09:24:49 1.49.2.30 +++ decoder.c 2004/02/29 12:57:58 1.49.2.34 @@ -20,7 +20,7 @@ * along with this program ; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA * - * $Id: decoder.c,v 1.49.2.30 2004/01/27 09:24:49 syskin Exp $ + * $Id: decoder.c,v 1.49.2.34 2004/02/29 12:57:58 edgomez Exp $ * ****************************************************************************/ @@ -779,7 +779,7 @@ start_timer(); image_setedges(&dec->refn[0], dec->edged_width, dec->edged_height, - dec->width, dec->height); + dec->width, dec->height, dec->bs_version); stop_edges_timer(); if (gmc_warp) { @@ -851,12 +851,12 @@ mb->quant = quant; if (dec->interlacing) { - if ((cbp || intra) && !mcsel) { + if (cbp || intra) { mb->field_dct = BitstreamGetBit(bs); DPRINTF(XVID_DEBUG_MB,"decp: field_dct: %i\n", mb->field_dct); } - if (mb->mode == MODE_INTER || mb->mode == MODE_INTER_Q) { + if ((mb->mode == MODE_INTER || mb->mode == MODE_INTER_Q) && !mcsel) { mb->field_pred = BitstreamGetBit(bs); DPRINTF(XVID_DEBUG_MB, "decp: field_pred: %i\n", mb->field_pred); @@ -1180,9 +1180,9 @@ start_timer(); image_setedges(&dec->refn[0], dec->edged_width, dec->edged_height, - dec->width, dec->height); + dec->width, dec->height, dec->bs_version); image_setedges(&dec->refn[1], dec->edged_width, dec->edged_height, - dec->width, dec->height); + dec->width, dec->height, dec->bs_version); stop_edges_timer(); for (y = 0; y < dec->mb_height; y++) { @@ -1526,7 +1526,9 @@ dec->frames++; } - BitstreamByteAlign(&bs); +#if 0 /* Avoids to read to much data because of 32bit reads in our BS functions */ + BitstreamByteAlign(&bs); +#endif /* low_delay_default mode: repeat in packed_mode */ if (dec->low_delay_default && dec->packed_mode && output == 0 && success == 0) { @@ -1557,5 +1559,5 @@ emms(); stop_global_timer(); - return BitstreamPos(&bs) / 8; /* number of bytes consumed */ + return (BitstreamPos(&bs) + 7) / 8; /* number of bytes consumed */ }