react-native-alpha-video-gpu 0.0.0-stage → 1.0.1

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 (54) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +953 -2
  3. package/THIRD_PARTY_NOTICES.md +14 -0
  4. package/android/src/main/AndroidManifest.xml +9 -0
  5. package/android/src/main/cpp/CMakeLists.txt +41 -0
  6. package/android/src/main/cpp/alphavideogpu_jni.cpp +1168 -0
  7. package/android/src/main/cpp/astc_decomp.cpp +1550 -0
  8. package/android/src/main/cpp/astc_decomp.h +41 -0
  9. package/android/src/main/cpp/source_jni.cpp +242 -0
  10. package/android/src/main/cpp/source_jni.h +13 -0
  11. package/android/src/main/java/dev/mediacache/alphavideo/gpu/AlphaVideoGpuNative.java +43 -0
  12. package/android/src/main/java/dev/mediacache/alphavideo/gpu/AlphaVideoGpuReader.java +209 -0
  13. package/android/src/main/java/dev/mediacache/alphavideo/gpu/AlphaVideoGpuSource.java +328 -0
  14. package/android/src/main/java/dev/mediacache/alphavideo/gpu/AlphaVideoGpuView.java +2126 -0
  15. package/android/src/main/java/dev/mediacache/alphavideo/gpu/Fetcher.java +37 -0
  16. package/android/src/main/java/dev/mediacache/alphavideo/gpu/HttpFetcher.java +156 -0
  17. package/android/src/main/java/dev/mediacache/alphavideo/gpu/Ktx2Metadata.java +78 -0
  18. package/android/src/main/java/dev/mediacache/alphavideo/gpu/RangeSourceLink.java +54 -0
  19. package/android/src/main/java/dev/mediacache/alphavideo/gpu/ZstdSeekTable.java +120 -0
  20. package/android/src/rangesource/java/dev/mediacache/alphavideo/gpu/AppDataSource.java +50 -0
  21. package/ios/Sources/AlphaVideoGPU/AlphaVideoGpuSource.h +63 -0
  22. package/ios/Sources/AlphaVideoGPU/AlphaVideoGpuSource.mm +522 -0
  23. package/ios/Sources/AlphaVideoGPU/AlphaVideoGpuView.mm +2722 -0
  24. package/ios/Sources/AlphaVideoGPU/astc_decomp.cpp +1550 -0
  25. package/ios/Sources/AlphaVideoGPU/astc_decomp.h +41 -0
  26. package/ios/Sources/AlphaVideoGPU/include/AlphaVideoGPU.h +110 -0
  27. package/ios/Sources/AlphaVideoGPU/zstd_seek.h +250 -0
  28. package/package.json +78 -4
  29. package/react-native/android/build.gradle +95 -0
  30. package/react-native/android/src/main/AndroidManifest.xml +9 -0
  31. package/react-native/android/src/main/java/dev/mediacache/alphavideo/gpu/reactnative/AlphaVideoGpuPackage.java +26 -0
  32. package/react-native/android/src/main/java/dev/mediacache/alphavideo/gpu/reactnative/AlphaVideoGpuViewManager.java +187 -0
  33. package/react-native/android/src/main/java/dev/mediacache/alphavideo/gpu/reactnative/PlayerEventForwarder.java +107 -0
  34. package/react-native/android/src/newarch/java/dev/mediacache/alphavideo/gpu/reactnative/AlphaVideoGpuViewManagerSpec.java +23 -0
  35. package/react-native/android/src/norangesource/java/dev/mediacache/alphavideo/gpu/AppDataSource.java +15 -0
  36. package/react-native/android/src/oldarch/java/dev/mediacache/alphavideo/gpu/reactnative/AlphaVideoGpuViewManagerSpec.java +56 -0
  37. package/react-native/ios/RNAlphaVideoGpuViewComponentView.mm +176 -0
  38. package/react-native/ios/RNAlphaVideoGpuViewManager.mm +175 -0
  39. package/react-native/src/AlphaVideoGpuView.js +2 -0
  40. package/react-native/src/AlphaVideoGpuView.web.tsx +296 -0
  41. package/react-native/src/AlphaVideoGpuViewNativeComponent.ts +128 -0
  42. package/react-native/src/AlphaVideoGpuViewNativeComponent.web.ts +2 -0
  43. package/react-native/src/index.d.ts +95 -0
  44. package/react-native/src/index.js +162 -0
  45. package/react-native-alpha-video-gpu.podspec +37 -0
  46. package/react-native.config.js +12 -0
  47. package/third_party/licenses/Apache-2.0.txt +208 -0
  48. package/third_party/range-source/LICENSE +21 -0
  49. package/third_party/range-source/README.md +10 -0
  50. package/third_party/range-source/include/range_source.h +395 -0
  51. package/third_party/range-source/include/range_source_download.h +309 -0
  52. package/third_party/zstd/LICENSE +30 -0
  53. package/third_party/zstd/zstd.c +38717 -0
  54. package/third_party/zstd/zstd.h +2450 -0
