Explanation about how deepstream-app pipeline works

I follow the guide here to generate the pipeline graph of deepstream-app. Everything is quite straightforward until this part:


We started with a streamux of 4 sources. After the Tee here we have 3 branches that went through SGIE but then end up in fakesink. The other branch kept going through tiler, osd… So how can the inference results from SGIE be synchronized to the last branch?

Beyond that, I think there should be a clear explanation of how this pipeline works. The official docs from NVIDIA are not enough for the community to effectively adapt deepstream in a real system.
The full pipeline graph can be viewed in the following file:
deepstream-app.pdf (67.3 KB)

I think this is the pipeline you design, right?

if it’s pipeline you design, you need to have a mechanism to sync their result.

No it’s the original pipeline when running deepstream-app from NVIDIA

can you share the command line and the related deepstream-app config files?

@mchi the used cmd is the default one:
./deepstream-app -c <config-file>
with the following config file (default, no mods):
source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8_gpu1.txt (5.5 KB)

Got your question! I can reproduce it.

We will check and reply to you in few days.

Thanks!

1 Like

Great! I’m looking forward to that

Hi,
Sync of SGIE is implemented in source code in deepstream_secondary_gie_bin.c in function wait_queue_buf_probe(). In the output, you can find the output of SGIEs are on the output frames.

$ deepstream-app -ct source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8_gpu1.txt