Skip to content

Commit 0175ba6

Browse files
committed
build ffmpeg5
1 parent f62271d commit 0175ba6

29 files changed

+1936
-3150
lines changed

.github/workflows/publish-github-release.yml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
on:
2-
push:
3-
branches: [master]
4-
pull_request:
5-
branches: [master]
1+
# on:
2+
# push:
3+
# branches: [master]
4+
# pull_request:
5+
# branches: [master]
66

77
name: Create Release (Github Edition)
88

@@ -18,7 +18,8 @@ jobs:
1818
# https://stackoverflow.com/questions/4916492/git-describe-fails-with-fatal-no-names-found-cannot-describe-anything
1919
# git describe --tags --always | awk -F . '{printf "RELEASE_VERSION=%s.%d",$1,$2+1}' | xargs > constants.env
2020
# git describe --tags --always | awk -F - '{printf "RELEASE_VERSION=V1.0-%s",$NF}' | xargs > constants.env
21-
grep VERSION= download-pre.sh | awk -F = '{printf "RELEASE_VERSION=%s",$2}' | xargs > constants.env
21+
d=$(date +'%y%m%d%H%M%S')
22+
grep IJK_VERSION= download-pre.sh | awk -F = '{printf "RELEASE_VERSION=%s-$d",$2}' | xargs > constants.env
2223
echo 'EDITION=github' >> constants.env
2324
cat constants.env
2425
- name: Export Env

.github/workflows/publish-ijk-release.yml

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
on:
2-
push:
3-
branches: [master]
4-
pull_request:
5-
branches: [master]
1+
# on:
2+
# push:
3+
# branches: [master]
4+
# pull_request:
5+
# branches: [master]
66

77
name: Create Release (IJK Edition)
88

@@ -18,7 +18,8 @@ jobs:
1818
# https://stackoverflow.com/questions/4916492/git-describe-fails-with-fatal-no-names-found-cannot-describe-anything
1919
# git describe --tags --always | awk -F . '{printf "RELEASE_VERSION=%s.%d",$1,$2+1}' | xargs > constants.env
2020
# git describe --tags --always | awk -F - '{printf "RELEASE_VERSION=V1.0-%s",$NF}' | xargs > constants.env
21-
grep VERSION= download-pre.sh | awk -F = '{printf "RELEASE_VERSION=%s",$2}' | xargs > constants.env
21+
d=$(date +'%y%m%d%H%M%S')
22+
grep IJK_VERSION= download-pre.sh | awk -F = '{printf "RELEASE_VERSION=%s-$d",$2}' | xargs > constants.env
2223
echo 'EDITION=ijk' >> constants.env
2324
cat constants.env
2425
- name: Export Env

apple/compile-cfgs/list.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
libyuv openssl opus bluray ffmpeg
1+
libyuv openssl opus bluray dav1d ffmpeg

apple/do-compile/dav1d.sh

Lines changed: 7 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -33,28 +33,23 @@ echo "===check env end==="
3333

3434
# prepare build config
3535
DAV1D_CFG_FLAGS="--prefix=$XC_BUILD_PREFIX --buildtype release --default-library static"
36-
CFLAGS="-arch $XC_ARCH $XC_DEPLOYMENT_TARGET $XC_OTHER_CFLAGS"
37-
38-
echo "----------------------"
39-
echo "[*] compile $LIB_NAME"
40-
echo "CC: $XCRUN_CC"
41-
echo "DAV1D_CFG_FLAGS: $DAV1D_CFG_FLAGS"
42-
echo "CFLAGS: $CFLAGS"
43-
echo "----------------------"
44-
echo
4536

4637
cd $XC_BUILD_SOURCE
4738
export CC="$XCRUN_CC"
4839
export CXX="$XCRUN_CXX"
4940

5041
if [[ $(uname -m) != "$XC_ARCH" || "$XC_FORCE_CROSS" ]]; then
5142
echo "[*] cross compile, on $(uname -m) compile $XC_PLAT $XC_ARCH."
52-
# https://www.gnu.org/software/automake/manual/html_node/Cross_002dCompilation.html
53-
CFLAGS="$CFLAGS -isysroot $XCRUN_SDK_PATH"
54-
BLURAY_CFG_FLAGS="$BLURAY_CFG_FLAGS --host=$XC_ARCH-apple-darwin --with-sysroot=$XCRUN_SDK_PATH"
5543
DAV1D_CFG_FLAGS="$DAV1D_CFG_FLAGS --cross-file package/crossfiles/$XC_ARCH-macos.meson"
5644
fi
5745

