Commit Graph

3651 Commits

Author SHA1 Message Date
David Reid 192a84a106 Revert 2 PulseAudio related commits.
This reverts the following commits:

d46e19fb47
  "PulseAudio: Attempt to fix a deadlock."

61586de203
  "PulseAudio: Default to a blocking main loop."
2024-10-12 10:15:08 +10:00
David Reid 0d0953aa85 Fix build for 3DS.
Public issue https://github.com/mackron/miniaudio/issues/902
2024-10-12 09:30:30 +10:00
David Reid 6ab4567c57 Merge branch 'dev' of https://github.com/mackron/miniaudio into dev 2024-09-13 08:20:38 +10:00
David Reid 4598d72a33 Fix a typo. 2024-09-13 08:20:09 +10:00
Tero Parviainen 4f5106ec77 Add a missing pDevice handle to the Web Audio device index when using worklets
This matches the handle added for script processor node devices in #771
2024-08-22 06:58:38 +10:00
David Reid a611cf5f26 Add ma_device_id_equal(). 2024-08-06 12:07:55 +10:00
David Reid d726e85313 Fix an error with the engine's node graph processing.
Public issue https://github.com/mackron/miniaudio/issues/850
2024-08-06 09:19:54 +10:00
Nishi efa270af91 adjust comparison a bit 2024-08-06 08:18:49 +10:00
Nishi 98f6e923cc check __NetBSD_Version__ 2024-08-06 08:18:49 +10:00
Nishi 427bdc1d2a use AUDIO_GETFORMAT instead of AUDIO_GETINFO for NetBSD 2024-08-06 08:18:49 +10:00
David Reid 61586de203 PulseAudio: Default to a blocking main loop. 2024-08-05 10:34:01 +10:00
David Reid d46e19fb47 PulseAudio: Attempt to fix a deadlock.
Public issues
  https://github.com/mackron/miniaudio/issues/877
  https://github.com/mackron/miniaudio/issues/881
2024-08-05 09:21:23 +10:00
David Reid dc423daa41 Silence some GCC warnings.
This is from c89atomic which has been fixed upstream.
2024-08-04 09:08:27 +10:00
David Reid 5d827878f2 Rename a variable for consistency. 2024-08-04 08:35:05 +10:00
Timo Schwarzer d87230b4bd Allow setting the channel map that is requested from PulseAudio 2024-08-04 08:35:05 +10:00
raduetsya e1328d9d8a Fix an always-false warning 2024-07-27 10:51:44 +10:00
David Reid 8036ac3781 WASAPI: Fix a crash when changing devices. 2024-07-14 07:16:43 +10:00
Matthieu Bouron fc45d8ca06 AAudio: Fix ma_device_get_info() implementation 2024-06-08 12:51:59 +10:00
Matthieu Bouron 35215b266c CHANGES.md: add missing newline at EOF 2024-06-08 12:51:59 +10:00
David Reid 1c15cf6502 WASAPI: Fix a regression where incorrect device info is retrieved. 2024-05-14 07:48:53 +10:00
David Reid 196289592a WASAPI: Fix a bug with loopback device info retrieval. 2024-05-12 08:40:19 +10:00
David Reid 1b35118e31 AAudio: Potential fix for a failed assertion.
Public issue https://github.com/mackron/miniaudio/issues/833
2024-04-29 08:52:12 +10:00
RainRat 88436b25ef Update miniaudio.h
fix typos
2024-04-28 15:17:11 +10:00
RainRat 3db49afa5b revert unneeded changes per request 2024-04-28 15:17:11 +10:00
RainRat aa98e1c493 fix typos 2024-04-28 15:17:11 +10:00
David Reid afb121e2ce Update c89atomic. 2024-04-28 15:12:08 +10:00
David Reid 855628f15f Update dr_wav. 2024-04-28 14:55:42 +10:00
David Reid 9091cbd016 Core Audio: Try fixing a compilation error.
Public issue https://github.com/mackron/miniaudio/issues/841
2024-04-28 13:58:11 +10:00
David Reid e82703482b Fix a minor declaration inconsistency. 2024-04-28 12:59:52 +10:00
Sergey Fedorov 6700c7ecc7 miniaudio.h: fix for macOS 2024-04-26 07:23:10 +10:00
RainRat 3ba0595c6a fix typos 2024-04-11 12:40:39 +10:00
RainRat 4bc18bba5a revert unneeded changes per request 2024-04-11 12:40:39 +10:00
RainRat 26ce355703 fix typos 2024-04-11 12:40:39 +10:00
David Reid f7ad7772d1 ALSA: Try making the handling of poll() a bit more robust.
Public issue https://github.com/mackron/miniaudio/issues/836.
2024-04-07 14:38:09 +10:00
David Reid 0eb86ea1da Fix a bug where sounds loaded with MA_SOUND_FLAG_DECODE do not loop. 2024-03-01 09:59:44 +10:00
RainRat 2618c21415 revert unneeded changes per request 2024-03-01 08:35:45 +10:00
RainRat 030b9554c2 fix typos 2024-03-01 08:35:45 +10:00
David Reid c6d8b591f6 Remove some leftover experimental code. 2024-02-29 14:39:36 +10:00
David Reid 3bdf611768 Fix an invalid comment. 2024-02-29 14:30:48 +10:00
David Reid 63e1900db8 Update documentation. 2024-02-29 10:50:06 +10:00
David Reid 29da9b789c Add new init flags for sounds and resource managed data sources.
This adds the following flags:

  * MA_SOUND_FLAG_LOOPING
  * MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_LOOPING

