Skip to content

Commit dbf601a

Browse files
committed
android abi use 23, ffmpeg not enable dash and iconv
1 parent 9609a17 commit dbf601a

File tree

8 files changed

+41
-192
lines changed

8 files changed

+41
-192
lines changed

configs/ffconfig/auto-detect-third-libs.sh

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -149,12 +149,11 @@ echo "----------------------"
149149
# echo "[❌] --disable-decoder=av3a"
150150
# fi
151151

152-
# echo "[✅] --enable-parser=av3a"
153-
# THIRD_CFG_FLAGS="$THIRD_CFG_FLAGS --enable-parser=av3a --enable-demuxer=av3a"
154-
152+
echo "[✅] --enable-parser=av3a"
153+
THIRD_CFG_FLAGS="$THIRD_CFG_FLAGS --enable-parser=av3a --enable-demuxer=av3a"
154+
echo "----------------------"
155155

156156
# --------------------------------------------------------------
157-
158157
THIRD_CFG_FLAGS="$THIRD_CFG_FLAGS --pkg-config-flags=--static"
159158
THIRD_CFG_FLAGS="$THIRD_CFG_FLAGS --enable-static"
160159
THIRD_CFG_FLAGS="$THIRD_CFG_FLAGS --disable-shared"
@@ -184,13 +183,21 @@ else
184183
THIRD_CFG_FLAGS="$THIRD_CFG_FLAGS --enable-small"
185184
fi
186185

186+
# for cross compile
187+
if [[ $(uname -m) != "$MR_ARCH" || "$MR_FORCE_CROSS" ]]; then
188+
echo "[*] cross compile, on $(uname -m) compile $MR_PLAT $MR_ARCH."
189+
THIRD_CFG_FLAGS="$THIRD_CFG_FLAGS --sysroot=$MR_SYS_ROOT"
190+
THIRD_CFG_FLAGS="$THIRD_CFG_FLAGS --enable-cross-compile"
191+
fi
192+
187193
# for apple paltform
188194

189195
case "$MR_PLAT" in
190196
ios|macos|tvos)
191197
# enable videotoolbox hwaccel
192-
CFG_FLAGS="$CFG_FLAGS --enable-videotoolbox"
193-
CFG_FLAGS="$CFG_FLAGS --enable-hwaccel=*_videotoolbox"
198+
THIRD_CFG_FLAGS="$THIRD_CFG_FLAGS --enable-videotoolbox"
199+
THIRD_CFG_FLAGS="$THIRD_CFG_FLAGS --enable-hwaccel=*_videotoolbox"
200+
# enable iconv
201+
THIRD_CFG_FLAGS="$THIRD_CFG_FLAGS --enable-iconv"
194202
;;
195-
esac
196-
203+
esac

configs/ffconfig/module-full.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -446,7 +446,6 @@ export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-devices"
446446
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-filters"
447447

448448
# External library support:
449-
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --enable-iconv"
450449
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-audiotoolbox"
451450
# hw accels
452451
export COMMON_FF_CFG_FLAGS="$COMMON_FF_CFG_FLAGS --disable-hwaccels"

do-compile/android/any.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,6 @@ function main() {
9494
done
9595

9696
rm -rf $MR_UNI_PROD_DIR/$LIB_NAME
97-
echo 'done.'
9897
;;
9998
'lipo')
10099
do_lipo_all "$MR_ACTIVE_ARCHS"

do-compile/android/ffmpeg.sh

Lines changed: 11 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -34,25 +34,21 @@ cd "$THIS_DIR"
3434
source $THIS_DIR/../../configs/ffconfig/module.sh
3535
source $THIS_DIR/../../configs/ffconfig/auto-detect-third-libs.sh
3636

37-
CFG_FLAGS="$COMMON_FF_CFG_FLAGS"
37+
CFG_FLAGS=
38+
CFG_FLAGS="$CFG_FLAGS $COMMON_FF_CFG_FLAGS"
3839
CFG_FLAGS="$CFG_FLAGS $THIRD_CFG_FLAGS"
39-
40-
# for cross compile
41-
if [[ $(uname -m) != "$MR_ARCH" || "$MR_FORCE_CROSS" ]]; then
42-
echo "[*] cross compile, on $(uname -m) compile $MR_PLAT $MR_ARCH."
43-
# https://www.gnu.org/software/automake/manual/html_node/Cross_002dCompilation.html
44-
CFG_FLAGS="$CFG_FLAGS --sysroot=$MR_SYS_ROOT"
45-
CFG_FLAGS="$CFG_FLAGS --enable-cross-compile"
46-
fi
47-
40+
# CFG_FLAGS="$CFG_FLAGS --enable-demuxer=dash --enable-libxml2"
41+
# # use system xml2 lib
42+
# XML_CFLAGS=
43+
# C_FLAGS="$C_FLAGS $XML_CFLAGS"
44+
# LDFLAGS="$XML_CFLAGS -L${MR_TOOLCHAIN_ROOT}/lib -lxml2"
4845

