Skip to content

Alpha-composited window screencasts

See commits. This MR needed work in different layers, and it's roughly organized as follows:

  1. Make Cogl winsys code receive an explicit pixel format to create DMA-BUFs
  2. Implement that in MetaRendererNative
  3. Add a new vfunc for screencast streams to report a preferred stream format
  4. Use that value to inform PipeWire, and let it negotiate a proper stream format
  5. Make window streams prefer an alpha-composited format

In the end, the expected outcome of this MR is that monitor, area, and virtual screencasts continue to use opaque formats; but window casts report an alpha AND a fallback opaque format.

I could verify this using OBS Studio - monitor capture continues to resolve to RGBX, whereas window captures resolve to RGBA:

Screenshot from 2023-08-11 17-17-59.png

Merge request reports