I've been working on an existing GPL'd video program.  I'm just adding some 
functionality to the HMI.  The video stuff is way over my head.  All was going 
fine.  Then I upgraded from Fedora 11 to Fedora 13 skipping F12.  I installed 
it on a nice new disk and after all the fiddle diddling of getting a new 
distribution running happily I got back to the video program.  It no longer 
worked.
It gets as far as displaying one blotchy green frame and ... nothing.  The only 
thing that works is alt-f4 and the shutdown button in the video window's upper 
right hand corner.
It's a gnome program.  The HMI is built with glade-2 and it uses XShm.  The 
computer is an x86, nVidia video, nouveau driver, Fedora 13.
I didn't want to but this has made me dig into the video some.  A bit of the 
video code uses a variant of the code that comes with mpeg2dec's libvo.  There 
are four buffers used to draw the video.  They are used in turn and marked busy 
when used.  The video gets drawn with XShmPutImage (..., True) so the option to 
send a completion event is turned on.  The value returned by XShmPutImage() is 
ill and/or undocumented but seems to vaguely suggest that a return value of 
zero is bad.  In this program it returns 1 so I guess that is not bad.
Elsewhere the program calls XNextEvent() and checks to see if it is a 
completion event and if it is figures out which of the four buffer it applies 
to and marks the buffer not-busy.  

There seems to be the problem's main symptom.

I put at print statement before and after the XNextEvent() call.  The print 
before the call outputs its message.  The print after the XNextEvent() call 
never happens.
XNextEvent() checks the event queue for an event and if there isn't one blocks 
until there is.  It would seem that there never is, that is the completion 
events sent by XShmPutImage (..., True) never happen or are never received.
The originator of the program dealt with XEvents some other places in the 
program so I sprinkled some more print statements in those areas.  None of them 
ever produce output.
Since I had installed F13 on a new disk I still had the old one available so I 
rebooted to F11 and put print statements in the same places in the F11 version. 
 The program runs fine, displays video, and the print statements all output 
messages as I would expect.

TL;DR
So, somewhere between Fedora 11 and Fedora 13 and hoo nose what version of hoo 
nose what library(s) the creation or handling of the completion events caused 
by XShmPutImage(..., True) stopped.  I've read the docs,  Googled myself silly 
and yes even tried reading the source for X-server, libX, libXext, livXv, 
libXvMC, and gdk+/gdk.  My head is spinning and I don't seem to be any closer 
to understanding why the events stopped or what I need to do about it.
Can someone please give me a clue how to get hold of the completion events sent 
in response  XShmPutImage(..., True) in Fedora 13?

____________________________________________________________
LCD 42" TV for $26.42? Macbook Pro for $91.73?
Are these prices real? You WON'T Believe What We Found!
http://thirdpartyoffers.netzero.net/TGL3231/4c46d8c9649c33ac503st02duc
_______________________________________________
xorg@lists.freedesktop.org: X.Org support
Archives: http://lists.freedesktop.org/archives/xorg
Info: http://lists.freedesktop.org/mailman/listinfo/xorg
Your subscription address: arch...@mail-archive.com

Reply via email to