No EGL Display error using ximagesink on deepstream-test1-app

Hello.

I am working on Jetson Xavier with JetPack 4.6, with ssh connection.

I’m trying to run deepstream-test1-app under /opt/nvidia/deepstream/deepstream-6.0/sources/app/sample_apps on deepstream-l4t:6.0-samples docker image.

My goal is to display the result on host machine (laptop, Linux without GPU).

So I first run

xhost +

on host, and set

ForwardX11 yes
ForwardX11Trusted yes

on host ssh config for Jetson.

After ssh connection on Jetson, I run

docker run -it --gpus all --rm \
  --net host \
  -e DISPLAY=$DISPLAY \
  -v $HOME/.Xauthority:/root/.Xauthority:rw \
  nvcr.io/nvidia/deepstream-l4t:6.0-samples

to run the container.

I found from other thread that nveglglessink is not supported on X11 forwarding, so I changed the sample code to use ximagesink instead of nveglglessink (and also removed nvegltransform), and run apt install gstreamer1.0-x to get ximagesink plugin.

But I’m still getting this error:

No EGL Display
nvbufsurftransform: Could not get EGL display connection

Does other part of the code also need EGL display? If so, how can I change the code to not use EGL display?

Thank you.

----- Edit 1

This command shows same behavior inside the container

$ gst-launch-1.0 filesrc location=/opt/nvidia/deepstream/deepstream-6.0/samples/streams/sample_720p.h264 ! \
 h264parse ! nvv4l2decoder ! nvstreammux ! nvinfer ! nvvideoconvert ! nvdsosd ! ximagesink

Which gives:

nvbuf_utils: Could not get EGL display connection
(Argus) Error FileOperationFailed: Connecting to nvargus-daemon failed: No such file or directory (in src/rpc/socket/client/SocketClientDispatch.cpp, function openSocketConnection(), line 205)
(Argus) Error FileOperationFailed: Cannot create camera provider (in src/rpc/socket/client/SocketClientDispatch.cpp, function createCameraProvider(), line 106)
No EGL Display 
nvbufsurftransform: Could not get EGL display connection
nvbuf_utils: Could not get EGL display connection
No EGL Display 
nvbufsurftransform: Could not get EGL display connection
...

and so on.

Did you have monitor connected to the Jetson device?

Yes, I have.

I’ve already checked that the app works perfectly when monitor is connected directly to the Jetson device.

On DeepStream 6.0 Release Notes, it says “On Jetson, running a DeepStream application over SSH (via putty) with X11 forwarding does not work.”

Does this mean that I’d better give up trying to display work with SSH? Or can I replace some of the plugins in the pipeline to make this work on SSH?

Does this mean that I’d better give up trying to display work with SSH? Or can I replace some of the plugins in the pipeline to make this work on SSH?

Yes. Running a DeepStream application over SSH (via putty) with X11 forwarding does not work. I do not think you can replace some of the plugins in the pipeline to make this work on SSH.