mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-12-25 00:32:31 +00:00
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: Luca Barbato <lu_zero@gentoo.org>
This commit is contained in:
parent
63ccd46687
commit
4f3667ba59
@ -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)
|
|||||||
|
|
||||||
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)
|
|||||||
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)
|
|||||||
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 @@
|
|||||||
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
|
||||||
|
Loading…
Reference in New Issue
Block a user