[gst-devel] patch: correct handling of XVideo COLORKEY attributes

Ben Liblit liblit at eecs.berkeley.edu
Sat Nov 2 22:14:06 CET 2002

My video card (a GeForce 3) offers several settable XVideo attributes, 
such as brightness, contrast, etc.  Two of those attributes are 
XV_COLORKEY and XV_AUTOPAINT_COLORKEY.  I don't *completely* understand 
these, but the impression that I get is that XV_COLORKEY is a pixel 
which will be used as a video output mask: video is only painted over 
those parts of the window which are colored using the XV_COLORKEY pixel.

In the common case where you don't want any masking at all, you can fill 
the entire window using XV_COLORKEY.  A simpler approach, though, is to 
set the boolean XV_AUTOPAINT_COLORKEY attribute to "true".  This 
apparently causes the driver to do the XV_COLORKEY window filling 

Curiously, the Xine movie player turns XV_AUTOPAINT_COLORKEY off, and 
leaves it off even after it is done.  So any subsequent video player 
that comes along will not get any video in its video window unless it 
either turns XV_AUTOPAINT_COLORKEY back on or else does some painting of 
its own using the XV_COLORKEY pixel.  GStreamer suffers from exactly 
this bug.  If Xine has *ever* been run on a display, then GStreamer's 
xvideosink plugin will not yield any output.  :-(

Attached below please find a small patch to fix this problem by turning 
XV_AUTOPAINT_COLORKEY back on.  I've tested it on my system and it works 
like a charm.  It should harmlessly do nothing on video cards that don't 
have this attribute at all.  The patch fixes both videosink and 
xvideosink.  I fixed the former before learning that it has been 
deprecated by the later.  Feel free to ignore the videosink change if 
that code is truly dead.

MPlayer had this same bug until very recently; I discovered the problem 
and submitted essentially the same fix, which was incorporated into the 
recent mplayer 0.90-pre9 release.  If you're interested, see 
for archives of the discussions which led to my current understanding of 
the issue.

Thank you!
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: gst-xv-patch
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20021102/75628fc4/attachment.txt>

More information about the gstreamer-devel mailing list