[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