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, |
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); |
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) { |
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"); |
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 */ |
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 |
|
|