videomixer: Fix background blitting when a color mode is selected with BGRA
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Thu, 28 May 2009 11:56:15 +0000 (13:56 +0200)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Thu, 28 May 2009 11:58:48 +0000 (13:58 +0200)
gst/videomixer/blend_bgra.c

index 36ac2e9..485f0c7 100644 (file)
@@ -111,17 +111,18 @@ gst_videomixer_fill_bgra_color (guint8 * dest, gint width, gint height,
   gint red, green, blue;
   gint i, j;
 
-  red = 1.164 * (colY - 16) + 1.596 * (colV - 128);
-  green = 1.164 * (colY - 16) - 0.813 * (colV - 128) - 0.391 * (colU - 128);
-  blue = 1.164 * (colY - 16) + 2.018 * (colU - 128);
-
+  red = CLAMP (1.164 * (colY - 16) + 1.596 * (colV - 128), 0, 255);
+  green =
+      CLAMP (1.164 * (colY - 16) - 0.813 * (colV - 128) - 0.391 * (colU - 128),
+      0, 255);
+  blue = CLAMP (1.164 * (colY - 16) + 2.018 * (colU - 128), 0, 255);
 
   for (i = 0; i < height; i++) {
     for (j = 0; j < width; j++) {
+      *dest++ = blue;
+      *dest++ = green;
+      *dest++ = red;
       *dest++ = 0xff;
-      *dest++ = colY;
-      *dest++ = colU;
-      *dest++ = colV;
     }
   }
 }