Commit Graph

2722 Commits

Author SHA1 Message Date
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
David Reid ea7b99cfd9 Update the data converter to handle resampling better. 2021-07-11 10:24:38 +10:00
David Reid 3fd7af7274 Fix some issues with resampling in the engine. 2021-07-11 08:49:55 +10:00
David Reid 562b0ffeb3 Updates to the resampler API.
This changes ma_resampler_get_required_input_frame_count() and
ma_resampler_get_expected_output_frame_count() to return a result code
so that MA_NOT_IMPLEMENTED can be checked and an alternative code path
can be run for dealing with caching of data.
2021-07-11 07:29:31 +10:00
David Reid fcb405883d Update ma_calculate_frame_count_after_resampling()
This removes the dependency on the ma_resampler object.
2021-07-11 07:11:26 +10:00
David Reid d8314ba3af Propagate errors from ma_data_source_read_pcm_frames(). 2021-07-10 20:08:30 +10:00
David Reid 3c825d6a55 Fix some bugs introduced with recent changes to the resampler. 2021-07-10 20:00:51 +10:00
David Reid bd53d105d3 Properly propagate errors from ma_decoder_read_pcm_frames(). 2021-07-10 19:15:19 +10:00
David Reid 6dec8c0736 Have ma_decoder_read_pcm_frames() return MA_AT_END. 2021-07-10 18:45:31 +10:00
David Reid 46238b0ea5 Rename ma_device_callback_proc to ma_device_data_proc. 2021-07-10 18:29:09 +10:00
David Reid 3ab413a866 Rename some functions. 2021-07-10 18:26:19 +10:00
David Reid 47cfe17ebd Add support for custom resampling backends.
Public issue https://github.com/mackron/miniaudio/issues/162
2021-07-10 18:23:55 +10:00
David Reid 3dc522e19b Remove the Speex resampler. 2021-07-10 15:54:52 +10:00
David Reid b2ed5ab028 Merge branch 'dev' into dev-0.11 2021-07-10 12:23:20 +10:00
David Reid dcec55f7b8 OpenSL: Fix a bug with setting of stream types and recording presets. 2021-07-10 12:21:42 +10:00
David Reid 1b38b6901d Update issue template. 2021-07-10 11:58:17 +10:00
David Reid fff5ad353c Merge branch 'dev' into dev-0.11 2021-07-10 11:57:40 +10:00
David Reid b8599906b7 Fix some bugs when playing inlined sounds.
Public issue https://github.com/mackron/miniaudio/issues/340
2021-07-10 11:57:29 +10:00
David Reid 2aa7016c76 Standardize the use of logging. 2021-07-10 11:53:51 +10:00
David Reid 81216af373 Update issue template. 2021-07-08 20:44:50 +10:00
David Reid 49b9fa5109 Merge branch 'master' into dev-0.11 2021-07-06 17:41:05 +10:00
David Reid 90c7eef4f4 Version 0.10.37 2021-07-06 17:40:38 +10:00
David Reid 564d27413c Merge branch 'dev' into dev-0.11 2021-07-05 17:27:11 +10:00
David Reid 486bd7939c Merge pull request #332 from Clownacy/dev
Fix invalid vsnprintf buffer size
2021-07-05 17:20:46 +10:00
Clownacy 72c1a74c86 Fix invalid vsnprintf buffer size
Was performing a `sizeof` on a pointer, which causes a warning to be
generated.
2021-07-04 12:30:44 +01:00
David Reid bc619957ca Remove an unnecessary function. 2021-07-04 20:02:34 +10:00
David Reid 33aae652fe API CHANGE: Update ma_get_standard_channel_map().
This adds a capacity parameter for added safety. It also changes the
order of parameters to make it a bit more consistent.
2021-07-04 19:46:00 +10:00
David Reid 3fad6cad86 API CHANGE: Add channel maps to ma_data_source_get_data_format().
This commit also removes the onGetChannelMap callback from the decoding
backend vtable.
2021-07-04 18:21:36 +10:00
David Reid def3140425 Clean up memory allocation routines. 2021-07-04 17:51:19 +10:00
David Reid 071291b848 API CHANGE: Update rules on realloc and allocation callbacks.
Allocation callbacks must now implement onRealloc() themselves. This is
no longer emulated by miniaudio.
2021-07-04 17:38:16 +10:00
David Reid bfe8358d9f Add ma_decoder_get_data_format().
With this change, ma_decoder should now be fully consistent with other
data sources.
2021-07-04 17:32:24 +10:00
David Reid 3ec737d83d Rearrange some code. 2021-07-04 17:26:01 +10:00
David Reid 29ef420ee1 API CHANGE: Update ma_decoder_read_pcm_frames().
This makes ma_decoder_read_pcm_frames() consistent with other data
sources. It now returns a result code and outputs the number of frames
read via an output parameter.
2021-07-04 17:23:53 +10:00
David Reid 2399359089 API CHANGE: Update ma_decoder_get_length_in_pcm_frames().
This is now consistent with all other data sources:

  * Returns a result code
  * Length is returned via an output parameter
2021-07-04 17:03:46 +10:00
David Reid 619822e1fe API CHANGE: Remove encoding-specific init APIs for decoders.
Use the `encodingFormat` variable in the config instead.
2021-07-04 16:55:54 +10:00
David Reid e327e22458 API CHANGE: Replace ma_resource_format with ma_encoding_format.
This also renames the `resourceFormat` variables used by the encoder to
`encodingFormat`.
2021-07-04 16:52:56 +10:00
David Reid 605429ef2a Update some logging to use the new system. 2021-07-04 16:49:52 +10:00
David Reid 468b412a5e API CHANGE: Remove MA_LOG_LEVEL.
This was used with the old logging level system which is no longer
being used.
2021-07-04 16:42:19 +10:00
David Reid 69773353db API CHANGE: Remove MA_LOG_LEVEL_VERBOSE.
This has been replaced with MA_LOG_LEVEL_DEBUG.
2021-07-04 16:41:19 +10:00
David Reid ba0b70e56e API CHANGE: Remove the old logging callback.
This was specific to devices, but now that miniaudio has expanded it's
no longer useful. The new logging system is more generic and useable by
parts outside of devices and contexts.
2021-07-04 16:40:09 +10:00
David Reid 1a4742e262 API CHANGE: Remove mapping from data sources.
This has proven to be exceptionally un-useful in practice and the
maintenance cost just isn't worth it.
2021-07-04 16:34:47 +10:00
David Reid e679602a56 Abandon the allocation type idea.
This might come back later, but for now this is no longer a thing.
2021-07-04 16:27:45 +10:00
David Reid 2bad69ace2 API CHANGE: Switch data sources over to the new vtable system. 2021-07-04 16:23:08 +10:00
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