
C-Bibliothek für VP8/VP9-Videoencodierung und -decodierung, mit Schwerpunkt auf Sicherheits-Patching für CVE-2023-5217.
README - 23. März 2015
Willkommen zum WebM VP8/VP9 Codec SDK!
KOMPILIEREN DER ANWENDUNGEN/BIBLIOTHEKEN: Das verwendete Build-System ähnelt autotools. Das Erstellen besteht im Allgemeinen aus dem "Konfigurieren" mit Ihren gewünschten Build-Optionen und anschließend der Verwendung von GNU make zum Erstellen der Anwendung.
* Alle x86-Ziele benötigen den Yasm[1]-Assembler.
* Alle Windows-Builds erfordern, dass Cygwin[2] installiert ist.
* Die Erstellung der Dokumentation erfordert Doxygen[3]. Wenn Sie
dieses Paket nicht haben, wird die Option install-docs deaktiviert.
* Das Herunterladen der Daten für die Unit-Tests erfordert curl[4] und sha1sum.
sha1sum wird über die GNU coreutils bereitgestellt, die standardmäßig auf vielen
*nix-Plattformen sowie MinGW und Cygwin installiert sind. Falls coreutils nicht
verfügbar ist, kann eine kompatible Version von sha1sum aus dem Quellcode
erstellt werden[5]. Diese Voraussetzungen sind optional, wenn die Unit-Tests nicht
ausgeführt werden.
[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. Out-of-tree-Builds Out-of-tree-Builds sind eine unterstützte Methode zum Erstellen der Anwendung. Bei einem Out-of-tree-Build wird der Quellbaum von den während der Kompilierung erzeugten Objektdateien getrennt gehalten. Zum Beispiel:
$ mkdir build
$ cd build
$ ../libvpx/configure <optionen>
$ make
3. Konfigurationsoptionen Das Skript 'configure' unterstützt eine Reihe von Optionen. Die Option --help kann verwendet werden, um eine Liste der unterstützten Optionen zu erhalten: $ ../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
Das Ziel generic-gnu kann in Verbindung mit der Umgebungsvariable CROSS verwendet werden, um Architekturen zu cross-kompilieren, die nicht explizit aufgeführt sind, sofern die Toolchain eine Cross-GNU-Toolchain (gcc/binutils) ist. Andere POSIX-Toolchains werden wahrscheinlich ebenfalls funktionieren. Um beispielsweise mit der Toolchain mipsel-linux-uclibc zu erstellen, könnte der folgende Befehl verwendet werden (beachten Sie die POSIX-SH-Syntax, passen Sie sie gegebenenfalls an Ihre Shell an):
$ CROSS=mipsel-linux-uclibc- ../libvpx/configure
Darüber hinaus können die aufzurufenden ausführbaren Dateien durch Angabe der Umgebungsvariablen überschrieben werden: CC, AR, LD, AS, STRIP, NM. Zusätzliche Flags können mit CFLAGS, LDFLAGS und ASFLAGS an diese ausführbaren Dateien übergeben werden.
VP8/VP9 TESTVEKTOREN: Die Testvektoren können nach dem Ausführen von configure mit dem Build-System heruntergeladen und überprüft werden. Um ein alternatives Verzeichnis anzugeben, kann die Umgebungsvariable LIBVPX_TEST_DATA_PATH verwendet werden.
$ ./configure --enable-unit-tests $ LIBVPX_TEST_DATA_PATH=../libvpx-test-data make testdata
UNTERSTÜTZUNG Diese Bibliothek ist ein Open-Source-Projekt, das von seiner Community unterstützt wird. Bitte senden Sie eine E-Mail an [email protected], um Hilfe zu erhalten.