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

Diff of /trunk/xvidcore/src/encoder.c

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

revision 118, Sat Apr 13 16:30:02 2002 UTC revision 128, Wed Apr 17 14:05:54 2002 UTC
# Line 80  Line 80 
80                  pParam->fincr = (int)(pParam->fincr / div);                  pParam->fincr = (int)(pParam->fincr / div);
81          }          }
82    
83          if (pParam->bitrate <= 0)          if (pParam->rc_bitrate <= 0)
84                  pParam->bitrate = 900000;                  pParam->rc_bitrate = 900000;
85    
86          if (pParam->rc_buffersize <= 0)          if (pParam->rc_reaction_delay_factor <= 0)
87                  pParam->rc_buffersize = 16;                  pParam->rc_reaction_delay_factor = 16;
88    
89            if (pParam->rc_averaging_period <= 0)
90                    pParam->rc_averaging_period = 100;
91    
92            if (pParam->rc_buffer <= 0)
93                    pParam->rc_buffer = 100;
94    
95          if ((pParam->min_quantizer <= 0) || (pParam->min_quantizer > 31))          if ((pParam->min_quantizer <= 0) || (pParam->min_quantizer > 31))
96                  pParam->min_quantizer = 1;                  pParam->min_quantizer = 1;
# Line 118  Line 124 
124    
125          pEnc->mbParam.quant = 4;          pEnc->mbParam.quant = 4;
126    
127          pEnc->bitrate = pParam->bitrate;          pEnc->bitrate = pParam->rc_bitrate;
128    
129          pEnc->iFrameNum = 0;          pEnc->iFrameNum = 0;
130          pEnc->iMaxKeyInterval = pParam->max_key_interval;          pEnc->iMaxKeyInterval = pParam->max_key_interval;
# Line 172  Line 178 
178    
179          pParam->handle = (void *)pEnc;          pParam->handle = (void *)pEnc;
180    
181          if (pParam->bitrate)          if (pParam->rc_bitrate)
182          {          {
183                  RateControlInit(pParam->bitrate, pParam->rc_buffersize, pParam->fbase * 1000 / pParam->fincr,                  RateControlInit(pParam->rc_bitrate, pParam->rc_reaction_delay_factor,
184                            pParam->rc_averaging_period, pParam->rc_buffer, pParam->fbase * 1000 / pParam->fincr,
185                                  pParam->max_quantizer, pParam->min_quantizer);                                  pParam->max_quantizer, pParam->min_quantizer);
186          }          }
187    
# Line 424  Line 431 
431    
432                          pMB->mode = (hint->rawhints) ? bhint->mode : BitstreamGetBits(&bs, MODEBITS);                          pMB->mode = (hint->rawhints) ? bhint->mode : BitstreamGetBits(&bs, MODEBITS);
433    
434                          if (pMB->mode == MODE_INTER || pMB->mode == MODE_INTER_Q)                          pMB->mode = (pMB->mode == MODE_INTER_Q) ? MODE_INTER : pMB->mode;
435                            pMB->mode = (pMB->mode == MODE_INTRA_Q) ? MODE_INTRA : pMB->mode;
436    
437                            if (pMB->mode == MODE_INTER)
438                          {                          {
439                                  tmp.x  = (hint->rawhints) ? bhint->mvs[0].x : BitstreamGetBits(&bs, length);                                  tmp.x  = (hint->rawhints) ? bhint->mvs[0].x : BitstreamGetBits(&bs, length);
440                                  tmp.y  = (hint->rawhints) ? bhint->mvs[0].y : BitstreamGetBits(&bs, length);                                  tmp.y  = (hint->rawhints) ? bhint->mvs[0].y : BitstreamGetBits(&bs, length);
# Line 458  Line 468 
468                                          pMB->pmvs[vec].y = pMB->mvs[vec].y - pred[0].y;                                          pMB->pmvs[vec].y = pMB->mvs[vec].y - pred[0].y;
469                                  }                                  }
470                          }                          }
471                          else    // intra / intra_q / stuffing / not_coded                          else    // intra / stuffing / not_coded
472                          {                          {
473                                  for (vec=0 ; vec<4 ; ++vec)                                  for (vec=0 ; vec<4 ; ++vec)
474                                  {                                  {
475                                          pMB->mvs[vec].x  = pMB->mvs[vec].y  = 0;                                          pMB->mvs[vec].x  = pMB->mvs[vec].y  = 0;
476                                  }                                  }
477                          }                          }
478    
479                            if (pMB->dquant != NO_CHANGE && pMB->mode == MODE_INTER4V)
480                            {
481                                    pMB->mode = MODE_INTRA;
482    
483                                    for (vec=0 ; vec<4 ; ++vec)
484                                    {
485                                            pMB->mvs[vec].x = pMB->mvs[vec].y = 0;
486                                    }
487                            }
488                  }                  }
489          }          }
490  }  }

Legend:
Removed from v.118  
changed lines
  Added in v.128

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