Wayland gtk windowing (glimagesink)
Gregoire Gentil
gregoire at gentil.com
Sun Apr 28 21:24:45 UTC 2024
Hello,
I had an application with a gtk+-3.0 window and a pipeline "... !
imagesink". The video is rendered inside the gtk window.
I was doing:
static void realize_cb(GtkWidget *widget, CustomData *data) {
GdkWindow *window = gtk_widget_get_window(widget);
data->window_handle = GDK_WINDOW_XID(window);
and then:
static GstBusSyncReply bus_sync_handler(GstBus * bus, GstMessage *
message, CustomData *data) {
gst_video_overlay_set_window_handle(GST_VIDEO_OVERLAY(data->video_sink),
data->window_handle);
Everything was working fine. I want now to support wayland system.
Pipeline becomes: "... ! glimagesink".
in the realize_cb function, I have now:
GdkWindow *window = gtk_widget_get_window(widget);
data->window_handle = (guintptr)gdk_wayland_window_get_wl_surface(window);
At run-time, I'm getting hundreds of:
"GStreamer-GL-CRITICAL **: 14:06:48.263: Failed to flush Wayland connection"
What am I doing wrong? Many thanks in advance for any hint,
Grégoire
More information about the gstreamer-devel
mailing list