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

Jan Schmidt thaytan at noraisin.net
Tue Mar 2 19:17:18 CET 2010


You should ensure in Application A, that you call XSync, or
gdk_display_sync (gdk_display_get_default()) - otherwise by the time
Application B accesses the Window XID, it might not yet actually exist
in the X server, leading to the crash.

- Jan.

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?
> 
> Thanks,
> Yiliang
> 


-- 
Jan Schmidt <thaytan at noraisin.net>





More information about the gstreamer-devel mailing list