Commit Graph

1466 Commits

Author SHA1 Message Date
David Reid ce98c1ed72 Update documentation. 2020-02-10 19:02:52 +10:00
David Reid dedd68f5be Rename example. 2020-02-10 18:54:28 +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 86a0e65d02 Update examples. 2020-02-09 14:54:58 +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 df94bce3e4 Update examples. 2020-02-03 20:20:43 +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
David Reid a7837316ac static-ify some APIs. 2020-02-02 14:27:44 +10:00
David Reid 862f66c1fb Update duplex test. 2020-02-02 14:13:42 +10:00
David Reid c67ef38bcc Replace ma_assert with MA_ASSERT. 2020-02-02 14:13:25 +10:00
David Reid e0676d0099 Replace ma_copy_memory with MA_COPY_MEMORY. 2020-02-02 14:11:56 +10:00
David Reid 312298d3bf Replace ma_zero_object with MA_ZERO_OBJECT. 2020-02-02 14:11:18 +10:00
David Reid 4ae1826353 Replace ma_zero_memory with MA_ZERO_MEMORY. 2020-02-02 14:09:18 +10:00
David Reid c3dd0bd870 Wire up the resampling configs for decoders. 2020-02-02 14:02:31 +10:00
David Reid 9c5461d38a Remove compile-time support checks in ma_device_id.
With this change, the ma_device_id union should now be a consistent
size across all platforms. This is important if cross-platform
programs want to save the device ID and need the size to be consistent.
2020-02-02 13:55:58 +10:00
David Reid 84d5040da9 API CHANGE: Remove the f32 sine wave APIs.
The following APIs are removed:

  * ma_sine_wave_read_f32()
  * ma_sine_wave_read_f32_ex()

Use ma_sine_wave_read_pcm_frames() as a replacement. This allows you to
generate sine wave samples in any format, controlled by a parameter.
2020-02-02 13:48:48 +10:00
David Reid 02a5cc0b8b Rearrange some code. 2020-02-02 13:46:37 +10:00
David Reid 6d63587a24 Rename ma_convert_pcm_frames() to ma_convert_pcm_frames_format().
This make it a bit more explicit that it is only converting sample
formats rather than the entire suite of format/channels/rate.
2020-02-02 13:43:01 +10:00
David Reid b458faeea5 API CHANGE: Remove ma_format_converter.
Use the following APIs as alternatives:

  * ma_pcm_*_to_*()
  * ma_pcm_convert()
  * ma_convert_pcm_frames()
2020-02-02 13:41:30 +10:00
David Reid dbaa24797a API CHANGE: Remove ma_channel_router.
This has been replaced with ma_channel_converter.
2020-02-02 13:35:48 +10:00
David Reid d594b07e6d API CHANGE: Remove ma_src.
Resampling is now done through the ma_resampler API.

Note that with this commit the old sinc resampler has been removed
because it never worked properly and is going to replaced with a better
solution in the future. If you were using ma_src_algorithm_sinc you
should consider using ma_src_algorithm_linear with the linear.lpfCount
config variable set to MA_MAX_RESAMPLER_LPF_FILTERS.
2020-02-02 13:29:03 +10:00
David Reid d92681c4bb Update project files. 2020-02-02 13:24:52 +10:00
David Reid 31f45081d0 Update emscripten tests build script. 2020-02-02 13:19:39 +10:00
David Reid 205e1b8725 API CHANGE: Remove ma_pcm_converter.
This has been replaced with ma_data_converter.
2020-02-02 13:19:10 +10:00
David Reid 64707cf432 API CHANGE: Refactor ma_convert_frames() and ma_convert_frames_ex().
For safety, ma_convert_frames() has an additional parameter called
frameCountOut which is the capacity of the output buffer. In addition,
the frameCountIn parameter has been moved next to the pIn parameter.

ma_convert_frames_ex() has been changed to take a pointer to a
ma_data_converter_config object. This provides more flexibility as to
the input and output formats. In addition, the frameCountOut parameter
has been added which has the same meaning as ma_convert_frames().
2020-02-02 13:16:14 +10:00
David Reid 6cdd4c81fb Integrate the new data converter into capture devices. 2020-02-02 11:54:22 +10:00