[Bug 709747] [wayland_egl] Add support for GstVideoOverlay

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Thu Oct 10 10:46:12 CEST 2013


https://bugzilla.gnome.org/show_bug.cgi?id=709747
  GStreamer | gst-plugins-gl | git

--- Comment #3 from Julien Isorce <julien.isorce at gmail.com> 2013-10-10 08:46:09 UTC ---
(In reply to comment #2)
> Review of attachment 256826 [details]:
> 
> Does all this still work without setting a window handle/display, and then
> creates a new window?

For wayland_egl, and about the display: yes, if you go back to ready state
first. No if you do that in paused or playing.
For wayland_egl surface, yes in paused or playing state too.

> 
> ::: configure.ac
> @@ +878,3 @@
> +  else
> +    PKG_CHECK_MODULES(GTK2, gtk+-2.0, HAVE_GTK_20=yes, HAVE_GTK_20=no)
> +    if test "x$HAVE_GTK_20" = "xyes"; then
> 
> Just remove GTK2 support, nobody needs that :)

WHy not keep it as it's done in my patch, then in a near future remove GTK2
support. No ?
Also it could be interesting for comparisons.

> 
> ::: gst-libs/gst/gl/gstgldisplay.h
> @@ +68,2 @@
>  GstGLAPI       gst_gl_display_get_gl_api             (GstGLDisplay * display);
> +gpointer       gst_gl_display_get_platform_display   (GstGLDisplay * display);
> 
> Would this be an EGLDisplay with EGL, a X11 display connection with X11, etc.?

With wayland_egl, it's a wl_display, not a EGLDisplay. EGLDisplay is created
using gst_gl_window_get_display which return this wl_display too.
Later one is available when the window is already "open".

Note sure about glx/X11 and egl/X11 display, because in gst-gl 0.10 it was not
necessary  that glimagesink and the application share the same instance of X11
Display. (same with win32, wgl, egl)

Maybe it's only related to wayland.

> Make it's usage consistent :) I think that would make sense in general, and
> then also connected with GstContext usage
> 
> ::: gst-libs/gst/gl/wayland/wayland_event_source.c
> @@ +113,2 @@
>    if (source->pfd.revents) {
> +    gst_gl_wl_display_roundtrip_queue (source->display, source->queue);
> 
> Why not the Wayland function?

Interesting point, initially I replaced the wl_display_dispatch (which is there
in master) by wl_display_dispatch_queue. But that's not enough when a surface
and its child does not share the same queue.
I found this morning this discussion
https://bugs.launchpad.net/glmark2/+bug/1211076 . The comments have also an
interest. It's not the exact same problem but it seems that the common point is
that there is a difference between events and requests.

So I needed something like wl_display_roundtrip but for just a queue, and
wl_display_roundtrip_queue does not exist. So I created
gst_gl_wl_display_roundtrip_queue. See wl_display_roundtrip in
http://cgit.freedesktop.org/wayland/wayland/tree/src/wayland-client.c

> 
> ::: tests/examples/gtk/gstgtk.c
> @@ +62,3 @@
> +#elif defined(GDK_WINDOWING_X11) && defined(GDK_WINDOW_XID)
> +  gst_video_overlay_set_window_handle (videooverlay,
> +      (guintptr) GDK_WINDOW_XID (gtk_widget_get_window (window)));
> 
> This code probably also needs some work to be ported to GTK3 for the other
> backends. Take a look at gst-plugins-base/tests/examples/overlay. There's a GTK
> example.

Ok thx.

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list