
مكتبة C لتشفير وفك تشفير فيديو VP8/VP9، مع التركيز على تصحيح الثغرات الأمنية لـ CVE-2023-5217.
README - 23 مارس 2015
مرحبًا بك في حزمة تطوير برمجيات برنامج الترميز WebM VP8/VP9!
تجميع التطبيقات/المكتبات: نظام البناء المستخدم مشابه لـ autotools. يتكوّن البناء عمومًا من "الإعداد" بخيارات البناء التي تريدها، ثم استخدام GNU make لبناء التطبيق.
* تتطلب جميع أهداف x86 تثبيت المُجمِّع Yasm[1].
* تتطلب جميع عمليات البناء على Windows تثبيت Cygwin[2].
* يتطلب بناء التوثيق وجود Doxygen[3]. إذا لم يكن
لديك هذه الحزمة، فسيتم تعطيل خيار install-docs.
* يتطلب تنزيل بيانات اختبارات الوحدة توفر curl[4] وsha1sum.
يتم توفير sha1sum عبر GNU coreutils، والمثبَّت افتراضيًا على
العديد من منصات *nix، وكذلك MinGW وCygwin. إذا لم تكن coreutils
متوفرة، فيمكن بناء إصدار متوافق من sha1sum من
المصدر[5]. هذه المتطلبات اختيارية إذا لم يتم تشغيل
اختبارات الوحدة.
[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) تعد عمليات البناء خارج شجرة المصدر طريقة مدعومة لبناء التطبيق. بالنسبة للبناء خارج شجرة المصدر، يتم الاحتفاظ بشجرة المصدر منفصلة عن ملفات الكائنات الناتجة أثناء الترجمة. على سبيل المثال:
$ mkdir build
$ cd build
$ ../libvpx/configure <options>
$ make
3. خيارات الإعداد يدعم السكربت 'configure' عددًا من الخيارات. يمكن استخدام خيار --help للحصول على قائمة بالخيارات المدعومة: $ ../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
يمكن استخدام هدف generic-gnu، بالتزامن مع متغير البيئة CROSS، في التجميع المتقاطع (cross compile) للبنى المعمارية غير المدرجة صراحةً، إذا كانت سلسلة الأدوات عبارة عن سلسلة أدوات GNU عابرة (gcc/binutils). من المحتمل أن تعمل سلاسل أدوات POSIX الأخرى أيضًا. على سبيل المثال، للبناء باستخدام سلسلة أدوات mipsel-linux-uclibc، يمكن استخدام الأمر التالي (لاحظ أن الصيغة هي POSIX SH، وقد تحتاج إلى تكييفها مع صدفتك):
$ CROSS=mipsel-linux-uclibc- ../libvpx/configure
بالإضافة إلى ذلك، يمكن تجاوز الملفات التنفيذية المطلوب استدعاؤها عن طريق تحديد متغيرات البيئة: CC, AR, LD, AS, STRIP, NM. يمكن تمرير علمات إضافية إلى هذه الملفات التنفيذية باستخدام CFLAGS وLDFLAGS وASFLAGS.
متجهات اختبار VP8/VP9: يمكن تنزيل متجهات الاختبار والتحقق منها باستخدام نظام البناء بعد تشغيل configure. لتحديد دليل بديل، يمكن استخدام متغير البيئة LIBVPX_TEST_DATA_PATH.
$ ./configure --enable-unit-tests $ LIBVPX_TEST_DATA_PATH=../libvpx-test-data make testdata
الدعم هذه المكتبة مشروع مفتوح المصدر مدعوم من مجتمعها. يُرجى، يُرجى مراسلة [email protected] للحصول على المساعدة.