ASM Support - tanersener/ffmpeg-kit GitHub Wiki
Build scripts of the libraries try to enable all CPU optimizations possible. But some libraries do not support CPU optimizations and configure/build operations fail when asm is enabled.
Below you can see the libraries and architectures that do not support asm. Other than these, all libraries are built with asm enabled.
Android
gmp
: Enabling assembly producescannot locate symbol "__gmp_binvert_limb_table"
error when library is loaded.gnutls
,libass
,xvidcore
,x264
: Enabling asm forx86
ABI causes text relocation errors inlibavfilter.so
,libavformat.so
andlibavcodec.so
.libtheora
: asm is disabled on LTS releases. Enabling asm causes random crashes on pre API 21 devices.libwebp
: This library dropped support forarm-v7a
architecture (armeabi-v7a without NEON) with release 1.0.2. Therefore, asm is disabled forarm-v7a
architecture.openh264
is built without-DHAVE_NEON
flag onarm-v7a-neon
architecture.-DHAVE_NEON
flag causes undefined symbol errors forWelsCopy8x8_neon
.x265
: Assembly compilation fails forarm64-v8a
architecture. It is possible to buildarm-v7a
,arm-v7a-neon
andx86
with assembly enabled but all three ABIs include relocation errors. Additionally, assembly onx86-64
causes linking errors.
iOS / macOS / tvOS
-
gmp
: Enabling assembly onarmv7
,armv7s
,arm64
andarm64e
architectures causesconfigure
to fail withconfigure: error: cannot determine how to define a 32-bit word
. -
kvazaar
,libaom
,libass
,libvpx
,openh264
: Enabling asm inx86-64
architecture does not cause any compilation errors. But creatingxcframework
bundles fails with the following error. Assembly is disabled for these libraries inx86-64
architecture to resolve this error.The CodingKeys(stringValue: "SupportedPlatform", intValue: nil) is empty in library -x86_64.
-
libjpeg-turbo
: Build fails oni386
architecture witherror: symbol '.no_avx2' undefined
error. -
wavpack
: Build fails on allarm
architectures when asm is enabled. -
xvidcore
: Build fails fori386
architecture when asm is enabled.ffmpeg
crashes when asm is enabled onx86-64
architecture. -
x265
: Assembly compilation fails forarm64
andarm64e
architectures.