46+
echo "----------------------"
47+
echo "[*] compile $LIB_NAME"
48+
echo "CC: $XCRUN_CC"
49+
echo "DAV1D_CFG_FLAGS: $DAV1D_CFG_FLAGS"
50+
echo "----------------------"
51+
echo
52+
5853
if [[ -d build ]]; then
5954
rm -rf build
6055
fi

apple/do-compile/ffmpeg.sh

Lines changed: 62 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ echo "===check env end==="
3838
FF_BUILD_OPT=$1
3939

4040
# ffmpeg build params
41-
source `pwd`/../ffconfig/module.sh
41+
source $(pwd)/../ffconfig/module.sh
4242
FFMPEG_CFG_FLAGS="$COMMON_FF_CFG_FLAGS"
4343

4444
FFMPEG_CFG_FLAGS="--prefix=$XC_BUILD_PREFIX $FFMPEG_CFG_FLAGS"
@@ -57,7 +57,7 @@ FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --enable-pic"
5757
FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --enable-neon"
5858
FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --enable-asm"
5959

60-
if [[ "$FF_BUILD_OPT" == "debug" ]];then
60+
if [[ "$FF_BUILD_OPT" == "debug" ]]; then
6161
FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --disable-optimizations"
6262
FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --enable-debug"
6363
FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --disable-small"
@@ -73,10 +73,10 @@ FFMPEG_C_FLAGS="$FFMPEG_C_FLAGS -fno-stack-check -arch $XC_ARCH"
7373
FFMPEG_C_FLAGS="$FFMPEG_C_FLAGS $XC_DEPLOYMENT_TARGET $XC_OTHER_CFLAGS"
7474

7575
# for cross compile
76-
if [[ $(uname -m) != "$XC_ARCH" || "$XC_FORCE_CROSS" ]];then
76+
if [[ $(uname -m) != "$XC_ARCH" || "$XC_FORCE_CROSS" ]]; then
7777
echo "[*] cross compile, on $(uname -m) compile $XC_PLAT $XC_ARCH."
7878
# https://www.gnu.org/software/automake/manual/html_node/Cross_002dCompilation.html
79-
FFMPEG_C_FLAGS="$FFMPEG_C_FLAGS -isysroot $XCRUN_SDK_PATH"
79+
FFMPEG_C_FLAGS="$FFMPEG_C_FLAGS --sysroot $XCRUN_SDK_PATH"
8080
FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --enable-cross-compile"
8181
fi
8282

@@ -91,63 +91,65 @@ echo "[*] check OpenSSL"
9191
# https://ffmpeg.org/doxygen/4.1/md_LICENSE.html
9292
# https://www.openssl.org/source/license.html
9393

94-
#----------------------
94+
MY_PKG_CONFIG_PATH=''
9595
# with openssl
9696
# use pkg-config fix ff4.0--ijk0.8.8--20210426--001 use openssl 1_1_1m occur can't find openssl error.
9797
if [[ -f "${XC_PRODUCT_ROOT}/openssl-$XC_ARCH/lib/pkgconfig/openssl.pc" ]]; then
9898
FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --enable-nonfree --enable-openssl"
99-
100-
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:${XC_PRODUCT_ROOT}/openssl-$XC_ARCH/lib/pkgconfig"
101-
99+
if [[ -n "$MY_PKG_CONFIG_PATH" ]]; then
100+
MY_PKG_CONFIG_PATH="$MY_PKG_CONFIG_PATH:"
101+
fi
102+
MY_PKG_CONFIG_PATH="${MY_PKG_CONFIG_PATH}${XC_PRODUCT_ROOT}/openssl-$XC_ARCH/lib/pkgconfig"
103+
102104
echo "[*] --enable-openssl"
103105
else
104106
echo "[*] --disable-openssl"
105107
fi
106-
echo "------------------------"
107108

108109
echo "----------------------"
109110
echo "[*] check x264"
110111

