From bdf01a9609e49ff602b38826420252356d98ba2a Mon Sep 17 00:00:00 2001 From: Paul B Mahol Date: Sun, 1 May 2022 19:57:44 +0200 Subject: [PATCH] avfilter/vf_overlay: improve premultiplied alpha overlay for YUV --- libavfilter/vf_overlay.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/libavfilter/vf_overlay.c b/libavfilter/vf_overlay.c index 685b6069a6..f560d54dae 100644 --- a/libavfilter/vf_overlay.c +++ b/libavfilter/vf_overlay.c @@ -538,12 +538,13 @@ static av_always_inline void blend_plane_##depth##_##nbits##bits(AVFilterContext if (i && yuv) \ *d = av_clip((*d * (max - alpha) + *s * alpha) / max + *s - mid, -mid, mid) + mid; \ else \ - *d = FFMIN((*d * (max - alpha) + *s * alpha) / max + *s, max); \ + *d = av_clip_uintp2((*d * (max - alpha) + *s * alpha) / max + *s - (16<<(nbits-8)),\ + nbits);\ } else { \ if (i && yuv) \ *d = av_clip(FAST_DIV255((*d - mid) * (max - alpha)) + *s - mid, -mid, mid) + mid; \ else \ - *d = FFMIN(FAST_DIV255(*d * (max - alpha)) + *s, max); \ + *d = av_clip_uint8(FAST_DIV255(*d * (255 - alpha)) + *s - 16); \ } \ } \ s++; \