gstsink: Add support for DMABuf import and graphics offload
By implementing support for GdkDmabufTextureBuilder
and
GstVideoInfoDmaDrm
. This allows zero-copy video playback on Wayland
when paired with hardware video decoding.
Can be tested with gtk4-demo --run=video_player
On Weston, plane-only composition even works with content / an overlay on top.
Tested devices:
- recent Intel devices (VA-API), 4K@60ps
- AMD Radeon RX 6700 XT (VA-API), 4K@60pfs
- Raspberry Pi 4b (V4L2 stateful / m2m), 1080p@60fps *
- Pinebook Pro / RK3399 (V4L2 stateless), 4K@60fps
Additionally requires:
- Gstreamer
1.23
/main
- https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/5890 (V4L2-SL/stateless only)
*: no pubilc patches for stateful V4L2 Gstreamer yet
See also:
Edited by Robert Mader