When using gst-launch-1.0 nvarguscamerasrc, an error occurs when trying to start streaming from the 8th camera

hello tianyuw1,

did you see any error logs? such as.. InitNVENC: Host1x channel open failed?
please see-also similar discussion thread, Topic 297206 for reference.

Hi
only the nvbuf log,no dmesg log

nv@nv-desktop:~$ gst-launch-1.0 -v nvarguscamerasrc sensor-id=7 sensor-mode=0 ‘!’ ‘video/x-raw(memory:NVMM),width=1920,height=1200,framerate=30/1,format=NV12’ ‘!’ nvvidconv ‘!’ video/x-raw,format=I420 ‘!’ xvimagesink sync=false async=false
Setting pipeline to PAUSED …
Pipeline is live and does not need PREROLL …
Redistribute latency…
Pipeline is PREROLLED …
Setting pipeline to PLAYING …
New clock: GstSystemClock
/GstPipeline:pipeline0/GstNvArgusCameraSrc:nvarguscamerasrc0.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1920, height=(int)1200, format=(string)NV12, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw(memory:NVMM), width=(int)1920, height=(int)1200, format=(string)NV12, framerate=(fraction)30/1
/GstPipeline:pipeline0/Gstnvvconv:nvvconv0.GstPad:src: caps = video/x-raw, width=(int)1920, height=(int)1200, framerate=(fraction)30/1, format=(string)I420
/GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:src: caps = video/x-raw, width=(int)1920, height=(int)1200, framerate=(fraction)30/1, format=(string)I420
/GstPipeline:pipeline0/GstXvImageSink:xvimagesink0.GstPad:sink: caps = video/x-raw, width=(int)1920, height=(int)1200, framerate=(fraction)30/1, format=(string)I420
/GstPipeline:pipeline0/GstCapsFilter:capsfilter1.GstPad:sink: caps = video/x-raw, width=(int)1920, height=(int)1200, framerate=(fraction)30/1, format=(string)I420
/GstPipeline:pipeline0/Gstnvvconv:nvvconv0.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)1920, height=(int)1200, format=(string)NV12, framerate=(fraction)30/1
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw(memory:NVMM), width=(int)1920, height=(int)1200, format=(string)NV12, framerate=(fraction)30/1
GST_ARGUS: Creating output stream
CONSUMER: Waiting until producer is connected…
GST_ARGUS: Available Sensor modes :
GST_ARGUS: 1920 x 1200 FR = 29.999999 fps Duration = 33333334 ; Analog Gain range min 1.000000, max 16.000000; Exposure Range min 28000, max 22000000;

GST_ARGUS: Running with following settings:
Camera index = 7
Camera mode  = 0
Output Stream W = 1920 H = 1200
seconds to Run    = 0
Frame Rate = 29.999999
GST_ARGUS: Setup Complete, Starting captures for 0 seconds
GST_ARGUS: Starting repeat capture requests.
CONSUMER: Producer has connected; continuing.
(Argus) Error Busy:  (propagating from src/eglstream/ImageImpl.cpp, function initialize(), line 482)
(Argus) Error Busy:  (propagating from src/eglstream/ImageImpl.cpp, function copyToNvBuffer(), line 523)
(Argus) Error InvalidState: Failed to copy to NvBuffer (in src/eglstream/ImageImpl.cpp, function createNvBuffer(), line 411)
nvbuf_utils: dmabuf_fd -1 mapped entry NOT found

And I have check the Topic 297206 ,However, according to their statement, we should theoretically be able to enable 8 video streams. In addition, we would like to know how argus_camera achieves simultaneous output from more than 8 cameras.

hello tianyuw1,

it should be an issue of Host1x side for launching 8-camera.
it’s also found an issue when using ximagesink or xvimagesink, it works with fakesink or nv3dsink.

besides.. you may have below system configuration for testing.
(1) Enable ISP at maximum clock Making sure you're not a bot!
(2) Enable VIC at maximum clock VPI - Vision Programming Interface: Performance Benchmark
(3) Enable infinite timeout
$ sudo service nvargus-daemon stop
$ sudo enableCamInfiniteTimeout=1 nvargus-daemon

Hi,Jerry

I’ve already followed your suggestions and tested them.

but still not work ,here is the log and picture

gst.log (599 Bytes)

log.txt (11.9 KB)

did you also test with fakesink to confirm it’s able to stream without display rendering?

yes , it has the same result

when run the 8th one ,an error occurs .

hello tianyuw1,

that’s unexpected, let’s narrow down the issue,
please also test with v4l2 standard IOCTL to verify the camera stream.
for instance,
$ v4l2-ctl -d /dev/video<N> --set-fmt-video=width=1920,height=1080,pixelformat=RG10 --set-ctrl bypass_mode=0 --stream-mmap --stream-count=100

yes,I can get 8 video stream

Hi,
It seems like you don’t apply the patches correctly. Please ensure you apply the patches to oot modules:
Orin AGX Jetpack 6 NVDEC limitation of <= 8 streams - #7 by DaneLLL

And overwrite upstream kernel image and oot modules:
No data from Joystick Logitech-f710 - #10 by DaneLLL

If the patches are well applied and you run 8, 9 or more processes, you shall see warning messages like:
Memory warning logs when using 9 gstreamer commands with nvdec

Hi

Thanks,we get it .