Commit graph

156 commits

Author SHA1 Message Date
Sebastian Dröge
61db9ad941 eglglessink: Also clear the surface once when the buffer content is preserved 2012-10-18 14:35:20 +02:00
Sebastian Dröge
147edd1fc2 eglglessink: Only draw black borders if the default swap behaviour of the surface is to destroy the buffer 2012-10-18 14:35:20 +02:00
Sebastian Dröge
a025c80b4c eglglessink: Remove unused label 2012-10-18 14:35:20 +02:00
Reynaldo H. Verdejo Pinochet
5bdf1ec099 eglglessink: Factor display region reset to its own func 2012-10-18 14:35:20 +02:00
Reynaldo H. Verdejo Pinochet
c3a12d737e eglglessink: Always Reset display_region.* at EGL/GLES ctx wipe 2012-10-18 14:35:20 +02:00
Reynaldo H. Verdejo Pinochet
ac037ce319 eglglessink: Factor ELG/GLES context cleanup into its own func 2012-10-18 14:35:20 +02:00
Reynaldo H. Verdejo Pinochet
ab81bd8f1e eglglessink: Drop drafted fast rendering path logic 2012-10-18 14:35:20 +02:00
Sebastian Dröge
9e8ad1097b eglglessink: Also update header file 2012-10-18 14:35:20 +02:00
Sebastian Dröge
f5043f5d64 eglglessink: Provide the texture positions to the shader on every frame too 2012-10-18 14:35:20 +02:00
Sebastian Dröge
9941466ab4 eglglessink: Draw black borders and also use a single GL buffer for all vertices
Fixes weird artifacts outside the video frame on
Qualcomm Snapdragon chipsets and should be faster
than glClear() on the complete area all the time.
2012-10-18 14:35:20 +02:00
Sebastian Dröge
a65ed4d7c1 eglglessink: Fix memory leak 2012-10-18 14:35:20 +02:00
Sebastian Dröge
f7a0da4da9 eglglessink: Remove useless debug output added for debugging earlier 2012-10-18 14:35:20 +02:00
Sebastian Dröge
0ac17bcbc2 eglglessink: Make window setting/handling a bit more threadsafe 2012-10-18 14:35:19 +02:00
Sebastian Dröge
e766bd1e0a eglglessink: Print window handle after setting it 2012-10-18 14:35:19 +02:00
Reynaldo H. Verdejo Pinochet
32861ab0a7 eglglessink: Move DAR query & store to surface init
The DAR (display's pixel aspect ratio) should remain a
constant at runtime so there's no point on repeatedly
query and store this value. Doing it at surface setup
should be enough. As an added bonus this change should
make rendering a bit faster.
2012-10-18 14:35:19 +02:00
Sebastian Dröge
406630a294 eglglessink: Don't signal the GCond too often 2012-10-18 14:35:19 +02:00
Sebastian Dröge
82dc2a3544 eglglessink: Add myself as author 2012-10-18 14:35:19 +02:00
Sebastian Dröge
87a028a0a4 eglglessink: Make sure to always reset the display region in start() 2012-10-18 14:35:19 +02:00
Sebastian Dröge
28fe3f7888 eglglessink: Also commit missing changes to the header file 2012-10-18 14:35:19 +02:00
Sebastian Dröge
610e33b049 eglglessink: Also include $(GST_BASE_CFLAGS) 2012-10-18 14:35:19 +02:00
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