The role of nvvidconv and tiler in the code seems to be duplicated

  • deepstream6.1.1
  • on A6000

In the code of deepstream-test3 there is:

  gst_bin_add_many (GST_BIN (pipeline), queue1, pgie, queue2, nvdslogger, tiler,
      queue3, nvvidconv, queue4, nvosd, queue5, sink, NULL);
    /* we link the elements together
    * nvstreammux -> nvinfer -> nvdslogger -> nvtiler -> nvvidconv -> nvosd
    * -> video-renderer */
    if (!gst_element_link_many (streammux, queue1, pgie, queue2, nvdslogger, tiler,
          queue3, nvvidconv, queue4, nvosd, queue5, sink, NULL)) {
      g_printerr ("Elements could not be linked. Exiting.\n");
      return -1;
    }

where tiler = gst_element_factory_make (“nvmultistreamtiler”, “nvtiler”).
And I found that the nvmultistreamtiler plugin has converted the gst batch into a gst buffer, but also added nvidconv, this nvidconv is necessary? I test to remove this nvidconv is also possible.

nvvideoconvert’s function is format convert(YUV to RGB, system memory to Nvidia GPU memeory or vice versa) and scaling. There is no conflict between nvmultistreamtiler and nvvideoconvert

But in this deepstream-test3 case code gst_element_link_many, I remove the nvidconv plugin is also working properly, why?

There is no update from you for a period, assuming this is not an issue anymore. Hence we are closing this topic. If need further support, please open a new one. Thanks

It is because nvdsosd and nveglglessink both support NVMM NV12 format buffers.

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