[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.71, Sun Aug 4 22:34:49 2002 UTC revision 1.76, Tue Sep 3 17:25:18 2002 UTC
# Line 425  Line 425 
425          pEnc->mbParam.m_ticks = 0;          pEnc->mbParam.m_ticks = 0;
426          pEnc->m_framenum = 0;          pEnc->m_framenum = 0;
427          pEnc->last_pframe = 0;          pEnc->last_pframe = 0;
428            pEnc->last_sync = 0;
429  #endif  #endif
430    
431          pParam->handle = (void *) pEnc;          pParam->handle = (void *) pEnc;
# Line 620  Line 621 
621  }  }
622    
623    
 #ifdef BFRAMES  
624  void inc_frame_num(Encoder * pEnc)  void inc_frame_num(Encoder * pEnc)
625  {  {
626          pEnc->mbParam.m_ticks += pEnc->mbParam.fincr;          pEnc->mbParam.m_ticks += pEnc->mbParam.fincr;
627    
628    #ifdef BFRAMES
629            pEnc->mbParam.m_ticks = pEnc->mbParam.m_ticks % pEnc->mbParam.fbase;
630            if (pEnc->mbParam.m_ticks < pEnc->last_sync)
631                    pEnc->mbParam.m_seconds = 1;            // more than 1 second since last I or P is not supported.
632            else
633                    pEnc->mbParam.m_seconds = 0;
634    
635            if (pEnc->current->coding_type != B_VOP)
636                    pEnc->last_sync = pEnc->mbParam.m_ticks;
637    #else
638    
639          pEnc->mbParam.m_seconds = pEnc->mbParam.m_ticks / pEnc->mbParam.fbase;          pEnc->mbParam.m_seconds = pEnc->mbParam.m_ticks / pEnc->mbParam.fbase;
640          pEnc->mbParam.m_ticks = pEnc->mbParam.m_ticks % pEnc->mbParam.fbase;          pEnc->mbParam.m_ticks = pEnc->mbParam.m_ticks % pEnc->mbParam.fbase;
641  }  
642  #endif  #endif
643    
644    }
645    
646    
647  #ifdef BFRAMES  #ifdef BFRAMES
648  void queue_image(Encoder * pEnc, XVID_ENC_FRAME * pFrame)  void queue_image(Encoder * pEnc, XVID_ENC_FRAME * pFrame)
# Line 825  Line 838 
838    
839                  pFrame->intra = 0;                  pFrame->intra = 0;
840    
841                  BitstreamPutBits(&bs, 0x7f, 8);                  BitstreamWriteVopHeader(&bs, &pEnc->mbParam, pEnc->current, 0); // write N_VOP
842                  BitstreamPad(&bs);                  BitstreamPad(&bs);
843                  pFrame->length = BitstreamLength(&bs);                  pFrame->length = BitstreamLength(&bs);
844    
# Line 1119  Line 1132 
1132    
1133          pEnc->current->global_flags = pFrame->general;          pEnc->current->global_flags = pFrame->general;
1134          pEnc->current->motion_flags = pFrame->motion;          pEnc->current->motion_flags = pFrame->motion;
 #ifdef BFRAMES  
1135          pEnc->current->seconds = pEnc->mbParam.m_seconds;          pEnc->current->seconds = pEnc->mbParam.m_seconds;
1136          pEnc->current->ticks = pEnc->mbParam.m_ticks;          pEnc->current->ticks = pEnc->mbParam.m_ticks;
 #endif  
1137          pEnc->mbParam.hint = &pFrame->hint;          pEnc->mbParam.hint = &pFrame->hint;
1138    
1139          start_timer();          start_timer();
# Line 1252  Line 1263 
1263          DEBUG(temp);          DEBUG(temp);
1264  #endif  #endif
1265    
 #ifdef BFRAMES  
1266          inc_frame_num(pEnc);          inc_frame_num(pEnc);
 #endif  
1267          pEnc->iFrameNum++;          pEnc->iFrameNum++;
1268    
1269          stop_global_timer();          stop_global_timer();
# Line 1935  Line 1944 
1944    
1945                          mb->quant = frame->quant;                          mb->quant = frame->quant;
1946                          mb->cbp =                          mb->cbp =
1947                                  MBTransQuantInter(&pEnc->mbParam, frame, mb, x, y, dct_codes,                                  MBTransQuantInterBVOP(&pEnc->mbParam, frame, mb, dct_codes, qcoeff);
                                                                   qcoeff);  
1948                          //mb->cbp = MBTransQuantBVOP(&pEnc->mbParam, x, y, dct_codes, qcoeff, &frame->image, frame->quant);                          //mb->cbp = MBTransQuantBVOP(&pEnc->mbParam, x, y, dct_codes, qcoeff, &frame->image, frame->quant);
1949    
1950                          if ( (mb->mode == MODE_DIRECT) && (mb->cbp == 0)                          if ( (mb->mode == MODE_DIRECT) && (mb->cbp == 0)

Legend:
Removed from v.1.71  
changed lines
  Added in v.1.76

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