diff --git a/libavcodec/vc1.c b/libavcodec/vc1.c index ce4e8acd9cb5f33bd4e98736b08a7da8b6792706..848c422f4330d6a817ca82cfeb2363947faf2997 100644 --- a/libavcodec/vc1.c +++ b/libavcodec/vc1.c @@ -2962,7 +2962,7 @@ static int vc1_decode_p_block(VC1Context *v, DCTELEM block[64], int n, int mquan if(ttblk == TT_8X4_TOP || ttblk == TT_8X4_BOTTOM) ttblk = TT_8X4; if(ttblk == TT_4X8_RIGHT || ttblk == TT_4X8_LEFT) ttblk = TT_4X8; } - scale = 2 * mquant + v->halfpq; + scale = 2 * mquant + ((v->pq == mquant) ? v->halfpq : 0); // convert transforms like 8X4_TOP to generic TT and SUBBLKPAT if(ttblk == TT_8X4_TOP || ttblk == TT_8X4_BOTTOM) {