
Biblioteca C para codificación y decodificación de video VP8/VP9, con enfoque en parcheo de seguridad para CVE-2023-5217.
README - 23 de marzo de 2015
¡Bienvenido al SDK de códec WebM VP8/VP9!
COMPILACIÓN DE LAS APLICACIONES/BIBLIOTECAS: El sistema de compilación utilizado es similar a autotools. La compilación generalmente consiste en "configurar" con las opciones de compilación deseadas, y luego usar GNU make para compilar la aplicación.
* Todos los objetivos x86 requieren que el ensamblador Yasm[1] esté instalado.
* Todas las compilaciones de Windows requieren que Cygwin[2] esté instalado.
* La compilación de la documentación requiere Doxygen[3]. Si no
tiene este paquete, la opción install-docs estará deshabilitada.
* La descarga de los datos para las pruebas unitarias requiere curl[4] y sha1sum.
sha1sum se proporciona a través de GNU coreutils, instalado por defecto en
muchas plataformas *nix, así como MinGW y Cygwin. Si coreutils no está
disponible, se puede compilar una versión compatible de sha1sum desde
el código fuente[5]. Estos requisitos son opcionales si no se ejecutan las pruebas
unitarias.
[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. Compilaciones fuera del árbol Las compilaciones fuera del árbol son un método compatible para compilar la aplicación. Para una compilación fuera del árbol, el árbol fuente se mantiene separado de los archivos objeto producidos durante la compilación. Por ejemplo:
$ mkdir build
$ cd build
$ ../libvpx/configure <opciones>
$ make
3. Opciones de configuración El script 'configure' admite varias opciones. La opción --help se puede usar para obtener una lista de las opciones compatibles: $ ../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
El objetivo generic-gnu, junto con la variable de entorno CROSS, se puede usar para compilar de forma cruzada arquitecturas que no aparecen explícitamente en la lista, si la cadena de herramientas es una cadena de herramientas GNU cruzada (gcc/binutils). Otras cadenas de herramientas POSIX probablemente también funcionarán. Por ejemplo, para compilar usando la cadena de herramientas mipsel-linux-uclibc, se podría usar el siguiente comando (nota: sintaxis POSIX SH, adapte a su shell según sea necesario):
$ CROSS=mipsel-linux-uclibc- ../libvpx/configure
Además, los ejecutables a invocar se pueden anular especificando las variables de entorno: CC, AR, LD, AS, STRIP, NM. Se pueden pasar banderas adicionales a estos ejecutables con CFLAGS, LDFLAGS y ASFLAGS.
VECTORES DE PRUEBA VP8/VP9: Los vectores de prueba se pueden descargar y verificar usando el sistema de compilación después de ejecutar configure. Para especificar un directorio alternativo, se puede usar la variable de entorno LIBVPX_TEST_DATA_PATH.
$ ./configure --enable-unit-tests $ LIBVPX_TEST_DATA_PATH=../libvpx-test-data make testdata
SOPORTE Esta biblioteca es un proyecto de código abierto respaldado por su comunidad. Por favor, envíe un correo electrónico a [email protected] para obtener ayuda.