4946
# Android 15 with 16 kb page size support
5047
# https://developer.android.com/guide/practices/page-sizes#compile-r27
5148
EXTRA_LDFLAGS="-Wl,-z,max-page-size=16384"
5249

53-
54-
C_FLAGS="$MR_OTHER_CFLAGS"
55-
LDFLAGS=$EXTRA_LDFLAGS
50+
C_FLAGS="$C_FLAGS $MR_OTHER_CFLAGS"
51+
LDFLAGS="$LDFLAGS $EXTRA_LDFLAGS"
5652

5753

5854
echo "----------------------"
@@ -72,14 +68,10 @@ cd $MR_BUILD_SOURCE
7268
if [[ -f "./config.h" ]]; then
7369
echo 'reuse configure'
7470
else
75-
76-
echo
77-
echo "CC: ${MR_TRIPLE_CC}"
7871
echo
72+
echo "CC: $MR_CC"
7973
echo "CFLAGS: $C_FLAGS"
80-
echo
81-
echo "LDFLAGS:$LDFLAGS"
82-
echo
74+
echo "LDFLAG:$LDFLAGS"
8375
echo "FF_CFG_FLAGS: $CFG_FLAGS"
8476
echo
8577

do-compile/apple/any.sh

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -193,7 +193,6 @@ function main() {
193193
done
194194

195195
rm -rf $MR_UNI_PROD_DIR/$LIB_NAME
196-
echo 'done.'
197196
;;
198197
'lipo')
199198
do_lipo_all "$MR_ACTIVE_ARCHS"

do-compile/apple/ffmpeg.sh

Lines changed: 5 additions & 152 deletions
Original file line numberDiff line numberDiff line change
@@ -34,163 +34,19 @@ cd "$THIS_DIR"
3434
source $THIS_DIR/../../configs/ffconfig/module.sh
3535
source $THIS_DIR/../../configs/ffconfig/auto-detect-third-libs.sh
3636

37-
CFG_FLAGS="$COMMON_FF_CFG_FLAGS"
37+
CFG_FLAGS=
38+
CFG_FLAGS="$CFG_FLAGS $COMMON_FF_CFG_FLAGS"
3839
CFG_FLAGS="$CFG_FLAGS $THIRD_CFG_FLAGS"
3940

40-
# for cross compile
41-
if [[ $(uname -m) != "$MR_ARCH" || "$MR_FORCE_CROSS" ]]; then
42-
echo "[*] cross compile, on $(uname -m) compile $MR_PLAT $MR_ARCH."
43-
# https://www.gnu.org/software/automake/manual/html_node/Cross_002dCompilation.html
44-
C_FLAGS="$C_FLAGS --sysroot $MR_SYS_ROOT"
45-
CFG_FLAGS="$CFG_FLAGS --enable-cross-compile"
46-
fi
47-
4841
C_FLAGS="$MR_OTHER_CFLAGS"
49-
LDFLAGS=$EXTRA_LDFLAGS
50-
42+
LDFLAGS="$EXTRA_LDFLAGS"
5143

52-
CFG_FLAGS="$CFG_FLAGS --pkg-config-flags=--static"
5344
CFG_FLAGS="$CFG_FLAGS --enable-demuxer=dash --enable-libxml2"
5445

55-
# use system xml2 lib
46+
# use system xml2 lib
5647
C_FLAGS="$C_FLAGS $(xml2-config --prefix=${MR_SYS_ROOT}/usr --cflags)"
5748
LDFLAGS="$C_FLAGS $(xml2-config --prefix=${MR_SYS_ROOT}/usr --libs)"
5849

