Multiple Gstreamer pipeline for multiple model as same time

I want to run multiple nvinfer model for inference at same time.
One solution is that to create multiple nvinfer element with using tee element in one pipeline and another solution is that to create multiple gstreamer pipelines and add each nvinfer model into separated pipeline.
As you know using GMainLoop use only one thread (Opening in BLOCKING MODE).
Q1- What’s cons and pros of first solution? Additionally to heavy load?
Q2- How we can use (Opening in NON-BLOCKING MODE)?
Q3- What’s pros and cons of Opening in NON-BLOCKING MODE than (Opening in BLOCKING MODE)? When we must to use each other?

1 Like

With this purpose, you can set sgie working like pgie in sgie config file

No, suppose I have 5 detecor that I want to feed all streams into 5 detector (pgie) as parallel at the same time.

Q1. You need to write the application for the first solution by yourself. deepstream-app sample does not support this. And there should be each nvinfer needs a nvstreammux to form batch.
Q2 . Do you mean how to use GMainLoop?
Q3. What do you mean?

When I use GMainLoop for running one pipeline, It’s opening in Blocking Mode, I want to know, What’s means Opening in Blocking Mode?
When I have to use Opening in non-Blocking Mode?

Where did you found this description?

When I run each of deepstream app sample, it’s log out Opening in Blocking mode in terminal.

Opening in non-Blocking Mode is print out by some low level module. It has nothing to do with the pipeline state. It will do no harm to your application. You can just ignore this log.

My mean is that, If I want to run multiple pipelines at the same time, we have to run Opening in non-Blocking Mode to start multiple threads for multiple pipelines to handling each messaging and events in pipelines.

GStreamer works in multiple threads. You can build pipeline with tee to extend to different branches.

1 Like