Sobre el proyecto

libavif es una implementación portable en C del Formato de Archivo de Imagen AV1 (AVIF), pensada para integrarse fácilmente en otros proyectos. Admite la codificación y decodificación de todos los formatos YUV y profundidades de bits compatibles con AV1, incluido el canal alfa. Junto con la biblioteca, incluye herramientas de línea de comandos: avifenc para codificar y avifdec para decodificar. Uso básico de la línea de comandos: avifenc -q 75 input.[jpg|png|y4m] output.avif avifdec output.avif decoded.png Ejecute avifenc --help para ver la lista completa de opciones. Los ejemplos de uso de la API se encuentran en el directorio examples; habilitar la opción de CMake AVIF_BUILD_EXAMPLES los compila y ejecuta. La instalación está disponible a través de gestores de paquetes comunes: vcpkg en Windows, Homebrew o MacPorts en macOS, apt en Linux basado en Debian, yum en Linux basado en Red Hat, y pacman en MSYS2 UCRT64. Los binarios oficiales para Windows se publican en la página de releases. Se recomiendan las versiones etiquetadas en lugar de la rama main. La compilación requiere CMake. Las dependencias se controlan mediante indicadores de CMake como AVIF_CODEC_AOM y AVIF_LIBYUV, que aceptan OFF, SYSTEM o LOCAL. No hay ningún códec AV1 habilitado de forma predeterminada; se debe seleccionar al menos uno, eligiendo entre libaom (codificador y decodificador), dav1d (decodificador), libgav1 (decodificador), rav1e (codificador) y SVT-AV1 (codificador). Libyuv es opcional pero muy recomendable para conversiones de espacio de color más rápidas, y su valor predeterminado es SYSTEM. Las pruebas se pueden compilar con AVIF_BUILD_TESTS; las pruebas basadas en GoogleTest requieren AVIF_GTEST, y las pruebas de fuzzing usan fuzztest. La cobertura de código está disponible mediante AVIF_ENABLE_COVERAGE y el objetivo avif_coverage con clang y LLVM instalados. Las líneas de comando de compilación de ejemplo cubren la vinculación con dependencias instaladas y la compilación de todo desde cero. La biblioteca está escrita en C99, con la mayoría de las pruebas en C++14. El formateo utiliza clang-format para los archivos fuente y cmake-format para los archivos de CMake. El proyecto se publica bajo la Licencia BSD.