Commit graph

217 commits

Author SHA1 Message Date
Thiago Santos
ef66e39d03 eagl: fix handling of surface dimension changes
Detect when the eagl surface changed its dimension (when the user rotates
the device for example) and adapt the egl internals to draw to that,
preventing that ios resizes the image again when drawing.

This is particularly harmful when eagl would scale down a image
to draw and the ios screen would scale it back up because the
surface is now bigger than when the element was configured.
2013-05-16 15:16:30 -03:00
Sebastian Dröge
baa9754f6f eglglessink: Give only SECONDARY rank
If available we still prefer xvimagesink.
2013-04-18 15:27:11 +02:00
Josep Torra
1190a79b19 eglglessink: silence warnings building for RPI related to 'vcos_*' 2013-04-18 12:53:28 +02:00
Josep Torra
9a88d737fc eglglessink: fix warnings building on the RPI 2013-04-18 12:35:55 +02:00
Sebastian Dröge
a8cca17027 eglglessink: Fix GstContext refcounting some more 2013-04-17 13:48:28 +02:00
Sebastian Dröge
e8ad67f2b4 eglglessink: Update for GLTextureUploadMeta and EGL API changes 2013-04-17 10:51:18 +02:00
Sebastian Dröge
118f8f33ef eglglessink: Properly set a debug category for the adaption layers 2013-04-16 22:25:19 +02:00
Sebastian Dröge
9fdec0f83b eglglessink: Get the EGL/GLES extensions at the right position 2013-04-16 22:25:02 +02:00
Thiago Santos
149cb5a7cf eglglessink: refactor to allow eagl support
Put EGL specific code to a separate file and create the same functions
for EAGL, the Apple's specific EGL implementaton.

At this point, the EAGL version wasn't compiled or tested as there isn't
any simple documented way to build 1.0 for iOS. This code for the EAGL
version is still the 0.10 version, some updates should be made when 1.0
is buildable for iOS.
2013-04-16 16:04:35 -03:00
Thiago Santos
0fafdf8db1 eglglessink: refactor egl functions/data to a separate file
This is part of the changes required to make
eglglessink work with both EGL and Apple's EAGL
2013-04-16 15:58:12 -03:00
Sebastian Dröge
0f10fb622e eglglessink: Print EGL/GLES extensions after we are actually initialized enough 2013-04-16 16:30:08 +02:00
Sebastian Dröge
611ab7f744 eglglessink: Fix compiler warnings
gsteglglessink.c: In function 'gst_eglglessink_fill_texture':
gsteglglessink.c:1815:3: error: format '%d' expects argument of type 'int', but argument 11 has type 'gsize' [-Werror=format]
gsteglglessink.c: In function 'gst_eglglessink_configure_caps':
gsteglglessink.c:2850:3: error: format '%p' expects argument of type 'void *', but argument 8 has type 'EGLNativeWindowType' [-Werror=format]
2013-04-15 08:48:19 +02:00
Sebastian Dröge
1acde42b6e eglglessink: Use the EGLImage and GstVideoGLTextureUploadMeta caps features 2013-04-01 10:22:07 +02:00
Sebastian Dröge
95f819109f eglglessink: Use gst_element_get_context() wherever possible 2013-03-31 11:47:01 +02:00
Sebastian Dröge
ce9b6e5afb eglglessink: Implement GstContext handling 2013-03-29 16:38:34 +01:00
Sebastian Dröge
9e2af116f6 eglglessink: Use a separate texture for the custom textures 2013-03-29 16:11:56 +01:00
Sebastian Dröge
3233c6163a eglglessink: Add support for GstVideoGLTextureUploadMeta 2013-03-29 16:07:23 +01:00
Sebastian Dröge
86363b4f39 eglglessink: Add support for different EGLImage orientations 2013-03-13 13:02:07 +01:00
Sebastian Dröge
d5f15cf3a2 eglglessink: Add RGBA to the caps again 2013-03-13 11:10:02 +01:00
Sebastian Dröge
71768daceb eglglessink: Make sure the buffer is released to the pool if it's the last used one 2013-03-12 19:36:12 +01:00
Sebastian Dröge
bd8963f591 eglglessink: There are only two GLSL programs, not three 2013-03-07 11:58:25 +01:00
Sebastian Dröge
0931724767 eglglessink: gst_buffer_pool_config_get_allocator() does *not* return a new reference to the allocator
Different to gst_query_get_n_allocation_params() which does
2013-03-07 11:51:06 +01:00
Sebastian Dröge
c4fc3428eb eglglessink: Fix allocation of RGBA textures 2013-03-06 17:53:18 +01:00
Sebastian Dröge
a50700404a eglglessink: Make sure to set the NO_SHARE flag on the EGLImage memories
See https://bugzilla.gnome.org/show_bug.cgi?id=695203
2013-03-06 10:53:59 +01:00
Sebastian Dröge
ebe5849443 eglglessink: Always use an RGBA configuration 2013-03-05 12:47:07 +01:00
Sebastian Dröge
a2e89b0858 eglglessink: Properly negotiate an allocator 2013-03-03 12:31:05 +01:00
Sebastian Dröge
a47f52bb96 egl: Mark memory as not mappable if it isn't 2013-03-03 12:31:05 +01:00
Sebastian Dröge
106a0f09af eglglessink: Store a reference to the last_buffer if using EGLImages 2013-03-03 12:31:05 +01:00
Sebastian Dröge
196223b810 eglglessink: Fix compiler warning on RPi 2013-03-03 12:31:05 +01:00
Sebastian Dröge
e852f18e93 eglglessink: Port to new EGL library 2013-03-03 12:31:04 +01:00
Sebastian Dröge
ec19fa930c eglglessink: Fix GST_ERROR_OBJECT() parameters 2013-03-03 12:29:24 +01:00
Sebastian Dröge
3876a7f9e6 eglglessink: For RPi, initialize bcm_host in plugin_init() 2013-02-13 15:22:37 +01:00
Julian Scheel
f337777eb5 eglglessink: Add bcm/Raspberry Pi support.
This adds a video platform backend for the dispmanx display manager used by
broadcom and the Raspberry Pi.

