From 323d6ab5ee8532fa3c14a6b0c48fe14b3cbb65a6 Mon Sep 17 00:00:00 2001 From: thermatk Date: Sun, 15 Sep 2019 13:45:50 +0200 Subject: [PATCH] [TF][JNI][UPDATE] FFmpeg 4.2.3 from source (cherry picked from commit 37ba1e1882cae4644eb2c7c53866c47e1fa1780c) --- .gitmodules | 3 + TMessagesProj/jni/Android.mk | 64 +++++--- TMessagesProj/jni/build_ffmpeg_android.sh | 185 +++++++++++++++++++++ TMessagesProj/jni/build_ffmpeg_clang.sh | 192 ++++++++++++++++++++++ TMessagesProj/jni/ffmpeg | 1 + 5 files changed, 423 insertions(+), 22 deletions(-) mode change 100755 => 100644 TMessagesProj/jni/Android.mk create mode 100755 TMessagesProj/jni/build_ffmpeg_android.sh create mode 100755 TMessagesProj/jni/build_ffmpeg_clang.sh create mode 160000 TMessagesProj/jni/ffmpeg diff --git a/.gitmodules b/.gitmodules index 101fa3eaf..e1560f78a 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule "TMessagesProj/jni/libwebp"] path = TMessagesProj/jni/libwebp url = https://github.com/webmproject/libwebp +[submodule "TMessagesProj/jni/ffmpeg"] + path = TMessagesProj/jni/ffmpeg + url = https://github.com/FFmpeg/FFmpeg diff --git a/TMessagesProj/jni/Android.mk b/TMessagesProj/jni/Android.mk old mode 100755 new mode 100644 index 2e60cb66b..26a3eec67 --- a/TMessagesProj/jni/Android.mk +++ b/TMessagesProj/jni/Android.mk @@ -6,13 +6,17 @@ include $(CLEAR_VARS) LOCAL_MODULE := avutil ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) - LOCAL_SRC_FILES := ./ffmpeg/armv7-a/libavutil.a + FFMPEG_INCLUDE_PATH := $(LOCAL_PATH)/ffmpeg/build/armv7-a/include + LOCAL_SRC_FILES := ./ffmpeg/build/armv7-a/lib/libavutil.a else ifeq ($(TARGET_ARCH_ABI),arm64-v8a) - LOCAL_SRC_FILES := ./ffmpeg/arm64/libavutil.a + FFMPEG_INCLUDE_PATH := $(LOCAL_PATH)/ffmpeg/build/arm64-v8a/include + LOCAL_SRC_FILES := ./ffmpeg/build/arm64-v8a/lib/libavutil.a else ifeq ($(TARGET_ARCH_ABI),x86) - LOCAL_SRC_FILES := ./ffmpeg/i686/libavutil.a + FFMPEG_INCLUDE_PATH := $(LOCAL_PATH)/ffmpeg/build/i686/include + LOCAL_SRC_FILES := ./ffmpeg/build/i686/lib/libavutil.a else ifeq ($(TARGET_ARCH_ABI),x86_64) - LOCAL_SRC_FILES := ./ffmpeg/x86_64/libavutil.a + FFMPEG_INCLUDE_PATH := $(LOCAL_PATH)/ffmpeg/build/x86_64/include + LOCAL_SRC_FILES := ./ffmpeg/build/x86_64/lib/libavutil.a endif include $(PREBUILT_STATIC_LIBRARY) @@ -22,13 +26,13 @@ include $(CLEAR_VARS) LOCAL_MODULE := avformat ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) - LOCAL_SRC_FILES := ./ffmpeg/armv7-a/libavformat.a + LOCAL_SRC_FILES := ./ffmpeg/build/armv7-a/lib/libavformat.a else ifeq ($(TARGET_ARCH_ABI),arm64-v8a) - LOCAL_SRC_FILES := ./ffmpeg/arm64/libavformat.a + LOCAL_SRC_FILES := ./ffmpeg/build/arm64-v8a/lib/libavformat.a else ifeq ($(TARGET_ARCH_ABI),x86) - LOCAL_SRC_FILES := ./ffmpeg/i686/libavformat.a + LOCAL_SRC_FILES := ./ffmpeg/build/i686/lib/libavformat.a else ifeq ($(TARGET_ARCH_ABI),x86_64) - LOCAL_SRC_FILES := ./ffmpeg/x86_64/libavformat.a + LOCAL_SRC_FILES := ./ffmpeg/build/x86_64/lib/libavformat.a endif include $(PREBUILT_STATIC_LIBRARY) @@ -38,13 +42,13 @@ include $(CLEAR_VARS) LOCAL_MODULE := avcodec ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) - LOCAL_SRC_FILES := ./ffmpeg/armv7-a/libavcodec.a + LOCAL_SRC_FILES := ./ffmpeg/build/armv7-a/lib/libavcodec.a else ifeq ($(TARGET_ARCH_ABI),arm64-v8a) - LOCAL_SRC_FILES := ./ffmpeg/arm64/libavcodec.a + LOCAL_SRC_FILES := ./ffmpeg/build/arm64-v8a/lib/libavcodec.a else ifeq ($(TARGET_ARCH_ABI),x86) - LOCAL_SRC_FILES := ./ffmpeg/i686/libavcodec.a + LOCAL_SRC_FILES := ./ffmpeg/build/i686/lib/libavcodec.a else ifeq ($(TARGET_ARCH_ABI),x86_64) - LOCAL_SRC_FILES := ./ffmpeg/x86_64/libavcodec.a + LOCAL_SRC_FILES := ./ffmpeg/build/x86_64/lib/libavcodec.a endif include $(PREBUILT_STATIC_LIBRARY) @@ -54,13 +58,29 @@ include $(CLEAR_VARS) LOCAL_MODULE := avresample ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) - LOCAL_SRC_FILES := ./ffmpeg/armv7-a/libavresample.a + LOCAL_SRC_FILES := ./ffmpeg/build/armv7-a/lib/libavresample.a else ifeq ($(TARGET_ARCH_ABI),arm64-v8a) - LOCAL_SRC_FILES := ./ffmpeg/arm64/libavresample.a + LOCAL_SRC_FILES := ./ffmpeg/build/arm64-v8a/lib/libavresample.a else ifeq ($(TARGET_ARCH_ABI),x86) - LOCAL_SRC_FILES := ./ffmpeg/i686/libavresample.a + LOCAL_SRC_FILES := ./ffmpeg/build/i686/lib/libavresample.a else ifeq ($(TARGET_ARCH_ABI),x86_64) - LOCAL_SRC_FILES := ./ffmpeg/x86_64/libavresample.a + LOCAL_SRC_FILES := ./ffmpeg/build/x86_64/lib/libavresample.a +endif + +include $(PREBUILT_STATIC_LIBRARY) + +include $(CLEAR_VARS) + +LOCAL_MODULE := swresample + +ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) + LOCAL_SRC_FILES := ./ffmpeg/build/armv7-a/lib/libswresample.a +else ifeq ($(TARGET_ARCH_ABI),arm64-v8a) + LOCAL_SRC_FILES := ./ffmpeg/build/arm64-v8a/lib/libswresample.a +else ifeq ($(TARGET_ARCH_ABI),x86) + LOCAL_SRC_FILES := ./ffmpeg/build/i686/lib/libswresample.a +else ifeq ($(TARGET_ARCH_ABI),x86_64) + LOCAL_SRC_FILES := ./ffmpeg/build/x86_64/lib/libswresample.a endif include $(PREBUILT_STATIC_LIBRARY) @@ -70,13 +90,13 @@ include $(CLEAR_VARS) LOCAL_MODULE := swscale ifeq ($(TARGET_ARCH_ABI),armeabi-v7a) - LOCAL_SRC_FILES := ./ffmpeg/armv7-a/libswscale.a + LOCAL_SRC_FILES := ./ffmpeg/build/armv7-a/lib/libswscale.a else ifeq ($(TARGET_ARCH_ABI),arm64-v8a) - LOCAL_SRC_FILES := ./ffmpeg/arm64/libswscale.a + LOCAL_SRC_FILES := ./ffmpeg/build/arm64-v8a/lib/libswscale.a else ifeq ($(TARGET_ARCH_ABI),x86) - LOCAL_SRC_FILES := ./ffmpeg/i686/libswscale.a + LOCAL_SRC_FILES := ./ffmpeg/build/i686/lib/libswscale.a else ifeq ($(TARGET_ARCH_ABI),x86_64) - LOCAL_SRC_FILES := ./ffmpeg/x86_64/libswscale.a + LOCAL_SRC_FILES := ./ffmpeg/build/x86_64/lib/libswscale.a endif include $(PREBUILT_STATIC_LIBRARY) @@ -284,7 +304,7 @@ LOCAL_CFLAGS += -Drestrict='' -D__EMX__ -DOPUS_BUILD -DFIXED_POINT -DUSE_ALLOCA LOCAL_CFLAGS += -DANDROID_NDK -DDISABLE_IMPORTGL -fno-strict-aliasing -fprefetch-loop-arrays -DAVOID_TABLES -DANDROID_TILE_BASED_DECODE -DANDROID_ARMV6_IDCT -ffast-math -D__STDC_CONSTANT_MACROS LOCAL_CPPFLAGS := -DBSD=1 -ffast-math -Os -funroll-loops -std=c++14 -DPACKAGE_NAME='"drinkless/org/ton"' LOCAL_LDLIBS := -ljnigraphics -llog -lz -lEGL -lGLESv2 -landroid -LOCAL_STATIC_LIBRARIES := webp sqlite lz4 rlottie tgnet swscale avformat avcodec avresample avutil flac +LOCAL_STATIC_LIBRARIES := webp sqlite lz4 rlottie tgnet swscale avformat avcodec avresample avutil swresample flac LOCAL_SRC_FILES := \ ./opus/src/opus.c \ @@ -487,7 +507,7 @@ $(LOCAL_PATH)/opus/ \ $(LOCAL_PATH)/opus/opusfile \ $(LOCAL_PATH)/libyuv/include \ $(LOCAL_PATH)/boringssl/include \ -$(LOCAL_PATH)/ffmpeg/include \ +$(FFMPEG_INCLUDE_PATH) \ $(LOCAL_PATH)/emoji \ $(LOCAL_PATH)/exoplayer/include \ $(LOCAL_PATH)/exoplayer/libFLAC/include \ diff --git a/TMessagesProj/jni/build_ffmpeg_android.sh b/TMessagesProj/jni/build_ffmpeg_android.sh new file mode 100755 index 000000000..be6999956 --- /dev/null +++ b/TMessagesProj/jni/build_ffmpeg_android.sh @@ -0,0 +1,185 @@ +#!/bin/bash + +function build_one { + +echo "Cleaning..." +rm config.h +make clean + +echo "Configuring..." + +./configure \ +--cc=$CC \ +--nm=$NM \ +--enable-stripping \ +--arch=$ARCH \ +--target-os=linux \ +--enable-cross-compile \ +--x86asmexe=$NDK/prebuilt/$BUILD_PLATFORM/bin/yasm \ +--prefix=$PREFIX \ +--enable-pic \ +--disable-shared \ +--enable-static \ +--enable-asm \ +--enable-inline-asm \ +--cross-prefix=$CROSS_PREFIX \ +--sysroot=$PLATFORM \ +--extra-cflags="-Wl,-Bsymbolic -Os -DCONFIG_LINUX_PERF=0 -DANDROID $OPTIMIZE_CFLAGS -fPIE -pie --static -fPIC" \ +--extra-ldflags="-Wl,-Bsymbolic -Wl,-rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -nostdlib -lc -lm -ldl -fPIC" \ +--extra-libs="-lgcc" \ +\ +--enable-version3 \ +--enable-gpl \ +\ +--disable-linux-perf \ +\ +--disable-doc \ +--disable-htmlpages \ +--disable-avx \ +\ +--disable-everything \ +--disable-network \ +--disable-zlib \ +--disable-avfilter \ +--disable-avdevice \ +--disable-postproc \ +--disable-debug \ +--disable-programs \ +--disable-network \ +--disable-ffplay \ +--disable-ffprobe \ +--disable-postproc \ +--disable-avdevice \ +\ +--enable-runtime-cpudetect \ +--enable-pthreads \ +--enable-avresample \ +--enable-swscale \ +--enable-protocol=file \ +--enable-decoder=h264 \ +--enable-decoder=mpeg4 \ +--enable-decoder=mjpeg \ +--enable-decoder=gif \ +--enable-decoder=alac \ +--enable-demuxer=mov \ +--enable-demuxer=gif \ +--enable-hwaccels \ +--enable-runtime-cpudetect \ +$ADDITIONAL_CONFIGURE_FLAG + +#echo "continue?" +#read +make -j$COMPILATION_PROC_COUNT +make install + +} + +function setCurrentPlatform { + + PLATFORM="$(uname -s)" + case "${PLATFORM}" in + Darwin*) + BUILD_PLATFORM=darwin-x86_64 + COMPILATION_PROC_COUNT=`sysctl -n hw.physicalcpu` + ;; + Linux*) + BUILD_PLATFORM=linux-x86_64 + COMPILATION_PROC_COUNT=$(nproc) + ;; + *) + echo -e "\033[33mWarning! Unknown platform ${PLATFORM}! falling back to linux-x86_64\033[0m" + BUILD_PLATFORM=linux-x86_64 + COMPILATION_PROC_COUNT=1 + ;; + esac + + echo "build platform: ${BUILD_PLATFORM}" + echo "parallel jobs: ${COMPILATION_PROC_COUNT}" + +} + +function checkPreRequisites { + + if ! [ -d "ffmpeg" ] || ! [ "$(ls -A ffmpeg)" ]; then + echo -e "\033[31mFailed! Submodule 'ffmpeg' not found!\033[0m" + echo -e "\033[31mTry to run: 'git submodule init && git submodule update'\033[0m" + exit + fi + + if [ -z "$NDK" -a "$NDK" == "" ]; then + echo -e "\033[31mFailed! NDK is empty. Run 'export NDK=[PATH_TO_NDK]'\033[0m" + exit + fi +} + +setCurrentPlatform +checkPreRequisites + +# TODO: fix env variable for NDK +# NDK=/opt/android-sdk/ndk-bundle + +cd ffmpeg + +#x86_64 +PREBUILT=$NDK/toolchains/x86_64-4.9/prebuilt/$BUILD_PLATFORM +PLATFORM=$NDK/platforms/android-21/arch-x86_64 +LD=$PREBUILT/bin/x86_64-linux-android-ld +AR=$PREBUILT/bin/x86_64-linux-android-ar +NM=$PREBUILT/bin/x86_64-linux-android-nm +GCCLIB=$PREBUILT/lib/gcc/x86_64-linux-android/4.9.x/libgcc.a +CC=$PREBUILT/bin/x86_64-linux-android-gcc +CROSS_PREFIX=$PREBUILT/bin/x86_64-linux-android- +ARCH=x86_64 +CPU=x86_64 +PREFIX=./build/$CPU +ADDITIONAL_CONFIGURE_FLAG="--disable-mmx --disable-inline-asm" +#build_one + +#arm64-v8a +PREBUILT=$NDK/toolchains/aarch64-linux-android-4.9/prebuilt/$BUILD_PLATFORM +PLATFORM=$NDK/platforms/android-21/arch-arm64 +LD=$PREBUILT/bin/aarch64-linux-android-ld +AR=$PREBUILT/bin/aarch64-linux-android-ar +NM=$PREBUILT/bin/aarch64-linux-android-nm +GCCLIB=$PREBUILT/lib/gcc/aarch64-linux-android/4.9.x/libgcc.a +CC=$PREBUILT/bin/aarch64-linux-android-gcc +CROSS_PREFIX=$PREBUILT/bin/aarch64-linux-android- +ARCH=arm64 +CPU=arm64-v8a +OPTIMIZE_CFLAGS= +PREFIX=./build/$CPU +ADDITIONAL_CONFIGURE_FLAG="--enable-neon --enable-optimizations" +build_one + + +#arm v7n +PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/$BUILD_PLATFORM +PLATFORM=$NDK/platforms/android-16/arch-arm +LD=$PREBUILT/bin/arm-linux-androideabi-ld +AR=$PREBUILT/bin/arm-linux-androideabi-ar +NM=$PREBUILT/bin/arm-linux-androideabi-nm +GCCLIB=$PREBUILT/lib/gcc/arm-linux-androideabi/4.9.x/libgcc.a +CC=$PREBUILT/bin/arm-linux-androideabi-gcc +CROSS_PREFIX=$PREBUILT/bin/arm-linux-androideabi- +ARCH=arm +CPU=armv7-a +OPTIMIZE_CFLAGS="-marm -march=$CPU" +PREFIX=./build/$CPU +ADDITIONAL_CONFIGURE_FLAG=--enable-neon +build_one + +#x86 platform +PREBUILT=$NDK/toolchains/x86-4.9/prebuilt/$BUILD_PLATFORM +PLATFORM=$NDK/platforms/android-16/arch-x86 +LD=$PREBUILT/bin/i686-linux-android-ld +AR=$PREBUILT/bin/i686-linux-android-ar +NM=$PREBUILT/bin/i686-linux-android-nm +GCCLIB=$PREBUILT/lib/gcc/i686-linux-android/4.9.x/libgcc.a +CC=$PREBUILT/bin/i686-linux-android-gcc +CROSS_PREFIX=$PREBUILT/bin/i686-linux-android- +ARCH=x86 +CPU=i686 +OPTIMIZE_CFLAGS="-march=$CPU" +PREFIX=./build/$CPU +ADDITIONAL_CONFIGURE_FLAG="--disable-mmx --disable-yasm" +build_one diff --git a/TMessagesProj/jni/build_ffmpeg_clang.sh b/TMessagesProj/jni/build_ffmpeg_clang.sh new file mode 100755 index 000000000..99fac2704 --- /dev/null +++ b/TMessagesProj/jni/build_ffmpeg_clang.sh @@ -0,0 +1,192 @@ +#!/bin/bash +set -e +function build_one { + CC="${CROSS_PREFIX}clang" + CXX="${CROSS_PREFIX}clang++" + AS="${CROSS_PREFIX}clang" + AR="${CROSS_PREFIX}ar" + LD="${CROSS_PREFIX}ld" + NM="${CROSS_PREFIX}nm" + STRIP="${CROSS_PREFIX}strip" + + echo "Cleaning..." + rm -f config.h + make clean || true + rm -rf ${TOOLCHAIN_PREFIX} + + echo "Toolchain..." + python $NDK/build/tools/make_standalone_toolchain.py \ + --arch ${ARCH} \ + --api ${ANDROID_API} \ + --stl libc++ \ + --install-dir=${TOOLCHAIN_PREFIX} + + echo "Configuring..." + + ./configure \ + --nm=${NM} \ + --ar=${AR} \ + --as=${CROSS_PREFIX}gcc \ + --strip=${STRIP} \ + --cc=${CC} \ + --cxx=${CXX} \ + --enable-stripping \ + --arch=$ARCH \ + --target-os=linux \ + --enable-cross-compile \ + --x86asmexe=$NDK/prebuilt/$BUILD_PLATFORM/bin/yasm \ + --prefix=$PREFIX \ + --enable-pic \ + --disable-shared \ + --enable-static \ + --enable-asm \ + --enable-inline-asm \ + --enable-x86asm \ + --cross-prefix=$CROSS_PREFIX \ + --sysroot=$SYSROOT \ + --extra-cflags="-Wl,-Bsymbolic -Os -DCONFIG_LINUX_PERF=0 -DANDROID $OPTIMIZE_CFLAGS -fPIE -pie --static -fPIC" \ + --extra-ldflags="-Wl,-Bsymbolic -Wl,-rpath-link=$PLATFORM/usr/lib -L$PLATFORM/usr/lib -nostdlib -lc -lm -ldl -fPIC" \ + \ + --enable-version3 \ + --enable-gpl \ + \ + --disable-linux-perf \ + \ + --disable-doc \ + --disable-htmlpages \ + --disable-avx \ + \ + --disable-everything \ + --disable-network \ + --disable-zlib \ + --disable-avfilter \ + --disable-avdevice \ + --disable-postproc \ + --disable-debug \ + --disable-programs \ + --disable-network \ + --disable-ffplay \ + --disable-ffprobe \ + --disable-postproc \ + --disable-avdevice \ + \ + --enable-runtime-cpudetect \ + --enable-pthreads \ + --enable-avresample \ + --enable-swscale \ + --enable-protocol=file \ + --enable-decoder=h264 \ + --enable-decoder=mpeg4 \ + --enable-decoder=mjpeg \ + --enable-decoder=gif \ + --enable-decoder=alac \ + --enable-demuxer=mov \ + --enable-demuxer=gif \ + --enable-hwaccels \ + $ADDITIONAL_CONFIGURE_FLAG + + #echo "continue?" + #read + make -j$COMPILATION_PROC_COUNT + make install +} + +function setCurrentPlatform { + + PLATFORM="$(uname -s)" + case "${PLATFORM}" in + Darwin*) + BUILD_PLATFORM=darwin-x86_64 + COMPILATION_PROC_COUNT=`sysctl -n hw.physicalcpu` + ;; + Linux*) + BUILD_PLATFORM=linux-x86_64 + COMPILATION_PROC_COUNT=$(nproc) + ;; + *) + echo -e "\033[33mWarning! Unknown platform ${PLATFORM}! falling back to linux-x86_64\033[0m" + BUILD_PLATFORM=linux-x86_64 + COMPILATION_PROC_COUNT=1 + ;; + esac + + echo "build platform: ${BUILD_PLATFORM}" + echo "parallel jobs: ${COMPILATION_PROC_COUNT}" + +} + +function checkPreRequisites { + + if ! [ -d "ffmpeg" ] || ! [ "$(ls -A ffmpeg)" ]; then + echo -e "\033[31mFailed! Submodule 'ffmpeg' not found!\033[0m" + echo -e "\033[31mTry to run: 'git submodule init && git submodule update'\033[0m" + exit + fi + + if [ -z "$NDK" -a "$NDK" == "" ]; then + echo -e "\033[31mFailed! NDK is empty. Run 'export NDK=[PATH_TO_NDK]'\033[0m" + exit + fi +} + +setCurrentPlatform +checkPreRequisites + +# TODO: fix env variable for NDK +# NDK=/opt/android-sdk/ndk-bundle + +cd ffmpeg + +BASEDIR=`pwd` +TOOLCHAIN_PREFIX=${BASEDIR}/toolchain-android + +## common +SYSROOT=${TOOLCHAIN_PREFIX}/sysroot + +#x86_64 +ANDROID_API=21 +PREBUILT=$NDK/toolchains/x86_64-4.9/prebuilt/$BUILD_PLATFORM +PLATFORM=$NDK/platforms/android-21/arch-x86_64 +CROSS_PREFIX=${TOOLCHAIN_PREFIX}/bin/x86_64-linux-android- +ARCH=x86_64 +CPU=x86_64 +PREFIX=./build/$CPU +ADDITIONAL_CONFIGURE_FLAG="--disable-asm" +build_one + +#arm64-v8a +ANDROID_API=21 +PREBUILT=$NDK/toolchains/aarch64-linux-android-4.9/prebuilt/$BUILD_PLATFORM +PLATFORM=$NDK/platforms/android-21/arch-arm64 +CROSS_PREFIX=${TOOLCHAIN_PREFIX}/bin/aarch64-linux-android- +ARCH=arm64 +CPU=arm64-v8a +OPTIMIZE_CFLAGS= +PREFIX=./build/$CPU +ADDITIONAL_CONFIGURE_FLAG="--enable-neon --enable-optimizations" +build_one + + +#arm v7n +ANDROID_API=16 +PREBUILT=$NDK/toolchains/arm-linux-androideabi-4.9/prebuilt/$BUILD_PLATFORM +PLATFORM=$NDK/platforms/android-16/arch-arm +CROSS_PREFIX=${TOOLCHAIN_PREFIX}/bin/arm-linux-androideabi- +ARCH=arm +CPU=armv7-a +OPTIMIZE_CFLAGS="-marm -march=$CPU" +PREFIX=./build/$CPU +ADDITIONAL_CONFIGURE_FLAG="--enable-neon" +build_one + +#x86 platform +ANDROID_API=16 +PREBUILT=$NDK/toolchains/x86-4.9/prebuilt/$BUILD_PLATFORM +PLATFORM=$NDK/platforms/android-16/arch-x86 +CROSS_PREFIX=${TOOLCHAIN_PREFIX}/bin/i686-linux-android- +ARCH=x86 +CPU=i686 +OPTIMIZE_CFLAGS="-march=$CPU" +PREFIX=./build/$CPU +ADDITIONAL_CONFIGURE_FLAG="--disable-x86asm --disable-inline-asm --disable-asm" +build_one diff --git a/TMessagesProj/jni/ffmpeg b/TMessagesProj/jni/ffmpeg new file mode 160000 index 000000000..d3b963cc4 --- /dev/null +++ b/TMessagesProj/jni/ffmpeg @@ -0,0 +1 @@ +Subproject commit d3b963cc41824a3c5b2758ac896fb23e20a87875