mirror of
https://github.com/samsonjs/media.git
synced 2026-04-05 11:15:46 +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 LibraryLoader LOADER =
|
||||
new LibraryLoader("avutil", "swresample", "avcodec", "ffmpeg_jni");
|
||||
private static final LibraryLoader LOADER = new LibraryLoader("ffmpeg_jni");
|
||||
|
||||
private static @MonotonicNonNull String version;
|
||||
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}")
|
||||
|
||||
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})
|
||||
add_library(
|
||||
${ffmpeg_lib}
|
||||
SHARED
|
||||
STATIC
|
||||
IMPORTED)
|
||||
set_target_properties(
|
||||
${ffmpeg_lib} PROPERTIES
|
||||
|
|
@ -30,7 +30,7 @@ add_library(ffmpeg_jni
|
|||
|
||||
target_link_libraries(ffmpeg_jni
|
||||
PRIVATE android
|
||||
PRIVATE avutil
|
||||
PRIVATE swresample
|
||||
PRIVATE avcodec
|
||||
PRIVATE avutil
|
||||
PRIVATE ${android_log_lib})
|
||||
|
|
|
|||
|
|
@ -19,10 +19,12 @@ FFMPEG_EXT_PATH=$1
|
|||
NDK_PATH=$2
|
||||
HOST_PLATFORM=$3
|
||||
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="
|
||||
--target-os=android
|
||||
--disable-static
|
||||
--enable-shared
|
||||
--enable-static
|
||||
--disable-shared
|
||||
--disable-doc
|
||||
--disable-programs
|
||||
--disable-everything
|
||||
|
|
@ -48,11 +50,13 @@ cd "${FFMPEG_EXT_PATH}/jni/ffmpeg"
|
|||
--cpu=armv7-a \
|
||||
--cross-prefix="${TOOLCHAIN_PREFIX}/armv7a-linux-androideabi16-" \
|
||||
--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-ldflags="-Wl,--fix-cortex-a8" \
|
||||
${COMMON_OPTIONS}
|
||||
make -j4
|
||||
make -j$JOBS
|
||||
make install-libs
|
||||
make clean
|
||||
./configure \
|
||||
|
|
@ -61,9 +65,11 @@ make clean
|
|||
--cpu=armv8-a \
|
||||
--cross-prefix="${TOOLCHAIN_PREFIX}/aarch64-linux-android21-" \
|
||||
--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" \
|
||||
${COMMON_OPTIONS}
|
||||
make -j4
|
||||
make -j$JOBS
|
||||
make install-libs
|
||||
make clean
|
||||
./configure \
|
||||
|
|
@ -72,10 +78,12 @@ make clean
|
|||
--cpu=i686 \
|
||||
--cross-prefix="${TOOLCHAIN_PREFIX}/i686-linux-android16-" \
|
||||
--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" \
|
||||
--disable-asm \
|
||||
${COMMON_OPTIONS}
|
||||
make -j4
|
||||
make -j$JOBS
|
||||
make install-libs
|
||||
make clean
|
||||
./configure \
|
||||
|
|
@ -84,9 +92,11 @@ make clean
|
|||
--cpu=x86_64 \
|
||||
--cross-prefix="${TOOLCHAIN_PREFIX}/x86_64-linux-android21-" \
|
||||
--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" \
|
||||
--disable-asm \
|
||||
${COMMON_OPTIONS}
|
||||
make -j4
|
||||
make -j$JOBS
|
||||
make install-libs
|
||||
make clean
|
||||
|
|
|
|||
Loading…
Reference in a new issue