@@ -22,6 +22,7 @@ export CLEAN_PJSIP_SRC=true
22
22
export SSL_SUPPORT=false
23
23
export OPUS_SUPPORT=false
24
24
export H264_SUPPORT=false
25
+ export BCG729_SUPPORT=false
25
26
export INDEPENDENT_WEBRTC=false
26
27
export ENABLE_ZRTP=false
27
28
export HAS_BITCODE=true
@@ -48,7 +49,7 @@ export SSL_BUILD_DIR="$BUILD_DIR/openssl_ios"
48
49
export ZRTP_BUILD_DIR=" $BUILD_DIR /zrtp"
49
50
export OPUS_BUILD_DIR=" $BUILD_DIR /opus"
50
51
export H264_BUILD_DIR=" $BUILD_DIR /openh264"
51
-
52
+ export BCG729_BUILD_DIR= " $BUILD_DIR /bcg729 "
52
53
export XCODE_SIMULATOR_DEV_PATH=" /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer"
53
54
export XCODE_DEVICE_DEV_PATH=" /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer"
54
55
@@ -95,6 +96,10 @@ for i in "$@"; do
95
96
OPUS_SUPPORT=true
96
97
shift
97
98
;;
99
+ -bcg729 | --bcg729 | bcg729)
100
+ BCG729_SUPPORT=true
101
+ shift
102
+ ;;
98
103
-h264 | --h264 | h264)
99
104
H264_SUPPORT=true
100
105
shift
@@ -120,7 +125,7 @@ for i in "$@"; do
120
125
shift
121
126
;;
122
127
-v | --version | version)
123
- echo " PJSIP Compile script version: 1 .0.0"
128
+ echo " PJSIP Compile script version: 2 .0.0"
124
129
exit 1
125
130
shift
126
131
;;
@@ -142,6 +147,8 @@ function show_help () {
142
147
echo
143
148
echo " -ssl, --ssl, ssl Include SSL for encrypted calling. (default: not build)"
144
149
echo
150
+ echo " -bcg729, --bcg729, bcg729 Include BCG729 codecs. (default: not build)"
151
+ echo
145
152
echo " -opus, --opus, opus Support for the OPUS codec. (default: not build)"
146
153
echo
147
154
echo " --no-download-pjsip-src Don't download a new PJSIP source"
@@ -186,6 +193,38 @@ function spinner() {
186
193
printf " \b\b\b\b"
187
194
}
188
195
196
+
197
+ function build_bcg729 () {
198
+ if [ $BCG729_SUPPORT = false ]; then
199
+ return
200
+ fi
201
+ echo " Use BCG729"
202
+ xcode_dev_path=` xcode-select -print-path`
203
+
204
+ cd $BCG729_BUILD_DIR
205
+
206
+ for arch in ${USE_ARCHS[@]}
207
+ do
208
+ echo " -- BCG729: Compiling $arch "
209
+ if [ " $arch " == " x86_64" ]; then
210
+ os_platform=" iPhoneSimulator"
211
+ mkdir -p " ${os_platform}${IOS_SDK_VERSION} -${arch} .sdk"
212
+ cmake . -DCMAKE_INSTALL_PREFIX=" ${os_platform}${IOS_SDK_VERSION} -${arch} .sdk" -DCMAKE_SKIP_INSTALL_RPATH=ON
213
+ make C_FLAGS=" $C_FLAGS -O2 -m64 -mios-simulator-version-min=${MIN_IOS_VERSION} -isysroot ${xcode_dev_path} /Platforms/${os_platform} .platform/Developer/SDKs/${os_platform} .sdk -march=x86-64" || exit
214
+
215
+ else
216
+ os_platform=" iPhoneOS"
217
+ mkdir -p " ${os_platform}${IOS_SDK_VERSION} -${arch} .sdk"
218
+ cmake . -DCMAKE_INSTALL_PREFIX=" ${os_platform}${IOS_SDK_VERSION} -${arch} .sdk" -DCMAKE_SKIP_INSTALL_RPATH=ON
219
+ make C_FLAGS=" $C_FLAGS -miphoneos-version-min=${MIN_IOS_VERSION} -isysroot ${xcode_dev_path} /Platforms/${os_platform} .platform/Developer/SDKs/${os_platform} .sdk -march=${arch} " || exit
220
+ fi
221
+ make install
222
+ done
223
+ lipo -info " $BCG729_BUILD_DIR /iPhoneSimulator17.2-x86_64.sdk/lib/libbcg729.a"
224
+ lipo -info " $BCG729_BUILD_DIR /iPhoneOS17.2-arm64.sdk/lib/libbcg729.a"
225
+
226
+ }
227
+
189
228
function build_h264 () {
190
229
if [ $H264_SUPPORT = false ]; then
191
230
return
@@ -275,7 +314,7 @@ function build_opus () {
275
314
return
276
315
fi
277
316
278
- opus_version=" 1.3.1 "
317
+ opus_version=" 1.4 "
279
318
opus_opt_cflags=" -Ofast -flto -g"
280
319
opus_opt_ldflags=" -flto"
281
320
opus_opt_config_args=" "
@@ -402,6 +441,10 @@ function config_site () {
402
441
echo " #define PJMEDIA_HAS_OPUS_CODEC 1" >> " $PJSIP_CONFIG_SITE_H "
403
442
fi
404
443
444
+ if [ $BCG729_SUPPORT = true ]; then
445
+ echo " #define PJMEDIA_HAS_BCG729 1" >> " $PJSIP_CONFIG_SITE_H "
446
+ fi
447
+
405
448
while IFS=' ,' read -ra CONFIG_SITE_OPTION; do
406
449
for i in " ${CONFIG_SITE_OPTION[@]} " ; do
407
450
echo " #define $i " >> $PJSIP_CONFIG_SITE_H
@@ -479,6 +522,17 @@ function _build () {
479
522
export CFLAGS=" ${CFLAGS} -fembed-bitcode"
480
523
fi
481
524
525
+ if [ $BCG729_SUPPORT = true ]; then
526
+ if [ " $arch " != " i386" ] && [ " $arch " != " x86_64" ]; then
527
+ configure=" $configure --with-bcg729=${BCG729_BUILD_DIR} /iPhoneOS${IOS_SDK_VERSION} -${arch} .sdk"
528
+ export CFLAGS=" ${CFLAGS} -I${BCG729_BUILD_DIR} /iPhoneOS${IOS_SDK_VERSION} -${arch} .sdk/include/bcg729"
529
+ export LDFLAGS=" ${LDFLAGS} -L${BCG729_BUILD_DIR} /iPhoneOS${IOS_SDK_VERSION} -${arch} .sdk/lib"
530
+ else
531
+ configure=" $configure --with-bcg729=${BCG729_BUILD_DIR} /iPhoneSimulator${IOS_SDK_VERSION} -${arch} .sdk"
532
+ export CFLAGS=" ${CFLAGS} -I${BCG729_BUILD_DIR} /iPhoneSimulator${IOS_SDK_VERSION} -${arch} .sdk/include/bcg729"
533
+ export LDFLAGS=" ${LDFLAGS} -L${BCG729_BUILD_DIR} /iPhoneSimulator${IOS_SDK_VERSION} -${arch} .sdk/lib"
534
+ fi
535
+ fi
482
536
483
537
if [ $SSL_SUPPORT = true ]; then
484
538
if [ " $arch " != " i386" ] && [ " $arch " != " x86_64" ]; then
@@ -520,9 +574,11 @@ function _build () {
520
574
521
575
ARCH=" -arch $arch " $configure # >> $arch_log 2>&1 || exit
522
576
echo " make dep"
523
- make dep >> $arch_log 2>&1 || exit
577
+ make dep >> $arch_log 2>&1 &
578
+ spinner $! || exit
524
579
echo " make "
525
- make >> $arch_log 2>&1 || exit
580
+ make >> $arch_log 2>&1 &
581
+ spinner $! || exit
526
582
527
583
if [ $SSL_SUPPORT = true ]; then
528
584
if [ $ENABLE_ZRTP = true ]; then
@@ -539,8 +595,12 @@ function _build () {
539
595
# TODO: fix libs not found on runner path because they are in temp
540
596
echo " Making swig "
541
597
cd " $PJSIP_SRC_DIR /pjsip-apps/src/swig"
542
- make clean
543
- make
598
+ make clean >> $arch_log 2>&1 &
599
+ spinner $! || exit
600
+
601
+ make >> $arch_log 2>&1 &
602
+ spinner $! || exit
603
+
544
604
545
605
echo " Done building for $arch "
546
606
echo " ============================="
@@ -570,6 +630,9 @@ function _collect () {
570
630
cp -v ./external/openssl_ios/bin/* $1 .sdk/lib/* .a $BASE_DIR /lib/$1
571
631
fi
572
632
633
+ if [ -d ./external/bcg729/* $1 .sdk/lib/ ]; then
634
+ cp -v ./external/bcg729/* $1 .sdk/lib/* .a $BASE_DIR /lib/$1
635
+ fi
573
636
# if [ $INDEPENDENT_WEBRTC = true ]; then
574
637
# rm ./pjproject/third_party/lib/libsrtp*.a
575
638
# fi
731
794
if [ $SHOW_HELP = true ]; then
732
795
show_help
733
796
else
797
+ build_bcg729
734
798
build_h264
735
799
build_ssl
736
800
build_opus
0 commit comments