[FFmpeg-devel] [PATCH 1/2] swscale/output: Implement dither none for yuv2rgb_write_full()

Michael Niedermayer michael at niedermayer.cc
Thu Jul 8 14:22:44 EEST 2021


Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
---
 libswscale/output.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/libswscale/output.c b/libswscale/output.c
index e855ad606a..0a3515f3ca 100644
--- a/libswscale/output.c
+++ b/libswscale/output.c
@@ -1912,6 +1912,17 @@ static av_always_inline void yuv2rgb_write_full(SwsContext *c,
         int r,g,b;
 
         switch (c->dither) {
+        case SWS_DITHER_NONE:
+            if (isrgb8) {
+                r = av_clip_uintp2(R >> 27, 3);
+                g = av_clip_uintp2(G >> 27, 3);
+                b = av_clip_uintp2(B >> 28, 2);
+            } else {
+                r = av_clip_uintp2(R >> 29, 1);
+                g = av_clip_uintp2(G >> 28, 2);
+                b = av_clip_uintp2(B >> 29, 1);
+            }
+            break;
         default:
         case SWS_DITHER_AUTO:
         case SWS_DITHER_ED:
-- 
2.17.1



More information about the ffmpeg-devel mailing list