react-native-audio-api 0.10.0-nightly-75aa9d0-20251022 → 0.10.0-nightly-353aaa2-20251023

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (127) hide show
  1. package/RNAudioAPI.podspec +9 -5
  2. package/android/build.gradle +33 -3
  3. package/android/src/main/cpp/audioapi/android/AudioAPIModule.cpp +5 -0
  4. package/android/src/main/cpp/audioapi/android/AudioAPIModule.h +1 -0
  5. package/android/src/main/cpp/audioapi/android/core/AudioPlayer.cpp +4 -2
  6. package/android/src/main/java/com/swmansion/audioapi/AudioAPIModule.kt +29 -1
  7. package/common/cpp/audioapi/AudioAPIModuleInstaller.h +20 -0
  8. package/common/cpp/audioapi/core/AudioParam.cpp +2 -2
  9. package/common/cpp/audioapi/core/utils/worklets/SafeIncludes.h +0 -10
  10. package/common/cpp/audioapi/libs/ffmpeg/relinking.md +24 -0
  11. package/ios/audioapi/ios/AudioAPIModule.h +2 -1
  12. package/ios/audioapi/ios/AudioAPIModule.mm +2 -0
  13. package/ios/audioapi/ios/core/IOSAudioRecorder.h +2 -1
  14. package/ios/audioapi/ios/system/AudioSessionManager.mm +9 -0
  15. package/lib/commonjs/core/AudioContext.js +1 -1
  16. package/lib/commonjs/core/AudioContext.js.map +1 -1
  17. package/lib/commonjs/core/BaseAudioContext.js +16 -25
  18. package/lib/commonjs/core/BaseAudioContext.js.map +1 -1
  19. package/lib/commonjs/core/OfflineAudioContext.js +1 -1
  20. package/lib/commonjs/core/OfflineAudioContext.js.map +1 -1
  21. package/lib/commonjs/utils/index.js +19 -4
  22. package/lib/commonjs/utils/index.js.map +1 -1
  23. package/lib/module/core/AudioContext.js +2 -2
  24. package/lib/module/core/AudioContext.js.map +1 -1
  25. package/lib/module/core/BaseAudioContext.js +17 -26
  26. package/lib/module/core/BaseAudioContext.js.map +1 -1
  27. package/lib/module/core/OfflineAudioContext.js +2 -2
  28. package/lib/module/core/OfflineAudioContext.js.map +1 -1
  29. package/lib/module/utils/index.js +15 -1
  30. package/lib/module/utils/index.js.map +1 -1
  31. package/lib/typescript/core/AudioContext.d.ts.map +1 -1
  32. package/lib/typescript/core/BaseAudioContext.d.ts.map +1 -1
  33. package/lib/typescript/utils/index.d.ts +4 -1
  34. package/lib/typescript/utils/index.d.ts.map +1 -1
  35. package/package.json +2 -1
  36. package/scripts/download-prebuilt-binaries.sh +52 -0
  37. package/src/core/AudioContext.ts +3 -2
  38. package/src/core/BaseAudioContext.ts +44 -60
  39. package/src/core/OfflineAudioContext.ts +2 -2
  40. package/src/utils/index.ts +22 -1
  41. package/android/src/main/jniLibs/arm64-v8a/libavcodec.so +0 -0
  42. package/android/src/main/jniLibs/arm64-v8a/libavformat.so +0 -0
  43. package/android/src/main/jniLibs/arm64-v8a/libavutil.so +0 -0
  44. package/android/src/main/jniLibs/arm64-v8a/libswresample.so +0 -0
  45. package/android/src/main/jniLibs/armeabi-v7a/libavcodec.so +0 -0
  46. package/android/src/main/jniLibs/armeabi-v7a/libavformat.so +0 -0
  47. package/android/src/main/jniLibs/armeabi-v7a/libavutil.so +0 -0
  48. package/android/src/main/jniLibs/armeabi-v7a/libswresample.so +0 -0
  49. package/android/src/main/jniLibs/x86/libavcodec.so +0 -0
  50. package/android/src/main/jniLibs/x86/libavformat.so +0 -0
  51. package/android/src/main/jniLibs/x86/libavutil.so +0 -0
  52. package/android/src/main/jniLibs/x86/libswresample.so +0 -0
  53. package/android/src/main/jniLibs/x86_64/libavcodec.so +0 -0
  54. package/android/src/main/jniLibs/x86_64/libavformat.so +0 -0
  55. package/android/src/main/jniLibs/x86_64/libavutil.so +0 -0
  56. package/android/src/main/jniLibs/x86_64/libswresample.so +0 -0
  57. package/common/cpp/audioapi/external/arm64-v8a/libcrypto.a +0 -0
  58. package/common/cpp/audioapi/external/arm64-v8a/libogg.a +0 -0
  59. package/common/cpp/audioapi/external/arm64-v8a/libopus.a +0 -0
  60. package/common/cpp/audioapi/external/arm64-v8a/libopusfile.a +0 -0
  61. package/common/cpp/audioapi/external/arm64-v8a/libssl.a +0 -0
  62. package/common/cpp/audioapi/external/arm64-v8a/libvorbis.a +0 -0
  63. package/common/cpp/audioapi/external/arm64-v8a/libvorbisenc.a +0 -0
  64. package/common/cpp/audioapi/external/arm64-v8a/libvorbisfile.a +0 -0
  65. package/common/cpp/audioapi/external/armeabi-v7a/libcrypto.a +0 -0
  66. package/common/cpp/audioapi/external/armeabi-v7a/libogg.a +0 -0
  67. package/common/cpp/audioapi/external/armeabi-v7a/libopus.a +0 -0
  68. package/common/cpp/audioapi/external/armeabi-v7a/libopusfile.a +0 -0
  69. package/common/cpp/audioapi/external/armeabi-v7a/libssl.a +0 -0
  70. package/common/cpp/audioapi/external/armeabi-v7a/libvorbis.a +0 -0
  71. package/common/cpp/audioapi/external/armeabi-v7a/libvorbisenc.a +0 -0
  72. package/common/cpp/audioapi/external/armeabi-v7a/libvorbisfile.a +0 -0
  73. package/common/cpp/audioapi/external/iphoneos/libcrypto.a +0 -0
  74. package/common/cpp/audioapi/external/iphoneos/libogg.a +0 -0
  75. package/common/cpp/audioapi/external/iphoneos/libopus.a +0 -0
  76. package/common/cpp/audioapi/external/iphoneos/libopusfile.a +0 -0
  77. package/common/cpp/audioapi/external/iphoneos/libssl.a +0 -0
  78. package/common/cpp/audioapi/external/iphoneos/libvorbis.a +0 -0
  79. package/common/cpp/audioapi/external/iphoneos/libvorbisenc.a +0 -0
  80. package/common/cpp/audioapi/external/iphoneos/libvorbisfile.a +0 -0
  81. package/common/cpp/audioapi/external/iphonesimulator/libcrypto.a +0 -0
  82. package/common/cpp/audioapi/external/iphonesimulator/libogg.a +0 -0
  83. package/common/cpp/audioapi/external/iphonesimulator/libopus.a +0 -0
  84. package/common/cpp/audioapi/external/iphonesimulator/libopusfile.a +0 -0
  85. package/common/cpp/audioapi/external/iphonesimulator/libssl.a +0 -0
  86. package/common/cpp/audioapi/external/iphonesimulator/libvorbis.a +0 -0
  87. package/common/cpp/audioapi/external/iphonesimulator/libvorbisenc.a +0 -0
  88. package/common/cpp/audioapi/external/iphonesimulator/libvorbisfile.a +0 -0
  89. package/common/cpp/audioapi/external/libavcodec.xcframework/Info.plist +0 -44
  90. package/common/cpp/audioapi/external/libavcodec.xcframework/ios-arm64/libavcodec.framework/Info.plist +0 -1
  91. package/common/cpp/audioapi/external/libavcodec.xcframework/ios-arm64/libavcodec.framework/libavcodec +0 -0
  92. package/common/cpp/audioapi/external/libavcodec.xcframework/ios-arm64_x86_64-simulator/libavcodec.framework/Info.plist +0 -1
  93. package/common/cpp/audioapi/external/libavcodec.xcframework/ios-arm64_x86_64-simulator/libavcodec.framework/libavcodec +0 -0
  94. package/common/cpp/audioapi/external/libavformat.xcframework/Info.plist +0 -44
  95. package/common/cpp/audioapi/external/libavformat.xcframework/ios-arm64/libavformat.framework/Info.plist +0 -1
  96. package/common/cpp/audioapi/external/libavformat.xcframework/ios-arm64/libavformat.framework/libavformat +0 -0
  97. package/common/cpp/audioapi/external/libavformat.xcframework/ios-arm64_x86_64-simulator/libavformat.framework/Info.plist +0 -1
  98. package/common/cpp/audioapi/external/libavformat.xcframework/ios-arm64_x86_64-simulator/libavformat.framework/libavformat +0 -0
  99. package/common/cpp/audioapi/external/libavutil.xcframework/Info.plist +0 -44
  100. package/common/cpp/audioapi/external/libavutil.xcframework/ios-arm64/libavutil.framework/Info.plist +0 -1
  101. package/common/cpp/audioapi/external/libavutil.xcframework/ios-arm64/libavutil.framework/libavutil +0 -0
  102. package/common/cpp/audioapi/external/libavutil.xcframework/ios-arm64_x86_64-simulator/libavutil.framework/Info.plist +0 -1
  103. package/common/cpp/audioapi/external/libavutil.xcframework/ios-arm64_x86_64-simulator/libavutil.framework/libavutil +0 -0
  104. package/common/cpp/audioapi/external/libswresample.xcframework/Info.plist +0 -44
  105. package/common/cpp/audioapi/external/libswresample.xcframework/ios-arm64/libswresample.framework/Info.plist +0 -1
  106. package/common/cpp/audioapi/external/libswresample.xcframework/ios-arm64/libswresample.framework/libswresample +0 -0
  107. package/common/cpp/audioapi/external/libswresample.xcframework/ios-arm64_x86_64-simulator/libswresample.framework/Info.plist +0 -1
  108. package/common/cpp/audioapi/external/libswresample.xcframework/ios-arm64_x86_64-simulator/libswresample.framework/libswresample +0 -0
  109. package/common/cpp/audioapi/external/x86/libcrypto.a +0 -0
  110. package/common/cpp/audioapi/external/x86/libogg.a +0 -0
  111. package/common/cpp/audioapi/external/x86/libopus.a +0 -0
  112. package/common/cpp/audioapi/external/x86/libopusfile.a +0 -0
  113. package/common/cpp/audioapi/external/x86/libssl.a +0 -0
  114. package/common/cpp/audioapi/external/x86/libvorbis.a +0 -0
  115. package/common/cpp/audioapi/external/x86/libvorbisenc.a +0 -0
  116. package/common/cpp/audioapi/external/x86/libvorbisfile.a +0 -0
  117. package/common/cpp/audioapi/external/x86_64/libcrypto.a +0 -0
  118. package/common/cpp/audioapi/external/x86_64/libogg.a +0 -0
  119. package/common/cpp/audioapi/external/x86_64/libopus.a +0 -0
  120. package/common/cpp/audioapi/external/x86_64/libopusfile.a +0 -0
  121. package/common/cpp/audioapi/external/x86_64/libssl.a +0 -0
  122. package/common/cpp/audioapi/external/x86_64/libvorbis.a +0 -0
  123. package/common/cpp/audioapi/external/x86_64/libvorbisenc.a +0 -0
  124. package/common/cpp/audioapi/external/x86_64/libvorbisfile.a +0 -0
  125. package/common/cpp/audioapi/libs/ffmpeg/INSTRUCTIONS.md +0 -26
  126. package/common/cpp/audioapi/libs/ffmpeg/create_xcframework.sh +0 -111
  127. package/common/cpp/audioapi/libs/ffmpeg/ffmpeg_setup.sh +0 -381
