Commit Graph

4647 Commits

Author SHA1 Message Date
David Reid af9c82f3dc API CHANGE: Simplify ma_resource_manager_data_buffer_init_copy()
This removes the ma_resource_manager parameter since it can just be
derived from the data source.
2026-04-29 13:30:26 +10:00
David Reid 1129061e19 Update reverb and vocoder examples. 2026-04-29 13:08:50 +10:00
David Reid ab15b24065 API CHANGE: Remove the flags member from ma_data_source_vtable. 2026-04-29 11:30:27 +10:00
David Reid fcb48c585a Remove an unused data source flag.
This removes MA_DATA_SOURCE_SELF_MANAGED_RANGE_AND_LOOP_POINT which is
no longer used by any data sources.
2026-04-29 11:23:35 +10:00
David Reid 265d250ec2 Simplify some resource manager code.
These changes are mostly for setting up support for copyable streams.
2026-04-29 11:10:20 +10:00
David Reid 50fcc2f41f Make ma_sound_init_copy() more generic.
The copying of the data source is now done generically through the new
data source copying system rather than being restricted to just the
resource manager.
2026-04-29 10:51:27 +10:00
David Reid f223d3e315 Add some new data source APIs.
ma_data_source_get_vtable()
  ma_data_source_init_copy()
2026-04-29 10:46:38 +10:00
David Reid 1403dfcdc9 Add copy callback for the ma_resource_manager_data_buffer data source. 2026-04-29 07:42:42 +10:00
David Reid a9043ba26d API CHANGE: Add an onCopy callback to ma_data_source_vtable.
This is used for making a copy of a data source.

Data sources are not required to support copying, in which case this
callback can be set to NULL, or it can return MA_NOT_IMPLEMENTED.

This commit just sets up the infrastructure. As of this commit, no data
sources actually implement this, however future commits will be
introducing support in stages.
2026-04-29 07:33:50 +10:00
David Reid 137298734e API CHANGE: Add an onSizeof callback to ma_data_source_vtable.
This should return the size of the implementations struct. For example,
`ma_decoder` would return `sizeof(ma_decoder)`.

This is in preparation for future work to support copying data sources.
2026-04-29 06:54:57 +10:00
David Reid 2cb46c7abd Whitespace. 2026-04-28 19:24:46 +10:00
David Reid 70d52e5eaa Simplify ma_allocation_callbacks_init_copy().
This returns the ma_allocation_callbacks object instead of a result
code.
2026-04-28 19:21:30 +10:00
David Reid d7802c3b14 API CHANGE: Remove decoding backend file initialization specializations.
This removes the onInitFile and onInitFileW callbacks from
ma_decoding_backend_vtable. This means decoding backends can no longer
implement a specialized initialization routine for loading from a file.
What this does is enforces all file IO to go through the same code path,
that being the `ma_decoder` and `ma_vfs` infrastructure. It also
simplifies the backend vtable.

The ability to initialize from memory (the onInitMemory callback) is
still available and there are not plans to remove this.
2026-04-28 19:07:23 +10:00
David Reid a92139b686 Enable libvorbis and libopus decoding in the deviceio test. 2026-04-28 19:00:24 +10:00
David Reid 77074f0597 API CHANGE: Add an onUninit callback to ma_data_source_vtable.
This callback to execute the data source's uninitialization routine.
2026-04-28 17:27:31 +10:00
David Reid 3e729e4b28 Make some APIs public.
This makes the following APIs public:

  ma_allocation_callbacks_init_default()
  ma_allocation_callbacks_init_copy()

This is required to allow things like custom data sources and backends
to be able to track allocation callbacks if necessary.
2026-04-28 17:25:23 +10:00
David Reid b5732f515a API CHANGE: Update ma_noise_uninit().
This removes the allocations callback parameter. It is no managed
internally in preparation for some changes to data source management.
2026-04-28 17:23:16 +10:00
David Reid 52f22d6597 API CHANGE: Update ma_node_graph_uninit().
This removes the allocation callbacks parameter. These are now managed
internally. This is in preparation for some future changes to data
source management.
2026-04-28 17:20:31 +10:00
David Reid 44323c9cae API CHANGE: Rename data source init and uninit APIs.
These have been renamed to the following:

  ma_data_source_init   > ma_data_source_base_init
  ma_data_source_uninit > ma_data_source_base_uninit