111-
#----------------------
112112
# with x264
113113
if [[ -f "${XC_PRODUCT_ROOT}/x264-$XC_ARCH/lib/pkgconfig/x264.pc" ]]; then
114114
# libx264 is gpl and --enable-gpl is not specified.
115115
FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --enable-gpl --enable-libx264"
116-
117-
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:${XC_PRODUCT_ROOT}/x264-$XC_ARCH/lib/pkgconfig"
116+
117+
if [[ -n "$MY_PKG_CONFIG_PATH" ]]; then
118+
MY_PKG_CONFIG_PATH="$MY_PKG_CONFIG_PATH:"
119+
fi
120+
MY_PKG_CONFIG_PATH="${MY_PKG_CONFIG_PATH}${XC_PRODUCT_ROOT}/x264-$XC_ARCH/lib/pkgconfig"
118121

119122
echo "[*] --enable-libx264"
120123
else
121124
echo "[*] --disable-libx264"
122125
fi
123-
echo "------------------------"
124126

125127
echo "----------------------"
126128
echo "[*] check fdk-aac"
127129

128-
#----------------------
129130
# with fdk-aac
130131
if [[ -f "${XC_PRODUCT_ROOT}/fdk-aac-$XC_ARCH/lib/pkgconfig/fdk-aac.pc" ]]; then
131132

132133
FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --enable-nonfree --enable-libfdk-aac"
133-
134-
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:${XC_PRODUCT_ROOT}/fdk-aac-$XC_ARCH/lib/pkgconfig"
134+
135+
if [[ -n "$MY_PKG_CONFIG_PATH" ]]; then
136+
MY_PKG_CONFIG_PATH="$MY_PKG_CONFIG_PATH:"
137+
fi
138+
MY_PKG_CONFIG_PATH="${MY_PKG_CONFIG_PATH}${XC_PRODUCT_ROOT}/fdk-aac-$XC_ARCH/lib/pkgconfig"
135139

136140
echo "[*] --enable-libfdk-aac"
137141
else
138142
echo "[*] --disable-libfdk-aac"
139143
fi
140-
echo "------------------------"
141144

142145
echo "----------------------"
143146
echo "[*] check mp3lame"
144147

145-
#----------------------
146148
# with lame
147149
if [[ -f "${XC_PRODUCT_ROOT}/lame-$XC_ARCH/lib/libmp3lame.a" ]]; then
148150
# libmp3lame is gpl and --enable-gpl is not specified.
149151
FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --enable-gpl --enable-libmp3lame"
150-
152+
151153
FDKAAC_C_FLAGS="-I${XC_PRODUCT_ROOT}/lame-$XC_ARCH/include"
152154
FDKAAC_LD_FLAGS="-L${XC_PRODUCT_ROOT}/lame-$XC_ARCH/lib -lmp3lame"
153155

@@ -157,62 +159,77 @@ if [[ -f "${XC_PRODUCT_ROOT}/lame-$XC_ARCH/lib/libmp3lame.a" ]]; then
157159
else
158160
echo "[*] --disable-libmp3lame"
159161
fi
160-
echo "------------------------"
161162

162163
echo "----------------------"
163164
echo "[*] check opus"
164165

165-
#----------------------
166166
# with opus
167167
if [[ -f "${XC_PRODUCT_ROOT}/opus-$XC_ARCH/lib/pkgconfig/opus.pc" ]]; then
168-
168+
169169
FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --enable-libopus --enable-decoder=opus"
170-
171-
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:${XC_PRODUCT_ROOT}/opus-$XC_ARCH/lib/pkgconfig"
170+
171+
if [[ -n "$MY_PKG_CONFIG_PATH" ]]; then
172+
MY_PKG_CONFIG_PATH="$MY_PKG_CONFIG_PATH:"
173+
fi
174+
MY_PKG_CONFIG_PATH="${MY_PKG_CONFIG_PATH}${XC_PRODUCT_ROOT}/opus-$XC_ARCH/lib/pkgconfig"
172175

173176
echo "[*] --enable-libopus --enable-decoder=opus"
174177
else
175178
echo "[*] --disable-libopus"
176179
fi
177-
echo "------------------------"
178180

