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.76.2.36 2003-01-11 20:37:46 chl Exp $ |
* $Id: encoder.c,v 1.76.2.37 2003-01-13 14:33:24 chl Exp $ |
43 |
* |
* |
44 |
****************************************************************************/ |
****************************************************************************/ |
45 |
|
|
730 |
FrameCodeP(pEnc, &bs, &bits, 1, 0); |
FrameCodeP(pEnc, &bs, &bits, 1, 0); |
731 |
bframes_count = 0; |
bframes_count = 0; |
732 |
|
|
733 |
BitstreamPad(&bs); |
BitstreamPadAlways(&bs); |
734 |
pFrame->length = BitstreamLength(&bs); |
pFrame->length = BitstreamLength(&bs); |
735 |
pFrame->intra = 0; |
pFrame->intra = 0; |
736 |
|
|
747 |
FrameCodeB(pEnc, pEnc->bframes[pEnc->bframenum_head], &bs, &bits); |
FrameCodeB(pEnc, pEnc->bframes[pEnc->bframenum_head], &bs, &bits); |
748 |
pEnc->bframenum_head++; |
pEnc->bframenum_head++; |
749 |
|
|
750 |
BitstreamPad(&bs); |
BitstreamPadAlways(&bs); |
751 |
pFrame->length = BitstreamLength(&bs); |
pFrame->length = BitstreamLength(&bs); |
752 |
pFrame->intra = 2; |
pFrame->intra = 2; |
753 |
|
|
776 |
pEnc->bframenum_head, pEnc->bframenum_tail, |
pEnc->bframenum_head, pEnc->bframenum_tail, |
777 |
pEnc->queue_head, pEnc->queue_tail, pEnc->queue_size); |
pEnc->queue_head, pEnc->queue_tail, pEnc->queue_size); |
778 |
|
|
|
BitstreamPad(&bs); |
|
779 |
|
|
780 |
tmp = pEnc->current->seconds; |
tmp = pEnc->current->seconds; |
781 |
pEnc->current->seconds = 0; /* force time_base = 0 */ |
pEnc->current->seconds = 0; /* force time_base = 0 */ |
782 |
|
|
783 |
BitstreamWriteVopHeader(&bs, &pEnc->mbParam, pEnc->current, 0); |
BitstreamWriteVopHeader(&bs, &pEnc->mbParam, pEnc->current, 0); |
784 |
pEnc->current->seconds = tmp; |
pEnc->current->seconds = tmp; |
785 |
|
|
786 |
|
BitstreamPadAlways(&bs); |
787 |
pFrame->length = BitstreamLength(&bs); |
pFrame->length = BitstreamLength(&bs); |
788 |
pFrame->intra = 4; |
pFrame->intra = 4; |
789 |
|
|
860 |
pEnc->bframenum_head, pEnc->bframenum_tail, |
pEnc->bframenum_head, pEnc->bframenum_tail, |
861 |
pEnc->queue_head, pEnc->queue_tail, pEnc->queue_size); |
pEnc->queue_head, pEnc->queue_tail, pEnc->queue_size); |
862 |
|
|
863 |
BitstreamPutBits(&bs, 0x7f, 8); |
// BitstreamPutBits(&bs, 0x7f, 8); |
864 |
pFrame->intra = 5; |
pFrame->intra = 5; |
865 |
} |
} |
866 |
|
|
1090 |
goto bvop_loop; |
goto bvop_loop; |
1091 |
} |
} |
1092 |
|
|
1093 |
BitstreamPad(&bs); |
BitstreamPadAlways(&bs); |
1094 |
pFrame->length = BitstreamLength(&bs); |
pFrame->length = BitstreamLength(&bs); |
1095 |
|
|
1096 |
if (pResult) { |
if (pResult) { |
1276 |
|
|
1277 |
} |
} |
1278 |
|
|
1279 |
BitstreamPutBits(&bs, 0xFFFF, 16); |
// BitstreamPutBits(&bs, 0xFFFF, 16); |
1280 |
BitstreamPutBits(&bs, 0xFFFF, 16); |
// BitstreamPutBits(&bs, 0xFFFF, 16); |
1281 |
BitstreamPad(&bs); |
BitstreamPadAlways(&bs); |
1282 |
pFrame->length = BitstreamLength(&bs); |
pFrame->length = BitstreamLength(&bs); |
1283 |
|
|
1284 |
if (pResult) { |
if (pResult) { |
1469 |
|
|
1470 |
if (intra) { |
if (intra) { |
1471 |
if (!hint->rawhints) { |
if (!hint->rawhints) { |
1472 |
BitstreamPad(&bs); |
BitstreamPadAlways(&bs); |
1473 |
hint->hintlength = BitstreamLength(&bs); |
hint->hintlength = BitstreamLength(&bs); |
1474 |
} |
} |
1475 |
return; |
return; |
1575 |
BitstreamWriteVolHeader(bs, &pEnc->mbParam, pEnc->current); |
BitstreamWriteVolHeader(bs, &pEnc->mbParam, pEnc->current); |
1576 |
|
|
1577 |
set_timecodes(pEnc->current,pEnc->reference,pEnc->mbParam.fbase); |
set_timecodes(pEnc->current,pEnc->reference,pEnc->mbParam.fbase); |
1578 |
|
|
1579 |
|
BitstreamPadAlways(bs); |
1580 |
BitstreamWriteVopHeader(bs, &pEnc->mbParam, pEnc->current, 1); |
BitstreamWriteVopHeader(bs, &pEnc->mbParam, pEnc->current, 1); |
1581 |
|
|
1582 |
*pBits = BitstreamPos(bs); |
*pBits = BitstreamPos(bs); |
1720 |
pEnc->current->rounding_type, pEnc->current->mbs, &pEnc->vGMC); |
pEnc->current->rounding_type, pEnc->current->mbs, &pEnc->vGMC); |
1721 |
|
|
1722 |
} |
} |
|
if (vol_header) |
|
|
BitstreamWriteVolHeader(bs, &pEnc->mbParam, pEnc->current); |
|
1723 |
|
|
1724 |
set_timecodes(pEnc->current,pEnc->reference,pEnc->mbParam.fbase); |
set_timecodes(pEnc->current,pEnc->reference,pEnc->mbParam.fbase); |
1725 |
|
if (vol_header) |
1726 |
|
{ BitstreamWriteVolHeader(bs, &pEnc->mbParam, pEnc->current); |
1727 |
|
BitstreamPadAlways(bs); |
1728 |
|
} |
1729 |
|
|
1730 |
BitstreamWriteVopHeader(bs, &pEnc->mbParam, pEnc->current, 1); |
BitstreamWriteVopHeader(bs, &pEnc->mbParam, pEnc->current, 1); |
1731 |
|
|
1732 |
*pBits = BitstreamPos(bs); |
*pBits = BitstreamPos(bs); |