[prev in list] [next in list] [prev in thread] [next in thread] 

List:       gstreamer-devel
Subject:    Wayland gtk windowing (glimagesink)
From:       Gregoire Gentil via gstreamer-devel <gstreamer-devel () lists ! freedesktop ! org>
Date:       2024-04-28 21:24:45
Message-ID: c62d39c1-0c46-4dbc-8c21-b16f0c70c822 () gentil ! com
[Download RAW message or body]

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

[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic