multiple Gstreamer streams in one GTK window (Wayland)

horai ivo.hora at
Tue Jul 30 09:22:41 UTC 2019

Dear all,

I found  excellent post related to integrating Gstreamer sink into GTK on
top of Wayland. I was learning from this DEMO:

I would like to kindly ask  a help, I am about to test how it would perform
with 4 GtkBox and each has encapsulated video.
It works fine in X11, since I get unique ID for every GtkEventBox (ID:
d->window_handle3 = GDK_WINDOW_XID(window);
But I am facing issues on top of Wayland backend probably related to this
d->window_handle3 = (guintptr) gdk_wayland_window_get_wl_surface(window);

Even thought the pointer represented by variable window is unique for each
videoarea (ID: videoarea0, videoarea1, etc.), I am getting equally same
pointer for GDK surface for each window (d->video_window0 =
GTK_WIDGET(gtk_builder_get_object(builder, "videoarea0"));)

I blame this for not resizing my GtkBoxes properly when resizing the main
Window.There is also a note about GTK not supporting subsurfaces, but this
DEMO is 5 years old, so I hope there is a solution. I am utilizing
waylandsink (it yields a warning with scalability at the start of my
Would you mind giving me an advice how to workaround the issue with fixed
GDK surface ID?
Maybe the problem is somewhere else, but GDK_WINDOW_XID(window) gives unique
ID to the same variable where  
gdk_wayland_window_get_wl_surface(window); gives the same to all rendering

Thank you very much
Best regards,

Sent from:

More information about the gstreamer-devel mailing list