Skip to content

cudamemory: add support for planar 4:2:2 YUV formats

Corentin Damman requested to merge (removed):cudamemory_422_packed_formats into main

These commits introduce

  • the support of Y42B, I422_10LE, I422_12LE formats to cudamemory
  • the support of Y42B, I422_10LE, I422_12LE formats for all elements using GST_CUDA_FORMATS definition (cudaupload, cudadownload, cudascale, cudaconvert)
  • allows CUDA <-> D3D11 interop to support planar YUV formats (GST_CUDA_D3D11_FORMATS has been updated to be the intersection between CUDA supported formats and D3D11 supported formats)

This allows 422 pipeline to remain in GPU memory, e.g.

  • gst-launch-1.0 -v d3d11screencapturesrc ! d3d11convert ! cudaupload ! "video/x-raw(memory:CUDAMemory), framerate=(fraction)60/1, format=Y42B/I422_10LE/I422_12LE" ! cudaconvert ! cudadownload ! d3d11videosink
  • gst-launch-1.0 -v d3d11screencapturesrc ! d3d11convert ! cudaupload ! "video/x-raw(memory:CUDAMemory), framerate=(fraction)60/1, format=Y444" ! cudaconvert ! cudadownload ! d3d11videosink
  • gst-launch-1.0 -v videotestsrc ! cudaupload ! "video/x-raw(memory:CUDAMemory), framerate=(fraction)60/1, format=Y42B/I422_10LE/I422_12LE" ! cudadownload ! d3d11videosink
  • gst-launch-1.0 -v videotestsrc ! cudaupload ! "video/x-raw(memory:CUDAMemory), framerate=(fraction)60/1, format=Y42B/I422_10LE/I422_12LE" ! cudadownload ! d3d11convert ! "video/x-raw(memory:D3D11Memory), format=BGRA" ! d3d11videosink
Edited by Corentin Damman

Merge request reports