Sobre o projeto

libavif é uma implementação portátil em C do AV1 Image File Format (AVIF), concebida para ser fácil de integrar noutros projetos. Suporta a codificação e descodificação de todos os formatos YUV e profundidades de bits suportados pelo AV1, incluindo alfa. A par da biblioteca, inclui ferramentas de linha de comandos: avifenc para codificação e avifdec para descodificação. Utilização básica na linha de comandos: avifenc -q 75 input.[jpg|png|y4m] output.avif avifdec output.avif decoded.png Execute avifenc --help para a lista completa de opções. Exemplos de utilização da API encontram-se no diretório examples; ativar a opção CMake AVIF_BUILD_EXAMPLES compila-os e executa-os. A instalação está disponível através de gestores de pacotes comuns: vcpkg no Windows, Homebrew ou MacPorts no macOS, apt em Linux baseado em Debian, yum em Linux baseado em Red Hat, e pacman no MSYS2 UCRT64. Os binários oficiais para Windows são publicados na página de releases. Recomenda-se a utilização de versões etiquetadas em vez do ramo main. A compilação requer CMake. As dependências são controladas por flags CMake como AVIF_CODEC_AOM e AVIF_LIBYUV, que aceitam OFF, SYSTEM ou LOCAL. Nenhum codec AV1 está ativado por predefinição; é necessário selecionar pelo menos um, escolhendo entre libaom (codificador e descodificador), dav1d (descodificador), libgav1 (descodificador), rav1e (codificador) e SVT-AV1 (codificador). O Libyuv é opcional mas fortemente recomendado para conversões de espaço de cor mais rápidas e usa SYSTEM por predefinição. Os testes podem ser compilados com AVIF_BUILD_TESTS; os testes baseados em GoogleTest requerem AVIF_GTEST, e os testes de fuzzing usam fuzztest. A cobertura de código está disponível através de AVIF_ENABLE_COVERAGE e do alvo avif_coverage com clang e LLVM instalados. Exemplos de linhas de comando de compilação abrangem a ligação a dependências instaladas e a compilação de tudo de raiz. A biblioteca está escrita em C99, com a maioria dos testes em C++14. A formatação usa clang-format para os ficheiros de código-fonte e cmake-format para os ficheiros CMake. O projeto é distribuído sob a Licença BSD.