CSI camera pipeline fails

Hi,

I am trying to run a GStreamer pipeline to grab frames from an Arducam CSI camera module. Please see the pipeline below.

gst-launch-1.0 -v nvarguscamerasrc ! "video/x-raw(memory:NVMM), width=3280, height=2464" ! nvvidconv ! "video/x-raw, format=RGBA" ! fpsdisplaysink video-sink=fakesink sync=false

This pipeline is failing with the below error.

CONSUMER: Producer has connected; continuing.
ARGUS_ERROR: Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, execute: 1206 InvalidState.
GST_ARGUS: Cleaning up
ERROR: from element /GstPipeline:pipeline0/GstNvArgusCameraSrc:nvarguscamerasrc0: CANCELLED
Additional debug info:
Argus Error Status
nvbuf_utils: dmabuf_fd -1 mapped entry NOT found
Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, threadExecute:732 NvBufSurfaceFromFd Failed.
Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, threadFunction:243 (propagating)

The camera supports the modes below.

GST_ARGUS: 3280 x 2464 FR = 21.000000 fps Duration = 47619048 ; Analog Gain range min 1.000000, max 10.625000; Exposure Range min 13000, max 683709000;

GST_ARGUS: 3280 x 1848 FR = 28.000001 fps Duration = 35714284 ; Analog Gain range min 1.000000, max 10.625000; Exposure Range min 13000, max 683709000;

GST_ARGUS: 1920 x 1080 FR = 29.999999 fps Duration = 33333334 ; Analog Gain range min 1.000000, max 10.625000; Exposure Range min 13000, max 683709000;

GST_ARGUS: 1640 x 1232 FR = 29.999999 fps Duration = 33333334 ; Analog Gain range min 1.000000, max 10.625000; Exposure Range min 13000, max 683709000;

GST_ARGUS: 1280 x 720 FR = 59.999999 fps Duration = 16666667 ; Analog Gain range min 1.000000, max 10.625000; Exposure Range min 13000, max 683709000;

However, if I use 1920x1080 or 1280x720 resolution, the pipeline works fine. Please let me know if I am missing anything here.

I have had this problem as well with CSI cameras and have noticed that you need to specify the frame-rate for some of these to work - I can get 3280x2464 to work when specifying frame rate on my IMX219 (arducam B0190)

Do you know why this happens? the plugin should pick the possible framerate according to the resolution. I feel this is a bug and needs to be addressed.

Between, I tried providing the framerate manually, and it worked. Thanks, Mitchell.

My assumption is that it is using a default frame-rate for streamer if it’s not specified, so then it isn’t matching. If you try to put in frame-rate of 30 for the highest resolution it will fail as well - so it’s definitely the system having a mismatch, that causes this error. I assume it works for lower resolutions because it supports those fr.

1 Like

The nvarguscamerasrc set the 30 as default frame rate.
The root cause is the 3840x2160 sensor mode only 21fps that less than 30fps.
You can modify the nvarguscamerasrc to query the frame rate than set it to avoid the problem.

Hi @ShaneCCC,

Thank you for your response. Some other users may be experiencing this issue, fixing it and rebuilding the NVIDIA proprietary plugins isn’t a scalable solution for developers working on Jetson deployment infrastructure. Therefore, I recommend treating this as a bug to be resolved in future releases.