Commit Graph

279 Commits

Author SHA1 Message Date
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 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 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
David Reid 9b34e686d5 Integrate the new data converter into playback devices. 2020-02-01 20:58:12 +10:00
David Reid b7efd842e1 Explicitly disable dynamic sample rate conversion for decoders. 2020-02-01 11:29:53 +10:00
David Reid bbe7ff9e2b Integrate the new data converter into the decoding API. 2020-02-01 11:22:03 +10:00
David Reid e90a2a8216 Change parameter order of biquad coefficients.
This is more intuitive because it puts the numerator coefficients
before the denominator coefficients.
2020-02-01 07:52:32 +10:00
David Reid 74844074f8 Add code for the new data conversion pipeline.
With this commit, nothing is wired up with the new code. This will be
coming in the next commits.
2020-02-01 07:40:45 +10:00
David Reid 4b163e7c3e Make a macro safer. 2020-02-01 07:03:18 +10:00
David Reid cdb7bed14e Fix a null pointer dereference. 2020-01-30 19:14:10 +10:00
David Reid d0b82d3c3c Try fixing a potential thread safety issue. 2020-01-30 19:08:56 +10:00
David Reid 741edb82de Add some new APIs.
* ma_convert_pcm_frames()
  * ma_sine_wave_read_pcm_frames()
2020-01-27 18:18:24 +10:00
David Reid cbcf6f6cf3 Early work on new channel converter. 2020-01-26 18:37:10 +10:00
David Reid a633e0f51f Remove unused functions. 2020-01-26 09:55:10 +10:00
David Reid 834a604df9 Remove some out of date documentation. 2020-01-23 22:06:06 +10:00
David Reid fc9026eadf Fix potential crash when ma_device not aligned to MA_SIMD_ALIGNMENT.
Public issue https://github.com/dr-soft/miniaudio/issues/128
2020-01-23 18:47:17 +10:00
David Reid 31086c5de9 Fix bugs in ma_resampler_get_required_input_frame_count(). 2020-01-19 11:12:35 +10:00
David Reid 5df3c0ce15 SRC: Add APIs for querying required input and expected output frames.
* ma_resampler_get_required_input_frame_count()
  * ma_resampler_get_expected_output_frame_count()

These have not yet been implemented for the Speex backend.

This commit also adds an APIs for setting changing the rate:

  * ma_resampler_set_rate()
  * ma_resampler_set_rate_ratio()
2020-01-19 08:15:47 +10:00
David Reid 705e54c69a Add support for s16 format to the linear resampler. 2020-01-18 17:12:30 +10:00
David Reid df2903a0bc Version 0.9.10 2020-01-15 21:18:53 +10:00
David Reid 44d2605adb Fix a typo. 2020-01-14 21:18:34 +10:00
David Reid 557ef169d4 WASAPI: Try fixing an automatic stream routing bug.
Automatic stream routing should only be used when the ma_device object
is initialized with a device ID of NULL. When it's non-NULL (i.e. an
explicit device) it should not perform automatic stream routing. It
looks like the WASAPI backend is not respecting this requirements and
is enabling automatic stream routing in all cases.

Public issue #127
2020-01-14 21:11:54 +10:00
David Reid f8b635b972 Update backend notes for Emscripten.
Emscripten no longer supports the -std=c* and -ansi compiler flags.
2020-01-14 20:46:31 +10:00
David Reid 310135d756 Update release notes. 2020-01-14 18:43:42 +10:00
David Reid 5085eb8acc Fix compilation errors due to preprocessor if/endif mismatching. 2020-01-14 18:41:25 +10:00
David Reid 6cff872b12 Minor documentation update. 2020-01-12 08:28:41 +10:00
David Reid fc3771c443 Merge pull request #124 from oviano/dev
Fixed iOS crash in route change handler under ARC
2020-01-10 18:40:50 +10:00
Oliver Collyer 300b542dc5 Fixed iOS crash in route change handler under ARC 2020-01-09 12:53:24 +00:00
David Reid 1916f3da48 Version 0.9.9 2020-01-09 12:25:28 +10:00
Oliver Collyer b0fb839e50 Fixed some more integer cast warnings on iOS 2020-01-07 17:36:32 +00:00
David Reid d1f19836ca Rearrange some notes to be roughly in order of importance. 2020-01-04 08:30:12 +10:00
David Reid 3f23492294 PulseAudio: Another attempting at fixing a capture bug.
Public issue #106
2020-01-04 08:26:39 +10:00
David Reid f77f04612f PulseAudio: Update comment. 2020-01-03 11:31:07 +10:00
David Reid 596d9d5b65 PulseAudio: Try fixing a capture bug and add more debug output.
Public issue #106
2020-01-03 11:14:06 +10:00
David Reid d394e4d33b WASAPI: Add support for disabling hardware offloading. 2020-01-03 08:05:53 +10:00
David Reid 8f7f8d6294 WASAPI: Add support for disabling automatic stream routing.
This may be changed to a general config property later.

Related to public issue #119
2020-01-02 07:46:52 +10:00