Releases: google/oboe
Releases · google/oboe
1.3.0
Oboe now features resampling and format conversion so you can request a stream with a specific sample rate, channel count or format and still receive a low latency stream. Do this using the following methods:
AudioStreamBuilder builder;
builder.setSampleRateConversionQuality(SampleRateConversionQuality::Medium);
builder.setChannelConversionAllowed(true);
builder.setFormatConversionAllowed(true);`
The new ManagedStream
class takes care of a stream lifecycle for you. Open one using the following code:
ManagedStream myStream;
AudioStreamBuilder builder;
b.openManagedStream(myStream);
Many other bug fixes.
Full list of changes: 1.2.0...1.3-stable
1.2.0
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.
1.1.1
1.1.0
Bug fixes:
- Fix readNow buffer pointer. Fixes #233 #154
- Fix memory leak if
AudioStreamBuilder::openStream()
fails - AAudioLoader: cleanup destructor
- opensles: fix getBufferSizeInFrames()
New features:
- Allow user to define maximum buffer size when using
LatencyTuner
- Add LoadStabilizer class - See updated MegaDrone sample app for usage.
- Add OboeTester, a test app for manually experimenting with various parameters, measuring latency and playing back recorded audio. It is useful for debugging Oboe.
1.0.0
API changes:
- Remove AudioStream::setNativeFormat
- Remove AudioStream::isPlaying.
- Add AudioStream::getTimestamp(clockid_t).
- Deprecate AudioStream::getTimestamp(clockid_t, int64_t, int64_t). Same commit as above.
- Add Android P functions
Other changes:
- Add API reference
- Add unit tests