Commit graph

13110 commits

Author SHA1 Message Date
Sebastian Dröge 09b3518bae eglglessink: Make the context current for the thread and unbind it again around every use
This fixes some crashes and leaking of our context into other
OpenGL code on the same thread.
2012-10-18 14:35:16 +02:00
Sebastian Dröge 113253b292 eglglessink: Improve cleanup 2012-10-18 14:35:16 +02:00
Sebastian Dröge 70d077acd8 eglglessink: Remove unused label 2012-10-18 14:35:16 +02:00
Sebastian Dröge f058b5d78b eglglessink: Allow setting a NULL handle 2012-10-18 14:35:16 +02:00
Sebastian Dröge fc0dc0055a eglglessink: Revert "Do not update_surface_dims() once per frame"
This reverts commit 82103376ede2bc7c63dd699f5982168660f67852.

We have to update the surface dimensions on every frame to
make sure that we get notified about updates. This happens
for example if the Android window gets re-layouted because
a widget takes more space than before.
2012-10-18 14:35:16 +02:00
Reynaldo H. Verdejo Pinochet a818d5c771 eglglessink: Do not update_surface_dims() once per frame
And.. Upgrade debug message to warging on weird DAR.
Correct fix to avoid spaming with this message
once per each frame is avoid calling update_surface_dims()
at render_and_display(). This is handled at egl surface
init.
2012-10-18 14:35:16 +02:00
Sebastian Dröge 162f63e064 eglglessink: And downgrade another warning too 2012-10-18 14:35:16 +02:00
Sebastian Dröge 7307ddd54b eglglessink: Downgrade GST_WARNING to GST_DEBUG 2012-10-18 14:35:16 +02:00
Sebastian Dröge 8dabfbfca8 eglglessink: Add some {} to if statements make them work as expected 2012-10-18 14:35:16 +02:00
Reynaldo H. Verdejo Pinochet 20a05726b3 eglglessink: Drop stale defines for max frame size 2012-10-18 14:35:16 +02:00
Reynaldo H. Verdejo Pinochet a3530d9a3d eglglessink: Small commentary fixes here an there 2012-10-18 14:35:15 +02:00
Reynaldo H. Verdejo Pinochet 2b706d3fbe eglglessink: Avoid setting height or width twice 2012-10-18 14:35:15 +02:00
Reynaldo H. Verdejo Pinochet eeb3b84d07 eglglessink: Use PAR/DAR to set viewport 2012-10-18 14:35:15 +02:00
Sebastian Dröge c3fb44aef3 eglglessink: Correctly resize if the surface dimensions change 2012-10-18 14:35:15 +02:00
Sebastian Dröge 3fcea0dc5e eglglessink: Update surface dimensions on every buffer 2012-10-18 14:35:15 +02:00
Sebastian Dröge 2b2ae0fd6f eglglessink: More consistent naming of shader related variables 2012-10-18 14:35:15 +02:00
Sebastian Dröge 1ad253b9b7 eglglessink: Some variable name cleanup 2012-10-18 14:35:15 +02:00
Sebastian Dröge e8f4829c13 eglglessink: Remove default-width/height properties
These are completely unneeded
2012-10-18 14:35:15 +02:00
Sebastian Dröge 985a185ffc eglglessink: Fix double free() 2012-10-18 14:35:15 +02:00
Sebastian Dröge b5b98fc874 eglglessink: Don't leak EGL/ES render context 2012-10-18 14:35:15 +02:00
Reynaldo H. Verdejo Pinochet bab81de275 eglglessink: Put EGL/GLES context vars on their own struct 2012-10-18 14:35:15 +02:00
Reynaldo H. Verdejo Pinochet 5526737ec8 eglglessink: Small TODO reformatting 2012-10-18 14:35:15 +02:00
Reynaldo H. Verdejo Pinochet e8ed9e1097 eglglessink: Add TODO file 2012-10-18 14:35:15 +02:00
Sebastian Dröge 2323c40f1b eglglessink: Correctly implement ::expose()
We don't need the past buffer for this, the old one is still available
as texture and we just need to draw our rectangle again.
2012-10-18 14:35:15 +02:00
Sebastian Dröge 18e473307f eglglessink: Allow setting another window for the next time we reconfigure everything 2012-10-18 14:35:14 +02:00
Sebastian Dröge aa463f0274 eglglessink: Also unref current caps after usage 2012-10-18 14:35:14 +02:00
Sebastian Dröge c2de59b19c eglglessink: Implement support for caps changes 2012-10-18 14:35:14 +02:00
Sebastian Dröge d91621d2ce eglglessink: More cleanup and making the element reusable 2012-10-18 14:35:14 +02:00
Sebastian Dröge 56b711bd29 eglglessink: Properly init/release resources when going from NULL->READY and the other way around 2012-10-18 14:35:14 +02:00
Sebastian Dröge 15c93da54e eglglessink: Generate the sink caps exactly once 2012-10-18 14:35:14 +02:00
Sebastian Dröge ad6e314a6e eglglessink: Fix code style a bit to stop confusing indent 2012-10-18 14:35:14 +02:00
Sebastian Dröge 4e637ddb7b eglglessink: Fix support for YUY2 and UYVY 2012-10-18 14:35:14 +02:00
Sebastian Dröge 9e094541b0 eglglessink: Some property cleanup 2012-10-18 14:35:14 +02:00
Sebastian Dröge 25eb488f30 eglglessink: Add support for the remaining RGB formats 2012-10-18 14:35:14 +02:00
Sebastian Dröge 11368b49b2 eglglessink: Add support for Y444, Y42B and Y41B, just because it's so easy 2012-10-18 14:35:14 +02:00
Sebastian Dröge d98d5c657e eglglessink: Add some simple TODOs 2012-10-18 14:35:14 +02:00
Reynaldo H. Verdejo Pinochet 98b9862167 eglglessink: Lock while altering display region coords 2012-10-18 14:35:14 +02:00
Reynaldo H. Verdejo Pinochet a2fce44139 eglglessink: Fix _get_compat_format_from_caps() logic
It's a getter so it shouldn't messing with the sink context.
Adding insult to injury it was setting selected_fmt without
locking.
The associated changes to the buffer functions are merely
make-it build fixes. Those functions are barely drafted
and in WIP state.
2012-10-18 14:35:13 +02:00
Reynaldo H. Verdejo Pinochet 47d0505f40 eglglessink: Drop unneded initial set to NULL 2012-10-18 14:35:13 +02:00
Reynaldo H. Verdejo Pinochet 0c681dc2a6 eglglessink: Minor formatting and comment fixes 2012-10-18 14:35:13 +02:00
Reynaldo H. Verdejo Pinochet 63d8cd88c7 eglglessink: Clean-up gl/egl allocations at _stop()
Also, conditionaly destroy window if the sink created its own.
2012-10-18 14:35:13 +02:00
Sebastian Dröge 99765c3333 eglglessink: Add support for NV12 and NV21
Also YUY2 and UYVY but this is disabled for now as it
doesn't work completely yet. Something is wrong with
the chroma.
2012-10-18 14:35:13 +02:00
Sebastian Dröge 72d05a681f eglglessink: Add support for I420 and YV12 color formats 2012-10-18 14:35:13 +02:00
Sebastian Dröge d3995c1a7b eglglessink: Preparations for supporting multiple textures for more YUV formats 2012-10-18 14:35:13 +02:00
Sebastian Dröge 3f734aafc7 eglglessink: Use the attrib locations as really used inside the shader 2012-10-18 14:35:13 +02:00
Sebastian Dröge 24261a4fe7 eglglessink: Really decouple vertex and texture positions in the shader 2012-10-18 14:35:13 +02:00
Sebastian Dröge dafcdb0da3 eglglessink: Decouple texture and vertex positions 2012-10-18 14:35:13 +02:00
Sebastian Dröge cb034b2ecd eglglessink: Reorder vertex value order to make a bit more sense 2012-10-18 14:35:13 +02:00
Reynaldo H. Verdejo Pinochet 8018681187 eglglessink: Handle frame scaling to fill surface 2012-10-18 14:35:13 +02:00
Reynaldo H. Verdejo Pinochet 90d5b76dc5 eglglessink: Draft set_render_rectangle() from the xOverlay interface 2012-10-18 14:35:13 +02:00