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.

1 Like

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.

1 Like

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!