Commit Graph

2685 Commits

Author SHA1 Message Date
David Reid 07e56c70cf Core Audio: Try fixing a deadlock when switching devices.
Public issue https://github.com/mackron/miniaudio/issues/344
2021-07-17 11:23:01 +10:00
David Reid af70f1bd5d Update revision history. 2021-07-17 10:29:11 +10:00
David Reid efcaa21981 Core Audio: Fix compilation errors. 2021-07-17 10:26:04 +10:00
David Reid ef55f6741d Merge branch 'dev' 2021-07-14 20:46:50 +10:00
David Reid 0f5cb7829d Version 0.10.38 2021-07-14 20:46:38 +10:00
David Reid 922c95997e PulseAudio: Experimental work on improving the stop callback.
Public issue https://github.com/mackron/miniaudio/issues/341
2021-07-14 18:49:17 +10:00
David Reid 2d63e2347a Update revision history. 2021-07-14 17:33:03 +10:00
David Reid 6040956255 Fix an error where ma_log_level_to_string() is sometimes not compiled.
This was happening because ma_log_level_to_string() was only being
included when MA_DEBUG_OUTPUT is enabled.
2021-07-14 17:26:30 +10:00
David Reid 3a5bfa9f9b Fix some strict C89 issues. 2021-07-14 17:20:49 +10:00
David Reid 1161e47ec7 Merge pull request #343 from Clownacy/dev
Fix `ma_log_postv` not returning anything under certain circumstances
2021-07-14 17:18:14 +10:00
Clownacy f56ea20470 Restructure ma_log_postv to be more consistent
The `__STDC_VERSION__ >= 199901L` and the `_MSC_VER >= 1200` code
had different styles for handling errors, so I've made them match.
2021-07-13 23:35:41 +01:00
Clownacy b65a117132 Fix function not returning anything
MSVC 6 was printing a warning about this.
2021-07-13 23:33:15 +01:00
David Reid 7bb96d8a3c Fix a crash when initializing a decoder without a config. 2021-07-11 17:04:29 +10:00
David Reid 655c087651 Avoid some superfluous decoder backend initialization. 2021-07-11 17:01:25 +10:00
David Reid dcec55f7b8 OpenSL: Fix a bug with setting of stream types and recording presets. 2021-07-10 12:21:42 +10:00
David Reid 66b5ccb577 Update issue template. 2021-07-10 11:58:54 +10:00
David Reid 1b38b6901d Update issue template. 2021-07-10 11:58:17 +10:00
David Reid b8599906b7 Fix some bugs when playing inlined sounds.
Public issue https://github.com/mackron/miniaudio/issues/340
2021-07-10 11:57:29 +10:00
David Reid 90c7eef4f4 Version 0.10.37 2021-07-06 17:40:38 +10:00
David Reid 486bd7939c Merge pull request #332 from Clownacy/dev
Fix invalid vsnprintf buffer size
2021-07-05 17:20:46 +10:00
Clownacy 72c1a74c86 Fix invalid vsnprintf buffer size
Was performing a `sizeof` on a pointer, which causes a warning to be
generated.
2021-07-04 12:30:44 +01:00
David Reid 5f145039b1 Fix build when compiling with MA_NO_THREADING. 2021-07-04 15:41:55 +10:00
David Reid ffb5a995c0 Minor improvements to listener indexes. 2021-07-04 14:03:11 +10:00
David Reid cff3398af4 Move some macros over to the main library. 2021-07-04 13:48:11 +10:00
David Reid cc6ef11076 Clean up some old matrix code. 2021-07-04 13:42:43 +10:00
David Reid a99eac9f22 Use rectangular channel mixing instead of shuffling mode.
This fixes an issue where excess channels are not heard when the sound
source has more channels than the listener.
2021-07-04 13:37:16 +10:00
David Reid 2d8b0633a4 Fix some channel mapping bugs. 2021-07-04 13:35:29 +10:00
David Reid 35ce972bd3 Make sure heap layouts are aligned properly. 2021-07-04 11:53:21 +10:00
David Reid ebaa74d608 Improvements to channel conversion during spatialization.
This commit also fixes a bug where panning is incorrectly getting
applied to non-directional channels, such as mono and LFE channels.
2021-07-04 11:37:50 +10:00
David Reid 072efc6f8b Minor updates to channel mapping. 2021-07-04 11:36:24 +10:00
David Reid 81d720e09f Version 0.10.36 2021-07-03 20:29:03 +10:00
David Reid 204169285b Revert an earlier change. 2021-07-03 20:24:17 +10:00
David Reid b6387eb241 Add support for heap preallocation to nodes. 2021-07-03 19:33:45 +10:00
David Reid 5928aa9930 Add support for pre-allocation to engine nodes. 2021-07-03 18:51:17 +10:00
David Reid bf1b518357 Experimental work on a new memory allocation model.
This is work towards using the heap for storing per-channel data so we
can get rid of upper channel count limit and remove MA_MAX_CHANNELS or
at the very least stop MA_MAX_CHANNELS from affecting overall memory
usage.
2021-07-03 18:00:26 +10:00
David Reid 5af250cfea Add support for passing in a NULL channel map to the converter. 2021-07-03 17:34:21 +10:00
David Reid 8d00d9f5fa Add some error checking to ma_node_init(). 2021-07-03 14:22:42 +10:00
David Reid 366aa4346e Relax restrictions on the maximum input and output buses for nodes.
Previously this was restricted to 2 input buses and 2 output buses, but
this has been lifted to 254. When the number exceeds 2, internal data
structures will be allocated on the heap, otherwise they'll use a local
array contained within the ma_node structure.

