v4l2codecs: decoder: Translate V4L2 formats into DRM fourcc/mod pairs
V4L2 and DRM choose different, incompatible ways to represent tiled/compressed etc. formats. While the later uses combinations of format fourccs and opaque, vendor/hardware specific modifiers, for the later every such combination is a distinct new format.
Traditionally Gst implemented each of the V4L2 formats if needed. Given the large number of tiling and compression modes, this is quite work intensive - and often actually not needed. In many situations Gst just needs to pass buffers from V4L2 to DRM in the form of EGL, VK, Wayland or KMS.
Thus implement a direct translation for some V4L2 formats to DRM ones, limited to the DMA_DRM API, allowing much quicker enablement of formats while requiring peers to use external implementations (usually Mesa or KMS) for tiling etc.
Includes v4l2codecs: Use GstVideoInfoDmaDrm more consist... (!8028 - merged)
Related:
- v3d: Support SAND128 base modifier (mesa/mesa!32033 - merged)
- Draft: backend-drm: Implement DRM_FORMAT_MOD_BR... (wayland/weston!1640)
- v4l2: Implement DMA_DRM caps negotiation (!7633 - merged)
- v4l2codecs: decoders: Add DMA_DRM caps support (!5890 - merged)
- Draft: v4l2: videodec: DMA_DRM caps support PoC (!6114 - closed)
- v4l2: Support for Raspberry Pi4 H265/HEVC Decoding (#1488)
- gtk4: Add DMABuf VideoMeta clip support (and Vi... (gst-plugins-rs#624)
NC30/P030 test branch: https://gitlab.freedesktop.org/rmader/gstreamer/-/commits/v4l2sl-drm-format-translation-p030