diff options
author | volzhs <volzhs@gmail.com> | 2018-12-10 22:33:51 +0900 |
---|---|---|
committer | volzhs <volzhs@gmail.com> | 2018-12-10 22:34:39 +0900 |
commit | d4133ac8440321f2ae2e26fb317871bd847b35eb (patch) | |
tree | ce05e8c433f4987765633f6170c253c0e56820b1 /thirdparty/libwebp/src/utils/quant_levels_dec_utils.c | |
parent | bf59b73250b0d8e0edf191104246da50bdf16541 (diff) |
Update libwebp to 1.0.1
Diffstat (limited to 'thirdparty/libwebp/src/utils/quant_levels_dec_utils.c')
-rw-r--r-- | thirdparty/libwebp/src/utils/quant_levels_dec_utils.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/thirdparty/libwebp/src/utils/quant_levels_dec_utils.c b/thirdparty/libwebp/src/utils/quant_levels_dec_utils.c index 3818a78b93..f65b6cdbb6 100644 --- a/thirdparty/libwebp/src/utils/quant_levels_dec_utils.c +++ b/thirdparty/libwebp/src/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)); |