I’m wondering if the API backing the gstreamer NVMM opaque memory types are ever going to be documented publicly.
I’ve looked through all the available open source material (VisionWorks examples, NVXIO samples, gstreamer plugin sources) but the NVMM bits are always abstracted behind another libcall or opaque binary that doesn’t provide any real insight into the NvBuf / NVMM datastructure passed on the GstBuffer. Is it just a pinned block of memory? The jpeg library appears to expect a GQuark NV_BUF set to NVBUF_MAGIC_NUM. Even the IVA sample code hides memory management and invokes user code with prepared pointers.
Strings and imported symbols in the libraries suggest the NVMM/NV_BUF handles are allocated by some userspace API that is probably protected by NDA (NvRm, 2d DDK). I’m just looking for guidance regarding if we can use CUDA allocated / managed memory passed on GstBuffers that adhere to NVMM memory expectations. EGL streaming is a no-go for our use-case.