Jetson orin nano developer kit:jetpack 6.2.1/ 36.4.7: nvarguscamerasrc fails to load the camera with id = 1 when launched for the second time

steps to recreate the problem

  1. open new terminal (Ctrl+Alt+T) copy and paste the following for cam 0:

gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! ‘video/x-raw(memory:NVMM),width=1280,height=720’ ! queue ! nvvidconv ! xvimagesink name=sink0

result: new window opens with cmaer0 feed, works well without any issue.

  1. open new terminal (Ctrl+Alt+T) copy and paste the following for cam 1:

gst-launch-1.0 nvarguscamerasrc sensor-id=1 ! ‘video/x-raw(memory:NVMM),width=1280,height=720’ ! queue ! nvvidconv ! xvimagesink name=sink0

result: new window opens with cmaer1 feed, works well without any issue.

  1. close cam0 and cam1 one after another using Ctrl+C on respective terminals.

cam0 output:

^Chandling interrupt.
Interrupt: Stopping pipeline …
Execution ended after 0:01:22.497974661
Setting pipeline to NULL …
GST_ARGUS: Cleaning up
ERROR: from element /GstPipeline:pipeline0/GstNvArgusCameraSrc:nvarguscamerasrc0: CANCELLED
Additional debug info:
Argus Correctable Error Status
An error happened while waiting for EOS
ERROR: from element /GstPipeline:pipeline0/GstNvArgusCameraSrc:nvarguscamerasrc0: CANCELLED
Additional debug info:
Argus Correctable Error Status
An error happened while waiting for EOS
CONSUMER: Done Success
GST_ARGUS: Done Success
Freeing pipeline …

cam1 output:

^Chandling interrupt.
Interrupt: Stopping pipeline …
Execution ended after 0:01:03.336377083
Setting pipeline to NULL …
GST_ARGUS: Cleaning up
ERROR: from element /GstPipeline:pipeline0/GstNvArgusCameraSrc:nvarguscamerasrc0: CANCELLED
Additional debug info:
Argus Correctable Error Status
An error happened while waiting for EOS
CONSUMER: Done Success
GST_ARGUS: Done Success
Freeing pipeline …

  1. restart cam0 using:

gst-launch-1.0 nvarguscamerasrc sensor-id=0 ! ‘video/x-raw(memory:NVMM),width=1280,height=720’ ! queue ! nvvidconv ! xvimagesink name=sink0

result: runs without problem

  1. restart cam1 using:

gst-launch-1.0 nvarguscamerasrc sensor-id=1 ! ‘video/x-raw(memory:NVMM),width=1280,height=720’ ! queue ! nvvidconv ! xvimagesink name=sink0

result: window open with black screen no feed and closess with following error log

Setting pipeline to PAUSED …
Pipeline is live and does not need PREROLL …
Pipeline is PREROLLED …
Setting pipeline to PLAYING …
New clock: GstSystemClock
GST_ARGUS: Creating output stream
CONSUMER: Waiting until producer is connected…
GST_ARGUS: Available Sensor modes :
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;

GST_ARGUS: Running with following settings:
Camera index = 1
Camera mode = 4
Output Stream W = 1280 H = 720
seconds to Run = 0
Frame Rate = 59.999999
GST_ARGUS: Setup Complete, Starting captures for 0 seconds
GST_ARGUS: Starting repeat capture requests.
CONSUMER: Producer has connected; continuing.
nvbuf_utils: dmabuf_fd -1 mapped entry NOT found
Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, threadExecute:760 NvBufSurfaceFromFd Failed.
Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, threadFunction:244 (propagating)
Redistribute latency…
Got EOS from element “pipeline0”.
Execution ended after 0:00:04.018308432
Setting pipeline to NULL …
GST_ARGUS: Cleaning up

(gst-launch-1.0:5790): GStreamer-Video-CRITICAL **: 15:31:55.834: gst_video_center_rect: assertion ‘src->h != 0’ failed

(gst-launch-1.0:5790): GStreamer-Video-CRITICAL **: 15:31:55.885: gst_video_center_rect: assertion ‘src->h != 0’ failed

(gst-launch-1.0:5790): GStreamer-Video-CRITICAL **: 15:31:55.935: gst_video_center_rect: assertion ‘src->h != 0’ failed

(gst-launch-1.0:5790): GStreamer-Video-CRITICAL **: 15:31:55.985: gst_video_center_rect: assertion ‘src->h != 0’ failed
GST_ARGUS: Done Success

(gst-launch-1.0:5790): GStreamer-Video-CRITICAL **: 15:32:00.699: gst_video_center_rect: assertion ‘src->h != 0’ failed

(gst-launch-1.0:5790): GStreamer-Video-CRITICAL **: 15:32:00.749: gst_video_center_rect: assertion ‘src->h != 0’ failed

(gst-launch-1.0:5790): GStreamer-Video-CRITICAL **: 15:32:00.800: gst_video_center_rect: assertion ‘src->h != 0’ failed

(gst-launch-1.0:5790): GStreamer-Video-CRITICAL **: 15:32:00.850: gst_video_center_rect: assertion ‘src->h != 0’ failed

(gst-launch-1.0:5790): GStreamer-Video-CRITICAL **: 15:32:00.900: gst_video_center_rect: assertion ‘src->h != 0’ failed

(gst-launch-1.0:5790): GStreamer-Video-CRITICAL **: 15:32:00.951: gst_video_center_rect: assertion ‘src->h != 0’ failed

(gst-launch-1.0:5790): GStreamer-Video-CRITICAL **: 15:32:01.202: gst_video_center_rect: assertion ‘src->h != 0’ failed
Freeing pipeline …

please try to recreate in this order.

We test again on JP-6.2.2 (r36.5) on Orin-Nano with imx477, confirmed we still can’t reproduce issue.
The sensor-id=0 and 1 are working well at second and third times.