David Reid
deda7e500f
Alignment.
2026-03-05 17:50:34 +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
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
41a8ec6a8d
Add XAudio options to the CMake script.
2026-03-01 07:24:36 +10:00
David Reid
dea554dbb2
Minor rearrangement.
2026-03-01 07:22:06 +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
e35c1fd64b
Update the backend template.
2026-02-27 20:18:25 +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
d94b45d058
Add a template for device backends.
2026-02-27 17:42:28 +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
b5eb987b86
SDL2: Include miniaudio.h in the header.
2026-02-23 17:19:54 +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
4d8bd6ed84
Add PipeWire to readme.
2026-02-17 06:53:13 +10:00
David Reid
60a96123db
Add Dreamcast to CMake script and readme.
2026-02-17 06:52:47 +10:00
David Reid
282ed02f46
Dreamcast: Add a readme to the romdisk folder.
2026-02-17 06:22:55 +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
David Reid
d6d26deeda
Fix some compilation errors with the resampling test.
2026-02-16 07:12:42 +10:00
David Reid
dd6c57664b
Add a deinterleaving code path for unaligned buffers.
2026-02-16 07:04:45 +10:00
David Reid
e490db3085
Optimizations to ma_interleave_pcm_frames().
2026-02-16 06:52:12 +10:00
David Reid
6851858937
Fix a bug in the profiling test.
2026-02-16 06:01:35 +10:00
David Reid
242cbf4d8c
Optimizations to ma_deinterleave_pcm_frames() for stereo.
2026-02-15 21:54:29 +10:00
David Reid
01e5042bfb
Fix an error with s24 deinterleaving.
2026-02-15 16:15:25 +10:00
David Reid
13f50137b0
Optimization to ma_deinterleave_pcm_frames() for s32 and s24.
2026-02-15 14:13:45 +10:00
David Reid
65a0c1f83d
Minor struct packing improvement.
2026-02-15 13:16:00 +10:00
David Reid
d63deea939
Whitespace.
2026-02-15 13:15:31 +10:00
David Reid
37a7009b3d
Merge branch 'dev' into dev-0.12
2026-02-15 08:18:36 +10:00
David Reid
1078dc292a
Add a safety check to ma_data_source_read_pcm_frames_within_range().
...
Public issue https://github.com/mackron/miniaudio/pull/1095
2026-02-15 08:11:57 +10:00