Why does deepstream_nvdsanalytics.py add a queue between every component?

Is this a best practice? Some of the other samples only add one queue in or none, but this sample and deepstream_preprocess_test.py appear to add them to excess (7). When is the appropriate time to use a queue?

Please provide complete information as applicable to your setup.

• Hardware Platform (Jetson / GPU) Jetson OWIN
• DeepStream Version 6.3
• JetPack Version (valid for Jetson only) 5.1.2-b104

The queue will create a new thread on the source pad to decouple the processing on sink and source pad. queue (gstreamer.freedesktop.org)

Yes… and what are the best practices on when to use them? The samples are completely inconsistent. This sample seems like its the more the better approach added with no regard to reason or need. Why do the others have none or one and this NVidia sample has one on every connection.

It depends on your purpose, the more queue in the pipeline, the more asynchronized the pipeline is. If some components are fast enough, the queue is not necessary for them.

It is OK to remove some queue from the pipeline when the component is fast enough. It does no harm to keep them too.