diff --git a/libavfilter/vf_unsharp.c b/libavfilter/vf_unsharp.c index 71d40447c0..57eccc76d7 100644 --- a/libavfilter/vf_unsharp.c +++ b/libavfilter/vf_unsharp.c @@ -157,9 +157,9 @@ static int name##_##nbits(AVFilterContext *ctx, void *arg, int jobnr, int nb_job const uint##nbits##_t *srx = src - steps_y * src_stride + x - steps_x; \ uint##nbits##_t *dsx = dst - steps_y * dst_stride + x - steps_x; \ \ - res = (int32_t)*srx + ((((int32_t) * srx - \ - (int32_t)((tmp1 + halfscale) >> scalebits)) * amount) >> (8+nbits)); \ - *dsx = av_clip_uint##nbits(res); \ + res = (int32_t)*srx + (int32_t)(((int64_t)((int32_t)*srx - \ + (int32_t)((tmp1 + halfscale) >> scalebits)) * amount) >> 16); \ + *dsx = av_clip_uintp2(res, s->bitdepth); \ } \ } \ if (y >= 0) { \ diff --git a/tests/ref/fate/filter-unsharp-yuv420p10 b/tests/ref/fate/filter-unsharp-yuv420p10 index 302becaa34..d4608558c3 100644 --- a/tests/ref/fate/filter-unsharp-yuv420p10 +++ b/tests/ref/fate/filter-unsharp-yuv420p10 @@ -3,23 +3,23 @@ #codec_id 0: rawvideo #dimensions 0: 320x240 #sar 0: 1/1 -0, 0, 0, 1, 230400, 0x5166b2b0 -0, 1, 1, 1, 230400, 0x1fcc8e0e -0, 2, 2, 1, 230400, 0xce04db47 -0, 3, 3, 1, 230400, 0xc25661af -0, 4, 4, 1, 230400, 0x727f06aa -0, 5, 5, 1, 230400, 0x2e0f9cc5 -0, 6, 6, 1, 230400, 0x407fb93b -0, 7, 7, 1, 230400, 0xc19c2087 -0, 8, 8, 1, 230400, 0xacacb223 -0, 9, 9, 1, 230400, 0x1277e355 -0, 10, 10, 1, 230400, 0xcd36c65d -0, 11, 11, 1, 230400, 0x6c530182 -0, 12, 12, 1, 230400, 0x803b2da3 -0, 13, 13, 1, 230400, 0x82638dc2 -0, 14, 14, 1, 230400, 0x2064904b -0, 15, 15, 1, 230400, 0xce3a7092 -0, 16, 16, 1, 230400, 0x374abb39 -0, 17, 17, 1, 230400, 0xf8b37d16 -0, 18, 18, 1, 230400, 0xb3d1c642 -0, 19, 19, 1, 230400, 0xc9b392d1 +0, 0, 0, 1, 230400, 0xccb5ffac +0, 1, 1, 1, 230400, 0x6aed4ef7 +0, 2, 2, 1, 230400, 0xc7bc3502 +0, 3, 3, 1, 230400, 0x2a7b9fa5 +0, 4, 4, 1, 230400, 0x29cf1fe7 +0, 5, 5, 1, 230400, 0x1b457849 +0, 6, 6, 1, 230400, 0x42fd4a9e +0, 7, 7, 1, 230400, 0xccec0881 +0, 8, 8, 1, 230400, 0x9b6cca80 +0, 9, 9, 1, 230400, 0xee3d5ff1 +0, 10, 10, 1, 230400, 0x794d9319 +0, 11, 11, 1, 230400, 0x5196b793 +0, 12, 12, 1, 230400, 0x239d7933 +0, 13, 13, 1, 230400, 0x02ea92ee +0, 14, 14, 1, 230400, 0x111b2c9b +0, 15, 15, 1, 230400, 0x5fbf8810 +0, 16, 16, 1, 230400, 0x96afa114 +0, 17, 17, 1, 230400, 0x3b587382 +0, 18, 18, 1, 230400, 0xb6aa9d42 +0, 19, 19, 1, 230400, 0xd463c17e