summaryrefslogtreecommitdiffstats
path: root/media/libwebp/utils/quant_levels_dec_utils.c
diff options
context:
space:
mode:
authorwolfbeast <mcwerewolf@wolfbeast.com>2019-02-07 16:32:52 +0100
committerwolfbeast <mcwerewolf@wolfbeast.com>2019-02-07 16:32:52 +0100
commit0dca00b282fb06ec1512bccafd32e0a919242208 (patch)
tree1f443869475eb32a8a8babfdf68b74b6d4d601cb /media/libwebp/utils/quant_levels_dec_utils.c
parent76fe52eb81db323ceaa8396de39b76efbce1c25e (diff)
parent0b6d9a47051be9ef4d064c6f7c60717da91d0bc2 (diff)
downloadUXP-0dca00b282fb06ec1512bccafd32e0a919242208.tar
UXP-0dca00b282fb06ec1512bccafd32e0a919242208.tar.gz
UXP-0dca00b282fb06ec1512bccafd32e0a919242208.tar.lz
UXP-0dca00b282fb06ec1512bccafd32e0a919242208.tar.xz
UXP-0dca00b282fb06ec1512bccafd32e0a919242208.zip
Merge branch 'master' into Basilisk-release
Diffstat (limited to 'media/libwebp/utils/quant_levels_dec_utils.c')
-rw-r--r--media/libwebp/utils/quant_levels_dec_utils.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/media/libwebp/utils/quant_levels_dec_utils.c b/media/libwebp/utils/quant_levels_dec_utils.c
index 5c498382d..a60de3444 100644
--- a/media/libwebp/utils/quant_levels_dec_utils.c
+++ b/media/libwebp/utils/quant_levels_dec_utils.c
@@ -261,9 +261,15 @@ static void CleanupParams(SmoothParams* const p) {
int WebPDequantizeLevels(uint8_t* const data, int width, int height, int stride,
int strength) {
- const int radius = 4 * strength / 100;
+ int radius = 4 * strength / 100;
+
if (strength < 0 || strength > 100) return 0;
if (data == NULL || width <= 0 || height <= 0) return 0; // bad params
+
+ // limit the filter size to not exceed the image dimensions
+ if (2 * radius + 1 > width) radius = (width - 1) >> 1;
+ if (2 * radius + 1 > height) radius = (height - 1) >> 1;
+
if (radius > 0) {
SmoothParams p;
memset(&p, 0, sizeof(p));