react-native-audio-api 0.11.0-alpha.0 → 0.11.0-alpha.10

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 (623) hide show
  1. package/README.md +13 -11
  2. package/RNAudioAPI.podspec +25 -18
  3. package/android/build.gradle +41 -5
  4. package/android/src/main/cpp/audioapi/CMakeLists.txt +6 -3
  5. package/android/src/main/cpp/audioapi/android/AudioAPIModule.cpp +10 -16
  6. package/android/src/main/cpp/audioapi/android/OnLoad.cpp +1 -2
  7. package/android/src/main/cpp/audioapi/android/core/AndroidAudioRecorder.cpp +353 -74
  8. package/android/src/main/cpp/audioapi/android/core/AndroidAudioRecorder.h +32 -19
  9. package/android/src/main/cpp/audioapi/android/core/AudioPlayer.cpp +13 -20
  10. package/android/src/main/cpp/audioapi/android/core/utils/AndroidFileWriterBackend.h +15 -15
  11. package/android/src/main/cpp/audioapi/android/core/utils/AndroidRecorderCallback.cpp +170 -0
  12. package/android/src/main/cpp/audioapi/android/core/utils/AndroidRecorderCallback.h +46 -0
  13. package/android/src/main/cpp/audioapi/android/core/utils/AudioDecoder.cpp +46 -58
  14. package/android/src/main/cpp/audioapi/android/core/utils/FileOptions.cpp +83 -0
  15. package/android/src/main/cpp/audioapi/android/core/utils/FileOptions.h +22 -0
  16. package/android/src/main/cpp/audioapi/android/core/utils/MiniaudioImplementation.cpp +5 -0
  17. package/android/src/main/cpp/audioapi/android/core/utils/ffmpegBackend/FFmpegFileWriter.cpp +366 -304
  18. package/android/src/main/cpp/audioapi/android/core/utils/ffmpegBackend/FFmpegFileWriter.h +49 -91
  19. package/android/src/main/cpp/audioapi/android/core/utils/ffmpegBackend/ptrs.hpp +56 -0
  20. package/android/src/main/cpp/audioapi/android/core/utils/ffmpegBackend/utils.cpp +114 -0
  21. package/android/src/main/cpp/audioapi/android/core/utils/ffmpegBackend/utils.h +34 -0
  22. package/android/src/main/cpp/audioapi/android/core/utils/miniaudioBackend/MiniAudioFileWriter.cpp +154 -95
  23. package/android/src/main/cpp/audioapi/android/core/utils/miniaudioBackend/MiniAudioFileWriter.h +10 -16
  24. package/android/src/main/cpp/audioapi/android/system/NativeFileInfo.hpp +2 -1
  25. package/android/src/main/java/com/swmansion/audioapi/AudioAPIModule.kt +189 -14
  26. package/android/src/main/java/com/swmansion/audioapi/core/NativeAudioPlayer.kt +10 -8
  27. package/android/src/main/java/com/swmansion/audioapi/core/NativeAudioRecorder.kt +10 -8
  28. package/android/src/main/java/com/swmansion/audioapi/system/AudioFocusListener.kt +5 -2
  29. package/android/src/main/java/com/swmansion/audioapi/system/CentralizedForegroundService.kt +128 -0
  30. package/android/src/main/java/com/swmansion/audioapi/system/ForegroundServiceManager.kt +116 -0
  31. package/android/src/main/java/com/swmansion/audioapi/system/MediaSessionManager.kt +115 -107
  32. package/android/src/main/java/com/swmansion/audioapi/system/PermissionRequestListener.kt +2 -1
  33. package/android/src/main/java/com/swmansion/audioapi/system/notification/BaseNotification.kt +47 -0
  34. package/android/src/main/java/com/swmansion/audioapi/system/notification/NotificationRegistry.kt +191 -0
  35. package/android/src/main/java/com/swmansion/audioapi/system/notification/PlaybackNotification.kt +669 -0
  36. package/android/src/main/java/com/swmansion/audioapi/system/notification/PlaybackNotificationReceiver.kt +33 -0
  37. package/android/src/main/java/com/swmansion/audioapi/system/notification/RecordingNotification.kt +303 -0
  38. package/android/src/main/java/com/swmansion/audioapi/system/notification/RecordingNotificationReceiver.kt +45 -0
  39. package/android/src/main/java/com/swmansion/audioapi/system/notification/SimpleNotification.kt +119 -0
  40. package/android/src/main/jniLibs/arm64-v8a/libavcodec.so +0 -0
  41. package/android/src/main/jniLibs/arm64-v8a/libavformat.so +0 -0
  42. package/android/src/main/jniLibs/arm64-v8a/libavutil.so +0 -0
  43. package/android/src/main/jniLibs/arm64-v8a/libswresample.so +0 -0
  44. package/android/src/main/jniLibs/armeabi-v7a/libavcodec.so +0 -0
  45. package/android/src/main/jniLibs/armeabi-v7a/libavformat.so +0 -0
  46. package/android/src/main/jniLibs/armeabi-v7a/libavutil.so +0 -0
  47. package/android/src/main/jniLibs/armeabi-v7a/libswresample.so +0 -0
  48. package/android/src/main/jniLibs/x86/libavcodec.so +0 -0
  49. package/android/src/main/jniLibs/x86/libavformat.so +0 -0
  50. package/android/src/main/jniLibs/x86/libavutil.so +0 -0
  51. package/android/src/main/jniLibs/x86/libswresample.so +0 -0
  52. package/android/src/main/jniLibs/x86_64/libavcodec.so +0 -0
  53. package/android/src/main/jniLibs/x86_64/libavformat.so +0 -0
  54. package/android/src/main/jniLibs/x86_64/libavutil.so +0 -0
  55. package/android/src/main/jniLibs/x86_64/libswresample.so +0 -0
  56. package/android/src/oldarch/NativeAudioAPIModuleSpec.java +100 -76
  57. package/common/cpp/audioapi/AudioAPIModuleInstaller.h +45 -70
  58. package/common/cpp/audioapi/HostObjects/AudioContextHostObject.cpp +20 -22
  59. package/common/cpp/audioapi/HostObjects/AudioNodeHostObject.cpp +3 -4
  60. package/common/cpp/audioapi/HostObjects/AudioParamHostObject.cpp +6 -8
  61. package/common/cpp/audioapi/HostObjects/AudioParamHostObject.h +2 -2
  62. package/common/cpp/audioapi/HostObjects/BaseAudioContextHostObject.cpp +102 -63
  63. package/common/cpp/audioapi/HostObjects/BaseAudioContextHostObject.h +4 -1
  64. package/common/cpp/audioapi/HostObjects/OfflineAudioContextHostObject.cpp +25 -31
  65. package/common/cpp/audioapi/HostObjects/OfflineAudioContextHostObject.h +3 -3
  66. package/common/cpp/audioapi/HostObjects/WorkletNodeHostObject.h +1 -2
  67. package/common/cpp/audioapi/HostObjects/WorkletProcessingNodeHostObject.h +1 -2
  68. package/common/cpp/audioapi/HostObjects/analysis/AnalyserNodeHostObject.cpp +10 -18
  69. package/common/cpp/audioapi/HostObjects/destinations/AudioDestinationNodeHostObject.h +2 -3
  70. package/common/cpp/audioapi/HostObjects/effects/BiquadFilterNodeHostObject.cpp +18 -30
  71. package/common/cpp/audioapi/HostObjects/effects/BiquadFilterNodeHostObject.h +1 -2
  72. package/common/cpp/audioapi/HostObjects/effects/ConvolverNodeHostObject.cpp +50 -0
  73. package/common/cpp/audioapi/HostObjects/effects/ConvolverNodeHostObject.h +20 -0
  74. package/common/cpp/audioapi/HostObjects/effects/DelayNodeHostObject.cpp +27 -0
  75. package/common/cpp/audioapi/HostObjects/effects/DelayNodeHostObject.h +21 -0
  76. package/common/cpp/audioapi/HostObjects/effects/GainNodeHostObject.cpp +2 -2
  77. package/common/cpp/audioapi/HostObjects/effects/IIRFilterNodeHostObject.cpp +33 -0
  78. package/common/cpp/audioapi/HostObjects/effects/IIRFilterNodeHostObject.h +20 -0
  79. package/common/cpp/audioapi/HostObjects/effects/PeriodicWaveHostObject.h +1 -2
  80. package/common/cpp/audioapi/HostObjects/effects/StereoPannerNodeHostObject.cpp +2 -2
  81. package/common/cpp/audioapi/HostObjects/effects/StereoPannerNodeHostObject.h +1 -2
  82. package/common/cpp/audioapi/HostObjects/events/AudioEventHandlerRegistryHostObject.cpp +6 -12
  83. package/common/cpp/audioapi/HostObjects/events/AudioEventHandlerRegistryHostObject.h +7 -7
  84. package/common/cpp/audioapi/HostObjects/inputs/AudioRecorderHostObject.cpp +109 -44
  85. package/common/cpp/audioapi/HostObjects/inputs/AudioRecorderHostObject.h +8 -2
  86. package/common/cpp/audioapi/HostObjects/sources/AudioBufferBaseSourceNodeHostObject.cpp +27 -22
  87. package/common/cpp/audioapi/HostObjects/sources/AudioBufferBaseSourceNodeHostObject.h +12 -10
  88. package/common/cpp/audioapi/HostObjects/sources/AudioBufferHostObject.cpp +17 -22
  89. package/common/cpp/audioapi/HostObjects/sources/AudioBufferHostObject.h +5 -7
  90. package/common/cpp/audioapi/HostObjects/sources/AudioBufferQueueSourceNodeHostObject.cpp +25 -11
  91. package/common/cpp/audioapi/HostObjects/sources/AudioBufferQueueSourceNodeHostObject.h +8 -8
  92. package/common/cpp/audioapi/HostObjects/sources/AudioBufferSourceNodeHostObject.cpp +19 -30
  93. package/common/cpp/audioapi/HostObjects/sources/AudioBufferSourceNodeHostObject.h +2 -4
  94. package/common/cpp/audioapi/HostObjects/sources/AudioScheduledSourceNodeHostObject.cpp +7 -11
  95. package/common/cpp/audioapi/HostObjects/sources/ConstantSourceNodeHostObject.cpp +2 -2
  96. package/common/cpp/audioapi/HostObjects/sources/ConstantSourceNodeHostObject.h +1 -2
  97. package/common/cpp/audioapi/HostObjects/sources/OscillatorNodeHostObject.cpp +6 -8
  98. package/common/cpp/audioapi/HostObjects/sources/OscillatorNodeHostObject.h +1 -2
  99. package/common/cpp/audioapi/HostObjects/sources/RecorderAdapterNodeHostObject.h +4 -5
  100. package/common/cpp/audioapi/HostObjects/sources/StreamerNodeHostObject.cpp +6 -2
  101. package/common/cpp/audioapi/HostObjects/sources/StreamerNodeHostObject.h +5 -6
  102. package/common/cpp/audioapi/HostObjects/sources/WorkletSourceNodeHostObject.h +1 -2
  103. package/common/cpp/audioapi/HostObjects/utils/AudioDecoderHostObject.cpp +39 -60
  104. package/common/cpp/audioapi/HostObjects/utils/AudioStretcherHostObject.cpp +15 -30
  105. package/common/cpp/audioapi/core/AudioContext.cpp +23 -28
  106. package/common/cpp/audioapi/core/AudioContext.h +6 -3
  107. package/common/cpp/audioapi/core/AudioNode.cpp +17 -19
  108. package/common/cpp/audioapi/core/AudioNode.h +19 -8
  109. package/common/cpp/audioapi/core/AudioParam.cpp +68 -100
  110. package/common/cpp/audioapi/core/AudioParam.h +20 -12
  111. package/common/cpp/audioapi/core/BaseAudioContext.cpp +52 -34
  112. package/common/cpp/audioapi/core/BaseAudioContext.h +26 -14
  113. package/common/cpp/audioapi/core/OfflineAudioContext.cpp +12 -17
  114. package/common/cpp/audioapi/core/OfflineAudioContext.h +10 -5
  115. package/common/cpp/audioapi/core/analysis/AnalyserNode.cpp +13 -21
  116. package/common/cpp/audioapi/core/analysis/AnalyserNode.h +8 -6
  117. package/common/cpp/audioapi/core/destinations/AudioDestinationNode.cpp +1 -0
  118. package/common/cpp/audioapi/core/destinations/AudioDestinationNode.h +5 -3
  119. package/common/cpp/audioapi/core/effects/BiquadFilterNode.cpp +96 -74
  120. package/common/cpp/audioapi/core/effects/BiquadFilterNode.h +44 -15
  121. package/common/cpp/audioapi/core/effects/ConvolverNode.cpp +201 -0
  122. package/common/cpp/audioapi/core/effects/ConvolverNode.h +64 -0
  123. package/common/cpp/audioapi/core/effects/DelayNode.cpp +101 -0
  124. package/common/cpp/audioapi/core/effects/DelayNode.h +39 -0
  125. package/common/cpp/audioapi/core/effects/GainNode.cpp +1 -0
  126. package/common/cpp/audioapi/core/effects/GainNode.h +3 -1
  127. package/common/cpp/audioapi/core/effects/IIRFilterNode.cpp +166 -0
  128. package/common/cpp/audioapi/core/effects/IIRFilterNode.h +74 -0
  129. package/common/cpp/audioapi/core/effects/PeriodicWave.cpp +22 -35
  130. package/common/cpp/audioapi/core/effects/PeriodicWave.h +4 -9
  131. package/common/cpp/audioapi/core/effects/StereoPannerNode.cpp +4 -5
  132. package/common/cpp/audioapi/core/effects/StereoPannerNode.h +4 -2
  133. package/common/cpp/audioapi/core/effects/WorkletNode.cpp +11 -13
  134. package/common/cpp/audioapi/core/effects/WorkletNode.h +15 -12
  135. package/common/cpp/audioapi/core/effects/WorkletProcessingNode.cpp +4 -4
  136. package/common/cpp/audioapi/core/effects/WorkletProcessingNode.h +15 -14
  137. package/common/cpp/audioapi/core/inputs/AudioRecorder.cpp +39 -108
  138. package/common/cpp/audioapi/core/inputs/AudioRecorder.h +47 -46
  139. package/common/cpp/audioapi/core/sources/AudioBuffer.cpp +4 -6
  140. package/common/cpp/audioapi/core/sources/AudioBuffer.h +4 -7
  141. package/common/cpp/audioapi/core/sources/AudioBufferBaseSourceNode.cpp +48 -57
  142. package/common/cpp/audioapi/core/sources/AudioBufferBaseSourceNode.h +37 -34
  143. package/common/cpp/audioapi/core/sources/AudioBufferQueueSourceNode.cpp +55 -17
  144. package/common/cpp/audioapi/core/sources/AudioBufferQueueSourceNode.h +35 -28
  145. package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.cpp +41 -49
  146. package/common/cpp/audioapi/core/sources/AudioBufferSourceNode.h +8 -6
  147. package/common/cpp/audioapi/core/sources/AudioScheduledSourceNode.cpp +29 -24
  148. package/common/cpp/audioapi/core/sources/AudioScheduledSourceNode.h +6 -6
  149. package/common/cpp/audioapi/core/sources/ConstantSourceNode.cpp +3 -4
  150. package/common/cpp/audioapi/core/sources/ConstantSourceNode.h +3 -1
  151. package/common/cpp/audioapi/core/sources/OscillatorNode.cpp +12 -23
  152. package/common/cpp/audioapi/core/sources/OscillatorNode.h +6 -4
  153. package/common/cpp/audioapi/core/sources/RecorderAdapterNode.cpp +43 -16
  154. package/common/cpp/audioapi/core/sources/RecorderAdapterNode.h +22 -17
  155. package/common/cpp/audioapi/core/sources/StreamerNode.cpp +105 -87
  156. package/common/cpp/audioapi/core/sources/StreamerNode.h +67 -33
  157. package/common/cpp/audioapi/core/sources/WorkletSourceNode.cpp +5 -7
  158. package/common/cpp/audioapi/core/sources/WorkletSourceNode.h +15 -13
  159. package/common/cpp/audioapi/core/types/AudioFormat.h +1 -11
  160. package/common/cpp/audioapi/core/utils/AudioDecoder.h +15 -6
  161. package/common/cpp/audioapi/core/utils/AudioFileWriter.cpp +41 -0
  162. package/common/cpp/audioapi/core/utils/AudioFileWriter.h +44 -0
  163. package/common/cpp/audioapi/core/utils/AudioNodeDestructor.cpp +5 -6
  164. package/common/cpp/audioapi/core/utils/AudioNodeDestructor.h +7 -10
  165. package/common/cpp/audioapi/core/utils/AudioNodeManager.cpp +17 -19
  166. package/common/cpp/audioapi/core/utils/AudioNodeManager.h +8 -11
  167. package/common/cpp/audioapi/core/utils/AudioParamEventQueue.cpp +3 -3
  168. package/common/cpp/audioapi/core/utils/AudioParamEventQueue.h +5 -5
  169. package/common/cpp/audioapi/core/utils/AudioRecorderCallback.cpp +101 -0
  170. package/common/cpp/audioapi/core/utils/AudioRecorderCallback.h +52 -0
  171. package/common/cpp/audioapi/core/utils/AudioStretcher.cpp +6 -6
  172. package/common/cpp/audioapi/core/utils/Constants.h +7 -3
  173. package/common/cpp/audioapi/core/utils/ParamChangeEvent.cpp +1 -0
  174. package/common/cpp/audioapi/core/utils/ParamChangeEvent.h +9 -9
  175. package/common/cpp/audioapi/core/utils/worklets/SafeIncludes.h +33 -34
  176. package/common/cpp/audioapi/core/utils/worklets/WorkletsRunner.cpp +17 -19
  177. package/common/cpp/audioapi/core/utils/worklets/WorkletsRunner.h +23 -19
  178. package/common/cpp/audioapi/dsp/AudioUtils.cpp +4 -10
  179. package/common/cpp/audioapi/dsp/AudioUtils.h +1 -1
  180. package/common/cpp/audioapi/dsp/Convolver.cpp +201 -0
  181. package/common/cpp/audioapi/dsp/Convolver.h +47 -0
  182. package/common/cpp/audioapi/dsp/FFT.cpp +1 -27
  183. package/common/cpp/audioapi/dsp/FFT.h +19 -3
  184. package/common/cpp/audioapi/dsp/VectorMath.cpp +24 -58
  185. package/common/cpp/audioapi/dsp/VectorMath.h +35 -8
  186. package/common/cpp/audioapi/dsp/Windows.cpp +4 -9
  187. package/common/cpp/audioapi/dsp/Windows.h +24 -23
  188. package/common/cpp/audioapi/events/AudioEventHandlerRegistry.cpp +12 -17
  189. package/common/cpp/audioapi/events/AudioEventHandlerRegistry.h +45 -40
  190. package/common/cpp/audioapi/events/IAudioEventHandlerRegistry.h +15 -7
  191. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/avcodec.h +4 -4
  192. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/codec.h +1 -1
  193. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/codec_desc.h +1 -1
  194. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/codec_id.h +3 -1
  195. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/codec_par.h +2 -2
  196. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/defs.h +3 -0
  197. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/packet.h +1 -1
  198. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/smpte_436m.h +254 -0
  199. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/version.h +1 -1
  200. package/common/cpp/audioapi/external/ffmpeg_include/libavformat/avformat.h +6 -6
  201. package/common/cpp/audioapi/external/ffmpeg_include/libavformat/version.h +2 -2
  202. package/common/cpp/audioapi/external/ffmpeg_include/libavformat/version_major.h +2 -0
  203. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/avassert.h +5 -2
  204. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/avutil.h +2 -2
  205. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/channel_layout.h +2 -2
  206. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/csp.h +1 -1
  207. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/dict.h +1 -1
  208. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/ffversion.h +1 -1
  209. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/film_grain_params.h +1 -1
  210. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/frame.h +1 -1
  211. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hdr_dynamic_vivid_metadata.h +3 -3
  212. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext.h +1 -1
  213. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_opencl.h +1 -1
  214. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_qsv.h +0 -1
  215. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_vulkan.h +1 -1
  216. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/iamf.h +2 -2
  217. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/lfg.h +2 -2
  218. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/log.h +2 -2
  219. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/mathematics.h +1 -1
  220. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/opt.h +4 -4
  221. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/rational.h +1 -1
  222. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/rc4.h +1 -1
  223. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/refstruct.h +1 -1
  224. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/spherical.h +6 -0
  225. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/tdrdi.h +1 -1
  226. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/tx.h +1 -1
  227. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/version.h +3 -3
  228. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/video_hint.h +1 -1
  229. package/common/cpp/audioapi/external/ffmpeg_include/libswresample/swresample.h +1 -1
  230. package/common/cpp/audioapi/external/ffmpeg_include/libswresample/version.h +1 -1
  231. package/common/cpp/audioapi/external/{libavcodec.xcframework → ffmpeg_ios/libavcodec.xcframework}/ios-arm64/libavcodec.framework/libavcodec +0 -0
  232. package/common/cpp/audioapi/external/{libavcodec.xcframework → ffmpeg_ios/libavcodec.xcframework}/ios-arm64_x86_64-simulator/libavcodec.framework/libavcodec +0 -0
  233. package/common/cpp/audioapi/external/{libavformat.xcframework → ffmpeg_ios/libavformat.xcframework}/ios-arm64/libavformat.framework/libavformat +0 -0
  234. package/common/cpp/audioapi/external/{libavformat.xcframework → ffmpeg_ios/libavformat.xcframework}/ios-arm64_x86_64-simulator/libavformat.framework/libavformat +0 -0
  235. package/common/cpp/audioapi/external/{libavutil.xcframework → ffmpeg_ios/libavutil.xcframework}/ios-arm64/libavutil.framework/libavutil +0 -0
  236. package/common/cpp/audioapi/external/{libavutil.xcframework → ffmpeg_ios/libavutil.xcframework}/ios-arm64_x86_64-simulator/libavutil.framework/libavutil +0 -0
  237. package/common/cpp/audioapi/external/{libswresample.xcframework → ffmpeg_ios/libswresample.xcframework}/ios-arm64/libswresample.framework/libswresample +0 -0
  238. package/common/cpp/audioapi/external/{libswresample.xcframework → ffmpeg_ios/libswresample.xcframework}/ios-arm64_x86_64-simulator/libswresample.framework/libswresample +0 -0
  239. package/common/cpp/audioapi/jsi/AudioArrayBuffer.h +4 -5
  240. package/common/cpp/audioapi/jsi/JsiHostObject.cpp +11 -13
  241. package/common/cpp/audioapi/jsi/JsiHostObject.h +26 -33
  242. package/common/cpp/audioapi/jsi/JsiPromise.cpp +34 -67
  243. package/common/cpp/audioapi/jsi/JsiPromise.h +65 -26
  244. package/common/cpp/audioapi/jsi/RuntimeLifecycleMonitor.cpp +7 -10
  245. package/common/cpp/audioapi/jsi/RuntimeLifecycleMonitor.h +1 -3
  246. package/common/cpp/audioapi/libs/ffmpeg/FFmpegDecoding.cpp +4 -3
  247. package/common/cpp/audioapi/libs/ffmpeg/relinking.md +24 -0
  248. package/common/cpp/audioapi/utils/AlignedAllocator.hpp +53 -0
  249. package/common/cpp/audioapi/utils/AudioArray.cpp +3 -8
  250. package/common/cpp/audioapi/utils/AudioArray.h +3 -11
  251. package/common/cpp/audioapi/utils/AudioBus.cpp +79 -149
  252. package/common/cpp/audioapi/utils/AudioBus.h +17 -14
  253. package/common/cpp/audioapi/utils/AudioFileProperties.cpp +92 -0
  254. package/common/cpp/audioapi/utils/AudioFileProperties.h +76 -0
  255. package/common/cpp/audioapi/utils/Benchmark.hpp +50 -47
  256. package/common/cpp/audioapi/utils/CircularAudioArray.cpp +6 -18
  257. package/common/cpp/audioapi/utils/CircularOverflowableAudioArray.cpp +6 -10
  258. package/common/cpp/audioapi/utils/CircularOverflowableAudioArray.h +2 -2
  259. package/common/cpp/audioapi/utils/CrossThreadEventScheduler.hpp +12 -9
  260. package/common/cpp/audioapi/utils/MoveOnlyFunction.hpp +17 -15
  261. package/common/cpp/audioapi/utils/Result.hpp +323 -0
  262. package/common/cpp/audioapi/utils/RingBiDirectionalBuffer.hpp +22 -28
  263. package/common/cpp/audioapi/utils/SpscChannel.hpp +329 -305
  264. package/common/cpp/audioapi/utils/ThreadPool.hpp +104 -20
  265. package/common/cpp/audioapi/utils/UnitConversion.h +9 -0
  266. package/common/cpp/test/CMakeLists.txt +15 -15
  267. package/common/cpp/test/src/AudioParamTest.cpp +4 -3
  268. package/common/cpp/test/src/AudioScheduledSourceTest.cpp +113 -0
  269. package/common/cpp/test/src/ConstantSourceTest.cpp +5 -7
  270. package/common/cpp/test/src/DelayTest.cpp +108 -0
  271. package/common/cpp/test/src/GainTest.cpp +4 -5
  272. package/common/cpp/test/src/IIRFilterTest.cpp +153 -0
  273. package/common/cpp/test/src/MockAudioEventHandlerRegistry.h +19 -11
  274. package/common/cpp/test/src/OscillatorTest.cpp +2 -1
  275. package/common/cpp/test/src/StereoPannerTest.cpp +6 -9
  276. package/common/cpp/test/src/biquad/BiquadFilterChromium.cpp +372 -0
  277. package/common/cpp/test/src/biquad/BiquadFilterChromium.h +65 -0
  278. package/common/cpp/test/src/biquad/BiquadFilterTest.cpp +272 -0
  279. package/common/cpp/test/src/biquad/BiquadFilterTest.h +47 -0
  280. package/ios/audioapi/ios/AudioAPIModule.h +4 -3
  281. package/ios/audioapi/ios/AudioAPIModule.mm +148 -34
  282. package/ios/audioapi/ios/core/IOSAudioPlayer.h +2 -2
  283. package/ios/audioapi/ios/core/IOSAudioPlayer.mm +7 -6
  284. package/ios/audioapi/ios/core/IOSAudioRecorder.h +28 -11
  285. package/ios/audioapi/ios/core/IOSAudioRecorder.mm +280 -45
  286. package/ios/audioapi/ios/core/NativeAudioPlayer.m +17 -14
  287. package/ios/audioapi/ios/core/NativeAudioRecorder.h +6 -3
  288. package/ios/audioapi/ios/core/NativeAudioRecorder.m +74 -6
  289. package/ios/audioapi/ios/core/utils/AudioDecoder.mm +22 -4
  290. package/ios/audioapi/ios/core/utils/FileOptions.h +33 -0
  291. package/ios/audioapi/ios/core/utils/FileOptions.mm +195 -0
  292. package/ios/audioapi/ios/core/utils/IOSFileWriter.h +53 -0
  293. package/ios/audioapi/ios/core/utils/IOSFileWriter.mm +239 -0
  294. package/ios/audioapi/ios/core/utils/IOSRecorderCallback.h +47 -0
  295. package/ios/audioapi/ios/core/utils/IOSRecorderCallback.mm +185 -0
  296. package/ios/audioapi/ios/system/AudioEngine.h +21 -16
  297. package/ios/audioapi/ios/system/AudioEngine.mm +153 -132
  298. package/ios/audioapi/ios/system/AudioSessionManager.h +25 -11
  299. package/ios/audioapi/ios/system/AudioSessionManager.mm +277 -203
  300. package/ios/audioapi/ios/system/NotificationManager.mm +47 -53
  301. package/ios/audioapi/ios/system/notification/BaseNotification.h +58 -0
  302. package/ios/audioapi/ios/system/notification/NotificationRegistry.h +70 -0
  303. package/ios/audioapi/ios/system/notification/NotificationRegistry.mm +172 -0
  304. package/ios/audioapi/ios/system/notification/PlaybackNotification.h +27 -0
  305. package/ios/audioapi/ios/system/notification/PlaybackNotification.mm +427 -0
  306. package/lib/commonjs/AudioAPIModule/AudioAPIModule.js +90 -0
  307. package/lib/commonjs/AudioAPIModule/AudioAPIModule.js.map +1 -0
  308. package/lib/commonjs/AudioAPIModule/globals.d.js +6 -0
  309. package/lib/commonjs/AudioAPIModule/globals.d.js.map +1 -0
  310. package/lib/commonjs/AudioAPIModule/index.js +14 -0
  311. package/lib/commonjs/AudioAPIModule/index.js.map +1 -0
  312. package/lib/commonjs/api.js +89 -12
  313. package/lib/commonjs/api.js.map +1 -1
  314. package/lib/commonjs/api.web.js +35 -14
  315. package/lib/commonjs/api.web.js.map +1 -1
  316. package/lib/commonjs/core/AudioBufferBaseSourceNode.js +3 -0
  317. package/lib/commonjs/core/AudioBufferBaseSourceNode.js.map +1 -1
  318. package/lib/commonjs/core/AudioBufferQueueSourceNode.js +5 -2
  319. package/lib/commonjs/core/AudioBufferQueueSourceNode.js.map +1 -1
  320. package/lib/commonjs/core/AudioContext.js +5 -8
  321. package/lib/commonjs/core/AudioContext.js.map +1 -1
  322. package/lib/commonjs/core/AudioNode.js +1 -1
  323. package/lib/commonjs/core/AudioNode.js.map +1 -1
  324. package/lib/commonjs/core/AudioParam.js +18 -11
  325. package/lib/commonjs/core/AudioParam.js.map +1 -1
  326. package/lib/commonjs/core/AudioRecorder.js +56 -55
  327. package/lib/commonjs/core/AudioRecorder.js.map +1 -1
  328. package/lib/commonjs/core/BaseAudioContext.js +61 -30
  329. package/lib/commonjs/core/BaseAudioContext.js.map +1 -1
  330. package/lib/commonjs/core/ConvolverNode.js +37 -0
  331. package/lib/commonjs/core/ConvolverNode.js.map +1 -0
  332. package/lib/commonjs/core/DelayNode.js +17 -0
  333. package/lib/commonjs/core/DelayNode.js.map +1 -0
  334. package/lib/commonjs/core/IIRFilterNode.js +19 -0
  335. package/lib/commonjs/core/IIRFilterNode.js.map +1 -0
  336. package/lib/commonjs/core/OfflineAudioContext.js +3 -6
  337. package/lib/commonjs/core/OfflineAudioContext.js.map +1 -1
  338. package/lib/commonjs/plugin/withAudioAPI.js +46 -0
  339. package/lib/commonjs/plugin/withAudioAPI.js.map +1 -1
  340. package/lib/commonjs/specs/NativeAudioAPIModule.js.map +1 -1
  341. package/lib/commonjs/system/AudioManager.js +9 -15
  342. package/lib/commonjs/system/AudioManager.js.map +1 -1
  343. package/lib/commonjs/system/index.js +13 -0
  344. package/lib/commonjs/system/index.js.map +1 -1
  345. package/lib/commonjs/system/notification/PlaybackNotificationManager.js +138 -0
  346. package/lib/commonjs/system/notification/PlaybackNotificationManager.js.map +1 -0
  347. package/lib/commonjs/system/notification/RecordingNotificationManager.js +185 -0
  348. package/lib/commonjs/system/notification/RecordingNotificationManager.js.map +1 -0
  349. package/lib/commonjs/system/notification/SimpleNotificationManager.js +125 -0
  350. package/lib/commonjs/system/notification/SimpleNotificationManager.js.map +1 -0
  351. package/lib/commonjs/system/notification/index.js +45 -0
  352. package/lib/commonjs/system/notification/index.js.map +1 -0
  353. package/lib/commonjs/system/notification/types.js +6 -0
  354. package/lib/commonjs/system/notification/types.js.map +1 -0
  355. package/lib/commonjs/types.js +28 -35
  356. package/lib/commonjs/types.js.map +1 -1
  357. package/lib/commonjs/utils/filePresets.js +43 -0
  358. package/lib/commonjs/utils/filePresets.js.map +1 -0
  359. package/lib/commonjs/utils/index.js +12 -27
  360. package/lib/commonjs/utils/index.js.map +1 -1
  361. package/lib/commonjs/web-core/AudioContext.js +21 -1
  362. package/lib/commonjs/web-core/AudioContext.js.map +1 -1
  363. package/lib/commonjs/web-core/ConvolverNode.js +40 -0
  364. package/lib/commonjs/web-core/ConvolverNode.js.map +1 -0
  365. package/lib/commonjs/web-core/ConvolverNodeOptions.js +6 -0
  366. package/lib/commonjs/web-core/ConvolverNodeOptions.js.map +1 -0
  367. package/lib/commonjs/web-core/DelayNode.js +17 -0
  368. package/lib/commonjs/web-core/DelayNode.js.map +1 -0
  369. package/lib/commonjs/web-core/IIRFilterNode.js +19 -0
  370. package/lib/commonjs/web-core/IIRFilterNode.js.map +1 -0
  371. package/lib/commonjs/web-core/OfflineAudioContext.js +20 -0
  372. package/lib/commonjs/web-core/OfflineAudioContext.js.map +1 -1
  373. package/lib/commonjs/web-system/index.js +17 -0
  374. package/lib/commonjs/web-system/index.js.map +1 -0
  375. package/lib/commonjs/web-system/notification/PlaybackNotificationManager.js +37 -0
  376. package/lib/commonjs/web-system/notification/PlaybackNotificationManager.js.map +1 -0
  377. package/lib/commonjs/web-system/notification/RecordingNotificationManager.js +37 -0
  378. package/lib/commonjs/web-system/notification/RecordingNotificationManager.js.map +1 -0
  379. package/lib/commonjs/web-system/notification/index.js +21 -0
  380. package/lib/commonjs/web-system/notification/index.js.map +1 -0
  381. package/lib/module/AudioAPIModule/AudioAPIModule.js +87 -0
  382. package/lib/module/AudioAPIModule/AudioAPIModule.js.map +1 -0
  383. package/lib/module/AudioAPIModule/globals.d.js +4 -0
  384. package/lib/module/AudioAPIModule/globals.d.js.map +1 -0
  385. package/lib/module/AudioAPIModule/index.js +4 -0
  386. package/lib/module/AudioAPIModule/index.js.map +1 -0
  387. package/lib/module/api.js +7 -12
  388. package/lib/module/api.js.map +1 -1
  389. package/lib/module/api.web.js +4 -1
  390. package/lib/module/api.web.js.map +1 -1
  391. package/lib/module/core/AudioBufferBaseSourceNode.js +3 -0
  392. package/lib/module/core/AudioBufferBaseSourceNode.js.map +1 -1
  393. package/lib/module/core/AudioBufferQueueSourceNode.js +5 -2
  394. package/lib/module/core/AudioBufferQueueSourceNode.js.map +1 -1
  395. package/lib/module/core/AudioContext.js +5 -8
  396. package/lib/module/core/AudioContext.js.map +1 -1
  397. package/lib/module/core/AudioNode.js +1 -1
  398. package/lib/module/core/AudioNode.js.map +1 -1
  399. package/lib/module/core/AudioParam.js +18 -11
  400. package/lib/module/core/AudioParam.js.map +1 -1
  401. package/lib/module/core/AudioRecorder.js +57 -56
  402. package/lib/module/core/AudioRecorder.js.map +1 -1
  403. package/lib/module/core/BaseAudioContext.js +63 -32
  404. package/lib/module/core/BaseAudioContext.js.map +1 -1
  405. package/lib/module/core/ConvolverNode.js +31 -0
  406. package/lib/module/core/ConvolverNode.js.map +1 -0
  407. package/lib/module/core/DelayNode.js +11 -0
  408. package/lib/module/core/DelayNode.js.map +1 -0
  409. package/lib/module/core/IIRFilterNode.js +13 -0
  410. package/lib/module/core/IIRFilterNode.js.map +1 -0
  411. package/lib/module/core/OfflineAudioContext.js +3 -6
  412. package/lib/module/core/OfflineAudioContext.js.map +1 -1
  413. package/lib/module/plugin/withAudioAPI.js +47 -1
  414. package/lib/module/plugin/withAudioAPI.js.map +1 -1
  415. package/lib/module/specs/NativeAudioAPIModule.js.map +1 -1
  416. package/lib/module/system/AudioManager.js +9 -15
  417. package/lib/module/system/AudioManager.js.map +1 -1
  418. package/lib/module/system/index.js +1 -0
  419. package/lib/module/system/index.js.map +1 -1
  420. package/lib/module/system/notification/PlaybackNotificationManager.js +134 -0
  421. package/lib/module/system/notification/PlaybackNotificationManager.js.map +1 -0
  422. package/lib/module/system/notification/RecordingNotificationManager.js +181 -0
  423. package/lib/module/system/notification/RecordingNotificationManager.js.map +1 -0
  424. package/lib/module/system/notification/SimpleNotificationManager.js +121 -0
  425. package/lib/module/system/notification/SimpleNotificationManager.js.map +1 -0
  426. package/lib/module/system/notification/index.js +7 -0
  427. package/lib/module/system/notification/index.js.map +1 -0
  428. package/lib/module/system/notification/types.js +4 -0
  429. package/lib/module/system/notification/types.js.map +1 -0
  430. package/lib/module/types.js +27 -34
  431. package/lib/module/types.js.map +1 -1
  432. package/lib/module/utils/filePresets.js +39 -0
  433. package/lib/module/utils/filePresets.js.map +1 -0
  434. package/lib/module/utils/index.js +10 -10
  435. package/lib/module/utils/index.js.map +1 -1
  436. package/lib/module/web-core/AudioContext.js +21 -1
  437. package/lib/module/web-core/AudioContext.js.map +1 -1
  438. package/lib/module/web-core/ConvolverNode.js +34 -0
  439. package/lib/module/web-core/ConvolverNode.js.map +1 -0
  440. package/lib/module/web-core/ConvolverNodeOptions.js +4 -0
  441. package/lib/module/web-core/ConvolverNodeOptions.js.map +1 -0
  442. package/lib/module/web-core/DelayNode.js +11 -0
  443. package/lib/module/web-core/DelayNode.js.map +1 -0
  444. package/lib/module/web-core/IIRFilterNode.js +13 -0
  445. package/lib/module/web-core/IIRFilterNode.js.map +1 -0
  446. package/lib/module/web-core/OfflineAudioContext.js +20 -0
  447. package/lib/module/web-core/OfflineAudioContext.js.map +1 -1
  448. package/lib/module/web-system/index.js +4 -0
  449. package/lib/module/web-system/index.js.map +1 -0
  450. package/lib/module/web-system/notification/PlaybackNotificationManager.js +33 -0
  451. package/lib/module/web-system/notification/PlaybackNotificationManager.js.map +1 -0
  452. package/lib/module/web-system/notification/RecordingNotificationManager.js +33 -0
  453. package/lib/module/web-system/notification/RecordingNotificationManager.js.map +1 -0
  454. package/lib/module/web-system/notification/index.js +5 -0
  455. package/lib/module/web-system/notification/index.js.map +1 -0
  456. package/lib/typescript/AudioAPIModule/AudioAPIModule.d.ts +36 -0
  457. package/lib/typescript/AudioAPIModule/AudioAPIModule.d.ts.map +1 -0
  458. package/lib/typescript/AudioAPIModule/index.d.ts +2 -0
  459. package/lib/typescript/AudioAPIModule/index.d.ts.map +1 -0
  460. package/lib/typescript/api.d.ts +5 -9
  461. package/lib/typescript/api.d.ts.map +1 -1
  462. package/lib/typescript/api.web.d.ts +4 -1
  463. package/lib/typescript/api.web.d.ts.map +1 -1
  464. package/lib/typescript/core/AudioBufferBaseSourceNode.d.ts +1 -0
  465. package/lib/typescript/core/AudioBufferBaseSourceNode.d.ts.map +1 -1
  466. package/lib/typescript/core/AudioBufferQueueSourceNode.d.ts +1 -1
  467. package/lib/typescript/core/AudioBufferQueueSourceNode.d.ts.map +1 -1
  468. package/lib/typescript/core/AudioContext.d.ts +1 -1
  469. package/lib/typescript/core/AudioContext.d.ts.map +1 -1
  470. package/lib/typescript/core/AudioNode.d.ts +2 -1
  471. package/lib/typescript/core/AudioNode.d.ts.map +1 -1
  472. package/lib/typescript/core/AudioParam.d.ts.map +1 -1
  473. package/lib/typescript/core/AudioRecorder.d.ts +16 -6
  474. package/lib/typescript/core/AudioRecorder.d.ts.map +1 -1
  475. package/lib/typescript/core/BaseAudioContext.d.ts +9 -3
  476. package/lib/typescript/core/BaseAudioContext.d.ts.map +1 -1
  477. package/lib/typescript/core/ConvolverNode.d.ts +12 -0
  478. package/lib/typescript/core/ConvolverNode.d.ts.map +1 -0
  479. package/lib/typescript/core/DelayNode.d.ts +9 -0
  480. package/lib/typescript/core/DelayNode.d.ts.map +1 -0
  481. package/lib/typescript/core/IIRFilterNode.d.ts +5 -0
  482. package/lib/typescript/core/IIRFilterNode.d.ts.map +1 -0
  483. package/lib/typescript/core/OfflineAudioContext.d.ts +1 -1
  484. package/lib/typescript/core/OfflineAudioContext.d.ts.map +1 -1
  485. package/lib/typescript/events/types.d.ts +6 -2
  486. package/lib/typescript/events/types.d.ts.map +1 -1
  487. package/lib/typescript/interfaces.d.ts +36 -34
  488. package/lib/typescript/interfaces.d.ts.map +1 -1
  489. package/lib/typescript/plugin/withAudioAPI.d.ts +1 -0
  490. package/lib/typescript/plugin/withAudioAPI.d.ts.map +1 -1
  491. package/lib/typescript/specs/NativeAudioAPIModule.d.ts +18 -6
  492. package/lib/typescript/specs/NativeAudioAPIModule.d.ts.map +1 -1
  493. package/lib/typescript/system/AudioManager.d.ts +5 -5
  494. package/lib/typescript/system/AudioManager.d.ts.map +1 -1
  495. package/lib/typescript/system/index.d.ts +1 -0
  496. package/lib/typescript/system/index.d.ts.map +1 -1
  497. package/lib/typescript/system/notification/PlaybackNotificationManager.d.ts +23 -0
  498. package/lib/typescript/system/notification/PlaybackNotificationManager.d.ts.map +1 -0
  499. package/lib/typescript/system/notification/RecordingNotificationManager.d.ts +24 -0
  500. package/lib/typescript/system/notification/RecordingNotificationManager.d.ts.map +1 -0
  501. package/lib/typescript/system/notification/SimpleNotificationManager.d.ts +21 -0
  502. package/lib/typescript/system/notification/SimpleNotificationManager.d.ts.map +1 -0
  503. package/lib/typescript/system/notification/index.d.ts +5 -0
  504. package/lib/typescript/system/notification/index.d.ts.map +1 -0
  505. package/lib/typescript/system/notification/types.d.ts +65 -0
  506. package/lib/typescript/system/notification/types.d.ts.map +1 -0
  507. package/lib/typescript/system/types.d.ts +0 -16
  508. package/lib/typescript/system/types.d.ts.map +1 -1
  509. package/lib/typescript/types.d.ts +58 -45
  510. package/lib/typescript/types.d.ts.map +1 -1
  511. package/lib/typescript/utils/filePresets.d.ts +9 -0
  512. package/lib/typescript/utils/filePresets.d.ts.map +1 -0
  513. package/lib/typescript/utils/index.d.ts +1 -8
  514. package/lib/typescript/utils/index.d.ts.map +1 -1
  515. package/lib/typescript/web-core/AudioContext.d.ts +9 -2
  516. package/lib/typescript/web-core/AudioContext.d.ts.map +1 -1
  517. package/lib/typescript/web-core/BaseAudioContext.d.ts +7 -1
  518. package/lib/typescript/web-core/BaseAudioContext.d.ts.map +1 -1
  519. package/lib/typescript/web-core/ConvolverNode.d.ts +11 -0
  520. package/lib/typescript/web-core/ConvolverNode.d.ts.map +1 -0
  521. package/lib/typescript/web-core/ConvolverNodeOptions.d.ts +6 -0
  522. package/lib/typescript/web-core/ConvolverNodeOptions.d.ts.map +1 -0
  523. package/lib/typescript/web-core/DelayNode.d.ts +8 -0
  524. package/lib/typescript/web-core/DelayNode.d.ts.map +1 -0
  525. package/lib/typescript/web-core/IIRFilterNode.d.ts +5 -0
  526. package/lib/typescript/web-core/IIRFilterNode.d.ts.map +1 -0
  527. package/lib/typescript/web-core/OfflineAudioContext.d.ts +8 -1
  528. package/lib/typescript/web-core/OfflineAudioContext.d.ts.map +1 -1
  529. package/lib/typescript/web-system/index.d.ts +2 -0
  530. package/lib/typescript/web-system/index.d.ts.map +1 -0
  531. package/lib/typescript/web-system/notification/PlaybackNotificationManager.d.ts +20 -0
  532. package/lib/typescript/web-system/notification/PlaybackNotificationManager.d.ts.map +1 -0
  533. package/lib/typescript/web-system/notification/RecordingNotificationManager.d.ts +20 -0
  534. package/lib/typescript/web-system/notification/RecordingNotificationManager.d.ts.map +1 -0
  535. package/lib/typescript/web-system/notification/index.d.ts +3 -0
  536. package/lib/typescript/web-system/notification/index.d.ts.map +1 -0
  537. package/package.json +11 -5
  538. package/scripts/download-prebuilt-binaries.sh +61 -0
  539. package/scripts/rnaa_utils.rb +8 -0
  540. package/scripts/validate-worklets-version.js +27 -0
  541. package/src/AudioAPIModule/AudioAPIModule.ts +122 -0
  542. package/src/AudioAPIModule/globals.d.ts +33 -0
  543. package/src/AudioAPIModule/index.ts +1 -0
  544. package/src/api.ts +21 -52
  545. package/src/api.web.ts +8 -2
  546. package/src/core/AudioBufferBaseSourceNode.ts +8 -0
  547. package/src/core/AudioBufferQueueSourceNode.ts +8 -2
  548. package/src/core/AudioContext.ts +5 -8
  549. package/src/core/AudioNode.ts +4 -3
  550. package/src/core/AudioParam.ts +18 -11
  551. package/src/core/AudioRecorder.ts +86 -84
  552. package/src/core/BaseAudioContext.ts +120 -54
  553. package/src/core/ConvolverNode.ts +35 -0
  554. package/src/core/DelayNode.ts +13 -0
  555. package/src/core/IIRFilterNode.ts +25 -0
  556. package/src/core/OfflineAudioContext.ts +4 -7
  557. package/src/events/types.ts +7 -3
  558. package/src/interfaces.ts +55 -34
  559. package/src/plugin/withAudioAPI.ts +61 -0
  560. package/src/specs/NativeAudioAPIModule.ts +26 -9
  561. package/src/system/AudioManager.ts +13 -32
  562. package/src/system/index.ts +1 -0
  563. package/src/system/notification/PlaybackNotificationManager.ts +197 -0
  564. package/src/system/notification/RecordingNotificationManager.ts +247 -0
  565. package/src/system/notification/SimpleNotificationManager.ts +175 -0
  566. package/src/system/notification/index.ts +4 -0
  567. package/src/system/notification/types.ts +111 -0
  568. package/src/system/types.ts +0 -18
  569. package/src/types.ts +61 -46
  570. package/src/utils/filePresets.ts +47 -0
  571. package/src/utils/index.ts +13 -19
  572. package/src/web-core/AudioContext.tsx +40 -1
  573. package/src/web-core/BaseAudioContext.tsx +11 -1
  574. package/src/web-core/ConvolverNode.tsx +43 -0
  575. package/src/web-core/ConvolverNodeOptions.tsx +6 -0
  576. package/src/web-core/DelayNode.tsx +12 -0
  577. package/src/web-core/IIRFilterNode.tsx +25 -0
  578. package/src/web-core/OfflineAudioContext.tsx +39 -0
  579. package/src/web-system/index.ts +1 -0
  580. package/src/web-system/notification/PlaybackNotificationManager.ts +64 -0
  581. package/src/web-system/notification/RecordingNotificationManager.ts +64 -0
  582. package/src/web-system/notification/index.ts +2 -0
  583. package/android/src/main/cpp/audioapi/android/core/utils/FileUtils.h +0 -34
  584. package/android/src/main/cpp/audioapi/android/core/utils/FileUtilts.cpp +0 -133
  585. package/android/src/main/cpp/audioapi/android/core/utils/ffmpegBackend/FFmpegAudioFileOptions.cpp +0 -154
  586. package/android/src/main/cpp/audioapi/android/core/utils/ffmpegBackend/FFmpegAudioFileOptions.h +0 -41
  587. package/android/src/main/cpp/audioapi/android/core/utils/miniaudioBackend/MiniAudioFileOptions.cpp +0 -47
  588. package/android/src/main/cpp/audioapi/android/core/utils/miniaudioBackend/MiniAudioFileOptions.h +0 -28
  589. package/android/src/main/java/com/swmansion/audioapi/system/LockScreenManager.kt +0 -325
  590. package/android/src/main/java/com/swmansion/audioapi/system/MediaNotificationManager.kt +0 -262
  591. package/android/src/main/java/com/swmansion/audioapi/system/MediaReceiver.kt +0 -57
  592. package/android/src/main/java/com/swmansion/audioapi/system/MediaSessionCallback.kt +0 -61
  593. package/common/cpp/audioapi/libs/ffmpeg/INSTRUCTIONS.md +0 -32
  594. package/common/cpp/audioapi/libs/ffmpeg/create_xcframework.sh +0 -111
  595. package/common/cpp/audioapi/libs/ffmpeg/ffmpeg_setup.sh +0 -391
  596. package/ios/audioapi/ios/core/IOSAudioFileOptions.h +0 -35
  597. package/ios/audioapi/ios/core/IOSAudioFileOptions.mm +0 -135
  598. package/ios/audioapi/ios/core/IOSAudioFileWriter.h +0 -38
  599. package/ios/audioapi/ios/core/IOSAudioFileWriter.mm +0 -187
  600. package/ios/audioapi/ios/system/LockScreenManager.h +0 -24
  601. package/ios/audioapi/ios/system/LockScreenManager.mm +0 -310
  602. package/lib/commonjs/utils/bitEnums.js +0 -33
  603. package/lib/commonjs/utils/bitEnums.js.map +0 -1
  604. package/lib/module/utils/bitEnums.js +0 -27
  605. package/lib/module/utils/bitEnums.js.map +0 -1
  606. package/lib/typescript/utils/bitEnums.d.ts +0 -4
  607. package/lib/typescript/utils/bitEnums.d.ts.map +0 -1
  608. package/metro-config/index.d.ts +0 -5
  609. package/metro-config/index.js +0 -41
  610. package/metro-config/tsconfig.json +0 -3
  611. package/src/utils/bitEnums.ts +0 -51
  612. package/common/cpp/audioapi/external/{libavcodec.xcframework → ffmpeg_ios/libavcodec.xcframework}/Info.plist +5 -5
  613. package/common/cpp/audioapi/external/{libavcodec.xcframework → ffmpeg_ios/libavcodec.xcframework}/ios-arm64/libavcodec.framework/Info.plist +0 -0
  614. package/common/cpp/audioapi/external/{libavcodec.xcframework → ffmpeg_ios/libavcodec.xcframework}/ios-arm64_x86_64-simulator/libavcodec.framework/Info.plist +0 -0
  615. package/common/cpp/audioapi/external/{libavformat.xcframework → ffmpeg_ios/libavformat.xcframework}/Info.plist +0 -0
  616. package/common/cpp/audioapi/external/{libavformat.xcframework → ffmpeg_ios/libavformat.xcframework}/ios-arm64/libavformat.framework/Info.plist +0 -0
  617. package/common/cpp/audioapi/external/{libavformat.xcframework → ffmpeg_ios/libavformat.xcframework}/ios-arm64_x86_64-simulator/libavformat.framework/Info.plist +0 -0
  618. package/common/cpp/audioapi/external/{libavutil.xcframework → ffmpeg_ios/libavutil.xcframework}/Info.plist +5 -5
  619. package/common/cpp/audioapi/external/{libavutil.xcframework → ffmpeg_ios/libavutil.xcframework}/ios-arm64/libavutil.framework/Info.plist +0 -0
  620. package/common/cpp/audioapi/external/{libavutil.xcframework → ffmpeg_ios/libavutil.xcframework}/ios-arm64_x86_64-simulator/libavutil.framework/Info.plist +0 -0
  621. package/common/cpp/audioapi/external/{libswresample.xcframework → ffmpeg_ios/libswresample.xcframework}/Info.plist +5 -5
  622. /package/common/cpp/audioapi/external/{libswresample.xcframework → ffmpeg_ios/libswresample.xcframework}/ios-arm64/libswresample.framework/Info.plist +0 -0
  623. /package/common/cpp/audioapi/external/{libswresample.xcframework → ffmpeg_ios/libswresample.xcframework}/ios-arm64_x86_64-simulator/libswresample.framework/Info.plist +0 -0
