--- encoder.c 2003/03/26 14:56:10 1.95.2.15 +++ encoder.c 2003/03/30 00:36:53 1.95.2.17 @@ -26,7 +26,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: encoder.c,v 1.95.2.15 2003/03/26 14:56:10 edgomez Exp $ + * $Id: encoder.c,v 1.95.2.17 2003/03/30 00:36:53 edgomez Exp $ * ****************************************************************************/ @@ -664,10 +664,10 @@ data.type = XVID_TYPE_AUTO; data.quant = 2; - if ((pEnc->mbParam.plugin_flags & XVID_REQDQUANTS)) { + if ((pEnc->mbParam.plugin_flags & XVID_REQDQUANTS)) { data.dquant = pEnc->temp_dquants; data.dquant_stride = pEnc->mbParam.mb_width; - memset(data.dquant, 0, data.mb_width*data.mb_height); + memset(data.dquant, 0, data.mb_width*data.mb_height); } /* todo: [vol,vop,motion]_flags*/ @@ -1041,7 +1041,7 @@ }else{ type = MEanalysis(&pEnc->reference->image, pEnc->current, &pEnc->mbParam, pEnc->mbParam.iMaxKeyInterval, - pEnc->iFrameNum, pEnc->bframenum_tail); + pEnc->iFrameNum, pEnc->bframenum_tail, xFrame->bframe_threshold); if (type == B_VOP && !(pEnc->current->vop_flags & XVID_VOP_DYNAMIC_BFRAMES)) { type = P_VOP; /* disable dynamic bframes */ @@ -1353,11 +1353,16 @@ } emms(); +/* XXX: Remove the two #if 0 blocks when we are sure we must always pad the stream */ +#if 0 /* for divx5 compatibility, we must always pad between the packed p and b frames */ if ((pEnc->mbParam.global_flags & XVID_GLOBAL_PACKED) && pEnc->bframenum_tail > 0) +#endif BitstreamPadAlways(bs); +#if 0 else BitstreamPad(bs); +#endif pEnc->current->length = (BitstreamPos(bs) - bits) / 8; pEnc->fMvPrevSigma = -1; @@ -1754,11 +1759,16 @@ } */ +/* XXX: Remove the two #if 0 blocks when we are sure we must always pad the stream */ +#if 0 /* for divx5 compatibility, we must always pad between the packed p and b frames */ if ((pEnc->mbParam.global_flags & XVID_GLOBAL_PACKED) && pEnc->bframenum_tail > 0) +#endif BitstreamPadAlways(bs); +#if 0 else BitstreamPad(bs); +#endif pEnc->current->length = (BitstreamPos(bs) - bits) / 8; @@ -1890,7 +1900,7 @@ /* TODO: dynamic fcode/bcode ??? */ - BitstreamPad(bs); + BitstreamPadAlways(bs); frame->length = (BitstreamPos(bs) - bits) / 8; #ifdef BFRAMES_DEC_DEBUG