3
3
# Versions
4
4
VPX_VERSION=1.13.0
5
5
MBEDTLS_VERSION=3.4.1
6
- DAV1D_VERSION=1.4.1
7
6
FFMPEG_VERSION=6.0
8
7
9
8
# Directories
@@ -14,12 +13,11 @@ SOURCES_DIR=$BASE_DIR/sources
14
13
FFMPEG_DIR=$SOURCES_DIR /ffmpeg-$FFMPEG_VERSION
15
14
VPX_DIR=$SOURCES_DIR /libvpx-$VPX_VERSION
16
15
MBEDTLS_DIR=$SOURCES_DIR /mbedtls-$MBEDTLS_VERSION
17
- DAV1D_DIR=$SOURCES_DIR /dav1d-$DAV1D_VERSION
18
16
19
17
# Configuration
20
18
ANDROID_ABIS=" x86 x86_64 armeabi-v7a arm64-v8a"
21
19
ANDROID_PLATFORM=21
22
- ENABLED_DECODERS=" vorbis opus flac alac pcm_mulaw pcm_alaw mp3 amrnb amrwb aac ac3 eac3 dca mlp truehd h264 hevc mpeg2video mpegvideo libvpx_vp8 libvpx_vp9 libdav1d "
20
+ ENABLED_DECODERS=" vorbis opus flac alac pcm_mulaw pcm_alaw mp3 amrnb amrwb aac ac3 eac3 dca mlp truehd h264 hevc mpeg2video mpegvideo libvpx_vp8 libvpx_vp9"
23
21
JOBS=$( nproc 2> /dev/null || sysctl -n hw.ncpu 2> /dev/null || sysctl -n hw.pysicalcpu || echo 4)
24
22
25
23
# Set up host platform variables
38
36
# Build tools
39
37
TOOLCHAIN_PREFIX=" ${ANDROID_NDK_HOME} /toolchains/llvm/prebuilt/${HOST_PLATFORM} "
40
38
CMAKE_EXECUTABLE=${ANDROID_SDK_HOME} /cmake/3.22.1/bin/cmake
41
- # Using Build machine's Ninja. It is used for libdav1d building. Needs to be installed
42
- NINJA_EXECUTABLE=$( which ninja)
43
- # Meson is used for libdav1d building. Needs to be installed
44
- MESON_EXECUTABLE=$( which meson)
45
- # Nasm is used for libdav1d building. Needs to be installed
46
- NASM_EXECUTABLE=$( which nasm)
47
-
48
- export FAM_CC=${TOOLCHAIN_PREFIX} /bin/${TARGET} -clang
49
- export FAM_CXX=${FAM_CC} ++
50
- export FAM_LD=${FAM_CC} # Forcing FFmpeg and its dependencies to look for dependencies
51
- # in a specific directory when pkg-config is used
52
- export PKG_CONFIG_LIBDIR=$BUILD_DIR /external/lib/pkgconfig
53
39
54
40
mkdir -p $SOURCES_DIR
55
41
@@ -75,17 +61,6 @@ function downloadMbedTLS() {
75
61
popd
76
62
}
77
63
78
- function downloadDav1d() {
79
- pushd $SOURCES_DIR
80
- echo " Downloading Dav1d source code of version $DAV1D_VERSION ..."
81
- DAV1D_FILE=dav1d-$DAV1D_VERSION .tar.gz
82
- curl -L " https://code.videolan.org/videolan/dav1d/-/archive/${DAV1D_VERSION} /dav1d-${DAV1D_VERSION} .tar.gz" -o $DAV1D_FILE
83
- [ -e $DAV1D_FILE ] || { echo " $DAV1D_FILE does not exist. Exiting..." ; exit 1; }
84
- tar -zxf $DAV1D_FILE
85
- rm $DAV1D_FILE
86
- popd
87
- }
88
-
89
64
function downloadFfmpeg() {
90
65
pushd $SOURCES_DIR
91
66
echo " Downloading FFmpeg source code of version $FFMPEG_VERSION ..."
@@ -184,82 +159,6 @@ function buildMbedTLS() {
184
159
popd
185
160
}
186
161
187
- function buildDav1d() {
188
- pushd $DAV1D_DIR
189
-
190
- for ABI in $ANDROID_ABIS ; do
191
- CPU_FAMILY=
192
- case $ABI in
193
- armeabi-v7a)
194
- TARGET_TRIPLE_MACHINE_ARCH=arm
195
- TOOLCHAIN=armv7a-linux-androideabi21-
196
- ;;
197
- arm64-v8a)
198
- TARGET_TRIPLE_MACHINE_ARCH=aarch64
199
- TOOLCHAIN=aarch64-linux-android21-
200
- ;;
201
- x86)
202
- TARGET_TRIPLE_MACHINE_ARCH=i686
203
- TOOLCHAIN=i686-linux-android21-
204
- CPU_FAMILY=x86
205
- ;;
206
- x86_64)
207
- TARGET_TRIPLE_MACHINE_ARCH=x86_64
208
- TOOLCHAIN=x86_64-linux-android21-
209
- ;;
210
- esac
211
-
212
- CROSS_PREFIX_WITH_PATH=${TOOLCHAIN_PREFIX} /bin/llvm-
213
-
214
- [ -z " ${CPU_FAMILY} " ] && CPU_FAMILY=${TARGET_TRIPLE_MACHINE_ARCH}
215
-
216
- CROSS_FILE_NAME=crossfile-${ABI} .meson
217
-
218
- echo "
219
- [binaries]
220
- c = '${TOOLCHAIN_PREFIX} /bin/${TOOLCHAIN} clang'
221
- ar = '${CROSS_PREFIX_WITH_PATH} ar'
222
- strip = '${CROSS_PREFIX_WITH_PATH} strip'
223
- nasm = '${NASM_EXECUTABLE} '
224
- pkg-config = '$( which pkg-config) '
225
-
226
- [properties]
227
- needs_exe_wrapper = true
228
- sys_root = '${TOOLCHAIN_PREFIX} /sysroot'
229
-
230
- [host_machine]
231
- system = 'linux'
232
- cpu_family = '${CPU_FAMILY} '
233
- cpu = '${TARGET_TRIPLE_MACHINE_ARCH} '
234
- endian = 'little'
235
-
236
- [built-in options]
237
- prefix = '$BUILD_DIR /external/$ABI '" > " ${CROSS_FILE_NAME} "
238
-
239
- BUILD_DIRECTORY=build/${ABI}
240
-
241
- rm -rf ${BUILD_DIRECTORY}
242
-
243
- ${MESON_EXECUTABLE} setup . ${BUILD_DIRECTORY} \
244
- --cross-file ${CROSS_FILE_NAME} \
245
- --default-library=static \
246
- -Denable_asm=true \
247
- -Denable_tools=false \
248
- -Denable_tests=false \
249
- -Denable_examples=false \
250
- -Dtestdata_tests=false
251
-
252
- pushd ${BUILD_DIRECTORY}
253
-
254
- ${NINJA_EXECUTABLE} -j$JOBS
255
- ${NINJA_EXECUTABLE} install
256
-
257
- popd
258
-
259
- done
260
- popd
261
- }
262
-
263
162
function buildFfmpeg() {
264
163
pushd $FFMPEG_DIR
265
164
EXTRA_BUILD_CONFIGURATION_FLAGS=" "
@@ -302,10 +201,6 @@ function buildFfmpeg() {
302
201
;;
303
202
esac
304
203
305
- # Forcing FFmpeg and its dependencies to look for dependencies
306
- # in a specific directory when pkg-config is used
307
- export PKG_CONFIG_LIBDIR=$BUILD_DIR /external/$ABI /lib/pkgconfig
308
-
309
204
# Referencing dependencies without pkgconfig
310
205
DEP_CFLAGS=" -I$BUILD_DIR /external/$ABI /include"
311
206
DEP_LD_FLAGS=" -L$BUILD_DIR /external/$ABI /lib"
@@ -341,7 +236,6 @@ function buildFfmpeg() {
341
236
--enable-swresample \
342
237
--enable-avformat \
343
238
--enable-libvpx \
344
- --enable-libdav1d \
345
239
--enable-protocol=file,http,https,mmsh,mmst,pipe,rtmp,rtmps,rtmpt,rtmpts,rtp,tls \
346
240
--enable-version3 \
347
241
--enable-mbedtls \
@@ -379,11 +273,6 @@ if [[ ! -d "$OUTPUT_DIR" && ! -d "$BUILD_DIR" ]]; then
379
273
downloadLibVpx
380
274
fi
381
275
382
- # Download Dav1d source code if it doesn't exist
383
- if [[ ! -d " $DAV1D_DIR " ]]; then
384
- downloadDav1d
385
- fi
386
-
387
276
# Download Ffmpeg source code if it doesn't exist
388
277
if [[ ! -d " $FFMPEG_DIR " ]]; then
389
278
downloadFfmpeg
@@ -392,6 +281,5 @@ if [[ ! -d "$OUTPUT_DIR" && ! -d "$BUILD_DIR" ]]; then
392
281
# Building library
393
282
buildMbedTLS
394
283
buildLibVpx
395
- buildDav1d
396
284
buildFfmpeg
397
285
fi
0 commit comments