One of my experiments recently was using gtk to create the window that xvimagesink would play into, rather than creating a window from hand with XCreateSimpleWindow().  I got it working after learning how to get the X11 window ID out of a GtkWidget.

The GDK_WINDOW_XWINDOW(widget->window) convenience macro was what helped get me unstuck on this one.

Just use that macro to retrieve the widget's X11 window ID, then pass it to the gst_x_overlay_set_window_id() function when asked to by the prepare-xwindow-id message from a given xvimagesink.

I could probably whip up a trivial demonstration case if that doesn't explain well.  And please correct if I'm misunderstanding the question, as always.

Hope that helps,
E. Westbrook

2009/6/29 Joćo Paulo Mafra <>

I'm trying to use the widget you talked about, but it seems that I need to have another x11 window to embed it in a GtkPlug, and then add the GtkPlug in a GtkSocket. Is it correct?

I already can display gstreamer videos on a gtk window (as shown in this excelent post:, but the problem now is to show it in the contents of a tab of the GtkNotebook widget. If I need another x11 window, can I normally display the video as I'm already doing, and then pass the window id to the GtkPlug?


2009/6/24 Olivier Aubert <>

> > I want to display videos on a limited area in a gtk widget (in a tab of the
> > GtkNotebook widget). Anyone knows if is it possible?
Use a xvimagesink element and, using the XOverlay interface, embed it in
the tab through a GtkSocket (see )


gstreamer-devel mailing list


gstreamer-devel mailing list