Overlay Video on Wayland

Nicolas Dufresne nicolas at ndufresne.ca
Tue May 22 15:03:17 UTC 2018


Le lundi 21 mai 2018 à 21:26 -0400, Scott Talbert a écrit :
> On Thu, 19 Apr 2018, Nicolas Dufresne wrote:
> 
> > > > > > > Is it possible to use video overlays (either with GstPlayer
> > > > > > > or playbin) on
> > > > > > > Wayland surfaces?  And if so, what is the recommended
> > > > > > > approach?  I saw
> > > > > > > there was 'waylandsink' but it doesn't seem to be public.
> > > > > > 
> > > > > > waylansink is part of gst-plugins-bad (unstable), and can be
> > > > > > used with
> > > > > > GstVideoOverlay interface on wayland. Run "gst-inspect-1.0
> > > > > > waylandsink"
> > > > > > for details. An example application can be found here:
> > > > > > 
> > > > > > https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/tree/tes
> > > > > > ts/examples/waylandsink
> > > > > 
> > > > > The problem, though, is that gst/wayland/wayland.h header is not
> > > > > public.
> > > > > 
> > > > > See
> > > > > https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/tree/gst-l
> > > > > ibs/gst/wayland/Makefile.am#n26
> > > > 
> > > > You don't really need that library. The geometry stuff can be
> > > > ignored,
> > > > and then the rest is just helpers around string comparison:
> > > > 
> > > > https://cgit.freedesktop.org/gstreamer/gst-plugins-bad/tree/gst-lib
> > > > s/gst/wayland/wayland.c
> > > > 
> > > > If you really want these helpers, you can copy them in your app.
> > > 
> > > OK.  I'm seeing a few issues with the sample application.
> > > 
> > > First, these warnings are issued during startup (on Fedora 27):
> > > 
> > > ** (gst-wayland-gtk-demo:11908): WARNING **: Wayland compositor is
> > > missing
> > > the ability to scale, video display may not work properly.
> > 
> > Yes, I've added that warning to try and convince people that a GL
> > compositer should support scaling. waylandsink without that in the
> > compositor is pretty useless, and that's why waylandsink is pretty
> > useless on Gnome Shell.
> 
> Well, the good news is that someone is working on adding wp_viewport 
> support into mutter.  When testing those patches, waylandsink support 
> seems to mostly work.
> 
> https://gitlab.gnome.org/GNOME/mutter/issues/132

Thanks for the heads up, looks promising despite the little issue you
uncovered.

> 
> 
> > > ** (gst-wayland-gtk-demo:11908): WARNING **: Could not bind to
> > > zwp_linux_dmabuf_v1
> > > 
> > > On Debian Unstable, I see the first warning only.
> > 
> > I have go the example builds, do you also get that warning in:
> > 
> >  gst-launch-1.0 videotestsrc ! waylandsink
> > 
> > I have Fedora 27, and on Gnome Shell I don't get this warning (maybe
> > I'll get this problem tomorrow when I update ...).
> 
> Still getting this warning, even with Weston, so not sure what to do about 
> it?

That is strange, on Fedora 28 here, the shipped GStreamer 1.14, there
is only 1 warning about viewporter, that's it. I know there was some
issue in the wayland protocol files at some point, maybe you have some
miss-match ?

> 
> > > Second, the window seems to be drawn in the wrong location.  The
> > > window
> > > with the blue background and bouncing ball is shifted down and to
> > > the
> > > right about 100 pixels of where it should be.  This doesn't seem to
> > > be a
> > > problem with the coordinates passed to
> > > gst_video_overlay_set_render_rectangle().  If I mess with those
> > > coordinates, I can see that the black window changes position, but
> > > the
> > > blue window does not.
> 
> The offset problem goes away when using the wp_viewport patch, so that is 
> related to the lack of wp_viewport support.
> 
> > > Thirdly, if I use the GTK+ close button to close the window, gnome-
> > > shell
> > > crashes.  While this is probably a gnome-shell bug, it is very
> > > annoying.
> > > :)
> 
> This has been fixed in mutter 3.28.2.  :)
> 
> Scott
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel


More information about the gstreamer-devel mailing list