Skip to content

v4l2: Implement DMA_DRM caps negotiation

Nicolas Dufresne requested to merge ndufresne/gstreamer:v4l2-dma-drm into main

This implements DMA_DRM caps negotiation for remaining v4l2 element, v4l2src, v4l2sink, v4l2convert, stateful decoders and encoders. The passing of dmabuf through sysmem that we've had for many years remains supported.

Thanks to CLAAS for sponsoring this work.

TODO:

  • Dot not offer dmabuf when uses forced mmap or userptr io-mode
  • Disable copy thresholds when dmabuf is negotiated
  • Fix regression when DMABuf stride is not aligned for the GPU *
  • After discussion, the best outcome will be to drop the failed buffer, mask the dmabuf uploaders and emit a renegotiation event in glupload. Olivier rightfully expressed his dislike for dropping buffers. With a tiny step back, until now, glupload would map the dmabuf to CPU and use the slow path for supported raw upload formats. I think the logical fix, is to introduce a new raw uploader that accept dmabuf caps feature, that accept everything the raw uploaded do, but in dmabuf/drm form. That should restore the previous behaviour and fix the regressions.
Edited by Nicolas Dufresne

Merge request reports

Loading