react-native-alpha-video 0.0.0-stage → 1.0.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 (283) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +903 -2
  3. package/THIRD_PARTY_NOTICES.md +30 -0
  4. package/android/av1/build.gradle +67 -0
  5. package/android/av1/consumer-rules.pro +4 -0
  6. package/android/av1/src/main/cpp/Av1Codec_jni.cpp +8 -0
  7. package/android/av1/src/main/cpp/CMakeLists.txt +34 -0
  8. package/android/av1/src/main/java/dev/mediacache/alphavideo/av1/Av1Codec.java +21 -0
  9. package/android/build.gradle +85 -0
  10. package/android/consumer-rules.pro +2 -0
  11. package/android/gradle.properties +1 -0
  12. package/android/publish.gradle +82 -0
  13. package/android/settings.gradle +5 -0
  14. package/android/src/main/AndroidManifest.xml +1 -0
  15. package/android/src/main/cpp/CMakeLists.txt +59 -0
  16. package/android/src/main/java/dev/mediacache/alphavideo/AlphaVideoCodecs.java +73 -0
  17. package/android/src/main/java/dev/mediacache/alphavideo/AlphaVideoView.java +1966 -0
  18. package/android/src/main/java/dev/mediacache/alphavideo/BufferedDualStreamPlayer.java +978 -0
  19. package/android/src/main/java/dev/mediacache/alphavideo/Fetcher.java +37 -0
  20. package/android/src/main/java/dev/mediacache/alphavideo/HttpFetcher.java +156 -0
  21. package/android/src/main/java/dev/mediacache/alphavideo/MediaCodecColor.java +47 -0
  22. package/android/src/main/java/dev/mediacache/alphavideo/MediaCodecDecoders.java +135 -0
  23. package/android/src/main/java/dev/mediacache/alphavideo/RangeSourceLink.java +54 -0
  24. package/android/src/main/java/dev/mediacache/alphavideo/SourceReader.java +174 -0
  25. package/android/src/main/java/dev/mediacache/alphavideo/SurfaceTextureVideoDecoder.java +802 -0
  26. package/android/src/main/java/dev/mediacache/alphavideo/WebMAlphaPlayerNative.java +95 -0
  27. package/android/src/main/java/dev/mediacache/alphavideo/WebMFrame.java +54 -0
  28. package/android/src/main/java/dev/mediacache/alphavideo/WebMSource.java +160 -0
  29. package/android/src/rangesource/java/dev/mediacache/alphavideo/AppDataSource.java +50 -0
  30. package/android/vpx/build.gradle +67 -0
  31. package/android/vpx/consumer-rules.pro +4 -0
  32. package/android/vpx/src/main/cpp/CMakeLists.txt +34 -0
  33. package/android/vpx/src/main/cpp/VpxCodec_jni.cpp +8 -0
  34. package/android/vpx/src/main/java/dev/mediacache/alphavideo/vpx/VpxCodec.java +21 -0
  35. package/codecs/av1/Dav1dDecoderPlugin.cpp +157 -0
  36. package/codecs/av1/Dav1dDecoderPlugin.h +17 -0
  37. package/codecs/vpx/VpxDecoderPlugin.cpp +103 -0
  38. package/codecs/vpx/VpxDecoderPlugin.h +17 -0
  39. package/cpp/AlphaDemuxer.cpp +984 -0
  40. package/cpp/AlphaDemuxer.h +123 -0
  41. package/cpp/AlphaVideoDecoderPlugin.h +84 -0
  42. package/cpp/Av1SequenceHeader.cpp +175 -0
  43. package/cpp/Av1SequenceHeader.h +25 -0
  44. package/cpp/ByteSource.cpp +116 -0
  45. package/cpp/ByteSource.h +59 -0
  46. package/cpp/RangeSourceClient.h +40 -0
  47. package/cpp/VideoDecoder.cpp +157 -0
  48. package/cpp/VideoDecoder.h +83 -0
  49. package/cpp/WebMAlphaPlayer.cpp +1666 -0
  50. package/cpp/WebMAlphaPlayer.h +389 -0
  51. package/cpp/WebMAlphaPlayer_jni.cpp +1380 -0
  52. package/cpp/YuvToRgb.cpp +39 -0
  53. package/cpp/YuvToRgb.h +40 -0
  54. package/ios/Sources/AlphaVideo/AlphaVideoCodecs.mm +63 -0
  55. package/ios/Sources/AlphaVideo/AlphaVideoInternal.h +70 -0
  56. package/ios/Sources/AlphaVideo/AlphaVideoPlayer.mm +994 -0
  57. package/ios/Sources/AlphaVideo/AlphaVideoSource.mm +476 -0
  58. package/ios/Sources/AlphaVideo/AlphaVideoView.mm +374 -0
  59. package/ios/Sources/AlphaVideo/include/AlphaVideo.h +303 -0
  60. package/ios/Sources/AlphaVideoAV1/AlphaVideoAV1Codec.mm +16 -0
  61. package/ios/Sources/AlphaVideoAV1/include/AlphaVideoAV1.h +18 -0
  62. package/ios/Sources/AlphaVideoVPX/AlphaVideoVPXCodec.mm +16 -0
  63. package/ios/Sources/AlphaVideoVPX/include/AlphaVideoVPX.h +17 -0
  64. package/lib/commonjs/AlphaVideoView.js +187 -0
  65. package/lib/commonjs/AlphaVideoView.js.map +1 -0
  66. package/lib/commonjs/AlphaVideoViewNativeComponent.js +47 -0
  67. package/lib/commonjs/AlphaVideoViewNativeComponent.js.map +1 -0
  68. package/lib/commonjs/AlphaVideoViewNativeComponent.web.js +11 -0
  69. package/lib/commonjs/AlphaVideoViewNativeComponent.web.js.map +1 -0
  70. package/lib/commonjs/NativeAlphaVideoModule.js +10 -0
  71. package/lib/commonjs/NativeAlphaVideoModule.js.map +1 -0
  72. package/lib/commonjs/NativeAlphaVideoModule.web.js +9 -0
  73. package/lib/commonjs/NativeAlphaVideoModule.web.js.map +1 -0
  74. package/lib/commonjs/WebPlayer.js +12 -0
  75. package/lib/commonjs/WebPlayer.js.map +1 -0
  76. package/lib/commonjs/WebPlayer.web.js +92 -0
  77. package/lib/commonjs/WebPlayer.web.js.map +1 -0
  78. package/lib/commonjs/index.js +124 -0
  79. package/lib/commonjs/index.js.map +1 -0
  80. package/lib/module/AlphaVideoView.js +187 -0
  81. package/lib/module/AlphaVideoView.js.map +1 -0
  82. package/lib/module/AlphaVideoViewNativeComponent.js +47 -0
  83. package/lib/module/AlphaVideoViewNativeComponent.js.map +1 -0
  84. package/lib/module/AlphaVideoViewNativeComponent.web.js +11 -0
  85. package/lib/module/AlphaVideoViewNativeComponent.web.js.map +1 -0
  86. package/lib/module/NativeAlphaVideoModule.js +10 -0
  87. package/lib/module/NativeAlphaVideoModule.js.map +1 -0
  88. package/lib/module/NativeAlphaVideoModule.web.js +9 -0
  89. package/lib/module/NativeAlphaVideoModule.web.js.map +1 -0
  90. package/lib/module/WebPlayer.js +12 -0
  91. package/lib/module/WebPlayer.js.map +1 -0
  92. package/lib/module/WebPlayer.web.js +92 -0
  93. package/lib/module/WebPlayer.web.js.map +1 -0
  94. package/lib/module/index.js +124 -0
  95. package/lib/module/index.js.map +1 -0
  96. package/lib/typescript/react-native/src/AlphaVideoView.d.ts +189 -0
  97. package/lib/typescript/react-native/src/AlphaVideoView.d.ts.map +1 -0
  98. package/lib/typescript/react-native/src/AlphaVideoViewNativeComponent.d.ts +109 -0
  99. package/lib/typescript/react-native/src/AlphaVideoViewNativeComponent.d.ts.map +1 -0
  100. package/lib/typescript/react-native/src/AlphaVideoViewNativeComponent.web.d.ts +5 -0
  101. package/lib/typescript/react-native/src/AlphaVideoViewNativeComponent.web.d.ts.map +1 -0
  102. package/lib/typescript/react-native/src/NativeAlphaVideoModule.d.ts +21 -0
  103. package/lib/typescript/react-native/src/NativeAlphaVideoModule.d.ts.map +1 -0
  104. package/lib/typescript/react-native/src/NativeAlphaVideoModule.web.d.ts +3 -0
  105. package/lib/typescript/react-native/src/NativeAlphaVideoModule.web.d.ts.map +1 -0
  106. package/lib/typescript/react-native/src/WebPlayer.d.ts +3 -0
  107. package/lib/typescript/react-native/src/WebPlayer.d.ts.map +1 -0
  108. package/lib/typescript/react-native/src/WebPlayer.web.d.ts +9 -0
  109. package/lib/typescript/react-native/src/WebPlayer.web.d.ts.map +1 -0
  110. package/lib/typescript/react-native/src/index.d.ts +77 -0
  111. package/lib/typescript/react-native/src/index.d.ts.map +1 -0
  112. package/licenses/dav1d-COPYING.txt +23 -0
  113. package/licenses/libvpx-LICENSE.txt +31 -0
  114. package/licenses/libvpx-PATENTS.txt +23 -0
  115. package/licenses/libwebm-LICENSE.txt +30 -0
  116. package/licenses/libwebm-PATENTS.txt +23 -0
  117. package/package.json +150 -4
  118. package/prebuilt/android/arm64-v8a/lib/libdav1d.a +0 -0
  119. package/prebuilt/android/arm64-v8a/lib/libvpx.a +0 -0
  120. package/prebuilt/android/armeabi-v7a/lib/libdav1d.a +0 -0
  121. package/prebuilt/android/armeabi-v7a/lib/libvpx.a +0 -0
  122. package/prebuilt/android/x86_64/lib/libdav1d.a +0 -0
  123. package/prebuilt/android/x86_64/lib/libvpx.a +0 -0
  124. package/prebuilt/include/dav1d/common.h +94 -0
  125. package/prebuilt/include/dav1d/data.h +117 -0
  126. package/prebuilt/include/dav1d/dav1d.h +329 -0
  127. package/prebuilt/include/dav1d/headers.h +440 -0
  128. package/prebuilt/include/dav1d/picture.h +157 -0
  129. package/prebuilt/include/dav1d/version.h +50 -0
  130. package/prebuilt/include/vpx/vp8.h +136 -0
  131. package/prebuilt/include/vpx/vp8dx.h +228 -0
  132. package/prebuilt/include/vpx/vpx_codec.h +475 -0
  133. package/prebuilt/include/vpx/vpx_decoder.h +365 -0
  134. package/prebuilt/include/vpx/vpx_frame_buffer.h +83 -0
  135. package/prebuilt/include/vpx/vpx_image.h +209 -0
  136. package/prebuilt/include/vpx/vpx_integer.h +40 -0
  137. package/prebuilt/ios/lib/libdav1d.a +0 -0
  138. package/prebuilt/ios/lib/libvpx.a +0 -0
  139. package/prebuilt/ios-simulator/include/dav1d/common.h +94 -0
  140. package/prebuilt/ios-simulator/include/dav1d/data.h +117 -0
  141. package/prebuilt/ios-simulator/include/dav1d/dav1d.h +329 -0
  142. package/prebuilt/ios-simulator/include/dav1d/headers.h +440 -0
  143. package/prebuilt/ios-simulator/include/dav1d/picture.h +157 -0
  144. package/prebuilt/ios-simulator/include/dav1d/version.h +50 -0
  145. package/prebuilt/ios-simulator/include/vpx/vp8.h +136 -0
  146. package/prebuilt/ios-simulator/include/vpx/vp8dx.h +228 -0
  147. package/prebuilt/ios-simulator/include/vpx/vpx_codec.h +475 -0
  148. package/prebuilt/ios-simulator/include/vpx/vpx_decoder.h +365 -0
  149. package/prebuilt/ios-simulator/include/vpx/vpx_frame_buffer.h +83 -0
  150. package/prebuilt/ios-simulator/include/vpx/vpx_image.h +209 -0
  151. package/prebuilt/ios-simulator/include/vpx/vpx_integer.h +40 -0
  152. package/prebuilt/ios-simulator/lib/libdav1d.a +0 -0
  153. package/prebuilt/ios-simulator/lib/libvpx.a +0 -0
  154. package/react-native/android/CMakeLists.txt +14 -0
  155. package/react-native/android/build.gradle +110 -0
  156. package/react-native/android/src/main/AndroidManifest.xml +1 -0
  157. package/react-native/android/src/main/java/dev/mediacache/alphavideo/reactnative/AlphaVideoModule.java +102 -0
  158. package/react-native/android/src/main/java/dev/mediacache/alphavideo/reactnative/AlphaVideoPackage.java +50 -0
  159. package/react-native/android/src/main/java/dev/mediacache/alphavideo/reactnative/AlphaVideoViewManager.java +317 -0
  160. package/react-native/android/src/newarch/java/dev/mediacache/alphavideo/reactnative/AlphaVideoModuleSpec.java +10 -0
  161. package/react-native/android/src/newarch/java/dev/mediacache/alphavideo/reactnative/AlphaVideoViewManagerSpec.java +23 -0
  162. package/react-native/android/src/norangesource/java/dev/mediacache/alphavideo/AppDataSource.java +15 -0
  163. package/react-native/android/src/oldarch/java/dev/mediacache/alphavideo/reactnative/AlphaVideoModuleSpec.java +30 -0
  164. package/react-native/android/src/oldarch/java/dev/mediacache/alphavideo/reactnative/AlphaVideoViewManagerSpec.java +61 -0
  165. package/react-native/ios/RNAlphaVideoViewComponentView.mm +173 -0
  166. package/react-native/ios/RNAlphaVideoViewManager.mm +147 -0
  167. package/react-native/src/AlphaVideoView.tsx +329 -0
  168. package/react-native/src/AlphaVideoViewNativeComponent.ts +132 -0
  169. package/react-native/src/AlphaVideoViewNativeComponent.web.ts +5 -0
  170. package/react-native/src/NativeAlphaVideoModule.ts +22 -0
  171. package/react-native/src/NativeAlphaVideoModule.web.ts +2 -0
  172. package/react-native/src/WebPlayer.tsx +7 -0
  173. package/react-native/src/WebPlayer.web.tsx +60 -0
  174. package/react-native/src/index.tsx +144 -0
  175. package/react-native-alpha-video.podspec +99 -0
  176. package/react-native.config.js +12 -0
  177. package/scripts/build_codecs_android.sh +246 -0
  178. package/scripts/build_codecs_ios.sh +31 -0
  179. package/scripts/build_codecs_ios_device.sh +210 -0
  180. package/scripts/build_codecs_ios_simulator.sh +256 -0
  181. package/scripts/build_wasm.sh +230 -0
  182. package/scripts/build_xcframework.sh +49 -0
  183. package/scripts/fetch-prebuilt.sh +48 -0
  184. package/scripts/package_release.sh +107 -0
  185. package/scripts/publish-android.sh +85 -0
  186. package/scripts/vendor_range_source.sh +47 -0
  187. package/third_party/libwebm/AUTHORS.TXT +5 -0
  188. package/third_party/libwebm/LICENSE.TXT +30 -0
  189. package/third_party/libwebm/PATENTS.TXT +23 -0
  190. package/third_party/libwebm/README.md +7 -0
  191. package/third_party/libwebm/webm_parser/include/webm/buffer_reader.h +138 -0
  192. package/third_party/libwebm/webm_parser/include/webm/callback.h +363 -0
  193. package/third_party/libwebm/webm_parser/include/webm/dom_types.h +1781 -0
  194. package/third_party/libwebm/webm_parser/include/webm/element.h +208 -0
  195. package/third_party/libwebm/webm_parser/include/webm/file_reader.h +103 -0
  196. package/third_party/libwebm/webm_parser/include/webm/id.h +1085 -0
  197. package/third_party/libwebm/webm_parser/include/webm/istream_reader.h +99 -0
  198. package/third_party/libwebm/webm_parser/include/webm/reader.h +94 -0
  199. package/third_party/libwebm/webm_parser/include/webm/status.h +166 -0
  200. package/third_party/libwebm/webm_parser/include/webm/webm_parser.h +133 -0
  201. package/third_party/libwebm/webm_parser/src/ancestory.cc +334 -0
  202. package/third_party/libwebm/webm_parser/src/ancestory.h +83 -0
  203. package/third_party/libwebm/webm_parser/src/audio_parser.h +84 -0
  204. package/third_party/libwebm/webm_parser/src/bit_utils.cc +26 -0
  205. package/third_party/libwebm/webm_parser/src/bit_utils.h +24 -0
  206. package/third_party/libwebm/webm_parser/src/block_additions_parser.h +30 -0
  207. package/third_party/libwebm/webm_parser/src/block_group_parser.h +71 -0
  208. package/third_party/libwebm/webm_parser/src/block_header_parser.cc +76 -0
  209. package/third_party/libwebm/webm_parser/src/block_header_parser.h +65 -0
  210. package/third_party/libwebm/webm_parser/src/block_more_parser.h +32 -0
  211. package/third_party/libwebm/webm_parser/src/block_parser.cc +285 -0
  212. package/third_party/libwebm/webm_parser/src/block_parser.h +126 -0
  213. package/third_party/libwebm/webm_parser/src/bool_parser.h +95 -0
  214. package/third_party/libwebm/webm_parser/src/buffer_reader.cc +110 -0
  215. package/third_party/libwebm/webm_parser/src/byte_parser.h +144 -0
  216. package/third_party/libwebm/webm_parser/src/callback.cc +155 -0
  217. package/third_party/libwebm/webm_parser/src/chapter_atom_parser.h +42 -0
  218. package/third_party/libwebm/webm_parser/src/chapter_display_parser.h +34 -0
  219. package/third_party/libwebm/webm_parser/src/chapters_parser.h +28 -0
  220. package/third_party/libwebm/webm_parser/src/cluster_parser.h +48 -0
  221. package/third_party/libwebm/webm_parser/src/colour_parser.h +55 -0
  222. package/third_party/libwebm/webm_parser/src/content_enc_aes_settings_parser.h +32 -0
  223. package/third_party/libwebm/webm_parser/src/content_encoding_parser.h +38 -0
  224. package/third_party/libwebm/webm_parser/src/content_encodings_parser.h +30 -0
  225. package/third_party/libwebm/webm_parser/src/content_encryption_parser.h +37 -0
  226. package/third_party/libwebm/webm_parser/src/cue_point_parser.h +38 -0
  227. package/third_party/libwebm/webm_parser/src/cue_track_positions_parser.h +39 -0
  228. package/third_party/libwebm/webm_parser/src/cues_parser.h +27 -0
  229. package/third_party/libwebm/webm_parser/src/date_parser.cc +72 -0
  230. package/third_party/libwebm/webm_parser/src/date_parser.h +64 -0
  231. package/third_party/libwebm/webm_parser/src/ebml_parser.h +48 -0
  232. package/third_party/libwebm/webm_parser/src/edition_entry_parser.h +35 -0
  233. package/third_party/libwebm/webm_parser/src/element_parser.h +102 -0
  234. package/third_party/libwebm/webm_parser/src/file_reader.cc +142 -0
  235. package/third_party/libwebm/webm_parser/src/float_parser.cc +77 -0
  236. package/third_party/libwebm/webm_parser/src/float_parser.h +65 -0
  237. package/third_party/libwebm/webm_parser/src/id_element_parser.cc +49 -0
  238. package/third_party/libwebm/webm_parser/src/id_element_parser.h +56 -0
  239. package/third_party/libwebm/webm_parser/src/id_parser.cc +75 -0
  240. package/third_party/libwebm/webm_parser/src/id_parser.h +45 -0
  241. package/third_party/libwebm/webm_parser/src/info_parser.h +44 -0
  242. package/third_party/libwebm/webm_parser/src/int_parser.h +121 -0
  243. package/third_party/libwebm/webm_parser/src/istream_reader.cc +133 -0
  244. package/third_party/libwebm/webm_parser/src/master_parser.cc +298 -0
  245. package/third_party/libwebm/webm_parser/src/master_parser.h +230 -0
  246. package/third_party/libwebm/webm_parser/src/master_value_parser.h +533 -0
  247. package/third_party/libwebm/webm_parser/src/mastering_metadata_parser.h +57 -0
  248. package/third_party/libwebm/webm_parser/src/parser.h +34 -0
  249. package/third_party/libwebm/webm_parser/src/parser_utils.cc +34 -0
  250. package/third_party/libwebm/webm_parser/src/parser_utils.h +64 -0
  251. package/third_party/libwebm/webm_parser/src/projection_parser.h +40 -0
  252. package/third_party/libwebm/webm_parser/src/recursive_parser.h +93 -0
  253. package/third_party/libwebm/webm_parser/src/seek_head_parser.h +27 -0
  254. package/third_party/libwebm/webm_parser/src/seek_parser.h +37 -0
  255. package/third_party/libwebm/webm_parser/src/segment_parser.cc +86 -0
  256. package/third_party/libwebm/webm_parser/src/segment_parser.h +53 -0
  257. package/third_party/libwebm/webm_parser/src/simple_tag_parser.h +37 -0
  258. package/third_party/libwebm/webm_parser/src/size_parser.cc +56 -0
  259. package/third_party/libwebm/webm_parser/src/size_parser.h +43 -0
  260. package/third_party/libwebm/webm_parser/src/skip_callback.h +63 -0
  261. package/third_party/libwebm/webm_parser/src/skip_parser.cc +59 -0
  262. package/third_party/libwebm/webm_parser/src/skip_parser.h +35 -0
  263. package/third_party/libwebm/webm_parser/src/slices_parser.h +30 -0
  264. package/third_party/libwebm/webm_parser/src/tag_parser.h +37 -0
  265. package/third_party/libwebm/webm_parser/src/tags_parser.h +27 -0
  266. package/third_party/libwebm/webm_parser/src/targets_parser.h +35 -0
  267. package/third_party/libwebm/webm_parser/src/time_slice_parser.h +30 -0
  268. package/third_party/libwebm/webm_parser/src/track_entry_parser.h +65 -0
  269. package/third_party/libwebm/webm_parser/src/tracks_parser.h +27 -0
  270. package/third_party/libwebm/webm_parser/src/unknown_parser.cc +49 -0
  271. package/third_party/libwebm/webm_parser/src/unknown_parser.h +38 -0
  272. package/third_party/libwebm/webm_parser/src/var_int_parser.cc +71 -0
  273. package/third_party/libwebm/webm_parser/src/var_int_parser.h +56 -0
  274. package/third_party/libwebm/webm_parser/src/video_parser.h +122 -0
  275. package/third_party/libwebm/webm_parser/src/virtual_block_parser.cc +72 -0
  276. package/third_party/libwebm/webm_parser/src/virtual_block_parser.h +69 -0
  277. package/third_party/libwebm/webm_parser/src/void_parser.cc +49 -0
  278. package/third_party/libwebm/webm_parser/src/void_parser.h +41 -0
  279. package/third_party/libwebm/webm_parser/src/webm_parser.cc +282 -0
  280. package/third_party/range-source/LICENSE +21 -0
  281. package/third_party/range-source/README.md +8 -0
  282. package/third_party/range-source/include/range_source.h +395 -0
  283. package/third_party/range-source/include/range_source_download.h +309 -0
