Issue with Argus services for GStreamer(Error BadParameter)

Hi,
After fresh flesh from microSD. (JetPack 36.4.7) I can’t use GStreamer services. I did configuration in Jetson.io for my camera IMX219 and camera is avaliable, but I facing that error:

gst-launch-1.0 nvarguscamerasrc sensor_id=0 ! ‘video/x-raw(memory:NVMM), width=(int)640, height=(int)480, framerate=(fraction)30/1’ ! nvvidconv ! nveglglessink
Setting pipeline to PAUSED …

Using winsys: x11
Pipeline is live and does not need PREROLL …
Got context from element ‘eglglessink0’: gst.egl.EGLDisplay=context, display=(GstEGLDisplay)NULL;
Pipeline is PREROLLED …
Setting pipeline to PLAYING …
New clock: GstSystemClock
GST_ARGUS: Creating output stream
(Argus) Error BadParameter:  (propagating from src/eglstream/FrameConsumerImpl.cpp, function initialize(), line 93)
(Argus) Error BadParameter:  (propagating from src/eglstream/FrameConsumerImpl.cpp, function create(), line 44)
Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, threadInitialize:318 Failed to create FrameConsumer
Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, threadFunction:239 (propagating)
Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, waitRunning:201 Invalid thread state 3
Error generated. /dvs/git/dirty/git-master_linux/multimedia/nvgstreamer/gst-nvarguscamera/gstnvarguscamerasrc.cpp, execute:849 (propagating)
Redistribute latency…
WARNING: from element /GstPipeline:pipeline0/GstEglGlesSink:eglglessink0: Pipeline construction is invalid, please add queues.
Additional debug info:
../libs/gst/base/gstbasesink.c(1249): gst_base_sink_query_latency (): /GstPipeline:pipeline0/GstEglGlesSink:eglglessink0:
Not enough buffering available for  the processing deadline of 0:00:00.015000000, add enough queues to buffer  0:00:00.015000000 additional data. Shortening processing latency to 0:00:00.000000000.
WARNING: from element /GstPipeline:pipeline0/GstEglGlesSink:eglglessink0: Pipeline construction is invalid, please add queues.
Additional debug info:
../libs/gst/base/gstbasesink.c(1249): gst_base_sink_query_latency (): /GstPipeline:pipeline0/GstEglGlesSink:eglglessink0:
Not enough buffering available for  the processing deadline of 0:00:00.015000000, add enough queues to buffer  0:00:00.015000000 additional data. Shortening processing latency to 0:00:00.000000000.
Got EOS from element “pipeline0”.
Execution ended after 0:00:00.195508349
Setting pipeline to NULL …
Freeing pipeline …

(gst-launch-1.0:5601): GStreamer-WARNING \*\*: 13:03:05.567: The default memory allocator was freed!

(gst-launch-1.0:5601): GStreamer-CRITICAL \*\*: 13:03:05.567: gst_object_unref: assertion ‘((GObject \*) object)->ref_count > 0’ failed

How I can solve my Issue with Argus?

*** Please note that this reply is generated by LLM automatically ***

Based on the provided context, it appears that you are experiencing issues with using GStreamer services on your Jetson Orin Nano device after a fresh flash from microSD with JetPack 3.6.4.7. You have configured your camera, IMX219, in JetsonIO, and it is available, but you are facing an error.

To solve your issue with Argus, I would recommend the following steps:

  1. Check the camera configuration: Ensure that your camera configuration in JetsonIO is correct and matches the settings for your IMX219 camera.
  2. Verify the GStreamer version: Check the version of GStreamer installed on your Jetson Orin Nano device. You can do this by running the command gst-inspect-1.0 --version in the terminal.
  3. Check for known issues: Review the known issues section in the provided documentation, specifically the section on “General Issues” in the Jetson Virtual Channel with GMSL Camera Framework. This may help you identify any common problems that could be causing your error.
  4. Use the Argus NvRaw Tool: Try using the Argus NvRaw Tool to capture raw images from your camera. This tool can help you troubleshoot issues with your camera and GStreamer configuration. You can refer to the documentation on using the Argus NvRaw Tool, including the prerequisites, camera sensor modes, and nvargus_nvraw command usage.
  5. Check the NVIDIA Capture Driver Code Path: Ensure that the NVIDIA Capture Driver Code Path is correctly configured for your Jetson Orin Nano device. You can refer to the documentation on the NVIDIA Capture Driver Code Path, including the configuration changes, kernel version-specific code, dev_err() function, and I2C API.
  6. Consult the Jetson Linux documentation: Review the Jetson Linux documentation, specifically the sections on camera development, GStreamer, and Argus. This may help you find additional information or troubleshooting steps to resolve your issue.

In comparison to other issues mentioned in the provided context, your problem seems to be related to the configuration of GStreamer services and the Argus framework. The issues mentioned in the context, such as the “Nvv4l2camerasrc distorts colors in images from IMX290” or “Gst-nvarguscamera fails on Jetpack 6.0,” may not be directly related to your problem. However, reviewing the solutions and troubleshooting steps mentioned in the context may still be helpful in resolving your issue.

