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.96 2003-03-04 10:55:21 syskin Exp $ |
* $Id: encoder.c,v 1.101 2003-07-28 12:36:20 edgomez Exp $ |
30 |
* |
* |
31 |
****************************************************************************/ |
****************************************************************************/ |
32 |
|
|
183 |
/* 1 keyframe each 10 seconds */ |
/* 1 keyframe each 10 seconds */ |
184 |
|
|
185 |
if (pParam->max_key_interval <= 0) |
if (pParam->max_key_interval <= 0) |
186 |
pParam->max_key_interval = 10 * pParam->fincr / pParam->fbase; |
pParam->max_key_interval = 10 * pParam->fbase / pParam->fincr; |
187 |
|
|
188 |
pEnc = (Encoder *) xvid_malloc(sizeof(Encoder), CACHE_LINE); |
pEnc = (Encoder *) xvid_malloc(sizeof(Encoder), CACHE_LINE); |
189 |
if (pEnc == NULL) |
if (pEnc == NULL) |
752 |
pResult->ublks = pEnc->current->sStat.ublks; |
pResult->ublks = pEnc->current->sStat.ublks; |
753 |
} |
} |
754 |
|
|
755 |
|
emms(); |
756 |
|
|
757 |
|
if (pFrame->quant == 0) { |
758 |
|
RateControlUpdate(&pEnc->rate_control, pEnc->current->quant, |
759 |
|
pFrame->length, pFrame->intra); |
760 |
|
} |
761 |
|
|
762 |
if (input_valid) |
if (input_valid) |
763 |
queue_image(pEnc, pFrame); |
queue_image(pEnc, pFrame); |
764 |
|
|
801 |
pResult->ublks = pEnc->current->sStat.ublks; |
pResult->ublks = pEnc->current->sStat.ublks; |
802 |
} |
} |
803 |
|
|
804 |
|
emms(); |
805 |
|
|
806 |
|
if (pFrame->quant == 0) { |
807 |
|
RateControlUpdate(&pEnc->rate_control, pEnc->current->quant, |
808 |
|
pFrame->length, pFrame->intra); |
809 |
|
} |
810 |
|
|
811 |
if (input_valid) |
if (input_valid) |
812 |
queue_image(pEnc, pFrame); |
queue_image(pEnc, pFrame); |
813 |
|
|
1638 |
|
|
1639 |
set_timecodes(pEnc->current,pEnc->reference,pEnc->mbParam.fbase); |
set_timecodes(pEnc->current,pEnc->reference,pEnc->mbParam.fbase); |
1640 |
|
|
1641 |
BitstreamPadAlways(bs); |
BitstreamPad(bs); |
1642 |
BitstreamWriteVopHeader(bs, &pEnc->mbParam, pEnc->current, 1); |
BitstreamWriteVopHeader(bs, &pEnc->mbParam, pEnc->current, 1); |
1643 |
|
|
1644 |
*pBits = BitstreamPos(bs); |
*pBits = BitstreamPos(bs); |
1785 |
set_timecodes(pEnc->current,pEnc->reference,pEnc->mbParam.fbase); |
set_timecodes(pEnc->current,pEnc->reference,pEnc->mbParam.fbase); |
1786 |
if (vol_header) |
if (vol_header) |
1787 |
{ BitstreamWriteVolHeader(bs, &pEnc->mbParam, pEnc->current); |
{ BitstreamWriteVolHeader(bs, &pEnc->mbParam, pEnc->current); |
1788 |
BitstreamPadAlways(bs); |
BitstreamPad(bs); |
1789 |
} |
} |
1790 |
|
|
1791 |
BitstreamWriteVopHeader(bs, &pEnc->mbParam, pEnc->current, 1); |
BitstreamWriteVopHeader(bs, &pEnc->mbParam, pEnc->current, 1); |