--- encoder.c 2002/03/20 00:27:36 1.7 +++ encoder.c 2002/03/24 20:07:31 1.10 @@ -82,7 +82,7 @@ pParam->bitrate = 900000; if (pParam->rc_buffersize <= 0) - pParam->rc_buffersize = pParam->bitrate * pParam->fbase; + pParam->rc_buffersize = 16; if ((pParam->min_quantizer <= 0) || (pParam->min_quantizer > 31)) pParam->min_quantizer = 1; @@ -96,7 +96,7 @@ if (pParam->max_quantizer < pParam->min_quantizer) pParam->max_quantizer = pParam->min_quantizer; - if ((pEnc = (Encoder *) xvid_malloc(sizeof(Encoder), 16)) == NULL) + if ((pEnc = (Encoder *) xvid_malloc(sizeof(Encoder), CACHE_LINE)) == NULL) return XVID_ERR_MEMORY; /* Fill members of Encoder structure */ @@ -161,7 +161,7 @@ return XVID_ERR_MEMORY; } - pEnc->pMBs = xvid_malloc(sizeof(MACROBLOCK) * pEnc->mbParam.mb_width * pEnc->mbParam.mb_height, 16); + pEnc->pMBs = xvid_malloc(sizeof(MACROBLOCK) * pEnc->mbParam.mb_width * pEnc->mbParam.mb_height, CACHE_LINE); if (pEnc->pMBs == NULL) { image_destroy(&pEnc->sCurrent, pEnc->mbParam.edged_width, pEnc->mbParam.edged_height); @@ -183,8 +183,8 @@ if (pParam->bitrate) { - RateControlInit(pParam->bitrate, pParam->rc_buffersize, pParam->fbase, pParam->width, - pParam->height, pParam->max_quantizer, pParam->min_quantizer); + RateControlInit(pParam->bitrate, pParam->rc_buffersize, pParam->fbase * 100 / pParam->fincr, + pParam->max_quantizer, pParam->min_quantizer); } create_vlc_tables(); @@ -253,7 +253,7 @@ if ((pEnc->mbParam.global_flags & XVID_LUMIMASKING) > 0) { - int * temp_dquants = (int *) xvid_malloc(pEnc->mbParam.mb_width * pEnc->mbParam.mb_height * sizeof(int), 16); + int * temp_dquants = (int *) xvid_malloc(pEnc->mbParam.mb_width * pEnc->mbParam.mb_height * sizeof(int), CACHE_LINE); pEnc->mbParam.quant = adaptive_quantization(pEnc->sCurrent.y, pEnc->mbParam.width, temp_dquants, pFrame->quant, pFrame->quant, @@ -364,8 +364,8 @@ static int FrameCodeI(Encoder * pEnc, Bitstream * bs, uint32_t *pBits) { - int16_t dct_codes[6][64]; - int16_t qcoeff[6][64]; + CACHE_ALIGN int16_t dct_codes[6][64]; + CACHE_ALIGN int16_t qcoeff[6][64]; uint16_t x, y; pEnc->iFrameNum = 0; @@ -418,8 +418,10 @@ static int FrameCodeP(Encoder * pEnc, Bitstream * bs, uint32_t *pBits, bool force_inter, bool vol_header) { float fSigma; - int16_t dct_codes[6][64]; - int16_t qcoeff[6][64]; + + CACHE_ALIGN int16_t dct_codes[6][64]; + CACHE_ALIGN int16_t qcoeff[6][64]; + int iLimit; uint32_t x, y; int iSearchRange;