API changes
- Channel mask support is supported for AAudio in API 32 and above (#1548)
- Add methods
setDelayBeforeCloseMillis
andgetDelayBeforeCloseMillis
to audio streams (#1593) - Add OboeExtensions (#1602). These will allow you to query for, enable, and disable MMAP support.
- Add shared_ptr support for
setDataCallback
andsetErrorCallback
(#1626). The equivalent for raw pointers is now deprecated. This helps avoid crashes by preventing the callback from being deleted while the error callback is still active.
OpenSL ES bug fixes
- Fixed an issue with OpenSL ES queuing only one callback buffer (#1245, Fixes #1165)
- Fixed an issue with OpenSL ES volume not working if Usage was Unspecified (#1537, Fixes #1536)
- Fixed an issue with OpenSL ES where resources were not closed if open failed (#1550, Fixes #1550)
- Fixed an issue with OpenSL ES not handling processBufferCallback() from multiple threads correctly (#1570, #1621, Fixes #1567)
- Fixed an issue with OpenSL ES returning 0 from getBufferSizeInFrames() if callbacks are not used (#1582, Fixes #1581)
- Fixed an issue with OpenSL ES not handling large buffers gracefully (#1601, Fixes #744, #952)
- Fixed an issue with OpenSL ES input streams not checking buffer depths (#1621, Fixes #1431)
- Fixed an issue with OpenSL ES returning ErrorInternal for invalid formats (#1634)
Other bug fixes
- Fixed an issue with AAudio segfaults if closed while reading or writing (#1497, Fixes #1484)
- Fixed resampler glitches for some configurations (#1624, Fixes #1622)
Workarounds
- Add Quirk to disable MMAP on Exynos SDM8150 (#1381, Fixes #1381)
- Add Quirks for Vivo devices (#1590, Fixes #201)
- Check for workaround flag for automatic INT16 to FLOAT conversion when FLOAT is not supported (#1590, Fixes #1589)
Code samples
Non core changes
- Many OboeTester updates
- API reference docs are automatically updated after API changes
- Add RISC-V support to StablizedCallback.h (#1586)
- Updated Oboe to support API 33 (#1618)