Nvvideoconvert segfault after several hours

• Hardware Platform : Jetson Orin embedded in Connect Tech Anvil
• DeepStream Version : 6.3.0
• JetPack Version : 5.1.2
• TensorRT Version : 8.5.2

Hello,

I designed a c++ gstreamer pipeline to process data from 6 camera (30 fps, 1920*1280) on Jetson orin.
This pipeline aimed to do the inference on 6 cameras and encode the stream with h264 encoding.
After creating and starting the pipeline, it crashes about several hours. It seems to always crash on the gst-element nvvideoconvert (convert UYVY to RGBA before inference) at the start of the pipeline.

Snippet of the code where the nvvideconvert element is created :

    GstElement* cam_src = m_pipeline->createAndAddElement("v4l2src");
    GstElement* format_convert = m_pipeline->createAndAddElement("nvvideoconvert");
    GstElement* identity = m_pipeline->createAndAddElement("identity");

    auto* l_src_pad = gst_element_get_static_pad(cam_src, "src");
    gst_pad_add_probe(l_src_pad,
                      GST_PAD_PROBE_TYPE_BUFFER,
                      receiveCameraDataProbe,
                      m_camera_data[cam_index].get(),
                      NULL);

    string device = "/dev/video" + to_string(cam_index);
    g_object_set(cam_src, "device", device.c_str(), NULL);


    GstCaps* caps = gst_caps_new_simple("video/x-raw",
                                        "format",
                                        G_TYPE_STRING,
                                        "UYVY",
                                        "width",
                                        G_TYPE_INT,
                                        m_config_handler->m_config_sensors.m_width,
                                        "height",
                                        G_TYPE_INT,
                                        m_config_handler->m_config_sensors.m_height,
                                        "framerate",
                                        GST_TYPE_FRACTION,
                                        m_config_handler->m_config_sensors.m_framerate,
                                        1,
                                        NULL);
    if (!m_pipeline->elementLinkFiltered(
          cam_src,
          format_convert,
          caps,
          "RUNTIME_SOURCE_CREATION v4l2src->nvvideoconvert for camera" + to_string(cam_index)))
    {
        return false;
    }

    if (!m_pipeline->elementLinkFiltered(
          format_convert,
          identity,
          "video/x-raw(memory:NVMM), format=(string)RGBA",
          "RUNTIME_SOURCE_CREATION nvvideoconvert->identity for camera" + to_string(cam_index)))
    {
        return false;
    }

Here is a screenshot of the coredump, showing that the segfault occurs inside the nvvideoconvert element :

When I run the pipeline with 3 cameras, the pipeline run without any crashes. May it be a performance issue ? Is there different set of parameters of the nvvideoconvert that I can try to avoid the crash from occuring ?

I can provide more information if necessary.

Kind regards,

Grégoire

  1. You can try to refer to our FAQ to check the memory status.

2.Could you try to run your pipeline with gst-launch-1.0 command first to check if there is crash?