[svn] / branches / dev-api-3 / xvidcore / src / bitstream / bitstream.c Repository:
ViewVC logotype

Diff of /branches/dev-api-3/xvidcore/src/bitstream/bitstream.c

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

trunk/xvidcore/src/bitstream/bitstream.c revision 333, Wed Jul 24 00:50:10 2002 UTC branches/dev-api-3/xvidcore/src/bitstream/bitstream.c revision 557, Sat Sep 28 13:01:15 2002 UTC
# Line 619  Line 619 
619                                  *intra_dc_threshold =                                  *intra_dc_threshold =
620                                          intra_dc_threshold_table[BitstreamGetBits(bs, 3)];                                          intra_dc_threshold_table[BitstreamGetBits(bs, 3)];
621    
622                                    dec->top_field_first = 0;
623                                    dec->alternate_vertical_scan = 0;
624    
625                                  if (dec->interlacing) {                                  if (dec->interlacing) {
626                                          dec->top_field_first = BitstreamGetBit(bs);                                          dec->top_field_first = BitstreamGetBit(bs);
627                                          DPRINTF(DPRINTF_HEADER, "interlace top_field_first %i", dec->top_field_first);                                          DPRINTF(DPRINTF_HEADER, "interlace top_field_first %i", dec->top_field_first);
# Line 714  Line 717 
717          BitstreamPutBit(bs, 0);         // is_object_layer_identified (0=not given)          BitstreamPutBit(bs, 0);         // is_object_layer_identified (0=not given)
718          BitstreamPutBits(bs, 1, 4);     // aspect_ratio_info (1=1:1)          BitstreamPutBits(bs, 1, 4);     // aspect_ratio_info (1=1:1)
719    
 #ifdef BFRAMES  
         if (pParam->max_bframes > 0) {  
                 //DPRINTF("low_delay=1");  
720                  BitstreamPutBit(bs, 1); // vol_control_parameters                  BitstreamPutBit(bs, 1); // vol_control_parameters
721                  BitstreamPutBits(bs, 1, 2);     // chroma_format 1="4:2:0"                  BitstreamPutBits(bs, 1, 2);     // chroma_format 1="4:2:0"
722    
723    #ifdef BFRAMES
724            if (pParam->max_bframes > 0) {
725                  BitstreamPutBit(bs, 0); // low_delay                  BitstreamPutBit(bs, 0); // low_delay
                 BitstreamPutBit(bs, 0); // vbv_parameters (0=not given)  
726          } else          } else
727  #endif  #endif
728          {          {
729                  BitstreamPutBits(bs, 0, 1);     // vol_control_parameters (0=not given)                  BitstreamPutBit(bs, 1); // low_delay
730          }          }
731            BitstreamPutBit(bs, 0); // vbv_parameters (0=not given)
732    
733          BitstreamPutBits(bs, 0, 2);     // video_object_layer_shape (0=rectangular)          BitstreamPutBits(bs, 0, 2);     // video_object_layer_shape (0=rectangular)
734    
# Line 740  Line 742 
742  #ifdef BFRAMES  #ifdef BFRAMES
743          BitstreamPutBits(bs, pParam->fbase, 16);          BitstreamPutBits(bs, pParam->fbase, 16);
744  #else  #else
745          BitstreamPutBits(bs, 2, 16);          BitstreamPutBits(bs, pParam->fbase, 16);
746  #endif  #endif
747    
748          WRITE_MARKER();          WRITE_MARKER();
# Line 749  Line 751 
751          BitstreamPutBit(bs, 1);         // fixed_vop_rate = 1          BitstreamPutBit(bs, 1);         // fixed_vop_rate = 1
752          BitstreamPutBits(bs, pParam->fincr, log2bin(pParam->fbase));    // fixed_vop_time_increment          BitstreamPutBits(bs, pParam->fincr, log2bin(pParam->fbase));    // fixed_vop_time_increment
753  #else  #else
754          BitstreamPutBit(bs, 0);         // fixed_vop_rate = 0          BitstreamPutBit(bs, 1);         // fixed_vop_rate = 1
755            BitstreamPutBits(bs, pParam->fincr, log2bin(pParam->fbase));    // fixed_vop_time_increment
756  #endif  #endif
757    
758          WRITE_MARKER();          WRITE_MARKER();
# Line 800  Line 803 
803                                                  const FRAMEINFO * frame,                                                  const FRAMEINFO * frame,
804                                                  int vop_coded)                                                  int vop_coded)
805  {  {
 #ifdef BFRAMES  
806          uint32_t i;          uint32_t i;
807  #endif  
808          BitstreamPad(bs);          BitstreamPad(bs);
809          BitstreamPutBits(bs, VOP_START_CODE, 32);          BitstreamPutBits(bs, VOP_START_CODE, 32);
810    
811          BitstreamPutBits(bs, frame->coding_type, 2);          BitstreamPutBits(bs, frame->coding_type, 2);
812    
         // time_base = 0  write n x PutBit(1), PutBit(0)  
813  #ifdef BFRAMES  #ifdef BFRAMES
814          for (i = 0; i < frame->seconds; i++) {          for (i = 0; i < frame->seconds; i++) {
815                  BitstreamPutBit(bs, 1);                  BitstreamPutBit(bs, 1);
816          }          }
817          BitstreamPutBit(bs, 0);          BitstreamPutBit(bs, 0);
818  #else  #else
819          BitstreamPutBits(bs, 0, 1);          for (i = 0; i < frame->seconds; i++) {
820                    BitstreamPutBit(bs, 1);
821            }
822            BitstreamPutBit(bs, 0);
823    //      BitstreamPutBits(bs, 0, 1);
824  #endif  #endif
825    
826          WRITE_MARKER();          WRITE_MARKER();
# Line 827  Line 832 
832                          frame->coding_type == I_VOP ? 'I' : frame->coding_type ==                          frame->coding_type == I_VOP ? 'I' : frame->coding_type ==
833                          P_VOP ? 'P' : 'B');*/                          P_VOP ? 'P' : 'B');*/
834  #else  #else
835          BitstreamPutBits(bs, 1, 1);          BitstreamPutBits(bs, frame->ticks, log2bin(pParam->fbase));
836    //      BitstreamPutBits(bs, 1, 1);
837  #endif  #endif
838    
839          WRITE_MARKER();          WRITE_MARKER();
# Line 845  Line 851 
851          BitstreamPutBits(bs, 0, 3);     // intra_dc_vlc_threshold          BitstreamPutBits(bs, 0, 3);     // intra_dc_vlc_threshold
852    
853          if (frame->global_flags & XVID_INTERLACING) {          if (frame->global_flags & XVID_INTERLACING) {
854                  BitstreamPutBit(bs, 1); // top field first                  BitstreamPutBit(bs, (frame->global_flags & XVID_TOPFIELDFIRST));
855                  BitstreamPutBit(bs, 0); // alternate vertical scan                  BitstreamPutBit(bs, (frame->global_flags & XVID_ALTERNATESCAN));
856          }          }
857    
858          BitstreamPutBits(bs, frame->quant, 5);  // quantizer          BitstreamPutBits(bs, frame->quant, 5);  // quantizer

Legend:
Removed from v.333  
changed lines
  Added in v.557

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