Using nvvidconv in simple gstreamer pipeline causes a SIGSEGV

I run a Jetson tx2 and upgraded the yocto layer meta-tegra from dunfell version r32.4.3 to dunfell r32.6.1. This minimal example pipeline works well in the former version but not with r32.6.1

gst-launch-1.0 videotestsrc ! nvvidconv ! nvoverlaysink

The last few lines of the trace are

0:00:02.515295800   158   0x559f871a40 LOG                 basesink gstbasesink.c:2281:gst_base_sink_wait_clock:<nvoverlaysink-nvoverlaysink0> time 0:00:00.000000000, base_time 7:44:13.379937505
0:00:02.515321368   158   0x559f871a40 DEBUG              GST_CLOCK gstclock.c:256:gst_clock_entry_new:<GstSystemClock> created entry 0x559fa4a540, time 7:44:13.379937505
0:00:02.515355640   158   0x559f871a40 DEBUG              GST_CLOCK gstclock.c:557:gst_clock_id_wait:<GstSystemClock> waiting on clock entry 0x559fa4a540
0:00:02.515381336   158   0x559f871a40 DEBUG              GST_CLOCK gstclock.c:1091:gst_clock_get_internal_time:<GstSystemClock> internal time 7:44:13.390812713
0:00:02.515403832   158   0x559f871a40 DEBUG              GST_CLOCK gstclock.c:1136:gst_clock_get_time:<GstSystemClock> adjusted time 7:44:13.390812713
0:00:02.515429016   158   0x559f871a40 DEBUG              GST_CLOCK gstsystemclock.c:710:gst_system_clock_id_wait_jitter_unlocked: entry 0x559fa4a540 time 7:44:13.379937505 now 7:44:13.390812713 diff (time-now) 
-10875208
0:00:02.515451161   158   0x559f871a40 DEBUG              GST_CLOCK gstclock.c:565:gst_clock_id_wait:<GstSystemClock> done waiting entry 0x559fa4a540, res: 1 (early)
0:00:02.515474425   158   0x559f871a40 DEBUG               basesink gstbasesink.c:2712:gst_base_sink_do_sync:<nvoverlaysink-nvoverlaysink0> clock returned 1, jitter  0:00:00.010875208
0:00:02.515493817   158   0x559f871a40 DEBUG               basesink gstbasesink.c:3641:gst_base_sink_chain_unlocked:<nvoverlaysink-nvoverlaysink0> rendering object 0x55a066fa20
0:00:02.515517657   158   0x559f871a40 LOG                videosink gstvideosink.c:226:gst_video_sink_show_frame:<nvoverlaysink-nvoverlaysink0> rendering frame, ts=0:00:00.000000000
0:00:02.515535481   158   0x559f871a40 DEBUG           omxvideosink gstomxvideosink.c:1381:gst_omx_video_sink_show_frame:<nvoverlaysink-nvoverlaysink0> Received the frame
0:00:02.515558105   158   0x559f871a40 DEBUG                    omx gstomx.c:1015:gst_omx_component_get_last_error:<nvoverlaysink-nvoverlaysink0> Returning last yuv420 error: None (0x00000000)
0:00:02.515580057   158   0x559f871a40 DEBUG                    omx gstomx.c:1039:gst_omx_component_get_parameter:<nvoverlaysink-nvoverlaysink0> Getting yuv420 parameter at index 0x02000001
0:00:02.515603290   158   0x559f871a40 DEBUG                    omx gstomx.c:1042:gst_omx_component_get_parameter:<nvoverlaysink-nvoverlaysink0> Got yuv420 parameter at index 0x02000001: None (0x00000000)
0:00:02.515624154   158   0x559f871a40 DEBUG                    omx gstomx.c:1252:gst_omx_port_update_port_definition:<nvoverlaysink-nvoverlaysink0> Updated yuv420 port 0 definition: None (0x00000000)
0:00:02.515731834   158   0x559f871a40 DEBUG                    omx gstomx.c:2328:gst_omx_port_is_enabled:<nvoverlaysink-nvoverlaysink0> yuv420 port 0 is enabled: 1
0:00:02.515755035   158   0x559f871a40 DEBUG                    omx gstomx.c:1276:gst_omx_port_acquire_buffer:<nvoverlaysink-nvoverlaysink0> Acquiring yuv420 buffer from port 0
0:00:02.515783291   158   0x559f871a40 DEBUG                    omx gstomx.c:1387:gst_omx_port_acquire_buffer:<nvoverlaysink-nvoverlaysink0> yuv420 port 0 has pending buffers
0:00:02.515805915   158   0x559f871a40 DEBUG                    omx gstomx.c:1402:gst_omx_port_acquire_buffer:<nvoverlaysink-nvoverlaysink0> Acquired buffer 0x7fa0022240 (0x7fa0079870) from yuv420 port 0: 0
0:00:02.515903100   158   0x559f871a40 LOG               GST_BUFFER gstbuffer.c:1797:gst_buffer_map_range: buffer 0x55a066fa20, idx 0, length -1, flags 0001
0:00:02.515930940   158   0x559f871a40 LOG               GST_BUFFER gstbuffer.c:241:_get_merged_memory: buffer 0x55a066fa20, idx 0, length 1
Caught SIGSEGV
0:00:02.518511469   158   0x7f98002800 DEBUG                    omx gstomx.c:548:EventHandler:<nvoverlaysink-nvoverlaysink0> yuv420 unknown event 0x70e00001
#0  0x0000007fb45176c4 in __GI___poll
#1  0x0000007fb4654b00 in  () at /usr/lib/aarch64-linux-gnu/libglib-2.0.so.0
#2  0x0000007fb4654eb0 in g_main_loop_run ()
#3  0x0000007fb47f98ec in gst_bus_poll ()
#4  0x0000005591b78b18 in  ()
#5  0x0000005591b77928 in  ()
#6  0x0000007fb4470158 in __libc_start_main (main=
#7  0x0000005591b77fe4 in  ()

Spinning.  Please run 'gdb gst-launch-1.0 109' to continue debugging, Ctrl-C to quit, or Ctrl-\ to dump core.

The same pipeline does not crash when the nvvidconv element is omitted.

Hi,
You may try

$ gst-launch-1.0 videotestsrc is-live=1 ! nvvidconv ! 'video/x-raw(memory:NVMM)' ! nvoverlaysink

If it still crashes, you can build nvvidconv plugin manually and try again. The source code of the plugins is in
Jetson Linux R32.6.1 Release Page | NVIDIA Developer

L4T Driver Package (BSP) Sources

The pipeline you posted has the same problem but rebuilding from source solves it.
Thank you.

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