
Biblioteca C para codificação e decodificação de vídeo VP8/VP9, com foco em correção de segurança para CVE-2023-5217.
README - 23 de Março de 2015
Bem-vindo ao SDK dos Codecs WebM VP8/VP9!
COMPILANDO AS APLICAÇÕES/BIBLIOTECAS: O sistema de compilação utilizado é semelhante ao autotools. A compilação geralmente consiste em "configurar" com as opções de compilação desejadas e, em seguida, usar o GNU make para compilar a aplicação.
* Todos os alvos x86 exigem que o montador Yasm[1] esteja instalado.
* Todas as compilações Windows exigem que o Cygwin[2] esteja instalado.
* A compilação da documentação requer o Doxygen[3]. Se você não tiver este pacote, a opção install-docs será desabilitada.
* O download dos dados para os testes unitários requer curl[4] e sha1sum. O sha1sum é fornecido pelo GNU coreutils, instalado por padrão em muitas plataformas *nix, assim como MinGW e Cygwin. Se o coreutils não estiver disponível, uma versão compatível do sha1sum pode ser compilada a partir do código fonte[5]. Estes requisitos são opcionais se não estiver executando os testes unitários.
[1]: http://www.tortall.net/projects/yasm
[2]: http://www.cygwin.com
[3]: http://www.doxygen.org
[4]: http://curl.haxx.se
[5]: http://www.microbrew.org/tools/md5sha1sum/
2. Compilações fora da árvore Compilações fora da árvore são um método suportado de compilação da aplicação. Para uma compilação fora da árvore, a árvore de código fonte é mantida separada dos arquivos objeto produzidos durante a compilação. Por exemplo:
$ mkdir build
$ cd build
$ ../libvpx/configure <options>
$ make
3. Opções de configuração O script 'configure' suporta várias opções. A opção --help pode ser usada para obter uma lista das opções suportadas: $ ../libvpx/configure --help
armv6-darwin-gcc
armv6-linux-rvct
armv6-linux-gcc
armv6-none-rvct
arm64-darwin-gcc
armv7-android-gcc
armv7-darwin-gcc
armv7-linux-rvct
armv7-linux-gcc
armv7-none-rvct
armv7-win32-vs11
armv7-win32-vs12
armv7s-darwin-gcc
mips32-linux-gcc
mips64-linux-gcc
ppc32-darwin8-gcc
ppc32-darwin9-gcc
ppc32-linux-gcc
ppc64-darwin8-gcc
ppc64-darwin9-gcc
ppc64-linux-gcc
sparc-solaris-gcc
x86-android-gcc
x86-darwin8-gcc
x86-darwin8-icc
x86-darwin9-gcc
x86-darwin9-icc
x86-darwin10-gcc
x86-darwin11-gcc
x86-darwin12-gcc
x86-darwin13-gcc
x86-darwin14-gcc
x86-iphonesimulator-gcc
x86-linux-gcc
x86-linux-icc
x86-os2-gcc
x86-solaris-gcc
x86-win32-gcc
x86-win32-vs7
x86-win32-vs8
x86-win32-vs9
x86-win32-vs10
x86-win32-vs11
x86-win32-vs12
x86_64-darwin9-gcc
x86_64-darwin10-gcc
x86_64-darwin11-gcc
x86_64-darwin12-gcc
x86_64-darwin13-gcc
x86_64-darwin14-gcc
x86_64-iphonesimulator-gcc
x86_64-linux-gcc
x86_64-linux-icc
x86_64-solaris-gcc
x86_64-win64-gcc
x86_64-win64-vs8
x86_64-win64-vs9
x86_64-win64-vs10
x86_64-win64-vs11
x86_64-win64-vs12
universal-darwin8-gcc
universal-darwin9-gcc
universal-darwin10-gcc
universal-darwin11-gcc
universal-darwin12-gcc
universal-darwin13-gcc
universal-darwin14-gcc
generic-gnu
O alvo generic-gnu, em conjunto com a variável de ambiente CROSS, pode ser usado para compilar cruzadamente arquiteturas que não estão explicitamente listadas, se a cadeia de ferramentas for uma cadeia de ferramentas GNU cruzada (gcc/binutils). Outras cadeias de ferramentas POSIX provavelmente também funcionarão. Por exemplo, para compilar usando a cadeia de ferramentas mipsel-linux-uclibc, o seguinte comando poderia ser usado (nota: sintaxe POSIX SH, adapte ao seu shell conforme necessário):
$ CROSS=mipsel-linux-uclibc- ../libvpx/configure
Além disso, os executáveis a serem invocados podem ser substituídos especificando as variáveis de ambiente: CC, AR, LD, AS, STRIP, NM. Flags adicionais podem ser passadas para esses executáveis com CFLAGS, LDFLAGS e ASFLAGS.
VETORES DE TESTE VP8/VP9: Os vetores de teste podem ser baixados e verificados usando o sistema de compilação após executar o configure. Para especificar um diretório alternativo, a variável de ambiente LIBVPX_TEST_DATA_PATH pode ser usada.
$ ./configure --enable-unit-tests $ LIBVPX_TEST_DATA_PATH=../libvpx-test-data make testdata
SUPORTE Esta biblioteca é um projeto de código aberto apoiado por sua comunidade. Por favor, por favor, envie um e-mail para [email protected] para obter ajuda.