Wayland gtk windowing (glimagesink)
Davide Cavion
davide at rfnm.io
Mon Apr 29 07:32:57 UTC 2024
Francois doesn't have a lot of test equipment. What kind of input is
your test equipment expecting? Do you have a 10 MHz LPF you can try?
Davide Cavion
RFNM Inc; Srl
+39 3515916607
On 4/29/2024 6:15 AM, Gregoire Gentil via gstreamer-devel wrote:
> Thanks for helping. Still not working.
>
> I have replaced glimagesink by waylandsink. If I don't call
> "gst_video_overlay_set_window_handle", the video appears in the back.
> So at least, waylandsink is working. But note that the video is
> appearing without being part of any window at all.
>
> If I call "gst_video_overlay_set_window_handle", the video doesn't
> appear and doesn't play. I also receive the following message:
>
> waylandsink cannot use an externally-supplied surface without an
> externally-supplied display handle. Consider providing a display
> handle from your application with GstContext
>
> Am I missing another API call?
>
> Grégoire
>
>
> On 4/28/24 20:28, Max Weng wrote:
>> I understand your situation better now. :) I've noticed that the
>> video indeed appears in a separate window with other sinks as well.
>> It seems that in my experience, only |waylandsink|consistently
>> integrates directly into the GTK window without issues.
>>
>> On Mon, 29 Apr 2024 at 10:51, Gregoire Gentil <gregoire at gentil.com
>> <mailto:gregoire at gentil.com>> wrote:
>>
>> I could have been more precise: the glimageslink pipeline does
>> work and
>> the video appears in a separated window if I don't link it to the
>> window
>> with the code mentioned below. What I want to do is to insert the
>> video
>> inside the gtk window.
>>
>> Also glimagesink has the unique advantage to work on both wayland
>> and
>> non-wayland systems,
>>
>> Grégoire
>>
>>
>>
>>
>> On 4/28/24 19:12, Max Weng wrote:
>> > try use waylandsink?
>> >
>> > this work for me "rtspsrc name=rtspsrc location={url}
>> protocols=tcp
>> > latency=10 max-rtcp-rtp-time-diff=10 ! errorignore ! rtph265depay
>> > name=depay ! h265parse ! avdec_h265 name=avdec ! videoconvert !
>> > video/x-raw, format=RGBA ! waylandsink name=sink"
>> >
>> > On Mon, 29 Apr 2024 at 06:18, Gregoire Gentil via gstreamer-devel
>> > <gstreamer-devel at lists.freedesktop.org
>> <mailto:gstreamer-devel at lists.freedesktop.org>
>> > <mailto:gstreamer-devel at lists.freedesktop.org
>> <mailto:gstreamer-devel at lists.freedesktop.org>>> wrote:
>> >
>> > 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