miniaudio 0.11.22

miniaudio 0.11.22

El 24 de febrero, después de más de un año de desarrollo, se lanzó la versión 0.11.22 de la biblioteca multiplataforma para la captura y reproducción de sonido. miniaudio, escrita en C y distribuida como dominio público.
miniaudio funciona en todas las principales plataformas de escritorio y móviles, incluyendo Windows, macOS, Linux, BSD, iOS, Android y Web (a través de Emscripten) sin dependencias externas.
La biblioteca cuenta con una API simple, flexible y modular con decodificadores incorporados (WAV, MP3 y FLAC), mezcla avanzada y procesamiento de efectos (incluido 3D), gestión de recursos, filtros, conversión de datos y mucho más.

Principales cambios:

  • A partir de la versión 0.12, miniaudio pasará a tener un par de archivos .c/.h separados, abandonando el archivo de encabezado único. Para prepararse para esto, se ha añadido un archivo miniaudio.c al repositorio. Actualmente, es simplemente un envoltorio alrededor de miniaudio.h y MINIAUDIO_IMPLEMENTATION. No se han realizado cambios en miniaudio.h, sin embargo, cuando se lance la versión 0.12, será necesario utilizar miniaudio.c para la compilación. Se recomienda comenzar la transición del uso de MINIAUDIO_IMPLEMENTATION al uso de miniaudio.c. Si desea seguir compilando su proyecto como una única unidad de compilación, puede hacer #include "miniaudio.c". Este método se seguirá soportando en la versión 0.12 y más allá.
  • Los archivos miniaudio_libvorbis.h y miniaudio_libopus.h en el directorio extras se han declarado obsoletos. Ahora están separados en archivos individuales .c y .h en el directorio extras/decoders. Los archivos antiguos aún existen por compatibilidad, pero deberá cambiar a las nuevas versiones. La transición debe ser trivial.
  • Se han añadido las opciones MA_SOUND_FLAG_LOOPING y MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_LOOPING. Estas se pueden usar para inicializar sonidos y fuentes de datos administradas para el bucle por defecto. Esta es la forma recomendada de habilitar el bucle para los flujos. Las opciones de configuración isLooping en ma_sound_config y ma_resource_manager_data_source_config se han declarado obsoletas. Si las está utilizando, debe cambiar a las nuevas opciones, de lo contrario, al actualizar a futuras versiones, recibirá errores de compilación.
  • ma_rb_commit_read(), ma_rb_commit_write(), ma_pcm_rb_commit_read() y ma_pcm_rb_commit_write() ya no devuelven MA_AT_END. La razón de este cambio es que en un búfer circular no existe el concepto de 'fin', lo que hacía que el código de resultado fuese confuso. Además, estas funciones pueden devolver algo diferente de MA_SUCCESS, incluso si la operación se completó con éxito, lo que generaba más confusión. La manera correcta de verificar si aún hay espacio en el búfer circular es observar el contador de cuadros devuelto por las funciones rb_acquire_read/write().
  • La implementación de la fuente de datos ma_pcm_rb se ha modificado de manera que la salida se rellena con silencio si hay insuficientes datos en el búfer circular para cumplir con la solicitud. Esto significa que ma_data_source_read_pcm_frames() para ma_pcm_rb ya no debe devolver una cantidad de cuadros menor que la solicitada, y por lo tanto nunca devolverá MA_AT_END, lo cual no tiene sentido para un búfer circular, ya que no tiene un concepto de fin. Este cambio debería simplificar considerablemente el uso del búfer circular como fuente de datos para ma_sound.
  • Se ha realizado un pequeño cambio en la función ma_calculate_buffer_size_in_milliseconds_from_frames() resultando en que devuelve un valor redondeado al entero más cercano.
  • En caso de una inicialización fallida del decodificador, ahora se devuelve el primer código de error encontrado, en lugar de MA_NO_BACKEND independientemente del error, como era anteriormente.
  • Se ha agregado la función ma_device_id_equal() para comparar identificadores de dispositivos.
  • Se ha agregado soporte para MA_NO_RUNTIME_LINKING en el backend AAudio.
  • Documentación actualizada.
  • Se han corregido errores encontrados.

Fuente: linux.org.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster