Waylandsink: disabling keyboard focus

Terry Barnaby terry1 at beam.ltd.uk
Wed Mar 23 09:09:23 UTC 2022

I am creating a video processing application that will run on an NXP 
IMX8MP embedded platform using GStreamer with Qt on a Wayland display. 
This is using the NXP imx hardknott imx-5.10.52-2.1.0 release.

I have this mostly working but I am having a few lockup problems 
probably due to Waylandsink vs Qt and perhaps threads. As a workaround 
for now I have been trying to configure a gstreamer pipeline to use its 
own created Waylandsink Wayland surface and just position it over the 
area of the application. However the Waylandsink takes over 
keyboard/mouse focus from the program. Is there any way of preventing 
this on the waylandsink ?

As to my main problem when I set the Waylandsink's surface to be that of 
an existing QWidgets surface in a gstBusCallback() function it all works 
eventually (and the program has keyboard focus) but there is a large 
delay before the video plays after a gst_element_set_state(ogstPipeline, 
GST_STATE_PLAYING);. It appears the program hangs in 
wl_display_read_events() awaiting a Mutex. Moving the mouse (or sending 
mouse events via /dev/uinput) unlocks it. I attach some bits of my test 
code that shows this. Any pointers as to what may be happening and how 
to fix this ?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: WVideo.cpp
Type: text/x-c++src
Size: 6640 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20220323/b6cebe46/attachment.cpp>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: WVideo.h
Type: text/x-chdr
Size: 1027 bytes
Desc: not available
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20220323/b6cebe46/attachment.h>

More information about the gstreamer-devel mailing list