If you are still unable to resolve your issue, I recommend providing more details about the error you are facing, including any error messages or logs. This will help me provide a more specific and accurate solution to your problem.

*** Please give the thumbs up if you get answers you like. Or provide feedback to help us improve the answer. ***

Hello @korlatowicz44,

Can we run a few tests to corner the source of the issue?

  1. Lets try a simple capture pipe to a fake sink just to make sure is not the camera:
gst-launch-1.0 nvarguscamerasrc sensor_id=0 ! ‘video/x-raw(memory:NVMM), width=(int)640, height=(int)480, framerate=(fraction)30/1’ ! fakesink
  1. The issue you shared mentioned that the <> element requires queues because there is not enough space for buffering, let’s then try adding one queue before that element.
gst-launch-1.0 nvarguscamerasrc sensor_id=0 ! ‘video/x-raw(memory:NVMM), width=(int)640, height=(int)480, framerate=(fraction)30/1’ ! nvvidconv ! queue ! nveglglessink

Please let me know how those 2 tests go.

best regards,
Andrew
Embedded Software Engineer at ProventusNova

Do you run the gst-launch-1.0 command by ssh connection?

You may need below command before gst-launch-1.0 command.

export DISPLAY=:0

gst-launch-1.0 nvarguscamerasrc sensor_id=0 ! 'video/x-raw(memory:NVMM), width=(int)640, height=(int)480, framerate=(fraction)30/1' ! nvvidconv ! queue ! nveglglessink
Setting pipeline to PAUSED ...

Using winsys: x11 
Pipeline is live and does not need PREROLL ...
Got context from element 'eglglessink0': gst.egl.EGLDisplay=context, display=(GstEGLDisplay)NULL;
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 = 0 
   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.
Redistribute latency...
ERROR: from element /GstPipeline:pipeline0/GstEglGlesSink:eglglessink0: Output window was closed
Additional debug info:
/dvs/git/dirty/git-master_linux/3rdparty/gst/gst-nveglglessink/ext/eglgles/gsteglglessink.c(914): gst_eglglessink_event_thread (): /GstPipeline:pipeline0/GstEglGlesSink:eglglessink0
Execution ended after 0:01:31.657630734
Setting pipeline to NULL ...
GST_ARGUS: Cleaning up
CONSUMER: Done Success
GST_ARGUS: Done Success
Freeing pipeline ...

(gst-launch-1.0:6283): GStreamer-WARNING **: 07:00:01.999: The default memory allocator was freed!

(gst-launch-1.0:6283): GStreamer-CRITICAL **: 07:00:01.999: gst_object_unref: assertion '((GObject *) object)->ref_count > 0' failed
````Preformatted text`


gst-launch-1.0 nvarguscamerasrc sensor_id=0 ! 'video/x-raw(memory:NVMM), width=(int)1280, height=(int)720, framerate=(fraction)30/1' ! nvvidconv ! nveglglessink
Setting pipeline to PAUSED ...

Using winsys: x11 
Pipeline is live and does not need PREROLL ...
Got context from element 'eglglessink0': gst.egl.EGLDisplay=context, display=(GstEGLDisplay)NULL;
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 = 0 
   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.
Redistribute latency...
WARNING: from element /GstPipeline:pipeline0/GstEglGlesSink:eglglessink0: Pipeline construction is invalid, please add queues.
Additional debug info:
../libs/gst/base/gstbasesink.c(1249): gst_base_sink_query_latency (): /GstPipeline:pipeline0/GstEglGlesSink:eglglessink0:
Not enough buffering available for  the processing deadline of 0:00:00.015000000, add enough queues to buffer  0:00:00.015000000 additional data. Shortening processing latency to 0:00:00.000000000.
WARNING: from element /GstPipeline:pipeline0/GstEglGlesSink:eglglessink0: Pipeline construction is invalid, please add queues.
Additional debug info:
../libs/gst/base/gstbasesink.c(1249): gst_base_sink_query_latency (): /GstPipeline:pipeline0/GstEglGlesSink:eglglessink0:
Not enough buffering available for  the processing deadline of 0:00:00.015000000, add enough queues to buffer  0:00:00.015000000 additional data. Shortening processing latency to 0:00:00.000000000.
ERROR: from element /GstPipeline:pipeline0/GstEglGlesSink:eglglessink0: Output window was closed
Additional debug info:
/dvs/git/dirty/git-master_linux/3rdparty/gst/gst-nveglglessink/ext/eglgles/gsteglglessink.c(914): gst_eglglessink_event_thread (): /GstPipeline:pipeline0/GstEglGlesSink:eglglessink0
Execution ended after 0:00:04.644439587
Setting pipeline to NULL ...
GST_ARGUS: Cleaning up
CONSUMER: Done Success
GST_ARGUS: Done Success
Freeing pipeline ...
Thanks. Your solution helps me and I have access to camera from GStreamer.

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