Skip to content

qt: yet another wayland compositor

Pierre Lamot requested to merge chub/vlc:qt/wayland-v2 into master

here is another take at video integration in Wayland,

The approach is closer to !570 (closed) as it ties a Wayland subsurface to Qt's window, and perform a place_below to put it behind the window. Wayland compositors have quite matured since the first MR and this works on most of the environments I've been able to test

I believe this is a better approach that !1353 (closed) as it doesn't requires to render the interface offscreen and avoids all the signal redirection between the window and the offscreen surface

I expect the code to be easily portable to Qt6, as it doesn't rely on Qt running OpenGL

tested environments

on ubuntu 22.04:

  • mutter 42.9 - OK
  • kwin 5.24.7 - OK
  • wl_root (sway) 1.7 - OK
  • weston 9.0 - OK
  • smithay (master 2023-12-07) - OK
  • QtWayland compositor (qt 5.15) - OK
  • enlightenment 1.26 - KO, place_below is not respected

What's left aside

  • flatpack: flatpack core20 doesn't provide wayland-client 1.19, so the core package need to be updated to core22, I've started working on it, but that require a bit of changes, and I prefer to propose it in a different MR

  • meson: most wayland vout modules aren't build with meson yet, adding support for solely the Qt wayland compositor makes the video window unusable

  • ACRYLIC / EXTENDED_FRAME: these feature may be provided afterwards, acrylic should be quite straightforward, extended frame may be a bit more tricky as we don't control how the QQuickWindowdraws draws its content

depends of !4551 (merged)

Merge request reports