179-
#----------------------
181+
echo "----------------------"
182+
echo "[*] check bluray"
183+
180184
# with bluray
181185
if [[ -f "${XC_PRODUCT_ROOT}/bluray-$XC_ARCH/lib/pkgconfig/libbluray.pc" ]]; then
182-
186+
183187
FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --enable-libbluray --enable-protocol=bluray"
184-
185-
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:${XC_PRODUCT_ROOT}/bluray-$XC_ARCH/lib/pkgconfig"
188+
189+
if [[ -n "$MY_PKG_CONFIG_PATH" ]]; then
190+
MY_PKG_CONFIG_PATH="$MY_PKG_CONFIG_PATH:"
191+
fi
192+
MY_PKG_CONFIG_PATH="${MY_PKG_CONFIG_PATH}${XC_PRODUCT_ROOT}/bluray-$XC_ARCH/lib/pkgconfig"
186193

187194
echo "[*] --enable-libbluray --enable-protocol=bluray"
188195
else
189196
echo "[*] --disable-libbluray --disable-protocol=bluray"
190197
fi
191-
echo "------------------------"
192198

193-
#----------------------
199+
echo "----------------------"
200+
echo "[*] check dav1d"
201+
194202
# FFmpeg 4.2 支持AV1、AVS2等格式
195203
# dav1d由VideoLAN,VLC和FFmpeg联合开发,项目由AOM联盟赞助,和libaom相比,dav1d性能普遍提升100%,最高提升400%
196204
if [[ -f "${XC_PRODUCT_ROOT}/dav1d-$XC_ARCH/lib/pkgconfig/dav1d.pc" ]]; then
197-
FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --enable-decoder=av1 --enable-libdav1d"
198-
199-
export PKG_CONFIG_PATH="$PKG_CONFIG_PATH:${XC_PRODUCT_ROOT}/dav1d-$XC_ARCH/lib/pkgconfig"
200205

201-
echo "[*] --enable-decoder=av1 --enable-libdav1d"
206+
FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --enable-libdav1d --enable-decoder=libdav1d"
207+
208+
if [[ -n "$MY_PKG_CONFIG_PATH" ]]; then
209+
MY_PKG_CONFIG_PATH="$MY_PKG_CONFIG_PATH:"
210+
fi
211+
MY_PKG_CONFIG_PATH="${MY_PKG_CONFIG_PATH}${XC_PRODUCT_ROOT}/dav1d-$XC_ARCH/lib/pkgconfig"
212+
213+
echo "[*] --enable-libdav1d --enable-decoder=libdav1d"
202214
else
203-
echo "[*] --disable-decoder=av1 --disable-libdav1d"
215+
echo "[*] --disable-libdav1d --disable-decoder=libdav1d"
216+
fi
217+
218+
#just wait videotoolbox support decode av1
219+
# FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --enable-decoder=av1"
220+
221+
if [[ -n "$MY_PKG_CONFIG_PATH" ]]; then
222+
export PKG_CONFIG_PATH="$MY_PKG_CONFIG_PATH"
204223
fi
205-
echo "------------------------"
206224

207-
#parser subtitles
208-
FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --enable-demuxer=ass --enable-demuxer=webvtt --enable-demuxer=srt"
209-
210225
CC="$XCRUN_CC"
211226

212-
#----------------------
227+
# echo "PKG_CONFIG_PATH:${PKG_CONFIG_PATH}"
228+
# pkg-config --variable pc_path pkg-config
229+
# pkg-config --libs dav1d
230+
213231
echo "----------------------"
214232
echo "[*] configure"
215-
echo "------------------------"
216233

217234
if [[ ! -d $XC_BUILD_SOURCE ]]; then
218235
echo ""
@@ -227,15 +244,15 @@ cd $XC_BUILD_SOURCE
227244
if [[ -f "./config.h" ]]; then
228245
echo 'reuse configure'
229246
else
230-
echo
247+
echo
231248
echo "CC: $CC"
232249
echo
233250
echo "CFLAGS: $FFMPEG_C_FLAGS"
234251
echo
235252
echo "FF_CFG_FLAGS: $FFMPEG_CFG_FLAGS"
236253
echo
237254
echo "LDFLAG:$FFMPEG_LDFLAGS $FFMPEG_DEP_LIBS"
238-
echo
255+
echo
239256
./configure \
240257
$FFMPEG_CFG_FLAGS \
241258
--cc="$CC" \
@@ -255,4 +272,4 @@ make install -j8 1>/dev/null
255272
mkdir -p $XC_BUILD_PREFIX/include/libffmpeg
256273
cp -f config.h $XC_BUILD_PREFIX/include/libffmpeg/config.h
257274
# copy private header.
258-
#cp -f $XC_BUILD_SOURCE/libavformat/avc.h $XC_BUILD_PREFIX/include/libavformat/avc.h
275+
#cp -f $XC_BUILD_SOURCE/libavformat/avc.h $XC_BUILD_PREFIX/include/libavformat/avc.h

