Can a frame be used by the Libargus stream without released by the application

When I use Libargus API, if I get an image from the stream, can the buffer be modified by the stream before I release it?

If not, will that affect the stream, such as the stream cannot get new image? Or the stream effectively has one less buffer?

Maybe check the yuvJpeg in the MMAPI sample code.

Thanks

I checked the yuvJpeg sample code. But I am still not very clear. I have three questions.

  1. From the description of the setMode function on this page: Jetson Linux API Reference: Argus::IEGLOutputStreamSettings Class Reference | NVIDIA Docs, if FIFO mode is used, then we have to set the fifo length. But I didn’t find it in the sample code.

  2. Assume I use FIFO mode and set the fifo length to 5. if the consumer couldn’t finish the image before the fifo is full, the Argus will stall. Will Argus put a new image immediately when the fifo is not full or Argus will need to wait for a new image available and then put it into the fifo?

  3. I only saw EGLStream has mailbox and fifo modes. Does BufferStream have any mode? Or it is like the fifo mode? When I pass the buffers, they will be treated as circular buffers? Then will any buffer be overwritten?

Thanks a lot!