-
Notifications
You must be signed in to change notification settings - Fork 25
ASM Support
Taner Sener edited this page Jul 28, 2026
·
2 revisions
Build scripts try to enable available CPU optimizations. The table below records ASM/SIMD status where scripts explicitly set ASM, SIMD, hardware-acceleration, NEON, SSE, WebAssembly SIMD, or related options. Web builds enable WebAssembly SIMD, while native assembly paths remain disabled.
| Library | Android | iOS / iPadOS | macOS | tvOS | visionOS | Linux | Web |
|---|---|---|---|---|---|---|---|
dav1d |
all: No | all: No | all: No | all: No | all: No |
arm64, x86-64: Yes |
Wasm SIMD; asm: No12 |
ffmpeg |
all except x86: Yes; x86: No1
|
all except x86-64, x86-64-mac-catalyst: Yes; x86-64, x86-64-mac-catalyst: No |
arm64: Yes; x86-64: No |
arm64, arm64-simulator: Yes; x86-64: No |
all: Yes |
arm64, x86-64: Yes |
Wasm SIMD; simd128: Yes12
|
gmp |
all: No | all: No | all: No | all: No | all: No |
linux-gmp: Dep |
Wasm SIMD; assembly: No12 |
gnutls |
all except x86: Yes; x86: No |
all: Yes | all: Yes | all: Yes | all: Yes |
linux-gnutls: Dep |
Wasm SIMD12 |
kvazaar |
Not specified | all except x86-64, x86-64-mac-catalyst: Yes; x86-64, x86-64-mac-catalyst: No |
arm64: Yes; x86-64: No |
arm64, arm64-simulator: Yes; x86-64: No |
all: Yes | Not specified | Wasm SIMD12 |
libaom |
arm-v7a: Partial; others: Yes |
arm slices: Yes; i386: Partial; x86-64, x86-64-mac-catalyst: No3
|
arm64: Yes; x86-64: No |
arm64, arm64-simulator: Yes; x86-64: No |
all: Yes |
arm64, x86-64: Yes |
Wasm SIMD; target: generic12 |
libass |
arm-v7a, arm-v7a-neon, arm64-v8a, x86: No; x86-64: Yes4
|
arm slices: No; x86-64, x86-64-mac-catalyst: No; i386: Yes |
all: No | all: No | all: No |
linux-libass: Dep |
Wasm SIMD; asm: No12 |
libjxl |
all: Partial5 | all: Partial5 | all: Partial5 | all: Partial5 | all: Partial5 |
arm64, x86-64: Partial5
|
Wasm SIMD12 |
libjpeg-turbo |
all: Yes | arm slices: Yes; i386, x86-64, x86-64-mac-catalyst: No; arm64e: Yes2
|
all: Yes | all: Yes | all: Yes | Not built | Wasm SIMD; turbo SIMD: No12 |
libpng |
arm-v7a: Partial6; others: Yes |
all: Yes | all: Yes | all: Yes | all: Yes |
linux-zlib/system png deps: Dep |
Wasm SIMD12 |
libtheora |
all: Yes | Not specified | Not specified | Not specified | Not specified |
linux-libtheora: Dep |
Wasm SIMD; asm: No12 |
libvidstab |
arm: SSE disabled; x86-family: Not specified | arm slices: SSE disabled; x86-family: Not specified | arm slices: SSE disabled; x86-family: Not specified | arm slices: SSE disabled; x86-family: Not specified | arm slices: SSE disabled |
linux-libvidstab: Dep |
Wasm SIMD; SSE: No12 |
libvpx |
arm-v7a: Partial7; others: Yes |
armv7, armv7s, i386: Yes; arm64-family: Partial8; x86-64-family: Partial |
arm64: Partial8; x86-64: Partial |
arm64, arm64-simulator: Partial8; x86-64: Partial |
all: Partial8 |
linux-libvpx: Dep |
Wasm SIMD; runtime CPU detect: No12 |
libwebp |
arm-v7a: No; others: Yes |
all except x86-64-mac-catalyst: Yes; x86-64-mac-catalyst: No |
all: Yes | all: Yes | all: Yes |
linux-libwebp: Dep |
Wasm SIMD; WebP SIMD: No12 |
nettle |
assembler: No; arch crypto flags: Partial | assembler: No; arch crypto flags: Partial | assembler: No; arch crypto flags: Partial | assembler: No; arch crypto flags: Partial | assembler: No; arch crypto flags: Partial | Not built | Wasm SIMD12 |
openh264 |
arm-v7a: No; others: Yes |
all except x86-64: Yes; x86-64: No9
|
arm64: Yes; x86-64: No9
|
arm64, arm64-simulator: Yes; x86-64: No9
|
all: Yes |
arm64, x86-64: Yes |
Wasm SIMD; asm: No12 |
openssl |
all: Yes | arch target selected; 64-bit NIST EC optimization depends on __uint128_t
|
arch target selected; 64-bit NIST EC optimization depends on __uint128_t
|
arch target selected; 64-bit NIST EC optimization depends on __uint128_t
|
arch target selected; 64-bit NIST EC optimization depends on __uint128_t
|
arm64, x86-64: Yes |
Wasm SIMD; asm: No12 |
opus |
all: Yes | all: Yes | all: Yes | all: Yes | all: Yes |
linux-opus: Dep |
Wasm SIMD; asm: No12 |
soxr |
Not specified |
arm64*: Partial; others: Not specified |
arm64: Partial; x86-64: Not specified |
arm64, arm64-simulator: Partial; x86-64: Not specified |
all: Partial |
linux-soxr: Dep |
Wasm SIMD12 |
speex |
x86, x86-64: Yes; arm: Not specified |
x86-family: Yes; arm: Not specified |
x86-64: Yes; arm64: Not specified |
x86-64: Yes; arm: Not specified |
arm: Not specified |
linux-speex: Dep |
Wasm SIMD12 |
vo-amrwbenc |
arm-v7a-neon: Yes; others: Not specified |
Not specified | Not specified | Not specified | Not specified |
linux-vo-amrwbenc: Dep |
Wasm SIMD12 |
vvenc |
arm-v7a: No; arm-v7a-neon, arm64-v8a: Yes; x86: Not specified |
Not specified | Not specified | Not specified | Not specified |
arm64: Partial; x86-64: Not specified |
Wasm SIMD; native SIMD: No12 |
x264 |
all except x86: Yes; x86: No10
|
arm slices: Yes; i386, x86-64-family: No |
arm64: Yes; x86-64: No |
arm64, arm64-simulator: Yes; x86-64: No |
all: Yes |
arm64: Not specified; x86-64: Yes |
Wasm SIMD; asm: No12 |
x265 |
arm-v7a, arm-v7a-neon, x86: No; arm64-v8a, x86-64: Yes |
armv7, armv7s, x86-64: Yes; arm64*, i386, x86-64-mac-catalyst: No |
arm64: No; x86-64: Yes |
arm64, arm64-simulator: No; x86-64: Yes |
all: No |
linux-x265: Dep |
Wasm SIMD; assembly: No12 |
xvidcore |
all except x86: Yes; x86: No11
|
arm slices: Yes; i386, x86-64-family: No |
arm64: Yes; x86-64: No |
arm64, arm64-simulator: Yes; x86-64: No |
all: Yes |
linux-xvidcore: Dep |
Wasm SIMD; assembly: No12 |
zimg |
Not specified |
armv7, armv7s: No; others: Yes |
all: Yes | all: Yes | all: Yes | Not specified | Wasm SIMD; zimg SIMD: No12 |
Legend:
| Value | Meaning |
|---|---|
Yes |
ASM/SIMD is explicitly enabled by the script, or the script preserves an ASM-enabled build path. |
No |
ASM/SIMD is explicitly disabled by the script. |
Partial |
Some ASM/SIMD families are enabled while others are explicitly disabled. |
Wasm SIMD |
WebAssembly SIMD is enabled through Emscripten flags for the Web build. This is the Web SIMD support indicator. |
Dep |
Linux system dependency; ASM status is not known from these scripts. |
Not specified |
The script does not explicitly set ASM/SIMD-related options. |
Not built |
No build script exists for that platform in this project. |
- Android
ffmpegdisables asm onx86because the script references FFmpeg ticket 4928. -
jpegleaves the CMake architecture list empty forarm64ebecause libjpeg-turbo matches it asarm64, butarm64eis not a supported SIMD CPU type. - Apple
libaompatchesaom_portsto disable asm on x86-64-family slices. - Android
libassdisables asm onx86because enabling it causes text relocations inlibavfilter.so. -
libjxldisables AVX512, AVX512_SPR, AVX512_ZEN4, sizeless vectors, and forced NEON in scripts. - Android
libpngdoes not enable hardware optimizations onarm-v7abecause that makes the build try ARM-NEON instructions and breaks compilation. - Android
libvpxdisables NEON onarm-v7abecause runtime CPU detection enables NEON for armv7 CPU. - Apple
libvpxenables NEON on arm64-family slices but disables--enable-neon-asmbecause that option is ARMv7-style 32-bit only;arm64ealso disables NEON dotprod due ptrauth issues. - Apple
openh264script says ASM is enabled for all iOS architectures exceptx86-64. - Android
x264disables asm onx86because enabling it causes text relocations inlibavfilter.so. - Android
xvidcoredisables assembly onx86because enabling it causes text relocations inlibavcodec.so. - Web builds target
wasm32-unknown-emscriptenand compile with-msimd128;--enable-relaxed-simdadditionally adds-mrelaxed-simd. FFmpeg is configured with--enable-simd128while native asm, inline asm and x86 asm are disabled. Row text such asasm: No,assembly: No,SSE: No, ornative SIMD: Nomeans that library's native CPU-specific path is disabled even though WebAssembly SIMD flags are enabled.
Copyright (c) 2026 FFmpegKitNext
- Status
- Versions
- Changelog
- Project Layout
- Using
- Building
- External Libraries
- Patents
- License