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; }