diff --git a/android.sh b/android.sh index 39018fe..f621a8f 100644 --- a/android.sh +++ b/android.sh @@ -17,11 +17,12 @@ ENABLED_CONFIG="\ --enable-libdav1d \ --enable-muxer=wav,mp4,matroska,webm,mp3,adts,flac,ogg,opus,mpegts,hls,dash,segment \ --enable-demuxer=* \ - --enable-encoder=mjpeg \ - --enable-decoder=h264,hevc,vp8,vp9,libdav1d,flv,vp6f,adpcm_swf,mpeg4,wmv3,mpeg1video,mpeg2video,mpeg2audio,msmpeg4v2,msmpeg4v3,theora,amrnb,amrwb,dvvideo,h263,mjpeg,png,jpeg,bmp,webp,mp3,aac,ac3,eac3,flac,opus,vorbis,pcm_s16le,pcm_s24le,alac,wma,ass,ssa,mov_text,subrip,webvtt,dvbsub,dvdsub,pgssub \ + --enable-encoder=mjpeg,utvideo \ + --enable-decoder=h264,hevc,vp8,vp9,libdav1d,flv,vp6f,adpcm_swf,mpeg4,wmv3,mpeg1video,mpeg2video,mpeg2audio,msmpeg4v2,msmpeg4v3,theora,truehd,amrnb,amrwb,dvvideo,h263,mjpeg,png,jpeg,bmp,webp,mp3,aac,ac3,eac3,flac,opus,vorbis,pcm_s16le,pcm_s24le,alac,wma,ass,ssa,mov_text,subrip,webvtt,dvbsub,dvdsub,pgssub,utvideo \ --enable-parser=* \ - --enable-bsf=* \ - --enable-shared " + --enable-bsf=* \ + --enable-protocol=file \ + --enable-static " ### Disable FFMPEG BUILD MODULES #### @@ -35,7 +36,7 @@ DISABLED_CONFIG="\ --disable-libxml2 \ --disable-avdevice \ --disable-network \ - --disable-static \ + --disable-shared \ --disable-debug \ --disable-ffplay \ --disable-ffprobe \ @@ -105,8 +106,8 @@ pkg-config = 'pkg-config' needs_exe_wrapper = true [built-in options] -c_args = ['-fpic'] -cpp_args = ['-fpic'] +c_args = ['-fPIC'] +cpp_args = ['-fPIC'] c_link_args = ['-Wl,-z,max-page-size=16384'] [host_machine] @@ -157,8 +158,8 @@ configure_ffmpeg(){ --cxx="$CLANGXX" \ --sysroot="$SYSROOT" \ --prefix="$PREFIX" \ - --extra-cflags="-fpic -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D__BIONIC_NO_PAGE_SIZE_MACRO -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security $EXTRA_CFLAGS -I$PREFIX/include " \ - --extra-cxxflags="-fpic -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D__BIONIC_NO_PAGE_SIZE_MACRO -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti $EXTRA_CXXFLAGS -I$PREFIX/include " \ + --extra-cflags="-fPIC -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D__BIONIC_NO_PAGE_SIZE_MACRO -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security $EXTRA_CFLAGS -I$PREFIX/include " \ + --extra-cxxflags="-fPIC -DANDROID -fdata-sections -ffunction-sections -funwind-tables -fstack-protector-strong -no-canonical-prefixes -D__BIONIC_NO_PAGE_SIZE_MACRO -D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -std=c++17 -fexceptions -frtti $EXTRA_CXXFLAGS -I$PREFIX/include " \ --extra-ldflags=" -Wl,-z,max-page-size=16384 -Wl,--build-id=sha1 -Wl,--no-rosegment -Wl,--no-undefined-version -Wl,--fatal-warnings -Wl,--no-undefined -Qunused-arguments -L$SYSROOT/usr/lib/$TARGET_ARCH-linux-android/$ANDROID_API_LEVEL -L$PREFIX/lib" \ --enable-pic \ ${ENABLED_CONFIG} \ @@ -172,6 +173,10 @@ configure_ffmpeg(){ make clean make -j2 make install -j2 + + ${CLANG} -shared -o ${PREFIX}/lib/libffmpeg.so \ + $(find libavcodec libavformat libavutil libswresample libswscale -name "*.o") \ + -lm -lz -ldl } @@ -186,11 +191,11 @@ for ARCH in "${ARCH_LIST[@]}"; do TARGET_ABI="aarch64" PREFIX="${FFMPEG_BUILD_DIR}/$ANDROID_API_LEVEL/arm64-v8a" CROSS_PREFIX="$ANDROID_NDK_PATH/toolchains/llvm/prebuilt/linux-x86_64/bin/$TARGET_ABI-linux-android${ANDROID_API_LEVEL}-" - EXTRA_CFLAGS="-O2 -march=$TARGET_CPU -fomit-frame-pointer" - EXTRA_CXXFLAGS="-O2 -march=$TARGET_CPU -fomit-frame-pointer" + EXTRA_CFLAGS="-O3 -march=$TARGET_CPU -fomit-frame-pointer" + EXTRA_CXXFLAGS="-O3 -march=$TARGET_CPU -fomit-frame-pointer" EXTRA_CONFIG="\ - --enable-asm \ + --disable-asm \ --enable-neon " ;; "armv7-a"|"armeabi-v7a"|"armv7a") @@ -200,14 +205,14 @@ for ARCH in "${ARCH_LIST[@]}"; do TARGET_ABI="armv7a" PREFIX="${FFMPEG_BUILD_DIR}/$ANDROID_API_LEVEL/armeabi-v7a" CROSS_PREFIX="$ANDROID_NDK_PATH/toolchains/llvm/prebuilt/linux-x86_64/bin/$TARGET_ABI-linux-androideabi${ANDROID_API_LEVEL}-" - EXTRA_CFLAGS="-O2 -march=$TARGET_CPU -mfpu=neon -fomit-frame-pointer" - EXTRA_CXXFLAGS="-O2 -march=$TARGET_CPU -mfpu=neon -fomit-frame-pointer" + EXTRA_CFLAGS="-O3 -march=$TARGET_CPU -mfpu=neon -fomit-frame-pointer" + EXTRA_CXXFLAGS="-O3 -march=$TARGET_CPU -mfpu=neon -fomit-frame-pointer" EXTRA_CONFIG="\ --disable-armv5te \ --disable-armv6 \ --disable-armv6t2 \ - --enable-asm \ + --disable-asm \ --enable-neon " ;; "x86-64"|"x86_64") @@ -217,11 +222,11 @@ for ARCH in "${ARCH_LIST[@]}"; do TARGET_ABI="x86_64" PREFIX="${FFMPEG_BUILD_DIR}/$ANDROID_API_LEVEL/x86_64" CROSS_PREFIX="$ANDROID_NDK_PATH/toolchains/llvm/prebuilt/linux-x86_64/bin/$TARGET_ABI-linux-android${ANDROID_API_LEVEL}-" - EXTRA_CFLAGS="-O2 -march=$TARGET_CPU -fomit-frame-pointer" - EXTRA_CXXFLAGS="-O2 -march=$TARGET_CPU -fomit-frame-pointer" + EXTRA_CFLAGS="-O3 -march=$TARGET_CPU -fomit-frame-pointer" + EXTRA_CXXFLAGS="-O3 -march=$TARGET_CPU -fomit-frame-pointer" EXTRA_CONFIG="\ - --enable-asm " + --disable-asm " ;; "x86"|"i686") echo -e "\e[1;32m$ARCH Libraries\e[0m" @@ -230,8 +235,8 @@ for ARCH in "${ARCH_LIST[@]}"; do TARGET_ABI="i686" PREFIX="${FFMPEG_BUILD_DIR}/$ANDROID_API_LEVEL/x86" CROSS_PREFIX="$ANDROID_NDK_PATH/toolchains/llvm/prebuilt/linux-x86_64/bin/$TARGET_ABI-linux-android${ANDROID_API_LEVEL}-" - EXTRA_CFLAGS="-O2 -march=$TARGET_CPU -fomit-frame-pointer" - EXTRA_CXXFLAGS="-O2 -march=$TARGET_CPU -fomit-frame-pointer" + EXTRA_CFLAGS="-O3 -march=$TARGET_CPU -fomit-frame-pointer" + EXTRA_CXXFLAGS="-O3 -march=$TARGET_CPU -fomit-frame-pointer" EXTRA_CONFIG="\ --disable-asm " ;;