react-native-audio-api 0.8.0-nightly-5a12f24-20250901 → 0.8.0

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 (225) hide show
  1. package/RNAudioAPI.podspec +15 -6
  2. package/android/build.gradle +11 -2
  3. package/android/src/main/cpp/audioapi/CMakeLists.txt +24 -17
  4. package/android/src/main/cpp/audioapi/android/core/AudioDecoder.cpp +51 -21
  5. package/android/src/main/jniLibs/arm64-v8a/libavcodec.so +0 -0
  6. package/android/src/main/jniLibs/arm64-v8a/libavformat.so +0 -0
  7. package/android/src/main/jniLibs/arm64-v8a/libavutil.so +0 -0
  8. package/android/src/main/jniLibs/arm64-v8a/libswresample.so +0 -0
  9. package/android/src/main/jniLibs/armeabi-v7a/libavcodec.so +0 -0
  10. package/android/src/main/jniLibs/armeabi-v7a/libavformat.so +0 -0
  11. package/android/src/main/jniLibs/armeabi-v7a/libavutil.so +0 -0
  12. package/android/src/main/jniLibs/armeabi-v7a/libswresample.so +0 -0
  13. package/android/src/main/jniLibs/x86/libavcodec.so +0 -0
  14. package/android/src/main/jniLibs/x86/libavformat.so +0 -0
  15. package/android/src/main/jniLibs/x86/libavutil.so +0 -0
  16. package/android/src/main/jniLibs/x86/libswresample.so +0 -0
  17. package/android/src/main/jniLibs/x86_64/libavcodec.so +0 -0
  18. package/android/src/main/jniLibs/x86_64/libavformat.so +0 -0
  19. package/android/src/main/jniLibs/x86_64/libavutil.so +0 -0
  20. package/android/src/main/jniLibs/x86_64/libswresample.so +0 -0
  21. package/common/cpp/audioapi/HostObjects/BaseAudioContextHostObject.h +11 -0
  22. package/common/cpp/audioapi/HostObjects/StreamerNodeHostObject.h +30 -0
  23. package/common/cpp/audioapi/core/BaseAudioContext.cpp +9 -0
  24. package/common/cpp/audioapi/core/BaseAudioContext.h +2 -0
  25. package/common/cpp/audioapi/core/sources/StreamerNode.cpp +299 -0
  26. package/common/cpp/audioapi/core/sources/StreamerNode.h +123 -0
  27. package/common/cpp/audioapi/core/utils/AudioDecoder.h +61 -0
  28. package/common/cpp/audioapi/core/utils/AudioNodeManager.cpp +14 -2
  29. package/common/cpp/audioapi/core/utils/AudioNodeManager.h +3 -0
  30. package/common/cpp/audioapi/external/arm64-v8a/libcrypto.a +0 -0
  31. package/common/cpp/audioapi/external/arm64-v8a/libssl.a +0 -0
  32. package/common/cpp/audioapi/external/armeabi-v7a/libcrypto.a +0 -0
  33. package/common/cpp/audioapi/external/armeabi-v7a/libssl.a +0 -0
  34. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/ac3_parser.h +36 -0
  35. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/adts_parser.h +37 -0
  36. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/avcodec.h +2947 -0
  37. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/avdct.h +88 -0
  38. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/bsf.h +332 -0
  39. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/codec.h +367 -0
  40. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/codec_desc.h +134 -0
  41. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/codec_id.h +681 -0
  42. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/codec_par.h +248 -0
  43. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/d3d11va.h +109 -0
  44. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/defs.h +359 -0
  45. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/dirac.h +135 -0
  46. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/dv_profile.h +82 -0
  47. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/dxva2.h +90 -0
  48. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/jni.h +67 -0
  49. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/mediacodec.h +103 -0
  50. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/packet.h +907 -0
  51. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/qsv.h +109 -0
  52. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/vdpau.h +138 -0
  53. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/version.h +45 -0
  54. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/version_major.h +55 -0
  55. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/videotoolbox.h +85 -0
  56. package/common/cpp/audioapi/external/ffmpeg_include/libavcodec/vorbis_parser.h +74 -0
  57. package/common/cpp/audioapi/external/ffmpeg_include/libavformat/avformat.h +3004 -0
  58. package/common/cpp/audioapi/external/ffmpeg_include/libavformat/avio.h +831 -0
  59. package/common/cpp/audioapi/external/ffmpeg_include/libavformat/version.h +47 -0
  60. package/common/cpp/audioapi/external/ffmpeg_include/libavformat/version_major.h +50 -0
  61. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/adler32.h +63 -0
  62. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/aes.h +69 -0
  63. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/aes_ctr.h +99 -0
  64. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/ambient_viewing_environment.h +72 -0
  65. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/attributes.h +175 -0
  66. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/audio_fifo.h +187 -0
  67. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/avassert.h +120 -0
  68. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/avconfig.h +6 -0
  69. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/avstring.h +428 -0
  70. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/avutil.h +364 -0
  71. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/base64.h +72 -0
  72. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/blowfish.h +82 -0
  73. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/bprint.h +254 -0
  74. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/bswap.h +105 -0
  75. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/buffer.h +322 -0
  76. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/camellia.h +70 -0
  77. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/cast5.h +80 -0
  78. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/channel_layout.h +762 -0
  79. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/common.h +589 -0
  80. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/container_fifo.h +130 -0
  81. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/cpu.h +150 -0
  82. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/crc.h +102 -0
  83. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/csp.h +192 -0
  84. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/des.h +81 -0
  85. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/detection_bbox.h +108 -0
  86. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/dict.h +242 -0
  87. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/display.h +109 -0
  88. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/dovi_meta.h +396 -0
  89. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/downmix_info.h +115 -0
  90. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/encryption_info.h +205 -0
  91. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/error.h +129 -0
  92. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/eval.h +140 -0
  93. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/executor.h +67 -0
  94. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/ffversion.h +5 -0
  95. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/fifo.h +242 -0
  96. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/file.h +62 -0
  97. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/film_grain_params.h +282 -0
  98. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/frame.h +1163 -0
  99. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hash.h +264 -0
  100. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hdr_dynamic_metadata.h +376 -0
  101. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hdr_dynamic_vivid_metadata.h +292 -0
  102. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hmac.h +99 -0
  103. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext.h +601 -0
  104. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_amf.h +46 -0
  105. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_cuda.h +74 -0
  106. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_d3d11va.h +178 -0
  107. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_d3d12va.h +142 -0
  108. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_drm.h +169 -0
  109. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_dxva2.h +75 -0
  110. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_mediacodec.h +61 -0
  111. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_oh.h +34 -0
  112. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_opencl.h +100 -0
  113. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_qsv.h +87 -0
  114. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_vaapi.h +117 -0
  115. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_vdpau.h +44 -0
  116. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_videotoolbox.h +106 -0
  117. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/hwcontext_vulkan.h +377 -0
  118. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/iamf.h +694 -0
  119. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/imgutils.h +377 -0
  120. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/intfloat.h +77 -0
  121. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/intreadwrite.h +677 -0
  122. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/lfg.h +81 -0
  123. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/log.h +427 -0
  124. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/lzo.h +66 -0
  125. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/macros.h +80 -0
  126. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/mastering_display_metadata.h +137 -0
  127. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/mathematics.h +300 -0
  128. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/md5.h +89 -0
  129. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/mem.h +607 -0
  130. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/motion_vector.h +57 -0
  131. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/murmur3.h +115 -0
  132. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/opt.h +1194 -0
  133. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/parseutils.h +197 -0
  134. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/pixdesc.h +440 -0
  135. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/pixelutils.h +51 -0
  136. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/pixfmt.h +797 -0
  137. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/random_seed.h +57 -0
  138. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/rational.h +225 -0
  139. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/rc4.h +69 -0
  140. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/refstruct.h +297 -0
  141. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/replaygain.h +50 -0
  142. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/ripemd.h +83 -0
  143. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/samplefmt.h +269 -0
  144. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/sha.h +90 -0
  145. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/sha512.h +92 -0
  146. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/spherical.h +243 -0
  147. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/stereo3d.h +325 -0
  148. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/tdrdi.h +164 -0
  149. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/tea.h +71 -0
  150. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/threadmessage.h +115 -0
  151. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/timecode.h +199 -0
  152. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/timestamp.h +85 -0
  153. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/tree.h +137 -0
  154. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/twofish.h +70 -0
  155. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/tx.h +210 -0
  156. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/uuid.h +146 -0
  157. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/version.h +119 -0
  158. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/video_enc_params.h +171 -0
  159. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/video_hint.h +107 -0
  160. package/common/cpp/audioapi/external/ffmpeg_include/libavutil/xtea.h +94 -0
  161. package/common/cpp/audioapi/external/ffmpeg_include/libswresample/swresample.h +587 -0
  162. package/common/cpp/audioapi/external/ffmpeg_include/libswresample/version.h +46 -0
  163. package/common/cpp/audioapi/external/ffmpeg_include/libswresample/version_major.h +31 -0
  164. package/common/cpp/audioapi/external/libavcodec.xcframework/Info.plist +44 -0
  165. package/common/cpp/audioapi/external/libavcodec.xcframework/ios-arm64/libavcodec.framework/Info.plist +1 -0
  166. package/common/cpp/audioapi/external/libavcodec.xcframework/ios-arm64/libavcodec.framework/libavcodec +0 -0
  167. package/common/cpp/audioapi/external/libavcodec.xcframework/ios-arm64_x86_64-simulator/libavcodec.framework/Info.plist +1 -0
  168. package/common/cpp/audioapi/external/libavcodec.xcframework/ios-arm64_x86_64-simulator/libavcodec.framework/libavcodec +0 -0
  169. package/common/cpp/audioapi/external/libavformat.xcframework/Info.plist +44 -0
  170. package/common/cpp/audioapi/external/libavformat.xcframework/ios-arm64/libavformat.framework/Info.plist +1 -0
  171. package/common/cpp/audioapi/external/libavformat.xcframework/ios-arm64/libavformat.framework/libavformat +0 -0
  172. package/common/cpp/audioapi/external/libavformat.xcframework/ios-arm64_x86_64-simulator/libavformat.framework/Info.plist +1 -0
  173. package/common/cpp/audioapi/external/libavformat.xcframework/ios-arm64_x86_64-simulator/libavformat.framework/libavformat +0 -0
  174. package/common/cpp/audioapi/external/libavutil.xcframework/Info.plist +44 -0
  175. package/common/cpp/audioapi/external/libavutil.xcframework/ios-arm64/libavutil.framework/Info.plist +1 -0
  176. package/common/cpp/audioapi/external/libavutil.xcframework/ios-arm64/libavutil.framework/libavutil +0 -0
  177. package/common/cpp/audioapi/external/libavutil.xcframework/ios-arm64_x86_64-simulator/libavutil.framework/Info.plist +1 -0
  178. package/common/cpp/audioapi/external/libavutil.xcframework/ios-arm64_x86_64-simulator/libavutil.framework/libavutil +0 -0
  179. package/common/cpp/audioapi/external/libswresample.xcframework/Info.plist +44 -0
  180. package/common/cpp/audioapi/external/libswresample.xcframework/ios-arm64/libswresample.framework/Info.plist +1 -0
  181. package/common/cpp/audioapi/external/libswresample.xcframework/ios-arm64/libswresample.framework/libswresample +0 -0
  182. package/common/cpp/audioapi/external/libswresample.xcframework/ios-arm64_x86_64-simulator/libswresample.framework/Info.plist +1 -0
  183. package/common/cpp/audioapi/external/libswresample.xcframework/ios-arm64_x86_64-simulator/libswresample.framework/libswresample +0 -0
  184. package/common/cpp/audioapi/external/x86/libcrypto.a +0 -0
  185. package/common/cpp/audioapi/external/x86/libssl.a +0 -0
  186. package/common/cpp/audioapi/external/x86_64/libcrypto.a +0 -0
  187. package/common/cpp/audioapi/external/x86_64/libssl.a +0 -0
  188. package/common/cpp/audioapi/libs/ffmpeg/FFmpegDecoding.cpp +402 -0
  189. package/common/cpp/audioapi/libs/ffmpeg/FFmpegDecoding.h +27 -0
  190. package/common/cpp/audioapi/libs/ffmpeg/INSTRUCTIONS.md +26 -0
  191. package/common/cpp/audioapi/libs/ffmpeg/create_xcframework.sh +111 -0
  192. package/common/cpp/audioapi/libs/ffmpeg/ffmpeg_setup.sh +361 -0
  193. package/common/cpp/audioapi/utils/SpscChannel.hpp +47 -38
  194. package/common/cpp/test/CMakeLists.txt +7 -1
  195. package/ios/audioapi/ios/core/AudioDecoder.mm +22 -2
  196. package/lib/commonjs/api.js +7 -0
  197. package/lib/commonjs/api.js.map +1 -1
  198. package/lib/commonjs/core/AudioContext.js.map +1 -1
  199. package/lib/commonjs/core/BaseAudioContext.js +4 -0
  200. package/lib/commonjs/core/BaseAudioContext.js.map +1 -1
  201. package/lib/commonjs/core/StreamerNode.js +15 -0
  202. package/lib/commonjs/core/StreamerNode.js.map +1 -0
  203. package/lib/module/api.js +1 -0
  204. package/lib/module/api.js.map +1 -1
  205. package/lib/module/core/AudioContext.js.map +1 -1
  206. package/lib/module/core/BaseAudioContext.js +4 -0
  207. package/lib/module/core/BaseAudioContext.js.map +1 -1
  208. package/lib/module/core/StreamerNode.js +9 -0
  209. package/lib/module/core/StreamerNode.js.map +1 -0
  210. package/lib/typescript/api.d.ts +1 -0
  211. package/lib/typescript/api.d.ts.map +1 -1
  212. package/lib/typescript/core/AudioContext.d.ts +1 -1
  213. package/lib/typescript/core/AudioContext.d.ts.map +1 -1
  214. package/lib/typescript/core/BaseAudioContext.d.ts +2 -0
  215. package/lib/typescript/core/BaseAudioContext.d.ts.map +1 -1
  216. package/lib/typescript/core/StreamerNode.d.ts +5 -0
  217. package/lib/typescript/core/StreamerNode.d.ts.map +1 -0
  218. package/lib/typescript/interfaces.d.ts +5 -1
  219. package/lib/typescript/interfaces.d.ts.map +1 -1
  220. package/package.json +1 -1
  221. package/src/api.ts +1 -0
  222. package/src/core/AudioContext.ts +1 -1
  223. package/src/core/BaseAudioContext.ts +5 -0
  224. package/src/core/StreamerNode.ts +8 -0
  225. package/src/interfaces.ts +6 -1
