Sebastian Dröge [Mon, 24 Sep 2012 09:01:17 +0000 (11:01 +0200)]
eglglessink: Some property cleanup
Sebastian Dröge [Mon, 24 Sep 2012 08:45:07 +0000 (10:45 +0200)]
eglglessink: Add support for the remaining RGB formats
Sebastian Dröge [Mon, 24 Sep 2012 08:23:07 +0000 (10:23 +0200)]
eglglessink: Add support for Y444, Y42B and Y41B, just because it's so easy
Sebastian Dröge [Mon, 24 Sep 2012 08:02:28 +0000 (10:02 +0200)]
eglglessink: Add some simple TODOs
Reynaldo H. Verdejo Pinochet [Mon, 24 Sep 2012 04:08:22 +0000 (01:08 -0300)]
eglglessink: Lock while altering display region coords
Reynaldo H. Verdejo Pinochet [Mon, 24 Sep 2012 03:27:23 +0000 (00:27 -0300)]
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.
Reynaldo H. Verdejo Pinochet [Mon, 24 Sep 2012 02:07:29 +0000 (23:07 -0300)]
eglglessink: Drop unneded initial set to NULL
Reynaldo H. Verdejo Pinochet [Mon, 24 Sep 2012 01:33:58 +0000 (22:33 -0300)]
eglglessink: Minor formatting and comment fixes
Reynaldo H. Verdejo Pinochet [Fri, 21 Sep 2012 15:12:24 +0000 (12:12 -0300)]
eglglessink: Clean-up gl/egl allocations at _stop()
Also, conditionaly destroy window if the sink created its own.
Sebastian Dröge [Fri, 21 Sep 2012 15:08:44 +0000 (17:08 +0200)]
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.
Sebastian Dröge [Fri, 21 Sep 2012 13:44:07 +0000 (15:44 +0200)]
eglglessink: Add support for I420 and YV12 color formats
Sebastian Dröge [Fri, 21 Sep 2012 12:05:43 +0000 (14:05 +0200)]
eglglessink: Preparations for supporting multiple textures for more YUV formats
Sebastian Dröge [Fri, 21 Sep 2012 11:42:41 +0000 (13:42 +0200)]
eglglessink: Use the attrib locations as really used inside the shader
Sebastian Dröge [Fri, 21 Sep 2012 10:53:00 +0000 (12:53 +0200)]
eglglessink: Really decouple vertex and texture positions in the shader
Sebastian Dröge [Fri, 21 Sep 2012 10:45:29 +0000 (12:45 +0200)]
eglglessink: Decouple texture and vertex positions
Sebastian Dröge [Fri, 21 Sep 2012 10:14:20 +0000 (12:14 +0200)]
eglglessink: Reorder vertex value order to make a bit more sense
Reynaldo H. Verdejo Pinochet [Fri, 21 Sep 2012 04:09:11 +0000 (01:09 -0300)]
eglglessink: Handle frame scaling to fill surface
Reynaldo H. Verdejo Pinochet [Fri, 21 Sep 2012 03:09:06 +0000 (00:09 -0300)]
eglglessink: Draft set_render_rectangle() from the xOverlay interface
Reynaldo H. Verdejo Pinochet [Fri, 21 Sep 2012 01:50:31 +0000 (22:50 -0300)]
eglglessink: Remove stale comment
Reynaldo H. Verdejo Pinochet [Fri, 21 Sep 2012 01:41:10 +0000 (22:41 -0300)]
eglglessink: Move VBO setup to setcaps
Reynaldo H. Verdejo Pinochet [Fri, 21 Sep 2012 01:11:08 +0000 (22:11 -0300)]
eglglessink: Don't do context ops at render
We don't need to repeatedly call
eglMakeCurrent() while using the
same context anyway.
Reynaldo H. Verdejo Pinochet [Fri, 21 Sep 2012 01:01:20 +0000 (22:01 -0300)]
eglglessink: Don't clear surface color at render
Sebastian Dröge [Thu, 20 Sep 2012 15:22:13 +0000 (17:22 +0200)]
eglglessink: Rename shader variables to make more sense
Sebastian Dröge [Thu, 20 Sep 2012 15:14:21 +0000 (17:14 +0200)]
eglglessink: Add support for AYUV
Sebastian Dröge [Thu, 20 Sep 2012 15:02:03 +0000 (17:02 +0200)]
eglglessink: Reorder caps a bit to make more sense
Sebastian Dröge [Thu, 20 Sep 2012 14:50:40 +0000 (16:50 +0200)]
eglglessink: Set rank to PRIMARY
Sebastian Dröge [Thu, 20 Sep 2012 14:25:33 +0000 (16:25 +0200)]
eglglessink: Add support for RGBA
Sebastian Dröge [Thu, 20 Sep 2012 14:21:55 +0000 (16:21 +0200)]
eglglessink: Correctly generated caps for the supported formats
Sebastian Dröge [Thu, 20 Sep 2012 14:08:28 +0000 (16:08 +0200)]
eglglessink: Add ::get_caps() vfunc that returns the actually supported caps
Sebastian Dröge [Thu, 20 Sep 2012 13:56:56 +0000 (15:56 +0200)]
eglglessink: Also require a configuration with EGL_SURFACE_TYPE containing EGL_WINDOW_BIT
Sebastian Dröge [Thu, 20 Sep 2012 12:50:23 +0000 (14:50 +0200)]
eglglessink: Fix compiler warnings
Reynaldo H. Verdejo Pinochet [Wed, 19 Sep 2012 22:26:54 +0000 (19:26 -0300)]
eglglessink: Clear surface to black by default
Reynaldo H. Verdejo Pinochet [Wed, 19 Sep 2012 22:23:50 +0000 (19:23 -0300)]
eglglessink: Make sure we get a config we can use with GLES2
Reynaldo H. Verdejo Pinochet [Wed, 19 Sep 2012 22:12:30 +0000 (19:12 -0300)]
eglglessink: set_window_handle() has been tested to work now
Reynaldo H. Verdejo Pinochet [Wed, 19 Sep 2012 15:29:13 +0000 (12:29 -0300)]
eglglessink: Avoid autoscaling by default
Reynaldo H. Verdejo Pinochet [Tue, 18 Sep 2012 17:58:43 +0000 (14:58 -0300)]
eglglessink: Avoid repeatedly setting 2D resizing params
Moved to initial texture setup so it hapens
just once while on the same context.
Reynaldo H. Verdejo Pinochet [Tue, 18 Sep 2012 15:04:20 +0000 (12:04 -0300)]
eglglessink: Avoid initializing EGL at _set_window_handle()
_start() should take care of that.
This change asumes _setcaps() will
happen always after _start() is
done.
Reynaldo H. Verdejo Pinochet [Tue, 18 Sep 2012 13:43:38 +0000 (10:43 -0300)]
eglglessink: Don't ask for a window if we already have one
Reynaldo H. Verdejo Pinochet [Tue, 18 Sep 2012 13:31:26 +0000 (10:31 -0300)]
eglglessink: Fix EGL attribs var naming
Reynaldo H. Verdejo Pinochet [Tue, 18 Sep 2012 05:32:25 +0000 (02:32 -0300)]
eglglessink: Fix slow path rendering on Android
Specify missing and mandatory params for npot
Before calling glTexImage2D.
In particular, _WRAP_T and _WRAP_S need to be
set to GL_CLAMP_TO_EDGE to avoid all-black
rendering with npot sized frames.
Reynaldo H. Verdejo Pinochet [Tue, 18 Sep 2012 03:51:36 +0000 (00:51 -0300)]
eglglessink: Add test on usable eglconfigs returned
Reynaldo H. Verdejo Pinochet [Tue, 18 Sep 2012 02:05:29 +0000 (23:05 -0300)]
eglglessink: Drop stale error_locked label
Reynaldo H. Verdejo Pinochet [Tue, 18 Sep 2012 02:04:05 +0000 (23:04 -0300)]
eglglessink: Cleanup stale code comments
Reynaldo H. Verdejo Pinochet [Mon, 17 Sep 2012 21:00:16 +0000 (18:00 -0300)]
eglglessink: GlViewPort() should use actual surface size
Reynaldo H. Verdejo Pinochet [Mon, 17 Sep 2012 20:21:26 +0000 (17:21 -0300)]
eglglessink: Avoid reiniting EGL after the first time
Reynaldo H. Verdejo Pinochet [Mon, 17 Sep 2012 16:44:09 +0000 (13:44 -0300)]
eglglessink: Use correct template caps
Reynaldo H. Verdejo Pinochet [Mon, 17 Sep 2012 15:54:05 +0000 (12:54 -0300)]
eglglessink: Fix missing texture setup bits
Reynaldo H. Verdejo Pinochet [Mon, 17 Sep 2012 14:57:24 +0000 (11:57 -0300)]
eglglessink: Add error checking on eglSwapBuffers
Reynaldo H. Verdejo Pinochet [Mon, 17 Sep 2012 14:40:49 +0000 (11:40 -0300)]
eglglessink: Fix stale&wrong 0.5 alpha blend
Reynaldo H. Verdejo Pinochet [Mon, 17 Sep 2012 13:56:14 +0000 (10:56 -0300)]
eglglessink: Add float precision specifier to fragment shader
This is required by GLES and fixes compilation of fragment
shader prog.
Reynaldo H. Verdejo Pinochet [Mon, 17 Sep 2012 13:47:39 +0000 (10:47 -0300)]
eglglessink: Add log reporting at shader compilation failure
Reynaldo H. Verdejo Pinochet [Mon, 17 Sep 2012 01:43:38 +0000 (22:43 -0300)]
eglglessink: Add some missing checks on shader ops
- Check whether there is shader compiler support
and bail out otherwise.
- Add checks on compile and linking ops
Reynaldo H. Verdejo Pinochet [Fri, 14 Sep 2012 23:49:48 +0000 (20:49 -0300)]
eglglessink: Fix setup chain logic
Mostly a procedural reordering. Idea is to avoid
trying to setup a surface without a display.This
change relies on the asumption that:
1.- set_window_handle() can happen at any time
2.- setcaps will never get called before _start()
is done.
If both conditions are meet the new procedure
should work as expected.
Reynaldo H. Verdejo Pinochet [Fri, 14 Sep 2012 18:59:05 +0000 (15:59 -0300)]
eglglessink: WIP: Reorder locking
Reynaldo H. Verdejo Pinochet [Fri, 14 Sep 2012 02:23:08 +0000 (23:23 -0300)]
eglglessink: Fix xOverlay logic
Several fixes dealing with correct window
creation and set_handle() ops. Tested on
X11/mesa with internal window creation.
Reynaldo H. Verdejo Pinochet [Thu, 13 Sep 2012 03:55:33 +0000 (00:55 -0300)]
eglglessink: Actually test EGL configs before claiming support
Reynaldo H. Verdejo Pinochet [Thu, 13 Sep 2012 03:11:49 +0000 (00:11 -0300)]
eglglessink: Caps nego EGL fixes
- Fix alloc lol on format list: Asked for 2 slices and used 3.
- Reordered display & context init logic to prepare for actual
config checking before claiming support for a given format.
Change deals basically with setting up EGL display at start()
and choose an EGL config only at setcaps time.
Reynaldo H. Verdejo Pinochet [Thu, 13 Sep 2012 01:11:39 +0000 (22:11 -0300)]
eglglessink: Caps nego. Start extending RGB support to a set.
Sebastian Dröge [Wed, 12 Sep 2012 14:19:33 +0000 (16:19 +0200)]
eglglessink: Fix build of static plugin
Reynaldo H. Verdejo Pinochet [Wed, 12 Sep 2012 12:28:22 +0000 (09:28 -0300)]
eglglessink: Drop wrong format test on _setcaps (draft leftover)
Reynaldo H. Verdejo Pinochet [Tue, 11 Sep 2012 16:54:09 +0000 (13:54 -0300)]
eglglessink: Support RGB24 by default
Reynaldo H. Verdejo Pinochet [Tue, 11 Sep 2012 16:51:25 +0000 (13:51 -0300)]
eglglessink: Instrument EGL error reporting
Reynaldo H. Verdejo Pinochet [Tue, 11 Sep 2012 15:04:30 +0000 (12:04 -0300)]
eglglessink: Correctly return GstFlowReturn from render_and_display()
Reynaldo H. Verdejo Pinochet [Tue, 11 Sep 2012 14:51:28 +0000 (11:51 -0300)]
eglglessink: Move VBO setup to it's own function
Reynaldo H. Verdejo Pinochet [Tue, 11 Sep 2012 13:20:16 +0000 (10:20 -0300)]
eglglessink: Fix render_and_display logic
Switch procedure according to enabled rendering path
Reynaldo H. Verdejo Pinochet [Tue, 11 Sep 2012 01:59:57 +0000 (22:59 -0300)]
eglglessink: Fix sample launch line with disabled window creation
Reynaldo H. Verdejo Pinochet [Tue, 11 Sep 2012 01:41:52 +0000 (22:41 -0300)]
eglglessink: Rename stale android leftover
Reynaldo H. Verdejo Pinochet [Mon, 10 Sep 2012 23:22:22 +0000 (20:22 -0300)]
eglglessink: Move eglgles Sink to ext/ #2
Reynaldo H. Verdejo Pinochet [Mon, 10 Sep 2012 23:00:57 +0000 (20:00 -0300)]
eglglessink: Move eglgles Sink to ext/
Sebastian Dröge [Thu, 18 Oct 2012 12:03:33 +0000 (14:03 +0200)]
opensles: Add the opensles plugin to the list of not ported plugins
Sebastian Dröge [Thu, 18 Oct 2012 11:56:55 +0000 (13:56 +0200)]
opensles: Integrate into build system
Josep Torra [Fri, 12 Oct 2012 08:08:59 +0000 (10:08 +0200)]
openslessink: Return 0 delay if the player object is in PAUSED state
Josep Torra [Mon, 1 Oct 2012 10:54:15 +0000 (12:54 +0200)]
opensles: fixes noise on seekeing
Josep Torra [Mon, 1 Oct 2012 09:46:50 +0000 (11:46 +0200)]
opensles: chain up on _clear_all
Josep Torra [Mon, 1 Oct 2012 09:14:24 +0000 (11:14 +0200)]
opensles: implement the ringbuffer clear_all vmethod too
Josep Torra [Mon, 1 Oct 2012 08:59:08 +0000 (10:59 +0200)]
opensles: initial attempt to reduce the src latency
Josep Torra [Sat, 29 Sep 2012 17:00:13 +0000 (19:00 +0200)]
opensles: sprinkle comments and cosmetic fixes
Josep Torra [Fri, 28 Sep 2012 13:10:19 +0000 (15:10 +0200)]
opensles: check for device outputs in the mixer
Josep Torra [Fri, 28 Sep 2012 12:39:01 +0000 (14:39 +0200)]
opensles: drop 48kHz sample rate
OpenSL ES implementation in Android is just a 'facade' API on top of
AudioFlinger which will downsample 48kHz into 44.1kHz before
delivering the audio to the underlaying hardware.
We found that it suffer some sort of underrun when the downsample
enters in action so relay on our good resampler to take care of that
and fix the clicks issue. And get an extra bonus of a lower latency.
Josep Torra [Thu, 27 Sep 2012 17:24:50 +0000 (19:24 +0200)]
opensles: change the defaults to use 20 ms ringbuffer segments
In my nexus7 seems that the internal min buffer size is 20 ms so make
our segments match.
Josep Torra [Thu, 27 Sep 2012 16:33:09 +0000 (18:33 +0200)]
opensles: ensure that we register the callback only in STOPPED
Fixes the error registering the callback on the PLAYING -> PAUSE ->
PLAYING state change sequence.
Josep Torra [Thu, 27 Sep 2012 15:46:27 +0000 (17:46 +0200)]
opensles: cap queue size
Just in case we want to tweak the sink behaviour with buffer-time and
latency-time properties cap the queue size to something reasonable.
Josep Torra [Thu, 27 Sep 2012 15:32:14 +0000 (17:32 +0200)]
opensles: sink to provide the audioclock by default
Josep Torra [Thu, 27 Sep 2012 15:27:24 +0000 (17:27 +0200)]
opensles: only drain half ringbuffer on start
At start drain half ringbuffer into the OpenSL so the writting/reading
pointers will start at half ringbuffer distance.
Josep Torra [Thu, 27 Sep 2012 12:52:59 +0000 (14:52 +0200)]
opensles: monitor some player events
Josep Torra [Thu, 27 Sep 2012 05:22:47 +0000 (07:22 +0200)]
opensles: rework around the _delay function
Josep Torra [Thu, 27 Sep 2012 03:40:46 +0000 (05:40 +0200)]
opensles: implement _delay function
Josep Torra [Thu, 27 Sep 2012 02:00:28 +0000 (04:00 +0200)]
opensles: refactor to behave more like other sinks
Reflect the queue in our own data buffer.
Drop the _commit hook that wasn't usefull.
Don't mess with the segsize/segtotal.
Josep Torra [Wed, 26 Sep 2012 12:01:17 +0000 (14:01 +0200)]
opensles: read player position and show it in the log
Josep Torra [Wed, 26 Sep 2012 10:50:42 +0000 (12:50 +0200)]
opensles: do not provide a clock in the sink element.
Josep Torra [Wed, 26 Sep 2012 10:32:44 +0000 (12:32 +0200)]
opensles: rework on start/stop operations and callback function handling
Josep Torra [Wed, 26 Sep 2012 10:09:04 +0000 (12:09 +0200)]
opensles: fixes 8 bit format which is unsigned on android.
Josep Torra [Tue, 25 Sep 2012 17:25:01 +0000 (19:25 +0200)]
opensles: attempt to reduce playback latency
Josep Torra [Tue, 25 Sep 2012 16:04:27 +0000 (18:04 +0200)]
opensles: drop _buffer_clear calls and refactor to a shared _enqueue_cb
Josep Torra [Fri, 21 Sep 2012 15:04:14 +0000 (17:04 +0200)]
opensles: use 0.25s segments in the sink to lower latency
Josep Torra [Fri, 21 Sep 2012 14:11:42 +0000 (16:11 +0200)]
opensles: finish remaining bits for source element.
Josep Torra [Fri, 21 Sep 2012 12:15:12 +0000 (14:15 +0200)]
opensles: attempt to query device for capabilities
Josep Torra [Thu, 20 Sep 2012 16:41:50 +0000 (18:41 +0200)]
opensles: add the mute property and handle volume/mute changes on the fly
Josep Torra [Thu, 20 Sep 2012 16:04:29 +0000 (18:04 +0200)]
opensles: make the volume property actually work
Josep Torra [Thu, 20 Sep 2012 12:16:25 +0000 (14:16 +0200)]
opensles: rework on the ringbufffer to properly clear segments
Make the segments bigger (1 second) as it seems to be the minimum size
we need to not introduce noise.
Sink works in my nexus 7 with rates from 8000 to 44100 and some noise
can be noticed on higger sample rates.