Skip to content

Releases: google/oboe

1.4.2

01 Jun 20:47

Choose a tag to compare

We fixed issue #535, which caused an intermittent crash in releaseBuffer() when a headset was plugged in. This mostly affected OpenSL ES. But it could affect AAudio if you called stream->getFramesRead() or stream->getTimeStamp() from an output stream callback. This was a serious crash that affected many apps. So we strongly recommend upgrading to Oboe 1.4.2. Here is a Tech Note that describes the issue in more detail.

We fixed issue #820, which could cause a stream to get deleted while it was in use by an onError callback. We now use a std::shared_ptr to hold the stream and strongly recommend using the following technique to open a stream:

std::shared_ptr<oboe::AudioStream> oboeStream; // hold onto this, maybe in an instance variable

Result result = builder.openStream(oboeStream);

Oboe error, warning and information log messages are now enabled in release builds.

We updated QuirksManager to handle specific device requirements. Some devices, for example, may require a different minimum number of bursts in their buffer. #734

Added “DrumThumper”, an interactive drum pad sample app. It demonstrates how to load drum sounds from WAV files, and how to mix multiple drums to one stream. See samples/DrumThumper.

For OpenSL ES, we now scale the buffer size by the sample rate so that it will better match the internal buffer sizes. The default is based on a 20 msec period common on Android. This will reduce glitching when using OpenSL ES.
#762

The LiveEffect sample app now handles a failure to open the stream. It used to crash. #796

1.3.0

15 Nov 17:37

Choose a tag to compare

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

23 Apr 17:53

Choose a tag to compare

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 returns Result::ErrorTimeout if a timeout of zero is specified and the stream's state does not change. Previously it would return Result::OK.
  • AudioStream::getTimestamp now returns Result::ErrorInvalidState if called when the stream is not in the Started 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.

Diff with previous release

1.1.1

18 Dec 18:39
8cc0148

Choose a tag to compare

No API changes.

New features:

  • Audio streams which specify a Usage and are created using OpenSL ES have that usage mapped to the OpenSL ES stream type (thanks to pbodilis@)
  • The oboe version number is now logged when a stream is opened

1.1.0

06 Dec 18:59
f493f49

Choose a tag to compare

Bug fixes:

New features:

1.0.0

06 Dec 18:39

Choose a tag to compare

API changes:

Other changes: