Please provide complete information as applicable to your setup.
• Hardware Platform (Jetson / GPU)
Jetson AGX Xavier and Jetson Xavier NX
• DeepStream Version
6.1.1
• JetPack Version (valid for Jetson only)
5.0.2
• Issue Type( questions, new requirements, bugs)
Playback not smooth when using nvinfer with large enough interval.
• How to reproduce the issue ? (This is for bugs. Including which sample app is using, the configuration files content, the command line used and other details for reproducing)
gst-launch-1.0 -vvv uridecodebin uri=file:///pipeline/rawdata/CALIB-000044-01.MP4 ! \
m.sink_0 uridecodebin uri=file:///pipeline/rawdata/CALIB-000044-02.MP4 ! \
m.sink_1 nvstreammux name=m batch-size=2 config-file-path=/pipeline/configs/nvstreammux-config.txt ! \
nvmultistreamtiler rows=1 columns=2 width=3840 height=1080 ! \
tee name=t ! queue ! nvvideoconvert src-crop=0:0:1920:1080 ! "video/x-raw(memory:NVMM), format=NV12" ! \
m2.sink_0 t. ! queue ! nvvideoconvert src-crop=1920:0:1920:1080 ! "video/x-raw(memory:NVMM), format=NV12" ! \
m2.sink_1 nvstreammux name=m2 batch-size=2 config-file-path=/pipeline/configs/nvstreammux-config.txt ! \
nvvideoconvert output-buffers=30 ! capsfilter ! "video/x-raw(memory:NVMM), format=RGBA" ! \
nvinferserver batch-size=2 config-file-path=/pipeline/configs/triton-detector-config.txt ! \
queue2 ! \
queue min-threshold-buffers=5 ! \
nvmultistreamtiler rows=1 columns=2 width=1920 height=1080 ! \
nvvideoconvert ! nvdsosd ! nvegltransform ! nveglglessink sync=1
The pipeline above runs smoothly but sometimes has hiccups and if I change output-buffers to 50 it has major hiccups, QOS warnings and frame dropping.
The interval for nvinferserver is set to 15, inference takes about 200ms so there should be more than enough time to buffer the the queue for smooth playback. The pipeline runs without issue when removing the nvinferserver plugins but as soon as we add the nvinferserver with interval set to 15 playback isn’t smooth anymore, there is the sweet parameter where output-buffers=30 where it works nice for a while but ultimately has hiccups.
The timing between nvinferserver input and sink input is consistently around 1 second and that doesn’t change when it runs smoothly and when it doesn’t. I observed when it runs smoothly the gpu usage is between 30-80% whereas when its having hiccups the GPU usage goes to the extremes.
What describes this behavior that the pipeline can be running smooth and out of nowhere has a hiccup, or what would describe a simple change of output-buffers=50 would cause the pipeline go unstable?