39 |
* MinChen <chenm001@163.com> |
* MinChen <chenm001@163.com> |
40 |
* 14.04.2002 added FrameCodeB() |
* 14.04.2002 added FrameCodeB() |
41 |
* |
* |
42 |
* $Id: encoder.c,v 1.55 2002-07-12 12:26:23 suxen_drol Exp $ |
* $Id: encoder.c,v 1.58 2002-07-19 15:02:38 chl Exp $ |
43 |
* |
* |
44 |
****************************************************************************/ |
****************************************************************************/ |
45 |
|
|
421 |
pEnc->mbParam.m_seconds = 0; |
pEnc->mbParam.m_seconds = 0; |
422 |
pEnc->mbParam.m_ticks = 0; |
pEnc->mbParam.m_ticks = 0; |
423 |
pEnc->m_framenum = 0; |
pEnc->m_framenum = 0; |
424 |
|
pEnc->last_pframe = 1; |
425 |
#endif |
#endif |
426 |
|
|
427 |
pParam->handle = (void *) pEnc; |
pParam->handle = (void *) pEnc; |
1724 |
|
|
1725 |
*pBits = BitstreamPos(bs) - *pBits; |
*pBits = BitstreamPos(bs) - *pBits; |
1726 |
|
|
1727 |
|
pEnc->time_pp = ((int32_t)pEnc->mbParam.fbase - (int32_t)pEnc->last_pframe + (int32_t)pEnc->mbParam.m_ticks) % (int32_t)pEnc->mbParam.fbase; |
1728 |
|
|
1729 |
|
pEnc->last_pframe = pEnc->mbParam.m_ticks; |
1730 |
return 0; // inter |
return 0; // inter |
1731 |
} |
} |
1732 |
|
|
1782 |
stop_inter_timer(); |
stop_inter_timer(); |
1783 |
|
|
1784 |
start_timer(); |
start_timer(); |
1785 |
MotionEstimationBVOP(&pEnc->mbParam, frame, pEnc->reference->mbs, f_ref, |
MotionEstimationBVOP(&pEnc->mbParam, frame, |
1786 |
|
((int32_t)pEnc->mbParam.fbase + (int32_t)pEnc->mbParam.m_ticks + 1 - (int32_t)pEnc->last_pframe) % pEnc->mbParam.fbase, |
1787 |
|
pEnc->time_pp, |
1788 |
|
pEnc->reference->mbs, f_ref, |
1789 |
&pEnc->f_refh, &pEnc->f_refv, &pEnc->f_refhv, |
&pEnc->f_refh, &pEnc->f_refv, &pEnc->f_refhv, |
1790 |
pEnc->current->mbs, b_ref, &pEnc->vInterH, |
pEnc->current->mbs, b_ref, &pEnc->vInterH, |
1791 |
&pEnc->vInterV, &pEnc->vInterHV); |
&pEnc->vInterV, &pEnc->vInterHV); |
1851 |
|
|
1852 |
if ((mb->mode == MODE_INTERPOLATE || mb->mode == MODE_DIRECT) |
if ((mb->mode == MODE_INTERPOLATE || mb->mode == MODE_DIRECT) |
1853 |
&& mb->cbp == 0 && mb->mvs[0].x == 0 && mb->mvs[0].y == 0) { |
&& mb->cbp == 0 && mb->mvs[0].x == 0 && mb->mvs[0].y == 0) { |
1854 |
mb->mode = 5; // skipped |
mb->mode = MODE_DIRECT_NONE_MV; // skipped |
1855 |
} |
} |
1856 |
|
|
1857 |
if (mb->mode == MODE_INTERPOLATE || mb->mode == MODE_FORWARD) { |
if (mb->mode == MODE_INTERPOLATE || mb->mode == MODE_FORWARD) { |