Placement of queues in a DeepStream pipeline

I have a general question regarding the placement of GStreamer queues in a DeepStream pipeline. In sample pipelines in the documentation, I see in many instances that queue elements are placed at several positions within the pipeline:

  1. Between nvstreammux and nvinfer elements.
  2. Between nvinfer and nvtracker elements.
  3. After nvstreamdemux source pads. This is also recommended by the official documentation although no specific motivation is provided.

Based on my knowledge of gstreamer, I assume that the main utility of queue elements is to provide thread boundaries such that parts of a pipeline with differing speeds/latencies can be de-coupled. At the same time, I can imagine that excessive usage of queue elements can lead to increased memory usage and end-to-end latency.

Can you provide advice and details regarding the queue placement in DeepStream pipelines? Are there specific reasons for placing queue elements as in the 3 examples I listed above?

There is no update from you for a period, assuming this is not an issue anymore. Hence we are closing this topic. If need further support, please open a new one. Thanks

If it’s a local video, there is not much need to add a queue plugin. It will cache some data and start a new thread to ensure the stability of data flow. It is useful for some network unstable data, like rtsp source etc…

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.