[Xcb] Determining pixel format when xcb_get_image_reply_t.visual = 0

Florian Albrechtskirchinger falbrechtskirchinger at gmail.com
Wed Dec 19 06:12:23 PST 2012


Hello,

I'm trying to fix an issue in the XCB screen capture code of VLC. When 
capturing a semi-transparent window the red and blue colors are 
inverted. The code currently doesn't determine the precise pixel format, 
i.e. RGB or BGR.
So I found out how to iterate visuals and figured all I needed to do now 
is find the visual matching xcb_get_image_reply_t.visual and convert the 
pixel format if needed. But xcb_get_image_reply_t.visual is zero and 
there's no visual by that ID.
VLC uses xcb_composite_name_window_pixmap(). Could that be the reason 
why the visual ID isn't set? How do I determine the pixel format in this 
case?

If anyone wants to have a closer look at the source it can be found here:
git://git.videolan.org/vlc.git
File ./modules/access/screen/xcb.c
Line 407

Florian


More information about the Xcb mailing list