Fix 24bppLE RGB
authorRonald S. Bultje <rbultje@ronald.bitfreak.net>
Tue, 23 Dec 2003 22:41:37 +0000 (22:41 +0000)
committerRonald S. Bultje <rbultje@ronald.bitfreak.net>
Tue, 23 Dec 2003 22:41:37 +0000 (22:41 +0000)
Original commit message from CVS:
Fix 24bppLE RGB

ChangeLog
sys/ximage/ximagesink.c

index 2431adf600cb2a205549c0aa9e0105d9269f63bb..55e9a2ba5d715d796d3ef4529e93ced4ea56c710 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2003-12-23  Ronald Bultje  <rbultje@ronald.bitfreak.net>
+
+       * sys/ximage/ximagesink.c: (gst_ximagesink_xcontext_get):
+         Fix for 24bpp display.
+
 2003-12-23  Colin Walters  <walters@verbum.org>
 
        * ext/gnomevfs/gstgnomevfssink.c: Add ARG_HANDLE property that takes
index dba8655a48b8fd9efbff2fd4e7d72b743b8e5f1c..63a6490d22623152861002dfb949e4348a521392 100644 (file)
@@ -455,9 +455,14 @@ gst_ximagesink_xcontext_get (GstXImageSink *ximagesink)
   if ((xcontext->bpp == 24 || xcontext->bpp == 32) &&
       xcontext->endianness == G_LITTLE_ENDIAN) {
     xcontext->endianness = G_BIG_ENDIAN;
-    xcontext->visual->red_mask = GULONG_TO_BE (xcontext->visual->red_mask);
-    xcontext->visual->green_mask = GULONG_TO_BE (xcontext->visual->green_mask);
-    xcontext->visual->blue_mask = GULONG_TO_BE (xcontext->visual->blue_mask);
+    xcontext->visual->red_mask = GUINT32_TO_BE (xcontext->visual->red_mask);
+    xcontext->visual->green_mask = GUINT32_TO_BE (xcontext->visual->green_mask);
+    xcontext->visual->blue_mask = GUINT32_TO_BE (xcontext->visual->blue_mask);
+    if (xcontext->bpp == 24) {
+      xcontext->visual->red_mask >>= 8;
+      xcontext->visual->green_mask >>= 8;
+      xcontext->visual->blue_mask >>= 8;
+    }
   }
   
   xcontext->caps = gst_caps_new_simple ("video/x-raw-rgb",