[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.95.2.36, Sat Aug 2 15:08:19 2003 UTC revision 1.95.2.39, Fri Aug 22 16:11:58 2003 UTC
# Line 226  Line 226 
226          pEnc->mbParam.frame_drop_ratio = MAX(create->frame_drop_ratio, 0);          pEnc->mbParam.frame_drop_ratio = MAX(create->frame_drop_ratio, 0);
227    
228      /* max keyframe interval */      /* max keyframe interval */
229      pEnc->mbParam.iMaxKeyInterval = create->max_key_interval <= 0 ?      pEnc->mbParam.iMaxKeyInterval = create->max_key_interval <= 0 ? (10 * (int)pEnc->mbParam.fbase) / (int)pEnc->mbParam.fincr : create->max_key_interval;
                 (10 * pEnc->mbParam.fbase) / pEnc->mbParam.fincr : create->max_key_interval;  
230    
231      /* allocate working frame-image memory */      /* allocate working frame-image memory */
232    
# Line 771  Line 770 
770      }      }
771    
772      /* call plugins */      /* call plugins */
773      for (i=0; i<pEnc->num_plugins;i++) {      for (i=0; i<(unsigned int)pEnc->num_plugins;i++) {
774          emms();          emms();
775          if (pEnc->plugins[i].func) {          if (pEnc->plugins[i].func) {
776              if (pEnc->plugins[i].func(pEnc->plugins[i].param, opt, &data, 0) < 0) {              if (pEnc->plugins[i].func(pEnc->plugins[i].param, opt, &data, 0) < 0) {
# Line 1253  Line 1252 
1252           * on next enc_encode call we must flush bframes           * on next enc_encode call we must flush bframes
1253           * %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */           * %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% */
1254    
1255  done_flush:  /*done_flush:*/
1256    
1257      pEnc->flush_bframes = 1;      pEnc->flush_bframes = 1;
1258    
# Line 1285  Line 1284 
1284  {  {
1285      unsigned int i,j;      unsigned int i,j;
1286      int quant = frame->quant;      int quant = frame->quant;
1287        if (quant > 31)
1288                    frame->quant = quant = 31;
1289            else if (quant < 1)
1290                    frame->quant = quant = 1;
1291    
1292      for (j=0; j<pParam->mb_height; j++)      for (j=0; j<pParam->mb_height; j++)
1293      for (i=0; i<pParam->mb_width; i++) {      for (i=0; i<pParam->mb_width; i++) {
# Line 1292  Line 1295 
1295          quant += pMB->dquant;          quant += pMB->dquant;
1296          if (quant > 31)          if (quant > 31)
1297                          quant = 31;                          quant = 31;
1298                  if (quant < 1)                  else if (quant < 1)
1299                          quant = 1;                          quant = 1;
1300          pMB->quant = quant;          pMB->quant = quant;
1301      }      }
# Line 1565  Line 1568 
1568    
1569                                  current->sStat.kblks++;                                  current->sStat.kblks++;
1570    
1571                                    if (pEnc->current->vop_flags & XVID_VOP_GREYSCALE)
1572                                    {       pMB->cbp &= 0x3C;               /* keep only bits 5-2 */
1573                                            qcoeff[4*64+0]=0;               /* zero, because for INTRA MBs DC value is saved */
1574                                            qcoeff[5*64+0]=0;
1575                                    }
1576                                  MBCoding(current, pMB, qcoeff, bs, &current->sStat);                                  MBCoding(current, pMB, qcoeff, bs, &current->sStat);
1577                                  stop_coding_timer();                                  stop_coding_timer();
1578                                  continue;                                  continue;
# Line 1891  Line 1899 
1899                                  }                                  }
1900                          }                          }
1901    
1902  #ifdef BFRAMES_DEC_DEBUG                          /* keep only bits 5-2 -- Chroma blocks will just be skipped by the
1903          BFRAME_DEBUG                           * coding function for BFrames, that's why we don't zero teh DC
1904  #endif                           * coeffs */
1905                            if ((frame->vop_flags & XVID_VOP_GREYSCALE))
1906                                    mb->cbp &= 0x3C;
1907    
1908                          start_timer();                          start_timer();
1909                          MBCodingBVOP(mb, qcoeff, frame->fcode, frame->bcode, bs,                          MBCodingBVOP(mb, qcoeff, frame->fcode, frame->bcode, bs,
1910                                                   &frame->sStat, direction);                                                   &frame->sStat, direction);

Legend:
Removed from v.1.95.2.36  
changed lines
  Added in v.1.95.2.39

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