[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.88, Tue Nov 26 23:44:09 2002 UTC revision 1.90, Tue Feb 4 22:00:44 2003 UTC
# Line 78  Line 78 
78  #include "quant/quant_matrix.h"  #include "quant/quant_matrix.h"
79  #include "utils/mem_align.h"  #include "utils/mem_align.h"
80    
 #ifdef _SMP  
 #include "motion/smp_motion_est.h"  
 #endif  
81  /*****************************************************************************  /*****************************************************************************
82   * Local macros   * Local macros
83   ****************************************************************************/   ****************************************************************************/
# Line 239  Line 236 
236    
237          pEnc->mbParam.m_quant_type = H263_QUANT;          pEnc->mbParam.m_quant_type = H263_QUANT;
238    
 #ifdef _SMP  
         pEnc->mbParam.num_threads = MIN(pParam->num_threads, MAXNUMTHREADS);  
 #endif  
   
239          pEnc->sStat.fMvPrevSigma = -1;          pEnc->sStat.fMvPrevSigma = -1;
240    
241          /* Fill rate control parameters */          /* Fill rate control parameters */
# Line 643  Line 636 
636                  return;                  return;
637          }          }
638    
639          pEnc->current->fcode =          pEnc->current->fcode = (hint->rawhints != 0) ?
640                  (hint->rawhints) ? hint->mvhint.fcode : BitstreamGetBits(&bs,                  (uint32_t)hint->mvhint.fcode : BitstreamGetBits(&bs, FCODEBITS);
                                                                                                                                  FCODEBITS);  
641    
642          length = pEnc->current->fcode + 5;          length = pEnc->current->fcode + 5;
643          high = 1 << (length - 1);          high = 1 << (length - 1);
# Line 660  Line 652 
652                          VECTOR tmp;                          VECTOR tmp;
653                          int vec;                          int vec;
654    
655                          pMB->mode =                          pMB->mode = (hint->rawhints != 0) ?
656                                  (hint->rawhints) ? bhint->mode : BitstreamGetBits(&bs,                                  (uint32_t)bhint->mode : BitstreamGetBits(&bs, MODEBITS);
                                                                                                                                   MODEBITS);  
657    
658                          pMB->mode = (pMB->mode == MODE_INTER_Q) ? MODE_INTER : pMB->mode;                          pMB->mode = (pMB->mode == MODE_INTER_Q) ? MODE_INTER : pMB->mode;
659                          pMB->mode = (pMB->mode == MODE_INTRA_Q) ? MODE_INTRA : pMB->mode;                          pMB->mode = (pMB->mode == MODE_INTRA_Q) ? MODE_INTRA : pMB->mode;
660    
661                          if (pMB->mode == MODE_INTER) {                          if (pMB->mode == MODE_INTER) {
662                                  tmp.x =                                  tmp.x = (hint->rawhints) ?
663                                          (hint->rawhints) ? bhint->mvs[0].x : BitstreamGetBits(&bs,                                          bhint->mvs[0].x : (int)BitstreamGetBits(&bs, length);
664                                                                                                                                                    length);                                  tmp.y = (hint->rawhints) ?
665                                  tmp.y =                                          bhint->mvs[0].y : (int)BitstreamGetBits(&bs, length);
                                         (hint->rawhints) ? bhint->mvs[0].y : BitstreamGetBits(&bs,  
                                                                                                                                                   length);  
666                                  tmp.x -= (tmp.x >= high) ? high * 2 : 0;                                  tmp.x -= (tmp.x >= high) ? high * 2 : 0;
667                                  tmp.y -= (tmp.y >= high) ? high * 2 : 0;                                  tmp.y -= (tmp.y >= high) ? high * 2 : 0;
668    
# Line 687  Line 676 
676                                  }                                  }
677                          } else if (pMB->mode == MODE_INTER4V) {                          } else if (pMB->mode == MODE_INTER4V) {
678                                  for (vec = 0; vec < 4; ++vec) {                                  for (vec = 0; vec < 4; ++vec) {
679                                          tmp.x =                                          tmp.x = (hint->rawhints) ?
680                                                  (hint->rawhints) ? bhint->mvs[vec].                                                  bhint->mvs[vec].x : (int)BitstreamGetBits(&bs, length);
681                                                  x : BitstreamGetBits(&bs, length);                                          tmp.y = (hint->rawhints) ?
682                                          tmp.y =                                                  bhint->mvs[vec].y : (int)BitstreamGetBits(&bs, length);
                                                 (hint->rawhints) ? bhint->mvs[vec].  
                                                 y : BitstreamGetBits(&bs, length);  
683                                          tmp.x -= (tmp.x >= high) ? high * 2 : 0;                                          tmp.x -= (tmp.x >= high) ? high * 2 : 0;
684                                          tmp.y -= (tmp.y >= high) ? high * 2 : 0;                                          tmp.y -= (tmp.y >= high) ? high * 2 : 0;
685    
# Line 932  Line 919 
919                  HintedMESet(pEnc, &bIntra);                  HintedMESet(pEnc, &bIntra);
920          } else {          } else {
921    
 #ifdef _SMP  
         if (pEnc->mbParam.num_threads > 1)  
                 bIntra =  
                         SMP_MotionEstimation(&pEnc->mbParam, pEnc->current, pEnc->reference,  
                                                  &pEnc->vInterH, &pEnc->vInterV, &pEnc->vInterHV,  
                                                  iLimit);  
         else  
 #endif  
922                  bIntra =                  bIntra =
923                          MotionEstimation(&pEnc->mbParam, pEnc->current, pEnc->reference,                          MotionEstimation(&pEnc->mbParam, pEnc->current, pEnc->reference,
924                           &pEnc->vInterH, &pEnc->vInterV, &pEnc->vInterHV,                           &pEnc->vInterH, &pEnc->vInterV, &pEnc->vInterHV,

Legend:
Removed from v.1.88  
changed lines
  Added in v.1.90

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