Hi,
I have a problem that requires two process that deal with YUV data.
One process will capture the data via CSI, perform some analysis, processing and must be very stable.
This YUV data will then potentially be encoded and further in a second process which may be more prone to error and has been known to crash at times. Also, the handoff between processes needs to be low overhead (zero memcopy).
I’ve looked in to the various examples of EGL streams producer/consumer it seems that YUV is not supported. Is there an example that configures EGL to use EGL_YUV_BUFFER_EXT? Or is there another way outside of EGL that I can transfer NvBuff between process?
But it is not YUV buffers. On Jetpack 4.6, there is functions defined in nvbuf_utils.h for sharing NvBuffers between processes, but the sample is not ready yet.
Here is a relevant post: How to share the buffer in process context? - #8 by DaneLLL
Thanks. Do you have the name of any of these functions? I tried creating an NvBuffer and sending it’s fd through a socket (same way it’s done for sharing the EGL stream fd), but that didn’t seem to work.
Edit: oh, are you referring to the various NvBuffer*Ex() (e.g. NvBufferMemMapEx()) functions?
Now I just have to get our system updated to 4.6