mirror of
git://code.qt.io/qt/qt5.git
synced 2026-04-05 05:06:36 +08:00
Coin: Dynamically linked FFmpeg for Android (on Linux host)
Prepare install-ffmpeg-android.sh script for turning on dynamically
linked FFmpeg
Task-number: QTBUG-122010
Change-Id: Id186e546b1b3c9bbb5a84492766411f806f51b4e
Reviewed-by: Artem Dyomin <artem.dyomin@qt.io>
(cherry picked from commit 9e0d693caa)
Reviewed-by: Qt Cherry-pick Bot <cherrypick_bot@qt-project.org>
This commit is contained in:
committed by
Qt Cherry-pick Bot
parent
f010bb13a9
commit
b790f9314e
@@ -2,7 +2,7 @@
|
||||
# Copyright (C) 2022 The Qt Company Ltd.
|
||||
# SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
|
||||
|
||||
# This script will build and install FFmpeg static libs
|
||||
# This script will build and install FFmpeg shared libs
|
||||
set -ex
|
||||
os="$1"
|
||||
|
||||
@@ -30,28 +30,36 @@ build_ffmpeg_android() {
|
||||
|
||||
target_arch=$1
|
||||
target_dir=$2
|
||||
shared="${3:-no}"
|
||||
|
||||
sudo mkdir -p "$target_dir"
|
||||
|
||||
openssl_include="$OPENSSL_ANDROID_HOME_DEFAULT/include"
|
||||
openssl_libs=""
|
||||
libs_prefix=""
|
||||
if [ "$target_arch" == "x86_64" ]; then
|
||||
target_toolchain_arch="x86_64-linux-android"
|
||||
target_arch=x86_64
|
||||
target_cpu=x86-64
|
||||
openssl_libs="$OPENSSL_ANDROID_HOME_DEFAULT/x86_64"
|
||||
libs_prefix="_x86_64"
|
||||
elif [ "$target_arch" == "x86" ]; then
|
||||
target_toolchain_arch="i686-linux-android"
|
||||
target_arch=x86
|
||||
target_cpu=i686
|
||||
openssl_libs="$OPENSSL_ANDROID_HOME_DEFAULT/x86"
|
||||
libs_prefix="_x86"
|
||||
elif [ "$target_arch" == "arm64" ]; then
|
||||
target_toolchain_arch="aarch64-linux-android"
|
||||
target_arch=aarch64
|
||||
target_cpu=armv8-a
|
||||
openssl_libs="$OPENSSL_ANDROID_HOME_DEFAULT/arm64-v8a"
|
||||
libs_prefix="_arm64-v8a"
|
||||
fi
|
||||
|
||||
ln -s "${openssl_libs}/libcrypto_3.so" "${openssl_libs}/libcrypto.so"
|
||||
ln -s "${openssl_libs}/libssl_3.so" "${openssl_libs}/libssl.so"
|
||||
|
||||
api_version=24
|
||||
|
||||
ndk_root=$ANDROID_NDK_ROOT_DEFAULT
|
||||
@@ -71,6 +79,9 @@ build_ffmpeg_android() {
|
||||
|
||||
ffmpeg_config_options=$(cat "${BASH_SOURCE%/*}/../shared/ffmpeg_config_options.txt")
|
||||
ffmpeg_config_options+=" --enable-cross-compile --target-os=android --enable-jni --enable-mediacodec --enable-openssl --enable-pthreads --enable-neon --disable-asm --disable-indev=android_camera"
|
||||
if [[ "$shared" == "yes" ]]; then
|
||||
ffmpeg_config_options+=" --enable-shared --disable-static"
|
||||
fi
|
||||
ffmpeg_config_options+=" --arch=$target_arch --cpu=${target_cpu} --sysroot=${sysroot} --sysinclude=${sysroot}/usr/include/"
|
||||
ffmpeg_config_options+=" --cc=${cc} --cxx=${cxx} --ar=${ar} --ranlib=${ranlib}"
|
||||
ffmpeg_config_options+=" --extra-cflags=-I${openssl_include} --extra-ldflags=-L${openssl_libs}"
|
||||
@@ -83,6 +94,15 @@ build_ffmpeg_android() {
|
||||
sudo "$ffmpeg_source_dir/configure" $ffmpeg_config_options --prefix="$target_dir"
|
||||
|
||||
sudo make install -j4
|
||||
|
||||
rm -f "${openssl_libs}/libcrypto.so"
|
||||
rm -f "${openssl_libs}/libssl.so"
|
||||
|
||||
if [[ "$shared" == "yes" ]]; then
|
||||
fix_dependencies="${BASH_SOURCE%/*}/../linux/fix_ffmpeg_dependencies.sh"
|
||||
sudo "${fix_dependencies}" "${target_dir}" "${libs_prefix}" "no"
|
||||
fi
|
||||
|
||||
popd
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user