Commit Graph

2452 Commits

Author SHA1 Message Date
David Reid 4635de9916 Merge branch 'dev' into dev-0.12 2026-04-26 08:33:38 +10:00
David Reid 2986173662 Emscripten: Fix an error with ALLOW_MEMORY_GROWTH.
Public issue https://github.com/mackron/miniaudio/issues/1114
2026-04-26 08:32:28 +10:00
David Reid 07c4ae67cf Merge branch 'dev' into dev-0.12 2026-04-26 08:22:51 +10:00
Echo J dcfc24c100 Emscripten: Cast pointer arguments to pointer-sized integers
For some reason, 64-bit pointer arguments are casted to Numbers
in Emscripten's type handling (which causes conversion errors when
passing them back to native code)
2026-04-26 08:11:16 +10:00
Yuri Khrustalev 56ffd77769 Make ma_android_sdk_version static to fix -Wmissing-prototypes. 2026-04-26 07:22:41 +10:00
amaldika 55f16e62f6 Support to build for arm64EC configuration on MSVC. 2026-04-26 07:21:35 +10:00
David Reid 5d8e72d54f Merge branch 'dev' into dev-0.12 2026-04-26 07:15:52 +10:00
David Reid 1df46ae9a0 Update dr_libs. 2026-04-26 07:08:13 +10:00
David Reid c64330dbd9 Clean up some stale comments. 2026-04-20 06:05:31 +10:00
David Reid a513b522ab Dreamcast: Increase lower bound period size from 1024 to 1536.
Testing on real hardware is suggesting that 1024 is too small to be
practical.
2026-04-06 12:03:00 +10:00
David Reid b91098312d Minor chibicc fix.
This commit does not make miniaudio compilable with chibicc. Additional
work is required in c89atomic which will come later.
2026-03-15 08:55:36 +10:00
David Reid d50152e382 Update dr_mp3. 2026-03-15 08:50:40 +10:00
David Reid d654ce32a7 Merge branch 'dev' into dev-0.12 2026-03-13 11:23:26 +10:00
David Reid 12bacf1186 Revert "Enforce a read callback to be specified for decoders."
This reverts commit 52d09d3688.
2026-03-13 11:22:40 +10:00
David Reid 117366df9a Fix an incorrect check for the decoding seek callback. 2026-03-12 06:24:04 +10:00
David Reid ed950dc688 Merge branch 'dev' into dev-0.12 2026-03-12 06:22:48 +10:00
David Reid 0041150de0 Update change history. 2026-03-12 06:16:57 +10:00
David Reid 52d09d3688 Enforce a read callback to be specified for decoders. 2026-03-12 06:15:27 +10:00
David Reid 6922366bb1 Don't crash when a decoding seek callback is unavailable. 2026-03-12 06:14:00 +10:00
David Reid 4c082afe71 Clarify usage of the decoder read callback. 2026-03-12 06:08:27 +10:00
David Reid df6119890e Merge branch 'dev' into dev-0.12 2026-03-04 07:01:18 +10:00
David Reid 9634bedb5b Version 0.11.25 2026-03-04 06:25:00 +10:00
David Reid b113d498a5 Update dr_wav. 2026-03-03 10:34:26 +10:00
David Reid bc52a82903 Add PS Vita backend. 2026-03-01 07:53:00 +10:00
David Reid d7ce0506f6 Fix a minor copy/paste error. 2026-03-01 07:26:20 +10:00
David Reid e552fd20cf Add a PS Vita optimized threading backend.
This addresses an issue where condition variables would throw the
following error:

  _sceKernelWaitSema returned SCE_KERNEL_ERROR_WAIT_TIMEOUT (0x80028005)

