[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

revision 694, Sun Dec 8 05:36:20 2002 UTC revision 733, Fri Dec 20 05:12:02 2002 UTC
# Line 67  Line 67 
67    
68    
69  #include <string.h>  #include <string.h>
70    #include <stdio.h>
71    
72  #include "bitstream.h"  #include "bitstream.h"
73  #include "zigzag.h"  #include "zigzag.h"
74  #include "../quant/quant_matrix.h"  #include "../quant/quant_matrix.h"
# Line 77  Line 79 
79  log2bin(uint32_t value)  log2bin(uint32_t value)
80  {  {
81  /* Changed by Chenm001 */  /* Changed by Chenm001 */
82  #ifndef WIN32  #if !defined(_MSC_VER)
83          int n = 0;          int n = 0;
84    
85          while (value) {          while (value) {
# Line 171  Line 173 
173    
174          if (dec->shape != VIDOBJLAY_SHAPE_BINARY_ONLY)          if (dec->shape != VIDOBJLAY_SHAPE_BINARY_ONLY)
175          {          {
176                  *quant = BitstreamGetBits(bs, 5);       /* quant_scale */                  *quant = BitstreamGetBits(bs, dec->quant_bits); /* quant_scale */
177                  DPRINTF(DPRINTF_HEADER, "quant %i", *quant);                  DPRINTF(DPRINTF_HEADER, "quant %i", *quant);
178          }          }
179    
# Line 324  Line 326 
326  {  {
327          ESTIMATION * e = &dec->estimation;          ESTIMATION * e = &dec->estimation;
328    
329          if (e->method == 0)          if (e->method == 0 || e->method == 1)
330          {          {
331                  if (coding_type == I_VOP) {                  if (coding_type == I_VOP) {
332                          if (e->opaque)          BitstreamSkip(bs, 8);   /* dcecs_opaque */                          if (e->opaque)          BitstreamSkip(bs, 8);   /* dcecs_opaque */
# Line 568  Line 570 
570                                          BitstreamSkip(bs, 15);  // latter_half_vbv_occupancy                                          BitstreamSkip(bs, 15);  // latter_half_vbv_occupancy
571                                          READ_MARKER();                                          READ_MARKER();
572                                  }                                  }
573                            }else{
574                                    dec->low_delay = dec->low_delay_default;
575                          }                          }
576    
577                          dec->shape = BitstreamGetBits(bs, 2);   // video_object_layer_shape                          dec->shape = BitstreamGetBits(bs, 2);   // video_object_layer_shape
# Line 872  Line 876 
876                                  dec->time_bp = (uint32_t)                                  dec->time_bp = (uint32_t)
877                                          (dec->time_inc_resolution + dec->last_non_b_time - dec->time)%dec->time_inc_resolution;                                          (dec->time_inc_resolution + dec->last_non_b_time - dec->time)%dec->time_inc_resolution;
878                          }                          }
879                            DPRINTF(DPRINTF_HEADER,"time_pp=%i", dec->time_pp);
880                            DPRINTF(DPRINTF_HEADER,"time_bp=%i", dec->time_bp);
881    
882                          READ_MARKER();                          READ_MARKER();
883    
# Line 1034  Line 1040 
1040    
1041                  } else if (start_code == USERDATA_START_CODE) {                  } else if (start_code == USERDATA_START_CODE) {
1042                          char tmp[256];                          char tmp[256];
1043                      int i, version, build, packed;                      int i, version, build;
1044                            char packed;
1045    
1046                          BitstreamSkip(bs, 32);  // user_data_start_code                          BitstreamSkip(bs, 32);  // user_data_start_code
1047    
# Line 1107  Line 1114 
1114                                                  const MBParam * pParam,                                                  const MBParam * pParam,
1115                                                  const FRAMEINFO * const frame)                                                  const FRAMEINFO * const frame)
1116  {  {
1117            static const unsigned int vo_id = 0;
1118            static const unsigned int vol_id = 0;
1119          int vol_ver_id=1;          int vol_ver_id=1;
1120    
1121          if ( (pParam->m_quarterpel) || (frame->global_flags & XVID_GMC) )          if ( pParam->m_quarterpel ||  (frame->global_flags & XVID_GMC) ||
1122                     (pParam->global & XVID_GLOBAL_REDUCED))
1123                  vol_ver_id = 2;                  vol_ver_id = 2;
1124    
1125          // video object_start_code & vo_id          // video object_start_code & vo_id
1126          BitstreamPad(bs);          BitstreamPad(bs);
1127          BitstreamPutBits(bs, VO_START_CODE, 27);          BitstreamPutBits(bs, VIDOBJ_START_CODE|(vo_id&0x5), 32);
         BitstreamPutBits(bs, 0, 5);  
1128    
1129          // video_object_layer_start_code & vol_id          // video_object_layer_start_code & vol_id
1130          BitstreamPutBits(bs, VOL_START_CODE, 28);          BitstreamPutBits(bs, VIDOBJLAY_START_CODE|(vol_id&0x4), 32);
         BitstreamPutBits(bs, 0, 4);  
1131    
1132          BitstreamPutBit(bs, 0);         // random_accessible_vol          BitstreamPutBit(bs, 0);         // random_accessible_vol
1133          BitstreamPutBits(bs, 0, 8);     // video_object_type_indication          BitstreamPutBits(bs, 0, 8);     // video_object_type_indication
# Line 1221  Line 1229 
1229          if (vol_ver_id != 1)          if (vol_ver_id != 1)
1230          {          {
1231                  BitstreamPutBit(bs, 0);         // newpred_enable                  BitstreamPutBit(bs, 0);         // newpred_enable
1232                  BitstreamPutBit(bs, 0);         // reduced_resolution_vop_enabled  
1233                    BitstreamPutBit(bs, (pParam->global & XVID_GLOBAL_REDUCED)?1:0);
1234                                                                            /* reduced_resolution_vop_enabled */
1235          }          }
1236    
1237          BitstreamPutBit(bs, 0);         // scalability          BitstreamPutBit(bs, 0);         // scalability
# Line 1233  Line 1243 
1243    write vop header    write vop header
1244  */  */
1245  void  void
1246  BitstreamWriteVopHeader(Bitstream * const bs,  BitstreamWriteVopHeader(
1247                                                    Bitstream * const bs,
1248                                                  const MBParam * pParam,                                                  const MBParam * pParam,
1249                                                  const FRAMEINFO * const frame,                                                  const FRAMEINFO * const frame,
1250                                                  int vop_coded)                                                  int vop_coded)
# Line 1272  Line 1283 
1283          if ( (frame->coding_type == P_VOP) || (frame->coding_type == S_VOP) )          if ( (frame->coding_type == P_VOP) || (frame->coding_type == S_VOP) )
1284                  BitstreamPutBits(bs, frame->rounding_type, 1);                  BitstreamPutBits(bs, frame->rounding_type, 1);
1285    
1286            if ((pParam->global & XVID_GLOBAL_REDUCED))
1287                    BitstreamPutBit(bs, (frame->global_flags & XVID_REDUCED)?1:0);
1288    
1289          BitstreamPutBits(bs, 0, 3);     // intra_dc_vlc_threshold          BitstreamPutBits(bs, 0, 3);     // intra_dc_vlc_threshold
1290    
1291          if (frame->global_flags & XVID_INTERLACING) {          if (frame->global_flags & XVID_INTERLACING) {

Legend:
Removed from v.694  
changed lines
  Added in v.733

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