--- trunk/xvidcore/src/encoder.c 2002/09/04 21:43:46 405 +++ trunk/xvidcore/src/encoder.c 2002/10/19 12:20:33 605 @@ -3,7 +3,9 @@ * XVID MPEG-4 VIDEO CODEC * - Encoder main module - * - * Copyright(C) 2002 Michael Militzer + * Copyright(C) 2002 Michael Militzer + * 2002 Peter Ross + * 2002 Daniel Smith * * This program is an implementation of a part of one or more MPEG-4 * Video tools as specified in ISO/IEC 14496-2 standard. Those intending @@ -28,7 +30,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.79 2002-09-04 21:43:46 edgomez Exp $ + * $Id: encoder.c,v 1.86 2002-10-19 12:20:33 edgomez Exp $ * ****************************************************************************/ @@ -102,8 +104,8 @@ * Encoder creation * * This function creates an Encoder instance, it allocates all necessary - * image buffers (reference, current and bframes) and initialize the internal - * xvid encoder paremeters according to the XVID_ENC_PARAM input parameter. + * image buffers (reference, current) and initialize the internal xvid + * encoder paremeters according to the XVID_ENC_PARAM input parameter. * * The code seems to be very long but is very basic, mainly memory allocation * and cleaning code. @@ -257,9 +259,7 @@ image_null(&pEnc->reference->image); image_null(&pEnc->vInterH); image_null(&pEnc->vInterV); - image_null(&pEnc->vInterVf); image_null(&pEnc->vInterHV); - image_null(&pEnc->vInterHVf); #ifdef _DEBUG_PSNR if (image_create @@ -284,17 +284,9 @@ pEnc->mbParam.edged_height) < 0) goto xvid_err_memory3; if (image_create - (&pEnc->vInterVf, pEnc->mbParam.edged_width, - pEnc->mbParam.edged_height) < 0) - goto xvid_err_memory3; - if (image_create (&pEnc->vInterHV, pEnc->mbParam.edged_width, pEnc->mbParam.edged_height) < 0) goto xvid_err_memory3; - if (image_create - (&pEnc->vInterHVf, pEnc->mbParam.edged_width, - pEnc->mbParam.edged_height) < 0) - goto xvid_err_memory3; pParam->handle = (void *) pEnc; @@ -328,12 +320,8 @@ pEnc->mbParam.edged_height); image_destroy(&pEnc->vInterV, pEnc->mbParam.edged_width, pEnc->mbParam.edged_height); - image_destroy(&pEnc->vInterVf, pEnc->mbParam.edged_width, - pEnc->mbParam.edged_height); image_destroy(&pEnc->vInterHV, pEnc->mbParam.edged_width, pEnc->mbParam.edged_height); - image_destroy(&pEnc->vInterHVf, pEnc->mbParam.edged_width, - pEnc->mbParam.edged_height); xvid_err_memory2: xvid_free(pEnc->current->mbs); @@ -375,12 +363,8 @@ pEnc->mbParam.edged_height); image_destroy(&pEnc->vInterV, pEnc->mbParam.edged_width, pEnc->mbParam.edged_height); - image_destroy(&pEnc->vInterVf, pEnc->mbParam.edged_width, - pEnc->mbParam.edged_height); image_destroy(&pEnc->vInterHV, pEnc->mbParam.edged_width, pEnc->mbParam.edged_height); - image_destroy(&pEnc->vInterHVf, pEnc->mbParam.edged_width, - pEnc->mbParam.edged_height); #ifdef _DEBUG_PSNR image_destroy(&pEnc->sOriginal, pEnc->mbParam.edged_width, @@ -560,7 +544,7 @@ emms(); if (pFrame->quant == 0) { - RateControlUpdate(&pEnc->rate_control, pEnc->current->quant, + RateControlUpdate(&pEnc->rate_control, (int16_t)pEnc->current->quant, pFrame->length, pFrame->intra); } #ifdef _DEBUG_PSNR @@ -889,7 +873,7 @@ DECLARE_ALIGNED_MATRIX(qcoeff, 6, 64, int16_t, CACHE_LINE); int iLimit; - int x, y, k; + unsigned int x, y; int iSearchRange; int bIntra; @@ -898,8 +882,7 @@ start_timer(); image_setedges(pRef, pEnc->mbParam.edged_width, pEnc->mbParam.edged_height, - pEnc->mbParam.width, pEnc->mbParam.height, - pEnc->current->global_flags & XVID_INTERLACING); + pEnc->mbParam.width, pEnc->mbParam.height); stop_edges_timer(); pEnc->mbParam.m_rounding_type = 1 - pEnc->mbParam.m_rounding_type; @@ -1000,11 +983,11 @@ CodeIntraMB(pEnc, pMB); MBTransQuantIntra(&pEnc->mbParam, pEnc->current, pMB, x, y, dct_codes, qcoeff); - } - start_timer(); - MBPrediction(pEnc->current, x, y, pEnc->mbParam.mb_width, qcoeff); - stop_prediction_timer(); + start_timer(); + MBPrediction(pEnc->current, x, y, pEnc->mbParam.mb_width, qcoeff); + stop_prediction_timer(); + } if (pMB->mode == MODE_INTRA || pMB->mode == MODE_INTRA_Q) { pEnc->sStat.kblks++;