Argus internal frame buffer cache size


I am getting raw data (PIXEL_FMT_RAW16) frames using argus API.
I use ‘cuEGLStreamConsumerAcquireFrame’ to get frame and ‘cuEGLStreamConsumerReleaseFrame’ to push it back and everything works perfectly.

The problem is that if I don’t release frames the maximum number of frames I can get is 13 (for AGX device) and then Argus returns:

SCF: Error Timeout: (propagating from src/components/CaptureContainerImpl.cpp, function assignAllBuffersFromStream(), line 232)
SCF: Error Timeout: (propagating from src/components/stages/CCDataSetupStage.cpp, function doHandleRequest(), line 68)
SCF: Error Timeout: (propagating from src/components/stages/OrderedStage.cpp, function doExecute(), line 158)
SCF: Error Timeout: Sending critical error event (in src/api/Session.cpp, function sendErrorEvent(), line 997)

I believe it means something like: I don’t have availabale bufers to continue.

For my task I need 20-30 cached frames and I want to avoid coping frame data owned by Argus to my predefined buffers (because the chance I need to use frame data from the cache is let’s say 1%, other frames can be just skipped, so I don’t want to waste resources for coping other 99% of buffers).

Is there any way to increase internal argus frame buffer?
Is there any way to use predefined user owned buffers for PIXEL_FMT_RAW16? I use my own predefined buffers with STREAM_TYPE_BUFFER stream, but it works only with NvBufferColorFormat_NV12 and I can’t it get to work with raw data.


hello vladimir.tchernitski,

may I know what’s the actual use-case with Raw16, doesn’t the default queue buffer cannot reach your requirement?

Hi Jerry,

The reason is that we have our own fancy ISP processing that requires raw bayer data as input.

hello vladimir.tchernitski,

please use the Applications Using V4L2 IOCTL Directly to bypass ISP.

Okay, thanks

So there is no way to increase Argus internal frame buffer length or inject application owned RAW16 buffers in scope of Argus API. Correct?

hello vladimir.tchernitski,

Argus API taking the buffer processed by ISP, which is YUV formats.
it should be straightforward if you’re request for Raw buffers via v4l2, Argus doesn’t support output Raw formats in the recent releases.

I am sorry Jerry, but there is ‘cudaBayerDemosaic’ example that I use as basis and it’s possible to get bayer data via Argus. And we got it and it works with our custom ISP, the problem is only length of cache I described above. But I will try to use v4l2. Thanks.

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