react-native-audio-api 0.11.0-alpha.0 → 0.11.0-nightly-bfab178-20251107

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 (350) hide show
  1. package/README.md +13 -11
  2. package/RNAudioAPI.podspec +20 -15
  3. package/android/build.gradle +33 -3
  4. package/android/src/main/cpp/audioapi/CMakeLists.txt +6 -3
  5. package/android/src/main/cpp/audioapi/android/AudioAPIModule.cpp +5 -0
  6. package/android/src/main/cpp/audioapi/android/AudioAPIModule.h +1 -0
  7. package/android/src/main/cpp/audioapi/android/core/AndroidAudioRecorder.cpp +30 -94
  8. package/android/src/main/cpp/audioapi/android/core/AndroidAudioRecorder.h +14 -28
  9. package/android/src/main/cpp/audioapi/android/core/AudioPlayer.cpp +4 -2
  10. package/android/src/main/cpp/audioapi/android/core/NativeAudioRecorder.hpp +9 -9
  11. package/android/src/main/cpp/audioapi/android/core/utils/AudioDecoder.cpp +6 -0
  12. package/android/src/main/java/com/swmansion/audioapi/AudioAPIModule.kt +31 -3
  13. package/android/src/main/java/com/swmansion/audioapi/system/AudioFocusListener.kt +21 -9
  14. package/android/src/main/java/com/swmansion/audioapi/system/LockScreenManager.kt +27 -6
  15. package/android/src/main/java/com/swmansion/audioapi/system/MediaNotificationManager.kt +11 -0
  16. package/android/src/oldarch/NativeAudioAPIModuleSpec.java +4 -0
  17. package/common/cpp/audioapi/AudioAPIModuleInstaller.h +30 -2
  18. package/common/cpp/audioapi/HostObjects/BaseAudioContextHostObject.cpp +18 -0
  19. package/common/cpp/audioapi/HostObjects/BaseAudioContextHostObject.h +1 -0
  20. package/common/cpp/audioapi/HostObjects/effects/BiquadFilterNodeHostObject.cpp +1 -1
  21. package/common/cpp/audioapi/HostObjects/effects/ConvolverNodeHostObject.cpp +47 -0
  22. package/common/cpp/audioapi/HostObjects/effects/ConvolverNodeHostObject.h +20 -0
  23. package/common/cpp/audioapi/HostObjects/inputs/AudioRecorderHostObject.cpp +18 -80
  24. package/common/cpp/audioapi/HostObjects/inputs/AudioRecorderHostObject.h +6 -15
  25. package/common/cpp/audioapi/HostObjects/sources/AudioBufferBaseSourceNodeHostObject.cpp +1 -1
  26. package/common/cpp/audioapi/HostObjects/sources/AudioBufferSourceNodeHostObject.cpp +1 -1
  27. package/common/cpp/audioapi/HostObjects/sources/AudioScheduledSourceNodeHostObject.cpp +1 -1
  28. package/common/cpp/audioapi/core/AudioNode.h +3 -2
  29. package/common/cpp/audioapi/core/AudioParam.cpp +2 -2
  30. package/common/cpp/audioapi/core/BaseAudioContext.cpp +10 -0
  31. package/common/cpp/audioapi/core/BaseAudioContext.h +2 -0
  32. package/common/cpp/audioapi/core/effects/BiquadFilterNode.cpp +69 -32
  33. package/common/cpp/audioapi/core/effects/BiquadFilterNode.h +37 -1
  34. package/common/cpp/audioapi/core/effects/ConvolverNode.cpp +210 -0
  35. package/common/cpp/audioapi/core/effects/ConvolverNode.h +55 -0
  36. package/common/cpp/audioapi/core/inputs/AudioRecorder.cpp +49 -102
  37. package/common/cpp/audioapi/core/inputs/AudioRecorder.h +28 -46
  38. package/common/cpp/audioapi/core/sources/AudioBufferBaseSourceNode.cpp +14 -17
  39. package/common/cpp/audioapi/core/sources/AudioBufferBaseSourceNode.h +0 -1
  40. package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.cpp +8 -14
  41. package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.h +0 -1
  42. package/common/cpp/audioapi/core/sources/AudioScheduledSourceNode.cpp +14 -18
  43. package/common/cpp/audioapi/core/sources/AudioScheduledSourceNode.h +2 -2
  44. package/common/cpp/audioapi/core/sources/StreamerNode.cpp +64 -64
  45. package/common/cpp/audioapi/core/sources/StreamerNode.h +38 -10
  46. package/common/cpp/audioapi/core/utils/AudioNodeManager.cpp +5 -0
  47. package/common/cpp/audioapi/core/utils/Constants.h +2 -1
  48. package/common/cpp/audioapi/core/utils/worklets/SafeIncludes.h +12 -8
  49. package/common/cpp/audioapi/core/utils/worklets/WorkletsRunner.cpp +3 -3
  50. package/common/cpp/audioapi/core/utils/worklets/WorkletsRunner.h +1 -1
  51. package/common/cpp/audioapi/dsp/AudioUtils.cpp +1 -1
  52. package/common/cpp/audioapi/dsp/Convolver.cpp +213 -0
  53. package/common/cpp/audioapi/dsp/Convolver.h +45 -0
  54. package/common/cpp/audioapi/dsp/FFT.cpp +0 -26
  55. package/common/cpp/audioapi/dsp/FFT.h +26 -2
  56. package/common/cpp/audioapi/events/AudioEventHandlerRegistry.h +1 -1
  57. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/avcodec.h +4 -4
  58. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/codec.h +1 -1
  59. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/codec_desc.h +1 -1
  60. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/codec_id.h +3 -1
  61. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/codec_par.h +2 -2
  62. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/defs.h +3 -0
  63. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/packet.h +1 -1
  64. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/smpte_436m.h +254 -0
  65. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/version.h +1 -1
  66. package/common/cpp/audioapi/external/ffmpeg_include/libavformat/avformat.h +6 -6
  67. package/common/cpp/audioapi/external/ffmpeg_include/libavformat/version.h +2 -2
  68. package/common/cpp/audioapi/external/ffmpeg_include/libavformat/version_major.h +2 -0
  69. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/avassert.h +5 -2
  70. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/avutil.h +2 -2
  71. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/channel_layout.h +2 -2
  72. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/csp.h +1 -1
  73. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/dict.h +1 -1
  74. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/ffversion.h +1 -1
  75. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/film_grain_params.h +1 -1
  76. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/frame.h +1 -1
  77. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hdr_dynamic_vivid_metadata.h +3 -3
  78. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext.h +1 -1
  79. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_opencl.h +1 -1
  80. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_qsv.h +0 -1
  81. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_vulkan.h +1 -1
  82. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/iamf.h +2 -2
  83. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/lfg.h +2 -2
  84. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/log.h +2 -2
  85. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/mathematics.h +1 -1
  86. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/opt.h +4 -4
  87. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/rational.h +1 -1
  88. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/rc4.h +1 -1
  89. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/refstruct.h +1 -1
  90. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/spherical.h +6 -0
  91. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/tdrdi.h +1 -1
  92. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/tx.h +1 -1
  93. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/version.h +3 -3
  94. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/video_hint.h +1 -1
  95. package/common/cpp/audioapi/external/ffmpeg_include/libswresample/swresample.h +1 -1
  96. package/common/cpp/audioapi/external/ffmpeg_include/libswresample/version.h +1 -1
  97. package/common/cpp/audioapi/libs/ffmpeg/FFmpegDecoding.cpp +2 -3
  98. package/common/cpp/audioapi/libs/ffmpeg/relinking.md +24 -0
  99. package/common/cpp/audioapi/utils/AlignedAllocator.hpp +50 -0
  100. package/common/cpp/audioapi/utils/AudioBus.cpp +28 -0
  101. package/common/cpp/audioapi/utils/AudioBus.h +3 -0
  102. package/common/cpp/audioapi/utils/ThreadPool.hpp +59 -1
  103. package/common/cpp/test/CMakeLists.txt +19 -14
  104. package/common/cpp/test/src/AudioParamTest.cpp +1 -1
  105. package/common/cpp/test/src/AudioScheduledSourceTest.cpp +134 -0
  106. package/common/cpp/test/src/ConstantSourceTest.cpp +1 -1
  107. package/common/cpp/test/src/GainTest.cpp +1 -1
  108. package/common/cpp/test/src/MockAudioEventHandlerRegistry.h +4 -4
  109. package/common/cpp/test/src/OscillatorTest.cpp +1 -1
  110. package/common/cpp/test/src/StereoPannerTest.cpp +1 -1
  111. package/common/cpp/test/src/biquad/BiquadFilterChromium.cpp +389 -0
  112. package/common/cpp/test/src/biquad/BiquadFilterChromium.h +64 -0
  113. package/common/cpp/test/src/biquad/BiquadFilterTest.cpp +284 -0
  114. package/common/cpp/test/src/biquad/BiquadFilterTest.h +40 -0
  115. package/ios/audioapi/ios/AudioAPIModule.h +2 -1
  116. package/ios/audioapi/ios/AudioAPIModule.mm +13 -0
  117. package/ios/audioapi/ios/core/IOSAudioRecorder.h +9 -18
  118. package/ios/audioapi/ios/core/IOSAudioRecorder.mm +28 -70
  119. package/ios/audioapi/ios/core/NativeAudioRecorder.h +6 -2
  120. package/ios/audioapi/ios/core/NativeAudioRecorder.m +73 -5
  121. package/ios/audioapi/ios/system/AudioEngine.mm +3 -3
  122. package/ios/audioapi/ios/system/AudioSessionManager.h +2 -0
  123. package/ios/audioapi/ios/system/AudioSessionManager.mm +24 -0
  124. package/ios/audioapi/ios/system/LockScreenManager.h +0 -1
  125. package/ios/audioapi/ios/system/LockScreenManager.mm +6 -19
  126. package/lib/commonjs/api.js +141 -76
  127. package/lib/commonjs/api.js.map +1 -1
  128. package/lib/commonjs/api.web.js +8 -0
  129. package/lib/commonjs/api.web.js.map +1 -1
  130. package/lib/commonjs/core/AudioContext.js +1 -1
  131. package/lib/commonjs/core/AudioContext.js.map +1 -1
  132. package/lib/commonjs/core/AudioRecorder.js +12 -157
  133. package/lib/commonjs/core/AudioRecorder.js.map +1 -1
  134. package/lib/commonjs/core/BaseAudioContext.js +28 -25
  135. package/lib/commonjs/core/BaseAudioContext.js.map +1 -1
  136. package/lib/commonjs/core/ConvolverNode.js +37 -0
  137. package/lib/commonjs/core/ConvolverNode.js.map +1 -0
  138. package/lib/commonjs/core/OfflineAudioContext.js +1 -1
  139. package/lib/commonjs/core/OfflineAudioContext.js.map +1 -1
  140. package/lib/commonjs/specs/NativeAudioAPIModule.js.map +1 -1
  141. package/lib/commonjs/system/AudioManager.js +3 -0
  142. package/lib/commonjs/system/AudioManager.js.map +1 -1
  143. package/lib/commonjs/types.js +0 -46
  144. package/lib/commonjs/types.js.map +1 -1
  145. package/lib/commonjs/utils/index.js +19 -21
  146. package/lib/commonjs/utils/index.js.map +1 -1
  147. package/lib/commonjs/web-core/AudioContext.js +12 -0
  148. package/lib/commonjs/web-core/AudioContext.js.map +1 -1
  149. package/lib/commonjs/web-core/ConvolverNode.js +40 -0
  150. package/lib/commonjs/web-core/ConvolverNode.js.map +1 -0
  151. package/lib/commonjs/web-core/ConvolverNodeOptions.js +6 -0
  152. package/lib/commonjs/web-core/ConvolverNodeOptions.js.map +1 -0
  153. package/lib/commonjs/web-core/OfflineAudioContext.js +12 -0
  154. package/lib/commonjs/web-core/OfflineAudioContext.js.map +1 -1
  155. package/lib/module/api.js +16 -15
  156. package/lib/module/api.js.map +1 -1
  157. package/lib/module/api.web.js +1 -0
  158. package/lib/module/api.web.js.map +1 -1
  159. package/lib/module/core/AudioContext.js +2 -2
  160. package/lib/module/core/AudioContext.js.map +1 -1
  161. package/lib/module/core/AudioRecorder.js +12 -157
  162. package/lib/module/core/AudioRecorder.js.map +1 -1
  163. package/lib/module/core/BaseAudioContext.js +29 -26
  164. package/lib/module/core/BaseAudioContext.js.map +1 -1
  165. package/lib/module/core/ConvolverNode.js +31 -0
  166. package/lib/module/core/ConvolverNode.js.map +1 -0
  167. package/lib/module/core/OfflineAudioContext.js +2 -2
  168. package/lib/module/core/OfflineAudioContext.js.map +1 -1
  169. package/lib/module/specs/NativeAudioAPIModule.js.map +1 -1
  170. package/lib/module/system/AudioManager.js +3 -0
  171. package/lib/module/system/AudioManager.js.map +1 -1
  172. package/lib/module/types.js +1 -45
  173. package/lib/module/types.js.map +1 -1
  174. package/lib/module/utils/index.js +15 -2
  175. package/lib/module/utils/index.js.map +1 -1
  176. package/lib/module/web-core/AudioContext.js +12 -0
  177. package/lib/module/web-core/AudioContext.js.map +1 -1
  178. package/lib/module/web-core/ConvolverNode.js +34 -0
  179. package/lib/module/web-core/ConvolverNode.js.map +1 -0
  180. package/lib/module/web-core/ConvolverNodeOptions.js +4 -0
  181. package/lib/module/web-core/ConvolverNodeOptions.js.map +1 -0
  182. package/lib/module/web-core/OfflineAudioContext.js +12 -0
  183. package/lib/module/web-core/OfflineAudioContext.js.map +1 -1
  184. package/lib/typescript/api.d.ts +19 -17
  185. package/lib/typescript/api.d.ts.map +1 -1
  186. package/lib/typescript/api.web.d.ts +1 -0
  187. package/lib/typescript/api.web.d.ts.map +1 -1
  188. package/lib/typescript/core/AudioContext.d.ts.map +1 -1
  189. package/lib/typescript/core/AudioRecorder.d.ts +6 -58
  190. package/lib/typescript/core/AudioRecorder.d.ts.map +1 -1
  191. package/lib/typescript/core/BaseAudioContext.d.ts +3 -1
  192. package/lib/typescript/core/BaseAudioContext.d.ts.map +1 -1
  193. package/lib/typescript/core/ConvolverNode.d.ts +12 -0
  194. package/lib/typescript/core/ConvolverNode.d.ts.map +1 -0
  195. package/lib/typescript/events/types.d.ts +0 -16
  196. package/lib/typescript/events/types.d.ts.map +1 -1
  197. package/lib/typescript/interfaces.d.ts +8 -39
  198. package/lib/typescript/interfaces.d.ts.map +1 -1
  199. package/lib/typescript/specs/NativeAudioAPIModule.d.ts +1 -0
  200. package/lib/typescript/specs/NativeAudioAPIModule.d.ts.map +1 -1
  201. package/lib/typescript/system/AudioManager.d.ts +1 -0
  202. package/lib/typescript/system/AudioManager.d.ts.map +1 -1
  203. package/lib/typescript/types.d.ts +8 -74
  204. package/lib/typescript/types.d.ts.map +1 -1
  205. package/lib/typescript/utils/index.d.ts +5 -2
  206. package/lib/typescript/utils/index.d.ts.map +1 -1
  207. package/lib/typescript/web-core/AudioContext.d.ts +3 -0
  208. package/lib/typescript/web-core/AudioContext.d.ts.map +1 -1
  209. package/lib/typescript/web-core/BaseAudioContext.d.ts +2 -0
  210. package/lib/typescript/web-core/BaseAudioContext.d.ts.map +1 -1
  211. package/lib/typescript/web-core/ConvolverNode.d.ts +11 -0
  212. package/lib/typescript/web-core/ConvolverNode.d.ts.map +1 -0
  213. package/lib/typescript/web-core/ConvolverNodeOptions.d.ts +6 -0
  214. package/lib/typescript/web-core/ConvolverNodeOptions.d.ts.map +1 -0
  215. package/lib/typescript/web-core/OfflineAudioContext.d.ts +3 -0
  216. package/lib/typescript/web-core/OfflineAudioContext.d.ts.map +1 -1
  217. package/package.json +14 -5
  218. package/scripts/download-prebuilt-binaries.sh +61 -0
  219. package/scripts/rnaa_utils.rb +8 -0
  220. package/scripts/validate-worklets-version.js +28 -0
  221. package/src/api.ts +45 -18
  222. package/src/api.web.ts +1 -0
  223. package/src/core/AudioContext.ts +3 -2
  224. package/src/core/AudioRecorder.ts +20 -190
  225. package/src/core/BaseAudioContext.ts +67 -60
  226. package/src/core/ConvolverNode.ts +35 -0
  227. package/src/core/OfflineAudioContext.ts +2 -2
  228. package/src/events/types.ts +0 -18
  229. package/src/interfaces.ts +15 -47
  230. package/src/specs/NativeAudioAPIModule.ts +1 -0
  231. package/src/system/AudioManager.ts +4 -0
  232. package/src/types.ts +9 -84
  233. package/src/utils/index.ts +22 -2
  234. package/src/web-core/AudioContext.tsx +25 -0
  235. package/src/web-core/BaseAudioContext.tsx +2 -0
  236. package/src/web-core/ConvolverNode.tsx +43 -0
  237. package/src/web-core/ConvolverNodeOptions.tsx +6 -0
  238. package/src/web-core/OfflineAudioContext.tsx +25 -0
  239. package/android/src/main/cpp/audioapi/android/core/utils/AndroidFileWriterBackend.h +0 -33
  240. package/android/src/main/cpp/audioapi/android/core/utils/FileUtils.h +0 -34
  241. package/android/src/main/cpp/audioapi/android/core/utils/FileUtilts.cpp +0 -133
  242. package/android/src/main/cpp/audioapi/android/core/utils/MiniaudioImplementation.cpp +0 -3
  243. package/android/src/main/cpp/audioapi/android/core/utils/ffmpegBackend/FFmpegAudioFileOptions.cpp +0 -154
  244. package/android/src/main/cpp/audioapi/android/core/utils/ffmpegBackend/FFmpegAudioFileOptions.h +0 -41
  245. package/android/src/main/cpp/audioapi/android/core/utils/ffmpegBackend/FFmpegFileWriter.cpp +0 -431
  246. package/android/src/main/cpp/audioapi/android/core/utils/ffmpegBackend/FFmpegFileWriter.h +0 -112
  247. package/android/src/main/cpp/audioapi/android/core/utils/miniaudioBackend/MiniAudioFileOptions.cpp +0 -47
  248. package/android/src/main/cpp/audioapi/android/core/utils/miniaudioBackend/MiniAudioFileOptions.h +0 -28
  249. package/android/src/main/cpp/audioapi/android/core/utils/miniaudioBackend/MiniAudioFileWriter.cpp +0 -237
  250. package/android/src/main/cpp/audioapi/android/core/utils/miniaudioBackend/MiniAudioFileWriter.h +0 -46
  251. package/android/src/main/cpp/audioapi/android/system/NativeFileInfo.hpp +0 -31
  252. package/android/src/main/java/com/swmansion/audioapi/system/NativeFileInfo.kt +0 -18
  253. package/android/src/main/jniLibs/arm64-v8a/libavcodec.so +0 -0
  254. package/android/src/main/jniLibs/arm64-v8a/libavformat.so +0 -0
  255. package/android/src/main/jniLibs/arm64-v8a/libavutil.so +0 -0
  256. package/android/src/main/jniLibs/arm64-v8a/libswresample.so +0 -0
  257. package/android/src/main/jniLibs/armeabi-v7a/libavcodec.so +0 -0
  258. package/android/src/main/jniLibs/armeabi-v7a/libavformat.so +0 -0
  259. package/android/src/main/jniLibs/armeabi-v7a/libavutil.so +0 -0
  260. package/android/src/main/jniLibs/armeabi-v7a/libswresample.so +0 -0
  261. package/android/src/main/jniLibs/x86/libavcodec.so +0 -0
  262. package/android/src/main/jniLibs/x86/libavformat.so +0 -0
  263. package/android/src/main/jniLibs/x86/libavutil.so +0 -0
  264. package/android/src/main/jniLibs/x86/libswresample.so +0 -0
  265. package/android/src/main/jniLibs/x86_64/libavcodec.so +0 -0
  266. package/android/src/main/jniLibs/x86_64/libavformat.so +0 -0
  267. package/android/src/main/jniLibs/x86_64/libavutil.so +0 -0
  268. package/android/src/main/jniLibs/x86_64/libswresample.so +0 -0
  269. package/common/cpp/audioapi/external/arm64-v8a/libcrypto.a +0 -0
  270. package/common/cpp/audioapi/external/arm64-v8a/libogg.a +0 -0
  271. package/common/cpp/audioapi/external/arm64-v8a/libopus.a +0 -0
  272. package/common/cpp/audioapi/external/arm64-v8a/libopusfile.a +0 -0
  273. package/common/cpp/audioapi/external/arm64-v8a/libssl.a +0 -0
  274. package/common/cpp/audioapi/external/arm64-v8a/libvorbis.a +0 -0
  275. package/common/cpp/audioapi/external/arm64-v8a/libvorbisenc.a +0 -0
  276. package/common/cpp/audioapi/external/arm64-v8a/libvorbisfile.a +0 -0
  277. package/common/cpp/audioapi/external/armeabi-v7a/libcrypto.a +0 -0
  278. package/common/cpp/audioapi/external/armeabi-v7a/libogg.a +0 -0
  279. package/common/cpp/audioapi/external/armeabi-v7a/libopus.a +0 -0
  280. package/common/cpp/audioapi/external/armeabi-v7a/libopusfile.a +0 -0
  281. package/common/cpp/audioapi/external/armeabi-v7a/libssl.a +0 -0
  282. package/common/cpp/audioapi/external/armeabi-v7a/libvorbis.a +0 -0
  283. package/common/cpp/audioapi/external/armeabi-v7a/libvorbisenc.a +0 -0
  284. package/common/cpp/audioapi/external/armeabi-v7a/libvorbisfile.a +0 -0
  285. package/common/cpp/audioapi/external/iphoneos/libcrypto.a +0 -0
  286. package/common/cpp/audioapi/external/iphoneos/libogg.a +0 -0
  287. package/common/cpp/audioapi/external/iphoneos/libopus.a +0 -0
  288. package/common/cpp/audioapi/external/iphoneos/libopusfile.a +0 -0
  289. package/common/cpp/audioapi/external/iphoneos/libssl.a +0 -0
  290. package/common/cpp/audioapi/external/iphoneos/libvorbis.a +0 -0
  291. package/common/cpp/audioapi/external/iphoneos/libvorbisenc.a +0 -0
  292. package/common/cpp/audioapi/external/iphoneos/libvorbisfile.a +0 -0
  293. package/common/cpp/audioapi/external/iphonesimulator/libcrypto.a +0 -0
  294. package/common/cpp/audioapi/external/iphonesimulator/libogg.a +0 -0
  295. package/common/cpp/audioapi/external/iphonesimulator/libopus.a +0 -0
  296. package/common/cpp/audioapi/external/iphonesimulator/libopusfile.a +0 -0
  297. package/common/cpp/audioapi/external/iphonesimulator/libssl.a +0 -0
  298. package/common/cpp/audioapi/external/iphonesimulator/libvorbis.a +0 -0
  299. package/common/cpp/audioapi/external/iphonesimulator/libvorbisenc.a +0 -0
  300. package/common/cpp/audioapi/external/iphonesimulator/libvorbisfile.a +0 -0
  301. package/common/cpp/audioapi/external/libavcodec.xcframework/Info.plist +0 -44
  302. package/common/cpp/audioapi/external/libavcodec.xcframework/ios-arm64/libavcodec.framework/Info.plist +0 -1
  303. package/common/cpp/audioapi/external/libavcodec.xcframework/ios-arm64/libavcodec.framework/libavcodec +0 -0
  304. package/common/cpp/audioapi/external/libavcodec.xcframework/ios-arm64_x86_64-simulator/libavcodec.framework/Info.plist +0 -1
  305. package/common/cpp/audioapi/external/libavcodec.xcframework/ios-arm64_x86_64-simulator/libavcodec.framework/libavcodec +0 -0
  306. package/common/cpp/audioapi/external/libavformat.xcframework/Info.plist +0 -44
  307. package/common/cpp/audioapi/external/libavformat.xcframework/ios-arm64/libavformat.framework/Info.plist +0 -1
  308. package/common/cpp/audioapi/external/libavformat.xcframework/ios-arm64/libavformat.framework/libavformat +0 -0
  309. package/common/cpp/audioapi/external/libavformat.xcframework/ios-arm64_x86_64-simulator/libavformat.framework/Info.plist +0 -1
  310. package/common/cpp/audioapi/external/libavformat.xcframework/ios-arm64_x86_64-simulator/libavformat.framework/libavformat +0 -0
  311. package/common/cpp/audioapi/external/libavutil.xcframework/Info.plist +0 -44
  312. package/common/cpp/audioapi/external/libavutil.xcframework/ios-arm64/libavutil.framework/Info.plist +0 -1
  313. package/common/cpp/audioapi/external/libavutil.xcframework/ios-arm64/libavutil.framework/libavutil +0 -0
  314. package/common/cpp/audioapi/external/libavutil.xcframework/ios-arm64_x86_64-simulator/libavutil.framework/Info.plist +0 -1
  315. package/common/cpp/audioapi/external/libavutil.xcframework/ios-arm64_x86_64-simulator/libavutil.framework/libavutil +0 -0
  316. package/common/cpp/audioapi/external/libswresample.xcframework/Info.plist +0 -44
  317. package/common/cpp/audioapi/external/libswresample.xcframework/ios-arm64/libswresample.framework/Info.plist +0 -1
  318. package/common/cpp/audioapi/external/libswresample.xcframework/ios-arm64/libswresample.framework/libswresample +0 -0
  319. package/common/cpp/audioapi/external/libswresample.xcframework/ios-arm64_x86_64-simulator/libswresample.framework/Info.plist +0 -1
  320. package/common/cpp/audioapi/external/libswresample.xcframework/ios-arm64_x86_64-simulator/libswresample.framework/libswresample +0 -0
  321. package/common/cpp/audioapi/external/x86/libcrypto.a +0 -0
  322. package/common/cpp/audioapi/external/x86/libogg.a +0 -0
  323. package/common/cpp/audioapi/external/x86/libopus.a +0 -0
  324. package/common/cpp/audioapi/external/x86/libopusfile.a +0 -0
  325. package/common/cpp/audioapi/external/x86/libssl.a +0 -0
  326. package/common/cpp/audioapi/external/x86/libvorbis.a +0 -0
  327. package/common/cpp/audioapi/external/x86/libvorbisenc.a +0 -0
  328. package/common/cpp/audioapi/external/x86/libvorbisfile.a +0 -0
  329. package/common/cpp/audioapi/external/x86_64/libcrypto.a +0 -0
  330. package/common/cpp/audioapi/external/x86_64/libogg.a +0 -0
  331. package/common/cpp/audioapi/external/x86_64/libopus.a +0 -0
  332. package/common/cpp/audioapi/external/x86_64/libopusfile.a +0 -0
  333. package/common/cpp/audioapi/external/x86_64/libssl.a +0 -0
  334. package/common/cpp/audioapi/external/x86_64/libvorbis.a +0 -0
  335. package/common/cpp/audioapi/external/x86_64/libvorbisenc.a +0 -0
  336. package/common/cpp/audioapi/external/x86_64/libvorbisfile.a +0 -0
  337. package/common/cpp/audioapi/libs/ffmpeg/INSTRUCTIONS.md +0 -32
  338. package/common/cpp/audioapi/libs/ffmpeg/create_xcframework.sh +0 -111
  339. package/common/cpp/audioapi/libs/ffmpeg/ffmpeg_setup.sh +0 -391
  340. package/ios/audioapi/ios/core/IOSAudioFileOptions.h +0 -35
  341. package/ios/audioapi/ios/core/IOSAudioFileOptions.mm +0 -135
  342. package/ios/audioapi/ios/core/IOSAudioFileWriter.h +0 -38
  343. package/ios/audioapi/ios/core/IOSAudioFileWriter.mm +0 -187
  344. package/lib/commonjs/utils/bitEnums.js +0 -33
  345. package/lib/commonjs/utils/bitEnums.js.map +0 -1
  346. package/lib/module/utils/bitEnums.js +0 -27
  347. package/lib/module/utils/bitEnums.js.map +0 -1
  348. package/lib/typescript/utils/bitEnums.d.ts +0 -4
  349. package/lib/typescript/utils/bitEnums.d.ts.map +0 -1
  350. package/src/utils/bitEnums.ts +0 -51
