David Reid
af2cf5d161
Add a new ma_audio_ring_buffer data source.
...
This is a wrapper around `ma_ring_buffer` and is more specialized
towards audio. It is a data source and replaces `ma_pcm_rb` which will
be removed in a future commit.
Public issue https://github.com/mackron/miniaudio/issues/671
2026-01-25 16:50:28 +10:00
David Reid
edb64e6017
Add a new SPSC ring buffer.
...
This improves on the old ring buffer by having a much simpler
implementation and a much simpler API that does not require the caller
to do reading and writing in a loop.
Future commits will be removing the old ring buffer.
Public issue https://github.com/mackron/miniaudio/issues/671
2026-01-25 14:05:30 +10:00
David Reid
bef32b4419
Fix a null pointer dereference in the audio queue.
2026-01-22 11:34:35 +10:00
David Reid
8a43271555
Initial work on the audio queue data source.
...
Public issue https://github.com/mackron/miniaudio/issues/744
2026-01-22 11:29:53 +10:00
David Reid
ba963e46b5
Web Audio: Experimental loopback support.
...
This uses `getDisplayMedia()`. Support for this is extremely browser and
system specific so I'm not advertising support for this documentation.
Public issue https://github.com/mackron/miniaudio/issues/967
2026-01-21 12:19:25 +10:00
David Reid
f6b973d384
Allow backends to work without stepping when threading is disabled.
...
This is per-backend.
2026-01-21 12:14:34 +10:00
David Reid
f37ffed283
Merge PipeWire backend into the main library.
2026-01-20 17:15:32 +10:00
David Reid
f794044d0a
WinMM: Optimize some memory allocations.
2026-01-17 18:50:21 +10:00
David Reid
251e0e59e4
OpenSL: Optimize some memory allocations.
2026-01-17 18:00:32 +10:00
David Reid
70ff2591bc
PulseAudio: Optimize some memory allocations.
2026-01-17 17:23:56 +10:00
David Reid
1b7cc965df
Prioritize JACK over ALSA.
...
With ALSA having a higher priority JACK will never actually get picked.
2026-01-17 15:57:57 +10:00
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