59-
# https://ffmpeg.org/doxygen/4.1/md_LICENSE.html
60-
# https://www.openssl.org/source/license.html
61-
62-
# pkg-config --variable pc_path pkg-config
63-
# pkg-config --libs dav1d
64-
# pkg-config --cflags --libs libbluray
65-
66-
echo "----------------------"
67-
68-
pkg-config --libs x264 --silence-errors >/dev/null && enable_x264=1
69-
70-
if [[ $enable_x264 ]];then
71-
echo "[✅] --enable-libx264"
72-
CFG_FLAGS="$CFG_FLAGS --enable-gpl --enable-libx264"
73-
else
74-
echo "[❌] --disable-libx264"
75-
fi
76-
77-
echo "----------------------"
78-
79-
pkg-config --libs fdk-aac --silence-errors >/dev/null && enable_aac=1
80-
81-
if [[ $enable_aac ]];then
82-
echo "[✅] --enable-libfdk-aac"
83-
CFG_FLAGS="$CFG_FLAGS --enable-nonfree --enable-libfdk-aac"
84-
else
85-
echo "[❌] --disable-libfdk-aac"
86-
fi
87-
88-
echo "----------------------"
89-
90-
pkg-config --libs mp3lame --silence-errors >/dev/null && enable_lame=1
91-
92-
if [[ $enable_lame ]];then
93-
echo "[✅] --enable-libmp3lame"
94-
CFG_FLAGS="$CFG_FLAGS --enable-gpl --enable-libmp3lame"
95-
else
96-
echo "[❌] --disable-libmp3lame"
97-
fi
98-
99-
echo "----------------------"
100-
# use pkg-config fix ff4.0--ijk0.8.8--20210426--001 use openssl 1_1_1m occur can't find openssl error.
101-
102-
pkg-config --libs openssl --silence-errors >/dev/null && enable_openssl=1
103-
104-
if [[ $enable_openssl ]];then
105-
echo "[✅] --enable-openssl"
106-
CFG_FLAGS="$CFG_FLAGS --enable-nonfree --enable-openssl"
107-
else
108-
echo "[❌] --disable-openssl"
109-
fi
110-
111-
echo "----------------------"
112-
113-
pkg-config --libs opus --silence-errors >/dev/null && enable_opus=1
114-
115-
if [[ $enable_opus ]];then
116-
echo "[✅] --enable-libopus"
117-
CFG_FLAGS="$CFG_FLAGS --enable-libopus --enable-decoder=opus"
118-
else
119-
echo "[❌] --disable-libopus"
120-
fi
121-
122-
echo "----------------------"
123-
# FFmpeg 4.2 支持AV1、AVS2等格式
124-
# dav1d由VideoLAN,VLC和FFmpeg联合开发,项目由AOM联盟赞助,和libaom相比,dav1d性能普遍提升100%,最高提升400%
125-
#just wait videotoolbox support decode av1
126-
# CFG_FLAGS="$CFG_FLAGS --enable-decoder=av1"
127-
128-
pkg-config --libs dav1d --silence-errors >/dev/null && enable_dav1d=1
129-
130-
if [[ $enable_dav1d ]];then
131-
echo "[✅] --enable-libdav1d"
132-
CFG_FLAGS="$CFG_FLAGS --enable-libdav1d --enable-decoder=libdav1d"
133-
else
134-
echo "[❌] --disable-libdav1d"
135-
fi
136-
137-
echo "----------------------"
138-
139-
pkg-config --libs libsmb2 --silence-errors >/dev/null && enable_smb2=1
140-
141-
if [[ $enable_smb2 ]];then
142-
echo "[✅] --enable-libsmb2"
143-
CFG_FLAGS="$CFG_FLAGS --enable-libsmb2 --enable-protocol=libsmb2"
144-
else
145-
echo "[❌] --disable-libsmb2"
146-
fi
147-
148-
echo "----------------------"
149-
150-
pkg-config --libs libbluray --silence-errors >/dev/null && enable_bluray=1
151-
152-
if [[ $enable_bluray ]];then
153-
echo "[✅] --enable-libbluray"
154-
CFG_FLAGS="$CFG_FLAGS --enable-libbluray --enable-protocol=bluray"
155-
else
156-
echo "[❌] --disable-libbluray"
157-
fi
158-
echo "----------------------"
159-
160-
pkg-config --libs dvdread --silence-errors >/dev/null && enable_dvdread=1
161-
162-
if [[ $enable_dvdread ]];then
163-
echo "[✅] --enable-libdvdread"
164-
CFG_FLAGS="$CFG_FLAGS --enable-libdvdread --enable-protocol=dvd"
165-
else
166-
echo "[❌] --disable-libdvdread"
167-
fi
168-
169-
echo "----------------------"
170-
171-
pkg-config --libs uavs3d --silence-errors >/dev/null && enable_uavs3d=1
172-
173-
if [[ $enable_uavs3d ]];then
174-
echo "[✅] --enable-libuavs3d"
175-
CFG_FLAGS="$CFG_FLAGS --enable-libuavs3d --enable-decoder=libuavs3d"
176-
else
177-
echo "[❌] --disable-libuavs3d"
178-
fi
179-
180-
echo "----------------------"
181-
182-
# pkg-config --libs avs3ad --silence-errors >/dev/null && enable_avs3ad=1
183-
184-
# if [[ $enable_avs3ad ]];then
185-
# echo "[✅] --enable-decoder=av3a"
186-
# CFG_FLAGS="$CFG_FLAGS --enable-parser=av3a"
187-
# else
188-
# echo "[❌] --disable-decoder=av3a"
189-
# fi
190-
191-
echo "[✅] --enable-parser=av3a"
192-
CFG_FLAGS="$CFG_FLAGS --enable-parser=av3a --enable-demuxer=av3a"
193-
19450
echo "----------------------"
19551
echo "[*] configure"
19652

