From c0402e1e30c2318359af1bce1d652f4616b21566 Mon Sep 17 00:00:00 2001 From: Jerome Borsboom <jerome.borsboom@carpalis.nl> Date: Fri, 18 May 2018 17:06:23 +0200 Subject: [PATCH] avcodec/vc1: fix mquant calculation for interlace field pictures For interlace field pictures s->mb_height indicates the height of the full picture in MBs, i.e. the two fields combined. A single field is half this size. When calculating mquant for interlace field pictures, the bottom edge is the last MB row of the field. Signed-off-by: Jerome Borsboom <jerome.borsboom@carpalis.nl> --- libavcodec/vc1_block.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/libavcodec/vc1_block.c b/libavcodec/vc1_block.c index 2d76da293b3..21ab1081697 100644 --- a/libavcodec/vc1_block.c +++ b/libavcodec/vc1_block.c @@ -181,7 +181,8 @@ static void vc1_put_signed_blocks_clamped(VC1Context *v) mquant = -v->altpq; \ if ((edges&4) && s->mb_x == (s->mb_width - 1)) \ mquant = -v->altpq; \ - if ((edges&8) && s->mb_y == (s->mb_height - 1)) \ + if ((edges&8) && \ + s->mb_y == ((s->mb_height >> v->field_mode) - 1)) \ mquant = -v->altpq; \ if (!mquant || mquant > 31) { \ av_log(v->s.avctx, AV_LOG_ERROR, \ -- GitLab