Bypassing the pthread backend and using Vita APIs directly addresses
this and should be more optimal.
2026-02-28 19:53:38 +10:00
David Reid 69396f97a7 Fix a threading issue with PS Vita. 2026-02-28 17:08:37 +10:00
David Reid bc69c86868 XAudio: Fix an error with device enumeration. 2026-02-27 18:03:23 +10:00
David Reid 8b3ae59b40 Dreamcast: Fix an error with device enumeration. 2026-02-27 18:03:05 +10:00
David Reid bcdb37ff66 Add Vita SDK detection. 2026-02-27 16:34:44 +10:00
David Reid 7d703e60ab Use N3DS nomenclature instead of 3DS in preparation for future work. 2026-02-27 16:08:08 +10:00
David Reid 30e2ca2b46 Add XAudio backend.
This adds support for the original Xbox via NXDK.
2026-02-27 10:58:24 +10:00
David Reid c580fad1dd Fix NXDK build. 2026-02-23 17:17:13 +10:00
David Reid 4c81dbd81f Add ma_device_get_period_size_in_frames(). 2026-02-22 06:31:48 +10:00
David Reid 7700880b56 Don't unnecessarily apply clipping. 2026-02-20 17:23:42 +10:00
David Reid 0e2c0e1eac Fix an edge case in the data converter. 2026-02-20 09:18:25 +10:00
David Reid a3fd69624b Fix a bug in ma_data_converter_set_rate().
This was not setting the sample rate members of the ma_data_converter
struct.
2026-02-20 08:51:39 +10:00
David Reid d39c874736 Bug fixes to the resampler. 2026-02-20 08:46:00 +10:00
David Reid 0aef190a59 Resampler: Improve stability when ratio is 1. 2026-02-18 13:01:20 +10:00
David Reid 7e944566c4 Resampler: Add back support for passing in NULL for the input/output. 2026-02-18 12:51:58 +10:00
David Reid 3ea9cc468a Documentation fixes. 2026-02-17 07:23:36 +10:00
David Reid 788b78169a Use newer tagging system for backend-specific functions. 2026-02-16 20:33:40 +10:00
David Reid c0f0500e43 Code rearrangement. 2026-02-16 20:24:56 +10:00
David Reid 2324d5ad9e Add Dreamcast backend. 2026-02-16 19:07:35 +10:00
David Reid f6662fdb2e Minor documentation fix. 2026-02-16 18:00:20 +10:00
David Reid 2f148fdd12 Channel Converter: Stop doing a micro heap allocation.
With small channel counts, mono and stereo, the channel converter will
no longer allocate memory on the heap for the channel map, but will
instead just store it in the struct directly. For larger channel counts
it will fall back to a heap allocation. This prevents stereo channel
maps resulting in a heap allocation of 8 bytes.

With this change a stereo passthrough `ma_device` can be initialized
with a heap allocation for the internal data converter.

This only affects passthrough channel conversion. When shuffling or
weights are required, a heap allocation will still be done. This
optimization is specifically for passthrough.
2026-02-16 16:36:27 +10:00
David Reid 0d7a9f960f Update documentation to suggest getters instead of direct struct access.
This is for the format, channels, sample rate and channel map.
2026-02-16 14:48:00 +10:00
David Reid e0e05c7b8c Add some more intuitive getters for ma_device.
This adds the following APIs:

    ma_device_get_playback_format()
    ma_device_get_capture_format()
    ma_device_get_playback_channels()
    ma_device_get_capture_channels()
    ma_device_get_playback_channel_map()
    ma_device_get_capture_channel_map()
2026-02-16 10:36:38 +10:00
David Reid ebbe9707e2 Use a heap allocation for the duplex ring buffer in ma_device.
The heap allocation is aligned to MA_CACHE_LINE_SIZE which is an
optimal alignment for ring buffers.

This also reduces the size of the `ma_device` struct for non-duplex
devices which is the most common setup.
2026-02-16 09:50:10 +10:00
David Reid dbc955fb0d Remove some unused placeholder functions. 2026-02-16 07:30:24 +10:00