@@ -0,0 +1,364 @@
1
+ /*
2
+ * copyright (c) 2006 Michael Niedermayer <michaelni@gmx.at>
3
+ *
4
+ * This file is part of FFmpeg.
5
+ *
6
+ * FFmpeg is free software; you can redistribute it and/or
7
+ * modify it under the terms of the GNU Lesser General Public
8
+ * License as published by the Free Software Foundation; either
9
+ * version 2.1 of the License, or (at your option) any later version.
10
+ *
11
+ * FFmpeg is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
+ * Lesser General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Lesser General Public
17
+ * License along with FFmpeg; if not, write to the Free Software
18
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19
+ */
20
+
21
+ #ifndef AVUTIL_AVUTIL_H
22
+ #define AVUTIL_AVUTIL_H
23
+
24
+ /**
25
+ * @file
26
+ * @ingroup lavu
27
+ * Convenience header that includes @ref lavu "libavutil"'s core.
28
+ */
29
+
30
+ /**
31
+ * @mainpage
32
+ *
33
+ * @section ffmpeg_intro Introduction
34
+ *
35
+ * This document describes the usage of the different libraries
36
+ * provided by FFmpeg.
37
+ *
38
+ * @li @ref libavc "libavcodec" encoding/decoding library
39
+ * @li @ref lavfi "libavfilter" graph-based frame editing library
40
+ * @li @ref libavf "libavformat" I/O and muxing/demuxing library
41
+ * @li @ref lavd "libavdevice" special devices muxing/demuxing library
42
+ * @li @ref lavu "libavutil" common utility library
43
+ * @li @ref lswr "libswresample" audio resampling, format conversion and mixing
44
+ * @li @ref libsws "libswscale" color conversion and scaling library
45
+ *
46
+ * @section ffmpeg_versioning Versioning and compatibility
47
+ *
48
+ * Each of the FFmpeg libraries contains a version.h header, which defines a
49
+ * major, minor and micro version number with the
50
+ * <em>LIBRARYNAME_VERSION_{MAJOR,MINOR,MICRO}</em> macros. The major version
51
+ * number is incremented with backward incompatible changes - e.g. removing
52
+ * parts of the public API, reordering public struct members, etc. The minor
53
+ * version number is incremented for backward compatible API changes or major
54
+ * new features - e.g. adding a new public function or a new decoder. The micro
55
+ * version number is incremented for smaller changes that a calling program
56
+ * might still want to check for - e.g. changing behavior in a previously
57
+ * unspecified situation.
58
+ *
59
+ * FFmpeg guarantees backward API and ABI compatibility for each library as long
60
+ * as its major version number is unchanged. This means that no public symbols
61
+ * will be removed or renamed. Types and names of the public struct members and
62
+ * values of public macros and enums will remain the same (unless they were
63
+ * explicitly declared as not part of the public API). Documented behavior will
64
+ * not change.
65
+ *
66
+ * In other words, any correct program that works with a given FFmpeg snapshot
67
+ * should work just as well without any changes with any later snapshot with the
68
+ * same major versions. This applies to both rebuilding the program against new
69
+ * FFmpeg versions or to replacing the dynamic FFmpeg libraries that a program
70
+ * links against.
71
+ *
72
+ * However, new public symbols may be added and new members may be appended to
73
+ * public structs whose size is not part of public ABI (most public structs in
74
+ * FFmpeg). New macros and enum values may be added. Behavior in undocumented
75
+ * situations may change slightly (and be documented). All those are accompanied
76
+ * by an entry in doc/APIchanges and incrementing either the minor or micro
77
+ * version number.
78
+ */
79
+
80
+ /**
81
+ * @defgroup lavu libavutil
82
+ * Common code shared across all FFmpeg libraries.
83
+ *
84
+ * @note
85
+ * libavutil is designed to be modular. In most cases, in order to use the
86
+ * functions provided by one component of libavutil you must explicitly include
87
+ * the specific header containing that feature. If you are only using
88
+ * media-related components, you could simply include libavutil/avutil.h, which
89
+ * brings in most of the "core" components.
90
+ *
91
+ * @{
92
+ *
93
+ * @defgroup lavu_crypto Crypto and Hashing
94
+ *
95
+ * @{
96
+ * @}
97
+ *
98
+ * @defgroup lavu_math Mathematics
99
+ * @{
100
+ *
101
+ * @}
102
+ *
103
+ * @defgroup lavu_string String Manipulation
104
+ *
105
+ * @{
106
+ *
107
+ * @}
108
+ *
109
+ * @defgroup lavu_mem Memory Management
110
+ *
111
+ * @{
112
+ *
113
+ * @}
114
+ *
115
+ * @defgroup lavu_data Data Structures
116
+ * @{
117
+ *
118
+ * @}
119
+ *
120
+ * @defgroup lavu_video Video related
121
+ *
122
+ * @{
123
+ *
124
+ * @}
125
+ *
126
+ * @defgroup lavu_audio Audio related
127
+ *
128
+ * @{
129
+ *
130
+ * @}
131
+ *
132
+ * @defgroup lavu_error Error Codes
133
+ *
134
+ * @{
135
+ *
136
+ * @}
137
+ *
138
+ * @defgroup lavu_log Logging Facility
139
+ *
140
+ * @{
141
+ *
142
+ * @}
143
+ *
144
+ * @defgroup lavu_misc Other
145
+ *
146
+ * @{
147
+ *
148
+ * @defgroup preproc_misc Preprocessor String Macros
149
+ *
150
+ * @{
151
+ *
152
+ * @}
153
+ *
154
+ * @defgroup version_utils Library Version Macros
155
+ *
156
+ * @{
157
+ *
158
+ * @}
159
+ */
160
+
161
+
162
+ /**
163
+ * @addtogroup lavu_ver
164
+ * @{
165
+ */
166
+
167
+ /**
168
+ * Return the LIBAVUTIL_VERSION_INT constant.
169
+ */
170
+ unsigned avutil_version(void);
171
+
172
+ /**
173
+ * Return an informative version string. This usually is the actual release
174
+ * version number or a git commit description. This string has no fixed format
175
+ * and can change any time. It should never be parsed by code.
176
+ */
177
+ const char *av_version_info(void);
178
+
179
+ /**
180
+ * Return the libavutil build-time configuration.
181
+ */
182
+ const char *avutil_configuration(void);
183
+
184
+ /**
185
+ * Return the libavutil license.
186
+ */
187
+ const char *avutil_license(void);
188
+
189
+ /**
190
+ * @}
191
+ */
192
+
193
+ /**
194
+ * @addtogroup lavu_media Media Type
195
+ * @brief Media Type
196
+ */
197
+
198
+ enum AVMediaTypeFFmpeg {
199
+ AVMEDIA_TYPE_UNKNOWN = -1, ///< Usually treated as AVMEDIA_TYPE_DATA
200
+ AVMEDIA_TYPE_VIDEO,
201
+ AVMEDIA_TYPE_AUDIO,
202
+ AVMEDIA_TYPE_DATA, ///< Opaque data information usually continuous
203
+ AVMEDIA_TYPE_SUBTITLE,
204
+ AVMEDIA_TYPE_ATTACHMENT, ///< Opaque data information usually sparse
205
+ AVMEDIA_TYPE_NB
206
+ };
207
+
208
+ /**
209
+ * Return a string describing the media_type enum, NULL if media_type
210
+ * is unknown.
211
+ */
212
+ const char *av_get_media_type_string(enum AVMediaTypeFFmpeg media_type);
213
+
214
+ /**
215
+ * @defgroup lavu_const Constants
216
+ * @{
217
+ *
218
+ * @defgroup lavu_enc Encoding specific
219
+ *
220
+ * @note those definition should move to avcodec
221
+ * @{
222
+ */
223
+
224
+ #define FF_LAMBDA_SHIFT 7
225
+ #define FF_LAMBDA_SCALE (1<<FF_LAMBDA_SHIFT)
226
+ #define FF_QP2LAMBDA 118 ///< factor to convert from H.263 QP to lambda
227
+ #define FF_LAMBDA_MAX (256*128-1)
228
+
229
+ #define FF_QUALITY_SCALE FF_LAMBDA_SCALE //FIXME maybe remove
230
+
231
+ /**
232
+ * @}
233
+ * @defgroup lavu_time Timestamp specific
234
+ *
235
+ * FFmpeg internal timebase and timestamp definitions
236
+ *
237
+ * @{
238
+ */
239
+
240
+ /**
241
+ * @brief Undefined timestamp value
242
+ *
243
+ * Usually reported by demuxer that work on containers that do not provide
244
+ * either pts or dts.
245
+ */
246
+
247
+ #define AV_NOPTS_VALUE ((int64_t)UINT64_C(0x8000000000000000))
248
+
249
+ /**
250
+ * Internal time base represented as integer
251
+ */
252
+
253
+ #define AV_TIME_BASE 1000000
254
+
255
+ /**
256
+ * Internal time base represented as fractional value
257
+ */
258
+
259
+ #ifdef __cplusplus
260
+ /* ISO C++ forbids compound-literals. */
261
+ #define AV_TIME_BASE_Q av_make_q(1, AV_TIME_BASE)
262
+ #else
263
+ #define AV_TIME_BASE_Q (AVRational){1, AV_TIME_BASE}
264
+ #endif
265
+
266
+ /**
267
+ * @}
268
+ * @}
269
+ * @defgroup lavu_picture Image related
270
+ *
271
+ * AVPicture types, pixel formats and basic image planes manipulation.
272
+ *
273
+ * @{
274
+ */
275
+
276
+ enum AVPictureType {
277
+ AV_PICTURE_TYPE_NONE = 0, ///< Undefined
278
+ AV_PICTURE_TYPE_I, ///< Intra
279
+ AV_PICTURE_TYPE_P, ///< Predicted
280
+ AV_PICTURE_TYPE_B, ///< Bi-dir predicted
281
+ AV_PICTURE_TYPE_S, ///< S(GMC)-VOP MPEG-4
282
+ AV_PICTURE_TYPE_SI, ///< Switching Intra
283
+ AV_PICTURE_TYPE_SP, ///< Switching Predicted
284
+ AV_PICTURE_TYPE_BI, ///< BI type
285
+ };
286
+
287
+ /**
288
+ * Return a single letter to describe the given picture type
289
+ * pict_type.
290
+ *
291
+ * @param[in] pict_type the picture type @return a single character
292
+ * representing the picture type, '?' if pict_type is unknown
293
+ */
294
+ char av_get_picture_type_char(enum AVPictureType pict_type);
295
+
296
+ /**
297
+ * @}
298
+ */
299
+
300
+ #include "common.h"
301
+ #include "rational.h"
302
+ #include "version.h"
303
+ #include "macros.h"
304
+ #include "mathematics.h"
305
+ #include "log.h"
306
+ #include "pixfmt.h"
307
+
308
+ /**
309
+ * Return x default pointer in case p is NULL.
310
+ */
311
+ static inline void *av_x_if_null(const void *p, const void *x)
312
+ {
313
+ return (void *)(intptr_t)(p ? p : x);
314
+ }
315
+
316
+ #if FF_API_OPT_INT_LIST
317
+ /**
318
+ * Compute the length of an integer list.
319
+ *
320
+ * @param elsize size in bytes of each list element (only 1, 2, 4 or 8)
321
+ * @param term list terminator (usually 0 or -1)
322
+ * @param list pointer to the list
323
+ * @return length of the list, in elements, not counting the terminator
324
+ */
325
+ attribute_deprecated
326
+ unsigned av_int_list_length_for_size(unsigned elsize,
327
+ const void *list, uint64_t term) av_pure;
328
+
329
+ /**
330
+ * Compute the length of an integer list.
331
+ *
332
+ * @param term list terminator (usually 0 or -1)
333
+ * @param list pointer to the list
334
+ * @return length of the list, in elements, not counting the terminator
335
+ */
336
+ #define av_int_list_length(list, term) \
337
+ av_int_list_length_for_size(sizeof(*(list)), list, term)
338
+ #endif
339
+
340
+ /**
341
+ * Return the fractional representation of the internal time base.
342
+ */
343
+ AVRational av_get_time_base_q(void);
344
+
345
+ #define AV_FOURCC_MAX_STRING_SIZE 32
346
+
347
+ #define av_fourcc2str(fourcc) av_fourcc_make_string((char[AV_FOURCC_MAX_STRING_SIZE]){0}, fourcc)
348
+
349
+ /**
350
+ * Fill the provided buffer with a string containing a FourCC (four-character
351
+ * code) representation.
352
+ *
353
+ * @param buf a buffer with size in bytes of at least AV_FOURCC_MAX_STRING_SIZE
354
+ * @param fourcc the fourcc to represent
355
+ * @return the buffer in input
356
+ */
357
+ char *av_fourcc_make_string(char *buf, uint32_t fourcc);
358
+
359
+ /**
360
+ * @}
361
+ * @}
362
+ */
363
+
364
+ #endif /* AVUTIL_AVUTIL_H */
@@ -0,0 +1,72 @@
1
+ /*
2
+ * Copyright (c) 2006 Ryan Martell. (rdm4@martellventures.com)
3
+ *
4
+ * This file is part of FFmpeg.
5
+ *
6
+ * FFmpeg is free software; you can redistribute it and/or
7
+ * modify it under the terms of the GNU Lesser General Public
8
+ * License as published by the Free Software Foundation; either
9
+ * version 2.1 of the License, or (at your option) any later version.
10
+ *
11
+ * FFmpeg is distributed in the hope that it will be useful,
12
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14
+ * Lesser General Public License for more details.
15
+ *
16
+ * You should have received a copy of the GNU Lesser General Public
17
+ * License along with FFmpeg; if not, write to the Free Software
18
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
19
+ */
20
+
21
+ #ifndef AVUTIL_BASE64_H
22
+ #define AVUTIL_BASE64_H
23
+
24
+ #include <stdint.h>
25
+
26
+ /**
27
+ * @defgroup lavu_base64 Base64
28
+ * @ingroup lavu_crypto
29
+ * @{
30
+ */
31
+
32
+ /**
33
+ * Decode a base64-encoded string.
34
+ *
35
+ * @param out buffer for decoded data
36
+ * @param in null-terminated input string
37
+ * @param out_size size in bytes of the out buffer, must be at
38
+ * least 3/4 of the length of in, that is AV_BASE64_DECODE_SIZE(strlen(in))
39
+ * @return number of bytes written, or a negative value in case of
40
+ * invalid input
41
+ */
42
+ int av_base64_decode(uint8_t *out, const char *in, int out_size);
43
+
44
+ /**
45
+ * Calculate the output size in bytes needed to decode a base64 string
46
+ * with length x to a data buffer.
47
+ */
48
+ #define AV_BASE64_DECODE_SIZE(x) ((x) * 3LL / 4)
49
+
50
+ /**
51
+ * Encode data to base64 and null-terminate.
52
+ *
53
+ * @param out buffer for encoded data
54
+ * @param out_size size in bytes of the out buffer (including the
55
+ * null terminator), must be at least AV_BASE64_SIZE(in_size)
56
+ * @param in input buffer containing the data to encode
57
+ * @param in_size size in bytes of the in buffer
58
+ * @return out or NULL in case of error
59
+ */
60
+ char *av_base64_encode(char *out, int out_size, const uint8_t *in, int in_size);
61
+
62
+ /**
63
+ * Calculate the output size needed to base64-encode x bytes to a
64
+ * null-terminated string.
65
+ */
66
+ #define AV_BASE64_SIZE(x) (((x)+2) / 3 * 4 + 1)
67
+
68
+ /**
69
+ * @}
70
+ */
71
+
72
+ #endif /* AVUTIL_BASE64_H */
@@ -0,0 +1,82 @@
1
+ /*
2
+ * Blowfish algorithm
3
+ * Copyright (c) 2012 Samuel Pitoiset
4
+ *
5
+ * This file is part of FFmpeg.
6
+ *
7
+ * FFmpeg is free software; you can redistribute it and/or
8
+ * modify it under the terms of the GNU Lesser General Public
9
+ * License as published by the Free Software Foundation; either
10
+ * version 2.1 of the License, or (at your option) any later version.
11
+ *
12
+ * FFmpeg is distributed in the hope that it will be useful,
13
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
14
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15
+ * Lesser General Public License for more details.
16
+ *
17
+ * You should have received a copy of the GNU Lesser General Public
18
+ * License along with FFmpeg; if not, write to the Free Software
19
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20
+ */
21
+
22
+ #ifndef AVUTIL_BLOWFISH_H
23
+ #define AVUTIL_BLOWFISH_H
24
+
25
+ #include <stdint.h>
26
+
27
+ /**
28
+ * @defgroup lavu_blowfish Blowfish
29
+ * @ingroup lavu_crypto
30
+ * @{
31
+ */
32
+
33
+ #define AV_BF_ROUNDS 16
34
+
35
+ typedef struct AVBlowfish {
36
+ uint32_t p[AV_BF_ROUNDS + 2];
37
+ uint32_t s[4][256];
38
+ } AVBlowfish;
39
+
40
+ /**
41
+ * Allocate an AVBlowfish context.
42
+ */
43
+ AVBlowfish *av_blowfish_alloc(void);
44
+
45
+ /**
46
+ * Initialize an AVBlowfish context.
47
+ *
48
+ * @param ctx an AVBlowfish context
49
+ * @param key a key
50
+ * @param key_len length of the key
51
+ */
52
+ void av_blowfish_init(struct AVBlowfish *ctx, const uint8_t *key, int key_len);
53
+
54
+ /**
55
+ * Encrypt or decrypt a buffer using a previously initialized context.
56
+ *
57
+ * @param ctx an AVBlowfish context
58
+ * @param xl left four bytes halves of input to be encrypted
59
+ * @param xr right four bytes halves of input to be encrypted
60
+ * @param decrypt 0 for encryption, 1 for decryption
61
+ */
62
+ void av_blowfish_crypt_ecb(struct AVBlowfish *ctx, uint32_t *xl, uint32_t *xr,
63
+ int decrypt);
64
+
65
+ /**
66
+ * Encrypt or decrypt a buffer using a previously initialized context.
67
+ *
68
+ * @param ctx an AVBlowfish context
69
+ * @param dst destination array, can be equal to src
70
+ * @param src source array, can be equal to dst
71
+ * @param count number of 8 byte blocks
72
+ * @param iv initialization vector for CBC mode, if NULL ECB will be used
73
+ * @param decrypt 0 for encryption, 1 for decryption
74
+ */
75
+ void av_blowfish_crypt(struct AVBlowfish *ctx, uint8_t *dst, const uint8_t *src,
76
+ int count, uint8_t *iv, int decrypt);
77
+
78
+ /**
79
+ * @}
80
+ */
81
+
82
+ #endif /* AVUTIL_BLOWFISH_H */