Hi,
I have encountered an issue. I modified the demo located at /usr/src/jetson_multimedia_api/samples/10_argus_camera_recording to add support for encoding video streams from multiple cameras into H.265 and streaming them over the network. The modified demo functions properly and runs without errors on other devices. However, it exhibits abnormal runtime behavior under several specific scenarios when deployed on the Orin NX hardware platform.
sudo ./argus_camera_recording -p -i 0,1 -r 2064x1552 ---- OK
sudo ./argus_camera_recording -p -i 2,3 -r 2064x1552 ---- OK
sudo ./argus_camera_recording -p -i 0,2 -r 2064x1552 ---- NG
sudo ./argus_camera_recording -p -i 0,3 -r 2064x1552 ---- NG
sudo ./argus_camera_recording -p -i 1,2 -r 2064x1552 ---- NG
sudo ./argus_camera_recording -p -i 1,3 -r 2064x1552 ---- NG
sudo ./argus_camera_recording -p -i 0,1,2,3 -r 2064x1552 ---- NG
Hardware design is as follows:
CSI-0/1 — MAX96712_1_PORT_A (video0~3)
CSI-2/3 — MAX96712_1_PORT_B (video4~7)
Software nodes:
- I disabled module2, 3, 6 and 7 in the dtb file.
- Camera parameters: 2064×1552 resolution, RAW12 format, 30fps frame rate.
agi@vision:~$ sudo nvargus_nvraw --lps
[sudo] password for agi:
nvargus_nvraw version 1.17.0
Number of supported sensor entries 12
Entry Source Mode Uniquename Resolution FR BitDepth Mode
Index Index Index CSI Dyn Type
0 0 0 imx900_bottomleft_imx900 2064x1552 50 12 12 Bayer
1 0 1 imx900_bottomleft_imx900 2064x1552 50 12 12 Bayer
2 0 2 imx900_bottomleft_imx900 2064x1552 50 12 12 Bayer
3 1 0 imx900_centerleft_liimx900 2064x1552 50 12 12 Bayer
4 1 1 imx900_centerleft_liimx900 2064x1552 50 12 12 Bayer
5 1 2 imx900_centerleft_liimx900 2064x1552 50 12 12 Bayer
6 2 0 imx900_bottomright_liimx900 2064x1552 50 12 12 Bayer
7 2 1 imx900_bottomright_liimx900 2064x1552 50 12 12 Bayer
8 2 2 imx900_bottomright_liimx900 2064x1552 50 12 12 Bayer
9 3 0 imx900_topright_liimx900 2064x1552 50 12 12 Bayer
10 3 1 imx900_topright_liimx900 2064x1552 50 12 12 Bayer
11 3 2 imx900_topright_liimx900 2064x1552 50 12 12 Bayer
agi@vision:~$ sudo nvargus-daemon
=== NVIDIA Libargus Camera Service (0.99.33)
=== Listening for connections...
=== argus_camera_recording[2906]: Connection established (FFFFBA5AB840)
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/module4
OFParserListModules: module list: /proc/device-tree/tegra-camera-platform/modules/module5
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
CAM: serial no file already exists, skips storing again[NvCameraIspDriver::initialize] NOT Using CamPG
CAM: serial no file already exists, skips storing again[NvCameraIspDriver::initialize] NOT Using CamPG
CAM: serial no file already exists, skips storing again[NvCameraIspDriver::initialize] NOT Using CamPG
CAM: serial no file already exists, skips storing again[NvCameraIspDriver::initialize] NOT Using CamPG
=== argus_camera_recording[2906]: CameraProvider initialized (0xffffb4ac1860)
CAM: serial no file already exists, skips storing again[NvCameraIspDriver::initialize] NOT Using CamPG
CAM: serial no file already exists, skips storing again[NvCameraIspDriver::initialize] NOT Using CamPG
CAM: serial no file already exists, skips storing again[NvCameraIspDriver::initialize] NOT Using CamPG
CAM: serial no file already exists, skips storing again[NvCameraIspDriver::initialize] NOT Using CamPG
SCF: Error InvalidState: Timeout!! Skipping requests on sensor GUID 4, capture sequence ID = 0 draining session frameStart events 3
(in src/services/capture/FusaCaptureViCsiHw.cpp, function waitCsiFrameStart(), line 539)
SCF: Error InvalidState: Sensor GUID 4 is in error state. Skipping requests, capture sequence ID = 1 continue draining session frameStart events 2
(in src/services/capture/FusaCaptureViCsiHw.cpp, function waitCsiFrameStart(), line 553)
SCF: Error InvalidState: Sensor GUID 4 is in error state. Skipping requests, capture sequence ID = 2 continue draining session frameStart events 1
(in src/services/capture/FusaCaptureViCsiHw.cpp, function waitCsiFrameStart(), line 553)
SCF: Error InvalidState: Timeout!! Skipping requests on sensor GUID 5, capture sequence ID = 0 draining session frameStart events 3
(in src/services/capture/FusaCaptureViCsiHw.cpp, function waitCsiFrameStart(), line 539)
SCF: Error InvalidState: Sensor GUID 5 is in error state. Skipping requests, capture sequence ID = 1 continue draining session frameStart events 2
(in src/services/capture/FusaCaptureViCsiHw.cpp, function waitCsiFrameStart(), line 553)
SCF: Error InvalidState: Sensor 4 already in same state
(in src/services/capture/CaptureServiceDeviceSensor.cpp, function setErrorState(), line 100)
SCF: Error InvalidState: Timeout!! Skipping requests on sensor GUID 4, capture sequence ID = 0 draining session frameEnd events 3
(in src/services/capture/FusaCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 656)
SCF: Error InvalidState: Sensor GUID 5 is in error state. Skipping requests, capture sequence ID = 2 continue draining session frameStart events 1
(in src/services/capture/FusaCaptureViCsiHw.cpp, function waitCsiFrameStart(), line 553)
SCF: Error InvalidState: Sensor GUID 4 is in error state. Skipping requests, capture sequence ID = 3 continue draining session frameStart events 1
(in src/services/capture/FusaCaptureViCsiHw.cpp, function waitCsiFrameStart(), line 553)
SCF: Error InvalidState: Sensor 4 already in same state
(in src/services/capture/CaptureServiceDeviceSensor.cpp, function setErrorState(), line 100)
SCF: Error InvalidState: Timeout!! Skipping requests on sensor GUID 4, capture sequence ID = 1 draining session frameEnd events 3
(in src/services/capture/FusaCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 656)
SCF: Error InvalidState: Sensor 4 already in same state
(in src/services/capture/CaptureServiceDeviceSensor.cpp, function setErrorState(), line 100)
SCF: Error InvalidState: Timeout!! Skipping requests on sensor GUID 4, capture sequence ID = 2 draining session frameEnd events 2
(in src/services/capture/FusaCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 656)
SCF: Error InvalidState: Sensor GUID 4 is in error state. Skipping requests, capture sequence ID = 4 continue draining session frameStart events 1
(in src/services/capture/FusaCaptureViCsiHw.cpp, function waitCsiFrameStart(), line 553)
SCF: Error Timeout: Sending critical error event for Session 4
(in src/api/Session.cpp, function sendErrorEvent(), line 1101)
SCF: Error BadParameter: CC has already been disposed (in src/components/CaptureContainerManager.cpp, function dispose(), line 161)
SCF: Error BadParameter: CC has already been disposed (in src/components/CaptureContainerManager.cpp, function dispose(), line 161)
SCF: Error InvalidState: Sensor 4 already in same state
(in src/services/capture/CaptureServiceDeviceSensor.cpp, function setErrorState(), line 100)
SCF: Error InvalidState: Timeout!! Skipping requests on sensor GUID 4, capture sequence ID = 3 draining session frameEnd events 2
(in src/services/capture/FusaCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 656)
SCF: Error InvalidState: Sensor 5 already in same state
(in src/services/capture/CaptureServiceDeviceSensor.cpp, function setErrorState(), line 100)
SCF: Error InvalidState: Timeout!! Skipping requests on sensor GUID 5, capture sequence ID = 0 draining session frameEnd events 3
(in src/services/capture/FusaCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 656)
SCF: Error InvalidState: Timeout!! Skipping requests on sensor GUID 5, capture sequence ID = 1 draining session frameEnd events 2
(in src/services/capture/FusaCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 656)
SCF: Error InvalidState: Unknown frame complete set twice (in src/services/capture/CaptureRecord.cpp, function csiFrameEnd(), line 261)
SCF: Error InvalidState: (propagating from src/services/capture/FusaCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 696)
SCF: Error InvalidState: Sensor 5 already in same state
(in src/services/capture/CaptureServiceDeviceSensor.cpp, function setErrorState(), line 100)
SCF: Error InvalidState: Timeout!! Skipping requests on sensor GUID 5, capture sequence ID = 2 draining session frameEnd events 1
(in src/services/capture/FusaCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 656)
SCF: Error Timeout: NvRmSyncWait failed (in src/api/Buffer.cpp, function cpuWaitFences(), line 622)
SCF: Error Timeout: (propagating from src/api/Buffer.cpp, function cpuWaitInputFences(), line 543)
SCF: Error Timeout: (propagating from src/api/Buffer.cpp, function acquire(), line 680)
SCF: Error Timeout: (propagating from src/api/Buffer.cpp, function ScopedBufferLock(), line 657)
SCF: Error InvalidState: Timeout!! Skipping requests on sensor GUID 4, capture sequence ID = 4 draining session frameEnd events 1
(in src/services/capture/FusaCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 656)
SCF: Error InvalidState: Unknown frame complete set twice (in src/services/capture/CaptureRecord.cpp, function csiFrameEnd(), line 261)
SCF: Error InvalidState: (propagating from src/services/capture/FusaCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 696)
SCF: Error InvalidState: Sensor 5 already in same state
(in src/services/capture/CaptureServiceDeviceSensor.cpp, function setErrorState(), line 100)
SCF: Error InvalidState: Sensor GUID 5 is in error state. Skipping requests, capture sequence ID = 3 continue draining session frameStart events 1
(in src/services/capture/FusaCaptureViCsiHw.cpp, function waitCsiFrameStart(), line 553)
SCF: Error InvalidState: Timeout!! Skipping requests on sensor GUID 5, capture sequence ID = 3 draining session frameEnd events 1
(in src/services/capture/FusaCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 656)
SCF: Error InvalidState: Sensor GUID 5 is in error state. Skipping requests, capture sequence ID = 4 continue draining session frameStart events 1
(in src/services/capture/FusaCaptureViCsiHw.cpp, function waitCsiFrameStart(), line 553)
SCF: Error InvalidState: Sensor 5 already in same state
(in src/services/capture/CaptureServiceDeviceSensor.cpp, function setErrorState(), line 100)
SCF: Error InvalidState: Timeout!! Skipping requests on sensor GUID 5, capture sequence ID = 4 draining session frameEnd events 1
(in src/services/capture/FusaCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 656)
SCF: Error Timeout: Sending critical error event for Session 5
(in src/api/Session.cpp, function sendErrorEvent(), line 1101)
SCF: Error InvalidState: Session has suffered a critical failure (in src/api/Session.cpp, function capture(), line 796)
(Argus) Error InvalidState: (propagating from src/api/ScfCaptureThread.cpp, function run(), line 110)
SCF: Error InvalidState: Session has suffered a critical failure (in src/api/Session.cpp, function capture(), line 796)
(Argus) Error InvalidState: (propagating from src/api/ScfCaptureThread.cpp, function run(), line 110)
SCF: Error InvalidState: Session has suffered a critical failure (in src/api/Session.cpp, function capture(), line 796)
(Argus) Error InvalidState: (propagating from src/api/ScfCaptureThread.cpp, function run(), line 110)
SCF: Error InvalidState: Session has suffered a critical failure (in src/api/Session.cpp, function capture(), line 796)
(Argus) Error InvalidState: (propagating from src/api/ScfCaptureThread.cpp, function run(), line 110)
SCF: Error InvalidState: Session has suffered a critical failure (in src/api/Session.cpp, function capture(), line 796)
(Argus) Error InvalidState: (propagating from src/api/ScfCaptureThread.cpp, function run(), line 110)
SCF: Error InvalidState: Session has suffered a critical failure (in src/api/Session.cpp, function capture(), line 796)
(Argus) Error InvalidState: (propagating from src/api/ScfCaptureThread.cpp, function run(), line 110)
SCF: Error InvalidState: Session has suffered a critical failure (in src/api/Session.cpp, function capture(), line 796)
(Argus) Error InvalidState: (propagating from src/api/ScfCaptureThread.cpp, function run(), line 110)
SCF: Error InvalidState: Session has suffered a critical failure (in src/api/Session.cpp, function capture(), line 796)
(Argus) Error InvalidState: (propagating from src/api/ScfCaptureThread.cpp, function run(), line 110)
SCF: Error InvalidState: Session has suffered a critical failure (in src/api/Session.cpp, function capture(), line 796)
(Argus) Error InvalidState: (propagating from src/api/ScfCaptureThread.cpp, function run(), line 110)
SCF: Error InvalidState: Session has suffered a critical failure (in src/api/Session.cpp, function capture(), line 796)
(Argus) Error InvalidState: (propagating from src/api/ScfCaptureThread.cpp, function run(), line 110)
SCF: Error InvalidState: Session has suffered a critical failure (in src/api/Session.cpp, function capture(), line 796)
(Argus) Error InvalidState: (propagating from src/api/ScfCaptureThread.cpp, function run(), line 110)
SCF: Error InvalidState: Session has suffered a critical failure (in src/api/Session.cpp, function capture(), line 796)
(Argus) Error InvalidState: (propagating from src/api/ScfCaptureThread.cpp, function run(), line 110)
SCF: Error InvalidState: Session has suffered a critical failure (in src/api/Session.cpp, function capture(), line 796)
(Argus) Error InvalidState: (propagating from src/api/ScfCaptureThread.cpp, function run(), line 110)
SCF: Error InvalidState: Session has suffered a critical failure (in src/api/Session.cpp, function capture(), line 796)
(Argus) Error InvalidState: (propagating from src/api/ScfCaptureThread.cpp, function run(), line 110)
SCF: Error InvalidState: Session has suffered a critical failure (in src/api/Session.cpp, function capture(), line 796)
(Argus) Error InvalidState: (propagating from src/api/ScfCaptureThread.cpp, function run(), line 110)
SCF: Error InvalidState: Session has suffered a critical failure (in src/api/Session.cpp, function capture(), line 796)
(Argus) Error InvalidState: (propagating from src/api/ScfCaptureThread.cpp, function run(), line 110)
SCF: Error InvalidState: Session has suffered a critical failure (in src/api/Session.cpp, function capture(), line 796)
(Argus) Error InvalidState: (propagating from src/api/ScfCaptureThread.cpp, function run(), line 110)
SCF: Error InvalidState: Session has suffered a critical failure (in src/api/Session.cpp, function capture(), line 796)
(Argus) Error InvalidState: (propagating from src/api/ScfCaptureThread.cpp, function run(), line 110)
SCF: Error InvalidState: Session has suffered a critical failure (in src/api/Session.cpp, function capture(), line 796)
(Argus) Error InvalidState: (propagating from src/api/ScfCaptureThread.cpp, function run(), line 110)
SCF: Error InvalidState: Session has suffered a critical failure (in src/api/Session.cpp, function capture(), line 796)
(Argus) Error InvalidState: (propagating from src/api/ScfCaptureThread.cpp, function run(), line 110)
SCF: Error CaptureAborted: (propagating from src/components/stages/OrderedStage.cpp, function doExecute(), line 137)
(Argus) Error FileOperationFailed: Failed socket read: Connection reset by peer (in src/rpc/socket/common/SocketUtils.cpp, function readSocket(), line 79)
(Argus) Error FileOperationFailed: (propagating from libs/rpc_socket_server/ServerSocketManager.cpp, function recvThreadCore(), line 192)
(Argus) Error FileOperationFailed: (propagating from libs/rpc_socket_server/ServerSocketManager.cpp, function run(), line 58)
=== argus_camera_recording[2906]: Connection closed (FFFFBA5AB840)