Josep Torra
1d9f48a33d
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.
2012-10-18 14:03:09 +02:00
Josep Torra
9cc7e6a74d
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.
2012-10-18 14:03:09 +02:00
Josep Torra
97a1ccfab1
opensles: ensure that we register the callback only in STOPPED
...
Fixes the error registering the callback on the PLAYING -> PAUSE ->
PLAYING state change sequence.
2012-10-18 14:03:09 +02:00
Josep Torra
e265cec514
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.
2012-10-18 14:03:09 +02:00
Josep Torra
cc6fc15674
opensles: sink to provide the audioclock by default
2012-10-18 14:03:09 +02:00
Josep Torra
08ef2e3eed
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.
2012-10-18 14:03:09 +02:00
Josep Torra
3698d98921
opensles: monitor some player events
2012-10-18 14:03:09 +02:00
Josep Torra
3ff51bb88b
opensles: rework around the _delay function
2012-10-18 14:03:09 +02:00
Josep Torra
27cdb7c2ca
opensles: implement _delay function
2012-10-18 14:03:09 +02:00
Josep Torra
9fcfa00680
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.
2012-10-18 14:03:09 +02:00
Josep Torra
ed5870b605
opensles: read player position and show it in the log
2012-10-18 14:03:09 +02:00
Josep Torra
1e69918f3e
opensles: do not provide a clock in the sink element.
2012-10-18 14:03:08 +02:00
Josep Torra
b00049a9f6
opensles: rework on start/stop operations and callback function handling
2012-10-18 14:03:08 +02:00
Josep Torra
f00d5a5cac
opensles: fixes 8 bit format which is unsigned on android.
2012-10-18 14:03:08 +02:00
Josep Torra
eb6715a305
opensles: attempt to reduce playback latency
2012-10-18 14:03:08 +02:00
Josep Torra
1d9e16fb78
opensles: drop _buffer_clear calls and refactor to a shared _enqueue_cb
2012-10-18 14:03:08 +02:00
Josep Torra
1694befac6
opensles: use 0.25s segments in the sink to lower latency
2012-10-18 14:03:08 +02:00
Josep Torra
5612936d1a
opensles: finish remaining bits for source element.
2012-10-18 14:03:08 +02:00
Josep Torra
c006973a4e
opensles: attempt to query device for capabilities
2012-10-18 14:03:08 +02:00
Josep Torra
85bd75a2b1
opensles: add the mute property and handle volume/mute changes on the fly
2012-10-18 14:03:08 +02:00
Josep Torra
f06688c7b2
opensles: make the volume property actually work
2012-10-18 14:03:08 +02:00
Josep Torra
0291953997
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.
2012-10-18 14:03:08 +02:00
Josep Torra
29334f3233
opensles: fixes the license headers
2012-10-18 14:03:08 +02:00
Josep Torra
805a010dc9
opensles: produces expected output until ringbuffer wraps
...
Add some log messages.
Fixed a bit the _player_cb function and properly advance reding in the
ringbuffer.
Still produces noise when the ringbuffer wraps.
2012-10-18 14:03:08 +02:00
Josep Torra
f6aa2f29bc
opensles: Add initial draft implementation of OpenSL ES plugin.
...
Initial draft implementation for a OpenSL ES based plugin for Android
that provides audio src and sink.
2012-10-18 14:03:08 +02:00