These decoders have been moved into their own subfolders under the
extras/decoders folder:
extras/decoders/libvorbis
extras/decoders/libopus
In addition to being relocated, they have also been split into separate
.c/h pairs. They now work like a more conventional library. The
implementation of these libraries have also been decoupled from the
miniaudio implementation which means they depend only on the header
section of miniaudio.h now.
With this change the custom_decoder and custom_decoder_engine examples
have been updated. To compile these you now need to link in the
miniaudio_libvorbis.c and miniaudio_libopus.c files via your build
tool. For your own code, you can still include the .c files directly
into your code if you want to compile as a single translation unit.
This is useful because MA_ASSERT is only defined in the implementation
section of miniaudio.h which can cause issues when people copy/paste
the code and use it in a file that does not have visibility of the
implementation.
Note that there are still more references to implementation-defined
macros, but these have been moved to the public section in the dev-0.12
branch so I'm not bothering to change those just yet.
Public issue https://github.com/mackron/miniaudio/issues/787
Unlocked notification fires on emscripten upon successful resume of
audio context attached to a device. This occurs only once per device
and it happens after the browser has received the input event
necessary to begin playing audio on most webpages. This is due
to autoplay rules.
It is recommended to wait until this event is fired to start a
'main game loop' on the web.
The SSE2 code paths for mono expansion introduced in Version 0.11.15
mixed up the parameters of `_mm_shuffle_ps()`, which in turn caused
adjacent PCM frames to be swapped in the channel-expanded output.
With this commit, custom backends can now be implemented as
self-contained modules that can easily be plugged in and mixed and
matched depending on a programs requirements. The order in which
custom backends are specified in the context config determine their
priority.
This commit updates the custom_backend example by moving the SDL
code out into its own file in "extras/backends/sdl". The example will
now just include the SDL code files like normal. This represents a more
realistic scenario.
The Cosmopolitan-specific windows.h stuff has now been moved to an
external file in the extras folder:
extras/cosmopolitan/include/windows.h
To compile with Cosmpolitan it is now required that you add the above
path to the command line when compiling.