download-pre.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
# limitations under the License.
1616
#
1717

18-
VERSION=20230304181936
18+
IJK_VERSION=0.10.0
1919

2020
set -e
2121

@@ -66,8 +66,8 @@ fi
6666

6767
if test -z $VER ;then
6868
#VER=$(git describe --abbrev=0 --tag | awk -F - '{printf "%s-%s",$1,$2}')
69-
VER="$VERSION"
70-
echo "use the default version:${VER}"
69+
usage
70+
exit
7171
fi
7272

7373
if [[ "$PLAT" == 'ios' || "$PLAT" == 'macos' ]]; then

extra/patches/dav1d/0001-add-macos-x86_64-cross-file.patch

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
From 9f11442c4cde071eaee82dc01df9e8403a2bc39a Mon Sep 17 00:00:00 2001
1+
From e7e92544aca6c577d6a6527f731bfeb069b331dd Mon Sep 17 00:00:00 2001
22
From: qianlongxu <qianlongxu@gmail.com>
3-
Date: Thu, 28 Jul 2022 17:38:38 +0800
3+
Date: Thu, 25 May 2023 14:53:53 +0800
44
Subject: [PATCH] add macos x86_64 cross file
55

66
---
@@ -10,7 +10,7 @@ Subject: [PATCH] add macos x86_64 cross file
1010

1111
diff --git a/package/crossfiles/x86_64-macos.meson b/package/crossfiles/x86_64-macos.meson
1212
new file mode 100644
13-
index 0000000..bfeb08a
13+
index 0000000..cf484d1
1414
--- /dev/null
1515
+++ b/package/crossfiles/x86_64-macos.meson
1616
@@ -0,0 +1,30 @@
@@ -27,12 +27,12 @@ index 0000000..bfeb08a
2727
+strip = 'strip'
2828
+
2929
+[built-in options]
30-
+c_args = ['-arch', 'x86_64', '-mmacosx-version-min=10.11', '-isysroot', '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.0.sdk']
31-
+cpp_args = ['-arch', 'x86_64', '-mmacosx-version-min=10.11', '-isysroot', '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.0.sdk']
32-
+c_link_args = ['-arch', 'x86_64', '-mmacosx-version-min=10.11', '-isysroot', '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.0.sdk']
33-
+cpp_link_args = ['-arch', 'x86_64', '-mmacosx-version-min=10.11', '-isysroot', '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.0.sdk']
34-
+objc_args = ['-arch', 'x86_64', '-mmacosx-version-min=10.11', '-isysroot', '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.0.sdk']
35-
+objcpp_args = ['-arch', 'x86_64', '-mmacosx-version-min=10.11', '-isysroot', '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX12.0.sdk']
30+
+c_args = ['-arch', 'x86_64', '-mmacosx-version-min=10.11']
31+
+cpp_args = ['-arch', 'x86_64', '-mmacosx-version-min=10.11']
32+
+c_link_args = ['-arch', 'x86_64', '-mmacosx-version-min=10.11']
33+
+cpp_link_args = ['-arch', 'x86_64', '-mmacosx-version-min=10.11']
34+
+objc_args = ['-arch', 'x86_64', '-mmacosx-version-min=10.11']
35+
+objcpp_args = ['-arch', 'x86_64', '-mmacosx-version-min=10.11']
3636
+
3737
+[properties]
3838
+root = '/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer'
@@ -46,5 +46,5 @@ index 0000000..bfeb08a
4646
+endian = 'little'
4747
\ No newline at end of file
4848
--
49-
2.30.1 (Apple Git-130)
49+
2.39.2 (Apple Git-143)
5050

0 commit comments

Comments
 (0)