Commit graph

26 commits

Author SHA1 Message Date
Niels De Graef
67bb17e4fa waylandsink: Implement XDG-shell stable support
[wl_shell] is officially [deprecated], so provide support for the
XDG-shell protocol should be provided by all desktop-like compositors.
(In case they don't, we can of course fall back to wl_shell).

Note that the [XML spec] is provided by the `wayland-protocols`
git repository, which is provided by the Wayland project.

Fixes https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/issues/897

[wl_shell]: https://people.freedesktop.org/~whot/wayland-doxygen/wayland/Client/group__iface__wl__shell.html
[deprecated]: 698dde1958
[XML spec]: https://github.com/wayland-project/wayland-protocols/blob/master/stable/xdg-shell/xdg-shell.xml
2019-03-04 10:58:54 +00:00
Matteo Valdina
e0535b44d4 waylandsink: relaxed wl_shell check and added zwp_fullscreen_shell.
Relaxed the wl_shell interface constrains, so application that
pass via GstContext the wl_surface can use waylandsink in a
compositor without wl_surface and zwp_fullscreen_shell.

Added support for zwp_fullscreen_shell.

https://bugzilla.gnome.org/show_bug.cgi?id=796772
2018-07-25 07:53:09 -04:00
Nicolas Dufresne
4261692187 Remove plugin specific static build option
Static and dynamic plugins now have the same interface. The standard
--enable-static/--enable-shared toggle are sufficient.
2017-05-16 14:05:52 -04:00
Reynaldo H. Verdejo Pinochet
7c64ea4832 wayland: avoid prefix clash in combined pkg-config check
Adittionally, remove leftover WAYLAND_DRM_ include flags var

Fixes building of ext/wayland/* broken by dfd86de67a

Related to:

https://bugzilla.gnome.org/show_bug.cgi?id=773927
2016-11-18 10:41:16 -08:00
Tim-Philipp Müller
5f5ce8f1ff wayland: only use libdrm headers, don't link to the lib
https://bugzilla.gnome.org/show_bug.cgi?id=773927
2016-11-04 13:44:19 +00:00
Tim-Philipp Müller
9229e34a6b wayland: include drm_fourcc.h properly and fix build 2016-11-04 09:21:59 +00:00
Tim-Philipp Müller
dc6862bf70 wayland: fix cflags/libs order 2016-11-04 09:21:59 +00:00
Fabien Dessenne
2ad337e440 waylandsink: support linux dmabuf protocol
Support the wayland zwp_linux_dmabuf_unstable_v1 protocol.
SHM formats and DMABuf formats are exposed differently in caps: the
DMABuf formats are flagged with GST_CAPS_FEATURE_MEMORY_DMABUF.
No buffer pool is proposed for DMABuf buffers, it is the upstream
element responsibility to provide with such buffers.

https://bugzilla.gnome.org/show_bug.cgi?id=711155
2016-11-03 15:37:46 -04:00
Tim-Philipp Müller
957ea18b1b wayland: fix distcheck some more 2016-09-20 18:28:29 +01:00
Tim-Philipp Müller
b711e23036 wayland: fix distcheck when wayland-scanner is not installed 2016-09-17 14:12:44 +01:00
Scott D Phillips
a5ead086f9 wayland: Update from scaler to viewporter protocol
Signed-off-by: Scott D Phillips <scott.d.phillips@intel.com>

https://bugzilla.gnome.org/show_bug.cgi?id=767671
2016-09-15 12:10:59 -04:00
George Kiagiadakis
28194c0c11 waylandsink: replace the custom GstWlShmMemory with GstFdMemory 2015-10-14 22:05:51 +02:00
George Kiagiadakis
d7bddb0c51 waylandsink: replace the custom buffer pool with an allocator
This reduces the complexity of having a custom buffer pool, as
we don't really need it. We only need the custom allocation part.
And since the wl_buffer is no longer saved in a GstMeta, we can
create it and add it on the buffers in the sink's render()
function, which removes the reference cycle caused by the pool
holding a reference to the display and also allows more generic
scenarios (the allocator being used in another pool, or buffers
being allocated without a pool [if anything stupid does that]).

This commit also simplifies the propose_allocation() function,
which doesn't really need to do all these complicated checks,
since there is always a correct buffer pool available, created
in set_caps().

The other side effect of this commit is that a new wl_shm_pool
is now created for every GstMemory, which means that we use
as much shm memory as we actually need and no more. Previously,
the created wl_shm_pool would allocate space for 15 buffers, no
matter if they were being used or not.
2014-10-11 14:57:13 +02:00
George Kiagiadakis
9807d58b01 waylandsink: rework the mechanism for keeping buffers out of the pool until wl_buffer::release
This also removes the GstWlMeta and adds a wrapper class for wl_buffer
which is saved in the GstBuffer qdata instead of being a GstMeta.

The motivation behind this is mainly to allow attaching wl_buffers on
GstBuffers that have not been allocated inside the GstWaylandBufferPool,
so that if for example an upstream element is sending us a buffer
from a different pool, which however does not need to be copied
to a buffer from our pool because it may be a hardware buffer
(hello dmabuf!), we can create a wl_buffer directly from it and first,
attach it on it so that we don't have to re-create a wl_buffer every
time the same GstBuffer arrives and second, force the whole mechanism
for keeping the buffer out of the pool until there is a wl_buffer::release
on that foreign GstBuffer.
2014-10-11 14:57:13 +02:00
George Kiagiadakis
c86906d76c waylandsink/Makefile.am: Fix scaler-client-protocol.h generation 2014-06-17 13:51:26 +02:00
George Kiagiadakis
1cbfba5034 waylandsink: Build bindings for the unstable wl_scaler spec 2014-06-17 13:51:24 +02:00
George Kiagiadakis
68133361ec waylandsink: implement with stubs the GstWaylandVideo & GstVideoOverlay interfaces 2014-06-17 13:51:23 +02:00
George Kiagiadakis
ae6aebd9d5 waylandsink: split window-related code out to a new GstWlWindow class
GstWlWindow also has API ready to support subsurfaces.
2014-06-17 13:51:22 +02:00
George Kiagiadakis
f6e72c8725 waylandsink: split video format related functions out to a separate file 2014-06-17 13:51:21 +02:00
George Kiagiadakis
e600a323b7 waylandsink: process display events in a separate thread
This also moves the display-related code into a new GstWlDisplay class,
which takes care of the new thread
2014-06-17 13:51:20 +02:00
Sebastian Dröge
e51cd4fe2f gst: Add better support for static plugins 2013-04-15 15:59:22 +02:00
Tim-Philipp Müller
4712247e4f Remove some liboil references
https://bugzilla.gnome.org/show_bug.cgi?id=673285
2012-09-29 12:36:08 +01:00
Sreerenj Balachandran
c803ca4af5 wayland: More fixes based on wayland-0.95.0 and gstreamer-1.0 apis
- bump wayland version to 0.95.0 which will lead to stable 1.0 release
- avoid memcopy and use propose_allocation for GstBufferPool allocation
- using WaylandBufferPool
- shm: Allocate shm buffers through new wl_shm_pool interface
  (the shm buffer allocation is a two step process now: first
  allocate a wl_shm_pool, then allocate a buffer from the pool)

https://bugzilla.gnome.org/show_bug.cgi?id=681453
2012-08-21 10:24:45 +01:00
Alban Browaeys
f45873047d wayland: don't link to gstinterfaces, which doesn't exist any more
https://bugzilla.gnome.org/show_bug.cgi?id=679929
2012-07-14 15:28:40 +01:00
Sebastian Dröge
1318a97e0a gst: Update versioning 2012-04-04 14:44:34 +02:00
Sreerenj Balachandran
d68c6bfa9f Initial Commit: Adding Wayland Video Sink 2012-03-04 20:21:37 +01:00