All source-ids are 0

Please provide complete information as applicable to your setup.

• Hardware Platform (Jetson / GPU) GPU
• DeepStream Version 7.1
• JetPack Version (valid for Jetson only)
• TensorRT Version 10.6
• NVIDIA GPU Driver Version (valid for GPU only) 560.30.35
• Issue Type( questions, new requirements, bugs)
• 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)

offical reop github NVIDIA-AI-IOT deepstream reference code github

using deepstream-parallel-infer.

Fix deepstream_parallel_infer_app.cpp

sd_sink_pad_buffer_probe(GstPad *pad, GstPadProbeInfo *info, gpointer u_data)
{
  GstBuffer *buf = (GstBuffer *)info->data;
  guint num_rects = 0;
  NvDsObjectMeta *obj_meta = NULL;
  NvDsMetaList *l_frame = NULL;
  NvDsMetaList *l_obj = NULL;
  NvDsDisplayMeta *display_meta = NULL;
  gboolean is_first_object = TRUE;
  NvDsBatchMeta *batch_meta = gst_buffer_get_nvds_batch_meta(buf);

  for (l_frame = batch_meta->frame_meta_list; l_frame != NULL; l_frame = l_frame->next)
  {
      NvDsFrameMeta *frame_meta = (NvDsFrameMeta *)(l_frame->data);
      g_print("osd_sink_pad frame id %d, src id %d\n", frame_number, frame_meta->source_id);

  ....
  }
  
  frame_number++;
  return GST_PAD_PROBE_OK;
}

run

./apps/deepstream-parallel-infer/deepstream-parallel-infer -c configs/apps/bodypose_yolo/source4_1080p_dec_parallel_infer.yml

then results are

osd_sink_pad frame id 1, src id 0
osd_sink_pad frame id 2, src id 0
osd_sink_pad frame id 3, src id 0
osd_sink_pad frame id 4, src id 0
osd_sink_pad frame id 5, src id 0
osd_sink_pad frame id 6, src id 0
osd_sink_pad frame id 7, src id 0
osd_sink_pad frame id 8, src id 0
osd_sink_pad frame id 9, src id 0
osd_sink_pad frame id 10, src id 0
osd_sink_pad frame id 11, src id 0
osd_sink_pad frame id 12, src id 0
osd_sink_pad frame id 13, src id 0
osd_sink_pad frame id 14, src id 0
osd_sink_pad frame id 15, src id 0
osd_sink_pad frame id 16, src id 0
osd_sink_pad frame id 17, src id 0
osd_sink_pad frame id 18, src id 0

All sources ids are 0.
If there are 4 input streams as examples shows, then source id should be 0,1,2,3?

• Requirement details( This is for new requirement. Including the module name-for which plugin or for which sample application, the function description)

No. The probe is added after the tiler plugin. There will be only one source after that plugin.

Then how can I distinguish that each bbox are generated from which source stream ?

If you want to distinguish that, you need to add the probe function before the tiler plugin.

thank you. I think I can deal with body_pose_gie_src_pad_buffer_probe() in app.cpp.

By the way, is there any limits on infering yolox ?

source .csv

enable,type,uri,num-sources,gpu-id,cudadec-memtype
1,3,file:///workspace/vidoes/person1.mp4,9,0,0

parallel_infer.yaml

tiled-display:
  enable: 1
  rows: 3
  columns: 3


branch0:
  pgie-id: 1
  src-ids: 0;1;2;3;4;5;6;7;8

primary-gie0:
  enable: 1
  plugin-type: 0
  gpu-id: 0
  batch-size: 3

batch size of my onnx file is 3.
So 9 input streams, with bs=3 yolox is running.
However, only 6 streams are visulized and other 3 streams are not processed.

  for (l_frame = batch_meta->frame_meta_list; l_frame != NULL; l_frame = l_frame->next)
  {

    NvDsFrameMeta *frame_meta = (NvDsFrameMeta *)(l_frame->data);
    int count = 0;  
      for (l_obj = frame_meta->obj_meta_list; l_obj != NULL;)
      {
          obj_meta = (NvDsObjectMeta *)(l_obj->data);
          count++;
          l_obj = l_obj->next;

      }
  
      g_print("batch_id %d, frame id %d, src id %d ojbects %d\n", frame_meta->batch_id, frame_meta->frame_num, frame_meta->source_id, count);
}
}
batch_id 0, frame id 60, src id 2 ojbects 4
batch_id 1, frame id 60, src id 3 ojbects 4
batch_id 2, frame id 60, src id 4 ojbects 4
batch_id 3, frame id 60, src id 5 ojbects 4
batch_id 4, frame id 60, src id 6 ojbects 0
batch_id 5, frame id 60, src id 7 ojbects 0
batch_id 6, frame id 60, src id 8 ojbects 0
batch_id 7, frame id 60, src id 0 ojbects 4
batch_id 8, frame id 60, src id 1 ojbects 4

Is there any limit on number of inputs streams?
or do I make mistakes…?

branch0:
  pgie-id: 1
  src-ids: 0;1
branch0:
  pgie-id: 1
  src-ids: 0;1;2;3

display all 9 streams and drawing bboxes on stream 0,1,2,3

branch0:
  pgie-id: 1
  src-ids: 0;1;2;3;4;5;6;7;8

display all 9 streams and drawing bboxes on stream 0,1,2,3,4,5 only not 6,7,8

Could you please help me…

Solved by fixing metamux/config_metamux0.txt.

Thank you!