Commit Graph

412 Commits

Author SHA1 Message Date
David Reid cde21de5c5 Fix a bug introduced in an earlier commit. 2021-06-09 17:18:02 +10:00
David Reid 59565c03ad Fix a subtle memory leak. 2021-06-08 21:21:20 +10:00
David Reid 1bb4bc690e Remove some old code. 2021-06-08 21:14:30 +10:00
David Reid 70d74c9d61 Fix a bug where sometimes a notification never gets signalled. 2021-06-08 21:05:21 +10:00
David Reid 5c26709fa7 Fix some subtle memory leaks with async decoding.
This was happening specifically when uninitializing a data buffer while
it's still loading asynchronously.
2021-06-08 20:14:18 +10:00
David Reid f0864a1c93 Fix an incorrect assert. 2021-06-07 19:39:11 +10:00
David Reid 70add6c146 Fix an infinite loop when decoding via the resource manager. 2021-06-07 18:45:52 +10:00
David Reid 24495afeaa Enable experimental features on the engine test. 2021-06-06 07:50:02 +10:00
David Reid b2cabfbe8d Properly respect the WAIT_INIT flag. 2021-06-06 07:16:09 +10:00
David Reid 7d00be85d7 Finish refactoring work for resource managed data buffers.
This properly decouples data buffer nodes from data buffers and should
address some subtle bugs, especially with uninitializing data buffers
while they're still loading.

This also cleans up the decoding code, in particular by avoiding some
duplicate code between the synchronous and asynchronous decoding paths.
2021-06-05 18:47:35 +10:00
David Reid c1021acd83 Fix compilation error. 2021-06-02 18:20:31 +10:00
David Reid f0a8ea3a76 Merge branch 'gh-301' into dev 2021-06-02 17:28:13 +10:00
David Reid 3c4b0d2e71 Code cleanup in preparation for some refactoring. 2021-05-30 12:39:59 +10:00
David Reid d5c27dde7a Fix a bug due to a bad use of an atomic. 2021-05-30 08:21:52 +10:00
David Reid 328f84c267 Fix some comments. 2021-05-29 20:10:04 +10:00
David Reid 2257ce7b56 Standardize and simplify some APIs. 2021-05-29 18:16:34 +10:00
David Reid 7d0106346b Fix a subtle atomicity bug in the engine. 2021-05-29 15:27:30 +10:00
David Reid c47fcebc85 Fix an infinite loop in the resource manager. 2021-05-29 08:38:01 +10:00
David Reid 8f40d5cd87 Fix an atomicity bug. 2021-05-28 18:06:53 +10:00
David Reid 9c0d285525 Fix a memory leak. 2021-05-27 19:20:57 +10:00
David Reid 2a656de4a2 Remove some unused variables. 2021-05-27 19:17:22 +10:00
David Reid e8a5404946 Fix a bug due to leftover code from a refactor. 2021-05-27 19:04:39 +10:00
David Reid 0e1187c140 Prep work for some future work. 2021-05-26 18:58:29 +10:00
David Reid 9930fbaa34 Minor improvement to the resource manager.
This change affects cases where a sound is loaded while the same sound
is still in the process of being decoded. It makes it so the ASYNC flag
will only wait for the underlying data buffer to be initialized,
whereas the lack of ASYNC flag will result in it waiting for the entire
sound to be fully decoded.
2021-05-26 18:33:59 +10:00
David Reid 7814d25e76 Performance improvement to resource manager. 2021-05-26 18:02:32 +10:00
David Reid 7c238ac3ec Fix a bug when initializing audio buffers for managed resources. 2021-05-26 17:45:18 +10:00
David Reid b4844bc629 Fix C++ build. 2021-05-26 17:34:59 +10:00
David Reid 9efc8507f6 Improve support for asynchronous decoding of sounds of unknown length. 2021-05-25 18:28:13 +10:00
David Reid acad0292c6 Add a comment. 2021-05-22 19:10:08 +10:00
David Reid e60c79b061 Another experimental optimization. 2021-05-22 18:20:40 +10:00
David Reid a641a80b85 More optimization experiments. 2021-05-22 18:00:29 +10:00
David Reid 1a919c0590 Cleanup to previous commit. 2021-05-22 17:54:26 +10:00
David Reid 0724a58e12 Experimental optimization to spatialization. 2021-05-22 17:51:33 +10:00
David Reid 1eaa29f37a Remove an incorrect assert. 2021-05-22 15:21:06 +10:00
David Reid 2d3fdc526d Add ma_sound_get_data_source(). 2021-05-16 16:11:02 +10:00
David Reid ccd72f5714 Update example. 2021-05-16 16:10:52 +10:00
David Reid 2558bbbea4 Fix a crash when passing in a NULL engine config. 2021-05-16 16:05:08 +10:00
David Reid c6b44df8f4 Add support for running custom code on thread entry and exit.
To use this, define `MA_ON_THREAD_ENTRY` and `MA_ON_THREAD_EXIT` before
the implementation of miniaudio.

Public issue https://github.com/mackron/miniaudio/issues/301
2021-05-14 18:09:49 +10:00
David Reid dba88558d1 Fix example code in documentation. 2021-05-10 21:20:42 +10:00
David Reid 11acb0caa5 Prep work in preparation for some changes to data sources.
Public issue https://github.com/mackron/miniaudio/issues/290
2021-05-03 15:35:07 +10:00
David Reid 1897c59993 Add support for initializing a sound from another.
This only works for non-streaming sounds whose data source was created
via the resource manager.
2021-05-03 12:08:24 +10:00
David Reid 2f56829b45 Fix an error due to inconsistent types. 2021-04-09 17:52:53 +10:00
David Reid 56beafcfe9 Fix a possible crash in the engine when loading async sounds.
This crash can happen if the decoder reads more data than it reports
from ma_decoder_get_length_in_pcm_frames().
2021-04-06 20:45:54 +10:00
David Reid 56a5ecbdbd Fix a subtle bug in gain smoothing. 2021-04-05 19:34:11 +10:00
David Reid c300aa9f72 Experimental fix for an issue with gain smoothing. 2021-04-05 19:19:08 +10:00
David Reid 1604512e89 Make spatialization gain smoothing configurable at the engine level. 2021-04-05 18:16:08 +10:00
David Reid 9097bb862b Minor tweak to default gain smoothing time for spatialization. 2021-04-05 17:58:26 +10:00
David Reid 602161b69b Fix a crackling bug with spatialization.
This crackling was happening due to abrupt volume transitions as the
gain changes for each channel as sounds move around the world. This
change smooths out these transitions using linear interpolation.
2021-04-05 16:07:09 +10:00
David Reid 608e839c6a Fix a warning. 2021-04-05 13:21:02 +10:00
David Reid 8a1c72f2c3 Fix a pitching bug with the engine.
This is happening when the engine's sample rate differs from the data
source's sample rate.
2021-04-05 12:37:22 +10:00