David Reid
968a8045c0
Merge branch 'dev' into dev-0.12
2026-03-12 06:27:02 +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
a6cb08579e
Add sizeof profiling test.
2026-03-05 17:58:09 +10:00
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