- Add a new flag for nodes called MA_NODE_FLAG_SILENT_OUTPUT which tells miniaudio that the
output of the node should always be treated as silence. This gives miniaudio an optimization
opportunity by skipping mixing of those nodes. Useful for special nodes that need to have
their outputs wired up to the graph so they're processed, but don't want the output to
contribute to the final mix.
- Add support for fixed sized callbacks. With this change, the data callback will be fired with
a consistent frame count based on the periodSizeInFrames or periodSizeInMilliseconds config
variable (depending on which one is used). If the period size is not specified, the backend's
internal period size will be used. Under the hood this uses an intermediary buffer which
introduces a small inefficiency. To avoid this you can use the `noFixedSizedCallback` config
variable and set it to true. This will make the callback equivalent to the way it was before
this change and will avoid the intermediary buffer, but the data callback could get fired with
an inconsistent frame count which might cause problems where certain operations need to operate
on fixed sized chunks.
- Change the logging system to always process debug log messages. This is useful for allowing
debug and test builds of applications to output debug information that can later be passed on
for debugging in miniaudio. To filter out these messages, just filter against the log level
which will be MA_LOG_LEVEL_DEBUG.
- Change the wav decoder to pick the closest format to the source file by default if no preferred
format is specified.
- Fix a bug where ma_device_get_info() and ma_device_get_name() return an error.
- Fix a bug where ma_data_source_read_pcm_frames() can return MA_AT_END even when some data has
been read. MA_AT_END should only be returned when nothing has been read.
- PulseAudio: Fix some bugs where starting and stopping a device can result in a deadlock.