diff libswscale/swscale.c @ 30892:e052716dcb5b

Extend the generic path of the yuv2rgb converter with support for rgb444 output format. Patch by Janusz Krzysztofik, jkrzyszt A tis D icnet D pl
author cehoyos
date Thu, 18 Mar 2010 23:02:32 +0000
parents 5b013ed452fb
children f08d81b195fa
line wrap: on
line diff
--- a/libswscale/swscale.c	Thu Mar 18 21:53:53 2010 +0000
+++ b/libswscale/swscale.c	Thu Mar 18 23:02:32 2010 +0000
@@ -39,7 +39,7 @@
 
 /*
 tested special converters (most are tested actually, but I did not write it down ...)
- YV12 -> BGR16
+ YV12 -> BGR12/BGR16
  YV12 -> YV12
  BGR15 -> BGR16
  BGR16 -> BGR16
@@ -805,6 +805,23 @@
             }\
         }\
         break;\
+    case PIX_FMT_RGB444BE:\
+    case PIX_FMT_RGB444LE:\
+    case PIX_FMT_BGR444BE:\
+    case PIX_FMT_BGR444LE:\
+        {\
+            const int dr1= dither_4x4_16[y&3    ][0];\
+            const int dg1= dither_4x4_16[y&3    ][1];\
+            const int db1= dither_4x4_16[(y&3)^3][0];\
+            const int dr2= dither_4x4_16[y&3    ][1];\
+            const int dg2= dither_4x4_16[y&3    ][0];\
+            const int db2= dither_4x4_16[(y&3)^3][1];\
+            func(uint16_t,0)\
+                ((uint16_t*)dest)[i2+0]= r[Y1+dr1] + g[Y1+dg1] + b[Y1+db1];\
+                ((uint16_t*)dest)[i2+1]= r[Y2+dr2] + g[Y2+dg2] + b[Y2+db2];\
+            }\
+        }\
+        break;\
     case PIX_FMT_RGB8:\
     case PIX_FMT_BGR8:\
         {\