Skip to content

Draft: wayland: add background surface and center video

Add a subsurface which displays the video, allowing to change its position from the vout display to center it, and use the vout window surface to render the black border when the video aspect ratio doesn't match the window size.

It's a draft MR because:

  • on wlroots, EFL, using subsurface place functions with the parent result in a crash.
  • on KDE, place_below with the parent doesn't have any effect.
  • on gnome-shell, pushing a 1x1 buffer for the toplevel surface, even with the wp_viewporter resizing the buffer to the correct size, trigger a configured event on the xdg-shell backend which signal a resize to 1x1.
  • there's a single subsurface for the border, maybe up to 4 subsurfaces can lead to a better result for handling the borders.
  • the video is placed above the back borders, although it's usually better to place it in the lowest hardware plane.

So the support is really really poor.

It's also an additional surface layer that might take an HW plane for nothing on some platforms.

To workaround these issue, maybe adding the functionnality in a different submodule can be done.

This MR was already published in the previous years, but never updated before.

Fixes #18045

Edited by Rémi Denis-Courmont

Merge request reports