mirror of
https://github.com/samsonjs/media.git
synced 2026-04-27 15:07:40 +00:00
Make libffmpeg_jni link statically against ffmpeg
Also make compilation automatically determine the number of threads to use during compilation. PiperOrigin-RevId: 344264761
This commit is contained in:
parent
2fbad2105e
commit
bf21e3c690
3 changed files with 21 additions and 12 deletions
|
|
@ -34,8 +34,7 @@ public final class FfmpegLibrary {
|
||||||
|
|
||||||
private static final String TAG = "FfmpegLibrary";
|
private static final String TAG = "FfmpegLibrary";
|
||||||
|
|
||||||
private static final LibraryLoader LOADER =
|
private static final LibraryLoader LOADER = new LibraryLoader("ffmpeg_jni");
|
||||||
new LibraryLoader("avutil", "swresample", "avcodec", "ffmpeg_jni");
|
|
||||||
|
|
||||||
private static @MonotonicNonNull String version;
|
private static @MonotonicNonNull String version;
|
||||||
private static int inputBufferPaddingSize = C.LENGTH_UNSET;
|
private static int inputBufferPaddingSize = C.LENGTH_UNSET;
|
||||||
|
|
|
||||||
|
|
@ -9,11 +9,11 @@ set(ffmpeg_location "${CMAKE_CURRENT_SOURCE_DIR}/ffmpeg")
|
||||||
set(ffmpeg_binaries "${ffmpeg_location}/android-libs/${ANDROID_ABI}")
|
set(ffmpeg_binaries "${ffmpeg_location}/android-libs/${ANDROID_ABI}")
|
||||||
|
|
||||||
foreach(ffmpeg_lib avutil swresample avcodec)
|
foreach(ffmpeg_lib avutil swresample avcodec)
|
||||||
set(ffmpeg_lib_filename lib${ffmpeg_lib}.so)
|
set(ffmpeg_lib_filename lib${ffmpeg_lib}.a)
|
||||||
set(ffmpeg_lib_file_path ${ffmpeg_binaries}/${ffmpeg_lib_filename})
|
set(ffmpeg_lib_file_path ${ffmpeg_binaries}/${ffmpeg_lib_filename})
|
||||||
add_library(
|
add_library(
|
||||||
${ffmpeg_lib}
|
${ffmpeg_lib}
|
||||||
SHARED
|
STATIC
|
||||||
IMPORTED)
|
IMPORTED)
|
||||||
set_target_properties(
|
set_target_properties(
|
||||||
${ffmpeg_lib} PROPERTIES
|
${ffmpeg_lib} PROPERTIES
|
||||||
|
|
@ -30,7 +30,7 @@ add_library(ffmpeg_jni
|
||||||
|
|
||||||
target_link_libraries(ffmpeg_jni
|
target_link_libraries(ffmpeg_jni
|
||||||
PRIVATE android
|
PRIVATE android
|
||||||
PRIVATE avutil
|
|
||||||
PRIVATE swresample
|
PRIVATE swresample
|
||||||
PRIVATE avcodec
|
PRIVATE avcodec
|
||||||
|
PRIVATE avutil
|
||||||
PRIVATE ${android_log_lib})
|
PRIVATE ${android_log_lib})
|
||||||
|
|
|
||||||
|
|
@ -19,10 +19,12 @@ FFMPEG_EXT_PATH=$1
|
||||||
NDK_PATH=$2
|
NDK_PATH=$2
|
||||||
HOST_PLATFORM=$3
|
HOST_PLATFORM=$3
|
||||||
ENABLED_DECODERS=("${@:4}")
|
ENABLED_DECODERS=("${@:4}")
|
||||||
|
JOBS=$(nproc 2> /dev/null || sysctl -n hw.ncpu 2> /dev/null || echo 4)
|
||||||
|
echo "Using $JOBS jobs for make"
|
||||||
COMMON_OPTIONS="
|
COMMON_OPTIONS="
|
||||||
--target-os=android
|
--target-os=android
|
||||||
--disable-static
|
--enable-static
|
||||||
--enable-shared
|
--disable-shared
|
||||||
--disable-doc
|
--disable-doc
|
||||||
--disable-programs
|
--disable-programs
|
||||||
--disable-everything
|
--disable-everything
|
||||||
|
|
@ -48,11 +50,13 @@ cd "${FFMPEG_EXT_PATH}/jni/ffmpeg"
|
||||||
--cpu=armv7-a \
|
--cpu=armv7-a \
|
||||||
--cross-prefix="${TOOLCHAIN_PREFIX}/armv7a-linux-androideabi16-" \
|
--cross-prefix="${TOOLCHAIN_PREFIX}/armv7a-linux-androideabi16-" \
|
||||||
--nm="${TOOLCHAIN_PREFIX}/arm-linux-androideabi-nm" \
|
--nm="${TOOLCHAIN_PREFIX}/arm-linux-androideabi-nm" \
|
||||||
--strip="${TOOLCHAIN_PREFIX}/arm-linux-androideabi-strip" \
|
--ar="${TOOLCHAIN_PREFIX}/arm-linux-androideabi-ar" \
|
||||||
|
--ranlib="${TOOLCHAIN_PREFIX}/arm-linux-androideabi-ranlib" \
|
||||||
|
--strip="${TOOLCHAIN_PREFIX}/armv7a-linux-androideabi-strip" \
|
||||||
--extra-cflags="-march=armv7-a -mfloat-abi=softfp" \
|
--extra-cflags="-march=armv7-a -mfloat-abi=softfp" \
|
||||||
--extra-ldflags="-Wl,--fix-cortex-a8" \
|
--extra-ldflags="-Wl,--fix-cortex-a8" \
|
||||||
${COMMON_OPTIONS}
|
${COMMON_OPTIONS}
|
||||||
make -j4
|
make -j$JOBS
|
||||||
make install-libs
|
make install-libs
|
||||||
make clean
|
make clean
|
||||||
./configure \
|
./configure \
|
||||||
|
|
@ -61,9 +65,11 @@ make clean
|
||||||
--cpu=armv8-a \
|
--cpu=armv8-a \
|
||||||
--cross-prefix="${TOOLCHAIN_PREFIX}/aarch64-linux-android21-" \
|
--cross-prefix="${TOOLCHAIN_PREFIX}/aarch64-linux-android21-" \
|
||||||
--nm="${TOOLCHAIN_PREFIX}/aarch64-linux-android-nm" \
|
--nm="${TOOLCHAIN_PREFIX}/aarch64-linux-android-nm" \
|
||||||
|
--ar="${TOOLCHAIN_PREFIX}/aarch64-linux-android-ar" \
|
||||||
|
--ranlib="${TOOLCHAIN_PREFIX}/aarch64-linux-android-ranlib" \
|
||||||
--strip="${TOOLCHAIN_PREFIX}/aarch64-linux-android-strip" \
|
--strip="${TOOLCHAIN_PREFIX}/aarch64-linux-android-strip" \
|
||||||
${COMMON_OPTIONS}
|
${COMMON_OPTIONS}
|
||||||
make -j4
|
make -j$JOBS
|
||||||
make install-libs
|
make install-libs
|
||||||
make clean
|
make clean
|
||||||
./configure \
|
./configure \
|
||||||
|
|
@ -72,10 +78,12 @@ make clean
|
||||||
--cpu=i686 \
|
--cpu=i686 \
|
||||||
--cross-prefix="${TOOLCHAIN_PREFIX}/i686-linux-android16-" \
|
--cross-prefix="${TOOLCHAIN_PREFIX}/i686-linux-android16-" \
|
||||||
--nm="${TOOLCHAIN_PREFIX}/i686-linux-android-nm" \
|
--nm="${TOOLCHAIN_PREFIX}/i686-linux-android-nm" \
|
||||||
|
--ar="${TOOLCHAIN_PREFIX}/i686-linux-android-ar" \
|
||||||
|
--ranlib="${TOOLCHAIN_PREFIX}/i686-linux-android-ranlib" \
|
||||||
--strip="${TOOLCHAIN_PREFIX}/i686-linux-android-strip" \
|
--strip="${TOOLCHAIN_PREFIX}/i686-linux-android-strip" \
|
||||||
--disable-asm \
|
--disable-asm \
|
||||||
${COMMON_OPTIONS}
|
${COMMON_OPTIONS}
|
||||||
make -j4
|
make -j$JOBS
|
||||||
make install-libs
|
make install-libs
|
||||||
make clean
|
make clean
|
||||||
./configure \
|
./configure \
|
||||||
|
|
@ -84,9 +92,11 @@ make clean
|
||||||
--cpu=x86_64 \
|
--cpu=x86_64 \
|
||||||
--cross-prefix="${TOOLCHAIN_PREFIX}/x86_64-linux-android21-" \
|
--cross-prefix="${TOOLCHAIN_PREFIX}/x86_64-linux-android21-" \
|
||||||
--nm="${TOOLCHAIN_PREFIX}/x86_64-linux-android-nm" \
|
--nm="${TOOLCHAIN_PREFIX}/x86_64-linux-android-nm" \
|
||||||
|
--ar="${TOOLCHAIN_PREFIX}/x86_64-linux-android-ar" \
|
||||||
|
--ranlib="${TOOLCHAIN_PREFIX}/x86_64-linux-android-ranlib" \
|
||||||
--strip="${TOOLCHAIN_PREFIX}/x86_64-linux-android-strip" \
|
--strip="${TOOLCHAIN_PREFIX}/x86_64-linux-android-strip" \
|
||||||
--disable-asm \
|
--disable-asm \
|
||||||
${COMMON_OPTIONS}
|
${COMMON_OPTIONS}
|
||||||
make -j4
|
make -j$JOBS
|
||||||
make install-libs
|
make install-libs
|
||||||
make clean
|
make clean
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue