aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFrank Plowman <post@frankplowman.com>2024-04-09 07:55:52 +0000
committerNuo Mi <nuomi2021@gmail.com>2024-04-09 22:30:35 +0800
commit2b7e79e8905bc9dc0ee9c9a9e313f38c31de4b0a (patch)
tree517c953f8ae74d97d07ab7bc0a5bfa814f8870a4
parentfcf74c5ebc520a53758eb410003fc8e814873053 (diff)
downloadffmpeg-2b7e79e8905bc9dc0ee9c9a9e313f38c31de4b0a.tar.gz
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>
-rw-r--r--libavcodec/vvc/intra.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/libavcodec/vvc/intra.c b/libavcodec/vvc/intra.c
index e515fb9710..5ac7d02c80 100644
--- a/libavcodec/vvc/intra.c
+++ b/libavcodec/vvc/intra.c
@@ -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;
}