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 de captura y reproducción de audio multiplataforma. miniaudio, escrito en C y distribuido en el dominio público.
miniaudio funciona en las principales plataformas de escritorio y móviles, incluidas Windows, macOS, Linux, BSD, iOS, Android y Web (a través de Emscripten) sin dependencias de terceros.
La biblioteca tiene una API simple, flexible y modular con decodificadores incorporados (WAV, MP3 y FLAC), procesamiento avanzado de mezcla y efectos (incluido 3D), gestión de recursos, filtros, conversión de datos y mucho más.

Cambios importantes:

  • A partir de la versión 0.12, miniaudio se moverá a un par separado de archivos .c/h, abandonando el archivo de encabezado único. Para prepararnos para esto, se ha agregado un archivo miniaudio.c al repositorio. Por el momento es solo un envoltorio alrededor de miniaudio.h y MINIAUDIO_IMPLEMENTATION. Nada ha cambiado en miniaudio.h, sin embargo, cuando salga la versión 0.12, necesitarás usar miniaudio.c para la compilación. Se recomienda comenzar a migrar desde el uso de MINIAUDIO_IMPLEMENTATION al uso de miniaudio.c. Si desea continuar construyendo su proyecto como una única unidad de compilación, puede #include "miniaudio.c". Este método será compatible con la versión 0.12 y posteriores.
  • Los archivos miniaudio_libvorbis.h y miniaudio_libopus.h en el directorio extras han quedado obsoletos. Ahora están divididos en archivos .c y .h separados en el directorio extras/decoders. Los archivos antiguos aún existen por motivos de compatibilidad, pero será necesario actualizar a las nuevas versiones. La transición debería ser trivial.
  • Se agregaron las opciones MA_SOUND_FLAG_LOOPING y MA_RESOURCE_MANAGER_DATA_SOURCE_FLAG_LOOPING. Se pueden utilizar para inicializar sonidos y fuentes de datos basadas en recursos para que se reproduzcan en bucle de forma predeterminada. Esta es la forma recomendada de habilitar el bucle para subprocesos. Las opciones de configuración isLooping en ma_sound_config y ma_resource_manager_data_source_config han quedado obsoletas. Si los está utilizando, debe actualizar a las nuevas opciones; de lo contrario, obtendrá errores del compilador al actualizar a una versión futura.
  • 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 no existe el concepto de "fin" en un búfer de anillo, lo que hacía que el código del resultado no fuera claro. Además, estas funciones podrían devolver algo distinto de MA_SUCCESS incluso si la operación se completó exitosamente, lo que aumentó la confusión. La forma correcta de comprobar si todavía hay espacio en el búfer de anillo es mirar el contador de cuadros devuelto por las funciones rb_acquire_read/write().
  • Se ha cambiado la implementación de la fuente de datos ma_pcm_rb para que la salida se llene con silencio si no hay suficientes datos en el búfer de anillo para cumplir con la solicitud. Esto significa que ma_data_source_read_pcm_frames() para ma_pcm_rb ya no debería devolver una cantidad de cuadros menor a la solicitada y, por lo tanto, nunca devolverá MA_AT_END, lo que no tiene sentido para un búfer circular ya que no tiene el concepto de final. Este cambio debería hacer que sea mucho más fácil utilizar un buffer de anillo 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() para que devuelva un valor redondeado al entero más cercano.
  • Si falla la inicialización del decodificador, ahora se devuelve el primer código de error encontrado, en lugar de MA_NO_BACKEND independientemente del error, como era el caso anteriormente.
  • Se agregó la función ma_device_id_equal() para comparar identificaciones de dispositivos.
  • Se agregó soporte para MA_NO_RUNTIME_LINKING al backend de AAudio.
  • Documentación actualizada.
  • Se han corregido los errores detectados.

Fuente: linux.org.ru

Añadir un comentario