[FFmpeg-cvslog] avfilter/vf_paletteuse: do not use in dithering transparent palette
Paul B Mahol
git at videolan.org
Thu Aug 19 10:48:42 EEST 2021
ffmpeg | branch: master | Paul B Mahol <onemda at gmail.com> | Thu Aug 19 09:40:14 2021 +0200| [79934cc702fe1c90bfb58bb83ab20490b9d86e37] | committer: Paul B Mahol
avfilter/vf_paletteuse: do not use in dithering transparent palette
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=79934cc702fe1c90bfb58bb83ab20490b9d86e37
---
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;
}
More information about the ffmpeg-cvslog
mailing list