nvarguscamerasrc frame rate limit

Hi,

Why is the nvarguscamerasrc GStreamer element limited to 120 FPS max? Is the source of this element available anywhere?

hello arne.caspari,

may I know your sensor capability and also what’s the your current results.
thanks

@JerryChang

I currently work on an IMX290. This sensor could produce for example 260 FPS @ 640x480 resolution. I could set such a mode with v4l2-ctl for example but not with the nvarguscamerasrc because the capabilities (GstCaps) of the element are limited to 120 FPS:

GObject
 +----GInitiallyUnowned
       +----GstObject
             +----GstElement
                   +----GstBaseSrc
                         +----GstNvArgusCameraSrc

Pad Templates:
  SRC template: 'src'
    Availability: Always
    Capabilities:
      video/x-raw(memory:NVMM)
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
                 format: { (string)NV12 }
              framerate: [ 0/1, 120/1 ]

Other sensors could produce more than 1000 FPS when running in cropped window mode so a frame rate limit does not really make sense at all.

hello arne.caspari,

please replace the libgstnvarguscamerasrc.so with the attachment,
you might perform warm-reboot to let the change takes effect.
thanks

@JerryChang

Thank you very much but unfortunately the new plugin does not load:

(gst-plugin-scanner:2680): GStreamer-WARNING **: 08:49:36.285: Failed to load plugin '/usr/lib/gstreamer-1.0/libgstnvarguscamerasrc.so': /usr/lib/gstreamer-1.0/libgstnvarguscamerasrc.so: undefined symbol: _ZN9EGLStream13FrameConsumer6createEPN5Argus12OutputStreamEPNS1_6StatusE

Is this for Jetpack 32.1 ?

hello arne.caspari,

yes, I was based-on l4t-r32.1 to make pre-built library for your testing.
let me check what’s going-on.

hello arne.caspari,

please try again with the attachment, you should replace the pre-built library as below.

$ sudo cp ~/libgstnvarguscamerasrc.so /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvarguscamerasrc.so

I’ve also confirm the modification works, it removes the 120-fps frame rate upper bound limitation.
for example,

$ gst-inspect-1.0 nvarguscamerasrc
...
Pad Templates:
  SRC template: 'src'
    Availability: Always
    Capabilities:
      video/x-raw(memory:NVMM)
                  width: [ 1, 2147483647 ]
                 height: [ 1, 2147483647 ]
                 format: { (string)NV12 }
              framerate: [ 0/1, 2147483647/1 ]

devtalk1056210_Jun26_v2.tar.gz (27.3 KB)

Hello JerryChang,

I will test this again on a clean Jetpack installation later on. I am currently using an OpenEmbedded image but it uses the libraries from JetPack 32.1 so it should make no difference. I will come back after I tested it on the original JetPack.

Oh, silly me, I mixed up the attachments. The v2 attachment has the unresolved symbol fixed. I will test and let you know.

Thank you very much!

Jerry, I tried v2 but am still seeing the symbol error:

nvidia@nvidia-desktop:~$ rm ~/.cache/gstreamer-1.0/registry.aarch64.bin 
nvidia@nvidia-desktop:~$ gst-inspect-1.0
...
(gst-plugin-scanner:9675): GStreamer-WARNING **: 09:14:12.394: Failed to load plugin '/usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvarguscamerasrc.so': /usr/lib/aarch64-linux-gnu/gstreamer-1.0/libgstnvarguscamerasrc.so: undefined symbol: _ZN9EGLStream13FrameConsumer6createEPN5Argus12OutputStreamEjPNS1_6StatusE
...

$ objdump -x libgstnvarguscamerasrc.so |grep EjPNS1
0000000000000000       F *UND*	0000000000000000              _ZN9EGLStream13FrameConsumer6createEPN5Argus12OutputStreamEjPNS1_6StatusE
                        # ^^^

This is with JetPack 4.2.1 / L4T 32.2 on TX2. I will try again with 4.2.2, but I want to make sure first that I have the right file. Is this correct for v2?—

$ sha256sum devtalk1056210_Jun26_v2.tar.gz devtalk1056210_Jun26_v2/libgstnvarguscamerasrc.so 
65a2f403b862f6b3ab823ec7c72801f693f811f438477fe052a9e10a8b128892  devtalk1056210_Jun26_v2.tar.gz
dae759e9e7b78b5e71bbf6b65889c89c21df027b556b44f7f0f5f4001e39e9ac  devtalk1056210_Jun26_v2/libgstnvarguscamerasrc.so

Thanks!

hello D3_cwhite,

please note that there’s code-base dependency.
to summarize, you should working with below to removes the 120-fps frame rate upper bound limitation.
JetPack 4.2/l4t-r32.1, to apply the pre-built library in comment #7.
JetPack 4.2.1/l4t-r32.2, please apply the pre-built library in Topic 1062039.

this change already integrate to release code-line, please expect later release will include that fix.
thanks

Dear Jerry Chang,

the download link in your comment #7 is broken. I got only an XML error page with Access Denied. Could you please fix the link or reupload the devtalk1056210_Jun26_v2.tar.gz file?

It is used by the CenturyArks IMX378 setup for Jetson TX2 which I need to use and CenturyArks doesn’t provide a copy or download mirror.

Best regards,
Robert