David Reid
cb0e6afe70
Update to the decoding backend system.
...
The `onGetEncodingFormat` callback has been removed and replaced with an
`onInfo`. This new callback fills out a struct with the supported
encoding format (is recognized by miniaudio), in addition to the name of
the decoding backend, and the decoding library and vendor.
2026-01-17 14:49:26 +10:00
David Reid
3ab17977ea
Have the engine apply clipping to samples at the end of processing.
...
This can be disabled with the `noClip` config option.
2026-01-17 12:55:09 +10:00
David Reid
89663fa647
Merge branch 'dev' into dev-0.12
2026-01-17 12:19:20 +10:00
David Reid
347321b27c
Version 0.11.24
2026-01-17 09:37:44 +10:00
David Reid
8e6283aa31
Fix a warning.
2026-01-17 09:34:34 +10:00
Richard Keller
a551f0e70b
Free pa_context if connecting to PulseAudio fails.
2026-01-17 08:50:10 +10:00
David Reid
7dae981ad5
Add some helpers for resetting a sound after a fade and stop.
...
Public issue https://github.com/mackron/miniaudio/issues/714
2026-01-17 07:32:18 +10:00
David Reid
1d6fe3efc9
JACK: Refactoring.
...
* Devices are now enumerated properly. It will enumerate input or output
ports depending on the device type, and then group by the client name.
The client name will be considered a "device" from the perspective of
miniaudio. The number of local ports will be the channel count.
* The port auto-connection process is now done in init() rather than
start(). I do not know why this was ever in start() in the first
place.
* Port auto-connection will now be restricted to the client ports. The
old system would connect across multiple clients which is just a
nonsensical way of doing. If more ports are requested than are
available on the client, the excess ports will just not be connected.
2026-01-16 18:26:34 +10:00
David Reid
7ac50d477e
Clean up some old code relating to the new device info system.
2026-01-16 06:26:01 +10:00
David Reid
a0b24f6d3d
audio(4): Fix a compilation error on OpenBSD.
2026-01-16 06:20:49 +10:00
David Reid
ab06cb340f
WASAPI: Update to new device info system.
2026-01-15 19:41:27 +10:00
David Reid
b5213e0265
DirectSound: Update to new device info system.
2026-01-15 19:41:10 +10:00
David Reid
48cc2d3cf1
WinMM: Update to new device info system.
2026-01-15 19:40:32 +10:00
David Reid
01b69f7323
Core Audio: Update to the new device info system.
2026-01-15 19:06:41 +10:00
David Reid
17a3941c94
sndio: Update to the new device info system.
2026-01-15 17:33:11 +10:00
David Reid
06394e8e90
audio(4): Update to the new device info system.
2026-01-15 17:21:08 +10:00
David Reid
e0e26b5535
OSS: Update to the new device info system.
2026-01-15 16:54:02 +10:00
David Reid
cfed5b09a6
Web Audio: Update to the new device info system.
2026-01-15 16:27:06 +10:00
David Reid
131fa04cd6
OpenSL: Update to the new device info system.
2026-01-15 16:06:22 +10:00
David Reid
838174a418
AAudio: Update to the new device info system.
2026-01-15 16:06:08 +10:00
David Reid
878cf797cc
JACK: Update to the new device info system.
2026-01-15 15:49:47 +10:00
David Reid
3a84c31cff
ALSA: Update to the new device info system.
2026-01-15 15:14:46 +10:00
David Reid
3d697c27e6
PulseAudio: Update to the new device info system.
2026-01-15 14:54:01 +10:00
David Reid
6c1206931b
Null: Updates to the new device info system.
2026-01-15 14:50:03 +10:00
David Reid
91ddce1d17
PipeWire: Update to the new device info system.
2026-01-15 14:42:14 +10:00
David Reid
434bfc6a0b
Set up some infrastructure for the new device info structure.
2026-01-15 14:24:41 +10:00
David Reid
461ced3280
JACK: Minor memory allocation optimization.
2026-01-15 12:34:20 +10:00
David Reid
ce4f9aab39
JACK: Optimize some buffer management.
2026-01-15 12:23:34 +10:00
David Reid
2b49a81e87
JACK: Optimization for multi-threaded mode.
...
In multi-threaded mode we can just fire the miniaudio data callback
straight from the JACK data callback instead of going through our
helper.
2026-01-15 11:38:10 +10:00
David Reid
e7d94638cf
Wake up the backend when uninitializing.
2026-01-15 11:31:53 +10:00
David Reid
dc7f5286ca
ALSA: A pedantic optimization to avoid a malloc.
2026-01-15 10:45:36 +10:00
David Reid
b4a26d21dd
audio(4): Fix enumeration on OpenBSD.
2026-01-15 10:23:04 +10:00
David Reid
cbe640efbf
audio(4): Drain the device when stopping on OpenBSD.
2026-01-15 09:01:33 +10:00
David Reid
c440b4b670
audio(4): Fix starting and stopping on OpenBSD.
2026-01-14 17:44:56 +10:00
David Reid
c1831a677f
sndio: Minor restructure for consistency with other backends.
2026-01-14 16:46:42 +10:00
David Reid
f15717ba3e
OSS: Drain the playback device when stopping.
2026-01-14 16:39:52 +10:00
David Reid
90aa390a08
OSS: Optimize memory allocations during device initialization.
2026-01-14 16:31:29 +10:00
David Reid
2a2eb5bae4
audio(4): Optimize memory allocations during device initialization.
2026-01-14 16:11:01 +10:00
David Reid
f0d84c6895
sndio: Fix a playback error.
2026-01-14 15:17:49 +10:00
David Reid
5ad9e784f9
audio(4): Fix a playback error.
2026-01-14 15:14:36 +10:00
David Reid
2fa51de5cf
OSS: Fix a playback error.
2026-01-14 15:09:17 +10:00
David Reid
77abc8f69c
ALSA: Optimize some memory allocation during device initialization.
...
This reduces memory allocations down from 3 to 1 (one malloc + realloc).
2026-01-14 15:04:48 +10:00
David Reid
7c3f845658
ALSA: Fix a playback data throughput error.
...
This has the data callback handling and the ALSA writing operation in
the wrong order.
I have no idea how I missed this...
2026-01-14 15:00:54 +10:00
David Reid
86a17a30e8
sndio: Optimize some memory management.
...
This just combines some memory allocations into a single one.
2026-01-14 13:34:55 +10:00
David Reid
463200d3cc
OSS: Fix a bug with playback buffer priming.
2026-01-14 11:45:05 +10:00
David Reid
6ca4ddefe6
audio(4): Fix a bug with playback buffer priming.
2026-01-14 11:44:42 +10:00
David Reid
9af808b800
sndio: Prime the playback buffer when starting the device.
2026-01-14 11:43:54 +10:00
David Reid
d68dd6c433
sndio: Use a shared intermediary buffer for duplex mode.
...
Previously this was using two separate buffers for the capture and
playback sides, but it's not necessary to use two separate buffers
because they'll never be used simultaneously. It can therefore be
optimized by allocating a single buffer that is big enough for either of
them.
2026-01-14 11:28:50 +10:00
David Reid
d61eaa885e
sndio: Improvements to blocking step logic.
2026-01-14 11:09:30 +10:00
David Reid
1438d96b38
audio(4): Prime the playback buffer when starting the device.
2026-01-14 10:11:48 +10:00