Commit 4f3667ba authored by Luca Barbato's avatar Luca Barbato

vc1: mark with ER_MB_ERROR bits overconsumption

This patch is a generalization of what Michael Niedermayer
fixed in a single case.

The wmv8-drm fate test had been updated accordingly.
Signed-off-by: 's avatarLuca Barbato <lu_zero@gentoo.org>
parent 63ccd466
...@@ -4548,7 +4548,7 @@ static void vc1_decode_i_blocks(VC1Context *v) ...@@ -4548,7 +4548,7 @@ static void vc1_decode_i_blocks(VC1Context *v)
if (v->s.loop_filter) vc1_loop_filter_iblk(v, v->pq); if (v->s.loop_filter) vc1_loop_filter_iblk(v, v->pq);
if (get_bits_count(&s->gb) > v->bits) { if (get_bits_count(&s->gb) > v->bits) {
ff_er_add_slice(s, 0, 0, s->mb_x, s->mb_y, ER_MB_END); ff_er_add_slice(s, 0, 0, s->mb_x, s->mb_y, ER_MB_ERROR);
av_log(s->avctx, AV_LOG_ERROR, "Bits overconsumption: %i > %i\n", av_log(s->avctx, AV_LOG_ERROR, "Bits overconsumption: %i > %i\n",
get_bits_count(&s->gb), v->bits); get_bits_count(&s->gb), v->bits);
return; return;
...@@ -4673,7 +4673,7 @@ static void vc1_decode_i_blocks_adv(VC1Context *v) ...@@ -4673,7 +4673,7 @@ static void vc1_decode_i_blocks_adv(VC1Context *v)
if (get_bits_count(&s->gb) > v->bits) { if (get_bits_count(&s->gb) > v->bits) {
// TODO: may need modification to handle slice coding // TODO: may need modification to handle slice coding
ff_er_add_slice(s, 0, s->start_mb_y, s->mb_x, s->mb_y, ER_MB_END); ff_er_add_slice(s, 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", av_log(s->avctx, AV_LOG_ERROR, "Bits overconsumption: %i > %i\n",
get_bits_count(&s->gb), v->bits); get_bits_count(&s->gb), v->bits);
return; return;
...@@ -4749,7 +4749,7 @@ static void vc1_decode_p_blocks(VC1Context *v) ...@@ -4749,7 +4749,7 @@ static void vc1_decode_p_blocks(VC1Context *v)
vc1_apply_p_loop_filter(v); vc1_apply_p_loop_filter(v);
if (get_bits_count(&s->gb) > v->bits || get_bits_count(&s->gb) < 0) { if (get_bits_count(&s->gb) > v->bits || get_bits_count(&s->gb) < 0) {
// TODO: may need modification to handle slice coding // TODO: may need modification to handle slice coding
ff_er_add_slice(s, 0, s->start_mb_y, s->mb_x, s->mb_y, ER_MB_END); ff_er_add_slice(s, 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", 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), v->bits, s->mb_x, s->mb_y);
return; return;
...@@ -4818,7 +4818,7 @@ static void vc1_decode_b_blocks(VC1Context *v) ...@@ -4818,7 +4818,7 @@ static void vc1_decode_b_blocks(VC1Context *v)
vc1_decode_b_mb(v); vc1_decode_b_mb(v);
if (get_bits_count(&s->gb) > v->bits || get_bits_count(&s->gb) < 0) { if (get_bits_count(&s->gb) > v->bits || get_bits_count(&s->gb) < 0) {
// TODO: may need modification to handle slice coding // TODO: may need modification to handle slice coding
ff_er_add_slice(s, 0, s->start_mb_y, s->mb_x, s->mb_y, ER_MB_END); ff_er_add_slice(s, 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", 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), v->bits, s->mb_x, s->mb_y);
return; return;
......
...@@ -127,4 +127,4 @@ ...@@ -127,4 +127,4 @@
0, 472500, 84480, 0x13962590 0, 472500, 84480, 0x13962590
0, 476250, 84480, 0xde79482f 0, 476250, 84480, 0xde79482f
0, 480000, 84480, 0x7d1ca064 0, 480000, 84480, 0x7d1ca064
0, 483750, 84480, 0x7e1de54e 0, 483750, 84480, 0x2676a064
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment