lavc/vvc: Avoid overflow in coeff scale intermediate

Make intermediate result 64-bits to avoid an overflow before the right
shift.

Signed-off-by: Frank Plowman <post@frankplowman.com>
This commit is contained in:
Frank Plowman 2024-04-09 07:55:52 +00:00 committed by Nuo Mi
parent fcf74c5ebc
commit 2b7e79e890

View File

@ -416,7 +416,7 @@ static const uint8_t* derive_scale_m(const VVCLocalContext *lc, const TransformB
static av_always_inline int scale_coeff(const TransformBlock *tb, int coeff,
const int scale, const int scale_m, const int log2_transform_range)
{
coeff = (coeff * scale * scale_m + tb->bd_offset) >> tb->bd_shift;
coeff = ((int64_t) coeff * scale * scale_m + tb->bd_offset) >> tb->bd_shift;
coeff = av_clip_intp2(coeff, log2_transform_range);
return coeff;
}