From 95834310310386c7cf6db9f3df6df8ce8c5ef2b7 Mon Sep 17 00:00:00 2001 From: Andrii Podanenko Date: Fri, 24 Mar 2023 15:40:46 +0200 Subject: [PATCH 1/2] feat: add arm64 ffmpeg crc optimization --- docker/mpp.sh | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/docker/mpp.sh b/docker/mpp.sh index c70da494e..9a3e773da 100755 --- a/docker/mpp.sh +++ b/docker/mpp.sh @@ -53,10 +53,18 @@ cd /tmp git clone https://github.com/FFmpeg/FFmpeg.git cd FFmpeg +ARCH=$(uname -m) +EXTRA_CFLAGS="-I/usr/local/include" +EXTRA_LDFLAGS="-L/usr/local/lib" + +if [ "$ARCH" = "aarch64" ]; then + EXTRA_CFLAGS="${EXTRA_CFLAGS} -march=armv8-a+crc" +fi + PKG_CONFIG_PATH="/usr/local/lib/pkgconfig" ./configure \ --enable-rkmpp \ - --extra-cflags="-I/usr/local/include" \ - --extra-ldflags="-L/usr/local/lib" \ + --extra-cflags="${EXTRA_CFLAGS}" \ + --extra-ldflags="${EXTRA_LDFLAGS}" \ --extra-libs="-lpthread -lm -latomic" \ --arch=arm64 \ --enable-gmp \ From b3544cf147fc95dcc2598180b74f066efba5aa12 Mon Sep 17 00:00:00 2001 From: Andrii Podanenko Date: Fri, 24 Mar 2023 17:08:48 +0200 Subject: [PATCH 2/2] feat: add arm64 optimisations --- docker/build_nginx.sh | 2 +- docker/mpp.sh | 15 ++++++++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/docker/build_nginx.sh b/docker/build_nginx.sh index da4bd5255..3927ce1d2 100755 --- a/docker/build_nginx.sh +++ b/docker/build_nginx.sh @@ -56,7 +56,7 @@ ARCH=$(uname -m) CC_OPT="-O3 -Wno-error=implicit-fallthrough" if [ "$ARCH" = "aarch64" ]; then - CC_OPT="${CC_OPT} -march=armv8-a+crc" + CC_OPT="${CC_OPT} -march=armv8-a+crc -mfpu=neon-fp-armv8 -mfloat-abi=hard" fi ./configure --prefix=/usr/local/nginx \ diff --git a/docker/mpp.sh b/docker/mpp.sh index 9a3e773da..b86e03eee 100755 --- a/docker/mpp.sh +++ b/docker/mpp.sh @@ -29,7 +29,17 @@ cd /tmp git clone https://github.com/rockchip-linux/mpp.git cd mpp mkdir build || true && cd build -cmake -DCMAKE_INSTALL_PREFIX=/usr/local ../ + +ARCH=$(uname -m) +EXTRA_CFLAGS="" +EXTRA_CXXFLAGS="" + +if [ "$ARCH" = "aarch64" ]; then + EXTRA_CFLAGS="-march=armv8-a+crc -mfpu=neon-fp-armv8 -mfloat-abi=hard" + EXTRA_CXXFLAGS="-march=armv8-a+crc -mfpu=neon-fp-armv8 -mfloat-abi=hard" +fi + +cmake -DCMAKE_INSTALL_PREFIX=/usr/local -DCMAKE_C_FLAGS="${EXTRA_CFLAGS}" -DCMAKE_CXX_FLAGS="${EXTRA_CXXFLAGS}" ../ make -j$(nproc) make install ldconfig @@ -58,7 +68,7 @@ EXTRA_CFLAGS="-I/usr/local/include" EXTRA_LDFLAGS="-L/usr/local/lib" if [ "$ARCH" = "aarch64" ]; then - EXTRA_CFLAGS="${EXTRA_CFLAGS} -march=armv8-a+crc" + EXTRA_CFLAGS="${EXTRA_CFLAGS} -march=armv8-a+crc -mfpu=neon-fp-armv8 -mfloat-abi=hard" fi PKG_CONFIG_PATH="/usr/local/lib/pkgconfig" ./configure \ @@ -83,7 +93,6 @@ PKG_CONFIG_PATH="/usr/local/lib/pkgconfig" ./configure \ --enable-libsoxr \ --enable-libssh \ --enable-libvorbis \ - --enable-libvpx \ --enable-libzimg \ --enable-libwebp \ --enable-libx264 \