@@ -0,0 +1,14 @@
1
+ # Third-party notices
2
+
3
+ The code in this repository is MIT-licensed (see `LICENSE`), apart from the components below.
4
+
5
+ | Component | Version | Licence | Where |
6
+ |---|---|---|---|
7
+ | [Zstandard](https://github.com/facebook/zstd) single-file library (`zstd.c`, `zstd.h`) | 1.4.9 | BSD-3-Clause | `third_party/zstd`, compiled into the iOS and Android libraries |
8
+ | ASTC decoder (`astc_decomp.cpp`): the Android Open Source Project's drawElements Quality Program decoder, as adapted in [Basis Universal](https://github.com/BinomialLLC/basis_universal) | from Basis Universal 1.16.4 | Apache-2.0 | `ios/Sources/AlphaVideoGPU/astc_decomp.{h,cpp}` and `android/src/main/cpp/astc_decomp.{h,cpp}`, compiled into the iOS and Android libraries, and the Android copy into the web package's WebAssembly |
9
+
10
+ Licence texts: `third_party/zstd/LICENSE` (Zstandard's BSD licence) and `third_party/licenses/Apache-2.0.txt`.
11
+
12
+ The native libraries carry the headers of [range-source](https://github.com/MediaCacheDev/range-source) (`third_party/range-source/include`): its C interface, and the basic input that downloads a URL when the add-on isn't installed. MIT-licensed, by the same author. The add-on itself is a separate package with its own `LICENSE`.
13
+
14
+ The web package, [`alpha-video-gpu-web`](web), bundles [zstddec](https://github.com/donmccurdy/zstddec); see [`web/THIRD_PARTY_NOTICES.md`](web/THIRD_PARTY_NOTICES.md).
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android">
3
+
4
+ <!-- OpenGL ES 3.0, for texture arrays and ETC2/ASTC texture compression -->
5
+ <uses-feature
6
+ android:glEsVersion="0x00030000"
7
+ android:required="true" />
8
+
9
+ </manifest>
@@ -0,0 +1,41 @@
1
+ cmake_minimum_required(VERSION 3.18.1)
2
+
3
+ project("alphavideogpu")
4
+
5
+ # range-source needs C++17
6
+ set(CMAKE_CXX_STANDARD 17)
7
+ set(CMAKE_CXX_STANDARD_REQUIRED ON)
8
+
9
+ # zstd and range-source, shared with iOS (third_party/ at the repository root): range-source's C
10
+ # interface and basic input (include). The add-on itself is dev.mediacache:range-source, its own
11
+ # library, found at run time (RangeSourceLink.java).
12
+ set(THIRD_PARTY_DIR ${CMAKE_SOURCE_DIR}/../../../../third_party)
13
+ set(RANGE_SOURCE ${THIRD_PARTY_DIR}/range-source)
14
+
15
+ add_library(zstd STATIC
16
+ ${THIRD_PARTY_DIR}/zstd/zstd.c
17
+ )
18
+
19
+ # Add native library
20
+ add_library(alphavideogpu SHARED
21
+ alphavideogpu_jni.cpp
22
+ astc_decomp.cpp
23
+ source_jni.cpp
24
+ )
25
+
26
+ target_include_directories(alphavideogpu PRIVATE
27
+ ${CMAKE_SOURCE_DIR}
28
+ ${THIRD_PARTY_DIR}
29
+ ${RANGE_SOURCE}/include
30
+ )
31
+
32
+ # Google Play requires 16 KB-aligned segments for Android 15+; NDK r27 and older link 4 KB by default.
33
+ target_link_options(alphavideogpu PRIVATE "-Wl,-z,max-page-size=16384")
34
+
35
+ target_link_libraries(alphavideogpu
36
+ zstd
37
+ EGL
38
+ GLESv3
39
+ log
40
+ android
41
+ )