Signed-off-by: Julian Scheel <julian@jusst.de>
2013-02-13 12:38:31 +01:00
Sebastian Dröge
1b88d7cada eglglessink: Don't return EGLImages that we just rendered from the buffer pool
Mapping them will fail because they're still internally used.
2013-01-03 17:28:49 +01:00
Sebastian Dröge
2aefc09248 eglglessink: Handle copying of GstMemory properly
We have to use the default video meta mapping functions.
2013-01-03 15:22:38 +01:00
Sebastian Dröge
b244151f85 eglglessink: Make sure to always use the correct GstMemory for buffers from our pool 2013-01-03 12:08:39 +01:00
Sebastian Dröge
e8b4815783 eglglessink: Don't forget to call the platform specific EGLImage free function 2013-01-03 11:07:06 +01:00
Sebastian Dröge
c6d9191abe eglglessink: Make sure to wait for the right object to be dequeued 2013-01-03 10:43:43 +01:00
Sebastian Dröge
79144b7cea eglglessink: Remove packed YUV support
This will not allow zero-copy because the same
EGLImage would need to be used for two different
textures with a different format.
2013-01-02 16:10:20 +01:00
Sebastian Dröge
9e1faac4df eglglessink: Log in the performance category if we map/copy EGLImages to normal memory 2013-01-01 12:05:03 +01:00
Sebastian Dröge
1ad5e5b329 eglglessink: Catch errors from glEGLImageTargetTexture2DOES() 2013-01-01 10:48:53 +01:00
Sebastian Dröge
1fbea3e39d eglglessink: Upload textures in GstBaseSink::prepare() already
This gives more time for the texture to be uploaded as it happens
before syncing to the running time. When the running time is reached
only eglSwapBuffers() is necessary.
2013-01-01 10:48:53 +01:00
Sebastian Dröge
2cae6df5e5 eglglessink: Downgrade a GST_ERROR to a GST_DEBUG 2012-12-31 15:59:05 +01:00
Sebastian Dröge
9f14fd5cce eglglessink: Make last_flow handling more threadsafe 2012-12-31 15:59:05 +01:00
Sebastian Dröge
4df3e56c9a eglglessink: Add support for allocating EGLImages on Mali
This allows to decoders and other upstream elements to do
zero-copy to the sink.
2012-12-31 15:59:04 +01:00
Sebastian Dröge
6748198668 eglglessink: Fix indention 2012-12-30 11:32:29 +01:00
Sebastian Dröge
6140bc7f8c eglglessink: Return the last_flow immediately if it wasn't GST_FLOW_OK 2012-12-30 11:32:02 +01:00
Sebastian Dröge
fa6cddcf45 eglglessink: Fix copy&paste mistake 2012-12-30 11:29:49 +01:00
Sebastian Dröge
be5486231b eglglessink: Improve EGL/GL error handling a bit 2012-12-30 11:25:13 +01:00
Sebastian Dröge
d643ff961e eglglessink: Don't access the video frame data if not necessary 2012-12-30 11:25:13 +01:00