@@ -209,12 +65,9 @@ if [[ -f "./config.h" ]]; then
20965
else
21066
echo
21167
echo "CC: $MR_CC"
212-
echo
21368
echo "CFLAGS: $C_FLAGS"
214-
echo
215-
echo "FF_CFG_FLAGS: $CFG_FLAGS"
216-
echo
21769
echo "LDFLAG:$LDFLAGS"
70+
echo "FF_CFG_FLAGS: $CFG_FLAGS"
21871
echo
21972
./configure \
22073
$CFG_FLAGS \

tools/export-android-build-env.sh

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -56,14 +56,14 @@ else
5656
export MR_NDK_REL=$(grep -m 1 -o '^## r[0-9]*.*' $ANDROID_NDK_HOME/CHANGELOG.md | awk '{print $2}')
5757
fi
5858

59-
export MR_ANDROID_API=35
59+
export MR_ANDROID_API=23
6060

61-
toolchian="$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/${MR_HOST_TAG}"
62-
export PATH="${toolchian}/bin:$PATH"
63-
export MR_SYS_ROOT="${toolchian}/sysroot"
61+
export MR_TOOLCHAIN_ROOT="$ANDROID_NDK_HOME/toolchains/llvm/prebuilt/${MR_HOST_TAG}"
62+
export PATH="${MR_TOOLCHAIN_ROOT}/bin:$PATH"
63+
export MR_SYS_ROOT="${MR_TOOLCHAIN_ROOT}/sysroot"
6464

6565
# Common prefix for ld, as, etc.
66-
CROSS_PREFIX_WITH_PATH=${toolchian}/bin/llvm-
66+
CROSS_PREFIX_WITH_PATH=${MR_TOOLCHAIN_ROOT}/bin/llvm-
6767

6868
# Exporting Binutils paths, if passing just CROSS_PREFIX_WITH_PATH is not enough
6969
# The MR_ prefix is used to eliminate passing those values implicitly to build systems
@@ -80,12 +80,12 @@ export MR_STRINGS=${CROSS_PREFIX_WITH_PATH}strings
8080
export MR_STRIP=${CROSS_PREFIX_WITH_PATH}strip
8181
export MR_LIPO=${CROSS_PREFIX_WITH_PATH}lipo
8282
# ffmpeg can't use triple target clang
83-
export MR_TRIPLE_CC=${toolchian}/bin/${MR_TRIPLE}-clang
83+
export MR_TRIPLE_CC=${MR_TOOLCHAIN_ROOT}/bin/${MR_TRIPLE}-clang
8484
export MR_TRIPLE_CXX=${MR_TRIPLE_CC}++
8585
# find clang from NDK toolchain
86-
export MR_CC=${toolchian}/bin/clang
86+
export MR_CC=${MR_TOOLCHAIN_ROOT}/bin/clang
8787
export MR_CXX=${MR_CC}++
88-
export MR_YASM=${toolchian}/bin/yasm
88+
export MR_YASM=${MR_TOOLCHAIN_ROOT}/bin/yasm
8989

9090

9191
echo "MR_ARCH : [$MR_ARCH]"
@@ -95,7 +95,7 @@ echo "MR_ANDROID_NDK : [$MR_NDK_REL]"
9595
echo "MR_BUILD_NAME : [$MR_BUILD_NAME]"
9696
echo "MR_BUILD_SOURCE : [$MR_BUILD_SOURCE]"
9797
echo "MR_BUILD_PREFIX : [$MR_BUILD_PREFIX]"
98-
echo "MR_ANDROID_NDK_TOOLCHAIN: [$toolchian]"
98+
echo "MR_ANDROID_NDK_TOOLCHAIN: [$MR_TOOLCHAIN_ROOT]"
9999

100100
#
101101
THIS_DIR=$(DIRNAME=$(dirname "${BASH_SOURCE[0]}"); cd "${DIRNAME}"; pwd)

tools/parse-arguments.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ if [[ "$MR_VENDOR_LIBS" == "all" ]]; then
241241
fi
242242

243243
# -arch $MR_ARCH
244-
cflags="-Wno-int-conversion -Wno-declaration-after-statement"
244+
cflags="-Wno-int-conversion -Wno-declaration-after-statement -Wno-unused-function"
245245

246246
if [[ "$MR_DEBUG" == "debug" ]];then
247247
export MR_OTHER_CFLAGS="-g -O0 -D_DEBUG $cflags"

0 commit comments

Comments
 (0)