ximagesink: only extrapolate alpha mask for 32-bit depth
authorNicolas Dufresne <nicolas.dufresne@collabora.com>
Thu, 27 Mar 2014 20:43:10 +0000 (16:43 -0400)
committerNicolas Dufresne <nicolas.dufresne@collabora.com>
Thu, 27 Mar 2014 20:47:30 +0000 (16:47 -0400)
Instead of passing bogus alpha mask values when there's no alpha.

https://bugzilla.gnome.org/show_bug.cgi?id=727188

sys/ximage/ximagesink.c

index 867830e..ff6a9d6 100644 (file)
@@ -906,9 +906,12 @@ gst_ximagesink_xcontext_get (GstXImageSink * ximagesink)
   }
 
   /* extrapolate alpha mask */
-  alpha_mask = ~(xcontext->visual->red_mask
-      | xcontext->visual->green_mask | xcontext->visual->blue_mask);
-  alpha_mask &= 0xffffffff;
+  if (xcontext->depth == 32) {
+    alpha_mask = ~(xcontext->visual->red_mask
+        | xcontext->visual->green_mask | xcontext->visual->blue_mask);
+  } else {
+    alpha_mask = 0;
+  }
 
   vformat =
       gst_video_format_from_masks (xcontext->depth, xcontext->bpp, endianness,