component = (n <= 3 ? 0 : n - 4 + 1);
level = s->last_dc[component];
if (s->rv10_first_dc_coded[component]) {
- diff = rv_decode_dc(s, n);
+ diff = ff_rv_decode_dc(s, n);
if (diff == 0xffff)
return -1;
level += diff;
{
int v= show_bits(&s->gb, 16);
- if(get_bits_count(&s->gb) + 16 > s->gb.size_in_bits){
- v>>= get_bits_count(&s->gb) + 16 - s->gb.size_in_bits;
+ if (get_bits_left(&s->gb) < 16) {
+ v >>= 16 - get_bits_left(&s->gb);
}
if(v==0)
skip_bits(&s->gb, 2); /* Quantization information for B-pictures */
}
+ if (s->pict_type!=AV_PICTURE_TYPE_B) {
+ s->time = s->picture_number;
+ s->pp_time = s->time - s->last_non_b_time;
+ s->last_non_b_time = s->time;
+ }else{
+ s->time = s->picture_number;
+ s->pb_time = s->pp_time - (s->last_non_b_time - s->time);
+ if (s->pp_time <=s->pb_time ||
+ s->pp_time <= s->pp_time - s->pb_time ||
+ s->pp_time <= 0){
+ s->pp_time = 2;
+ s->pb_time = 1;
+ }
+ ff_mpeg4_init_direct_mv(s);
+ }
+
/* PEI */
while (get_bits1(&s->gb) != 0) {
skip_bits(&s->gb, 8);