@@ -1,391 +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="/Users/michalsek/Documents/work/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=alac
52
- --enable-decoder=mp3
53
- --enable-decoder=flac
54
- --enable-encoder=aac
55
- --enable-encoder=flac
56
- --enable-encoder=alac
57
- --enable-encoder=pcm_s16le
58
- --enable-muxer=wav
59
- --enable-muxer=mp4
60
- --enable-muxer=flac
61
- --enable-muxer=caf
62
- --enable-protocol=udp
63
- --enable-protocol=file
64
- --enable-pic
65
- --disable-x86asm
66
- --disable-inline-asm
67
- "
68
-
69
- build_arch() {
70
- local ARCH=$1
71
- local PLATFORM=$2
72
- local CC=$3
73
- local CXX=$4
74
- local CFLAGS=$5
75
- local LDFLAGS=$6
76
- local EXTRA_CONFIG=$7
77
-
78
- if [[ ${PLATFORM} == "android" ]]; then
79
- PLATFORM_NAME="android"
80
- if [[ ${ARCH} == "aarch64" ]]; then
81
- ARCH_NAME="arm64-v8a"
82
- elif [[ ${ARCH} == "armv7a" ]]; then
83
- ARCH_NAME="armeabi-v7a"
84
- else
85
- ARCH_NAME=${ARCH}
86
- fi
87
- elif [[ ${PLATFORM} == "darwin" ]]; then
88
- PLATFORM_NAME="ios"
89
- ARCH_NAME="iphoneos"
90
- elif [[ ${PLATFORM} == "darwinsim" ]]; then
91
- PLATFORM_NAME="ios"
92
- if [[ ${ARCH} == "x86_64" ]]; then
93
- ARCH_NAME="iphonesimulator_x86_64"
94
- else
95
- ARCH_NAME="iphonesimulator_arm64"
96
- fi
97
- fi
98
-
99
- echo "Building FFmpeg for ${PLATFORM_NAME} ${ARCH_NAME}..."
100
-
101
- SOURCE_PATH="${BUILD_DIR}/ffmpeg-${PLATFORM_NAME}-${ARCH_NAME}"
102
- OUTPUT_PATH="${OUTPUT_DIR}/${PLATFORM_NAME}/${ARCH_NAME}"
103
-
104
- mkdir -p "${OUTPUT_PATH}"
105
-
106
- echo "Copying source for ${PLATFORM_NAME} ${ARCH_NAME}..."
107
- rm -rf "${SOURCE_PATH}"
108
- cp -r "${SOURCE_DIR}" "${SOURCE_PATH}"
109
-
110
- cd "${SOURCE_PATH}"
111
-
112
- make distclean 2>/dev/null || true
113
-
114
- if [[ ${PLATFORM} == "darwinsim" ]]; then
115
- PLATFORM="darwin"
116
- fi
117
-
118
- 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}
119
-
120
- # Configure
121
- ./configure \
122
- --enable-cross-compile \
123
- --arch=${ARCH} \
124
- --target-os=${PLATFORM} \
125
- --cc="${CC}" \
126
- --cxx="${CXX}" \
127
- --extra-cflags="${CFLAGS}" \
128
- --extra-ldflags="${LDFLAGS}" \
129
- --prefix="${OUTPUT_PATH}" \
130
- ${COMMON_CONFIG} \
131
- ${EXTRA_CONFIG}
132
-
133
- # Build
134
- make -j10
135
- make install
136
-
137
- echo "Completed ${PLATFORM} ${ARCH}"
138
- cd - > /dev/null
139
- }
140
-
141
- fix_dynamic_ios_linkage() {
142
- local LIB_PATH=$1
143
-
144
- # Get all dependencies that are not system libraries (including the library itself)
145
- otool -L "${LIB_PATH}" | grep -v "/usr/lib/" | grep -v "/System/" | awk 'NR>1 {print $1}' | while read -r dep; do
146
- if [[ -n "$dep" ]]; then
147
- # Extract library name without any version numbers and extension for framework path
148
- local lib_name=$(basename "$dep" | sed 's/\.dylib$//' | sed 's/\.[0-9][0-9.]*$//')
149
- local framework_path="@rpath/${lib_name}.framework/${lib_name}"
150
- echo "Changing dependency: $dep -> $framework_path"
151
- install_name_tool -change "$dep" "$framework_path" "${LIB_PATH}"
152
- fi
153
- done
154
-
155
- # Also update the library's own install name to use @rpath with framework structure
156
- local lib_name=$(basename "${LIB_PATH}" | sed 's/\.dylib$//' | sed 's/\.[0-9][0-9.]*$//')
157
- local framework_path="@rpath/${lib_name}.framework/${lib_name}"
158
- echo "Updating install name for $(basename "${LIB_PATH}") -> $framework_path"
159
- install_name_tool -id "$framework_path" "${LIB_PATH}"
160
- }
161
-
162
- # Check if source exists
163
- if [ ! -d "${SOURCE_DIR}" ]; then
164
- echo "FFmpeg source not found."
165
- exit 1
166
- fi
167
-
168
- # Clean the source directory of any previous builds
169
- cd "${SOURCE_DIR}"
170
- make distclean 2>/dev/null || true
171
- cd - > /dev/null
172
-
173
- # Use NDK_ROOT if ANDROID_NDK_ROOT is not set
174
- NDK_PATH="${ANDROID_NDK_ROOT:-$NDK_ROOT}"
175
-
176
- if [ ! -d "$NDK_PATH" ]; then
177
- echo "Android NDK not found. Please set ANDROID_NDK_ROOT or NDK_ROOT environment variable"
178
- exit 1
179
- fi
180
-
181
- API_LEVEL=21
182
- TOOLCHAIN_PATH="${NDK_PATH}/toolchains/llvm/prebuilt"
183
- export ANDROID_NDK_ROOT=${NDK_PATH}
184
-
185
- # Detect host OS for toolchain
186
- if [[ "$OSTYPE" == "darwin"* ]]; then
187
- HOST_TAG="darwin-x86_64"
188
- elif [[ "$OSTYPE" == "linux-gnu"* ]]; then
189
- HOST_TAG="linux-x86_64"
190
- else
191
- echo "Unsupported host OS for Android NDK"
192
- exit 1
193
- fi
194
-
195
- TOOLCHAIN="${TOOLCHAIN_PATH}/${HOST_TAG}"
196
- PATH=$TOOLCHAIN/bin:$PATH
197
-
198
- OPENSSL_PREBUILT_FOLDER="$(pwd)/openssl-prebuilt"
199
- if [ ! -d "$OPENSSL_PREBUILT_FOLDER" ]; then
200
- echo "Cloning and building OpenSSL..."
201
- if [ ! -d "openssl" ]; then
202
- git clone https://github.com/openssl/openssl.git
203
- fi
204
- cd openssl
205
- mkdir -p "${OPENSSL_PREBUILT_FOLDER}/include"
206
-
207
- # ios-arm
208
- ./Configure ios64-xcrun no-shared no-asm no-tests
209
- make build_libs -j10
210
- mkdir -p ${OPENSSL_PREBUILT_FOLDER}/iphoneos && cp libcrypto.a libssl.a "${OPENSSL_PREBUILT_FOLDER}/iphoneos"
211
- cp -r include/crypto include/openssl "${OPENSSL_PREBUILT_FOLDER}/include"
212
- make clean
213
-
214
- # arm-simulator
215
- ./Configure iossimulator-arm64-xcrun no-shared no-asm no-tests
216
- make build_libs -j10
217
- mkdir -p ${OPENSSL_PREBUILT_FOLDER}/iphonesimulator && cp libcrypto.a libssl.a "${OPENSSL_PREBUILT_FOLDER}/iphonesimulator"
218
- make clean
219
-
220
- # x86_64-simulator
221
- ./Configure iossimulator-x86_64-xcrun no-shared no-asm no-tests
222
- make build_libs -j10
223
- mkdir -p ${OPENSSL_PREBUILT_FOLDER}/iphonesimulator-x86_64 && cp libcrypto.a libssl.a "${OPENSSL_PREBUILT_FOLDER}/iphonesimulator-x86_64"
224
- make clean
225
-
226
- # arm64-v8a
227
- ./Configure android-arm64 no-shared no-asm no-tests -D__ANDROID_API__=${API_LEVEL}
228
- make build_libs -j10
229
- mkdir -p ${OPENSSL_PREBUILT_FOLDER}/arm64-v8a && cp libcrypto.a libssl.a "${OPENSSL_PREBUILT_FOLDER}/arm64-v8a"
230
- make clean
231
-
232
- # armeabi-v7a
233
- ./Configure android-arm no-shared no-asm no-tests -D__ANDROID_API__=${API_LEVEL}
234
- make build_libs -j10
235
- mkdir -p ${OPENSSL_PREBUILT_FOLDER}/armeabi-v7a && cp libcrypto.a libssl.a "${OPENSSL_PREBUILT_FOLDER}/armeabi-v7a"
236
- make clean
237
-
238
- ./Configure android-x86 no-shared no-asm no-tests -D__ANDROID_API__=${API_LEVEL}
239
- make build_libs -j10
240
- mkdir -p ${OPENSSL_PREBUILT_FOLDER}/x86 && cp libcrypto.a libssl.a "${OPENSSL_PREBUILT_FOLDER}/x86"
241
- make clean
242
-
243
- ./Configure android-x86_64 no-shared no-asm no-tests -D__ANDROID_API__=${API_LEVEL}
244
- make build_libs -j10
245
- mkdir -p ${OPENSSL_PREBUILT_FOLDER}/x86_64 && cp libcrypto.a libssl.a "${OPENSSL_PREBUILT_FOLDER}/x86_64"
246
- make clean
247
-
248
- cd .. && rm -rf openssl
249
- fi
250
-
251
- # iOS Architectures
252
- if [[ "$OSTYPE" == "darwin"* ]]; then
253
- echo "Building for iOS architectures..."
254
-
255
- # iOS SDK paths
256
- IOS_SDK_PATH=$(xcrun --sdk iphoneos --show-sdk-path)
257
- IOS_SIM_SDK_PATH=$(xcrun --sdk iphonesimulator --show-sdk-path)
258
-
259
- # iOS Device architecture
260
- build_arch "arm64" "darwin" \
261
- "$(xcrun --sdk iphoneos --find clang)" \
262
- "$(xcrun --sdk iphoneos --find clang++)" \
263
- "-I${OPENSSL_PREBUILT_FOLDER}/include -arch arm64 -mios-version-min=11.0 -isysroot ${IOS_SDK_PATH}" \
264
- "-L${OPENSSL_PREBUILT_FOLDER}/iphoneos -arch arm64 -mios-version-min=11.0 -isysroot ${IOS_SDK_PATH}" \
265
- "--disable-iconv --disable-zlib --enable-openssl --disable-securetransport"
266
-
267
- fix_dynamic_ios_linkage "${OUTPUT_DIR}/ios/iphoneos/lib/libavcodec.${AVCODEC_VERSION}.dylib"
268
- fix_dynamic_ios_linkage "${OUTPUT_DIR}/ios/iphoneos/lib/libavformat.${AVFORMAT_VERSION}.dylib"
269
- fix_dynamic_ios_linkage "${OUTPUT_DIR}/ios/iphoneos/lib/libavutil.${AVUTIL_VERSION}.dylib"
270
- fix_dynamic_ios_linkage "${OUTPUT_DIR}/ios/iphoneos/lib/libswresample.${SWRRESAMPLE_VERSION}.dylib"
271
-
272
- rm -rf "${OUTPUT_DIR}/ios/iphoneos/share"
273
-
274
- # iOS Simulator arm (Silicon Macs)
275
- build_arch "arm64" "darwinsim" \
276
- "$(xcrun --sdk iphonesimulator --find clang)" \
277
- "$(xcrun --sdk iphonesimulator --find clang++)" \
278
- "-I${OPENSSL_PREBUILT_FOLDER}/include -arch arm64 -mios-simulator-version-min=11.0 -isysroot ${IOS_SIM_SDK_PATH}" \
279
- "-L${OPENSSL_PREBUILT_FOLDER}/iphonesimulator -arch arm64 -mios-simulator-version-min=11.0 -isysroot ${IOS_SIM_SDK_PATH}" \
280
- "--disable-iconv --disable-zlib --enable-openssl --disable-securetransport"
281
-
282
- fix_dynamic_ios_linkage "${OUTPUT_DIR}/ios/iphonesimulator_arm64/lib/libavcodec.${AVCODEC_VERSION}.dylib"
283
- fix_dynamic_ios_linkage "${OUTPUT_DIR}/ios/iphonesimulator_arm64/lib/libavformat.${AVFORMAT_VERSION}.dylib"
284
- fix_dynamic_ios_linkage "${OUTPUT_DIR}/ios/iphonesimulator_arm64/lib/libavutil.${AVUTIL_VERSION}.dylib"
285
- fix_dynamic_ios_linkage "${OUTPUT_DIR}/ios/iphonesimulator_arm64/lib/libswresample.${SWRRESAMPLE_VERSION}.dylib"
286
-
287
- rm -rf "${OUTPUT_DIR}/ios/iphonesimulator_arm64/share"
288
-
289
- # iOS Simulator x86_64 (Intel Macs)
290
- build_arch "x86_64" "darwinsim" \
291
- "$(xcrun --sdk iphonesimulator --find clang)" \
292
- "$(xcrun --sdk iphonesimulator --find clang++)" \
293
- "-I${OPENSSL_PREBUILT_FOLDER}/include -arch x86_64 -mios-simulator-version-min=11.0 -isysroot ${IOS_SIM_SDK_PATH}" \
294
- "-L${OPENSSL_PREBUILT_FOLDER}/iphonesimulator-x86_64 -arch x86_64 -mios-simulator-version-min=11.0 -isysroot ${IOS_SIM_SDK_PATH}" \
295
- "--disable-iconv --disable-zlib --enable-openssl --disable-securetransport"
296
-
297
- fix_dynamic_ios_linkage "${OUTPUT_DIR}/ios/iphonesimulator_x86_64/lib/libavcodec.${AVCODEC_VERSION}.dylib"
298
- fix_dynamic_ios_linkage "${OUTPUT_DIR}/ios/iphonesimulator_x86_64/lib/libavformat.${AVFORMAT_VERSION}.dylib"
299
- fix_dynamic_ios_linkage "${OUTPUT_DIR}/ios/iphonesimulator_x86_64/lib/libavutil.${AVUTIL_VERSION}.dylib"
300
- fix_dynamic_ios_linkage "${OUTPUT_DIR}/ios/iphonesimulator_x86_64/lib/libswresample.${SWRRESAMPLE_VERSION}.dylib"
301
-
302
- rm -rf "${OUTPUT_DIR}/ios/iphonesimulator_x86_64/share"
303
-
304
- mkdir -p "${OUTPUT_DIR}/ios/iphonesimulator/lib"
305
- # Create universal simulator libraries
306
- lipo -create \
307
- "${OUTPUT_DIR}/ios/iphonesimulator_arm64/lib/libavcodec.${AVCODEC_VERSION}.dylib" \
308
- "${OUTPUT_DIR}/ios/iphonesimulator_x86_64/lib/libavcodec.${AVCODEC_VERSION}.dylib" \
309
- -output "${OUTPUT_DIR}/ios/iphonesimulator/lib/libavcodec.${AVCODEC_VERSION}.dylib"
310
- lipo -create \
311
- "${OUTPUT_DIR}/ios/iphonesimulator_arm64/lib/libavformat.${AVFORMAT_VERSION}.dylib" \
312
- "${OUTPUT_DIR}/ios/iphonesimulator_x86_64/lib/libavformat.${AVFORMAT_VERSION}.dylib" \
313
- -output "${OUTPUT_DIR}/ios/iphonesimulator/lib/libavformat.${AVFORMAT_VERSION}.dylib"
314
-
315
- lipo -create \
316
- "${OUTPUT_DIR}/ios/iphonesimulator_arm64/lib/libavutil.${AVUTIL_VERSION}.dylib" \
317
- "${OUTPUT_DIR}/ios/iphonesimulator_x86_64/lib/libavutil.${AVUTIL_VERSION}.dylib" \
318
- -output "${OUTPUT_DIR}/ios/iphonesimulator/lib/libavutil.${AVUTIL_VERSION}.dylib"
319
-
320
- lipo -create \
321
- "${OUTPUT_DIR}/ios/iphonesimulator_arm64/lib/libswresample.${SWRRESAMPLE_VERSION}.dylib" \
322
- "${OUTPUT_DIR}/ios/iphonesimulator_x86_64/lib/libswresample.${SWRRESAMPLE_VERSION}.dylib" \
323
- -output "${OUTPUT_DIR}/ios/iphonesimulator/lib/libswresample.${SWRRESAMPLE_VERSION}.dylib"
324
-
325
- mv "${OUTPUT_DIR}/ios/iphonesimulator/lib/libswresample.${SWRRESAMPLE_VERSION}.dylib" "${OUTPUT_DIR}/ios/iphonesimulator/lib/libswresample.dylib"
326
- mv "${OUTPUT_DIR}/ios/iphonesimulator/lib/libavutil.${AVUTIL_VERSION}.dylib" "${OUTPUT_DIR}/ios/iphonesimulator/lib/libavutil.dylib"
327
- mv "${OUTPUT_DIR}/ios/iphonesimulator/lib/libavformat.${AVFORMAT_VERSION}.dylib" "${OUTPUT_DIR}/ios/iphonesimulator/lib/libavformat.dylib"
328
- mv "${OUTPUT_DIR}/ios/iphonesimulator/lib/libavcodec.${AVCODEC_VERSION}.dylib" "${OUTPUT_DIR}/ios/iphonesimulator/lib/libavcodec.dylib"
329
-
330
- # create frameworks from binaries
331
- bash ./create_xcframework.sh
332
-
333
- echo "iOS builds completed!"
334
- else
335
- echo "Skipping iOS builds (requires macOS)"
336
- fi
337
-
338
- # Android Architectures
339
- if [ -n "$ANDROID_NDK_ROOT" ] || [ -n "$NDK_ROOT" ]; then
340
- echo "Building for Android architectures..."
341
-
342
- # ARM64-v8a
343
- build_arch "aarch64" "android" \
344
- "${TOOLCHAIN}/bin/aarch64-linux-android${API_LEVEL}-clang" \
345
- "${TOOLCHAIN}/bin/aarch64-linux-android${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}/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" \
348
- "--enable-openssl --extra-libs=-lz"
349
-
350
- rm -rf ${OUTPUT_DIR}/android/arm64-v8a/share
351
-
352
- # ARMv7a
353
- build_arch "armv7a" "android" \
354
- "${TOOLCHAIN}/bin/armv7a-linux-androideabi${API_LEVEL}-clang" \
355
- "${TOOLCHAIN}/bin/armv7a-linux-androideabi${API_LEVEL}-clang++" \
356
- "-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" \
357
- "-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" \
358
- "--enable-openssl --extra-libs=-lz"
359
-
360
- rm -rf ${OUTPUT_DIR}/android/armeabi-v7a/share
361
-
362
- # x86
363
- build_arch "x86" "android" \
364
- "${TOOLCHAIN}/bin/i686-linux-android${API_LEVEL}-clang" \
365
- "${TOOLCHAIN}/bin/i686-linux-android${API_LEVEL}-clang++" \
366
- "-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" \
367
- "-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" \
368
- "--enable-openssl --extra-libs=-lz"
369
-
370
- rm -rf ${OUTPUT_DIR}/android/x86/share
371
-
372
-
373
- # x86_64
374
- build_arch "x86_64" "android" \
375
- "${TOOLCHAIN}/bin/x86_64-linux-android${API_LEVEL}-clang" \
376
- "${TOOLCHAIN}/bin/x86_64-linux-android${API_LEVEL}-clang++" \
377
- "-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" \
378
- "-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" \
379
- "--enable-openssl --extra-libs=-lz"
380
-
381
- rm -rf ${OUTPUT_DIR}/android/x86_64/share
382
-
383
-
384
- echo "Android builds completed!"
385
- else
386
- echo "Skipping Android builds (ANDROID_NDK_ROOT or NDK_ROOT not set)"
387
- fi
388
-
389
- rm -rf "${BUILD_DIR}"
390
-
391
- echo "All FFmpeg builds completed!"
@@ -1,35 +0,0 @@
1
- #pragma once
2
-
3
- #ifndef __OBJC__ // when compiled as C++
4
- typedef struct objc_object AVAudioFile;
5
- typedef struct objc_object NSURL;
6
- typedef struct objc_object AudioBufferList;
7
- #endif // __OBJC__
8
-
9
- namespace audioapi {
10
-
11
- class IOSAudioFileOptions {
12
- public:
13
- IOSAudioFileOptions(float sampleRate, size_t channelCount, size_t bitRate, size_t flags);
14
- ~IOSAudioFileOptions() = default;
15
-
16
- AudioFormatID getFormat() const;
17
- NSInteger getQuality() const;
18
- NSInteger getFlacCompressionLevel() const;
19
- NSSearchPathDirectory getDirectory() const;
20
- NSString *getFileExtension() const;
21
- NSInteger getBitDepth() const;
22
- NSDictionary *getFileSettings();
23
-
24
- private:
25
- uint8_t format_;
26
- uint8_t quality_;
27
- uint8_t flacCompressionLevel_;
28
- uint8_t directory_;
29
- uint8_t bitDepth_;
30
- float sampleRate_;
31
- size_t channelCount_;
32
- size_t bitRate_;
33
- };
34
-
35
- } // namespace audioapi
@@ -1,135 +0,0 @@
1
- #import <AVFoundation/AVFoundation.h>
2
- #import <Foundation/Foundation.h>
3
-
4
- #include <audioapi/ios/core/IOSAudioFileOptions.h>
5
-
6
- namespace audioapi {
7
-
8
- IOSAudioFileOptions::IOSAudioFileOptions(float sampleRate, size_t channelCount, size_t bitRate, size_t flags)
9
- {
10
- sampleRate_ = sampleRate;
11
- channelCount_ = channelCount;
12
- bitRate_ = bitRate;
13
-
14
- format_ = static_cast<uint8_t>(((flags >> 0) & 0xF));
15
- quality_ = static_cast<uint8_t>(((flags >> 4) & 0xF));
16
- flacCompressionLevel_ = static_cast<uint8_t>(((flags >> 8) & 0xF));
17
- directory_ = static_cast<uint8_t>(((flags >> 12) & 0xF));
18
- bitDepth_ = static_cast<uint8_t>(((flags >> 16) & 0xF));
19
- }
20
-
21
- AudioFormatID IOSAudioFileOptions::getFormat() const
22
- {
23
- switch (format_) {
24
- case 1:
25
- return kAudioFormatLinearPCM; // WAV <-> Linear PCM container
26
- case 2:
27
- return kAudioFormatLinearPCM; // CAF <-> Linear PCM container
28
- case 3:
29
- return kAudioFormatMPEG4AAC; // M4A <-> AAC
30
- case 4:
31
- return kAudioFormatFLAC; // FLAC <-> FLAC
32
- default:
33
- return kAudioFormatLinearPCM; // Default to Linear PCM
34
- }
35
- }
36
-
37
- NSInteger IOSAudioFileOptions::getQuality() const
38
- {
39
- switch (quality_) {
40
- case 1:
41
- return AVAudioQualityMin;
42
- case 2:
43
- return AVAudioQualityLow;
44
- case 3:
45
- return AVAudioQualityMedium;
46
- case 4:
47
- return AVAudioQualityHigh;
48
- case 5:
49
- return AVAudioQualityMax;
50
- default:
51
- return AVAudioQualityMedium; // Default to Medium
52
- }
53
- }
54
-
55
- NSInteger IOSAudioFileOptions::getFlacCompressionLevel() const
56
- {
57
- // Shift the quality from 1-9 to 0-8 for real values
58
- // Default to 5 if out of range
59
- return (flacCompressionLevel_ >= 1 && flacCompressionLevel_ <= 9) ? flacCompressionLevel_ - 1 : 5;
60
- }
61
-
62
- NSSearchPathDirectory IOSAudioFileOptions::getDirectory() const
63
- {
64
- switch (directory_) {
65
- case 1:
66
- return NSDocumentDirectory;
67
- case 2:
68
- return NSCachesDirectory;
69
- default:
70
- return NSCachesDirectory; // Default to Caches
71
- }
72
- }
73
-
74
- NSString *IOSAudioFileOptions::getFileExtension() const
75
- {
76
- switch (format_) {
77
- case 1:
78
- return @"wav"; // WAV <-> Linear PCM container
79
- case 2:
80
- return @"caf"; // CAF <-> Linear PCM container
81
- case 3:
82
- return @"m4a"; // M4A <-> AAC
83
- case 4:
84
- return @"flac"; // FLAC <-> FLAC
85
- default:
86
- return @"wav"; // Default to WAV
87
- }
88
- }
89
-
90
- NSInteger IOSAudioFileOptions::getBitDepth() const
91
- {
92
- switch (bitDepth_) {
93
- case 1:
94
- return 16;
95
- case 2:
96
- return 24;
97
- case 3:
98
- return 32;
99
- default:
100
- return 24; // Default to 24-bit
101
- }
102
- }
103
-
104
- NSDictionary *IOSAudioFileOptions::getFileSettings()
105
- {
106
- AudioFormatID format = getFormat();
107
- NSMutableDictionary *settings = [NSMutableDictionary dictionary];
108
-
109
- settings[AVFormatIDKey] = @(format);
110
- settings[AVSampleRateKey] = @(sampleRate_);
111
- settings[AVNumberOfChannelsKey] = @(channelCount_);
112
-
113
- settings[AVEncoderAudioQualityKey] = @(getQuality());
114
-
115
- if (format == kAudioFormatMPEG4AAC) {
116
- settings[AVEncoderBitRateKey] = @(bitRate_);
117
- }
118
-
119
- if (format == kAudioFormatLinearPCM) {
120
- NSInteger bitDepth = getBitDepth();
121
-
122
- settings[AVLinearPCMBitDepthKey] = @(bitDepth);
123
- settings[AVLinearPCMIsFloatKey] = @(bitDepth == 32);
124
- settings[AVLinearPCMIsBigEndianKey] = @(NO);
125
- settings[AVLinearPCMIsNonInterleaved] = @(NO);
126
- }
127
-
128
- if (format == kAudioFormatFLAC) {
129
- settings[@"FLACCompressionLevel"] = @(getFlacCompressionLevel());
130
- }
131
-
132
- return settings;
133
- }
134
-
135
- } // namespace audioapi
@@ -1,38 +0,0 @@
1
- #pragma once
2
-
3
- #include <memory>
4
- #include <string>
5
-
6
- #ifndef __OBJC__ // when compiled as C++
7
- typedef struct objc_object AVAudioFile;
8
- typedef struct objc_object NSURL;
9
- typedef struct objc_object AudioBufferList;
10
- #endif // __OBJC__
11
-
12
- namespace audioapi {
13
-
14
- class IOSAudioFileOptions;
15
-
16
- class IOSAudioFileWriter {
17
- public:
18
- IOSAudioFileWriter(float sampleRate, size_t channelCount, size_t bitRate, size_t iosFlags);
19
- ~IOSAudioFileWriter();
20
-
21
- void openFile(AVAudioFormat *bufferFormat);
22
- std::string closeFile();
23
-
24
- bool writeAudioData(const AudioBufferList *audioBufferList, int numFrames);
25
-
26
- private:
27
- NSString *getISODateStringForDirectory();
28
- NSString *getTimestampForFilename();
29
- NSURL *getFileURL();
30
-
31
- std::shared_ptr<IOSAudioFileOptions> fileOptions_;
32
- AVAudioFile *audioFile_;
33
- AVAudioFormat *bufferFormat_;
34
- AVAudioConverter *converter_;
35
- NSURL *fileURL_;
36
- };
37
-
38
- } // namespace audioapi