From 79934cc702fe1c90bfb58bb83ab20490b9d86e37 Mon Sep 17 00:00:00 2001 From: Paul B Mahol Date: Thu, 19 Aug 2021 09:40:14 +0200 Subject: avfilter/vf_paletteuse: do not use in dithering transparent palette --- libavfilter/vf_paletteuse.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/libavfilter/vf_paletteuse.c b/libavfilter/vf_paletteuse.c index 4b2144c6f9..1de6a67738 100644 --- a/libavfilter/vf_paletteuse.c +++ b/libavfilter/vf_paletteuse.c @@ -380,9 +380,13 @@ static av_always_inline int get_dst_color_err(PaletteUseContext *s, if (dstx < 0) return dstx; dstc = s->palette[dstx]; - *er = (int)r - (int)(dstc >> 16 & 0xff); - *eg = (int)g - (int)(dstc >> 8 & 0xff); - *eb = (int)b - (int)(dstc & 0xff); + if (dstx == s->transparency_index) { + *er = *eg = *eb = 0; + } else { + *er = (int)r - (int)(dstc >> 16 & 0xff); + *eg = (int)g - (int)(dstc >> 8 & 0xff); + *eb = (int)b - (int)(dstc & 0xff); + } return dstx; } -- cgit v1.2.3