This commit changes the node configuration. Previously there was a
fixed sized array for specifying the channel counts for each bus. This
array must now be defined outside of the config by the caller. The
following config variables have been renamed:

  * inputChannels > pInputChannels
  * outputChannels > pOutputChannels

This commit also adds the ability to configure input and output bus
counts on a per-instance basis rather than via the node vtable. To do
this, set the bus count in the vtable to MA_NODE_BUS_COUNT_UNKNOWN.
This will tell miniaudio to look at the node config to determine the
bus count rather than the vtable. It's an error to specify this in the
node config if the vtable specifies anything other than
MA_NODE_BUS_COUNT_UNKNOWN.
2021-07-03 12:40:13 +10:00
David Reid db7a3dfd23 Update stb_vorbis. 2021-07-03 07:48:12 +10:00
David Reid 4d1f619ff2 Formatting fixes. 2021-07-02 22:09:29 +10:00
David Reid f568dd8a79 Fix an infinite loop with the Vorbis decoder. 2021-07-02 21:54:50 +10:00
David Reid d2e5d3c283 Start to add some logging to the resource manager. 2021-07-02 21:49:00 +10:00
David Reid 479718d86d Fix a log formatting bug. 2021-07-02 21:31:19 +10:00
David Reid 9978520acf Use better allocation functions. 2021-07-02 20:57:33 +10:00
David Reid 18d185832f Fix a compilation warning. 2021-07-02 20:54:38 +10:00
David Reid 9b237dac04 Hook up the resource manager to the new logging system. 2021-07-02 20:54:30 +10:00
David Reid f940118fd8 Fix some logging bugs. 2021-07-02 20:30:13 +10:00
David Reid f2ef1d8f99 Hook up the engine to the new logging system. 2021-07-02 20:29:52 +10:00
David Reid 591d340343 Improvements to logging.
* The old logging callback has been deprecated and will be removed in
    version 0.11.
  * MA_LOG_LEVEL_DEBUG has been added and MA_LOG_LEVEL_VERBOSE
    deprecated.
  * The MA_LOG_LEVEL option has been deprecated. All log levels are now
    posted to the logging callbacks, except for MA_LOG_LEVEL_DEBUG
    which is only posted if MA_DEBUG_OUTPUT is enabled.

The new logging system works by creating a `ma_log` object. You then
register callbacks that will be fired when a log message is posted. You
can register up to 4 callbacks. You the specify a pointer to this log
object in the context config. This replaces the `logCallback` variable.

The old logging system was specific to context's and device's, however
with the introduction of new APIs this is no longer appropriate. The
new logging system is completely generic with a simple user-data
pointer being used for application-specific data.

This commit adds some helper APIs for retrieving a pointer to the
context's log object:

  * ma_context_get_log()
  * ma_device_get_log()
  * ma_device_get_context()

The MA_DEBUG_OUTPUT option has been improved for Android builds. With
the new system, __android_log_print() will be used instead of printf().
2021-07-02 20:10:23 +10:00
David Reid 1ad55ca9ad OpenSL: Fix a copy/paste bug. 2021-07-02 15:52:50 +10:00