Performane of Deepstrem gst-dsexample plugin

I have a serious performance problem with the gstreamer plugin example, gst-dsexample.

gst-launch-1.0 -v nvarguscamerasrc bufapi-version=1 sensor-id=0 sensor-mode=0 ! "video/x-raw(memory:NVMM),width=4032,height=3040, framerate=30/1" ! m.sink_0 nvstreammux name=m batch-size=1 live-source = true batched-push-timeout=1 width=4032 height=3040 ! nvvideoconvert ! dsexample full-frame=1 ! nvdsosd ! nvegltransform ! nveglglessink

The framerate drops to 5-10 fps.

Shell info

There may be a timestamping problem, or this computer is too slow.
WARNING: from element /GstPipeline:pipeline0/GstEglGlesSink:eglglessink0: A lot of buffers are being dropped.
Additional debug info:
gstbasesink.c(2902): gst_base_sink_is_too_late (): /GstPipeline:pipeline0/GstEglGlesSink:eglglessink0:
There may be a timestamping problem, or this computer is too slow.

In default sample of dsexample, it calls OpenCV APIs for demonstration, which is CPU operation and can be slow. You would need to check the code and customize it for your usecase.

The CPU load is very low while running the stream, aprox. 15-20%. So are there any other constraints in the example that slows it down?

Is there an example implementation that is performant.

Is there an other example using other API’s, e.g. ArgusLib, VPI etc.?

Will rebuilding OpenCV with Cuda/DLA support make a difference?

get_converted_mat() is executed for each detected object. It is for demonstration purpose ad can be slow. You can refer to default code and do customization.