--- encoder.c 2002/06/25 09:41:53 1.49 +++ encoder.c 2002/07/06 17:04:57 1.52 @@ -37,7 +37,7 @@ * MinChen * 14.04.2002 added FrameCodeB() * - * $Id: encoder.c,v 1.49 2002/06/25 09:41:53 suxen_drol Exp $ + * $Id: encoder.c,v 1.52 2002/07/06 17:04:57 chl Exp $ * ****************************************************************************/ @@ -66,6 +66,9 @@ #include "quant/quant_matrix.h" #include "utils/mem_align.h" +#ifdef _SMP +#include "motion/smp_motion_est.h" +#endif /***************************************************************************** * Local macros ****************************************************************************/ @@ -625,11 +628,11 @@ { if (pEnc->queue_size >= pEnc->mbParam.max_bframes) { - DPRINTF("FATAL: QUEUE FULL"); + DPRINTF(DPRINTF_DEBUG,"FATAL: QUEUE FULL"); return; } - DPRINTF("*** QUEUE bf: head=%i tail=%i queue: head=%i tail=%i size=%i", + DPRINTF(DPRINTF_DEBUG,"*** QUEUE bf: head=%i tail=%i queue: head=%i tail=%i size=%i", pEnc->bframenum_head, pEnc->bframenum_tail, pEnc->queue_head, pEnc->queue_tail, pEnc->queue_size); @@ -697,7 +700,7 @@ * frame as a pframe */ - DPRINTF("*** BFRAME (final frame) bf: head=%i tail=%i queue: head=%i tail=%i size=%i", + DPRINTF(DPRINTF_DEBUG,"*** BFRAME (final frame) bf: head=%i tail=%i queue: head=%i tail=%i size=%i", pEnc->bframenum_head, pEnc->bframenum_tail, pEnc->queue_head, pEnc->queue_tail, pEnc->queue_size); @@ -716,7 +719,7 @@ } - DPRINTF("*** BFRAME (flush) bf: head=%i tail=%i queue: head=%i tail=%i size=%i", + DPRINTF(DPRINTF_DEBUG,"*** BFRAME (flush) bf: head=%i tail=%i queue: head=%i tail=%i size=%i", pEnc->bframenum_head, pEnc->bframenum_tail, pEnc->queue_head, pEnc->queue_tail, pEnc->queue_size); @@ -738,7 +741,7 @@ if ((pEnc->global & XVID_GLOBAL_PACKED)) { - DPRINTF("*** EMPTY bf: head=%i tail=%i queue: head=%i tail=%i size=%i", + DPRINTF(DPRINTF_DEBUG,"*** EMPTY bf: head=%i tail=%i queue: head=%i tail=%i size=%i", pEnc->bframenum_head, pEnc->bframenum_tail, pEnc->queue_head, pEnc->queue_tail, pEnc->queue_size); @@ -808,7 +811,7 @@ } else if (BitstreamPos(&bs) == 0) { - DPRINTF("*** SKIP bf: head=%i tail=%i queue: head=%i tail=%i size=%i", + DPRINTF(DPRINTF_DEBUG,"*** SKIP bf: head=%i tail=%i queue: head=%i tail=%i size=%i", pEnc->bframenum_head, pEnc->bframenum_tail, pEnc->queue_head, pEnc->queue_tail, pEnc->queue_size); @@ -924,7 +927,7 @@ * This will be coded as an Intra Frame */ - DPRINTF("*** IFRAME bf: head=%i tail=%i queue: head=%i tail=%i size=%i", + DPRINTF(DPRINTF_DEBUG,"*** IFRAME bf: head=%i tail=%i queue: head=%i tail=%i size=%i", pEnc->bframenum_head, pEnc->bframenum_tail, pEnc->queue_head, pEnc->queue_tail, pEnc->queue_size); @@ -972,7 +975,7 @@ * This will be coded as a Predicted Frame */ - DPRINTF("*** PFRAME bf: head=%i tail=%i queue: head=%i tail=%i size=%i", + DPRINTF(DPRINTF_DEBUG,"*** PFRAME bf: head=%i tail=%i queue: head=%i tail=%i size=%i", pEnc->bframenum_head, pEnc->bframenum_tail, pEnc->queue_head, pEnc->queue_tail, pEnc->queue_size); @@ -995,7 +998,7 @@ * This will be coded as a Bidirectional Frame */ - DPRINTF("*** BFRAME (store) bf: head=%i tail=%i queue: head=%i tail=%i size=%i", + DPRINTF(DPRINTF_DEBUG,"*** BFRAME (store) bf: head=%i tail=%i queue: head=%i tail=%i size=%i", pEnc->bframenum_head, pEnc->bframenum_tail, pEnc->queue_head, pEnc->queue_tail, pEnc->queue_size); @@ -1591,10 +1594,22 @@ if (pEnc->current->global_flags & XVID_HINTEDME_SET) { HintedMESet(pEnc, &bIntra); } else { - bIntra = - MotionEstimation(&pEnc->mbParam, pEnc->current, pEnc->reference, + +#ifdef _SMP + if (NUMTHREADS > 1) + bIntra = + SMP_MotionEstimation(&pEnc->mbParam, pEnc->current, pEnc->reference, &pEnc->vInterH, &pEnc->vInterV, &pEnc->vInterHV, iLimit); + else +#endif + + bIntra = + MotionEstimation(&pEnc->mbParam, pEnc->current, pEnc->reference, + &pEnc->vInterH, &pEnc->vInterV, &pEnc->vInterHV, + iLimit); + + } stop_motion_timer();