Nvmultistreamtiler - copy nvdsbatchmeta before modified by multistreamtiler

Please provide complete information as applicable to your setup.

• Hardware Platform (Jetson / GPU) dGPU
• DeepStream Version 6.1
• JetPack Version (valid for Jetson only)
• TensorRT Version
• NVIDIA GPU Driver Version (valid for GPU only) 510
• Issue Type( questions, new requirements, bugs) question
• How to reproduce the issue ? (This is for bugs. Including which sample app is using, the configuration files content, the command line used and other details for reproducing)
• Requirement details( This is for new requirement. Including the module name-for which plugin or for which sample application, the function description)

Hello I am trying to create a deepstream pipeline that has a TEE and outputs to 3 branches.

#                                       ,-> vidconv1 -> jpegenc1 -> multifilesink1
# nvinfer -> capsfilter -> tee  -> demux -> vidconv2 -> jpegenc2 -> multifilesink2
#                              `-> appsink
#                              `-> queue -> tiler -> dsosd -> eglsink
  • nvstreamdemux,
  • appsink and
  • tiler

All my application logic is in appsink. It was working fine without the tiler. But after I added the tiler, it transforms nvdsbatchmeta and the detection bbox coordinates are all transformed by the tiler. So a bbox in src-id=2, is moved by more than 1 feed width depending on how the tiler calculated its position. My application logic fails due to this messup.

Is there a way for me to keep the tiler branch’s copy of nvdsbatchmeta isolated from appsink’s copy of nvdsbatchmeta? I think even a simple copy plugin can help with that… or can I push to tiler after appsink?

Is there a gstreamer/deepstream plugin that will let me do that?

How to achieve this? Are there any alternative ideas/suggestions? Please help!

what will you do in appsink? you can copy meta in appsink, please refer to nvds_copy_frame_meta, nvds_copy_obj_meta.

In appsink, the NvDsBatchMeta that I get is modified by the tiler and the value is all wrong. Meaning it is too late for me to make a copy inside appsink. I need to prevent the tiler from modifying the batchmeta. Is there a way to do it?

you can add appsink to tee first, then add tiler to tee. tee will push buffer to appsink first.

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

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