Sobre el proyecto

Symphonia es una biblioteca de decodificación de audio y demuxing de medios escrita en Rust puro. Está diseñada para aplicaciones que necesitan leer formatos de contenedores multimedia comunes, extraer metadatos y etiquetas, y decodificar flujos de audio sin depender de bibliotecas en C. Los formatos de contenedor compatibles incluyen AIFF, CAF, ISO/MP4, MKV/WebM, OGG y Wave. Los códecs de audio compatibles incluyen AAC-LC, ADPCM, ALAC, FLAC, MP1, MP2, MP3, PCM y Vorbis. Algunos códecs y formatos aún están en desarrollo, como Opus, WavPack y variantes de HE-AAC. El proyecto utiliza crates separados para formatos y códecs individuales, y las características opcionales controlan qué componentes se compilan. Por defecto, solo se habilitan códecs y formatos abiertos libres de regalías, pero una característica `all` puede habilitar todo. El soporte de metadatos y etiquetas cubre APEv1, APEv2, ID3v1, ID3v2, ISO/MP4, RIFF y comentarios Vorbis en FLAC y OGG. La biblioteca también proporciona primitivas de audio básicas para manipular datos de audio de manera eficiente. Symphonia enfatiza la seguridad y la corrección. Está escrita en 100% Rust seguro, busca prevenir ataques de denegación de servicio y se prueba con fuzzing. El proyecto también proporciona herramientas de depuración: `symphonia-play` para sondear, decodificar, validar y reproducir flujos de medios, y `symphonia-check` para validar la salida decodificada contra otros decodificadores. La biblioteca es modular y permite el registro de demuxers y decodificadores de terceros. Los adaptadores de terceros existentes incluyen `symphonia-adapter-fdk-aac` para variantes de AAC mediante libfdk-aac y `symphonia-adapter-libopus` para Opus mediante libopus. Symphonia está licenciada bajo MPL v2.0. La versión mínima de Rust compatible para las versiones 0.6.x es 1.85. El autor principal es Philip Deljanov, y el proyecto acepta contribuciones.