[svn] / tags / branch-release-1-0 / xvidcore / src / encoder.c Repository:
ViewVC logotype

Diff of /tags/branch-release-1-0/xvidcore/src/encoder.c

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

revision 358, Sun Aug 4 21:32:56 2002 UTC revision 387, Tue Sep 3 17:25:45 2002 UTC
# Line 39  Line 39 
39   *             MinChen <chenm001@163.com>   *             MinChen <chenm001@163.com>
40   *  14.04.2002 added FrameCodeB()   *  14.04.2002 added FrameCodeB()
41   *   *
42   *  $Id: encoder.c,v 1.70 2002-08-04 21:32:56 Isibaar Exp $   *  $Id: encoder.c,v 1.76 2002-09-03 17:25:18 chl Exp $
43   *   *
44   ****************************************************************************/   ****************************************************************************/
45    
# 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 1933  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.358  
changed lines
  Added in v.387

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