Hardware Triggering with enableCamInfiniteTimeout=1

I’m hardware triggering 6 cameras and I’ve had to manually run the nvargus-daemon with infinite timeout enabled:

sudo enableCamInfiniteTimeout=1 nvargus-daemon

My use case is changing the framerate from 1 FPS to 30FPS during operation. It is 1 FPS for synchronisation and 30FPS after it is synchronised. Without infinite timeout enabled, I get the following error:

(NvCapture) Error Timeout: capture waiting for status timeout (in /dvs/git/dirty/git-master_linux/camera/capture/nvcapture/capture_hw_linux.c, function NvCaptureLinuxGetCaptureStatus(), line 362)
(NvCapture) Error Timeout:  (propagating from /dvs/git/dirty/git-master_linux/camera/capture/nvcapture/capture.c, function NvCaptureDequeue(), line 1055)
SCF: Error Timeout:  (propagating from src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 898)
SCF: Error InvalidState: Timeout waiting on frame end sensor guid 2, capture sequence ID = 1, channel = 1/1 (in src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 905)
SCF: Error InvalidState: Something went wrong with waiting on frame end (in src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 991)
SCF: Error InvalidState: Something went wrong with waiting on frame end (in src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 991)

Are there any plans to make this native behaviour and/or catch the errors?

hello Hommus,

is your use-case to use hardware triggering these cameras individually for synchronization?
the failure is due to there’s internal 2500ms timeout limit. it’ll report timed out failure if the later camera did not sending frames within the limit.

Correct.
Can I change the timeout or turn it off?

hello Hommus,

that’s enableCamInfiniteTimeout to configure all the timeout values at once.

@JerryChang
Can I change the timeout or turn it off without using the infinite timeout?

hello Hommus,

it’s only 2500ms timeout and InfiniteTimeout for using Argus pipeline.

Hi @JerryChang,
I know the timeout is 2500ms. I asked if I can change the timeout without using enableCamInfiniteTimeout ?

no. you cannot adjust the timeout values.

Is there an update planned to improve the reliability and error-handling capability of argus?

Following this up:
I increased the 2500ms timeout to 30000ms and the errors still occur, even before 30 seconds has passed. Can you explain this behaviour? I would love to get this solved ASAP.

Full error message:

=== nodelet[17473]: CameraProvider initialized (0x7f88cb34a0)SCF: Error BadValue: NvPHSSendThroughputHints (in src/common/CameraPowerHint.cpp, function sendCameraPowerHint(), line 56)
LSC: LSC surface is not based on full res!
X11 connection rejected because of wrong authentication.
(NvCapture) Error Timeout: capture waiting for status timeout (in /dvs/git/dirty/git-master_linux/camera/capture/nvcapture/capture_hw_linux.c, function NvCaptureLinuxGetCaptureStatus(), line 362)
(NvCapture) Error Timeout:  (propagating from /dvs/git/dirty/git-master_linux/camera/capture/nvcapture/capture.c, function NvCaptureDequeue(), line 1055)
SCF: Error Timeout:  (propagating from src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 898)
SCF: Error InvalidState: Timeout waiting on frame end sensor guid 2, capture sequence ID = 1, channel = 1/1 (in src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 905)
SCF: Error InvalidState: Something went wrong with waiting on frame end (in src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 991)
SCF: Error InvalidState: Something went wrong with waiting on frame end (in src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 991)
SCF: Error InvalidState: Timeout waiting on frame start sensor guid 2, capture sequence ID = 1 (in src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameStart(), line 1018)
SCF: Error InvalidState: Something went wrong with waiting on frame start (in src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameStart(), line 1077)
SCF: Error InvalidState: Something went wrong with waiting on frame start (in src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameStart(), line 1077)
PowerServiceCore:handleRequests: timePassed = 1669
(NvCapture) Error Timeout: capture waiting for status timeout (in /dvs/git/dirty/git-master_linux/camera/capture/nvcapture/capture_hw_linux.c, function NvCaptureLinuxGetCaptureStatus(), line 362)
(NvCapture) Error Timeout:  (propagating from /dvs/git/dirty/git-master_linux/camera/capture/nvcapture/capture.c, function NvCaptureDequeue(), line 1055)
SCF: Error Timeout:  (propagating from src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 898)
SCF: Error InvalidState: Timeout waiting on frame end sensor guid 2, capture sequence ID = 4, channel = 1/1 (in src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 905)
SCF: Error InvalidState: Something went wrong with waiting on frame end (in src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 991)
SCF: Error InvalidState: Timeout waiting on frame start sensor guid 2, capture sequence ID = 4 (in src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameStart(), line 1018)
SCF: Error InvalidState: Something went wrong with waiting on frame start (in src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameStart(), line 1077)
PowerServiceCore:handleRequests: timePassed = 1678
(NvCapture) Error Timeout: capture waiting for status timeout (in /dvs/git/dirty/git-master_linux/camera/capture/nvcapture/capture_hw_linux.c, function NvCaptureLinuxGetCaptureStatus(), line 362)
(NvCapture) Error Timeout:  (propagating from /dvs/git/dirty/git-master_linux/camera/capture/nvcapture/capture.c, function NvCaptureDequeue(), line 1055)
SCF: Error Timeout:  (propagating from src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 898)
SCF: Error InvalidState: Timeout waiting on frame end sensor guid 2, capture sequence ID = 6, channel = 1/1 (in src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 905)
SCF: Error InvalidState: Something went wrong with waiting on frame end (in src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameEnd(), line 991)
SCF: Error InvalidState: Timeout waiting on frame start sensor guid 2, capture sequence ID = 6 (in src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameStart(), line 1018)
SCF: Error InvalidState: Something went wrong with waiting on frame start (in src/services/capture/NvCaptureViCsiHw.cpp, function waitCsiFrameStart(), line 1077)
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 997)
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

hello Hommus,

2500ms is the basic timeout value for waiting frame-start, and then the whole pipeline could works normally.
there isn’t a single timeout property, and some of them you cannot configured dynamically.

What is the 2500ms timeout measured between?
The start of the camera provider and the first frame-start?

hello Hommus,

to be precisely, it’s from Argus sending capture request till frame-start has arrived.

When I trigger the cameras, it normally takes 23-25 triggers before argus gets the first image using acquireFrame. This could explain why the 2500ms timeout is being hit.

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