The new naming scheme makes it clearer that you're initializing the
base data source structure.
2026-04-28 16:24:22 +10:00
David Reid a267a4ca65 Merge branch 'dev' into dev-0.12 2026-04-26 18:56:20 +10:00
David Reid 09615e6bc1 Update c89atomic. 2026-04-26 18:56:05 +10:00
David Reid 3841d2858d Merge branch 'dev' into dev-0.12 2026-04-26 11:55:23 +10:00
David Reid 12a83fcf54 Update dr_wav. 2026-04-26 11:55:12 +10:00
David Reid dad1060489 PipeWire: Clean up to runtime linking.
This will cleanly fail when a required entry point is unavailable.

Public issue https://github.com/mackron/miniaudio/issues/1104
2026-04-26 09:18:26 +10:00
David Reid 72a6203849 Fix build errors with MA_NO_RUNTIME_LINKING. 2026-04-26 09:12:46 +10:00
David Reid 4635de9916 Merge branch 'dev' into dev-0.12 2026-04-26 08:33:38 +10:00
David Reid 2986173662 Emscripten: Fix an error with ALLOW_MEMORY_GROWTH.
Public issue https://github.com/mackron/miniaudio/issues/1114
2026-04-26 08:32:28 +10:00
David Reid 1cd746c5a6 Fix Emscripten test. 2026-04-26 08:23:13 +10:00
David Reid 07c4ae67cf Merge branch 'dev' into dev-0.12 2026-04-26 08:22:51 +10:00
Echo J dcfc24c100 Emscripten: Cast pointer arguments to pointer-sized integers
For some reason, 64-bit pointer arguments are casted to Numbers
in Emscripten's type handling (which causes conversion errors when
passing them back to native code)
2026-04-26 08:11:16 +10:00
David Reid 7533c9d341 Update build instructions for Emscripten test. 2026-04-26 08:10:43 +10:00
Yuri Khrustalev 56ffd77769 Make ma_android_sdk_version static to fix -Wmissing-prototypes. 2026-04-26 07:22:41 +10:00
amaldika 55f16e62f6 Support to build for arm64EC configuration on MSVC. 2026-04-26 07:21:35 +10:00
David Reid 5d8e72d54f Merge branch 'dev' into dev-0.12 2026-04-26 07:15:52 +10:00
David Reid 1df46ae9a0 Update dr_libs. 2026-04-26 07:08:13 +10:00
David Reid c64330dbd9 Clean up some stale comments. 2026-04-20 06:05:31 +10:00
David Reid a513b522ab Dreamcast: Increase lower bound period size from 1024 to 1536.
Testing on real hardware is suggesting that 1024 is too small to be
practical.
2026-04-06 12:03:00 +10:00
David Reid b91098312d Minor chibicc fix.
This commit does not make miniaudio compilable with chibicc. Additional
work is required in c89atomic which will come later.
2026-03-15 08:55:36 +10:00
David Reid d50152e382 Update dr_mp3. 2026-03-15 08:50:40 +10:00
David Reid d654ce32a7 Merge branch 'dev' into dev-0.12 2026-03-13 11:23:26 +10:00
David Reid 12bacf1186 Revert "Enforce a read callback to be specified for decoders."
This reverts commit 52d09d3688.
2026-03-13 11:22:40 +10:00
David Reid 968a8045c0 Merge branch 'dev' into dev-0.12 2026-03-12 06:27:02 +10:00
David Reid 117366df9a Fix an incorrect check for the decoding seek callback. 2026-03-12 06:24:04 +10:00
David Reid ed950dc688 Merge branch 'dev' into dev-0.12 2026-03-12 06:22:48 +10:00
David Reid 0041150de0 Update change history. 2026-03-12 06:16:57 +10:00
David Reid 52d09d3688 Enforce a read callback to be specified for decoders. 2026-03-12 06:15:27 +10:00
David Reid 6922366bb1 Don't crash when a decoding seek callback is unavailable. 2026-03-12 06:14:00 +10:00
David Reid 4c082afe71 Clarify usage of the decoder read callback. 2026-03-12 06:08:27 +10:00
David Reid a6cb08579e Add sizeof profiling test. 2026-03-05 17:58:09 +10:00
David Reid deda7e500f Alignment. 2026-03-05 17:50:34 +10:00