
Bibliothèque C pour l'encodage et le décodage vidéo VP8/VP9, avec un accent sur la correction de sécurité pour CVE-2023-5217.
README - 23 mars 2015
Bienvenue dans le SDK des codecs VP8/VP9 de WebM !
COMPILATION DES APPLICATIONS/BIBLIOTHÈQUES : Le système de construction utilisé est similaire à autotools. La construction consiste généralement à « configurer » avec les options de construction souhaitées, puis à utiliser GNU make pour construire l'application.
* Toutes les cibles x86 nécessitent l'installation de l'assembleur Yasm[1].
* Toutes les constructions Windows nécessitent l'installation de Cygwin[2].
* La construction de la documentation nécessite Doxygen[3]. Si vous ne disposez pas de ce paquet, l'option install-docs sera désactivée.
* Le téléchargement des données pour les tests unitaires nécessite curl[4] et sha1sum. sha1sum est fourni par les GNU coreutils, installés par défaut sur de nombreuses plateformes *nix, ainsi que MinGW et Cygwin. Si coreutils n'est pas disponible, une version compatible de sha1sum peut être construite à partir des sources[5]. Ces prérequis sont facultatifs si les tests unitaires ne sont pas exécutés.
[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. Constructions hors arborescence Les constructions hors arborescence sont une méthode de construction de l'application prise en charge. Pour une construction hors arborescence, l'arborescence source est conservée séparée des fichiers objets produits lors de la compilation. Par exemple :
$ mkdir build
$ cd build
$ ../libvpx/configure <options>
$ make
3. Options de configuration Le script 'configure' prend en charge un certain nombre d'options. L'option --help peut être utilisée pour obtenir la liste des options prises en charge :
$ ../libvpx/configure --help
4. Développement croisé Pour le développement croisé, l'option la plus notable est l'option --target. La liste la plus à jour des cibles prises en charge se trouve en bas de la sortie de --help du script configure. Au moment où ces lignes sont écrites, la liste des cibles disponibles est la suivante :
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
La cible generic-gnu, en conjonction avec la variable d'environnement CROSS, peut être utilisée pour compiler en croisé des architectures qui ne sont pas explicitement listées, si la chaîne d'outils est une chaîne d'outils GNU croisée (gcc/binutils). D'autres chaînes d'outils POSIX devraient également fonctionner. Par exemple, pour construire avec la chaîne d'outils mipsel-linux-uclibc, la commande suivante pourrait être utilisée (notez la syntaxe POSIX SH, adaptez-la à votre shell si nécessaire) :
$ CROSS=mipsel-linux-uclibc- ../libvpx/configure
De plus, les exécutables à invoquer peuvent être remplacés en spécifiant les variables d'environnement : CC, AR, LD, AS, STRIP, NM. Des drapeaux supplémentaires peuvent être passés à ces exécutables avec CFLAGS, LDFLAGS et ASFLAGS.
VECTEURS DE TEST VP8/VP9 : Les vecteurs de test peuvent être téléchargés et vérifiés à l'aide du système de construction après avoir exécuté configure. Pour spécifier un répertoire alternatif, la variable d'environnement LIBVPX_TEST_DATA_PATH peut être utilisée.
$ ./configure --enable-unit-tests $ LIBVPX_TEST_DATA_PATH=../libvpx-test-data make testdata
ASSISTANCE Cette bibliothèque est un projet open source soutenu par sa communauté. Veuillez envoyer un courriel à [email protected] pour obtenir de l'aide.