--- trunk/xvidcore/src/encoder.c 2002/07/19 13:34:32 316 +++ trunk/xvidcore/src/encoder.c 2002/07/19 14:56:00 317 @@ -39,7 +39,7 @@ * MinChen * 14.04.2002 added FrameCodeB() * - * $Id: encoder.c,v 1.56 2002-07-18 23:52:40 chl Exp $ + * $Id: encoder.c,v 1.57 2002-07-19 14:56:00 chl Exp $ * ****************************************************************************/ @@ -421,6 +421,7 @@ pEnc->mbParam.m_seconds = 0; pEnc->mbParam.m_ticks = 0; pEnc->m_framenum = 0; + pEnc->last_pframe = 1; #endif pParam->handle = (void *) pEnc; @@ -1723,6 +1724,10 @@ *pBits = BitstreamPos(bs) - *pBits; + pEnc->time_pp = ((int32_t)pEnc->mbParam.fbase - (int32_t)pEnc->last_pframe + (int32_t)pEnc->mbParam.m_ticks) % (int32_t)pEnc->mbParam.fbase; + fprintf(stderr,"fbase=%d last_p=%d ticks=%d time_pp = %d\n",pEnc->mbParam.fbase,pEnc->last_pframe,pEnc->mbParam.m_ticks,pEnc->time_pp); + + pEnc->last_pframe = pEnc->mbParam.m_ticks; return 0; // inter } @@ -1778,7 +1783,11 @@ stop_inter_timer(); start_timer(); - MotionEstimationBVOP(&pEnc->mbParam, frame, pEnc->reference->mbs, f_ref, + fprintf(stderr,"m_ticks =%d\n",(int32_t)pEnc->mbParam.m_ticks+1); + MotionEstimationBVOP(&pEnc->mbParam, frame, + ((int32_t)pEnc->mbParam.fbase + (int32_t)pEnc->mbParam.m_ticks + 1 - (int32_t)pEnc->last_pframe) % pEnc->mbParam.fbase, + pEnc->time_pp, + pEnc->reference->mbs, f_ref, &pEnc->f_refh, &pEnc->f_refv, &pEnc->f_refhv, pEnc->current->mbs, b_ref, &pEnc->vInterH, &pEnc->vInterV, &pEnc->vInterHV);