@@ -1,381 +0,0 @@
1
- #!/bin/bash
2
-
3
- # FFmpeg Mobile Architecture Build Script
4
- # Builds shared ffmpeg binaries for iOS and Android architectures
5
- set -e
6
-
7
- SOURCE_DIR="/path/to/your/ffmpeg" # Change this to your FFmpeg source directory
8
- if [ ! -d "${SOURCE_DIR}" ]; then
9
- echo "FFmpeg source directory does not exist: ${SOURCE_DIR}"
10
- exit 1
11
- fi
12
-
13
- BUILD_DIR="$(pwd)/build"
14
- OUTPUT_DIR="$(pwd)/output"
15
- mkdir -p "${BUILD_DIR}"
16
- mkdir -p "${OUTPUT_DIR}"
17
-
18
- AVUTIL_VERSION="60.6.100"
19
- AVCODEC_VERSION="62.8.100"
20
- AVFORMAT_VERSION="62.1.103"
21
- SWRRESAMPLE_VERSION="6.0.100"
22
-
23
- COMMON_CONFIG="
24
- --disable-programs
25
- --disable-doc
26
- --disable-htmlpages
27
- --disable-manpages
28
- --disable-podpages
29
- --disable-txtpages
30
- --disable-avdevice
31
- --disable-swscale
32
- --disable-avfilter
33
- --disable-protocols
34
- --disable-devices
35
- --disable-filters
36
- --disable-static
37
- --enable-shared
38
- --enable-small
39
- --disable-debug
40
- --disable-optimizations
41
- --disable-everything
42
- --disable-audiotoolbox
43
- --disable-videotoolbox
44
- --disable-hwaccels
45
- --enable-protocol=https,tls,tcp,http
46
- --enable-demuxer=hls
47
- --enable-demuxer=mov
48
- --enable-demuxer=mp3
49
- --enable-parser=aac
50
- --enable-decoder=aac
51
- --enable-decoder=mp3
52
- --enable-decoder=flac
53
- --enable-protocol=udp
54
- --enable-protocol=file
55
- --enable-pic
56
- --disable-x86asm
57
- "
58
-
59
- build_arch() {
60
- local ARCH=$1
61
- local PLATFORM=$2
62
- local CC=$3
63
- local CXX=$4
64
- local CFLAGS=$5
65
- local LDFLAGS=$6
66
- local EXTRA_CONFIG=$7
67
-
68
- if [[ ${PLATFORM} == "android" ]]; then
69
- PLATFORM_NAME="android"
70
- if [[ ${ARCH} == "aarch64" ]]; then
71
- ARCH_NAME="arm64-v8a"
72
- elif [[ ${ARCH} == "armv7a" ]]; then
73
- ARCH_NAME="armeabi-v7a"
74
- else
75
- ARCH_NAME=${ARCH}
76
- fi
77
- elif [[ ${PLATFORM} == "darwin" ]]; then
78
- PLATFORM_NAME="ios"
79
- ARCH_NAME="iphoneos"
80
- elif [[ ${PLATFORM} == "darwinsim" ]]; then
81
- PLATFORM_NAME="ios"
82
- if [[ ${ARCH} == "x86_64" ]]; then
83
- ARCH_NAME="iphonesimulator_x86_64"
84
- else
85
- ARCH_NAME="iphonesimulator_arm64"
86
- fi
87
- fi
88
-
89
- echo "Building FFmpeg for ${PLATFORM_NAME} ${ARCH_NAME}..."
90
-
91
- SOURCE_PATH="${BUILD_DIR}/ffmpeg-${PLATFORM_NAME}-${ARCH_NAME}"
92
- OUTPUT_PATH="${OUTPUT_DIR}/${PLATFORM_NAME}/${ARCH_NAME}"
93
-
94
- mkdir -p "${OUTPUT_PATH}"
95
-
96
- echo "Copying source for ${PLATFORM_NAME} ${ARCH_NAME}..."
97
- rm -rf "${SOURCE_PATH}"
98
- cp -r "${SOURCE_DIR}" "${SOURCE_PATH}"
99
-
100
- cd "${SOURCE_PATH}"
101
-
102
- make distclean 2>/dev/null || true
103
-
104
- if [[ ${PLATFORM} == "darwinsim" ]]; then
105
- PLATFORM="darwin"
106
- fi
107
-
108
- echo --enable-cross-compile --arch=${ARCH} --target-os=${PLATFORM} --cc="${CC}" --cxx="${CXX}" --extra-cflags="${CFLAGS}" --extra-ldflags="${LDFLAGS}" --prefix="${OUTPUT_PATH}" ${COMMON_CONFIG} ${EXTRA_CONFIG}
109
-
110
- # Configure
111
- ./configure \
112
- --enable-cross-compile \
113
- --arch=${ARCH} \
114
- --target-os=${PLATFORM} \
115
- --cc="${CC}" \
116
- --cxx="${CXX}" \
117
- --extra-cflags="${CFLAGS}" \
118
- --extra-ldflags="${LDFLAGS}" \
119
- --prefix="${OUTPUT_PATH}" \
120
- ${COMMON_CONFIG} \
121
- ${EXTRA_CONFIG}
122
-
123
- # Build
124
- make -j10
125
- make install
126
-
127
- echo "Completed ${PLATFORM} ${ARCH}"
128
- cd - > /dev/null
129
- }
130
-
131
- fix_dynamic_ios_linkage() {
132
- local LIB_PATH=$1
133
-
134
- # Get all dependencies that are not system libraries (including the library itself)
135
- otool -L "${LIB_PATH}" | grep -v "/usr/lib/" | grep -v "/System/" | awk 'NR>1 {print $1}' | while read -r dep; do
136
- if [[ -n "$dep" ]]; then
137
- # Extract library name without any version numbers and extension for framework path
138
- local lib_name=$(basename "$dep" | sed 's/\.dylib$//' | sed 's/\.[0-9][0-9.]*$//')
139
- local framework_path="@rpath/${lib_name}.framework/${lib_name}"
140
- echo "Changing dependency: $dep -> $framework_path"
141
- install_name_tool -change "$dep" "$framework_path" "${LIB_PATH}"
142
- fi
143
- done
144
-
145
- # Also update the library's own install name to use @rpath with framework structure
146
- local lib_name=$(basename "${LIB_PATH}" | sed 's/\.dylib$//' | sed 's/\.[0-9][0-9.]*$//')
147
- local framework_path="@rpath/${lib_name}.framework/${lib_name}"
148
- echo "Updating install name for $(basename "${LIB_PATH}") -> $framework_path"
149
- install_name_tool -id "$framework_path" "${LIB_PATH}"
150
- }
151
-
152
- # Check if source exists
153
- if [ ! -d "${SOURCE_DIR}" ]; then
154
- echo "FFmpeg source not found."
155
- exit 1
156
- fi
157
-
158
- # Clean the source directory of any previous builds
159
- cd "${SOURCE_DIR}"
160
- make distclean 2>/dev/null || true
161
- cd - > /dev/null
162
-
163
- # Use NDK_ROOT if ANDROID_NDK_ROOT is not set
164
- NDK_PATH="${ANDROID_NDK_ROOT:-$NDK_ROOT}"
165
-
166
- if [ ! -d "$NDK_PATH" ]; then
167
- echo "Android NDK not found. Please set ANDROID_NDK_ROOT or NDK_ROOT environment variable"
168
- exit 1
169
- fi
170
-
171
- API_LEVEL=21
172
- TOOLCHAIN_PATH="${NDK_PATH}/toolchains/llvm/prebuilt"
173
- export ANDROID_NDK_ROOT=${NDK_PATH}
174
-
175
- # Detect host OS for toolchain
176
- if [[ "$OSTYPE" == "darwin"* ]]; then
177
- HOST_TAG="darwin-x86_64"
178
- elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
179
- HOST_TAG="linux-x86_64"
180
- else
181
- echo "Unsupported host OS for Android NDK"
182
- exit 1
183
- fi
184
-
185
- TOOLCHAIN="${TOOLCHAIN_PATH}/${HOST_TAG}"
186
- PATH=$TOOLCHAIN/bin:$PATH
187
-
188
- OPENSSL_PREBUILT_FOLDER="$(pwd)/openssl-prebuilt"
189
- if [ ! -d "$OPENSSL_PREBUILT_FOLDER" ]; then
190
- echo "Cloning and building OpenSSL..."
191
- if [ ! -d "openssl" ]; then
192
- git clone https://github.com/openssl/openssl.git
193
- fi
194
- cd openssl
195
- mkdir -p "${OPENSSL_PREBUILT_FOLDER}/include"
196
-
197
- # ios-arm
198
- ./Configure ios64-xcrun no-shared no-asm no-tests
199
- make build_libs -j10
200
- mkdir -p ${OPENSSL_PREBUILT_FOLDER}/iphoneos && cp libcrypto.a libssl.a "${OPENSSL_PREBUILT_FOLDER}/iphoneos"
201
- cp -r include/crypto include/openssl "${OPENSSL_PREBUILT_FOLDER}/include"
202
- make clean
203
-
204
- # arm-simulator
205
- ./Configure iossimulator-arm64-xcrun no-shared no-asm no-tests
206
- make build_libs -j10
207
- mkdir -p ${OPENSSL_PREBUILT_FOLDER}/iphonesimulator && cp libcrypto.a libssl.a "${OPENSSL_PREBUILT_FOLDER}/iphonesimulator"
208
- make clean
209
-
210
- # x86_64-simulator
211
- ./Configure iossimulator-x86_64-xcrun no-shared no-asm no-tests
212
- make build_libs -j10
213
- mkdir -p ${OPENSSL_PREBUILT_FOLDER}/iphonesimulator-x86_64 && cp libcrypto.a libssl.a "${OPENSSL_PREBUILT_FOLDER}/iphonesimulator-x86_64"
214
- make clean
215
-
216
- # arm64-v8a
217
- ./Configure android-arm64 no-shared no-asm no-tests -D__ANDROID_API__=${API_LEVEL}
218
- make build_libs -j10
219
- mkdir -p ${OPENSSL_PREBUILT_FOLDER}/arm64-v8a && cp libcrypto.a libssl.a "${OPENSSL_PREBUILT_FOLDER}/arm64-v8a"
220
- make clean
221
-
222
- # armeabi-v7a
223
- ./Configure android-arm no-shared no-asm no-tests -D__ANDROID_API__=${API_LEVEL}
224
- make build_libs -j10
225
- mkdir -p ${OPENSSL_PREBUILT_FOLDER}/armeabi-v7a && cp libcrypto.a libssl.a "${OPENSSL_PREBUILT_FOLDER}/armeabi-v7a"
226
- make clean
227
-
228
- ./Configure android-x86 no-shared no-asm no-tests -D__ANDROID_API__=${API_LEVEL}
229
- make build_libs -j10
230
- mkdir -p ${OPENSSL_PREBUILT_FOLDER}/x86 && cp libcrypto.a libssl.a "${OPENSSL_PREBUILT_FOLDER}/x86"
231
- make clean
232
-
233
- ./Configure android-x86_64 no-shared no-asm no-tests -D__ANDROID_API__=${API_LEVEL}
234
- make build_libs -j10
235
- mkdir -p ${OPENSSL_PREBUILT_FOLDER}/x86_64 && cp libcrypto.a libssl.a "${OPENSSL_PREBUILT_FOLDER}/x86_64"
236
- make clean
237
-
238
- cd .. && rm -rf openssl
239
- fi
240
-
241
- # iOS Architectures
242
- if [[ "$OSTYPE" == "darwin"* ]]; then
243
- echo "Building for iOS architectures..."
244
-
245
- # iOS SDK paths
246
- IOS_SDK_PATH=$(xcrun --sdk iphoneos --show-sdk-path)
247
- IOS_SIM_SDK_PATH=$(xcrun --sdk iphonesimulator --show-sdk-path)
248
-
249
- # iOS Device architecture
250
- build_arch "arm64" "darwin" \
251
- "$(xcrun --sdk iphoneos --find clang)" \
252
- "$(xcrun --sdk iphoneos --find clang++)" \
253
- "-I${OPENSSL_PREBUILT_FOLDER}/include -arch arm64 -mios-version-min=11.0 -isysroot ${IOS_SDK_PATH}" \
254
- "-L${OPENSSL_PREBUILT_FOLDER}/iphoneos -arch arm64 -mios-version-min=11.0 -isysroot ${IOS_SDK_PATH}" \
255
- "--disable-iconv --disable-zlib --enable-openssl --disable-securetransport"
256
-
257
- fix_dynamic_ios_linkage "${OUTPUT_DIR}/ios/iphoneos/lib/libavcodec.${AVCODEC_VERSION}.dylib"
258
- fix_dynamic_ios_linkage "${OUTPUT_DIR}/ios/iphoneos/lib/libavformat.${AVFORMAT_VERSION}.dylib"
259
- fix_dynamic_ios_linkage "${OUTPUT_DIR}/ios/iphoneos/lib/libavutil.${AVUTIL_VERSION}.dylib"
260
- fix_dynamic_ios_linkage "${OUTPUT_DIR}/ios/iphoneos/lib/libswresample.${SWRRESAMPLE_VERSION}.dylib"
261
-
262
- rm -rf "${OUTPUT_DIR}/ios/iphoneos/share"
263
-
264
- # iOS Simulator arm (Silicon Macs)
265
- build_arch "arm64" "darwinsim" \
266
- "$(xcrun --sdk iphonesimulator --find clang)" \
267
- "$(xcrun --sdk iphonesimulator --find clang++)" \
268
- "-I${OPENSSL_PREBUILT_FOLDER}/include -arch arm64 -mios-simulator-version-min=11.0 -isysroot ${IOS_SIM_SDK_PATH}" \
269
- "-L${OPENSSL_PREBUILT_FOLDER}/iphonesimulator -arch arm64 -mios-simulator-version-min=11.0 -isysroot ${IOS_SIM_SDK_PATH}" \
270
- "--disable-iconv --disable-zlib --enable-openssl --disable-securetransport"
271
-
272
- fix_dynamic_ios_linkage "${OUTPUT_DIR}/ios/iphonesimulator_arm64/lib/libavcodec.${AVCODEC_VERSION}.dylib"
273
- fix_dynamic_ios_linkage "${OUTPUT_DIR}/ios/iphonesimulator_arm64/lib/libavformat.${AVFORMAT_VERSION}.dylib"
274
- fix_dynamic_ios_linkage "${OUTPUT_DIR}/ios/iphonesimulator_arm64/lib/libavutil.${AVUTIL_VERSION}.dylib"
275
- fix_dynamic_ios_linkage "${OUTPUT_DIR}/ios/iphonesimulator_arm64/lib/libswresample.${SWRRESAMPLE_VERSION}.dylib"
276
-
277
- rm -rf "${OUTPUT_DIR}/ios/iphonesimulator_arm64/share"
278
-
279
- # iOS Simulator x86_64 (Intel Macs)
280
- build_arch "x86_64" "darwinsim" \
281
- "$(xcrun --sdk iphonesimulator --find clang)" \
282
- "$(xcrun --sdk iphonesimulator --find clang++)" \
283
- "-I${OPENSSL_PREBUILT_FOLDER}/include -arch x86_64 -mios-simulator-version-min=11.0 -isysroot ${IOS_SIM_SDK_PATH}" \
284
- "-L${OPENSSL_PREBUILT_FOLDER}/iphonesimulator-x86_64 -arch x86_64 -mios-simulator-version-min=11.0 -isysroot ${IOS_SIM_SDK_PATH}" \
285
- "--disable-iconv --disable-zlib --enable-openssl --disable-securetransport"
286
-
287
- fix_dynamic_ios_linkage "${OUTPUT_DIR}/ios/iphonesimulator_x86_64/lib/libavcodec.${AVCODEC_VERSION}.dylib"
288
- fix_dynamic_ios_linkage "${OUTPUT_DIR}/ios/iphonesimulator_x86_64/lib/libavformat.${AVFORMAT_VERSION}.dylib"
289
- fix_dynamic_ios_linkage "${OUTPUT_DIR}/ios/iphonesimulator_x86_64/lib/libavutil.${AVUTIL_VERSION}.dylib"
290
- fix_dynamic_ios_linkage "${OUTPUT_DIR}/ios/iphonesimulator_x86_64/lib/libswresample.${SWRRESAMPLE_VERSION}.dylib"
291
-
292
- rm -rf "${OUTPUT_DIR}/ios/iphonesimulator_x86_64/share"
293
-
294
- mkdir -p "${OUTPUT_DIR}/ios/iphonesimulator/lib"
295
- # Create universal simulator libraries
296
- lipo -create \
297
- "${OUTPUT_DIR}/ios/iphonesimulator_arm64/lib/libavcodec.${AVCODEC_VERSION}.dylib" \
298
- "${OUTPUT_DIR}/ios/iphonesimulator_x86_64/lib/libavcodec.${AVCODEC_VERSION}.dylib" \
299
- -output "${OUTPUT_DIR}/ios/iphonesimulator/lib/libavcodec.${AVCODEC_VERSION}.dylib"
300
- lipo -create \
301
- "${OUTPUT_DIR}/ios/iphonesimulator_arm64/lib/libavformat.${AVFORMAT_VERSION}.dylib" \
302
- "${OUTPUT_DIR}/ios/iphonesimulator_x86_64/lib/libavformat.${AVFORMAT_VERSION}.dylib" \
303
- -output "${OUTPUT_DIR}/ios/iphonesimulator/lib/libavformat.${AVFORMAT_VERSION}.dylib"
304
-
305
- lipo -create \
306
- "${OUTPUT_DIR}/ios/iphonesimulator_arm64/lib/libavutil.${AVUTIL_VERSION}.dylib" \
307
- "${OUTPUT_DIR}/ios/iphonesimulator_x86_64/lib/libavutil.${AVUTIL_VERSION}.dylib" \
308
- -output "${OUTPUT_DIR}/ios/iphonesimulator/lib/libavutil.${AVUTIL_VERSION}.dylib"
309
-
310
- lipo -create \
311
- "${OUTPUT_DIR}/ios/iphonesimulator_arm64/lib/libswresample.${SWRRESAMPLE_VERSION}.dylib" \
312
- "${OUTPUT_DIR}/ios/iphonesimulator_x86_64/lib/libswresample.${SWRRESAMPLE_VERSION}.dylib" \
313
- -output "${OUTPUT_DIR}/ios/iphonesimulator/lib/libswresample.${SWRRESAMPLE_VERSION}.dylib"
314
-
315
- mv "${OUTPUT_DIR}/ios/iphonesimulator/lib/libswresample.${SWRRESAMPLE_VERSION}.dylib" "${OUTPUT_DIR}/ios/iphonesimulator/lib/libswresample.dylib"
316
- mv "${OUTPUT_DIR}/ios/iphonesimulator/lib/libavutil.${AVUTIL_VERSION}.dylib" "${OUTPUT_DIR}/ios/iphonesimulator/lib/libavutil.dylib"
317
- mv "${OUTPUT_DIR}/ios/iphonesimulator/lib/libavformat.${AVFORMAT_VERSION}.dylib" "${OUTPUT_DIR}/ios/iphonesimulator/lib/libavformat.dylib"
318
- mv "${OUTPUT_DIR}/ios/iphonesimulator/lib/libavcodec.${AVCODEC_VERSION}.dylib" "${OUTPUT_DIR}/ios/iphonesimulator/lib/libavcodec.dylib"
319
-
320
- # create frameworks from binaries
321
- bash ./create_xcframework.sh
322
-
323
- echo "iOS builds completed!"
324
- else
325
- echo "Skipping iOS builds (requires macOS)"
326
- fi
327
-
328
- # Android Architectures
329
- if [ -n "$ANDROID_NDK_ROOT" ] || [ -n "$NDK_ROOT" ]; then
330
- echo "Building for Android architectures..."
331
-
332
- # ARM64-v8a
333
- build_arch "aarch64" "android" \
334
- "${TOOLCHAIN}/bin/aarch64-linux-android${API_LEVEL}-clang" \
335
- "${TOOLCHAIN}/bin/aarch64-linux-android${API_LEVEL}-clang++" \
336
- "-I${OPENSSL_PREBUILT_FOLDER}/include -I${TOOLCHAIN}/sysroot/usr/include -fPIC -Wl,-Bsymbolic -Wl,-z,max-page-size=16384 -Wl,-z,common-page-size=16384" \
337
- "-L${OPENSSL_PREBUILT_FOLDER}/arm64-v8a -L${TOOLCHAIN}/sysroot/usr/lib/aarch64-linux-android/${API_LEVEL} -fPIC -Wl,-Bsymbolic -Wl,-z,max-page-size=16384 -Wl,-z,common-page-size=16384" \
338
- "--enable-openssl --extra-libs=-lz"
339
-
340
- rm -rf ${OUTPUT_DIR}/android/arm64-v8a/share
341
-
342
- # ARMv7a
343
- build_arch "armv7a" "android" \
344
- "${TOOLCHAIN}/bin/armv7a-linux-androideabi${API_LEVEL}-clang" \
345
- "${TOOLCHAIN}/bin/armv7a-linux-androideabi${API_LEVEL}-clang++" \
346
- "-I${OPENSSL_PREBUILT_FOLDER}/include -I${TOOLCHAIN}/sysroot/usr/include -fPIC -Wl,-Bsymbolic -Wl,-z,max-page-size=16384 -Wl,-z,common-page-size=16384" \
347
- "-L${OPENSSL_PREBUILT_FOLDER}/armeabi-v7a -L${TOOLCHAIN}/sysroot/usr/lib/arm-linux-android/${API_LEVEL} -fPIC -Wl,-Bsymbolic -Wl,-z,max-page-size=16384 -Wl,-z,common-page-size=16384" \
348
- "--enable-openssl --extra-libs=-lz"
349
-
350
- rm -rf ${OUTPUT_DIR}/android/armeabi-v7a/share
351
-
352
- # x86
353
- build_arch "x86" "android" \
354
- "${TOOLCHAIN}/bin/i686-linux-android${API_LEVEL}-clang" \
355
- "${TOOLCHAIN}/bin/i686-linux-android${API_LEVEL}-clang++" \
356
- "-I${OPENSSL_PREBUILT_FOLDER}/include -I${TOOLCHAIN}/darwin-x86_64/sysroot/usr/include -fPIC -Wl,-Bsymbolic -Wl,-z,max-page-size=16384 -Wl,-z,common-page-size=16384" \
357
- "-L${OPENSSL_PREBUILT_FOLDER}/x86 -L${TOOLCHAIN}/darwin-x86_64/sysroot/usr/lib/i686-linux-android/${API_LEVEL} -fPIC -Wl,-Bsymbolic -Wl,-z,max-page-size=16384 -Wl,-z,common-page-size=16384" \
358
- "--enable-openssl --extra-libs=-lz"
359
-
360
- rm -rf ${OUTPUT_DIR}/android/x86/share
361
-
362
-
363
- # x86_64
364
- build_arch "x86_64" "android" \
365
- "${TOOLCHAIN}/bin/x86_64-linux-android${API_LEVEL}-clang" \
366
- "${TOOLCHAIN}/bin/x86_64-linux-android${API_LEVEL}-clang++" \
367
- "-I${OPENSSL_PREBUILT_FOLDER}/include -I${TOOLCHAIN}/darwin-x86_64/sysroot/usr/include -fPIC -Wl,-Bsymbolic -Wl,-z,max-page-size=16384 -Wl,-z,common-page-size=16384" \
368
- "-L${OPENSSL_PREBUILT_FOLDER}/x86_64 -L${TOOLCHAIN}/darwin-x86_64/sysroot/usr/lib/x86_64-linux-android/${API_LEVEL} -fPIC -Wl,-Bsymbolic -Wl,-z,max-page-size=16384 -Wl,-z,common-page-size=16384" \
369
- "--enable-openssl --extra-libs=-lz"
370
-
371
- rm -rf ${OUTPUT_DIR}/android/x86_64/share
372
-
373
-
374
- echo "Android builds completed!"
375
- else
376
- echo "Skipping Android builds (ANDROID_NDK_ROOT or NDK_ROOT not set)"
377
- fi
378
-
379
- rm -rf "${BUILD_DIR}"
380
-
381
- echo "All FFmpeg builds completed!"