GNOME Bugzilla – Bug 620217
glimagesink crash
Last modified: 2010-10-18 16:09:28 UTC
I'm using glimagesink w/ xoverlay in ubuntu 9.10 -- the first time I run it, it works fine. But if I set the xid for xoverlay in subsequent calls, it crashes with: The error was 'BadWindow (invalid Window parameter)'. (Details: serial 14 error_code 3 request_code 3 minor_code 0) (Note to programmers: normally, X errors are reported asynchronously; that is, you will receive the error a while after causing it. To debug your program, run it with the --sync command line option to change this behavior. You can then get a meaningful backtrace from your debugger if you break on the gdk_x_error() function.) The same code works fine w/ ximagesink and xvimagesink. When I don't use xoverlay and let gstreamer create its own window, it doesn't crash. If I set the "sync" property on glimagesink (not related to the "--sync" option in the error message) to false, I don't get a crash -- but when I have a pipeline transition from NULL -> PLAYING -> NULL -> PLAYING, instead of embedding it, it creates a new window as large as my monitor.
Which program causes this crash? A gtk one? it seems a common issue with client-side-windows and gstxoverlay misuse.
A GTK one. Every other image sink has worked just fine with the same code. I've tried it with and without the xoverlay and it's still crashing. I'm using glimagesink as part of playbin2 and with a simple videotestsrc pipeline. The equivalent videotestsrc one is: videotestsrc ! queue2 ! ffmpegcolorspace ! videorate ! video/x-raw-yuv,framerate=10/1,width=640,height=480;video/x-raw-rgb,framerate=10/1,width=640,height=480 ! videoscale ! glimagesink That will play the first time and from gst-launch, but if, from inside an application, you do PLAYING -> NULL -> PLAYING it will crash.
The other sinks that have worked with this same set of code, on Windows/Ubuntu (x86), are: ximagesink, xvimagesink, directdrawsink, dshowvideosink, fakesink, and appsink. It seems likely that it's a glimagesink issue.
It would be quite helpful if you could write a minimal C program that causes this issue.
Closing this bug report as no further information has been provided. Please feel free to reopen this bug if you can provide the information asked for. Thanks!
No problem. I haven't had time to get back to examining the issue.