[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.39.2.22, Wed Dec 3 19:46:50 2003 UTC revision 1.43, Fri May 21 14:40:15 2004 UTC
# Line 1016  Line 1016 
1016    
1017                          /* read xvid bitstream version */                          /* read xvid bitstream version */
1018                          if(strncmp(tmp, "XviD", 4) == 0) {                          if(strncmp(tmp, "XviD", 4) == 0) {
1019                                    if (tmp[strlen(tmp)-1] == 'C') {
1020                                            sscanf(tmp, "XviD%dC", &dec->bs_version);
1021                                            dec->cartoon_mode = 1;
1022                                    }
1023                                    else
1024                                  sscanf(tmp, "XviD%d", &dec->bs_version);                                  sscanf(tmp, "XviD%d", &dec->bs_version);
1025    
1026                                  DPRINTF(XVID_DEBUG_HEADER, "xvid bitstream version=%i", dec->bs_version);                                  DPRINTF(XVID_DEBUG_HEADER, "xvid bitstream version=%i", dec->bs_version);
1027                          }                          }
1028    
# Line 1075  Line 1081 
1081  */  */
1082  void  void
1083  BitstreamWriteVolHeader(Bitstream * const bs,  BitstreamWriteVolHeader(Bitstream * const bs,
1084                                                  const MBParam * pParam)                                                  const MBParam * pParam,
1085                                                    const FRAMEINFO * const frame)
1086  {  {
1087          static const unsigned int vo_id = 0;          static const unsigned int vo_id = 0;
1088          static const unsigned int vol_id = 0;          static const unsigned int vol_id = 0;
# Line 1190  Line 1197 
1197    
1198      if (pParam->fincr>0) {      if (pParam->fincr>0) {
1199              BitstreamPutBit(bs, 1);             /* fixed_vop_rate = 1 */              BitstreamPutBit(bs, 1);             /* fixed_vop_rate = 1 */
1200              BitstreamPutBits(bs, pParam->fincr, log2bin(pParam->fbase-1));      /* fixed_vop_time_increment */                  BitstreamPutBits(bs, pParam->fincr, MAX(log2bin(pParam->fbase-1),1));   /* fixed_vop_time_increment */
1201      }else{      }else{
1202          BitstreamPutBit(bs, 0);         /* fixed_vop_rate = 0 */          BitstreamPutBit(bs, 0);         /* fixed_vop_rate = 0 */
1203      }      }
# Line 1259  Line 1266 
1266          BitstreamPadAlways(bs); /* next_start_code(); */          BitstreamPadAlways(bs); /* next_start_code(); */
1267    
1268          /* fake divx5 id, to ensure compatibility with divx5 decoder */          /* fake divx5 id, to ensure compatibility with divx5 decoder */
1269  #define DIVX5_ID "DivX000b000p"  #define DIVX5_ID "DivX999b000p"
1270          if (pParam->max_bframes > 0 && (pParam->global_flags & XVID_GLOBAL_PACKED)) {          if (pParam->max_bframes > 0 && (pParam->global_flags & XVID_GLOBAL_PACKED)) {
1271                  BitstreamWriteUserData(bs, DIVX5_ID, strlen(DIVX5_ID));                  BitstreamWriteUserData(bs, DIVX5_ID, strlen(DIVX5_ID));
1272          }          }
1273    
1274          /* xvid id */          /* xvid id */
1275  #define XVID_ID "XviD" XVID_BS_VERSION          {
1276          BitstreamWriteUserData(bs, XVID_ID, strlen(XVID_ID));                  const char xvid_user_format[] = "XviD%04d%c";
1277                    char xvid_user_data[100];
1278                    sprintf(xvid_user_data,
1279                                    xvid_user_format,
1280                                    XVID_BS_VERSION,
1281                                    (frame->vop_flags & XVID_VOP_CARTOON)?'C':'\0');
1282                    BitstreamWriteUserData(bs, xvid_user_data, strlen(xvid_user_data));
1283            }
1284  }  }
1285    
1286    
# Line 1307  Line 1321 
1321          WRITE_MARKER();          WRITE_MARKER();
1322    
1323          /* time_increment: value=nth_of_sec, nbits = log2(resolution) */          /* time_increment: value=nth_of_sec, nbits = log2(resolution) */
1324            BitstreamPutBits(bs, frame->ticks, MAX(log2bin(pParam->fbase-1), 1));
         BitstreamPutBits(bs, frame->ticks, log2bin(pParam->fbase-1));  
1325  #if 0  #if 0
1326          DPRINTF("[%i:%i] %c",          DPRINTF("[%i:%i] %c",
1327                          frame->seconds, frame->ticks,                          frame->seconds, frame->ticks,

Legend:
Removed from v.1.39.2.22  
changed lines
  Added in v.1.43

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