[cvs] / xvidcore / src / encoder.c Repository:
ViewVC logotype

Diff of /xvidcore/src/encoder.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.48, Mon Jun 24 09:53:17 2002 UTC revision 1.50, Fri Jun 28 15:14:40 2002 UTC
# Line 742  Line 742 
742                                  pEnc->bframenum_head, pEnc->bframenum_tail,                                  pEnc->bframenum_head, pEnc->bframenum_tail,
743                                  pEnc->queue_head, pEnc->queue_tail, pEnc->queue_size);                                  pEnc->queue_head, pEnc->queue_tail, pEnc->queue_size);
744    
   
745                          BitstreamWriteVopHeader(&bs, &pEnc->mbParam, pEnc->current, 0);                          BitstreamWriteVopHeader(&bs, &pEnc->mbParam, pEnc->current, 0);
746                          BitstreamPad(&bs);                          BitstreamPad(&bs);
747                          BitstreamPutBits(&bs, 0x7f, 8);                          BitstreamPutBits(&bs, 0x7f, 8);
# Line 813  Line 812 
812                                  pEnc->bframenum_head, pEnc->bframenum_tail,                                  pEnc->bframenum_head, pEnc->bframenum_tail,
813                                  pEnc->queue_head, pEnc->queue_tail, pEnc->queue_size);                                  pEnc->queue_head, pEnc->queue_tail, pEnc->queue_size);
814    
   
815                  pFrame->intra = 0;                  pFrame->intra = 0;
816    
817                  BitstreamPutBits(&bs, 0x7f, 8);                  BitstreamPutBits(&bs, 0x7f, 8);
# Line 916  Line 914 
914           * %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */           * %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
915    
916    
917          if (pEnc->iFrameNum == 0 || pFrame->intra == 1 || pEnc->bframenum_dx50bvop != -1 ||          if (pEnc->iFrameNum == 0 || pFrame->intra == 1 || pEnc->bframenum_dx50bvop >= 0 ||
918                  (pFrame->intra < 0 && pEnc->iMaxKeyInterval > 0 &&                  (pFrame->intra < 0 && pEnc->iMaxKeyInterval > 0 &&
919                   pEnc->iFrameNum >= pEnc->iMaxKeyInterval)                   pEnc->iFrameNum >= pEnc->iMaxKeyInterval)
920                  || image_mad(&pEnc->reference->image, &pEnc->current->image,                  || image_mad(&pEnc->reference->image, &pEnc->current->image,
# Line 950  Line 948 
948                          pFrame->intra = 0;                          pFrame->intra = 0;
949    
950                  } else {                  } else {
951                          pEnc->bframenum_dx50bvop = -1;  
952                          FrameCodeI(pEnc, &bs, &bits);                          FrameCodeI(pEnc, &bs, &bits);
953                          pFrame->intra = 1;                          pFrame->intra = 1;
954    
955                            pEnc->bframenum_dx50bvop = -1;
956                  }                  }
957    
958                  pEnc->flush_bframes = 1;                  pEnc->flush_bframes = 1;
959    
960                  if ((pEnc->global & XVID_GLOBAL_PACKED)) {                  if ((pEnc->global & XVID_GLOBAL_PACKED) && pEnc->bframenum_tail > 0) {
961                          BitstreamPad(&bs);                          BitstreamPad(&bs);
962                          input_valid = 0;                          input_valid = 0;
963                          goto ipvop_loop;                          goto ipvop_loop;
# Line 1335  Line 1335 
1335                                  tmp.y -= (tmp.y >= high) ? high * 2 : 0;                                  tmp.y -= (tmp.y >= high) ? high * 2 : 0;
1336    
1337                                  get_pmvdata(pEnc->current->mbs, x, y, pEnc->mbParam.mb_width,                                  get_pmvdata(pEnc->current->mbs, x, y, pEnc->mbParam.mb_width,
1338                                                          0, pred, dummy);                                                          0, pred, dummy, 0, 0);
1339    
1340                                  for (vec = 0; vec < 4; ++vec) {                                  for (vec = 0; vec < 4; ++vec) {
1341                                          pMB->mvs[vec].x = tmp.x;                                          pMB->mvs[vec].x = tmp.x;
# Line 1355  Line 1355 
1355                                          tmp.y -= (tmp.y >= high) ? high * 2 : 0;                                          tmp.y -= (tmp.y >= high) ? high * 2 : 0;
1356    
1357                                          get_pmvdata(pEnc->current->mbs, x, y,                                          get_pmvdata(pEnc->current->mbs, x, y,
1358                                                                  pEnc->mbParam.mb_width, vec, pred, dummy);                                                                  pEnc->mbParam.mb_width, vec, pred, dummy, 0, 0);
1359    
1360                                          pMB->mvs[vec].x = tmp.x;                                          pMB->mvs[vec].x = tmp.x;
1361                                          pMB->mvs[vec].y = tmp.y;                                          pMB->mvs[vec].y = tmp.y;

Legend:
Removed from v.1.48  
changed lines
  Added in v.1.50

No admin address has been configured
ViewVC Help
Powered by ViewVC 1.0.4