New features
- When creating a stream with
PerformanceMode::LowLatency
the buffer size is now set automatically to twice the burst size.
Behaviour changes
AudioStream::waitForStateChange
now returnsResult::ErrorTimeout
if a timeout of zero is specified and the stream's state does not change. Previously it would returnResult::OK
.AudioStream::getTimestamp
now returnsResult::ErrorInvalidState
if called when the stream is not in theStarted
state. Previously the timestamp would continue to advance resulting in inaccurate latency measurements.
Bug fixes/workarounds
- Fix crash caused caused by error callback running on a blocking read/write stream that does not use a data callback. #364
- Avoid issue with recursive locking in
AudioOutputStreamOpenSLES::requestFlush()
. #378 - Stop the stream when callback returns
DataCallbackResult::Stop
. Workaround for some AAudio bugs. #323 - #406 Crash when headset plugs in/out
- After opening an AAudio stream the stream state would stuck in the
Starting
state. Oboe now includes a workaround for this. - Many other bug fixes (see: https://github.com/google/oboe/issues?q=is%3Aclosed+milestone%3Av1.2)
Code samples
- Codebase updated to use floats throughout
- Added
shared
folder which contains shared code used by samples (for Oscillator, Mixer objects etc) - RhythmGame sample updated with ability to extract compressed audio assets using NDK media codec and FFmpeg
Plus many improvements in OboeTester.