Deepstream-test3 4 video files bandwidth bottleneck

Please provide complete information as applicable to your setup.

**• Jetson AGX Xavier
**• DeepStream Version 5.0
**• JetPack Version (valid for Jetson only) 4.4

sudo jetson_clocks
to turn the AGX in full speed, then
running sources/python/apps/deepstream-test3/deepstream_test_3.py with 4 video files and encounter the following warning:

Warning: gst-core-error-quark: A lot of buffers are being dropped. (13): gstbasesink.c(2902): gst_base_sink_is_too_late (): /GstPipeline:pipeline0/GstEglGlesSink:nvvideo-renderer:
There may be a timestamping problem, or this computer is too slow.

Then I am curious to see if I can run TWO deepstream-test3 with 2 video files each (which total of 4 videos running at the same time) will bump into the same warning message or not. And interestingly, they run smoothly without reporting any warning of buffers being dropped.

So my question is: it seems the AGX is capable of handling 4 videos in two pipelines at the same time but when it run in a same pipeline and buffers being dropped: where is the bottleneck? what parameters should I tune to make the single pipeline handle 4 videos without dropping frame?

Thank you for your help.

P.S. when I tried sources/apps/sample_apps/deepstream-test3/deepstream-test3-app with 4 videos, everything run smoothly without any warning. Does this imply the python binding version have some glitches? Also if running python version, the system frequently rebooting itself, but the c version seems quite stable. Anyone has similar experience? Please advise.

Update:

  1. “when I tried sources/apps/sample_apps/deepstream-test3/deepstream-test3-app with 4 videos, everything run smoothly without any warning.” : this is because the cpp version run in asynchrous mode and deepstream_test_3.py run in synchrous mode: Observation: cpp version output frame numbers in random order and .py version output frame number always in sync (4 same frame numbers in sequence always) => question: how do I make .py version behave the same as .cpp version?

  2. “the system frequently rebooting itself”: this is due to separate issue: I installed M2. NVMe SSD in my AGX Xavier, this obviously generate a lot of heat in the housing that cause the AGX frequently reset. Once I remove the M2, the system goes back to normal (stable) again. Hmmm… (does that mean I cannot expand the M2?)

See in inline.

Hi Amycao,

Thanks for the response.

  1. “you could set sink property sync to false”: after I add the following line in the deepstream_test_3.py code line 285:

sink.set_property('sync', False)

I observe very interesting behaviour which is unexpected: the timestamps/too slow warnings are gone. But the frame rate dropped from about 30 fps down to 20 fps and yet the printout frame numbers are still in sync (that is 4 same frame numbers consecutively always) Could you explain why? and how to make it truely async? that is keep the 30 fps without sync up all 4 frames.

  1. M2 NVMe SSD: I installed a Samsung 970EVOPlus 1TB NVMe M.2 V-NAND SSD. Apparently it overheated the unit and I have to remove it to get back to normal. My question: does any special M2 NVMe model that Nvidia would suggest to install without overheating the unit?

See inline.

My common sense understanding of sync=false means it’s ok to process frames out of sync therefore would NOT drop any frame, thus faster fps. On the contrary, if sync=true, then might need to wait for each other thus dropping frame and reduce fps. Unless the code define the opposite meaning of common sense “sync”?

Sorry about the explanation, please ignore it.
Your understanding is correct.