Skip to content
This repository has been archived by the owner on Oct 7, 2021. It is now read-only.

Android NEON Support

Taner Sener edited this page Oct 26, 2018 · 15 revisions

arm-v7a-neon and arm64-v8a are the two architectures that support NEON instructions.

arm64-v8a has its own ABI but arm-v7a-neon does not; both arm-v7a and arm-v7a-neon share the same ABI (armeabi-v7a).

Therefore armeabi-v7a builds include both libraries with and without NEON support.

MobileFFmpeg detects the NEON support at runtime and loads the appropriate architecture for armeabi-v7a ABI. This mechanism aims to benefit from NEON optimizations but ABI size of armeabi-v7a ABI is bigger when compared with other ABIs.

Since v2.1 the following .so files are packaged for each ABI.

libavcodec.so
libavdevice.so
libavfilter.so
libavformat.so
libavutil.so
libc++_shared.so
libcpufeatures.so
libmobileffmpeg-abidetect.so
libmobileffmpeg.so
libswresample.so
libswscale.so

To support NEON support on armeabi-v7a the following libraries with -neon postfix are included for this ABI. Please note that all libraries build/shipped with MobileFFmpeg does not support NEON. So only libraries with NEON support are included to decrease the bundle size.

libavcodec-neon.so
libavfilter-neon.so
libmobileffmpeg-armv7a-neon
libswscale-neon.so
Clone this wiki locally