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

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

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

revision 1466, Mon May 31 21:36:23 2004 UTC revision 1607, Sun Mar 27 03:59:42 2005 UTC
# Line 20  Line 20 
20   *  along with this program ; if not, write to the Free Software   *  along with this program ; if not, write to the Free Software
21   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA   *  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
22   *   *
23   * $Id: bitstream.c,v 1.44 2004-05-31 21:36:23 edgomez Exp $   * $Id: bitstream.c,v 1.49 2005-03-27 03:59:42 suxen_drol Exp $
24   *   *
25   ****************************************************************************/   ****************************************************************************/
26    
# Line 71  Line 71 
71                  matrix[scan_tables[0][i++]] = value;                  matrix[scan_tables[0][i++]] = value;
72          }          }
73          while (value != 0 && i < 64);          while (value != 0 && i < 64);
         i--;    /* fix little bug at coeff not full */  
74    
75            if (value != 0) return;
76    
77            i--;
78          while (i < 64) {          while (i < 64) {
79                  matrix[scan_tables[0][i++]] = last;                  matrix[scan_tables[0][i++]] = last;
80          }          }
# Line 379  Line 381 
381  BitstreamReadHeaders(Bitstream * bs,  BitstreamReadHeaders(Bitstream * bs,
382                                           DECODER * dec,                                           DECODER * dec,
383                                           uint32_t * rounding,                                           uint32_t * rounding,
                                          uint32_t * reduced_resolution,  
384                                           uint32_t * quant,                                           uint32_t * quant,
385                                           uint32_t * fcode_forward,                                           uint32_t * fcode_forward,
386                                           uint32_t * fcode_backward,                                           uint32_t * fcode_backward,
# Line 393  Line 394 
394          int32_t time_increment = 0;          int32_t time_increment = 0;
395          int resize = 0;          int resize = 0;
396    
397          do {          while ((BitstreamPos(bs) >> 3) + 4 <= bs->length) {
398    
399                  BitstreamByteAlign(bs);                  BitstreamByteAlign(bs);
400                  start_code = BitstreamShowBits(bs, 32);                  start_code = BitstreamShowBits(bs, 32);
# Line 860  Line 861 
861                                  dec->shape == VIDOBJLAY_SHAPE_RECTANGULAR &&                                  dec->shape == VIDOBJLAY_SHAPE_RECTANGULAR &&
862                                  (coding_type == P_VOP || coding_type == I_VOP)) {                                  (coding_type == P_VOP || coding_type == I_VOP)) {
863    
864                                  *reduced_resolution = BitstreamGetBit(bs);                                  if (BitstreamGetBit(bs));
865                                  DPRINTF(XVID_DEBUG_HEADER, "reduced_resolution %i\n", *reduced_resolution);                                          DPRINTF(XVID_DEBUG_ERROR, "RRV not supported (anymore)\n");
                         }  
                         else  
                         {  
                                 *reduced_resolution = 0;  
866                          }                          }
867    
868                          if (dec->shape != VIDOBJLAY_SHAPE_RECTANGULAR) {                          if (dec->shape != VIDOBJLAY_SHAPE_RECTANGULAR) {
# Line 990  Line 987 
987    
988                          BitstreamSkip(bs, 32);  /* user_data_start_code */                          BitstreamSkip(bs, 32);  /* user_data_start_code */
989    
990                            memset(tmp, 0, 256);
991                          tmp[0] = BitstreamShowBits(bs, 8);                          tmp[0] = BitstreamShowBits(bs, 8);
992    
993                          for(i = 1; i < 256; i++){                          for(i = 1; i < 256; i++){
# Line 1035  Line 1033 
1033                          BitstreamSkip(bs, 8);                          BitstreamSkip(bs, 8);
1034                  }                  }
1035          }          }
         while ((BitstreamPos(bs) >> 3) < bs->length);  
1036    
1037  #if 0  #if 0
1038          DPRINTF("*** WARNING: no vop_start_code found");          DPRINTF("*** WARNING: no vop_start_code found");
# Line 1254  Line 1251 
1251    
1252          BitstreamPadAlways(bs); /* next_start_code(); */          BitstreamPadAlways(bs); /* next_start_code(); */
1253    
1254          /* fake divx5 id, to ensure compatibility with divx5 decoder */          /* divx5 userdata string */
1255  #define DIVX5_ID "DivX999b000p"  #define DIVX5_ID "DivX503b1393"
1256          if (pParam->max_bframes > 0 && (pParam->global_flags & XVID_GLOBAL_PACKED)) {    if ((pParam->global_flags & XVID_GLOBAL_DIVX5_USERDATA)) {
1257                  BitstreamWriteUserData(bs, DIVX5_ID, strlen(DIVX5_ID));                  BitstreamWriteUserData(bs, DIVX5_ID, strlen(DIVX5_ID));
1258            if (pParam->max_bframes > 0 && (pParam->global_flags & XVID_GLOBAL_PACKED))
1259          BitstreamPutBits(bs, 'p', 8);
1260          }          }
1261    
1262          /* xvid id */          /* xvid id */
# Line 1340  Line 1339 
1339                  BitstreamPutBits(bs, frame->rounding_type, 1);                  BitstreamPutBits(bs, frame->rounding_type, 1);
1340    
1341          if ((frame->vol_flags & XVID_VOL_REDUCED_ENABLE))          if ((frame->vol_flags & XVID_VOL_REDUCED_ENABLE))
1342                  BitstreamPutBit(bs, (frame->vop_flags & XVID_VOP_REDUCED)?1:0);                  BitstreamPutBit(bs, 0);
1343    
1344          BitstreamPutBits(bs, 0, 3);     /* intra_dc_vlc_threshold */          BitstreamPutBits(bs, 0, 3);     /* intra_dc_vlc_threshold */
1345    

Legend:
Removed from v.1466  
changed lines
  Added in v.1607

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