Miniaudio

Latest version: v1.59

Safety actively analyzes 626513 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 12 of 17

0.9.5

- Add logging to ma_dlopen() and ma_dlsym().
- Add ma_decoder_get_length_in_pcm_frames().
- Fix a bug with capture on the OpenSL|ES backend.
- Fix a bug with the ALSA backend where a device would not restart after being stopped.

0.9.4

- Add support for C89. With this change, miniaudio should compile clean with GCC/Clang with "-std=c89 -ansi -pedantic" and
Microsoft compilers back to VC6. Other compilers should also work, but have not been tested.

0.9.3

- Fix compiler errors on GCC when compiling with -std=c99.

0.9.2

- Add support for per-context user data.
- Fix a potential bug with context configs.
- Fix some bugs with PulseAudio.

0.9.1

- Fix a bug where the output buffer is not getting zeroed out before calling the data callback. This happens when
the device is running in passthrough mode (not doing any data conversion).
- Fix an issue where the data callback is getting called too frequently on the WASAPI and DirectSound backends.
- Fix error on the UWP build.
- Fix a build error on Apple platforms.

0.9

- Rebranded to "miniaudio". All namespaces have been renamed from "mal" to "ma".
- API CHANGE: ma_device_init() and ma_device_config_init() have changed significantly:
- The device type, device ID and user data pointer have moved from ma_device_init() to the config.
- All variations of ma_device_config_init_*() have been removed in favor of just ma_device_config_init().
- ma_device_config_init() now takes only one parameter which is the device type. All other properties need
to be set on the returned object directly.
- The onDataCallback and onStopCallback members of ma_device_config have been renamed to "dataCallback"
and "stopCallback".
- The ID of the physical device is now split into two: one for the playback device and the other for the
capture device. This is required for full-duplex. These are named "pPlaybackDeviceID" and "pCaptureDeviceID".
- API CHANGE: The data callback has changed. It now uses a unified callback for all device types rather than
being separate for each. It now takes two pointers - one containing input data and the other output data. This
design in required for full-duplex. The return value is now void instead of the number of frames written. The
new callback looks like the following:
void data_callback(ma_device* pDevice, void* pOutput, const void* pInput, ma_uint32 frameCount);
- API CHANGE: Remove the log callback parameter from ma_context_config_init(). With this change,
ma_context_config_init() now takes no parameters and the log callback is set via the structure directly. The
new policy for config initialization is that only mandatory settings are passed in to *_config_init(). The
"onLog" member of ma_context_config has been renamed to "logCallback".
- API CHANGE: Remove ma_device_get_buffer_size_in_bytes().
- API CHANGE: Rename decoding APIs to "pcm_frames" convention.
- mal_decoder_read() -> ma_decoder_read_pcm_frames()
- mal_decoder_seek_to_frame() -> ma_decoder_seek_to_pcm_frame()
- API CHANGE: Rename sine wave reading APIs to f32 convention.
- mal_sine_wave_read() -> ma_sine_wave_read_f32()
- mal_sine_wave_read_ex() -> ma_sine_wave_read_f32_ex()
- API CHANGE: Remove some deprecated APIs
- mal_device_set_recv_callback()
- mal_device_set_send_callback()
- mal_src_set_input_sample_rate()
- mal_src_set_output_sample_rate()
- API CHANGE: Add log level to the log callback. New signature:
- void on_log(ma_context* pContext, ma_device* pDevice, ma_uint32 logLevel, const char* message)
- API CHANGE: Changes to result codes. Constants have changed and unused codes have been removed. If you're
a binding mainainer you will need to update your result code constants.
- API CHANGE: Change the order of the ma_backend enums to priority order. If you are a binding maintainer, you
will need to update.
- API CHANGE: Rename mal_dsp to ma_pcm_converter. All functions have been renamed from mal_dsp_*() to
ma_pcm_converter_*(). All structures have been renamed from mal_dsp* to ma_pcm_converter*.
- API CHANGE: Reorder parameters of ma_decoder_read_pcm_frames() to be consistent with the new parameter order scheme.
- The resampling algorithm has been changed from sinc to linear. The rationale for this is that the sinc implementation
is too inefficient right now. This will hopefully be improved at a later date.
- Device initialization will no longer fall back to shared mode if exclusive mode is requested but is unusable.
With this change, if you request an device in exclusive mode, but exclusive mode is not supported, it will not
automatically fall back to shared mode. The client will need to reinitialize the device in shared mode if that's
what they want.
- Add ring buffer API. This is ma_rb and ma_pcm_rb, the difference being that ma_rb operates on bytes and
ma_pcm_rb operates on PCM frames.
- Add Web Audio backend. This is used when compiling with Emscripten. The SDL backend, which was previously
used for web support, will be removed in a future version.
- Add AAudio backend (Android Audio). This is the new priority backend for Android. Support for AAudio starts
with Android 8. OpenSL|ES is used as a fallback for older versions of Android.
- Remove OpenAL and SDL backends.
- Fix a possible deadlock when rapidly stopping the device after it has started.
- Update documentation.
- Change licensing to a choice of public domain _or_ MIT-0 (No Attribution).

Page 12 of 17

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.