JP 5.0 DP GStreamer Pipeline Crash

I flashed Jetson Xavier device with JetPack 5.0 DP.
Now I try to launch a simple GStreamer pipeline like:

gst-launch -v nvv4l2camerasrc ! nvvidconv ! xvimagesink

The pipeline starts but immediately fails with an error

gst_nvvconv_transform: NvBufSurfTransform Failed

Then I tried the pipeline from here:
https://docs.nvidia.com/jetson/archives/r34.1/DeveloperGuide/text/SD/Multimedia/AcceleratedGstreamer.html#progressive-capture-using-nvv4l2camerasrc
But get almost the same errror:

gst_nvvconv_transform: NvBufSurfTransform Failed 
ERROR: from element /GstPipeline:pipeline0/GstNvV4l2CameraSrc:nvv4l2camerasrc0: Internal data stream error.
Additional debug info:
gstbasesrc.c(3072): gst_base_src_loop (): /GstPipeline:pipeline0/GstNvV4l2CameraSrc:nvv4l2camerasrc0:
streaming stopped, reason error (-5)
Execution ended after 0:00:00.588320372
Setting pipeline to PAUSED ...
Caught SIGSEGV

Moreover, this JP looks to use GStreamer 1.16.2 but nvv4l2camerasrc still has version 1.14.5.
Is it some bug related to beta version of JP 5.0 which is going to be fixed in the official release?

2 Likes

Indeed, the gstreamer1.0-x version is 1.16.2, while gst-inspect-1.0 nvv4l2camerasrc shows 1.14.5.

For now, a workaround would probably be to use v4l2src… But I hope it is fixed until final 5.0 release, because from my understanding v4l2src uses non-GPU part of RAM.

The intention is exactly to use nVidia GPU-accelerated elements (such as nvv4l2camerasrc) otherwise it is easier to use simple PC with more powerful CPU.
So I assume it needs to be fixed.

I updated to JP 5.0.1 and it has the same issues: nvv4l2camerasrc is of version 1.14.5 and the pipeline doesn’t work. Error is the same and here are some more output:

ERROR: from element /GstPipeline:pipeline0/GstNvV4l2CameraSrc:nvv4l2camerasrc0: Internal data stream error.
Additional debug info:
gstbasesrc.c(3072): gst_base_src_loop (): /GstPipeline:pipeline0/GstNvV4l2CameraSrc:nvv4l2camerasrc0:
streaming stopped, reason error (-5)
Execution ended after 0:00:00.767096853
Caught SIGSEGV
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
#0  syscall () at ../sysdeps/unix/sysv/linux/aarch64/syscall.S:38
#1  0x0000ffff8c909b9c in g_cond_wait ()
#2  0x0000ffff6f74b2c4 in  ()
#3  0x0000ffff6f74ce34 in  ()
#4  0x0000ffff8c9be7e0 in g_object_unref ()
#5  0x0000ffff6f75264c in  ()
#6  0x0000ffff8bcbf40c in gst_base_sink_change_state
#7  0x0000ffff8ca79834 in gst_element_change_state
#8  0x0000ffff8ca79f88 in gst_element_set_state_func
#9  0x0000ffff8ca530ec in gst_bin_element_set_state
#10 gst_bin_change_state_func
#11 0x0000ffff8caa3398 in gst_pipeline_change_state
#12 0x0000ffff8ca79834 in gst_element_change_state
#13 0x0000ffff8ca79f88 in gst_element_set_state_func
#14 0x0000aaaac0bd3a6c in main (argc=<optimized out>, argv=<optimized out>)
Spinning.  Please run 'gdb gst-launch-1.0 3893' to continue debugging, Ctrl-C to quit, or Ctrl-\ to dump core.

@DaneLLL Hi, any news regarding this? Using v4l2src isn’t a real workaround since it utilizes the CPU while nvv4l2camerasrc utilizes the GPU, is that accurate?

Thanks.

Hi,
This is a known issue on 5.0.1 DP. We will fix it in next production release.

Thanks @DaneLLL.

  1. I’m using TC358743 HDMI to CSI which produces UYVY8 (can also do RGB888) frames, is there another way or workaround to move video processing from the CPU to GPU?

  2. Can you please estimate time to next DP version with a fix?

Thank you.

@DaneLLL, is there page for known issues on the DP?

@DaneLLL or someone else?

Hi,
We are working on next production release. Please kindly wait for it.

Hi,
if you cant wait and have courage enough to compile gstreamer from sources.
Patching the file: gstreamer/subprojects/gstreamer/gst/gstplugin.c worked for me.(Jetson Xavier NX)

/* libgstpython.so is the gst-python plugin loader. It needs to be loaded with

  • G_MODULE_BIND_LAZY.
  • Ideally there should be a generic way for plugins to specify that they
  • need to be loaded with _LAZY.
  • */
    if (strstr (filename, “libgstpython”))
    flags |= G_MODULE_BIND_LAZY;
  • if (strstr (filename, “libgstnv”))
  • flags |= G_MODULE_BIND_LAZY;
  • if (strstr (filename, “libnvdsgst”))
  • flags |= G_MODULE_BIND_LAZY;
1 Like

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