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