|
|
|
@ -2632,10 +2632,10 @@ static void vc1_decode_i_blocks(VC1Context *v) |
|
|
|
|
if (v->s.loop_filter) |
|
|
|
|
ff_vc1_i_loop_filter(v); |
|
|
|
|
|
|
|
|
|
if (get_bits_count(&s->gb) > v->bits) { |
|
|
|
|
if (get_bits_left(&s->gb) < 0) { |
|
|
|
|
ff_er_add_slice(&s->er, 0, 0, s->mb_x, s->mb_y, ER_MB_ERROR); |
|
|
|
|
av_log(s->avctx, AV_LOG_ERROR, "Bits overconsumption: %i > %i\n", |
|
|
|
|
get_bits_count(&s->gb), v->bits); |
|
|
|
|
get_bits_count(&s->gb), s->gb.size_in_bits); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -2778,11 +2778,11 @@ static int vc1_decode_i_blocks_adv(VC1Context *v) |
|
|
|
|
if (v->s.loop_filter) |
|
|
|
|
ff_vc1_i_loop_filter(v); |
|
|
|
|
|
|
|
|
|
if (get_bits_count(&s->gb) > v->bits) { |
|
|
|
|
if (get_bits_left(&s->gb) < 0) { |
|
|
|
|
// TODO: may need modification to handle slice coding
|
|
|
|
|
ff_er_add_slice(&s->er, 0, s->start_mb_y, s->mb_x, s->mb_y, ER_MB_ERROR); |
|
|
|
|
av_log(s->avctx, AV_LOG_ERROR, "Bits overconsumption: %i > %i\n", |
|
|
|
|
get_bits_count(&s->gb), v->bits); |
|
|
|
|
get_bits_count(&s->gb), s->gb.size_in_bits); |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
inc_blk_idx(v->topleft_blk_idx); |
|
|
|
@ -2862,11 +2862,11 @@ static void vc1_decode_p_blocks(VC1Context *v) |
|
|
|
|
if (apply_loop_filter) |
|
|
|
|
ff_vc1_p_loop_filter(v); |
|
|
|
|
} |
|
|
|
|
if (get_bits_count(&s->gb) > v->bits || get_bits_count(&s->gb) < 0) { |
|
|
|
|
if (get_bits_left(&s->gb) < 0 || get_bits_count(&s->gb) < 0) { |
|
|
|
|
// TODO: may need modification to handle slice coding
|
|
|
|
|
ff_er_add_slice(&s->er, 0, s->start_mb_y, s->mb_x, s->mb_y, ER_MB_ERROR); |
|
|
|
|
av_log(s->avctx, AV_LOG_ERROR, "Bits overconsumption: %i > %i at %ix%i\n", |
|
|
|
|
get_bits_count(&s->gb), v->bits, s->mb_x, s->mb_y); |
|
|
|
|
get_bits_count(&s->gb), s->gb.size_in_bits, s->mb_x, s->mb_y); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
inc_blk_idx(v->topleft_blk_idx); |
|
|
|
@ -2951,11 +2951,11 @@ static void vc1_decode_b_blocks(VC1Context *v) |
|
|
|
|
if (v->s.loop_filter) |
|
|
|
|
ff_vc1_i_loop_filter(v); |
|
|
|
|
} |
|
|
|
|
if (get_bits_count(&s->gb) > v->bits || get_bits_count(&s->gb) < 0) { |
|
|
|
|
if (get_bits_left(&s->gb) < 0 || get_bits_count(&s->gb) < 0) { |
|
|
|
|
// TODO: may need modification to handle slice coding
|
|
|
|
|
ff_er_add_slice(&s->er, 0, s->start_mb_y, s->mb_x, s->mb_y, ER_MB_ERROR); |
|
|
|
|
av_log(s->avctx, AV_LOG_ERROR, "Bits overconsumption: %i > %i at %ix%i\n", |
|
|
|
|
get_bits_count(&s->gb), v->bits, s->mb_x, s->mb_y); |
|
|
|
|
get_bits_count(&s->gb), s->gb.size_in_bits, s->mb_x, s->mb_y); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|