@@ -0,0 +1,18 @@
1
+ /**
2
+ * AlphaVideoAV1.h
3
+ * The av1 codec module: dav1d, for AV1 (8- to 12-bit). Linking it is enough; AlphaVideo registers
4
+ * it itself.
5
+ */
6
+
7
+ #import <Foundation/Foundation.h>
8
+
9
+ NS_ASSUME_NONNULL_BEGIN
10
+
11
+ @interface AlphaVideoAV1Codec : NSObject
12
+
13
+ /** The module's AlphaVideoDecoderPluginList, for AlphaVideoCodecs registerPluginList:error:. */
14
+ + (const void *)pluginList;
15
+
16
+ @end
17
+
18
+ NS_ASSUME_NONNULL_END
@@ -0,0 +1,16 @@
1
+ /**
2
+ * AlphaVideoVPXCodec.mm
3
+ * The vpx codec module (libvpx: VP8, VP9) on iOS. AlphaVideoCodecs finds this class by name and
4
+ * registers its plugin list.
5
+ */
6
+
7
+ #import "AlphaVideoVPX.h"
8
+ #include "VpxDecoderPlugin.h"
9
+
10
+ @implementation AlphaVideoVPXCodec
11
+
12
+ + (const void *)pluginList {
13
+ return reinterpret_cast<const void *>(&alpha_video_vpx_plugins);
14
+ }
15
+
16
+ @end
@@ -0,0 +1,17 @@
1
+ /**
2
+ * AlphaVideoVPX.h
3
+ * The vpx codec module: libvpx, for VP8 and VP9. Linking it is enough; AlphaVideo registers it itself.
4
+ */
5
+
6
+ #import <Foundation/Foundation.h>
7
+
8
+ NS_ASSUME_NONNULL_BEGIN
9
+
10
+ @interface AlphaVideoVPXCodec : NSObject
11
+
12
+ /** The module's AlphaVideoDecoderPluginList, for AlphaVideoCodecs registerPluginList:error:. */
13
+ + (const void *)pluginList;
14
+
15
+ @end
16
+
17
+ NS_ASSUME_NONNULL_END
@@ -0,0 +1,187 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.AlphaVideoView = void 0;
7
+ exports.isUriSource = isUriSource;
8
+ var _react = _interopRequireWildcard(require("react"));
9
+ var _reactNative = require("react-native");
10
+ var _AlphaVideoViewNativeComponent = _interopRequireWildcard(require("./AlphaVideoViewNativeComponent"));
11
+ var _WebPlayer = require("./WebPlayer");
12
+ var _jsxRuntime = require("react/jsx-runtime");
13
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
14
+ /**
15
+ * The player view, split out from the package barrel.
16
+ *
17
+ * Separate from `index.tsx` so that anything built ON the player can import it without the barrel
18
+ * importing that code back. A cycle through the entry point happens to work while every reference
19
+ * is inside a render, which makes it a trap rather than a design.
20
+ */
21
+
22
+ /**
23
+ * The web engine (default `'auto'`): `'browser'` (`<video>`), `'webcodecs'`, `'webcodecs-hw'`,
24
+ * `'webcodecs-sw'` or `'software'` (WebAssembly). `'auto'` tries them in that order and uses the
25
+ * first that shows the alpha; a forced engine never falls back.
26
+ */
27
+
28
+ /**
29
+ * Source types for WebM video
30
+ */
31
+
32
+ /**
33
+ * Web only: the file itself (a Blob or File), or a byte source that reads it by offset
34
+ * (`{ size, read(offset, length, signal) }`, the app's own fetcher or decryption). Keep the same
35
+ * object between renders: a new one loads again. On iOS and Android use `source.dataSource`.
36
+ */
37
+
38
+ /** True for `{ uri, ... }`, false for a web-only Blob or byte source. */
39
+ function isUriSource(source) {
40
+ return source != null && typeof source.uri === 'string';
41
+ }
42
+
43
+ /**
44
+ * Where a URL's bytes are kept between plays, read back by range: `'disk'` (the cache folder;
45
+ * OPFS, else IndexedDB, on the web), `'memory'` (for the app's lifetime) or `'none'`. `'auto'`,
46
+ * the default, is `'disk'` for URLs and `'none'` for a `dataSource` and local files.
47
+ */
48
+
49
+ /**
50
+ * Props for the AlphaVideoView component
51
+ */
52
+ /**
53
+ * Playback mode for the WebM player.
54
+ */
55
+
56
+ /**
57
+ * Methods exposed by the AlphaVideoView ref
58
+ */
59
+
60
+ // Native component for iOS and Android, from the codegen spec: a Fabric component on the new
61
+ // architecture, a view manager on the old one.
62
+ const NativeAlphaVideoViewOrNull = _reactNative.Platform.OS !== 'web' ? _AlphaVideoViewNativeComponent.default : null;
63
+
64
+ /** `mode` wins over the deprecated `stream`. */
65
+ function resolveMode(mode, stream) {
66
+ if (mode) return mode;
67
+ if (stream == null) return undefined;
68
+ return stream ? 'stream' : 'preload';
69
+ }
70
+
71
+ /**
72
+ * Native implementation for iOS and Android
73
+ */
74
+ const NativePlayer = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
75
+ const nativeRef = (0, _react.useRef)(null);
76
+ const withView = command => {
77
+ if (nativeRef.current) command(nativeRef.current);
78
+ };
79
+ (0, _react.useImperativeHandle)(ref, () => ({
80
+ play: () => withView(view => _AlphaVideoViewNativeComponent.Commands.play(view)),
81
+ pause: () => withView(view => _AlphaVideoViewNativeComponent.Commands.pause(view)),
82
+ stop: () => withView(view => _AlphaVideoViewNativeComponent.Commands.stop(view)),
83
+ seekToFrame: frame => withView(view => _AlphaVideoViewNativeComponent.Commands.seekToFrame(view, frame)),
84
+ seekToTime: seconds => withView(view => _AlphaVideoViewNativeComponent.Commands.seekToTime(view, seconds))
85
+ }));
86
+ const uriSource = isUriSource(props.source) ? props.source : undefined;
87
+ const {
88
+ uri,
89
+ headers,
90
+ dataSource
91
+ } = uriSource ?? {};
92
+ const headersKey = headers ? JSON.stringify(headers) : '';
93
+ // Rebuilt only when a value changes, so a new source object each render doesn't reload
94
+ const nativeSource = (0, _react.useMemo)(() => ({
95
+ uri,
96
+ headers: headers ? [].concat(...Object.entries(headers)) : undefined,
97
+ dataSource
98
+ }),
99
+ // eslint-disable-next-line react-hooks/exhaustive-deps
100
+ [uri, headersKey, dataSource]);
101
+ const webOnlySource = props.source != null && !uriSource;
102
+ (0, _react.useEffect)(() => {
103
+ if (webOnlySource) {
104
+ props.onError?.({
105
+ error: 'A Blob or byte source plays only on the web; on iOS and Android, use source.dataSource'
106
+ });
107
+ }
108
+ // eslint-disable-next-line react-hooks/exhaustive-deps
109
+ }, [webOnlySource, props.source]);
110
+ if (!NativeAlphaVideoViewOrNull) {
111
+ return null;
112
+ }
113
+
114
+ // Wrap native event handlers to extract nativeEvent data
115
+ const handleNativeLoad = props.onLoad ? event => {
116
+ props.onLoad?.(event.nativeEvent);
117
+ } : undefined;
118
+ const handleNativeError = props.onError ? event => {
119
+ // The new architecture's event struct sends an absent code as ''
120
+ const {
121
+ error,
122
+ code
123
+ } = event.nativeEvent;
124
+ props.onError?.(code ? {
125
+ error,
126
+ code
127
+ } : {
128
+ error
129
+ });
130
+ } : undefined;
131
+ const handleNativeEnd = props.onEnd ? event => {
132
+ props.onEnd?.(event.nativeEvent);
133
+ } : undefined;
134
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(NativeAlphaVideoViewOrNull, {
135
+ ref: nativeRef,
136
+ source: nativeSource,
137
+ autoPlay: props.autoPlay,
138
+ loop: props.loop,
139
+ paused: props.paused,
140
+ playbackSpeed: props.playbackSpeed,
141
+ cacheKey: uriSource?.cacheKey || props.cacheKey,
142
+ storage: props.storage,
143
+ maxStorageBytes: props.maxStorageBytes,
144
+ mode: resolveMode(props.mode, props.stream),
145
+ decoder: props.decoder,
146
+ streamPrefetchAhead: props.streamPrefetchAhead,
147
+ useDecodeQueue: props.useDecodeQueue,
148
+ verbose: props.verbose,
149
+ style: props.style,
150
+ onLoad: handleNativeLoad,
151
+ onError: handleNativeError,
152
+ onEnd: handleNativeEnd
153
+ });
154
+ });
155
+ NativePlayer.displayName = 'NativePlayer';
156
+
157
+ /**
158
+ * AlphaVideoView - Cross-platform WebM VP8/VP9/AV1 video player with alpha transparency support
159
+ *
160
+ * Uses native C++ implementation with Metal (iOS) and OpenGL ES (Android) for optimal performance.
161
+ * On the web, alpha-video-web: `<video>` where the browser keeps the alpha, otherwise WebCodecs or
162
+ * WebAssembly decoding drawn in WebGL2.
163
+ *
164
+ * @example
165
+ * ```tsx
166
+ * <AlphaVideoView
167
+ * source={{ uri: 'https://example.com/video.webm' }}
168
+ * autoPlay={true}
169
+ * loop={true}
170
+ * style={{ width: 300, height: 300 }}
171
+ * />
172
+ * ```
173
+ */
174
+ const AlphaVideoView = exports.AlphaVideoView = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
175
+ if (_reactNative.Platform.OS === 'web') {
176
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_WebPlayer.WebPlayer, {
177
+ ref: ref,
178
+ ...props
179
+ });
180
+ }
181
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(NativePlayer, {
182
+ ref: ref,
183
+ ...props
184
+ });
185
+ });
186
+ AlphaVideoView.displayName = 'AlphaVideoView';
187
+ //# sourceMappingURL=AlphaVideoView.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_AlphaVideoViewNativeComponent","_WebPlayer","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","isUriSource","source","uri","NativeAlphaVideoViewOrNull","Platform","OS","NativeAlphaVideoView","resolveMode","mode","stream","undefined","NativePlayer","forwardRef","props","ref","nativeRef","useRef","withView","command","current","useImperativeHandle","play","view","Commands","pause","stop","seekToFrame","frame","seekToTime","seconds","uriSource","headers","dataSource","headersKey","JSON","stringify","nativeSource","useMemo","concat","entries","webOnlySource","useEffect","onError","error","handleNativeLoad","onLoad","event","nativeEvent","handleNativeError","code","handleNativeEnd","onEnd","jsx","autoPlay","loop","paused","playbackSpeed","cacheKey","storage","maxStorageBytes","decoder","streamPrefetchAhead","useDecodeQueue","verbose","style","displayName","AlphaVideoView","exports","WebPlayer"],"sourceRoot":"../../react-native/src","sources":["AlphaVideoView.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.Commands = void 0;
7
+ var _codegenNativeCommands = _interopRequireDefault(require("react-native/Libraries/Utilities/codegenNativeCommands"));
8
+ var _codegenNativeComponent = _interopRequireDefault(require("react-native/Libraries/Utilities/codegenNativeComponent"));
9
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
10
+ /**
11
+ * Playback mode for the WebM player.
12
+ *
13
+ * - `'stream'` (default): Decode frames on-demand with a sliding window cache.
14
+ * Best for long videos or memory-constrained devices. Frames are evicted
15
+ * from cache, so looping requires re-decoding.
16
+ *
17
+ * - `'preload'`: Decode all frames upfront before playback starts.
18
+ * Best for short loops. Zero CPU during playback, instant looping.
19
+ *
20
+ * - `'streamAndPreload'`: Start playing immediately while decoding in background.
21
+ * After first pass completes, all frames are cached for instant looping.
22
+ * Best of both worlds: fast start + smooth loops.
23
+ */
24
+
25
+ /**
26
+ * Decoder for files with colour and alpha as separate VP8/VP9/AV1 bitstreams (two tracks, or a
27
+ * standard alpha WebM's BlockAdditional). Android only; iOS always uses the C++ core and web the browser.
28
+ *
29
+ * - `'auto'` (default): MediaCodec hardware decoders that list every track's profile, else
30
+ * MediaCodec's software decoders, else the C++ core.
31
+ * - `'mediacodec'`: per track, a hardware decoder if one lists the profile and has an instance
32
+ * free, else a software one.
33
+ * - `'mediacodec-hw'` / `'mediacodec-sw'`: hardware / software decoders only, for both tracks.
34
+ * - `'software'`: the C++ core, with the codecs built in (libvpx for VP8 and 8-bit VP9, dav1d for 8- to
35
+ * 12-bit AV1).
36
+ *
37
+ * A forced engine never falls back: a file it can't play calls `onError`. One that needs a codec
38
+ * left out of the build reports the code `'NO_DECODER'`.
39
+ */
40
+
41
+ /** Android only: every frame is decoded (preload and streamAndPreload modes). */
42
+
43
+ const Commands = exports.Commands = (0, _codegenNativeCommands.default)({
44
+ supportedCommands: ['play', 'pause', 'stop', 'seekToFrame', 'seekToTime']
45
+ });
46
+ var _default = exports.default = (0, _codegenNativeComponent.default)('RNAlphaVideoView');
47
+ //# sourceMappingURL=AlphaVideoViewNativeComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_codegenNativeCommands","_interopRequireDefault","require","_codegenNativeComponent","e","__esModule","default","Commands","exports","codegenNativeCommands","supportedCommands","_default","codegenNativeComponent"],"sourceRoot":"../../react-native/src","sources":["AlphaVideoViewNativeComponent.ts"],"mappings":";;;;;;AAQA,IAAAA,sBAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAF,sBAAA,CAAAC,OAAA;AAA6F,SAAAD,uBAAAG,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE7F;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAiBA;;AAqEO,MAAMG,QAAwB,GAAAC,OAAA,CAAAD,QAAA,GAAG,IAAAE,8BAAqB,EAAiB;EAC5EC,iBAAiB,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY;AAC1E,CAAC,CAAC;AAAC,IAAAC,QAAA,GAAAH,OAAA,CAAAF,OAAA,GAEY,IAAAM,+BAAsB,EAAc,kBAAkB,CAAC","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = exports.Commands = void 0;
7
+ // The web player is a <video> element. This stub keeps the native spec's imports out of web bundles.
8
+ const noCommands = exports.Commands = {};
9
+ // React Native's Babel codegen plugin rejects `export const Commands` unless it is codegenNativeCommands.
10
+ var _default = exports.default = null;
11
+ //# sourceMappingURL=AlphaVideoViewNativeComponent.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["noCommands","exports","Commands","_default","default"],"sourceRoot":"../../react-native/src","sources":["AlphaVideoViewNativeComponent.web.ts"],"mappings":";;;;;;AAAA;AACA,MAAMA,UAAU,GAAAC,OAAA,CAAAC,QAAA,GAAG,CAAC,CAAC;AACrB;AAAA,IAAAC,QAAA,GAAAF,OAAA,CAAAG,OAAA,GAEe,IAAI","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _reactNative = require("react-native");
8
+ /** The decoder utilities. Android only: iOS has no native module, so `get` returns null there. */
9
+ var _default = exports.default = _reactNative.TurboModuleRegistry.get('RNAlphaVideo');
10
+ //# sourceMappingURL=NativeAlphaVideoModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","get"],"sourceRoot":"../../react-native/src","sources":["NativeAlphaVideoModule.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAEA;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAkBeC,gCAAmB,CAACC,GAAG,CAAO,cAAc,CAAC","ignoreList":[]}
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ // No native module on the web.
8
+ var _default = exports.default = null;
9
+ //# sourceMappingURL=NativeAlphaVideoModule.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_default","exports","default"],"sourceRoot":"../../react-native/src","sources":["NativeAlphaVideoModule.web.ts"],"mappings":";;;;;;AAAA;AAAA,IAAAA,QAAA,GAAAC,OAAA,CAAAC,OAAA,GACe,IAAI","ignoreList":[]}
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.WebPlayer = void 0;
7
+ var _react = require("react");
8
+ // iOS and Android bundles get this instead of WebPlayer.web.tsx, so they never include alpha-video-web.
9
+
10
+ const WebPlayer = exports.WebPlayer = /*#__PURE__*/(0, _react.forwardRef)(() => null);
11
+ WebPlayer.displayName = 'WebPlayer';
12
+ //# sourceMappingURL=WebPlayer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","WebPlayer","exports","forwardRef","displayName"],"sourceRoot":"../../react-native/src","sources":["WebPlayer.tsx"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AADA;;AAIO,MAAMC,SAAS,GAAAC,OAAA,CAAAD,SAAA,gBAAG,IAAAE,iBAAU,EAAyC,MAAM,IAAI,CAAC;AAEvFF,SAAS,CAACG,WAAW,GAAG,WAAW","ignoreList":[]}
@@ -0,0 +1,92 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.WebPlayer = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _reactNative = require("react-native");
9
+ var _react2 = require("alpha-video-web/react");
10
+ var _AlphaVideoView = require("./AlphaVideoView");
11
+ var _jsxRuntime = require("react/jsx-runtime");
12
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
13
+ /**
14
+ * The web player: alpha-video-web, which shows the alpha in every browser. It plays in `<video>`
15
+ * where the browser keeps WebM alpha, otherwise through WebCodecs or WebAssembly decoding drawn
16
+ * in WebGL2, loading those engines only when a file needs them.
17
+ */
18
+
19
+ /** asset://path names the app's bundled media; on the web it is served from the site root. */function toWebUrl(uri) {
20
+ return uri.startsWith('asset://') ? '/' + uri.slice('asset://'.length).replace(/^\/+/, '') : uri;
21
+ }
22
+ const WebPlayer = exports.WebPlayer = /*#__PURE__*/(0, _react.forwardRef)((props, ref) => {
23
+ const {
24
+ source,
25
+ autoPlay = true,
26
+ loop = true,
27
+ paused = false,
28
+ playbackSpeed = 1,
29
+ webDecoder = 'auto',
30
+ cacheKey
31
+ } = props;
32
+ const {
33
+ storage,
34
+ maxStorageBytes
35
+ } = props;
36
+ const {
37
+ style,
38
+ onLoad,
39
+ onError,
40
+ onEnd
41
+ } = props;
42
+ // Streamed by range from http(s) URLs and kept in the browser's storage (OPFS, else IndexedDB)
43
+ // by the canvas engines; <video> uses the HTTP cache. A Blob or byte source plays as it is.
44
+ const uriSource = (0, _AlphaVideoView.isUriSource)(source) ? source : undefined;
45
+ const src = (0, _AlphaVideoView.isUriSource)(source) ? source.uri ? toWebUrl(source.uri) : undefined : source;
46
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_reactNative.View, {
47
+ style: [styles.container, style],
48
+ children: src ? /*#__PURE__*/(0, _jsxRuntime.jsx)(_react2.AlphaVideo, {
49
+ ref: ref,
50
+ src: src,
51
+ autoPlay: autoPlay,
52
+ loop: loop,
53
+ paused: paused,
54
+ playbackSpeed: playbackSpeed,
55
+ decoder: webDecoder,
56
+ headers: uriSource?.headers,
57
+ cacheKey: uriSource?.cacheKey || cacheKey,
58
+ storage: storage === 'disk' ? 'auto' : storage,
59
+ maxStorageBytes: maxStorageBytes,
60
+ style: fill,
61
+ onLoad: ({
62
+ totalFrames,
63
+ width,
64
+ height,
65
+ decoder
66
+ }) => onLoad?.({
67
+ totalFrames,
68
+ width,
69
+ height,
70
+ decoder
71
+ }),
72
+ onError: error => onError?.({
73
+ error: error.message,
74
+ code: error.code
75
+ }),
76
+ onEnd: () => onEnd?.({})
77
+ }) : null
78
+ });
79
+ });
80
+ WebPlayer.displayName = 'WebPlayer';
81
+ const styles = _reactNative.StyleSheet.create({
82
+ container: {
83
+ overflow: 'hidden'
84
+ }
85
+ });
86
+
87
+ // A DOM style: AlphaVideo renders a <div>
88
+ const fill = {
89
+ width: '100%',
90
+ height: '100%'
91
+ };
92
+ //# sourceMappingURL=WebPlayer.web.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_react2","_AlphaVideoView","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","toWebUrl","uri","startsWith","slice","length","replace","WebPlayer","exports","forwardRef","props","ref","source","autoPlay","loop","paused","playbackSpeed","webDecoder","cacheKey","storage","maxStorageBytes","style","onLoad","onError","onEnd","uriSource","isUriSource","undefined","src","jsx","View","styles","container","children","AlphaVideo","decoder","headers","fill","totalFrames","width","height","error","message","code","displayName","StyleSheet","create","overflow"],"sourceRoot":"../../react-native/src","sources":["WebPlayer.web.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "AlphaVideoView", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _AlphaVideoView.AlphaVideoView;
10
+ }
11
+ });
12
+ exports.getActiveDecoderCount = getActiveDecoderCount;
13
+ exports.getDecoderInfo = getDecoderInfo;
14
+ exports.getDecoderStatus = getDecoderStatus;
15
+ exports.getMaxDecoderInstances = getMaxDecoderInstances;
16
+ var _reactNative = require("react-native");
17
+ var _NativeAlphaVideoModule = _interopRequireDefault(require("./NativeAlphaVideoModule"));
18
+ var _AlphaVideoView = require("./AlphaVideoView");
19
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
20
+ /**
21
+ * Package entry point.
22
+ *
23
+ * The player view itself lives in `AlphaVideoView.tsx`; this file holds the native-module
24
+ * utilities and re-exports the rest.
25
+ */
26
+
27
+ /**
28
+ * Decoder status information (Android only)
29
+ */
30
+
31
+ /**
32
+ * Native module for AlphaVideo utilities (Android only)
33
+ */
34
+ const AlphaVideoModule = _reactNative.Platform.OS === 'android' ? _NativeAlphaVideoModule.default : null;
35
+
36
+ /**
37
+ * Get detailed decoder information for all supported codecs (VP9, AV1).
38
+ * Returns a string with all decoder capabilities including max instances,
39
+ * hardware acceleration status, supported resolutions, etc.
40
+ *
41
+ * @returns Promise<string> - Detailed decoder information
42
+ * @platform android
43
+ */
44
+ async function getDecoderInfo() {
45
+ if (_reactNative.Platform.OS !== 'android') {
46
+ return 'Decoder info only available on Android';
47
+ }
48
+ if (!AlphaVideoModule) {
49
+ throw new Error('RNAlphaVideo native module not available');
50
+ }
51
+ return AlphaVideoModule.getDecoderInfo();
52
+ }
53
+
54
+ /**
55
+ * Get the maximum number of concurrent decoder instances for a codec.
56
+ * Dual-stream videos require 2 instances per player.
57
+ *
58
+ * @param mimeType - MIME type (e.g. 'video/x-vnd.on2.vp9' or 'video/av01')
59
+ * @returns Promise<number> - Max instances (-1 if unable to determine)
60
+ * @platform android
61
+ */
62
+ async function getMaxDecoderInstances(mimeType) {
63
+ if (_reactNative.Platform.OS !== 'android') {
64
+ return -1;
65
+ }
66
+ if (!AlphaVideoModule) {
67
+ throw new Error('RNAlphaVideo native module not available');
68
+ }
69
+ return AlphaVideoModule.getMaxDecoderInstances(mimeType);
70
+ }
71
+
72
+ /**
73
+ * Get the current number of active VP9 decoder instances.
74
+ *
75
+ * @returns Promise<number> - Active decoder count
76
+ * @platform android
77
+ */
78
+ async function getActiveDecoderCount() {
79
+ if (_reactNative.Platform.OS !== 'android') {
80
+ return 0;
81
+ }
82
+ if (!AlphaVideoModule) {
83
+ throw new Error('RNAlphaVideo native module not available');
84
+ }
85
+ return AlphaVideoModule.getActiveDecoderCount();
86
+ }
87
+
88
+ /**
89
+ * Get comprehensive decoder status as a structured object.
90
+ * Useful for determining if more dual-stream players can be created.
91
+ *
92
+ * @returns Promise<DecoderStatus> - Decoder status information
93
+ * @platform android
94
+ *
95
+ * @example
96
+ * ```ts
97
+ * const status = await getDecoderStatus();
98
+ * console.log(`Can create ${status.maxDualStreamPlayers} dual-stream players`);
99
+ * console.log(`Currently using ${status.activeDualStreamPlayers}`);
100
+ * if (!status.canCreateMore) {
101
+ * console.warn('At decoder limit!');
102
+ * }
103
+ * ```
104
+ */
105
+ async function getDecoderStatus() {
106
+ if (_reactNative.Platform.OS !== 'android') {
107
+ return {
108
+ maxVp9Instances: -1,
109
+ maxAv1Instances: -1,
110
+ vp9HardwareAvailable: false,
111
+ av1HardwareAvailable: false,
112
+ activeDecoders: 0,
113
+ availableVp9Slots: -1,
114
+ maxDualStreamPlayers: -1,
115
+ canCreateMore: true,
116
+ softwareDecoders: []
117
+ };
118
+ }
119
+ if (!AlphaVideoModule) {
120
+ throw new Error('RNAlphaVideo native module not available');
121
+ }
122
+ return AlphaVideoModule.getDecoderStatus();
123
+ }
124
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_NativeAlphaVideoModule","_interopRequireDefault","_AlphaVideoView","e","__esModule","default","AlphaVideoModule","Platform","OS","NativeAlphaVideoModule","getDecoderInfo","Error","getMaxDecoderInstances","mimeType","getActiveDecoderCount","getDecoderStatus","maxVp9Instances","maxAv1Instances","vp9HardwareAvailable","av1HardwareAvailable","activeDecoders","availableVp9Slots","maxDualStreamPlayers","canCreateMore","softwareDecoders"],"sourceRoot":"../../react-native/src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;AAOA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,uBAAA,GAAAC,sBAAA,CAAAF,OAAA;AA2HA,IAAAG,eAAA,GAAAH,OAAA;AAY0B,SAAAE,uBAAAE,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AA/I1B;AACA;AACA;AACA;AACA;AACA;;AAKA;AACA;AACA;;AAyBA;AACA;AACA;AACA,MAAMG,gBAAgB,GAAGC,qBAAQ,CAACC,EAAE,KAAK,SAAS,GAAGC,+BAAsB,GAAG,IAAI;;AAElF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAeC,cAAcA,CAAA,EAAoB;EACtD,IAAIH,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;IAC7B,OAAO,wCAAwC;EACjD;EACA,IAAI,CAACF,gBAAgB,EAAE;IACrB,MAAM,IAAIK,KAAK,CAAC,0CAA0C,CAAC;EAC7D;EACA,OAAOL,gBAAgB,CAACI,cAAc,CAAC,CAAC;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAeE,sBAAsBA,CAACC,QAAgB,EAAmB;EAC9E,IAAIN,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;IAC7B,OAAO,CAAC,CAAC;EACX;EACA,IAAI,CAACF,gBAAgB,EAAE;IACrB,MAAM,IAAIK,KAAK,CAAC,0CAA0C,CAAC;EAC7D;EACA,OAAOL,gBAAgB,CAACM,sBAAsB,CAACC,QAAQ,CAAC;AAC1D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,eAAeC,qBAAqBA,CAAA,EAAoB;EAC7D,IAAIP,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;IAC7B,OAAO,CAAC;EACV;EACA,IAAI,CAACF,gBAAgB,EAAE;IACrB,MAAM,IAAIK,KAAK,CAAC,0CAA0C,CAAC;EAC7D;EACA,OAAOL,gBAAgB,CAACQ,qBAAqB,CAAC,CAAC;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,eAAeC,gBAAgBA,CAAA,EAA2B;EAC/D,IAAIR,qBAAQ,CAACC,EAAE,KAAK,SAAS,EAAE;IAC7B,OAAO;MACLQ,eAAe,EAAE,CAAC,CAAC;MACnBC,eAAe,EAAE,CAAC,CAAC;MACnBC,oBAAoB,EAAE,KAAK;MAC3BC,oBAAoB,EAAE,KAAK;MAC3BC,cAAc,EAAE,CAAC;MACjBC,iBAAiB,EAAE,CAAC,CAAC;MACrBC,oBAAoB,EAAE,CAAC,CAAC;MACxBC,aAAa,EAAE,IAAI;MACnBC,gBAAgB,EAAE;IACpB,CAAC;EACH;EACA,IAAI,CAAClB,gBAAgB,EAAE;IACrB,MAAM,IAAIK,KAAK,CAAC,0CAA0C,CAAC;EAC7D;EACA,OAAOL,gBAAgB,CAACS,gBAAgB,CAAC,CAAC;AAC5C","ignoreList":[]}