@@ -25,6 +25,7 @@
25
25
 
26
26
  #include <audioapi/dsp/AudioUtils.h>
27
27
  #include <audioapi/dsp/VectorMath.h>
28
+ #include <algorithm>
28
29
 
29
30
  #if defined(HAVE_ACCELERATE)
30
31
  #include <Accelerate/Accelerate.h>
@@ -47,8 +48,7 @@ void multiplyByScalar(
47
48
  float scalar,
48
49
  float *outputVector,
49
50
  size_t numberOfElementsToProcess) {
50
- vDSP_vsmul(
51
- inputVector, 1, &scalar, outputVector, 1, numberOfElementsToProcess);
51
+ vDSP_vsmul(inputVector, 1, &scalar, outputVector, 1, numberOfElementsToProcess);
52
52
  }
53
53
 
54
54
  void addScalar(
@@ -56,8 +56,7 @@ void addScalar(
56
56
  float scalar,
57
57
  float *outputVector,
58
58
  size_t numberOfElementsToProcess) {
59
- vDSP_vsadd(
60
- inputVector, 1, &scalar, outputVector, 1, numberOfElementsToProcess);
59
+ vDSP_vsadd(inputVector, 1, &scalar, outputVector, 1, numberOfElementsToProcess);
61
60
  }
62
61
 
63
62
  void add(
@@ -65,14 +64,7 @@ void add(
65
64
  const float *inputVector2,
66
65
  float *outputVector,
67
66
  size_t numberOfElementsToProcess) {
68
- vDSP_vadd(
69
- inputVector1,
70
- 1,
71
- inputVector2,
72
- 1,
73
- outputVector,
74
- 1,
75
- numberOfElementsToProcess);
67
+ vDSP_vadd(inputVector1, 1, inputVector2, 1, outputVector, 1, numberOfElementsToProcess);
76
68
  }
77
69
 
78
70
  void subtract(
@@ -80,14 +72,7 @@ void subtract(
80
72
  const float *inputVector2,
81
73
  float *outputVector,
82
74
  size_t numberOfElementsToProcess) {
83
- vDSP_vsub(
84
- inputVector1,
85
- 1,
86
- inputVector2,
87
- 1,
88
- outputVector,
89
- 1,
90
- numberOfElementsToProcess);
75
+ vDSP_vsub(inputVector1, 1, inputVector2, 1, outputVector, 1, numberOfElementsToProcess);
91
76
  }
92
77
 
93
78
  void multiply(
@@ -95,19 +80,10 @@ void multiply(
95
80
  const float *inputVector2,
96
81
  float *outputVector,
97
82
  size_t numberOfElementsToProcess) {
98
- vDSP_vmul(
99
- inputVector1,
100
- 1,
101
- inputVector2,
102
- 1,
103
- outputVector,
104
- 1,
105
- numberOfElementsToProcess);
83
+ vDSP_vmul(inputVector1, 1, inputVector2, 1, outputVector, 1, numberOfElementsToProcess);
106
84
  }
107
85
 
108
- float maximumMagnitude(
109
- const float *inputVector,
110
- size_t numberOfElementsToProcess) {
86
+ float maximumMagnitude(const float *inputVector, size_t numberOfElementsToProcess) {
111
87
  float maximumValue = 0;
112
88
  vDSP_maxmgv(inputVector, 1, &maximumValue, numberOfElementsToProcess);
113
89
  return maximumValue;
@@ -118,15 +94,7 @@ void multiplyByScalarThenAddToOutput(
118
94
  float scalar,
119
95
  float *outputVector,
120
96
  size_t numberOfElementsToProcess) {
121
- vDSP_vsma(
122
- inputVector,
123
- 1,
124
- &scalar,
125
- outputVector,
126
- 1,
127
- outputVector,
128
- 1,
129
- numberOfElementsToProcess);
97
+ vDSP_vsma(inputVector, 1, &scalar, outputVector, 1, outputVector, 1, numberOfElementsToProcess);
130
98
  }
131
99
 
132
100
  #else
@@ -508,15 +476,15 @@ void multiply(
508
476
  bool source2Aligned = is16ByteAligned(inputVector2);
509
477
  bool destAligned = is16ByteAligned(outputVector);
510
478
 
511
- #define SSE2_MULT(loadInstr, storeInstr) \
512
- while (outputVector < endP) { \
513
- pSource1 = _mm_load_ps(inputVector1); \
479
+ #define SSE2_MULT(loadInstr, storeInstr) \
480
+ while (outputVector < endP) { \
481
+ pSource1 = _mm_load_ps(inputVector1); \
514
482
  pSource2 = _mm_##loadInstr##_ps(inputVector2); \
515
- dest = _mm_mul_ps(pSource1, pSource2); \
516
- _mm_##storeInstr##_ps(outputVector, dest); \
517
- inputVector1 += 4; \
518
- inputVector2 += 4; \
519
- outputVector += 4; \
483
+ dest = _mm_mul_ps(pSource1, pSource2); \
484
+ _mm_##storeInstr##_ps(outputVector, dest); \
485
+ inputVector1 += 4; \
486
+ inputVector2 += 4; \
487
+ outputVector += 4; \
520
488
  }
521
489
 
522
490
  if (source2Aligned && destAligned) // Both aligned.
@@ -552,9 +520,7 @@ void multiply(
552
520
  }
553
521
  }
554
522
 
555
- float maximumMagnitude(
556
- const float *inputVector,
557
- size_t numberOfElementsToProcess) {
523
+ float maximumMagnitude(const float *inputVector, size_t numberOfElementsToProcess) {
558
524
  size_t n = numberOfElementsToProcess;
559
525
  float max = 0;
560
526
 
@@ -647,15 +613,15 @@ void multiplyByScalarThenAddToOutput(
647
613
 
648
614
  bool destAligned = is16ByteAligned(outputVector);
649
615
 
650
- #define SSE2_MULT_ADD(loadInstr, storeInstr) \
651
- while (outputVector < endP) { \
652
- pSource = _mm_load_ps(inputVector); \
653
- temp = _mm_mul_ps(pSource, mScale); \
616
+ #define SSE2_MULT_ADD(loadInstr, storeInstr) \
617
+ while (outputVector < endP) { \
618
+ pSource = _mm_load_ps(inputVector); \
619
+ temp = _mm_mul_ps(pSource, mScale); \
654
620
  dest = _mm_##loadInstr##_ps(outputVector); \
655
- dest = _mm_add_ps(dest, temp); \
621
+ dest = _mm_add_ps(dest, temp); \
656
622
  _mm_##storeInstr##_ps(outputVector, dest); \
657
- inputVector += 4; \
658
- outputVector += 4; \
623
+ inputVector += 4; \
624
+ outputVector += 4; \
659
625
  }
660
626
 
661
627
  if (destAligned)
@@ -28,23 +28,50 @@
28
28
  // Defines the interface for several vector math functions whose implementation
29
29
  // will ideally be optimized.
30
30
 
31
- #include <cstddef>
32
31
  #include <algorithm>
33
32
  #include <cmath>
33
+ #include <cstddef>
34
34
 
35
35
  namespace audioapi::dsp {
36
36
 
37
- void multiplyByScalarThenAddToOutput(const float *inputVector, float scalar, float *outputVector, size_t numberOfElementsToProcess);
37
+ void multiplyByScalarThenAddToOutput(
38
+ const float *inputVector,
39
+ float scalar,
40
+ float *outputVector,
41
+ size_t numberOfElementsToProcess);
38
42
 
39
- void multiplyByScalar(const float *inputVector, float scalar, float *outputVector, size_t numberOfElementsToProcess);
40
- void addScalar(const float *inputVector, float scalar, float *outputVector, size_t numberOfElementsToProcess);
41
- void add(const float *inputVector1, const float *inputVector2, float *outputVector, size_t numberOfElementsToProcess);
42
- void subtract(const float *inputVector1, const float *inputVector2, float *outputVector, size_t numberOfElementsToProcess);
43
- void multiply(const float *inputVector1, const float *inputVector2, float *outputVector, size_t numberOfElementsToProcess);
43
+ void multiplyByScalar(
44
+ const float *inputVector,
45
+ float scalar,
46
+ float *outputVector,
47
+ size_t numberOfElementsToProcess);
48
+ void addScalar(
49
+ const float *inputVector,
50
+ float scalar,
51
+ float *outputVector,
52
+ size_t numberOfElementsToProcess);
53
+ void add(
54
+ const float *inputVector1,
55
+ const float *inputVector2,
56
+ float *outputVector,
57
+ size_t numberOfElementsToProcess);
58
+ void subtract(
59
+ const float *inputVector1,
60
+ const float *inputVector2,
61
+ float *outputVector,
62
+ size_t numberOfElementsToProcess);
63
+ void multiply(
64
+ const float *inputVector1,
65
+ const float *inputVector2,
66
+ float *outputVector,
67
+ size_t numberOfElementsToProcess);
44
68
 
45
69
  // Finds the maximum magnitude of a float vector.
46
70
  float maximumMagnitude(const float *inputVector, size_t numberOfElementsToProcess);
47
71
 
48
- void linearToDecibels(const float *inputVector, float *outputVector, size_t numberOfElementsToProcess);
72
+ void linearToDecibels(
73
+ const float *inputVector,
74
+ float *outputVector,
75
+ size_t numberOfElementsToProcess);
49
76
 
50
77
  } // namespace audioapi::dsp
@@ -1,12 +1,10 @@
1
1
  #include <audioapi/core/utils/Constants.h>
2
2
  #include <audioapi/dsp/Windows.h>
3
+ #include <algorithm>
3
4
 
4
5
  namespace audioapi::dsp {
5
6
 
6
- void WindowFunction::forcePerfectReconstruction(
7
- float *data,
8
- int windowLength,
9
- int interval) {
7
+ void WindowFunction::forcePerfectReconstruction(float *data, int windowLength, int interval) {
10
8
  for (int i = 0; i < interval; ++i) {
11
9
  float sum2 = 0;
12
10
 
@@ -58,14 +56,11 @@ float Kaiser::bandwidthToBeta(float bandwidth, bool heuristicOptimal) {
58
56
  }
59
57
 
60
58
  void ApproximateConfinedGaussian::apply(float *data, int size) const {
61
- auto offsetScale =
62
- getGaussian(1.0f) / (getGaussian(3.0f) + getGaussian(-1.0f));
59
+ auto offsetScale = getGaussian(1.0f) / (getGaussian(3.0f) + getGaussian(-1.0f));
63
60
  auto norm = 1 / (getGaussian(1.0f) - 2 * offsetScale * getGaussian(2.0f));
64
61
  for (int i = 0; i < size; ++i) {
65
62
  auto r = static_cast<float>(2 * i + 1) / static_cast<float>(size) - 1.0f;
66
- data[i] = norm *
67
- (getGaussian(r) -
68
- offsetScale * (getGaussian(r - 2) + getGaussian(r + 2)));
63
+ data[i] = norm * (getGaussian(r) - offsetScale * (getGaussian(r - 2) + getGaussian(r + 2)));
69
64
  }
70
65
  }
71
66
 
@@ -1,7 +1,6 @@
1
1
  #pragma once
2
2
 
3
3
  #include <cmath>
4
- #include <algorithm>
5
4
 
6
5
  namespace audioapi::dsp {
7
6
 
@@ -9,7 +8,7 @@ namespace audioapi::dsp {
9
8
  // https://personalpages.hs-kempten.de/~vollratj/InEl/pdf/Window%20function%20-%20Wikipedia.pdf
10
9
  class WindowFunction {
11
10
  public:
12
- explicit WindowFunction(float amplitude = 1.0f): amplitude_(amplitude) {}
11
+ explicit WindowFunction(float amplitude = 1.0f) : amplitude_(amplitude) {}
13
12
 
14
13
  virtual void apply(float *data, int size) const = 0;
15
14
  // forces STFT perfect-reconstruction (WOLA) on an existing window, for a given STFT interval.
@@ -23,29 +22,30 @@ class WindowFunction {
23
22
  //https://en.wikipedia.org/wiki/Hann_function
24
23
  // https://www.sciencedirect.com/topics/engineering/hanning-window
25
24
  // https://docs.scipy.org/doc//scipy-1.2.3/reference/generated/scipy.signal.windows.hann.html#scipy.signal.windows.hann
26
- class Hann: public WindowFunction {
25
+ class Hann : public WindowFunction {
27
26
  public:
28
- explicit Hann(float amplitude = 1.0f): WindowFunction(amplitude) {}
27
+ explicit Hann(float amplitude = 1.0f) : WindowFunction(amplitude) {}
29
28
 
30
29
  void apply(float *data, int size) const override;
31
30
  };
32
31
 
33
32
  // https://www.sciencedirect.com/topics/engineering/blackman-window
34
33
  // https://docs.scipy.org/doc//scipy-1.2.3/reference/generated/scipy.signal.windows.blackman.html#scipy.signal.windows.blackman
35
- class Blackman: public WindowFunction {
34
+ class Blackman : public WindowFunction {
36
35
  public:
37
- explicit Blackman(float amplitude = 1.0f): WindowFunction(amplitude) {}
36
+ explicit Blackman(float amplitude = 1.0f) : WindowFunction(amplitude) {}
38
37
 
39
38
  void apply(float *data, int size) const override;
40
39
  };
41
40
 
42
-
43
41
  // https://en.wikipedia.org/wiki/Kaiser_window
44
- class Kaiser: public WindowFunction {
42
+ class Kaiser : public WindowFunction {
45
43
  public:
46
- explicit Kaiser(float beta, float amplitude = 1.0f): WindowFunction(amplitude), beta_(beta), invB0_(1.0f / bessel0(beta)) {}
44
+ explicit Kaiser(float beta, float amplitude = 1.0f)
45
+ : WindowFunction(amplitude), beta_(beta), invB0_(1.0f / bessel0(beta)) {}
47
46
 
48
- static Kaiser withBandwidth(float bandwidth, bool heuristicOptimal = false, float amplitude = 1.0f) {
47
+ static Kaiser
48
+ withBandwidth(float bandwidth, bool heuristicOptimal = false, float amplitude = 1.0f) {
49
49
  return Kaiser(bandwidthToBeta(bandwidth, heuristicOptimal), amplitude);
50
50
  }
51
51
 
@@ -59,25 +59,26 @@ class Kaiser: public WindowFunction {
59
59
 
60
60
  // https://en.wikipedia.org/wiki/Bessel_function#Modified_Bessel_functions:_I%CE%B1,_K%CE%B1
61
61
  static inline float bessel0(float x) {
62
- const double significanceLimit = 1e-4;
63
- auto result = 0.0f;
64
- auto term = 1.0f;
65
- auto m = 1.0f;
66
- while (term > significanceLimit) {
67
- result += term;
68
- ++m;
69
- term *= (x * x) / (4 * m * m);
70
- }
71
-
72
- return result;
62
+ const double significanceLimit = 1e-4;
63
+ auto result = 0.0f;
64
+ auto term = 1.0f;
65
+ auto m = 1.0f;
66
+ while (term > significanceLimit) {
67
+ result += term;
68
+ ++m;
69
+ term *= (x * x) / (4 * m * m);
70
+ }
71
+
72
+ return result;
73
73
  }
74
74
  static float bandwidthToBeta(float bandwidth, bool heuristicOptimal = false);
75
75
  };
76
76
 
77
77
  // https://www.recordingblogs.com/wiki/gaussian-window
78
- class ApproximateConfinedGaussian: public WindowFunction {
78
+ class ApproximateConfinedGaussian : public WindowFunction {
79
79
  public:
80
- explicit ApproximateConfinedGaussian(float sigma, float amplitude = 1.0f): WindowFunction(amplitude), gaussianFactor_(0.0625f/(sigma*sigma)) {}
80
+ explicit ApproximateConfinedGaussian(float sigma, float amplitude = 1.0f)
81
+ : WindowFunction(amplitude), gaussianFactor_(0.0625f / (sigma * sigma)) {}
81
82
 
82
83
  static ApproximateConfinedGaussian withBandwidth(float bandwidth, float amplitude = 1.0f) {
83
84
  return ApproximateConfinedGaussian(bandwidthToSigma(bandwidth), amplitude);
@@ -1,5 +1,8 @@
1
1
  #include <audioapi/HostObjects/sources/AudioBufferHostObject.h>
2
2
  #include <audioapi/events/AudioEventHandlerRegistry.h>
3
+ #include <memory>
4
+ #include <string>
5
+ #include <unordered_map>
3
6
 
4
7
  namespace audioapi {
5
8
 
@@ -100,12 +103,9 @@ void AudioEventHandlerRegistry::invokeHandlerWithEventBody(
100
103
  if (eventName.compare("audioReady") == 0) {
101
104
  auto bufferIt = body.find("buffer");
102
105
  if (bufferIt != body.end()) {
103
- auto bufferHostObject =
104
- std::static_pointer_cast<AudioBufferHostObject>(
105
- std::get<std::shared_ptr<jsi::HostObject>>(
106
- bufferIt->second));
107
- eventObject =
108
- createEventObject(body, bufferHostObject->getSizeInBytes());
106
+ auto bufferHostObject = std::static_pointer_cast<AudioBufferHostObject>(
107
+ std::get<std::shared_ptr<jsi::HostObject>>(bufferIt->second));
108
+ eventObject = createEventObject(body, bufferHostObject->getSizeInBytes());
109
109
  }
110
110
  } else {
111
111
  eventObject = createEventObject(body);
@@ -117,8 +117,7 @@ void AudioEventHandlerRegistry::invokeHandlerWithEventBody(
117
117
  throw;
118
118
  } catch (...) {
119
119
  printf(
120
- "Unknown exception occurred while invoking handler for event: %s\n",
121
- eventName.c_str());
120
+ "Unknown exception occurred while invoking handler for event: %s\n", eventName.c_str());
122
121
  }
123
122
  }
124
123
  });
@@ -168,11 +167,9 @@ void AudioEventHandlerRegistry::invokeHandlerWithEventBody(
168
167
  if (eventName.compare("audioReady") == 0) {
169
168
  auto bufferIt = body.find("buffer");
170
169
  if (bufferIt != body.end()) {
171
- auto bufferHostObject =
172
- std::static_pointer_cast<AudioBufferHostObject>(
173
- std::get<std::shared_ptr<jsi::HostObject>>(bufferIt->second));
174
- eventObject =
175
- createEventObject(body, bufferHostObject->getSizeInBytes());
170
+ auto bufferHostObject = std::static_pointer_cast<AudioBufferHostObject>(
171
+ std::get<std::shared_ptr<jsi::HostObject>>(bufferIt->second));
172
+ eventObject = createEventObject(body, bufferHostObject->getSizeInBytes());
176
173
  }
177
174
  } else {
178
175
  eventObject = createEventObject(body);
@@ -184,8 +181,7 @@ void AudioEventHandlerRegistry::invokeHandlerWithEventBody(
184
181
  throw;
185
182
  } catch (...) {
186
183
  printf(
187
- "Unknown exception occurred while invoking handler for event: %s\n",
188
- eventName.c_str());
184
+ "Unknown exception occurred while invoking handler for event: %s\n", eventName.c_str());
189
185
  }
190
186
  });
191
187
  }
@@ -208,8 +204,7 @@ jsi::Object AudioEventHandlerRegistry::createEventObject(
208
204
  eventObject.setProperty(*runtime_, name, std::get<bool>(value));
209
205
  } else if (std::holds_alternative<std::string>(value)) {
210
206
  eventObject.setProperty(*runtime_, name, std::get<std::string>(value));
211
- } else if (std::holds_alternative<std::shared_ptr<jsi::HostObject>>(
212
- value)) {
207
+ } else if (std::holds_alternative<std::shared_ptr<jsi::HostObject>>(value)) {
213
208
  auto hostObject = jsi::Object::createFromHostObject(
214
209
  *runtime_, std::get<std::shared_ptr<jsi::HostObject>>(value));
215
210
  eventObject.setProperty(*runtime_, name, hostObject);
@@ -1,69 +1,74 @@
1
1
  #pragma once
2
2
 
3
- #include <jsi/jsi.h>
4
3
  #include <ReactCommon/CallInvoker.h>
5
4
  #include <audioapi/events/IAudioEventHandlerRegistry.h>
6
- #include <memory>
7
- #include <unordered_map>
5
+ #include <jsi/jsi.h>
8
6
  #include <array>
7
+ #include <atomic>
8
+ #include <memory>
9
9
  #include <string>
10
+ #include <unordered_map>
10
11
  #include <variant>
11
- #include <atomic>
12
12
 
13
13
  namespace audioapi {
14
14
  using namespace facebook;
15
15
 
16
- using EventValue = std::variant<int, float, double, std::string, bool, std::shared_ptr<jsi::HostObject>>;
16
+ using EventValue =
17
+ std::variant<int, float, double, std::string, bool, std::shared_ptr<jsi::HostObject>>;
17
18
 
18
19
  class AudioEventHandlerRegistry : public IAudioEventHandlerRegistry {
19
20
  public:
20
21
  explicit AudioEventHandlerRegistry(
21
22
  jsi::Runtime *runtime,
22
23
  const std::shared_ptr<react::CallInvoker> &callInvoker);
23
- ~AudioEventHandlerRegistry();
24
+ ~AudioEventHandlerRegistry() override;
24
25
 
25
- uint64_t registerHandler(const std::string &eventName, const std::shared_ptr<jsi::Function> &handler) override;
26
+ uint64_t registerHandler(
27
+ const std::string &eventName,
28
+ const std::shared_ptr<jsi::Function> &handler) override;
26
29
  void unregisterHandler(const std::string &eventName, uint64_t listenerId) override;
27
30
 
28
- void invokeHandlerWithEventBody(const std::string &eventName, const std::unordered_map<std::string, EventValue> &body) override;
29
- void invokeHandlerWithEventBody(const std::string &eventName, uint64_t listenerId, const std::unordered_map<std::string, EventValue> &body) override;
31
+ void invokeHandlerWithEventBody(
32
+ const std::string &eventName,
33
+ const std::unordered_map<std::string, EventValue> &body) override;
34
+ void invokeHandlerWithEventBody(
35
+ const std::string &eventName,
36
+ uint64_t listenerId,
37
+ const std::unordered_map<std::string, EventValue> &body) override;
30
38
 
31
39
  private:
32
- std::atomic<uint64_t> listenerIdCounter_{1}; // Atomic counter for listener IDs
40
+ std::atomic<uint64_t> listenerIdCounter_{1}; // Atomic counter for listener IDs
33
41
 
34
- std::shared_ptr<react::CallInvoker> callInvoker_;
35
- jsi::Runtime *runtime_;
36
- std::unordered_map<std::string, std::unordered_map<uint64_t, std::shared_ptr<jsi::Function>>> eventHandlers_;
42
+ std::shared_ptr<react::CallInvoker> callInvoker_;
43
+ jsi::Runtime *runtime_;
44
+ std::unordered_map<std::string, std::unordered_map<uint64_t, std::shared_ptr<jsi::Function>>>
45
+ eventHandlers_;
37
46
 
38
- static constexpr std::array<std::string_view, 15> SYSTEM_EVENT_NAMES = {
39
- "remotePlay",
40
- "remotePause",
41
- "remoteStop",
42
- "remoteTogglePlayPause",
43
- "remoteChangePlaybackRate",
44
- "remoteNextTrack",
45
- "remotePreviousTrack",
46
- "remoteSkipForward",
47
- "remoteSkipBackward",
48
- "remoteSeekForward",
49
- "remoteSeekBackward",
50
- "remoteChangePlaybackPosition",
51
- "routeChange",
52
- "interruption",
53
- "volumeChange",
54
- };
47
+ static constexpr std::array<std::string_view, 15> SYSTEM_EVENT_NAMES = {
48
+ "remotePlay",
49
+ "remotePause",
50
+ "remoteStop",
51
+ "remoteTogglePlayPause",
52
+ "remoteChangePlaybackRate",
53
+ "remoteNextTrack",
54
+ "remotePreviousTrack",
55
+ "remoteSkipForward",
56
+ "remoteSkipBackward",
57
+ "remoteSeekForward",
58
+ "remoteSeekBackward",
59
+ "remoteChangePlaybackPosition",
60
+ "routeChange",
61
+ "interruption",
62
+ "volumeChange",
63
+ };
55
64
 
56
- static constexpr std::array<std::string_view, 6> AUDIO_API_EVENT_NAMES = {
57
- "ended",
58
- "loopEnded",
59
- "audioReady",
60
- "positionChanged",
61
- "audioError",
62
- "systemStateChanged"
63
- };
65
+ static constexpr std::array<std::string_view, 6> AUDIO_API_EVENT_NAMES =
66
+ {"ended", "loopEnded", "audioReady", "positionChanged", "audioError", "systemStateChanged"};
64
67
 
65
- jsi::Object createEventObject(const std::unordered_map<std::string, EventValue> &body);
66
- jsi::Object createEventObject(const std::unordered_map<std::string, EventValue> &body, size_t memoryPressure);
68
+ jsi::Object createEventObject(const std::unordered_map<std::string, EventValue> &body);
69
+ jsi::Object createEventObject(
70
+ const std::unordered_map<std::string, EventValue> &body,
71
+ size_t memoryPressure);
67
72
  };
68
73
 
69
74
  } // namespace audioapi
@@ -1,25 +1,33 @@
1
1
  #pragma once
2
2
 
3
- #include <jsi/jsi.h>
4
3
  #include <ReactCommon/CallInvoker.h>
4
+ #include <jsi/jsi.h>
5
+ #include <memory>
6
+ #include <string>
5
7
  #include <unordered_map>
6
8
  #include <variant>
7
- #include <string>
8
- #include <memory>
9
9
 
10
10
  namespace audioapi {
11
11
 
12
- using EventValue = std::variant<int, float, double, std::string, bool, std::shared_ptr<facebook::jsi::HostObject>>;
12
+ using EventValue =
13
+ std::variant<int, float, double, std::string, bool, std::shared_ptr<facebook::jsi::HostObject>>;
13
14
 
14
15
  class IAudioEventHandlerRegistry {
15
16
  public:
16
17
  virtual ~IAudioEventHandlerRegistry() = default;
17
18
 
18
- virtual uint64_t registerHandler(const std::string &eventName, const std::shared_ptr<facebook::jsi::Function> &handler) = 0;
19
+ virtual uint64_t registerHandler(
20
+ const std::string &eventName,
21
+ const std::shared_ptr<facebook::jsi::Function> &handler) = 0;
19
22
  virtual void unregisterHandler(const std::string &eventName, uint64_t listenerId) = 0;
20
23
 
21
- virtual void invokeHandlerWithEventBody(const std::string &eventName, const std::unordered_map<std::string, EventValue> &body) = 0;
22
- virtual void invokeHandlerWithEventBody(const std::string &eventName, uint64_t listenerId, const std::unordered_map<std::string, EventValue> &body) = 0;
24
+ virtual void invokeHandlerWithEventBody(
25
+ const std::string &eventName,
26
+ const std::unordered_map<std::string, EventValue> &body) = 0;
27
+ virtual void invokeHandlerWithEventBody(
28
+ const std::string &eventName,
29
+ uint64_t listenerId,
30
+ const std::unordered_map<std::string, EventValue> &body) = 0;
23
31
  };
24
32
 
25
33
  } // namespace audioapi
@@ -225,7 +225,7 @@ typedef struct RcOverride{
225
225
  #define AV_CODEC_FLAG_QPEL (1 << 4)
226
226
  /**
227
227
  * Request the encoder to output reconstructed frames, i.e.\ frames that would
228
- * be produced by decoding the encoded bistream. These frames may be retrieved
228
+ * be produced by decoding the encoded bitstream. These frames may be retrieved
229
229
  * by calling avcodec_receive_frame() immediately after a successful call to
230
230
  * avcodec_receive_packet().
231
231
  *
@@ -436,7 +436,7 @@ typedef struct AVCodecContext {
436
436
  const AVClass *av_class;
437
437
  int log_level_offset;
438
438
 
439
- enum AVMediaTypeFFMPEG codec_type; /* see AVMEDIA_TYPE_xxx */
439
+ enum AVMediaTypeFFmpeg codec_type; /* see AVMEDIA_TYPE_xxx */
440
440
  const struct AVCodec *codec;
441
441
  enum AVCodecID codec_id; /* see AV_CODEC_ID_xxx */
442
442
 
@@ -1946,7 +1946,7 @@ typedef struct AVHWAccel {
1946
1946
  *
1947
1947
  * See AVMEDIA_TYPE_xxx
1948
1948
  */
1949
- enum AVMediaTypeFFMPEG type;
1949
+ enum AVMediaTypeFFmpeg type;
1950
1950
 
1951
1951
  /**
1952
1952
  * Codec implemented by the hardware accelerator.
@@ -2900,7 +2900,7 @@ int avcodec_fill_audio_frame(AVFrame *frame, int nb_channels,
2900
2900
  *
2901
2901
  * @note for encoders, this function will only do something if the encoder
2902
2902
  * declares support for AV_CODEC_CAP_ENCODER_FLUSH. When called, the encoder
2903
- * will drain any remaining packets, and can then be re-used for a different
2903
+ * will drain any remaining packets, and can then be reused for a different
2904
2904
  * stream (as opposed to sending a null frame which will leave the encoder
2905
2905
  * in a permanent EOF state after draining). This can be desirable if the
2906
2906
  * cost of tearing down and replacing the encoder instance is high.
@@ -182,7 +182,7 @@ typedef struct AVCodec {
182
182
  * You should use the NULL_IF_CONFIG_SMALL() macro to define it.
183
183
  */
184
184
  const char *long_name;
185
- enum AVMediaTypeFFMPEG type;
185
+ enum AVMediaTypeFFmpeg type;
186
186
  enum AVCodecID id;
187
187
  /**
188
188
  * Codec capabilities.
@@ -37,7 +37,7 @@
37
37
  */
38
38
  typedef struct AVCodecDescriptor {
39
39
  enum AVCodecID id;
40
- enum AVMediaTypeFFMPEG type;
40
+ enum AVMediaTypeFFmpeg type;
41
41
  /**
42
42
  * Name of the codec described by this descriptor. It is non-empty and
43
43
  * unique for each codec descriptor. It should contain alphanumeric
@@ -330,6 +330,7 @@ enum AVCodecID {
330
330
  AV_CODEC_ID_RV60,
331
331
  AV_CODEC_ID_JPEGXL_ANIM,
332
332
  AV_CODEC_ID_APV,
333
+ AV_CODEC_ID_PRORES_RAW,
333
334
 
334
335
  /* various PCM "codecs" */
335
336
  AV_CODEC_ID_FIRST_AUDIO = 0x10000, ///< A dummy id pointing at the start of audio codecs
@@ -602,6 +603,7 @@ enum AVCodecID {
602
603
  AV_CODEC_ID_BIN_DATA,
603
604
  AV_CODEC_ID_SMPTE_2038,
604
605
  AV_CODEC_ID_LCEVC,
606
+ AV_CODEC_ID_SMPTE_436M_ANC,
605
607
 
606
608
 
607
609
  AV_CODEC_ID_PROBE = 0x19000, ///< codec_id is not known (like AV_CODEC_ID_NONE) but lavf should attempt to identify it
@@ -627,7 +629,7 @@ enum AVCodecID {
627
629
  /**
628
630
  * Get the type of the given codec.
629
631
  */
630
- enum AVMediaTypeFFMPEG avcodec_get_type(enum AVCodecID codec_id);
632
+ enum AVMediaTypeFFmpeg avcodec_get_type(enum AVCodecID codec_id);
631
633
 
632
634
  /**
633
635
  * Get the name of a codec.
@@ -48,7 +48,7 @@ typedef struct AVCodecParameters {
48
48
  /**
49
49
  * General type of the encoded data.
50
50
  */
51
- enum AVMediaTypeFFMPEG codec_type;
51
+ enum AVMediaTypeFFmpeg codec_type;
52
52
  /**
53
53
  * Specific type of the encoded data (the codec used).
54
54
  */
@@ -148,7 +148,7 @@ typedef struct AVCodecParameters {
148
148
  * durations. Should be set to { 0, 1 } when some frames have differing
149
149
  * durations or if the value is not known.
150
150
  *
151
- * @note This field correponds to values that are stored in codec-level
151
+ * @note This field corresponds to values that are stored in codec-level
152
152
  * headers and is typically overridden by container/transport-layer
153
153
  * timestamps, when available. It should thus be used only as a last resort,
154
154
  * when no higher-level timing information is available.