450 |
|
|
451 |
READ_MARKER(); |
READ_MARKER(); |
452 |
|
|
|
//DPRINTF("time_inc_bits %i", dec->time_inc_bits); |
|
|
//DPRINTF("vop_time_incr %i", BitstreamShowBits(bs, dec->time_inc_bits)); |
|
453 |
if (dec->time_inc_bits) { |
if (dec->time_inc_bits) { |
|
//BitstreamSkip(bs, dec->time_inc_bits); // vop_time_increment |
|
454 |
time_increment = (BitstreamGetBits(bs, dec->time_inc_bits)); // vop_time_increment |
time_increment = (BitstreamGetBits(bs, dec->time_inc_bits)); // vop_time_increment |
455 |
} |
} |
456 |
|
|
457 |
|
/* |
458 |
|
DPRINTF("%c %i:%i", |
459 |
|
coding_type == I_VOP ? 'I' : coding_type == P_VOP ? 'P' : 'B', |
460 |
|
time_incr, time_increment); |
461 |
|
*/ |
462 |
|
|
463 |
if (coding_type != B_VOP) { |
if (coding_type != B_VOP) { |
464 |
dec->last_time_base = dec->time_base; |
dec->last_time_base = dec->time_base; |
465 |
dec->time_base += time_incr; |
dec->time_base += time_incr; |
480 |
|
|
481 |
if (!BitstreamGetBit(bs)) // vop_coded |
if (!BitstreamGetBit(bs)) // vop_coded |
482 |
{ |
{ |
483 |
|
//DPRINTF("**NOT CODED**"); |
484 |
return N_VOP; |
return N_VOP; |
485 |
} |
} |
486 |
|
|
652 |
|
|
653 |
WRITE_MARKER(); |
WRITE_MARKER(); |
654 |
|
|
655 |
// fixed_vop_rate |
#ifdef BFRAMES |
656 |
BitstreamPutBit(bs, 0); |
BitstreamPutBit(bs, 1); // fixed_vop_rate = 1 |
657 |
|
BitstreamPutBits(bs, pParam->fincr, log2bin(pParam->fbase)); // fixed_vop_time_increment |
658 |
// fixed_time_increment: value=nth_of_sec, nbits = log2(resolution) |
#else |
659 |
// BitstreamPutBits(bs, 0, 15); |
BitstreamPutBit(bs, 0); // fixed_vop_rate = 0 |
660 |
|
#endif |
661 |
|
|
662 |
WRITE_MARKER(); |
WRITE_MARKER(); |
663 |
BitstreamPutBits(bs, pParam->width, 13); // width |
BitstreamPutBits(bs, pParam->width, 13); // width |