gstreamer - nveglglessink issue

Hi,

I am having trouble with my gstreamer pipeline. I am using jetpack 4.2.3 on Xavier dev kit. The following pipeline works and shows the video correctly in X :-

gst-launch-1.0
filesrc location=/tmp/myvideo.mp4 !
qtdemux ! h264parse ! nvv4l2decoder !
nvegltransform ! nveglglessink -e

BUT, the following pipeline does not work, prints no errors (actually it prints identical output). It opens a window and just shows black frames,… pure blackness. The only difference is the winsys param on the sink at the end. According to gst-inspect, winsys defaults to x11 anyway.

gst-launch-1.0
filesrc location=/tmp/myvideo.mp4 !
qtdemux ! h264parse ! nvv4l2decoder !
nvegltransform ! nveglglessink winsys=x11 -e

I need the winsys param to work because I need to get this running as a wayland client in weston. In my testing, using winsys=wayland fails in exactly the same way - it creates a black window.

Please help!

Robin

Anyone at nvidia able to help with this?

Thanks

Robin

Hi,
https://developer.nvidia.com/embedded/dlc/l4t-accelerated-gstreamer-guide-32-2
There is guidance on page 27, 28. Please follow it to run Wayland backend.

Hi,

Thanks for your reply. I did follow that doc, it just says to use winsys param - which I have.

My issue is that the winsys param breaks in x11 and wayland as per my message.

Does my pipeline work for you in x11 or wayland? I cant figure out what I have done wrong.

Hi,
We have verified the steps and it should work fine.
Do you execute the commands to enable Wayland?

$ sudo systemctl stop gdm
$ sudo loginctl terminate-seat seat0
$ unset DISPLAY
$ mkdir /tmp/xdg chmod 700 /tmp/xdg
$ sudo XDG_RUNTIME_DIR=/tmp/xdg weston --idle-time=0 &

Hi,

I will try those exact steps to run wayland when I get into work in a few hours.

Should it also work with winsys set to x11? Because it doesnt :-( Does my pipeline work for you in either x11 or wayland?

Hi,

I have re-flashed the xavier and tried it again. It fails. Blackness.

It FAILS with winsys=x11
It FAILS with winsys=wayland
It WORKS without the winsys param (when I am testing in X)

Can you test your end please.

Any ideas?

I may not be able to help further, but running these commands one can see that even if winsys default is x11, specifying it makes a difference for VBO setup:

GST_DEBUG=nveglglessink:4 gst-launch-1.0 -v videotestsrc ! nvvidconv ! nvegltransform ! nveglglessink
...
0:00:00.133156165 13674   0x5579af70a0 INFO           nveglglessink gsteglglessink.c:946:gst_eglglessink_setup_vbo:<eglglessink0> VBO setup. have_vbo:0
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
...

GST_DEBUG=nveglglessink:4 gst-launch-1.0 -v videotestsrc ! nvvidconv ! nvegltransform ! nveglglessink winsys=x11
...
0:00:00.112795433 13690   0x558fffb0a0 INFO           nveglglessink gsteglglessink.c:946:gst_eglglessink_setup_vbo:<eglglessink0> VBO setup. have_vbo:0
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
[b]0:00:00.126737885 13690   0x558fffb0a0 INFO           nveglglessink gsteglglessink.c:946:gst_eglglessink_setup_vbo:<eglglessink0> VBO setup. have_vbo:1
0:00:00.160003905 13690   0x558fffb0a0 INFO           nveglglessink gsteglglessink.c:946:gst_eglglessink_setup_vbo:<eglglessink0> VBO setup. have_vbo:1
0:00:00.193446288 13690   0x558fffb0a0 INFO           nveglglessink gsteglglessink.c:946:gst_eglglessink_setup_vbo:<eglglessink0> VBO setup. have_vbo:1
0:00:00.226907104 13690   0x558fffb0a0 INFO           nveglglessink gsteglglessink.c:946:gst_eglglessink_setup_vbo:<eglglessink0> VBO setup. have_vbo:1[/b]

May not be related, but in the latter case it also issues this message:

(gst-launch-1.0:13533): GLib-GObject-CRITICAL **: 20:04:30.952: g_value_get_uint: assertion 'G_VALUE_HOLDS_UINT (value)' failed

Hi, thanks for the tips… it does look like there are differences between the winsys and non-winsys invocations. I will give this a go with the GST_DEBUG set like you have tomorrow when I get back into work.

nVidia, does this extra info help at all diagnosing the potential issue with your sink plugin? Did you run the gstreamer pipelines? Did you get the same results as I did?

Hi,
We can enable Wayland by following the steps, but observe blackness in video playback. Will check this and update.

Hi,

Thank you for investigating further.

Robin

Hi again, any progress on this issue?

Hi,
It might take some time on debugging. Will update once there is progress.

If it’s not private and confidential, please share information about the usecase you are working, for our reference. Thanks.

Hi,

I cannot discuss the project in detail in a public forum, but can say that we are currently evaluating the jetson xavier platform to see if it suits our intended application.

One of our requirements relating to this issue is efficient hardware accelerated decoding of h264 and h265 @ UHD @ 60 in wayland.

Do you have an expected timeframe for a fix?

Thanks,

Robin

Any update on this? Is it being actively worked on?

Thanks

Robin

Hi,
We are working on it. Shall be fixed in next r32.3, which is scheduled to be in December.

That’s great news thanks. To avoid potential delays to our project, could I get access to a code patch or binary as soon as it becomes available?

Hi,
Please wait for the next release. We have performed SQA tests on each release. It it better to take a complete release with stability.

Hi,

Do you have a date for the next release? If it is this week I think our deadlines will probably be unaffected. Otherwise, how can I get a binary or source patch from you guys?