George Kiagiadakis
de15c21413
waylandsink: fix crash in case there is no pool because of a caps negotiation error
2014-06-17 13:51:25 +02:00
George Kiagiadakis
162dbd412c
waylandsink: set an empty input region on the video surface
2014-06-17 13:51:25 +02:00
George Kiagiadakis
94d02288d0
waylandsink/wlwindow: reuse code between the two constructors
2014-06-17 13:51:25 +02:00
George Kiagiadakis
a98f589aef
waylandsink: increase debug messages
2014-06-17 13:51:25 +02:00
George Kiagiadakis
5bb889a3df
waylandsink: Use a boolean in combination with render_cond to comply with GCond's usage documentation
2014-06-17 13:51:25 +02:00
George Kiagiadakis
66f8c1389b
waylandsink: Implement expose() and handle resizing properly in non-PLAYING states
2014-06-17 13:51:25 +02:00
George Kiagiadakis
086ac4ee81
waylandsink: Use wl_scaler/wl_viewport to scale the surface in the compositor/hardware
2014-06-17 13:51:25 +02:00
George Kiagiadakis
1cbfba5034
waylandsink: Build bindings for the unstable wl_scaler spec
2014-06-17 13:51:24 +02:00
George Kiagiadakis
12444ec84e
waylandsink: Set external surfaces and their child objects to use our own event queue
...
This fixes weird freezes because of frame_redraw_callback() not being
called from the main thread when it should with weston's toy toolkit.
It's also safer to know that frame_redraw_callback() will always be
called from our display thread... Otherwise it could be called after
the sink has been destroyed for example.
2014-06-17 13:51:24 +02:00
George Kiagiadakis
fabc5305be
waylandsink: Wait for the frame_cb to redraw and drop frames meanwhile
...
We are not supposed to redraw until we receive a frame callback and this
is especially useful to avoid allocating too many buffers while the
window is not visible, because the compositor may not call wl_buffer.release
until the window becomes visible (ok, this is a wayland bug, but...).
2014-06-17 13:51:24 +02:00
George Kiagiadakis
51a2c694ad
waylandsink: Handle wl_buffer::release and don't reuse buffers that are not released
...
This is achieved by adding an extra reference on the buffers, which does
not allow them to return to the pool. When they are released, this reference
is dropped.
The rest complexity of this patch (hash table, mutex, flag, explicit release calls)
merely exists to allow a safe, guaranteed and deadlock-free destruction sequence.
See the added comment on gstwaylandsink.c for details.
2014-06-17 13:51:24 +02:00
George Kiagiadakis
4b2d76873d
waylandsink/waylandpool: remove useless munmap call
...
This data pointer is part of a bigger mmap'ed region,
it has not been returned from mmap itself.
2014-06-17 13:51:24 +02:00
George Kiagiadakis
bf2232c999
waylandsink/waylandpool: call the start/stop methods of the parent class
...
start() makes sure that the minimum ammount of buffers requested is allocated.
stop() makes sure that buffers are actually destroyed and prevents
filling the file system when resizing the surface a lot, because the
wayland-shm-* files will stay on the file system as long as the wl_buffers
created out of them are alive.
2014-06-17 13:51:24 +02:00
George Kiagiadakis
bf19d792d0
waylandsink/waylandpool: unlink mmaped shm files so that they don't remain on the file system
2014-06-17 13:51:24 +02:00
George Kiagiadakis
e56f305274
waylandsink: implement the GstVideoOverlay & GstWaylandVideo interfaces
...
This is the initial implementation, without the GstVideoOverlay.expose()
method. It only implements using an external (sub)surface and resizing
it with GstWaylandVideo.
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
26ce7f2344
waylandsink: handle the list of supported formats properly
...
enum wl_shm_format is not a flags enum, as it may have been in the past,
so multiple formats cannot be stored in a bitfield. Use an array instead.
2014-06-17 13:51:23 +02:00
George Kiagiadakis
873671f2b6
waylandsink/wlvideoformat: add mappings for many common formats
2014-06-17 13:51:23 +02:00
George Kiagiadakis
f800e2b4fa
waylandsink: unref the buffer pool
2014-06-17 13:51:23 +02:00
George Kiagiadakis
a67b08cdd0
waylandsink/waylandpool: ref the display instead of the sink to avoid cyclic references
...
The reference to the sink is not really needed anyway in waylandpool,
what matters basically is that the display is active as long as the
pool is active, so we really want to reference the display object
instead of the sink.
2014-06-17 13:51:23 +02:00
George Kiagiadakis
253eafd4ef
waylandsink: make the display property useful
...
Let the display property control the name of the display,
like in x(v)imagesink.
2014-06-17 13:51:23 +02:00
George Kiagiadakis
e7650117af
waylandsink: access sink->pool in a more atomic fashion
2014-06-17 13:51:22 +02:00
George Kiagiadakis
58a4d247b3
waylandsink: remove the useless wayland_lock
2014-06-17 13:51:22 +02:00
George Kiagiadakis
350d919719
waylandsink: apply the same debug category to all the subobjects
2014-06-17 13:51:22 +02:00
George Kiagiadakis
ac9503ed65
waylandsink: cleanup header includes
2014-06-17 13:51:22 +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
05f0842572
waylandsink: remove callback and redraw_pending variables from the window structure
2014-06-17 13:51:22 +02:00
George Kiagiadakis
a7eb053708
waylandsink/waylandpool: improve debug message
2014-06-17 13:51:22 +02:00
George Kiagiadakis
0bec75a30f
waylandsink/waylandpool: find the video format from the GstVideoInfo instead of accessing the sink
...
For the sake of isolation only. The format should be the same.
2014-06-17 13:51:21 +02:00
George Kiagiadakis
d1480124a7
waylandsink/waylandpool: refactor code
...
* make use of GstBufferPool::start/stop functions to allocate/deallocate memory
* get rid of struct shm_pool and do all operations cleanly inside WaylandBufferPool
* store a GstVideoInfo during configuration instead of the width & height
and use the stride from the video info instead of hardcoding its value
2014-06-17 13:51:21 +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
0ee558f4c6
waylandsink/waylandpool: move code around for better readability
2014-06-17 13:51:21 +02:00
George Kiagiadakis
1e45b1480c
waylandsink: move struct shm_pool and its related functions to waylandpool.c
...
And also make the instance of this struct to be owned by the buffer
pool instead of the element, for the sake of isolation
2014-06-17 13:51:21 +02:00
George Kiagiadakis
549bdb4a09
waylandsink: Use XDG_RUNTIME_DIR instead of /tmp for the shm file
2014-06-17 13:51:21 +02:00
George Kiagiadakis
4208ae6203
waylandsink: remove unused variables
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
George Kiagiadakis
eb8ab3732e
waylandsink: tidy up the header files
2014-06-17 13:51:20 +02:00
Edward Hervey
6a2e39eefa
wayland: Remove dead assignment
...
We set it just after variable declaration
CID #1197709
2014-04-14 07:56:16 +02:00
Edward Hervey
97426a1caa
all: Fix for GST_DISABLE_GST_DEBUG
...
Where applicable, remove methods that don't do anything different than
the default implementation.
2013-07-29 09:42:12 +02:00
Benjamin Gaignard
3fc6f1d9b7
wayland: Add support for RGBx and RGBA formats
...
Wayland interface could offer two buffers pixels formats: WL_SHM_FORMAT_XRGB8888 and WL_SHM_FORMAT_ARGB8888.
Update waylandsink to support them and check if the format is really available.
https://bugzilla.gnome.org/show_bug.cgi?id=702112
2013-06-18 14:03:13 +02:00
Sebastian Dröge
e51cd4fe2f
gst: Add better support for static plugins
2013-04-15 15:59:22 +02:00
Joe Konno
8a63face0e
waylandsink: do not default to a fullscreen canvas
...
Defer certain canvas particulars to the player (or the Wayland
compositor). Before this change, a fullscreen canvas was always
requested. This may not be desirable in all cases.
https://bugzilla.gnome.org/show_bug.cgi?id=690442
2012-12-23 15:58:05 +00:00
Tim-Philipp Müller
9e1b75fda3
Fix FSF address
...
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-04 00:09:59 +00:00
Sreerenj Balachandran
54e05ee4aa
wayland: update to wayland-protocol 0.99
...
https://bugzilla.gnome.org/show_bug.cgi?id=686520
2012-10-20 13:09:03 +01:00
Tim-Philipp Müller
32ba17cd0f
Use gst_element_class_set_static_metadata()
...
where possible. Avoids some string copies. Also re-indent
some stuff. Also some indent fixes here and there.
2012-10-17 17:46:34 +01:00
Michael Smith
0c2159a220
meta info: register thread-safely.
2012-10-03 11:05:06 -07: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
Mark Nauwelaerts
578861abea
replace gst_element_class_set_details_simple with gst_element_class_set_metadata
2012-09-14 17:27:49 +02:00
Tim-Philipp Müller
4ed3d60bd2
waylandsink: fail gracefully with an error message if we can't connect to wayland
...
g_return_val_if_fail() is not for error handling, it's for
catching programming errors in public API.
Fixes problem with generic/states unit test.
2012-09-13 01:09:56 +01:00
Sreerenj Balachandran
547d679e9e
wayland: use scale fullscreen method.
...
This makes the compositor scale the surface to fit and preserves
aspect ratio.
https://bugzilla.gnome.org/show_bug.cgi?id=681453
2012-08-21 10:41:31 +01:00
Sreerenj Balachandran
dc81682f4b
wayland: respond to ping/pong protocol so we're not deemed unresponsive.
...
https://bugzilla.gnome.org/show_bug.cgi?id=681453
2012-08-21 10:41:24 +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
Tim-Philipp Müller
cc167a237a
Fix up FSF address in some source files as well
2012-08-18 20:31:17 +01:00
Tim-Philipp Müller
41a39d93bf
celt, opencv, wayland, dvbsub, festival, hls: printf format fixes
2012-07-15 12:27:12 +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
Wim Taymans
bd49892d7e
wayland: port to 0.11
2012-05-23 12:09:39 +02:00
Sebastian Dröge
cda192b3b7
gst: Update for GST_PLUGIN_DEFINE() API changes
2012-04-05 18:02:56 +02:00
Sebastian Dröge
1318a97e0a
gst: Update versioning
2012-04-04 14:44:34 +02:00
Sreerenj Balachandran
689bf4d392
waylandsink: Fix warnings, proper structuring, dead code removal, adding doc section.
2012-03-13 14:44:00 +01:00
Sreerenj Balachandran
e012ea80ff
waylandsink: Fix in shell_surface_set_fullscreen
2012-03-04 20:21:37 +01:00
Sreerenj Balachandran
2747aefaf7
waylandsink: More fixes -- update to Wayland 0.85 protocol -- Added shell surface -- Added format query for shm format -- Create the window based on width and height of video extracted from upstream caps.
2012-03-04 20:21:37 +01:00
Sreerenj Balachandran
775643d60e
Update with new APIs in wayland-client.
2012-03-04 20:21:37 +01:00
Sreerenj Balachandran
b5a7780122
More Fixes: * Adding buffer_alloc * perform buffer_damage before surface_attach * Fix typo, Remove Dead code etc.
2012-03-04 20:21:37 +01:00
Sreerenj Balachandran
d68c6bfa9f
Initial Commit: Adding Wayland Video Sink
2012-03-04 20:21:37 +01:00