Hi, I am running into segfaults in the nvcompositor
when using it to compose buffers from nvarguscamerasrc
.
I have this minimal example that segfaults every time. When run in GDB the example shows that it segfaults somewhere inside /usr/lib/gstreamer-1.0/libgstnvcompositor.so
Because I do not have the source of that .so-file, I can not debug this further.
#!/bin/bash
gst-launch-1.0 \
nvcompositor name=comp ! \
'video/x-raw(memory:NVMM),width=(int)4056,height=(int)3040,framerate=30/1,format=(string)RGBA' ! \
fakesink \
nvarguscamerasrc sensor-id=0 ! \
'video/x-raw(memory:NVMM),width=(int)4056,height=(int)3040,framerate=30/1,format=(string)NV12' ! \
comp.sink_0 \
If I replace the nvarguscamerasrc
with a videotestsrc
combined with a nvvidconv
to upload the buffer to NVMM
memory, the thing works flawlessly.
#!/bin/bash
gst-launch-1.0 \
nvcompositor name=comp ! \
'video/x-raw(memory:NVMM),width=(int)4056,height=(int)3040,framerate=30/1,format=(string)RGBA' ! \
fakesink \
videotestsrc ! \
'video/x-raw,width=(int)4056,height=(int)3040,framerate=30/1,format=(string)NV12' ! \
nvvidconv ! \
'video/x-raw(memory:NVMM),width=(int)4056,height=(int)3040,framerate=30/1,format=(string)NV12' ! \
comp.sink_0 \
I am running this on an Nvidia Xavier AGX, using a 4K camera from Leopard Imaging.
Here is gst-inspect-1.0
for nvarguscamerasrc
and nvcompositor
:
Factory Details:
Rank primary (256)
Long-name NvArgusCameraSrc
Klass Video/Capture
Description nVidia ARGUS Camera Source
Author Viranjan Pagar <vpagar@nvidia.com>, Amit Pandya <apandya@nvidia.com>
Plugin Details:
Name nvarguscamerasrc
Description nVidia ARGUS Source Component
Filename /usr/lib/gstreamer-1.0/libgstnvarguscamerasrc.so
Version 1.0.0
License Proprietary
Source module nvarguscamerasrc
Binary package NvARGUSCameraSrc
Origin URL http://nvidia.com/
Factory Details:
Rank primary + 1 (257)
Long-name NvCompositor
Klass Filter/Video/Compositor
Description Composite multiple video frames
Author Amit Pandya <apandya@nvidia.com>
Plugin Details:
Name nvcompositor
Description Video Compositor
Filename /usr/lib/gstreamer-1.0/libgstnvcompositor.so
Version 1.16.3
License Proprietary
Source module gstreamer-nvcompositor-plugin
Binary package GStreamer NvCompositor Plugin
Origin URL http://nvidia.com/
One important detail is that I am running on a custom yocto-based linux image, based of the official meta-tegra
yocto layer. This is the specific commit we are using for meta-tegra: GitHub - OE4T/meta-tegra at 1612b9f9b1446e6e46c42172b1d07efcfa02ac1c
This means we are using recipes-bsp/tegra-sources/tegra-sources-35.2.1.inc which in turn means we are using L4T-35.2.1
References:
nvarguscamerasrc
: meta-tegra/gstreamer1.0-plugins-nvarguscamerasrc_1.0.0-r35.2.1.bb at 1612b9f9b1446e6e46c42172b1d07efcfa02ac1c · OE4T/meta-tegra · GitHub
nvcompositor
: meta-tegra/gstreamer1.0-plugins-nvcompositor_1.20.5-r35.2.1.bb at 1612b9f9b1446e6e46c42172b1d07efcfa02ac1c · OE4T/meta-tegra · GitHub
@DaneLLL You are an expert on these kinds of things, does this ring any bell to you, any missing information I can supply to dig into this issue?