26 |
* along with this program; if not, write to the Free Software |
* along with this program; if not, write to the Free Software |
27 |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
28 |
* |
* |
29 |
* $Id: encoder.c,v 1.95.2.6 2003-03-15 16:04:38 suxen_drol Exp $ |
* $Id: encoder.c,v 1.95.2.8 2003-03-15 17:06:53 suxen_drol Exp $ |
30 |
* |
* |
31 |
****************************************************************************/ |
****************************************************************************/ |
32 |
|
|
166 |
/* framerate */ |
/* framerate */ |
167 |
pEnc->mbParam.fincr = MAX(create->fincr, 0); |
pEnc->mbParam.fincr = MAX(create->fincr, 0); |
168 |
pEnc->mbParam.fbase = create->fincr <= 0 ? 25 : create->fbase; |
pEnc->mbParam.fbase = create->fincr <= 0 ? 25 : create->fbase; |
169 |
|
if (pEnc->mbParam.fincr>0) |
170 |
simplify_time(&pEnc->mbParam.fincr, &pEnc->mbParam.fbase); |
simplify_time(&pEnc->mbParam.fincr, &pEnc->mbParam.fbase); |
171 |
|
|
172 |
/* plugin */ |
/* plugin */ |
637 |
|
|
638 |
data.width = pEnc->mbParam.width; |
data.width = pEnc->mbParam.width; |
639 |
data.height = pEnc->mbParam.height; |
data.height = pEnc->mbParam.height; |
640 |
data.fincr = pEnc->mbParam.fincr; |
data.fincr = frame->fincr; |
641 |
data.fbase = pEnc->mbParam.fbase; |
data.fbase = pEnc->mbParam.fbase; |
642 |
|
|
643 |
data.reference.csp = XVID_CSP_USER; |
data.reference.csp = XVID_CSP_USER; |
751 |
pEnc->current->frame_num = pEnc->m_framenum; |
pEnc->current->frame_num = pEnc->m_framenum; |
752 |
pEnc->current->stamp = pEnc->mbParam.m_stamp; /* first frame is zero */ |
pEnc->current->stamp = pEnc->mbParam.m_stamp; /* first frame is zero */ |
753 |
|
|
754 |
pEnc->mbParam.m_stamp += pEnc->mbParam.fincr; |
pEnc->mbParam.m_stamp += pEnc->current->fincr; |
755 |
pEnc->m_framenum++; /* debug ticker */ |
pEnc->m_framenum++; /* debug ticker */ |
756 |
} |
} |
757 |
|
|
978 |
* init pEnc->current fields |
* init pEnc->current fields |
979 |
* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ |
* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */ |
980 |
|
|
981 |
|
|
982 |
|
pEnc->current->fincr = pEnc->mbParam.fincr>0 ? pEnc->mbParam.fincr : frame->fincr; |
983 |
pEnc->current->vol_flags = pEnc->mbParam.vol_flags; |
pEnc->current->vol_flags = pEnc->mbParam.vol_flags; |
984 |
pEnc->current->vop_flags = frame->vop_flags; |
pEnc->current->vop_flags = frame->vop_flags; |
985 |
pEnc->current->motion_flags = frame->motion; |
pEnc->current->motion_flags = frame->motion; |
1119 |
|
|
1120 |
// place this frame back on the encoding-queue (head) |
// place this frame back on the encoding-queue (head) |
1121 |
// we will deal with it next time |
// we will deal with it next time |
1122 |
|
dec_frame_num(pEnc); |
1123 |
|
pEnc->iFrameNum--; |
1124 |
|
|
1125 |
pEnc->queue_head = (pEnc->queue_head + (pEnc->mbParam.max_bframes+1) - 1) % (pEnc->mbParam.max_bframes+1); |
pEnc->queue_head = (pEnc->queue_head + (pEnc->mbParam.max_bframes+1) - 1) % (pEnc->mbParam.max_bframes+1); |
1126 |
pEnc->queue_size++; |
pEnc->queue_size++; |
1127 |
image_swap(&pEnc->current->image, &pEnc->queue[pEnc->queue_head].image); |
image_swap(&pEnc->current->image, &pEnc->queue[pEnc->queue_head].image); |
1128 |
|
|
|
dec_frame_num(pEnc); |
|
|
pEnc->iFrameNum--; |
|
|
|
|
1129 |
// grab the last frame from the bframe-queue |
// grab the last frame from the bframe-queue |
1130 |
|
|
1131 |
pEnc->bframenum_tail--; |
pEnc->bframenum_tail--; |