Commit Graph

1788 Commits

Author SHA1 Message Date
David Reid 79aca688de Make documentation narrower. 2021-07-19 19:39:37 +10:00
David Reid 3181b0c23e Fix a bug when decoding from memory. 2021-07-18 14:35:01 +10:00
David Reid 244ef260f2 Fix a bug where decoding would try to read 0 frames and throw an error. 2021-07-18 14:32:35 +10:00
David Reid 3ea1706194 Fix warnings on the 32-bit build. 2021-07-18 13:59:05 +10:00
David Reid 5f20002ad1 Bug fix for the previous commit. 2021-07-18 13:53:04 +10:00
David Reid a188eaae26 Add a safety net to catch EOF scenarios to the VFS.
This catches the case when backends do not return MA_AT_END when no
data is read.
2021-07-18 13:51:56 +10:00
David Reid 22965c2fc1 API CHANGE: Update ma_waveform_read_pcm_frames(). 2021-07-18 11:26:33 +10:00
David Reid 4eab967905 API CHANGE: Update ma_noise_read_pcm_frames(). 2021-07-18 11:14:09 +10:00
David Reid 02bf2a9e5a API CHANGE: Update ma_encoder_write_pcm_frames().
This updates ma_encoder_write_pcm_frames() to be consistent with
reading, where a result code is returned, and the number of frames
written is returned via an output parameter.
2021-07-18 10:41:04 +10:00
David Reid 7b65f3748a Add some safety checks to data sources.
With this change, an error is now returned when the requested frame
count is zero. Two reasons for this:

  1) It usually means there's an error in the higher level logic if
     something is trying to read zero frames.

  2) When no frames are read, MA_AT_END should be returned. However, if
     the input frame count is also zero, it creates ambiguity as to
     whether or not the data source is truly at the end.
2021-07-18 10:35:34 +10:00
David Reid d7d8520c82 Merge branch 'dev-0.11' of https://github.com/mackron/miniaudio into dev-0.11 2021-07-18 09:45:32 +10:00
David Reid cfb7020ae8 Add a null check to ma_free(). 2021-07-18 09:45:14 +10:00
David Reid 1b42dbb10e Move the engine API into the main library. 2021-07-18 08:00:17 +10:00
David Reid b19f403ac2 Move the node graph into the main library. 2021-07-18 07:47:59 +10:00
David Reid fa2fc03e1f Move a compile time option into the implementation section. 2021-07-17 22:12:48 +10:00
David Reid 5b574e652b Move resource manager into the main library. 2021-07-17 22:06:44 +10:00
David Reid 6effc9863a Move async notifications into the main library. 2021-07-17 21:04:08 +10:00
David Reid aae9a16cc3 Move some functions over to the main library. 2021-07-17 16:54:39 +10:00
David Reid 42d82c98cd API CHANGE: Remove ma_clip_pcm_frames_f32(). 2021-07-17 16:47:11 +10:00
David Reid 8ddac00d5c Move some clipping functions into the main library. 2021-07-17 16:46:30 +10:00
David Reid 9fa4d9ea7f Move ma_slot_allocator into the main library. 2021-07-17 16:38:06 +10:00
David Reid 711854647a Move ma_fence into the main library. 2021-07-17 16:32:27 +10:00
David Reid 0dc3e013f3 Fix a bug in ma_calculate_frame_count_after_resampling(). 2021-07-17 13:36:32 +10:00
David Reid 71909188f7 Merge branch 'dev' into dev-0.11 2021-07-17 12:25:09 +10:00
David Reid 36779c368b PulseAudio: Enable the stop callback when a stream is suspended.
Public issue https://github.com/mackron/miniaudio/issues/341
2021-07-17 12:19:40 +10:00
David Reid 5dd8fbe9ad Improvements to the main worker thread.
* If starting the backend fails, don't attempt to enter the data loop
  * If stopping the backend fails, don't fire the stop callback.
2021-07-17 12:13:42 +10:00
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 e13f00b336 Standardize some parameter names. 2021-07-16 19:40:33 +10:00
David Reid 9a7b9b8c38 API CHANGE: Remove ma_scale_buffer_size(). 2021-07-16 19:38:30 +10:00
David Reid b8079f2b61 Remove some unnecessary casts. 2021-07-16 19:36:11 +10:00
David Reid 36d74d0111 Move ma_copy_and_apply_volume_factor_per_channel_f32() into main file. 2021-07-16 19:35:24 +10:00
David Reid d93eaf22c1 Move ma_paged_audio_buffer into the main library. 2021-07-16 17:38:36 +10:00
David Reid ebdc79ab6a Merge branch 'master' into dev-0.11 2021-07-14 20:47:00 +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
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 643c9c0860 Add support for disabling denormals on the audio thread.
This is configurable on a per-device basis. Denormals will be disabled
by default.
2021-07-13 20:27:17 +10:00
David Reid b961cdf9be API CHANGE: Standardize decoder read/seek callbacks. 2021-07-11 17:23:39 +10:00
David Reid 7bb96d8a3c Fix a crash when initializing a decoder without a config. 2021-07-11 17:04:29 +10:00
David Reid 56202ced66 Fix a crash when initializing a decoder without a config. 2021-07-11 17:04:07 +10:00
David Reid 655c087651 Avoid some superfluous decoder backend initialization. 2021-07-11 17:01:25 +10:00
David Reid 8d47a9307f Avoid some superfluous decoder backend initialization. 2021-07-11 17:00:56 +10:00
David Reid 7d6320ffe1 Fix bugs with duplex mode introduced with the previous commit. 2021-07-11 16:45:10 +10:00
David Reid 31b692642c Improvements to data conversion.
This makes devices and decoders more robust when the resampler does not
support retrieval of required input frame counts from a given output
frame count, which can happen with custom resamplers.
2021-07-11 15:52:15 +10:00