Commit Graph

2078 Commits

Author SHA1 Message Date
David Reid 18df4a80c8 Bug fix for ma_decoder_get_length_in_pcm_frames().
This previously returned the frame count based on the internal sample
rate of the underlying stream, whereas it should have instead returned
a frame count based on the output sample rate. This commit fixes this.

This commit commit also changes the implementation of
ma_calculate_frame_count_after_src() to use the ma_resampler API which
should make it a bit more robust and easier to maintain.
2020-02-16 12:46:58 +10:00
David Reid 7e5863b37b Add some comments. 2020-02-15 07:37:00 +10:00
David Reid 259d8aa2eb Core Audio: Add a comment. 2020-02-14 21:54:03 +10:00
David Reid cd66d5848c WebAudio: Add a clarification comment concerning draining. 2020-02-14 19:59:14 +10:00
David Reid 159fbf330b OpenSL: Drain buffers when stopping the device. 2020-02-14 19:47:38 +10:00
David Reid 1b8ddf5985 AAudio: Add a comment clarifying draining. 2020-02-14 18:55:31 +10:00
David Reid 386852887f sndio: Add note about draining. 2020-02-13 21:52:37 +10:00
David Reid 137ae5533f audio(4): Drain the playback device when stopping. 2020-02-13 21:39:22 +10:00
David Reid 1d2c52d5b6 WinMM: Drain the playback device when stopping. 2020-02-13 21:18:42 +10:00
David Reid adef2adfbd WASAPI: Refactoring to device enumeration.
Public issue https://github.com/dr-soft/miniaudio/issues/126
2020-02-13 20:07:27 +10:00
David Reid c67175c3ea Make volume control more thread safe.
This change makes a copy of the master volume factor before applying it
so that if another thread changes the volume it won't apply the change
part way through the processing of a period.
2020-02-13 17:29:16 +10:00
David Reid 578496e237 Minor clarification changes. 2020-02-12 21:56:43 +10:00
David Reid 45a3ad3b87 Update documentation. 2020-02-12 21:37:25 +10:00
David Reid 9ce58044dc Update documentation. 2020-02-12 21:21:43 +10:00
David Reid 4c409c824a API CHANGE: Remove ma_device_set_stop_callback().
With this change the stop callback must be set via the device config.
2020-02-12 20:50:43 +10:00
David Reid 4d34108589 Update documentation. 2020-02-12 20:47:51 +10:00
David Reid 314eb68544 Use default LPF filter count for decoders. 2020-02-12 18:34:39 +10:00
David Reid 74a1cf38b9 WASAPI: Fix WASAPI bug where the buffer size is not set correctly. 2020-02-12 18:20:26 +10:00
David Reid 53cfae9932 Update documentation. 2020-02-12 17:58:08 +10:00
David Reid 841c0b8d7e Minor restructuring in preparation for removing -lm dependency. 2020-02-11 18:54:23 +10:00
David Reid 25b21e5851 Remove unused function. 2020-02-10 21:14:11 +10:00
David Reid 54584cb4c2 Update build instructions and remove dependency on sqrt(). 2020-02-10 19:45:08 +10:00
David Reid ce98c1ed72 Update documentation. 2020-02-10 19:02:52 +10:00
David Reid 0965404db2 Clarify the PulseAudio backend is not enabled on Windows. 2020-02-09 16:00:39 +10:00
David Reid 6547d6b20d Fix a typo. 2020-02-09 15:40:05 +10:00
David Reid bb31038e16 Core Audio: Fix compilation errors. 2020-02-09 15:28:51 +10:00
David Reid 9ee6cf0d17 OSS: Bug fixes. 2020-02-09 05:07:07 +10:00
David Reid 7aac694905 API CHANGE: Remove bufferSizeInFrames and bufferSizeInMilliseconds.
These used to represent the size of the entire buffer, with the latency
defined by the the size of this buffer, divided by the period count.
This ended up being confusing because people assumed the buffer size by
itself was enough to define the latency. With this commit, these config
variables have been replaced with ones that take the size of a period
rather than the size of the entire buffer. These are called
periodSizeInFrames and periodSizeInMilliseconds. With this change, the
latency is determined by these settings alone, without needing to take
the period count into account. This should make things much easier to
understand.

This commit removes MA_BASE_BUFFER_SIZE_IN_MILLISECONDS_LOW_LATENCY and
MA_BASE_BUFFER_SIZE_IN_MILLISECONDS_CONSERVATIVE.

This commit removes ma_get_default_buffer_size_in_milliseconds() and
ma_get_default_buffer_size_in_frames().
2020-02-09 14:53:36 +10:00
David Reid 4fbe12ca19 Add examples to documentation for ma_device_init(). 2020-02-09 10:32:47 +10:00
David Reid cb11e6c000 Update documentation for ma_device_init(). 2020-02-09 10:13:02 +10:00
David Reid 943ca217aa More documentation updates. 2020-02-08 21:07:51 +10:00
David Reid b58e315c86 Fix a typo. 2020-02-08 20:58:47 +10:00
David Reid d82a1551e3 Update documentation for some APIs.
* ma_context_uninit()
  * ma_context_enumerate_devices()
  * ma_context_get_devices()
  * ma_context_get_device_info()
  * ma_context_is_loopback_supported()
2020-02-08 20:50:27 +10:00
David Reid 21c5a824db Update documentation for ma_context_init(). 2020-02-08 20:11:17 +10:00
David Reid b85e34cbb2 Update documentation. 2020-02-08 18:29:39 +10:00
David Reid 2dd4e63210 Update documentation. 2020-02-08 15:34:00 +10:00
David Reid aba41c9e4c Add release notes for version 0.10. 2020-02-06 20:06:42 +10:00
David Reid 2e1958ff94 Inline some internal static functions.
Public issue https://github.com/dr-soft/miniaudio/issues/131
2020-02-05 18:39:12 +10:00
David Reid e4855a551e Remove an unused function. 2020-02-05 18:33:40 +10:00
David Reid 1f2a17df32 Fix a bug in ma_convert_frames().
This has the input and output formats the wrong way around.
2020-02-04 21:00:35 +10:00
David Reid cd3d00181f Core Audio: Comment out some unused functions. 2020-02-03 20:50:23 +10:00
David Reid 647f3764ea Exclude some unnecessary functions when possible. 2020-02-03 20:03:11 +10:00
David Reid ddb901e377 Silence some unused function warnings. 2020-02-03 19:57:01 +10:00
David Reid a8fdb966f1 Enable some debug output for ALSA. 2020-02-02 21:11:50 +10:00
David Reid 3387e88836 API CHANGE: Add support for custom memory allocators.
This commit changes the following APIs to add an additional parameter
called pAllocationCallbacks. This is a pointer to a
ma_allocation_callbacks structure which is used to perform the actual
allocation/free.

Allocation callbacks can be set in ma_context_config for contexts and
ma_decoder_config for decoders. If it's left unset it will use
MA_MALLOC(), MA_REALLOC() and MA_FREE().
2020-02-02 20:30:57 +10:00
David Reid 71fe5ec59c Set up some infrastructure for SIMD optimized format conversion. 2020-02-02 16:58:24 +10:00
David Reid 9529bfa4a5 Remove some unused code. 2020-02-02 15:38:38 +10:00
David Reid b23bd7e2e9 Static-ify internal APIs. 2020-02-02 15:37:24 +10:00
David Reid a57a2a324f Static-ify more APIs. 2020-02-02 14:41:51 +10:00
David Reid 23b6b3074e Remove an unused function. 2020-02-02 14:28:15 +10:00