Hi all,
I’ve been doing some testing compiling the released code for nvarguscamerasrc in this tarball (Jetson Download Center).
Basically if I create 3 instances of nvarguscamerasrc in separated processes (separate gst-launch-1.0 commands) the pipelines crash, something for example like:
gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! fakesink & gst-launch-1.0 nvarguscamerasrc sensor-id=1 ! fakesink & gst-launch-1.0 nvarguscamerasrc sensor-id=2 ! fakesink
This is the log when the issue appears
nvidia@nvidia:/usr/local/mesa$ gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! fakesink & gst-launch-1.0 nvarguscamerasrc sensor-id=1 ! fakesink & gst-launch-1.0 nvarguscamerasrc sensor-id=2 ! fakesink
[2] 21811
[3] 21812
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
New clock: GstSystemClock
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
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
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module0
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/module1
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module2
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module2
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
NvPclHwGetModuleList: WARNING: Could not map module to ISP config string
NvPclHwGetModuleList: No module data found
OFParserGetVirtualDevice: NVIDIA Camera virtual enumerator not found in proc device-tree
---- imager: Found override file [/var/nvidia/nvcam/settings/camera_overrides.isp]. ----
OFParserGetVirtualDevice: NVIDIA Camera virtual enumerator not found in proc device-tree
---- imager: Found override file [/var/nvidia/nvcam/settings/camera_overrides.isp]. ----
OFParserGetVirtualDevice: NVIDIA Camera virtual enumerator not found in proc device-tree
---- imager: Found override file [/var/nvidia/nvcam/settings/camera_overrides.isp]. ----
CAM-SWAP: camera module looks been swapped!
CAM-SWAP: camera module looks been swapped!
CAM-SWAP: camera module looks been swapped!
NvCameraIspUnpackingBlob 156: Blob: Wrong magic number!
NvCameraIspUnpackingBlob 156: Blob: Wrong magic number!
NvCameraIspUnpackingBlob 156: Blob: Wrong magic number!
CAM: serial no file already exists, skips storing againCAM: serial no file already exists, skips storing againCAM: serial no file already exists, skips storing again---- imager: Found override file [/var/nvidia/nvcam/settings/camera_overrides.isp]. ----
---- imager: Found override file [/var/nvidia/nvcam/settings/camera_overrides.isp]. ----
---- imager: Found override file [/var/nvidia/nvcam/settings/camera_overrides.isp]. ----
CAM-SWAP: camera module looks been swapped!
CAM-SWAP: camera module looks been swapped!
CAM-SWAP: camera module looks been swapped!
NvCameraIspUnpackingBlob 156: Blob: Wrong magic number!
NvCameraIspUnpackingBlob 156: Blob: Wrong magic number!
NvCameraIspUnpackingBlob 156: Blob: Wrong magic number!
CAM: serial no file already exists, skips storing againCAM: serial no file already exists, skips storing again---- imager: Found override file [/var/nvidia/nvcam/settings/camera_overrides.isp]. ----
---- imager: Found override file [/var/nvidia/nvcam/settings/camera_overrides.isp]. ----
CAM: serial no file already exists, skips storing again---- imager: Found override file [/var/nvidia/nvcam/settings/camera_overrides.isp]. ----
CAM-SWAP: camera module looks been swapped!
CAM-SWAP: camera module looks been swapped!
CAM-SWAP: camera module looks been swapped!
NvCameraIspUnpackingBlob 156: Blob: Wrong magic number!
NvCameraIspUnpackingBlob 156: Blob: Wrong magic number!
NvCameraIspUnpackingBlob 156: Blob: Wrong magic number!
CAM: serial no file already exists, skips storing againCAM: serial no file already exists, skips storing againCAM: serial no file already exists, skips storing againCAM-SWAP: camera module looks been swapped!
CAM-SWAP: camera module looks been swapped!
CAM-SWAP: camera module looks been swapped!
NvCameraIspUnpackingBlob 156: Blob: Wrong magic number!
NvCameraIspUnpackingBlob 156: Blob: Wrong magic number!
NvCameraIspUnpackingBlob 156: Blob: Wrong magic number!
CAM: serial no file already exists, skips storing againCAM: serial no file already exists, skips storing againCAM: serial no file already exists, skips storing againGST_ARGUS: Creating output stream
GST_ARGUS: Creating output stream
GST_ARGUS: Creating output stream
CONSUMER: Waiting until producer is connected...
GST_ARGUS: Available Sensor modes :
GST_ARGUS: 3840 x 2160 FR = 29.999999 fps Duration = 33333334 ; Analog Gain range min 12.800000, max 198.399994; Exposure Range min 115000, max 33218000;
GST_ARGUS: Running with following settings:
Camera index = 1
Camera mode = 0
Output Stream W = 3840 H = 2160
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.
CONSUMER: Waiting until producer is connected...
GST_ARGUS: Available Sensor modes :
GST_ARGUS: 3840 x 2160 FR = 29.999999 fps Duration = 33333334 ; Analog Gain range min 12.800000, max 198.399994; Exposure Range min 115000, max 33218000;
GST_ARGUS: Running with following settings:
Camera index = 0
Camera mode = 0
Output Stream W = 3840 H = 2160
seconds to Run = 0
Frame Rate = 29.999999
GST_ARGUS: Setup Complete, Starting captures for 0 seconds
GST_ARGUS: Starting repeat capture requests.
CONSUMER: Waiting until producer is connected...
GST_ARGUS: Available Sensor modes :
GST_ARGUS: 3840 x 2160 FR = 29.999999 fps Duration = 33333334 ; Analog Gain range min 12.800000, max 198.399994; Exposure Range min 115000, max 33218000;
GST_ARGUS: Running with following settings:
Camera index = 2
Camera mode = 0
Output Stream W = 3840 H = 2160
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.
CONSUMER: Producer has connected; continuing.
The header's Stats Id 0 does not match Hist0 Header Id 1
SCF: Error InvalidState: (propagating from src/services/autocontrol/isp_stats/IspLegacyStatsDecoder.cpp, function decodeIspStats(), line 58)
SCF: Error InvalidState: There was an error decoding stats for frame 2, frame stats will be invalid (in src/services/autocontrol/isp_stats/IspLegacyStatsDecoder.cpp, function decodeIspStats(), line 66)
totalCount of histogram is zero
(Autocontrol) Error BadParameter: histFromLac1 histogram totalMass is invalid (in src/algorithms/ae/ae_stats_utils.cpp, function NvIspAeCalcMaxRGBHistogramsFromLac1(), line 287)
(Autocontrol) Error BadParameter: (propagating from src/algorithms/ae/plugins/aohdr/AEComputePluginAoHdr.cpp, function computeMidtoneMeter(), line 95)
(Autocontrol) Error BadParameter: (propagating from src/algorithms/ae/plugins/aohdr/AEComputePluginAoHdr.cpp, function computeDerivedStats(), line 352)
AWB: M3Stats VWindows = 0 != 64
The header's Stats Id 0 does not match Hist0 Header Id 1
SCF: Error InvalidState: (propagating from src/services/autocontrol/isp_stats/IspLegacyStatsDecoder.cpp, function decodeIspStats(), line 58)
SCF: Error InvalidState: There was an error decoding stats for frame 3, frame stats will be invalid (in src/services/autocontrol/isp_stats/IspLegacyStatsDecoder.cpp, function decodeIspStats(), line 66)
Caught SIGSEGV
The header's Stats Id 0 does not match Hist0 Header Id 1
SCF: Error InvalidState: (propagating from src/services/autocontrol/isp_stats/IspLegacyStatsDecoder.cpp, function decodeIspStats(), line 58)
SCF: Error InvalidState: There was an error decoding stats for frame 1, frame stats will be invalid (in src/services/autocontrol/isp_stats/IspLegacyStatsDecoder.cpp, function decodeIspStats(), line 66)
Caught SIGSEGV
#0 0x0000007fa720f038 in __GI___poll (fds=0x557bb46240, nfds=548265906744, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:41
#1 0x0000007fa731ce08 in () at /usr/lib/aarch64-linux-gnu/libglib-2.0.so.0
#2 0x000000557b9312e0 in ()
PowerServiceCore:handleRequests: timePassed = 1148
Spinning. Please run 'gdb gst-launch-1.0 21812' to continue debugging, Ctrl-C to quit, or Ctrl-\ to dump core.
#0 0x0000007fa0dd5038 in __GI___poll (fds=0x55983d81e0, nfds=548160811576, timeout=<optimized out>) at ../sysdeps/unix/sysv/linux/poll.c:41
#1 0x0000007fa0ee2e08 in () at /usr/lib/aarch64-linux-gnu/libglib-2.0.so.0
#2 0x00000055981c32e0 in ()
PowerServiceCore:handleRequests: timePassed = 1073
Spinning. Please run 'gdb gst-launch-1.0 21813' to continue debugging, Ctrl-C to quit, or Ctrl-\ to dump core.
SCF: Error Timeout: (propagating from src/components/amr/Snapshot.cpp, function waitForNewerSample(), line 92)
SCF_AutocontrolACSync failed to wait for an earlier frame to complete.
SCF: Error Timeout: (propagating from src/components/ac_stages/ACSynchronizeStage.cpp, function doHandleRequest(), line 126)
SCF: Error Timeout: (propagating from src/components/stages/OrderedStage.cpp, function doExecute(), line 137)
SCF: Error Timeout: Sending critical error event (in src/api/Session.cpp, function sendErrorEvent(), line 990)
SCF: Error InvalidState: Session has suffered a critical failure (in src/api/Session.cpp, function capture(), line 667)
(Argus) Error InvalidState: (propagating from src/api/ScfCaptureThread.cpp, function run(), line 109)
SCF: Error InvalidState: Session has suffered a critical failure (in src/api/Session.cpp, function capture(), line 667)
(Argus) Error InvalidState: (propagating from src/api/ScfCaptureThread.cpp, function run(), line 109)
In the other hand this issue doest not appear when using 3 instances of nvarguscamerasrc
in the same process (or just launching 1 camera), for example:
gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! fakesink nvarguscamerasrc sensor-id=1 ! fakesink nvarguscamerasrc sensor-id=2 ! fakesink
Also the issue does not appear when using the nvarguscamerasrc shipped with the JetPack 4.4 installation via the sdkmanager or OTA packages.
Thanks in advance for any insight that you may have.