Custom tracker lib when dropping one stream

• Hardware Platform (Jetson / GPU): AGX Xavier
• DeepStream Version: 5.1
• JetPack Version (valid for Jetson only): 4.5
• TensorRT Version: 7.1.3

I have 4 video streams of various lengths. I wrote a custom tracker library for gst-nvtracker plugin and I want to stream these four videos with nvinfer and nvtracker. TensorRT engine is built as batch-size of 4. And I set the batch-size=4 for streammux and primary-gie. When the shortest video drops and ends early, the bounding boxes are going to become a mess(e.g. BBox from stream #1 starts to show in stream #3). But I didn’t see such an issue when running with Nvidia built nvtracker library (e.g. libnvds_nviou.so). With nvidia tracker lib, the corresponding BBox and tracking ID remain in the right channel even some of them streams drop earlier. Do you have any idea how NVIDIA prevented this part of multiple streams dropping off early issue?

We will check it internally

Thank you!

Can you check if metadata is filled correctly in corresponding camera frame meta - if yes, then this problem would not arise.

This processing is running in NvMOT_Process. I am not sure if I can have access to the NVDSMeta in the custom low-level tracker library.

However, during the 4 videos streaming, I printed out the pParams->numFrames where *pParams is declared as NvMOTProcessParams *pParams, as in the tutorial here

When one of the streams comes to its end earliest (i.e. other 3 videos are still streaming), the pParams->numFrames started to jump back-and-forth between 1 and 3, other than keeping its value at 3. I was trying to figure out why it can happen.

Seems the metadata is not handled correctly in your code. Can you share your code?