I can not change the framerate using GStreamer with custom image sensor

Hi, I am currently setting up a camera (640x480, outputting RAW8 or RAW10 or RAW12 MONO) on a Jetson Nano.
GStreamer pipeline I am testing is:
gst-launch-1.0 nvaruscamerasrc ! "video/x-raw(memory:NVMM), width=640, height=480, format=NV12, framerate=30/1 ! nvvidconv flip-method=clockwise ! xvimagesink
After calling this, new window pops-up and it is simply black, nothing is happening.
However, info from console is:

GST_ARGUS: Running with following settings:
Camera index = 0
Camera mode = 12
Output Stream W = 640 H = 480
seconds to Run = 0
Frame Rate = 50.000000

Therefore I am wondering, why frame rate is 50 when I have set it to be 30 (framerate=30/1)

v4l2-ctl --device /dev/video0 --list-formats-ext gives as follows (part of output):

ioctl: VIDIOC_ENUM_FMT
Index: 0
Type: Video Capture
Pixel Format: BA81
Name: 8-bit Bayer BGBG/GRGR
Size: Discrete 640x480 Interval: Discrete 0.033s (30.000fps)
Size: Discrete 480x360 Interval: Discrete 0.033s (30.000fps)
Size: Discrete 640x480 Interval: Discrete 0.033s (30.000fps)
Size: Discrete 480x360 Interval: Discrete 0.033s (30.000fps)
...(they are duplicated few times)

Index: 1
Type: Video Capture
Pixel Format: BG10
Name: 10-bit Bayer BGBG/GRGR
...the same as above

Any hints?

Hi,
It seems to be something wrong in device tree and sensor driver. Please check if you can run this command and see camera preview:

gst-launch-1.0 nvaruscamerasrc ! "video/x-raw(memory:NVMM), width=640, height=480, format=NV12, framerate=50/1" ! nvoverlaysink

Hi @DaneLLL
thanks for your input, as I do not have temporary access to hardware I can not verify your suggestion, however I will do that asap.

Besides that, I would like to provide some new insight to this challenge. I have from the vendor of the camera the “customized” image running on Jetson Nano. There is an application with GUI (and many configuration options) provided where camera works just fine and out-of-the-box (therefore I believe device tree and sensor driver are fine). From my understanding the code, Python invokes GStreamer pipeline with some parameters.

What I would like to achieve, is to get rid of the whole GUI app and just open the terminal, call proper GStreamer pipeline and see camera preview.

Camera vendor provides source codes to this app here. What is more interesting, I believe, is App.py (so far I am using software version 2.3.14), so please let me attach this file here for reference (please have a look at self.src = Gst.ElementFactory.make("nvarguscamerasrc", "src")). Therefore based on this source code I am trying to “extract” proper GStreamer pipeline.
App.py (83.2 KB)

Hi,
For more examples of gstreamer commands, you can take a look at gstreamer user guide. Beside gstreamer, we have jetson_multimedia_api. Please check
Jetson Linux API Reference: Main Page

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