These can be used to initialize sounds and resource managed data
sources to loop by default. This is the recommended way to enable
looping for streams. The `isLooping` config option in
`ma_sound_config` and `ma_resource_manager_data_source_config` has been
deprecated. If you are using those, you should switch to the new flag
or else you'll get compiler errors when upgrading to a future version.
2024-02-29 10:25:02 +10:00
David Reid b454e7f14b PulseAudio: Try fixing a channel mapping bug.
Public issue https://github.com/mackron/miniaudio/issues/811
2024-02-28 18:40:35 +10:00
David Reid feea26496c Update Steam Audio example. 2024-02-28 17:17:13 +10:00
David Reid d36a2ef651 Minor cleanup. 2024-02-28 17:16:50 +10:00
David Reid e3af234720 Silence a warning in the node graph example. 2024-02-28 08:15:13 +10:00
David Reid 5cb0c05675 Update Steam Audio example to work with latest version. 2024-02-28 08:10:34 +10:00
David Reid 9aa6e035bb Memory improvements to node processing.
When processing a node, miniaudio will read into a temporary buffer
before mixing input attachments. This commit removes the per-node heap
allocation and replaces it with a per-graph stack. This should result
in less memory usage at larger scales, but at the expense of slightly
more usage at smaller scales.

The size of the stack can be configured via ma_node_graph_config. If
ma_engine is being used, it can be done via ma_engine_config.
2024-02-27 17:05:56 +10:00
David Reid 7a8ebd7f4d Update to node processing.
Previously, processing a node would involve a temporary buffer
allocated on the stack. Because this was fixed size, it would result in
processing being sub-divided into chunks in order to avoid overflowing
that buffer. This becomes an issue when a node needs to have a known
processing size. An example might be some kind of effect that requires
processing be in powers of two.

With this commit, the `processingSizeInFrames` variable in
`ma_node_graph_config` can be used to make it so processing always
happens in fixed sized chunks. In this situations, it's recommended you
always call `ma_node_graph_read_pcm_frames()` with a frame count of a
multiple of `processingSizeInFrames`.

The allocation strategy used here is not optimal and will be improved
in future commits. It currently allocates a buffer per-node, but since
the data contained within it is transient in nature, it should be
possible to use a global fixed sized stack that supports allocating a
variable amount of space within the stack buffer.
2024-02-27 15:31:17 +10:00
David Reid e32cc9ff83 Update dr_wav and dr_mp3. 2024-02-27 08:27:05 +10:00
David Reid babd7fb00f Forward declare ma_semaphore API. 2024-02-25 09:50:42 +10:00