David Reid
4e28636ed8
Update deviceio test to allow explicit channel count selection.
2026-01-09 13:23:27 +10:00
David Reid
25dcbcb9cd
ALSA: Changes to start/stop behaviour for playback devices.
...
* A start threshold is no longer used meaning an explicit call to
snd_pcm_start() is required, which was happening already anyway.
* The stop threshold is no longer used.
* Stopping the playback side of device now drains it.
* Starting a device will now pre-fill the playback side with silence
before starting it which should hopefully avoid an immediate xrun.
2026-01-09 12:55:03 +10:00
David Reid
e1058d1eea
ALSA: Simplify device enumeration.
...
This removes the old useVerboseDeviceEnumeration context config option.
2026-01-09 06:17:44 +10:00
David Reid
0b4a861d94
ALSA: Experiment with snd_pcm_link().
2026-01-08 17:41:58 +10:00
David Reid
597654dcf6
Refactoring to the ALSA backend.
...
This is intended to address the following issues:
- Stepping the device now correctly polls both the capture and
playback side in one call in duplex mode. Prior to this commit it
would wait separately for each side which was totally incorrect.
- The initialization process has been simplified and made more robust
when trying to initialize the default device.
More work still to be done.
2026-01-08 17:20:00 +10:00
David Reid
0129fa3b2a
ALSA: Fix a bug where a default device is not detected properly.
2026-01-08 10:52:37 +10:00
David Reid
e4a6c348d5
ALSA: Try making channel selection a bit more robust.
...
Public issues
https://github.com/mackron/miniaudio/issues/775
https://github.com/mackron/miniaudio/issues/945
2026-01-08 09:56:40 +10:00
David Reid
01fe5fe416
Merge branch 'dev' into dev-0.12
2026-01-07 18:20:48 +10:00
David Reid
5ef2e1ec57
Update fs.
2026-01-07 18:19:59 +10:00
David Reid
ee8a65bed9
Update dr_libs.
2026-01-07 18:13:08 +10:00
David Reid
44b847fbf8
Update fs.
2026-01-07 18:10:39 +10:00
David Reid
ca6361db5e
PipeWire: Fix a bug with channel map negotiation.
2026-01-07 16:57:31 +10:00
David Reid
3b0391ad44
Silence an assigned-but-not-used warning.
2026-01-07 16:43:49 +10:00
David Reid
61f1f8b457
Tighten up ma_context_get_backend_info().
2026-01-07 16:37:59 +10:00
David Reid
5095548174
Merge branch 'dev' into dev-0.12
2026-01-07 15:37:03 +10:00
David Reid
5f3de510b2
Make ma_is_spatial_channel_position() a bit more robust.
...
This makes it less error prone when new channel positions are added to
the enum.
2026-01-07 12:36:18 +10:00
David Reid
53116ad6da
Minor change to an enum to make it less error prone.
2026-01-07 12:31:03 +10:00
David Reid
b83869eb09
Update the spatializer to require a listener when processing.
2026-01-07 12:24:30 +10:00
David Reid
bedfd053cb
Fix a bug in the gainer where a null pointer can be offset.
2026-01-07 12:13:18 +10:00
David Reid
32cc6d53cd
Fix a possible null pointer dereference.
2026-01-07 12:08:20 +10:00
David Reid
bd26454c26
Fix a possible null pointer dereference.
2026-01-07 12:07:25 +10:00
David Reid
d791c16d8d
Remove some redundant error checks.
2026-01-07 12:05:57 +10:00
David Reid
86d5f669e4
PipeWire: Comment out an unused function.
2026-01-07 11:10:21 +10:00
David Reid
4d9a66289d
Merge branch 'dev' into dev-0.12
2026-01-07 10:33:30 +10:00
David Reid
8c4535c6c5
Fix a bug with sound node processing.
2026-01-07 10:33:13 +10:00
David Reid
4bd8eb0aa0
WASAPI: Handle AUDCLNT_E_DEVICE_INVALIDATED.
...
When this is detected the device will be reinitialized. If this fails
the device will be put into an errored state and will become unusable.
2026-01-07 10:23:39 +10:00
David Reid
882d7329f9
Add getter functions for backend vtables.
2026-01-07 09:22:43 +10:00
David Reid
fd74d344c7
Merge branch 'dev' into dev-0.12
2026-01-06 19:32:41 +10:00
David Reid
27d2d6ac87
Add support for custom resamplers to sounds.
...
Public issue https://github.com/mackron/miniaudio/issues/965
2026-01-06 19:25:32 +10:00
David Reid
919a01ae4a
Use ma_resampler instead of ma_linear_resampler for sound nodes.
...
This is infrastructure work for supporting custom resamplers for the
pitching and Doppler effects for sounds.
Public issue https://github.com/mackron/miniaudio/issues/965
2026-01-06 18:37:05 +10:00
David Reid
065e6eadb5
Minor code rearrangement.
2026-01-06 18:18:16 +10:00
caturria
962d11b4ce
Resource manager can now have a custom resampler.
2026-01-06 18:13:57 +10:00
David Reid
5f3fc86f89
Merge branch 'dev' into dev-0.12
2026-01-06 16:29:55 +10:00
David Reid
b62249ceaf
Fix an infinite loop bug.
2026-01-06 16:29:42 +10:00
David Reid
25a137752a
Merge branch 'dev' into dev-0.12
2026-01-06 16:23:32 +10:00
David Reid
525b04db04
Make ma_sound node processing a bit more robust.
...
This removes the dependency on querying the required input frame count
from the resampler. This should in turn enable future work to support
custom resamplers.
Public issue https://github.com/mackron/miniaudio/issues/965
2026-01-06 16:11:35 +10:00
David Reid
fd89763b2a
Merge branch 'dev' into dev-0.12
2026-01-06 15:18:07 +10:00
David Reid
e93e1dbba1
Set up some infrastructure for improvements to ma_sound processing.
2026-01-06 15:15:43 +10:00
David Reid
97b2db8c42
Merge branch 'dev' into dev-0.12
2026-01-06 13:21:06 +10:00
David Reid
111d620c63
Fix some node timing errors.
...
This commit fixes a bug relating to nodes with a scheduled start/stop
time. Whether or not the node is considered started or stopped is being
incorrectly reported by `ma_node_get_state_by_time_range()`.
Another issue is fixed in `ma_node_read_pcm_frames()`, which is related
to the fix above, where the frame count can underflow thereby resulting
in a crash.
Public issue https://github.com/mackron/miniaudio/issues/969
2026-01-06 13:05:40 +10:00
David Reid
3b4e87848b
Fix a typo.
2026-01-06 10:11:16 +10:00
David Reid
35acd7a65b
Relocate the sound end callback to after the sound is stopped.
...
Public issue https://github.com/mackron/miniaudio/issues/1013
2026-01-06 10:05:36 +10:00
David Reid
83ef69a79a
CMake: Update an option description.
2026-01-06 09:07:43 +10:00
David Reid
524e3c2d06
Merge branch 'dev' into dev-0.12
2026-01-06 08:55:25 +10:00
David Reid
92fb865387
Update some comments.
2026-01-06 08:06:49 +10:00
François Hautier
c44ec3f46a
Better comment
2026-01-06 07:56:41 +10:00
François Hautier
8c3b213a7c
WebAudio: Try to fix a startup noise
2026-01-06 07:56:41 +10:00
David Reid
fe31274720
CMake: Add support for MA_NO_THREADING to deviceio test.
2026-01-05 20:19:05 +10:00
David Reid
f3dfc97c2c
Fix a format selection bug in the PipeWire backend.
...
This was incorrectly choosing the wrong endian-specific sample format
when the endian.h header was not included. This commit switches to
runtime endian detection.
2026-01-05 20:18:35 +10:00
David Reid
6d906215f1
Move ma_is_little_endian() / ma_is_big_endian() into the public section.
2026-01-05 20:07:43 +10:00