• Hardware Platform (Jetson / GPU): Jetson Nano
• DeepStream Version: 5.1
• JetPack Version: 4.5.1
• TensorRT Version: 7.3.1
Hi,
i’m trying to modify the pipeline of Primary-gie something like:
+input: 2 uri
+in primary_gie_bin: I have created 2 subbin primary_gie_0 and primary_gie_1 for 2 different models.
+I want the model infer on each Uri separately, so I used link_element_to_demux_src_pad
→ It’s problematic when I mux the subbin together !!!
Can I do this ??
->src-bin(src->streammux)->....
->primary-bin(streamdemux -> | -> queue0->nvvidconv0->primary_gie0-> |
| -> queue1->nvvidconv1->primary_gie1-> | -> streammux )
->...-> secondary-bin -> ...
Thanks, hope you will respond soon
(sorry if my english is not good!)
NVGSTDS_BIN_ADD_GHOST_PAD (bin->bin, bin->streammux, "src");
NVGSTDS_BIN_ADD_GHOST_PAD (bin->bin, bin->streamdemux, "sink");
// NVGSTDS_BIN_ADD_GHOST_PAD (bin->bin, bin->tee, "sink");
// NVGSTDS_BIN_ADD_GHOST_PAD (bin->bin, bin->queue, "src");
// if (!link_element_to_tee_src_pad (bin->tee, bin->queue)) {
// goto done;
// }
// if (!link_element_to_tee_src_pad (bin->tee, bin->streamdemux)) {
// goto done;
// }
// for(i=0;i<num_primary_gie;i++){
if(!link_element_to_demux_src_pad (bin->streamdemux, bin->sub_bins[0].queue, 0)){
g_printerr("demux fail");
goto done;
}
if(!link_element_to_demux_src_pad (bin->streamdemux, bin->sub_bins[1].queue, 1)){
g_printerr("demux fail");
goto done;
}
// if (!link_element_to_tee_src_pad (bin->tee, bin->sub_bins[i].queue)) {
// goto done;
// }
// }
// it works best for 1 primary_gie (0 or 1) but 2 Element links to 1 sink-Queue are not possible !
gst_element_link_pads(bin->sub_bins[0].primary_gie , "src", bin->queue, "sink");
gst_element_link_pads(bin->sub_bins[1].primary_gie , "src", bin->queue, "sink");
// if I replace it with link_element_to_streammux_sink_pad in deepstream_common.c then it doesn’t seem to work
if (!link_element_to_streammux_sink_pad (bin->streammux, bin->sub_bins[0].primary_gie, 0)) {
NVGSTDS_ERR_MSG_V ("primary_gie %d cannot be linked to mux's sink pad %p\n", 0, bin->streammux);
goto done;
}
if (!link_element_to_streammux_sink_pad (bin->streammux, bin->sub_bins[1].primary_gie, 1)) {
NVGSTDS_ERR_MSG_V ("primary_gie %d cannot be linked to mux's sink pad %p\n", 1, bin->streammux);
goto done;
}