@@ -38,7 +38,7 @@ echo "===check env end==="
38
38
FF_BUILD_OPT=$1
39
39
40
40
# ffmpeg build params
41
- source ` pwd` /../ffconfig/module.sh
41
+ source $( pwd) /../ffconfig/module.sh
42
42
FFMPEG_CFG_FLAGS=" $COMMON_FF_CFG_FLAGS "
43
43
44
44
FFMPEG_CFG_FLAGS=" --prefix=$XC_BUILD_PREFIX $FFMPEG_CFG_FLAGS "
@@ -57,7 +57,7 @@ FFMPEG_CFG_FLAGS="$FFMPEG_CFG_FLAGS --enable-pic"
57
57
FFMPEG_CFG_FLAGS=" $FFMPEG_CFG_FLAGS --enable-neon"
58
58
FFMPEG_CFG_FLAGS=" $FFMPEG_CFG_FLAGS --enable-asm"
59
59
60
- if [[ " $FF_BUILD_OPT " == " debug" ]]; then
60
+ if [[ " $FF_BUILD_OPT " == " debug" ]]; then
61
61
FFMPEG_CFG_FLAGS=" $FFMPEG_CFG_FLAGS --disable-optimizations"
62
62
FFMPEG_CFG_FLAGS=" $FFMPEG_CFG_FLAGS --enable-debug"
63
63
FFMPEG_CFG_FLAGS=" $FFMPEG_CFG_FLAGS --disable-small"
@@ -73,10 +73,10 @@ FFMPEG_C_FLAGS="$FFMPEG_C_FLAGS -fno-stack-check -arch $XC_ARCH"
73
73
FFMPEG_C_FLAGS=" $FFMPEG_C_FLAGS $XC_DEPLOYMENT_TARGET $XC_OTHER_CFLAGS "
74
74
75
75
# for cross compile
76
- if [[ $( uname -m) != " $XC_ARCH " || " $XC_FORCE_CROSS " ]]; then
76
+ if [[ $( uname -m) != " $XC_ARCH " || " $XC_FORCE_CROSS " ]]; then
77
77
echo " [*] cross compile, on $( uname -m) compile $XC_PLAT $XC_ARCH ."
78
78
# 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 "
80
80
FFMPEG_CFG_FLAGS=" $FFMPEG_CFG_FLAGS --enable-cross-compile"
81
81
fi
82
82
@@ -91,63 +91,65 @@ echo "[*] check OpenSSL"
91
91
# https://ffmpeg.org/doxygen/4.1/md_LICENSE.html
92
92
# https://www.openssl.org/source/license.html
93
93
94
- # ----------------------
94
+ MY_PKG_CONFIG_PATH= ' '
95
95
# with openssl
96
96
# use pkg-config fix ff4.0--ijk0.8.8--20210426--001 use openssl 1_1_1m occur can't find openssl error.
97
97
if [[ -f " ${XC_PRODUCT_ROOT} /openssl-$XC_ARCH /lib/pkgconfig/openssl.pc" ]]; then
98
98
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
+
102
104
echo " [*] --enable-openssl"
103
105
else
104
106
echo " [*] --disable-openssl"
105
107
fi
106
- echo " ------------------------"
107
108
108
109
echo " ----------------------"
109
110
echo " [*] check x264"
110
111
111
- # ----------------------
112
112
# with x264
113
113
if [[ -f " ${XC_PRODUCT_ROOT} /x264-$XC_ARCH /lib/pkgconfig/x264.pc" ]]; then
114
114
# libx264 is gpl and --enable-gpl is not specified.
115
115
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"
118
121
119
122
echo " [*] --enable-libx264"
120
123
else
121
124
echo " [*] --disable-libx264"
122
125
fi
123
- echo " ------------------------"
124
126
125
127
echo " ----------------------"
126
128
echo " [*] check fdk-aac"
127
129
128
- # ----------------------
129
130
# with fdk-aac
130
131
if [[ -f " ${XC_PRODUCT_ROOT} /fdk-aac-$XC_ARCH /lib/pkgconfig/fdk-aac.pc" ]]; then
131
132
132
133
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"
135
139
136
140
echo " [*] --enable-libfdk-aac"
137
141
else
138
142
echo " [*] --disable-libfdk-aac"
139
143
fi
140
- echo " ------------------------"
141
144
142
145
echo " ----------------------"
143
146
echo " [*] check mp3lame"
144
147
145
- # ----------------------
146
148
# with lame
147
149
if [[ -f " ${XC_PRODUCT_ROOT} /lame-$XC_ARCH /lib/libmp3lame.a" ]]; then
148
150
# libmp3lame is gpl and --enable-gpl is not specified.
149
151
FFMPEG_CFG_FLAGS=" $FFMPEG_CFG_FLAGS --enable-gpl --enable-libmp3lame"
150
-
152
+
151
153
FDKAAC_C_FLAGS=" -I${XC_PRODUCT_ROOT} /lame-$XC_ARCH /include"
152
154
FDKAAC_LD_FLAGS=" -L${XC_PRODUCT_ROOT} /lame-$XC_ARCH /lib -lmp3lame"
153
155
@@ -157,62 +159,77 @@ if [[ -f "${XC_PRODUCT_ROOT}/lame-$XC_ARCH/lib/libmp3lame.a" ]]; then
157
159
else
158
160
echo " [*] --disable-libmp3lame"
159
161
fi
160
- echo " ------------------------"
161
162
162
163
echo " ----------------------"
163
164
echo " [*] check opus"
164
165
165
- # ----------------------
166
166
# with opus
167
167
if [[ -f " ${XC_PRODUCT_ROOT} /opus-$XC_ARCH /lib/pkgconfig/opus.pc" ]]; then
168
-
168
+
169
169
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"
172
175
173
176
echo " [*] --enable-libopus --enable-decoder=opus"
174
177
else
175
178
echo " [*] --disable-libopus"
176
179
fi
177
- echo " ------------------------"
178
180
179
- # ----------------------
181
+ echo " ----------------------"
182
+ echo " [*] check bluray"
183
+
180
184
# with bluray
181
185
if [[ -f " ${XC_PRODUCT_ROOT} /bluray-$XC_ARCH /lib/pkgconfig/libbluray.pc" ]]; then
182
-
186
+
183
187
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"
186
193
187
194
echo " [*] --enable-libbluray --enable-protocol=bluray"
188
195
else
189
196
echo " [*] --disable-libbluray --disable-protocol=bluray"
190
197
fi
191
- echo " ------------------------"
192
198
193
- # ----------------------
199
+ echo " ----------------------"
200
+ echo " [*] check dav1d"
201
+
194
202
# FFmpeg 4.2 支持AV1、AVS2等格式
195
203
# dav1d由VideoLAN,VLC和FFmpeg联合开发,项目由AOM联盟赞助,和libaom相比,dav1d性能普遍提升100%,最高提升400%
196
204
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"
200
205
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"
202
214
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 "
204
223
fi
205
- echo " ------------------------"
206
224
207
- # parser subtitles
208
- FFMPEG_CFG_FLAGS=" $FFMPEG_CFG_FLAGS --enable-demuxer=ass --enable-demuxer=webvtt --enable-demuxer=srt"
209
-
210
225
CC=" $XCRUN_CC "
211
226
212
- # ----------------------
227
+ # echo "PKG_CONFIG_PATH:${PKG_CONFIG_PATH}"
228
+ # pkg-config --variable pc_path pkg-config
229
+ # pkg-config --libs dav1d
230
+
213
231
echo " ----------------------"
214
232
echo " [*] configure"
215
- echo " ------------------------"
216
233
217
234
if [[ ! -d $XC_BUILD_SOURCE ]]; then
218
235
echo " "
@@ -227,15 +244,15 @@ cd $XC_BUILD_SOURCE
227
244
if [[ -f " ./config.h" ]]; then
228
245
echo ' reuse configure'
229
246
else
230
- echo
247
+ echo
231
248
echo " CC: $CC "
232
249
echo
233
250
echo " CFLAGS: $FFMPEG_C_FLAGS "
234
251
echo
235
252
echo " FF_CFG_FLAGS: $FFMPEG_CFG_FLAGS "
236
253
echo
237
254
echo " LDFLAG:$FFMPEG_LDFLAGS $FFMPEG_DEP_LIBS "
238
- echo
255
+ echo
239
256
./configure \
240
257
$FFMPEG_CFG_FLAGS \
241
258
--cc=" $CC " \
@@ -255,4 +272,4 @@ make install -j8 1>/dev/null
255
272
mkdir -p $XC_BUILD_PREFIX /include/libffmpeg
256
273
cp -f config.h $XC_BUILD_PREFIX /include/libffmpeg/config.h
257
274
# 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
0 commit comments