Couldn't capture video after reset the communication between CPU and camera

We add a device between CPU(nano) and camera. CPU(nano) connects the device, the device connects camera.
We could capture the video in the above connection situation by command nvgstcapture-1.0 --sensor-id=0.
But the video is stopped after we reset the device in the middle and device is restored to normal working state.
There are following error information:
GST_ARGUS: Setup Complete, Starting captures for 0 seconds
GST_ARGUS: Starting repeat capture requests.
CONSUMER: Producer has connected; continuing.
CONSUMER: ERROR OCCURRED
ERROR on bus: by /GstPipeline:capture_native_pipeline/GstBin:cap_bin/GstNvArgusCameraSrc:nvarguscamerasrc0: TIMEOUT
debug info:
Argus Error Status
GST_ARGUS: Cleaning up
(Argus) Error Timeout: (propagating from src/rpc/socket/client/ClientSocketManager.cpp, function send(), line 137)
(Argus) Error Timeout: (propagating from src/rpc/socket/client/SocketClientDispatch.cpp, function dispatch(), line 91)
(Argus) Error Timeout: (propagating from src/rpc/socket/client/ClientSocketManager.cpp, function send(), line 137)
(Argus) Error Timeout: (propagating from src/rpc/socket/client/SocketClientDispatch.cpp, function dispatch(), line 91)

Then we stoped the command nvgstcapture-1.0 --sensor-id=0, and run the command again.
We couldn’t capture video. The error information is :
Using winsys: x11
** Message: 14:15:15.133: main:4734 iterating capture loop …
Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, execute:762 Failed to create CaptureSession.

We run the command v4L2-ctl --device /dev/video0 --stream-mmap --stream-to=/dev/null --stream-count=0. The error information is :
VIDIOC_REQBUFS returned -1 (Device or resource busy)

Then we just reboot CPU, and we could capture video.
Could you please help to check the issue?

Add the failure image.

What do you means?

Try below command for v4l2-ctl command.

sudo service nvargus-daemon restart
v4L2-ctl --device /dev/video0 --stream-mmap -c bypass_mode=0

The device is between the CPU(nano) and camera. The device could transfer the video data between CPU and camera. we reset the device, and hope the video could work normally. But the video is freezed after reset,I move the camera, the video don’t move with the camera.
I think the actual effect of device reset is that camera doesn’t send video data to CPU. after 1 second, camera sends video data to CPU again.
device

After reset the device, run the command ‘sudo service nvargus-daemon restart
v4L2-ctl --device /dev/video0 --stream-mmap -c bypass_mode=0’. The first freezed video window is closed automatically.
Then run the command nvgstcapture-1.0 --sensor-id=0 again. We could capture the video.
Do you have method to not close the first freezed video window, and let the freezed video work normally?
So our customer doesn’t find that the device has been reset.

You can reference to the userAutoExposure sample code of MMAPI to receive the EVENT_TYPE_ERROR to terminal the APP and restart it again. There’s no way not terminal current session.

Could you please share the download path of the userAutoExposure sample code of MMAPI.
Could we still keep the freezed video window, just terminate current session, then start a new session and out put video data to the original video window.

sudo apt list -a nvidia-l4t-jetson-multimedia-api
sudo apt install nvidia-l4t-jetson-multimedia-api=35.xxxx

For keeping the frozen window you need to implement it by yourself. The sample code don’t keep the window.

run the command ‘sudo apt list -a nvidia-l4t-jetson-multimedia-api’
The command result is just ‘Listing … Done’. No other version information.
I also try to run ‘sudo apt update’, then run ‘sudo apt list -a nvidia-l4t-jetson-multimedia-api’. But the result is same.

What do I need to configure to get the version information?

This commands need run on Jetson Nano.

Sure. I installed nvidia-l4t-jetson-multimedia-api=35.3.1-20230319081403.
I don’t find the userAutoExposure sample code file.
Could you please share the path of the userAutoExposure sample code file?

I find the path. /usr/src/nvidiaMultimedia\jetson_multimedia_api\argus\samples\userAutoExposure

Do you know the code path of nvgstcapture-1.0?

Should be able find in download center.

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