Change the video display of deepstream-yolo-app

Hi,

I know deepstream-yolo-app use GStreamer for display,
but I don’t know how to change it’s video display to a window instead of full screen on ubuntu,
could you give me a concrete example?
my env. is Xavier and Jetpack 4.1.1

Hi,
Please try nveglglessink. You can refer to sample pipelines in
https://developer.nvidia.com/embedded/dlc/l4t-accelerated-gstreamer-guide-32-1

and integrate it into deepstream-yolo-app to replace nvoverlaysink.

@DaneLLL

I replace
sink = gst_element_factory_make (“nvoverlaysink”, “nvvideo-renderer”);
to sink = gst_element_factory_make (“nveglglessink”, “nvvideo-renderer”);
in deepstream-yolo-app, and compiling OK, but there are errors after execution:

ERROR from element openmax-decoder: Internal data stream error.
Error: Internal data stream error.

How to fix it?

Hi,
Do you execute

$ export DISPLAY=:1(or 0)

The default DISPLAY=:0, and the err messages are mentioned as above,
if DISPLAY=:1, it will show :

nvbuf_utils: Could not get EGL display connection
Now playing: /home/nvidia/Videos/taipei.h264

Using winsys: x11 
Running...

then this terminal was hold.

Hi,
Please hook nvegltransfom into the pipeline like:

... ! nvosd ! nvegltransform ! nveglglessink

@DaneLLL

It is work, but the video processing is getting very slowly(the speed only 1/5 of original deepstream-yolo-app)
Can it be improved?

Hi,
It is egl-based implementation and you may execute ‘sudo jetson_clocks.sh’, and set ‘sync=false’ to nveglglessink.

@DaneLLL

How to set ‘sync=false’ to nveglglessink in deepstream-yolo-app.cpp?
all of the “‘sync=false’ to nveglglessink” is used in command line.

Simply add one line:

g_object_set (G_OBJECT (sink), "sync", 0, NULL);

@DanneLLL

Many thanks again, only ‘sudo jetson_clocks.sh’ can recover the performance and it is enough, but set ‘sync=false’ to nveglglessink’ will slow down inference video.