Nvarguscamerasrc works fail on second sensor

Hi,
i get some problem when run nvarguscamerasrc to conctrol 4 sensors on AGX Orin, detail info as follow:

enviroment: AGX Orin 64GB, with 4 csi bayer sensor.
4 sensor work fine, when run v4l2-ctl command:

v4l2-ctl --set-fmt-video=width=4128,height=3008,pixelformat=RG12 --set-ctrl bypass_mode=0 --stream-skip=0 --stream-mmap --stream-count=1 --stream-to=/dev/null -d /dev/video0
v4l2-ctl --set-fmt-video=width=4128,height=3008,pixelformat=RG12 --set-ctrl bypass_mode=0 --stream-skip=0 --stream-mmap --stream-count=1 --stream-to=/dev/null -d /dev/video1
v4l2-ctl --set-fmt-video=width=4128,height=3008,pixelformat=RG12 --set-ctrl bypass_mode=0 --stream-skip=0 --stream-mmap --stream-count=1 --stream-to=/dev/null -d /dev/video2
v4l2-ctl --set-fmt-video=width=4128,height=3008,pixelformat=RG12 --set-ctrl bypass_mode=0 --stream-skip=0 --stream-mmap --stream-count=1 --stream-to=/dev/null -d /dev/video3

only 1st sensor work fine, when run gst-launch-1.0 nvarguscamerasrc command:

gst-launch-1.0 nvarguscamerasrc sensor-id=0  num-buffers=1 blocksize=24834048 ! "video/x-raw(memory:NVMM), width=(int)4128, height=(int)3008,format=(string)NV12, framerate=(fraction)29/1" ! fakesink

the other 3 sensors work fail ,when run same gst command;
for example, the 2nd sensor;
command:

gst-launch-1.0 nvarguscamerasrc sensor-id=1  num-buffers=1 blocksize=24834048 ! "video/x-raw(memory:NVMM), width=(int)4128, height=(int)3008,format=(string)NV12, framerate=(fraction)29/1" ! fakesink

command result:

Setting pipeline to PAUSED …
Pipeline is live and does not need PREROLL …
Setting pipeline to PLAYING …
New clock: GstSystemClock
GST_ARGUS: Creating output stream
CONSUMER: Waiting until producer is connected…
GST_ARGUS: Available Sensor modes :
GST_ARGUS: 4128 x 3008 FR = 28.999999 fps Duration = 34482760 ; Analog Gain range min 1.000000, max 251.188705; Exposure Range min 11000, max 660000000;
GST_ARGUS: Running with following settings:
Camera index = 1
Camera mode = 0
Output Stream W = 4128 H = 3008
seconds to Run = 0
Frame Rate = 28.999999
GST_ARGUS: Setup Complete, Starting captures for 0 seconds
GST_ARGUS: Starting repeat capture requests.
CONSUMER: Producer has connected; continuing.
nvbuf_utils: dmabuf_fd -1 mapped entry NOT found
Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, threadExecute:694 NvBufSurfaceFromFd Failed.
Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, threadFunction:247 (propagating)
Got EOS from element “pipeline0”.
Execution ended after 0:00:04.003673525
Setting pipeline to NULL …
GST_ARGUS: Cleaning up

nvargus-daemon log:

=== gst-launch-1.0[3526]: Connection established (FFFF9BCE5900)OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module0
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module1
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module2
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module3
NvPclHwGetModuleList: No module data found
NvPclHwGetModuleList: No module data found
NvPclHwGetModuleList: No module data found
OFParserGetVirtualDevice: NVIDIA Camera virtual enumerator not found in proc device-tree
---- imager: No override file found. ----
---- imager: No override file found. ----
---- imager: No override file found. ----
---- imager: No override file found. ----
=== gst-launch-1.0[3526]: CameraProvider initialized (0xffff94741bd0)SCF: Error InvalidState: Timeout waiting on frame start sensor guid 1, capture sequence ID = 0 (in src/services/capture/FusaCaptureViCsiHw.cpp, function waitCsiFrameStart(), line 514)
SCF: Error InvalidState: (propagating from src/common/Utils.cpp, function workerThread(), line 114)
SCF: Error InvalidState: Worker thread ViCsiHw frameStart failed (in src/common/Utils.cpp, function workerThread(), line 133)
SCF: Error Timeout: (propagating from src/services/capture/FusaCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 600)
SCF: Error Timeout: (propagating from src/common/Utils.cpp, function workerThread(), line 114)
SCF: Error Timeout: Worker thread ViCsiHw frameComplete failed (in src/common/Utils.cpp, function workerThread(), line 133)
SCF: Error Timeout: (propagating from src/services/capture/CaptureServiceEvent.cpp, function wait(), line 59)
Error: Camera HwEvents wait, this may indicate a hardware timeout occured,abort current/incoming cc
SCF: Error InvalidState: 2 buffers still pending during EGLStreamProducer destruction (propagating from src/services/gl/EGLStreamProducer.cpp, function freeBuffers(), line 300)
SCF: Error InvalidState: (propagating from src/services/gl/EGLStreamProducer.cpp, function ~EGLStreamProducer(), line 49)
waitForIdleLocked remaining request 102
waitForIdleLocked remaining request 101
SCF: Error Timeout: waitForIdle() timed out (in src/api/Session.cpp, function waitForIdleLocked(), line 922)
(Argus) Error Timeout: (propagating from src/api/CaptureSessionImpl.cpp, function destroy(), line 216)

please give me some advise, thanks.

hello panocam,

may I know which Jetpack release version you’re used?
please see-also Verifying the V4L2 Sensor Driver to complete the compliance test.

besides,
we may also look into device tree for examination,
please disassembler the dtb file into text file for reference, i.e. $ dtc -I dtb -O dts -o output.txt tegra234-xxx.dtb

thanks, it works fine, i ref this topic
Can’t take pictures on some cameras using nvarguscamerasrc - Jetson & Embedded Systems / Jetson Xavier NX - NVIDIA Developer Forums

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