[cvs] / xvidcore / src / bitstream / bitstream.c Repository:
ViewVC logotype

Diff of /xvidcore/src/bitstream/bitstream.c

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

revision 1.26, Wed Jul 24 00:49:16 2002 UTC revision 1.28.2.1, Thu Sep 26 01:54:54 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    
# Line 815  Line 817 
817          }          }
818          BitstreamPutBit(bs, 0);          BitstreamPutBit(bs, 0);
819  #else  #else
820          BitstreamPutBits(bs, 0, 1);          for (i = 0; i < frame->seconds; i++) {
821                    BitstreamPutBit(bs, 1);
822            }
823            BitstreamPutBit(bs, 0);
824    //      BitstreamPutBits(bs, 0, 1);
825  #endif  #endif
826    
827          WRITE_MARKER();          WRITE_MARKER();
# Line 827  Line 833 
833                          frame->coding_type == I_VOP ? 'I' : frame->coding_type ==                          frame->coding_type == I_VOP ? 'I' : frame->coding_type ==
834                          P_VOP ? 'P' : 'B');*/                          P_VOP ? 'P' : 'B');*/
835  #else  #else
836          BitstreamPutBits(bs, 1, 1);          BitstreamPutBits(bs, frame->ticks, log2bin(pParam->fbase));
837    //      BitstreamPutBits(bs, 1, 1);
838  #endif  #endif
839    
840          WRITE_MARKER();          WRITE_MARKER();
# Line 845  Line 852 
852          BitstreamPutBits(bs, 0, 3);     // intra_dc_vlc_threshold          BitstreamPutBits(bs, 0, 3);     // intra_dc_vlc_threshold
853    
854          if (frame->global_flags & XVID_INTERLACING) {          if (frame->global_flags & XVID_INTERLACING) {
855                  BitstreamPutBit(bs, 1); // top field first                  BitstreamPutBit(bs, (frame->global_flags & XVID_TOPFIELDFIRST));
856                  BitstreamPutBit(bs, 0); // alternate vertical scan                  BitstreamPutBit(bs, (frame->global_flags & XVID_ALTERNATESCAN));
857          }          }
858    
859          BitstreamPutBits(bs, frame->quant, 5);  // quantizer          BitstreamPutBits(bs, frame->quant, 5);  // quantizer

Legend:
Removed from v.1.26  
changed lines
  Added in v.1.28.2.1

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