I can’t say more… I just tried your pipeline with bufapi-version=1 in decoder with my Xavier NX R32.4.4 and DS5, and it seemed to work, at least displaying fine the video.
Also note that I didn’t disable gdm and X, not tweaked the fb. I just switched to a virtual console with Alt-Ctl-F3 and tried there as I use to do for testing with nvdrmvideosink.
Not sure how much CUDA can work without X, nor in that case how much TRT can work without CUDA. Someone better skilled may advise for this.
Thanks for the note.
I did some addtional tests according to your inputs.
First, following commands are to validate some working pipelines. It does not perform what I want to do since I want to use hardware overlays. It only shows that decoder and neural network are working fine.
Following commands are to use nvdrmvideosink and its built-in hardware overlay support. I tried to configure my ubuntu as Honey_Patouceul (except I’m still using deepstream 4.0).
# add NAutoVTs=6 to /etc/systemd/logind.conf
sudo chvt 2 # no desktop, X11 still running (ps -e | grep X)
gst-launch-1.0 filesrc location=/opt/nvidia/deepstream/deepstream-4.0/samples/streams/sample_1080p_h264.mp4 ! qtdemux ! h264parse ! nvv4l2decoder bufapi-version=1 ! nvvideoconvert ! m.sink_0 nvstreammux name=m batch-size=1 width=1920 height=1080 ! nvinfer config-file-path= /opt/nvidia/deepstream/deepstream-4.0/samples/configs/deepstream-app/config_infer_primary.txt ! nvdrmvideosink conn_id=0 plane_id=1 set_mode=0 -e # NOK on VT2
# Failed to set plane
# Failed to display frame buffer
# 0:00:05.679210968 9943 0x55b7104d90 WARN nvinfer gstnvinfer.cpp:1830:gst_nvinfer_output_loop:<nvinfer0> error: Internal data stream error.
# 0:00:05.679443064 9943 0x55b7104d90 WARN nvinfer gstnvinfer.cpp:1830:gst_nvinfer_output_loop:<nvinfer0> error: streaming stopped, reason error (-5)
# ERROR: from element /GstPipeline:pipeline0/GstNvInfer:nvinfer0: Internal data stream error.
gst-launch-1.0 filesrc location=/opt/nvidia/deepstream/deepstream-4.0/samples/streams/sample_1080p_h264.mp4 ! qtdemux ! h264parse ! nvv4l2decoder bufapi-version=1 ! nvvideoconvert ! nvdrmvideosink conn_id=0 plane_id=1 set_mode=0 -e # NOK on VT2
# Failed to set plane
# Failed to display frame buffer
# ERROR: from element /GstPipeline:pipeline0/GstQTDemux:qtdemux0: Internal data stream error.
Gstreamer’s errors does not seem to be the right one. I guess “failed to set plane” error from nvdrmvideosink breaks the pipeline. Then qtdemux and nvinfer generate errors but it’s not the root cause.
Not sure, but again do you have X server running or not ?
Without it CUDA may not be fully available, so wouldn’t TRT, so wouldn’t nvinfer model using TRT.
Just a thought, again someone more skilled may better advise.
We now support nveglglessink and nvoverlaysink in DeepStream SDK. Please try the two sinks.
I’m trying to make it work using EGLFS. It seems nveglglessink should only work using X11 or wayland according to winsys attribute. This element fails every time I try to run a pipeline with.
Half of the docmentation show examples with deprecated elements. This is confusing.
nvoverlaysink works better than nvdrmvideosink for my use case. Pretty weird. Thank you.
nvdsosd was failing with the following set: nvdrmvideosink + DS4 + l4t-r32.1.2 + EGLFS.
nvdsosd works with the following set: nvoverlaysink + DS5 + l4t-r32.4.3 + EGLFS.
I do not know exactly what make the job.