Commit Graph

1250 Commits

Author SHA1 Message Date
David Reid 3e5e10d31a API CHANGE: Update ma_clip_pcm_frames_f32().
This now takes an input and output buffer rather than performing the
clipping in-place.
2021-07-04 16:11:46 +10:00
David Reid fb9716d9d1 API CHANGE: Update ma_clip_samples_f32() to take an input and output.
The previous version only allowed in-place clipping, whereas the new
one supports clipping into a separate buffer. The input and output
buffers can point to the same buffer in which case the clip will be
performed in-place.
2021-07-04 16:10:30 +10:00
David Reid b0927a4439 API CHANGE: Remove ma_zero_pcm_frames().
This has been replaced with ma_silence_pcm_frames().
2021-07-04 16:05:38 +10:00
David Reid 82f3b0eb7a API CHANGE: Remove unnecessary parameter from ring buffers.
This removes the `pBufferOut` parameter from the following APIs:

  * ma_rb_commit_read
  * ma_rb_commit_write
  * ma_pcm_rb_commit_read
  * ma_pcm_rb_commit_write
2021-07-04 16:03:52 +10:00
David Reid f9c496a014 API CHANGE: Rename noPreZeroedOutputBuffer to noPreSilencedOutputBuffer 2021-07-04 16:00:24 +10:00
David Reid 57bc1a285a API CHANGE: Remove shareMode parameter from ma_context_get_device_info. 2021-07-04 15:57:49 +10:00
David Reid 01c8b8d953 API CHANGE: Remove old device config variables. 2021-07-04 15:55:28 +10:00
David Reid 7025da51ab API CHANGE: Remove MA_MIN/MAX_SAMPLE_RATE.
These are replaced with ma_standard_sample_rate_min/max.
2021-07-04 15:46:55 +10:00
David Reid 77586a8a43 API CHANGE: Remove unused channel mixing mode. 2021-07-04 15:44:58 +10:00
David Reid 9cabd06494 Remove AVX-512 placeholders. 2021-07-04 15:44:26 +10:00
David Reid 5f145039b1 Fix build when compiling with MA_NO_THREADING. 2021-07-04 15:41:55 +10:00
David Reid ecc9c6e5e7 Fix build when compiling with MA_NO_THREADING. 2021-07-04 15:40:20 +10:00
David Reid cff3398af4 Move some macros over to the main library. 2021-07-04 13:48:11 +10:00
David Reid 2d8b0633a4 Fix some channel mapping bugs. 2021-07-04 13:35:29 +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 5af250cfea Add support for passing in a NULL channel map to the converter. 2021-07-03 17:34:21 +10:00
David Reid f568dd8a79 Fix an infinite loop with the Vorbis decoder. 2021-07-02 21:54:50 +10:00
David Reid 479718d86d Fix a log formatting bug. 2021-07-02 21:31:19 +10:00
David Reid f940118fd8 Fix some logging bugs. 2021-07-02 20:30:13 +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
David Reid 410bdaa6bf Fix some bugs with recent commits. 2021-07-01 19:51:17 +10:00
David Reid 210d2db9a3 Deprecate some decoder initialization functions. 2021-07-01 19:25:10 +10:00
David Reid acb7aba85e PulseAudio: Another attempt at fixing a division by zero.
Public issue https://github.com/mackron/miniaudio/issues/323
2021-07-01 18:43:45 +10:00
David Reid f340578d76 Update revision history. 2021-07-01 17:43:49 +10:00
David Reid 00baf2f622 Remove some unnecessary members from ma_decoder. 2021-07-01 17:42:20 +10:00
David Reid fd0c441423 Remove unused variables from the ma_decoder structure. 2021-07-01 17:14:47 +10:00
David Reid e312ac5411 Remove the old "raw" decoder.
This is no longer used. New code should use `ma_audio_buffer`.
2021-07-01 17:11:56 +10:00
David Reid 11a774c9ff Update dr_wav. 2021-07-01 17:05:17 +10:00
David Reid ead7373925 Update the WAV decoder to use the new backend infrastructure. 2021-07-01 16:20:27 +10:00
David Reid ea4453377a Update the FLAC decoder to use the new backend infrastructure. 2021-07-01 16:12:44 +10:00
David Reid 13252284e5 Update the MP3 decoder to use the new backend infrastructure. 2021-07-01 16:01:08 +10:00
David Reid 956701fcdd Update the Vorbis decoder to use the new backend infrastructure. 2021-07-01 15:31:39 +10:00
David Reid e0bfc59bc0 Restructuring in preparation for future work. 2021-07-01 15:22:13 +10:00
David Reid c54bb96964 Rename some config variables. 2021-07-01 14:58:05 +10:00
David Reid 52f471ae43 Try to standardize the use of MA_AT_END.
With this change, MA_AT_END should only ever be returned the number of
bytes or frames returned is equal to 0.
2021-06-30 20:58:07 +10:00
David Reid 4559253587 Remove the MA_END_OF_FILE result code.
Use MA_AT_END instead. Use of MA_END_OF_FILE is too easily confused
with MA_AT_END, and MA_AT_END is a more generally applicable.
2021-06-30 12:30:31 +10:00
David Reid 1c179fb475 Try fixing an infinite loop. 2021-06-30 12:17:21 +10:00
David Reid 38f2754edb Fix compilation errors on 32-bit. 2021-06-30 06:10:44 +10:00
David Reid dad754b745 Add support for custom decoding backends.
Public issue https://github.com/mackron/miniaudio/issues/311
2021-06-27 21:43:31 +10:00
David Reid cf2c9f2533 PulseAudio: Attempt to fix a division by zero error.
Public issue https://github.com/mackron/miniaudio/issues/323
2021-06-22 17:41:41 +10:00
David Reid a95c066218 Add alternate names for some structs.
This is in preparation for some work in the high level API.
2021-06-20 10:20:12 +10:00
David Reid f24967f952 Comment out some code to try and fix an error on iOS.
Public issue https://github.com/mackron/miniaudio/issues/101
2021-06-17 18:05:06 +10:00
David Reid 9be681b848 Return MA_AT_END from ma_(pcm_)rb_commit_read/write(). 2021-06-13 18:04:57 +10:00
David Reid 7858e098f5 Add some helper functions to ma_audio_buffer/_ref. 2021-06-13 12:42:06 +10:00
David Reid 7a9ce3d0d3 Fix a bug where MA_AT_END is not getting returned by audio buffers. 2021-06-13 07:17:26 +10:00
David Reid 73e1589afa Update dr_wav.
Public issue https://github.com/mackron/miniaudio/issues/320
2021-06-11 19:50:42 +10:00
David Reid 8234df87c9 Fix a possible double file close when decoder initialization fails.
Public issue https://github.com/mackron/miniaudio/issues/319
2021-06-11 19:03:01 +10:00