avfilter/vf_overlay: improve premultiplied alpha overlay for YUV

release/5.1
Paul B Mahol 3 years ago
parent 987d2c1083
commit bdf01a9609
  1. 5
      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++; \

Loading…
Cancel
Save