[gst-devel] What could cause the error in xvimagesink (XGetWindowAttributes): X Error of failed request?

Luciana Fujii Pontello luciana at holoscopio.com
Mon Mar 1 20:38:30 CET 2010


On Sat, 2010-02-27 at 17:23 -0800, yiliang wrote:
> Hi,
> 
> I have 2 applications. One application (application A) creates a window, and
> sends the window ID to another application (application B). application B
> has a gstreamer video pipeline that uses xvimagesink to display the video as
> overlay in the window using the window ID provided by application A. I am
> sorry if it sounds a little confusing. This is to separate UI from pipeline.
> 
> Following function is used to configure xvimagesink with window ID:
> 
>     gst_x_overlay_set_xwindow_id(GST_X_OVERLAY(xvimagesink), winId);
> 
> Most of time it works fine, but sometimes I encounter the following problem,
> and the application B is terminated:
> 
> X Error of failed request:  BadWindow (invalid Window parameter)
>   Major opcode of failed request:  3 (X_GetWindowAttributes)
>   Resource id in failed request:  0x400016f
>   Serial number of failed request:  32
>   Current serial number in output stream:  33
> 
> After some debugging, I found the error was generated in function
> gst_xvimagesink_set_xwindow_id() when it called the following function:
> 
> XGetWindowAttributes
> 
> Could anyone give some hint how to fix this problem?

Are you using gdk threads_enter() right before set_xwindow_id and
threads_leave() right after?

I do something similar to what you're doing, but had no problems until
now.

Luciana Fujii
Holoscópio Tecnologia - http://holoscopio.com




More information about the gstreamer-devel mailing list