How share camera buffer for multiple consumer applications?

I want to share camera buffer between different applications, which is one producer(camera source), multiple consumers.

I found following topic by @DeneLLL, Problems getting EGL Stream transferred to another process on same machine - #7 by DaneLLL.

  1. It is based on stream fd sharing, not image buffer fd.
  2. Is it suitable for one producer, multiple consumers?

Please help.

Yes, for sending buffers between processes, we suggest use EGL Stream producer/consumer.

The case of one producer and multiple consumers is not tested, so it may not work properly.

Hi, DaneLLL:
So in theory, same EGLStreamKHR used by multiple applications at same time is feasible?


Hi, DaneLLL:

As following link: EGLStream Support for Multiple Consumers/Producers, NvMedia support EGLStream for multiple consumer.

But tx2 multiplemedia API is tegraMM, please check if it support it…


The implementations are different for Jetson and DRIVE platforms, so it may not work properly. Please try with our samples to run your use-case. If it does not work as expected, please share steps for reproducing the issue so that we can investigate and evaluate to support the use-case in future release.

The samples are in


Please hold, I’ll test soon.


Hi, DaneLLL:
I’m not familiar with EGL apis.
In our application, our buffer consumer not for display, but for vision algorithm using raw buffer…

When using EGL stream, eglStreamConsumerAcquireKHR() is used for consumer side, which update display with texture from EGLStream.
Is there method to get NvBuffer or raw buffer from EGLStream?


This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.