RFC: dmabufupload element
I was wondering if it would be useful if we had some kind of dmabuf upload element that would do whatever is necessary (or nothing at all) to get video frames into a dmabuf that can be passed around.
@rmader mentioned elsewhere that such a thing would be useful because not all formats can be expressed as dmabuf, or are accepted by whatever is going to consume the dmabufs. In those cases, conversion could be performed on the GStreamer side via GL/Vulkan shaders etc. We support a lot of formats (and variations via colorimetry, chroma siting, etc) in GStreamer and it seems unlikely that these will all always be handled by dmabuf consumers.
Similarly, software decoders might or might not be able to directly write into dmabufs. For the case when they can, this new element would provide a pool around !6694 but for other cases it would copy itself into a dmabuf (after maybe some conversions).
Another reason for such an element would be GTK4, which will most likely not support importing GL textures anymore in the near future (on Wayland at least where the Vulkan renderer will become the default). There are many cases where we could do something more optimal in GStreamer (like the above) and still provide a dmabuf to GTK. One additional example here would be older AMD GPUs that don't have explicit DRM modifier support, but that allow importing decoder output from an VA surface into a GL texture, which then could be converted (as needed) via GL shaders and exported as dmabuf.
CC @rmader