From: Jerome Borsboom Date: Fri, 18 May 2018 15:06:23 +0000 (+0200) Subject: avcodec/vc1: fix mquant calculation for interlace field pictures X-Git-Url: https://git.sesse.net/?a=commitdiff_plain;h=c0402e1e30c2318359af1bce1d652f4616b21566;p=ffmpeg 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 --- 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, \