[Bug 726193] waylandsink: subsurface & scaling support, plus many other improvements

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Tue Apr 8 16:22:19 PDT 2014


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

--- Comment #4 from Julien Isorce <julien.isorce at gmail.com> 2014-04-08 23:22:13 UTC ---
Also about GstWaylandWindowHandle
http://cgit.collabora.com/git/user/gkiagia/gst-plugins-bad.git/tree/gst-libs/gst/wayland/wayland.h?h=waylandsink#n37
there is a solution to remove it.


struct wl_display *display = gdk_wayland_display_get_wl_display
(gdk_window_get_display (gtk_widget_get_window (widget)));
GstContext *context = gst_context_new_display_handle ((guintptr) display,
FALSE);

In gstgl we use gst_element_set_context (GST_ELEMENT (GST_MESSAGE_SRC
(message)), context); from the application to pass the wl_display

The waylandsink should call msg = gst_message_new_need_context (GST_OBJECT_CAST
(waylandsink), GST_DISPLAY_HANDLE_CONTEXT_TYPE); 

See https://bug709747.bugzilla-attachments.gnome.org/attachment.cgi?id=266903
the whole commit is wrong but just about how to use GstContext. There are other
examples in gstg
(http://cgit.freedesktop.org/gstreamer/gst-plugins-bad/tree/gst-libs/gst/gl/gstglfilter.c#n221)l
and eglglessink.

That would be great to pass the wl_display this way because we already do this
way in gstgl. In order to uniform.

Also this way you could just pass directly the wl_surface handle to
set_window_handle, and set the siwe using the function you introduced
gst_wayland_sink_set_surface_size.

The it will remain gst_wayland_video_set_surface_size, pause / resume in
libgstwayland.

As we discuss on IRC it's ok to add this in the mean time gtk has no subsurface
support and also to have more control (to optimize also). Also we should not
rely on if an UI tool kit has the wl_subsurface support or not. So we will
still need those 3 functions.

Later we could move those 3 functions to GstVideoOverlay.

-- 
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