Commit graph

13145 commits

Author SHA1 Message Date
Sebastian Dröge caf9d1febd eglglessink: Fix race condition 2012-10-18 14:35:19 +02:00
Sebastian Dröge 99f738bbc0 eglglessink: Refactor rendering and all context specific GL things into a separate thread
Also fixes some threading related problems.
2012-10-18 14:35:19 +02:00
Sebastian Dröge 11ec917ee0 eglglessink: Re-add accidentially reverted commit 2012-10-18 14:35:19 +02:00
Sebastian Dröge ba3274c8f0 eglglessink: Remove unneeded flow_lock
Use the object lock in the few places necessary, everything
else is protected by other things already.

Also store the context directly inside the instance struct
instead of allocating some memory for it.
2012-10-18 14:35:19 +02:00
Sebastian Dröge 2b3279c9b5 eglglessink: Fix debug output and constant names 2012-10-18 14:35:19 +02:00
Sebastian Dröge 1f0bf75075 eglglessink: start()/stop() is called in READY<->NULL in basesink
But this should be called in PAUSED<->READY.
2012-10-18 14:35:18 +02:00
Reynaldo H. Verdejo Pinochet d2dcecfc8a eglglessink: Fix for outbound DAR reported by EGL
Some EGL implementations don't honor the spec
requirement of returning DAR values as w/h *
EGL_DISPLAY_SCALING.

This changeset:

- Fixes rendering on the Samsung Galaxy III
- Fixes wrong check on required 1.2 EGL version
- Reorders the code a bit.
2012-10-18 14:35:18 +02:00
Sebastian Dröge dde62cee8e eglglessink: Fix crashes if there are no EGL or GLES extensions 2012-10-18 14:35:18 +02:00
Reynaldo H. Verdejo Pinochet a317f6936c eglglessink: Fix crash at element instantiation 2012-10-18 14:35:18 +02:00
Reynaldo H. Verdejo Pinochet af009b7de7 eglglessink: GLSL: Save one extra texture lookup 2012-10-18 14:35:18 +02:00
Reynaldo H. Verdejo Pinochet 0ed02803f7 eglglessink: GLSL: Minor named index access tweak xyz -> rgb 2012-10-18 14:35:18 +02:00
Reynaldo H. Verdejo Pinochet 5c2b1dc631 eglglessink: GLSL: Assorted fixes to optimized code
- Don't copy over opos as it's already a vec2
- Fix index order access at frag_YUY2_YVYU_UYVY_prog
2012-10-18 14:35:18 +02:00
Reynaldo H. Verdejo Pinochet 73d865091c eglglessink: GLSL: Planar YUV converters optimization
- Use consts for the transform's offset and cofficients values
- Use dot product instead of mult and add
- Avoid unneeded texture lookups
2012-10-18 14:35:18 +02:00
Reynaldo H. Verdejo Pinochet 846e77871b Geglglessink: LSL: Optimize frag_YUY2_YVYU_UYVY_prog
- Avoid repeatedly performing the texture lookup
- Use consts for the transform's offset and cofficients values
- Use the dot product instead of the explicit mult and add
2012-10-18 14:35:18 +02:00
Reynaldo H. Verdejo Pinochet eb8f7d63d5 eglglessink: GLSL: Drop unneded nxy vec2 2012-10-18 14:35:18 +02:00
Reynaldo H. Verdejo Pinochet bb0b872644 eglglessink: Fix missing double quotation mark in GLSL code 2012-10-18 14:35:18 +02:00
Reynaldo H. Verdejo Pinochet a95834a491 eglglessink: GLSL: Optimize frag_AYUV_prog
- Avoid repeatedly performing the texture lookup
- Use consts for the transform's offset and cofficients values
- Use the dot product instead of the explicit mult and add
2012-10-18 14:35:18 +02:00
Reynaldo H. Verdejo Pinochet a7a2dcc433 eglglessink: Documentation: GstEglGlesSink struct 2012-10-18 14:35:18 +02:00
Reynaldo H. Verdejo Pinochet 38ca631a7a eglglessink: Documentation: GstEglGlesBuffer struct (DRAFT) 2012-10-18 14:35:17 +02:00
Reynaldo H. Verdejo Pinochet c27c11582e eglglessink: Documentation: GstEglGlesImageFmt struct 2012-10-18 14:35:17 +02:00
Reynaldo H. Verdejo Pinochet 945b11fd02 eglglessink: Documentation: GstEglGlesRenderContext struct 2012-10-18 14:35:17 +02:00
Reynaldo H. Verdejo Pinochet d97b3dba60 eglglessink: Assorted doc and reordering fixes 2012-10-18 14:35:17 +02:00
Reynaldo H. Verdejo Pinochet 031b6a57ac eglglessink: Documentation: Element properties
Brief explanatory comments plus some reordering
to group default setting of properties and runtime
flags values.
2012-10-18 14:35:17 +02:00
Sebastian Dröge 81463a1cb7 eglglessink: Add support for YVYU 2012-10-18 14:35:17 +02:00
Reynaldo H. Verdejo Pinochet 95a223a030 eglglessink: Documentation: GLSL Shaders
Brief explanatory comments plus some rerdering
to group packed/planar converters.
2012-10-18 14:35:17 +02:00
Reynaldo H. Verdejo Pinochet 731be48dac eglglessink: Documentation: Element overview 2012-10-18 14:35:17 +02:00
Reynaldo H. Verdejo Pinochet 1eef329725 eglglessink: Refactor REORDER shader.
Avoid unneededly calling texture2D() 3 consecutive times.
2012-10-18 14:35:17 +02:00
Sebastian Dröge c91238a2af eglglessink: Fix handling of caps changes by only releasing what needs to be released
And not terminating the display connection
2012-10-18 14:35:17 +02:00
Reynaldo H. Verdejo Pinochet 310e5111b7 eglglessink: Move display_region reset to locked section 2012-10-18 14:35:17 +02:00
Reynaldo H. Verdejo Pinochet 884e5fa173 eglglessink: Reset display_region dims at caps renego 2012-10-18 14:35:17 +02:00
Reynaldo H. Verdejo Pinochet f28f5df29e eglglessink: Cosmetics 2012-10-18 14:35:17 +02:00
Reynaldo H. Verdejo Pinochet c255aa5dd4 eglglessink: Don't access local value from struct 2012-10-18 14:35:16 +02:00
Reynaldo H. Verdejo Pinochet 2ab9de8e4f eglglessink: Terminate display connection at caps renego 2012-10-18 14:35:16 +02:00
Reynaldo H. Verdejo Pinochet 734ac85bb4 eglglessink: Cosmetics 2012-10-18 14:35:16 +02:00
Sebastian Dröge e022fc5389 eglglessink: Only attach the context once to the streaming thread 2012-10-18 14:35:16 +02:00
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