react-native-skia-webgpu-video 0.0.0-stage → 0.1.0-beta.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.
- package/LICENSE +22 -0
- package/README.md +303 -2
- package/android/BUILD_VALIDATION.md +62 -0
- package/android/CMakeLists.txt +99 -0
- package/android/build-validation.json +262 -0
- package/android/build.gradle +185 -0
- package/android/cpp/EncoderTargets.cpp +226 -0
- package/android/cpp/EncoderTargets.h +70 -0
- package/android/cpp/JNIHelpers.cpp +15 -0
- package/android/cpp/JNIHelpers.h +20 -0
- package/android/cpp/NativeEventDispatcher.cpp +59 -0
- package/android/cpp/NativeEventDispatcher.h +31 -0
- package/android/cpp/NativeHardwareBuffer.cpp +397 -0
- package/android/cpp/NativeHardwareBuffer.h +34 -0
- package/android/cpp/NativeRgbaBuffer.cpp +45 -0
- package/android/cpp/NativeRgbaBuffer.h +9 -0
- package/android/cpp/ReturnedVideoFrames.h +37 -0
- package/android/cpp/RgbaFrameLease.h +53 -0
- package/android/cpp/VideoCapabilities.cpp +87 -0
- package/android/cpp/VideoCapabilities.h +44 -0
- package/android/cpp/VideoComposition.cpp +170 -0
- package/android/cpp/VideoComposition.h +36 -0
- package/android/cpp/VideoCompositionFramesExtractor.cpp +82 -0
- package/android/cpp/VideoCompositionFramesExtractor.h +48 -0
- package/android/cpp/VideoCompositionFramesExtractorHostObject.cpp +230 -0
- package/android/cpp/VideoCompositionFramesExtractorHostObject.h +42 -0
- package/android/cpp/VideoCompositionFramesExtractorSyncHostObject.cpp +133 -0
- package/android/cpp/VideoCompositionFramesExtractorSyncHostObject.h +46 -0
- package/android/cpp/VideoEncoderHostObject.cpp +318 -0
- package/android/cpp/VideoEncoderHostObject.h +76 -0
- package/android/cpp/VideoFrame.cpp +293 -0
- package/android/cpp/VideoFrame.h +27 -0
- package/android/cpp/VideoPlayer.cpp +96 -0
- package/android/cpp/VideoPlayer.h +52 -0
- package/android/cpp/VideoPlayerHostObject.cpp +225 -0
- package/android/cpp/VideoPlayerHostObject.h +43 -0
- package/android/cpp/cpp-adapter.cpp +316 -0
- package/android/gradle.properties +5 -0
- package/android/instrumentation-inventory.json +178 -0
- package/android/proguard-rules.pro +4 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/java/com/azzapp/rnskv/AudioCompositionExporter.java +537 -0
- package/android/src/main/java/com/azzapp/rnskv/AudioCompositionPlayer.java +321 -0
- package/android/src/main/java/com/azzapp/rnskv/BufferLifetime.java +55 -0
- package/android/src/main/java/com/azzapp/rnskv/DecodeRequests.java +100 -0
- package/android/src/main/java/com/azzapp/rnskv/DecoderWindow.java +55 -0
- package/android/src/main/java/com/azzapp/rnskv/DisplayVsyncPeriod.java +72 -0
- package/android/src/main/java/com/azzapp/rnskv/EGLResourcesHolder.java +132 -0
- package/android/src/main/java/com/azzapp/rnskv/EGLUtils.java +225 -0
- package/android/src/main/java/com/azzapp/rnskv/FrameSize.java +50 -0
- package/android/src/main/java/com/azzapp/rnskv/GLFrameExtractor.java +510 -0
- package/android/src/main/java/com/azzapp/rnskv/JNIHelpers.java +12 -0
- package/android/src/main/java/com/azzapp/rnskv/NativeEventDispatcher.java +25 -0
- package/android/src/main/java/com/azzapp/rnskv/NativeHardwareBuffer.java +62 -0
- package/android/src/main/java/com/azzapp/rnskv/NativeRgbaBuffer.java +43 -0
- package/android/src/main/java/com/azzapp/rnskv/ReactNativeSkiaVideoModule.java +45 -0
- package/android/src/main/java/com/azzapp/rnskv/ReactNativeSkiaVideoPackage.java +43 -0
- package/android/src/main/java/com/azzapp/rnskv/ReactNativeSkiaVideoSpec.java +9 -0
- package/android/src/main/java/com/azzapp/rnskv/RgbaBufferAllocator.java +114 -0
- package/android/src/main/java/com/azzapp/rnskv/RgbaLayout.java +33 -0
- package/android/src/main/java/com/azzapp/rnskv/SurfaceOutputPolicy.java +13 -0
- package/android/src/main/java/com/azzapp/rnskv/TextureRenderer.java +150 -0
- package/android/src/main/java/com/azzapp/rnskv/TimeHelpers.java +11 -0
- package/android/src/main/java/com/azzapp/rnskv/VideoCapabilities.java +354 -0
- package/android/src/main/java/com/azzapp/rnskv/VideoComposition.java +147 -0
- package/android/src/main/java/com/azzapp/rnskv/VideoCompositionDecoder.java +779 -0
- package/android/src/main/java/com/azzapp/rnskv/VideoCompositionFramesExtractor.java +463 -0
- package/android/src/main/java/com/azzapp/rnskv/VideoCompositionFramesExtractorSync.java +241 -0
- package/android/src/main/java/com/azzapp/rnskv/VideoCompositionItemDecoder.java +492 -0
- package/android/src/main/java/com/azzapp/rnskv/VideoEncoder.java +639 -0
- package/android/src/main/java/com/azzapp/rnskv/VideoFrame.java +74 -0
- package/android/src/main/java/com/azzapp/rnskv/VideoPlayer.java +361 -0
- package/cpp/RNSVCheckedSizes.h +54 -0
- package/cpp/RNSVEventEmitter.cpp +199 -0
- package/cpp/RNSVEventEmitter.h +31 -0
- package/cpp/RNSVHostObject.cpp +79 -0
- package/cpp/RNSVHostObject.h +67 -0
- package/cpp/RNSVMemoryBudget.cpp +68 -0
- package/cpp/RNSVMemoryBudget.h +100 -0
- package/cpp/RNSVRuntimeLifecycleMonitor.cpp +88 -0
- package/cpp/RNSVRuntimeLifecycleMonitor.h +33 -0
- package/docs/ANDROID_DEVICE_306.md +95 -0
- package/docs/ANDROID_EXPORT_CACHE_306.md +48 -0
- package/docs/ANDROID_MEMORY_RETENTION_306.md +67 -0
- package/docs/BENCHMARKS.md +368 -0
- package/docs/IOS_DEVICE_TESTS.md +115 -0
- package/docs/IOS_SIMULATOR_TESTS.md +74 -0
- package/docs/MIGRATION.md +82 -0
- package/docs/NATIVE_MEMORY_INVESTIGATION_306.md +88 -0
- package/docs/PERFORMANCE_AB_IPHONE_303.md +196 -0
- package/docs/PERFORMANCE_AB_SIMULATOR.md +135 -0
- package/docs/PERFORMANCE_AB_SOAK_SIMULATOR.md +84 -0
- package/docs/PERFORMANCE_IPHONE_306_OPTIMIZATION.md +76 -0
- package/docs/PERFORMANCE_SIMULATOR.md +89 -0
- package/docs/PERFORMANCE_SIMULATOR_INITIAL.md +96 -0
- package/docs/PERFORMANCE_SOAK_IPHONE_303.md +41 -0
- package/docs/UPSTREAM_NOTES.md +188 -0
- package/docs/assets/banner.svg +26 -0
- package/examples/webgpu-overlay.ts +147 -0
- package/ios/AVAssetTrackUtils.h +24 -0
- package/ios/AudioCompositionUtils.h +27 -0
- package/ios/AudioCompositionUtils.mm +113 -0
- package/ios/DecoderWindow.h +52 -0
- package/ios/NativeResourceStats.h +32 -0
- package/ios/RNSVColorSpace.h +50 -0
- package/ios/RNSVJSIUtils.h +46 -0
- package/ios/RNSVScopedPixelBuffer.h +17 -0
- package/ios/RNSVVideoPlayer.h +46 -0
- package/ios/RNSVVideoPlayer.mm +410 -0
- package/ios/ReactNativeSkiaVideo.h +8 -0
- package/ios/ReactNativeSkiaVideo.mm +310 -0
- package/ios/SeekPolicy.h +27 -0
- package/ios/VideoComposition.h +148 -0
- package/ios/VideoCompositionFramesExtractorHostObject.h +105 -0
- package/ios/VideoCompositionFramesExtractorHostObject.mm +686 -0
- package/ios/VideoCompositionFramesExtractorSyncHostObject.h +37 -0
- package/ios/VideoCompositionFramesExtractorSyncHostObject.mm +168 -0
- package/ios/VideoCompositionItemDecoder.h +60 -0
- package/ios/VideoCompositionItemDecoder.mm +480 -0
- package/ios/VideoEncoderHostObject.h +83 -0
- package/ios/VideoEncoderHostObject.mm +706 -0
- package/ios/VideoFrame.h +66 -0
- package/ios/VideoFrame.mm +108 -0
- package/ios/VideoPlayerHostObject.h +52 -0
- package/ios/VideoPlayerHostObject.mm +332 -0
- package/lib/module/NativeReactNativeSkiaVideo.js +5 -0
- package/lib/module/NativeReactNativeSkiaVideo.js.map +1 -0
- package/lib/module/RNSkiaVideoModule.js +20 -0
- package/lib/module/RNSkiaVideoModule.js.map +1 -0
- package/lib/module/canvas.js +18 -0
- package/lib/module/canvas.js.map +1 -0
- package/lib/module/exportCache.js +22 -0
- package/lib/module/exportCache.js.map +1 -0
- package/lib/module/exportFrames.js +338 -0
- package/lib/module/exportFrames.js.map +1 -0
- package/lib/module/exportQueue.js +52 -0
- package/lib/module/exportQueue.js.map +1 -0
- package/lib/module/exportTarget.js +137 -0
- package/lib/module/exportTarget.js.map +1 -0
- package/lib/module/exportVideoComposition.js +492 -0
- package/lib/module/exportVideoComposition.js.map +1 -0
- package/lib/module/frameInterop.js +532 -0
- package/lib/module/frameInterop.js.map +1 -0
- package/lib/module/gpu.js +222 -0
- package/lib/module/gpu.js.map +1 -0
- package/lib/module/gpuDevice.js +54 -0
- package/lib/module/gpuDevice.js.map +1 -0
- package/lib/module/index.js +36 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/memory.js +38 -0
- package/lib/module/memory.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/previewLifecycle.js +52 -0
- package/lib/module/previewLifecycle.js.map +1 -0
- package/lib/module/runtimeYield.js +10 -0
- package/lib/module/runtimeYield.js.map +1 -0
- package/lib/module/types.js +4 -0
- package/lib/module/types.js.map +1 -0
- package/lib/module/utils/useEventListener.js +18 -0
- package/lib/module/utils/useEventListener.js.map +1 -0
- package/lib/module/videoCompositionPlayer.js +368 -0
- package/lib/module/videoCompositionPlayer.js.map +1 -0
- package/lib/module/videoFrameImage.js +185 -0
- package/lib/module/videoFrameImage.js.map +1 -0
- package/lib/module/videoPlayer.js +172 -0
- package/lib/module/videoPlayer.js.map +1 -0
- package/lib/module/yuvBlit.js +299 -0
- package/lib/module/yuvBlit.js.map +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/NativeReactNativeSkiaVideo.d.ts +7 -0
- package/lib/typescript/src/NativeReactNativeSkiaVideo.d.ts.map +1 -0
- package/lib/typescript/src/RNSkiaVideoModule.d.ts +4 -0
- package/lib/typescript/src/RNSkiaVideoModule.d.ts.map +1 -0
- package/lib/typescript/src/canvas.d.ts +4 -0
- package/lib/typescript/src/canvas.d.ts.map +1 -0
- package/lib/typescript/src/exportCache.d.ts +6 -0
- package/lib/typescript/src/exportCache.d.ts.map +1 -0
- package/lib/typescript/src/exportFrames.d.ts +57 -0
- package/lib/typescript/src/exportFrames.d.ts.map +1 -0
- package/lib/typescript/src/exportQueue.d.ts +5 -0
- package/lib/typescript/src/exportQueue.d.ts.map +1 -0
- package/lib/typescript/src/exportTarget.d.ts +28 -0
- package/lib/typescript/src/exportTarget.d.ts.map +1 -0
- package/lib/typescript/src/exportVideoComposition.d.ts +68 -0
- package/lib/typescript/src/exportVideoComposition.d.ts.map +1 -0
- package/lib/typescript/src/frameInterop.d.ts +17 -0
- package/lib/typescript/src/frameInterop.d.ts.map +1 -0
- package/lib/typescript/src/gpu.d.ts +39 -0
- package/lib/typescript/src/gpu.d.ts.map +1 -0
- package/lib/typescript/src/gpuDevice.d.ts +11 -0
- package/lib/typescript/src/gpuDevice.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +21 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/memory.d.ts +25 -0
- package/lib/typescript/src/memory.d.ts.map +1 -0
- package/lib/typescript/src/previewLifecycle.d.ts +22 -0
- package/lib/typescript/src/previewLifecycle.d.ts.map +1 -0
- package/lib/typescript/src/runtimeYield.d.ts +4 -0
- package/lib/typescript/src/runtimeYield.d.ts.map +1 -0
- package/lib/typescript/src/types.d.ts +631 -0
- package/lib/typescript/src/types.d.ts.map +1 -0
- package/lib/typescript/src/utils/useEventListener.d.ts +5 -0
- package/lib/typescript/src/utils/useEventListener.d.ts.map +1 -0
- package/lib/typescript/src/videoCompositionPlayer.d.ts +105 -0
- package/lib/typescript/src/videoCompositionPlayer.d.ts.map +1 -0
- package/lib/typescript/src/videoFrameImage.d.ts +60 -0
- package/lib/typescript/src/videoFrameImage.d.ts.map +1 -0
- package/lib/typescript/src/videoPlayer.d.ts +99 -0
- package/lib/typescript/src/videoPlayer.d.ts.map +1 -0
- package/lib/typescript/src/yuvBlit.d.ts +50 -0
- package/lib/typescript/src/yuvBlit.d.ts.map +1 -0
- package/package.json +155 -4
- package/patches/react-native-skia+3.7.0.patch +502 -0
- package/react-native-skia-webgpu-video.podspec +35 -0
- package/scripts/apply-skia-canvas-patch.mjs +48 -0
- package/scripts/skia-canvas-patch.json +291 -0
- package/src/NativeReactNativeSkiaVideo.ts +8 -0
- package/src/RNSkiaVideoModule.ts +27 -0
- package/src/canvas.ts +22 -0
- package/src/exportCache.ts +27 -0
- package/src/exportFrames.ts +421 -0
- package/src/exportQueue.ts +65 -0
- package/src/exportTarget.ts +179 -0
- package/src/exportVideoComposition.ts +718 -0
- package/src/frameInterop.ts +684 -0
- package/src/gpu.ts +290 -0
- package/src/gpuDevice.ts +80 -0
- package/src/index.tsx +45 -0
- package/src/memory.ts +48 -0
- package/src/previewLifecycle.ts +60 -0
- package/src/runtimeYield.ts +6 -0
- package/src/types.ts +661 -0
- package/src/utils/useEventListener.ts +22 -0
- package/src/videoCompositionPlayer.ts +568 -0
- package/src/videoFrameImage.ts +205 -0
- package/src/videoPlayer.ts +318 -0
- package/src/yuvBlit.ts +331 -0
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
{
|
|
2
|
+
"validatedAt": "2026-10-07T08:59:20.452248+00:00",
|
|
3
|
+
"status": "build-and-host-tests-passed",
|
|
4
|
+
"commands": ":app:assembleDebug :app:assembleRelease :react-native-skia-webgpu-video:assembleDebug :react-native-skia-webgpu-video:assembleDebugAndroidTest :react-native-skia-webgpu-video:testDebugUnitTest --no-daemon --max-workers=2 -PreactNativeArchitectures=arm64-v8a",
|
|
5
|
+
"toolchain": {
|
|
6
|
+
"reactNative": "0.86.2",
|
|
7
|
+
"skia": "3.0.6",
|
|
8
|
+
"webgpu": "0.12.1",
|
|
9
|
+
"java": "17",
|
|
10
|
+
"sdk": 36,
|
|
11
|
+
"ndk": "27.1.12297006",
|
|
12
|
+
"gradle": "9.3.1",
|
|
13
|
+
"abi": "arm64-v8a"
|
|
14
|
+
},
|
|
15
|
+
"jvm": {
|
|
16
|
+
"tests": 31,
|
|
17
|
+
"failures": 0,
|
|
18
|
+
"errors": 0,
|
|
19
|
+
"suites": [
|
|
20
|
+
{
|
|
21
|
+
"name": "com.azzapp.rnskv.BufferLifetimeTest",
|
|
22
|
+
"tests": "3",
|
|
23
|
+
"failures": "0",
|
|
24
|
+
"errors": "0",
|
|
25
|
+
"skipped": "0"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"name": "com.azzapp.rnskv.DecodeRequestsTest",
|
|
29
|
+
"tests": "5",
|
|
30
|
+
"failures": "0",
|
|
31
|
+
"errors": "0",
|
|
32
|
+
"skipped": "0"
|
|
33
|
+
},
|
|
34
|
+
{
|
|
35
|
+
"name": "com.azzapp.rnskv.DecoderWindowTest",
|
|
36
|
+
"tests": "6",
|
|
37
|
+
"failures": "0",
|
|
38
|
+
"errors": "0",
|
|
39
|
+
"skipped": "0"
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
"name": "com.azzapp.rnskv.FrameSizeTest",
|
|
43
|
+
"tests": "6",
|
|
44
|
+
"failures": "0",
|
|
45
|
+
"errors": "0",
|
|
46
|
+
"skipped": "0"
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
"name": "com.azzapp.rnskv.RgbaBufferAllocatorTest",
|
|
50
|
+
"tests": "3",
|
|
51
|
+
"failures": "0",
|
|
52
|
+
"errors": "0",
|
|
53
|
+
"skipped": "0"
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"name": "com.azzapp.rnskv.RgbaLayoutTest",
|
|
57
|
+
"tests": "4",
|
|
58
|
+
"failures": "0",
|
|
59
|
+
"errors": "0",
|
|
60
|
+
"skipped": "0"
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"name": "com.azzapp.rnskv.SurfaceOutputPolicyTest",
|
|
64
|
+
"tests": "4",
|
|
65
|
+
"failures": "0",
|
|
66
|
+
"errors": "0",
|
|
67
|
+
"skipped": "0"
|
|
68
|
+
}
|
|
69
|
+
]
|
|
70
|
+
},
|
|
71
|
+
"device": {
|
|
72
|
+
"connectedDevices": [],
|
|
73
|
+
"instrumentationExecuted": false,
|
|
74
|
+
"artGcLifetimeQualified": false,
|
|
75
|
+
"physicalMemoryMeasured": false,
|
|
76
|
+
"performanceMeasured": false,
|
|
77
|
+
"reason": "adb devices -l outside sandbox returned an empty device list"
|
|
78
|
+
},
|
|
79
|
+
"instrumentationInventory": {
|
|
80
|
+
"originalNamedCases": 40,
|
|
81
|
+
"originalExpandedExecutions": 86,
|
|
82
|
+
"totalNamedCases": 44,
|
|
83
|
+
"totalExpandedExecutions": 94
|
|
84
|
+
},
|
|
85
|
+
"artifacts": {
|
|
86
|
+
"debugExampleApk": {
|
|
87
|
+
"path": "example/android/app/build/outputs/apk/debug/app-debug.apk",
|
|
88
|
+
"bytes": 141637563,
|
|
89
|
+
"sha256": "cf03243fda75a606b7d605c9ee62639271e28f808dfc24a1ad19fe6da621df25"
|
|
90
|
+
},
|
|
91
|
+
"unsignedReleaseExampleApk": {
|
|
92
|
+
"path": "example/android/app/build/outputs/apk/release/app-release-unsigned.apk",
|
|
93
|
+
"bytes": 75527115,
|
|
94
|
+
"sha256": "5dea2baefc76eac37673b9569d6b8210eb9273c134dba9e538cea7a8087669bc"
|
|
95
|
+
},
|
|
96
|
+
"debugLibraryAar": {
|
|
97
|
+
"path": "android/build/outputs/aar/react-native-skia-webgpu-video-debug.aar",
|
|
98
|
+
"bytes": 2171988,
|
|
99
|
+
"sha256": "c1500b0022b77898003996a0624235ccccd6adbeb1b5d0afce97de4e6b1d4d64"
|
|
100
|
+
},
|
|
101
|
+
"debugInstrumentationApk": {
|
|
102
|
+
"path": "android/build/outputs/apk/androidTest/debug/react-native-skia-webgpu-video-debug-androidTest.apk",
|
|
103
|
+
"bytes": 34849465,
|
|
104
|
+
"sha256": "ea6cc6b2e31391ae3caa09a3e3a47c22d5a081f12c83983df2a70a9f6de73ea7"
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
"sourceFingerprints": {
|
|
108
|
+
"android/.gitignore": "82a757990284a60404e27fcab806bdf856fa077462e62ba6a4421ef4788d1213",
|
|
109
|
+
"android/CMakeLists.txt": "a94f4efdf64fa5bfa2e5939d249e129b28ec8e40a03972631cb04509f1d967db",
|
|
110
|
+
"android/build.gradle": "49e266e4e97013d65b2fa67af56cfffc8a749481a01d8db854ad85d1ce06b495",
|
|
111
|
+
"android/cpp/JNIHelpers.cpp": "a7d8ac2cf3996053b89249d979dd5ec35ced3c9ecce6adb743d63092bf1ac5eb",
|
|
112
|
+
"android/cpp/JNIHelpers.h": "64c9e28dd204f5e028f699115e2501999f0f0f54c8b6560555f9ce06fb16b238",
|
|
113
|
+
"android/cpp/NativeEventDispatcher.cpp": "8c737aa0c825c3c215a210843c19d64be1ba500d909da566e0b3324764b7f1a7",
|
|
114
|
+
"android/cpp/NativeEventDispatcher.h": "c2b59c59ec353c1e3df24f61e0b5b38cd68e9bba634abd4c9f78e120c4a75feb",
|
|
115
|
+
"android/cpp/NativeRgbaBuffer.cpp": "b4d35d925e884fb8c553580559d4b5a115cefed4e08dc6c1d1c337fc22522dc1",
|
|
116
|
+
"android/cpp/NativeRgbaBuffer.h": "efa4a5744db8b5c37a169873bab00264fca25c0765a0cce14a4201030d7a6f47",
|
|
117
|
+
"android/cpp/VideoCapabilities.cpp": "232bf9b1680e6312febe958dbec57eae298667ef3930a56613208f025114087e",
|
|
118
|
+
"android/cpp/VideoCapabilities.h": "0904670d31d7f30b910f87dcf9c08f627095b4f545f1e6525e97c033593951eb",
|
|
119
|
+
"android/cpp/VideoComposition.cpp": "7ff046c04721e75298418afcdb5b1214fc2c69d08ff0cb7b42fc75d543729b2e",
|
|
120
|
+
"android/cpp/VideoComposition.h": "d6c17bd93c319fff49fc0f35c3fa0fe6a72d45fad793e845c682091c5973aa39",
|
|
121
|
+
"android/cpp/VideoCompositionFramesExtractor.cpp": "201b75377cb50e011217355c67f4c15b7570e8dd59e7dd735181962f2adeed52",
|
|
122
|
+
"android/cpp/VideoCompositionFramesExtractor.h": "81fe940205c438db93ce3946ee148337f81452ae52aa9e076152cac691f08c85",
|
|
123
|
+
"android/cpp/VideoCompositionFramesExtractorHostObject.cpp": "2022cf4e98b8bdaec27803181d67ac1bdf92a243d52d0c51967603916a9e9884",
|
|
124
|
+
"android/cpp/VideoCompositionFramesExtractorHostObject.h": "b694c73c9ad6e1b9d3b12cfe86ba178f630136fef6d0524b0b7a4f21b8534797",
|
|
125
|
+
"android/cpp/VideoCompositionFramesExtractorSyncHostObject.cpp": "40483bd59a1a994b249c6097b15a9e1438c515b603f778a92074c57ee3c70d9a",
|
|
126
|
+
"android/cpp/VideoCompositionFramesExtractorSyncHostObject.h": "a63ec691ff0afaae4f841e21a5a8eb000102e4866b36d1ed81951c7743ddeea6",
|
|
127
|
+
"android/cpp/VideoEncoderHostObject.cpp": "974b52256f4a62615915c9640e93898dd48568a1b8ee803ce0087608914515b6",
|
|
128
|
+
"android/cpp/VideoEncoderHostObject.h": "198a34b2bd2ecf60949aaa2c96a0a6373d19b5cfe3f79dd37bc43573044fb109",
|
|
129
|
+
"android/cpp/VideoFrame.cpp": "21dbf9d71a1e67e2adec29d7272725a396f3601f05cb2b5027722118db750320",
|
|
130
|
+
"android/cpp/VideoFrame.h": "60cb67a782df02ff739e88c57fe4ddd44bdfbfc12f83b914bf8f1d8abc0c427c",
|
|
131
|
+
"android/cpp/VideoPlayer.cpp": "0690a25d3d3cb92343602a7086ecf4983ad86acb3f390968282a3833d2a6248b",
|
|
132
|
+
"android/cpp/VideoPlayer.h": "96eb25249a7a00d9a4e596d3aebe0bc2ba918bfb23bdcf13000025707b96087b",
|
|
133
|
+
"android/cpp/VideoPlayerHostObject.cpp": "28b9d1d21b6bfb703904a52eaf7018a77daab0728bcb690bb99d2f3076abe8c3",
|
|
134
|
+
"android/cpp/VideoPlayerHostObject.h": "56c13d55b2d002ffa6b3d7107d7809fc6ff3c01f34fc11e46b17cfc76f2058b0",
|
|
135
|
+
"android/cpp/cpp-adapter.cpp": "301df19a79160cece06471c17214098a1023bbfa58539e29ecf4cc4c997d33ab",
|
|
136
|
+
"android/gradle.properties": "50aa6c7542182523e8c909115d4d3293cf1a2197390df1157baf5b99d0a546cc",
|
|
137
|
+
"android/instrumentation-inventory.json": "edb7f156d2c1b47a783610811b2ea22c20455178cdf26cd73318c542a1074a1e",
|
|
138
|
+
"android/proguard-rules.pro": "45595bd6c70a6e499c52538eefb3aa86acef6d7d8faadb83854f3d5470a2a162",
|
|
139
|
+
"android/scripts/validate.sh": "900810155ea222800e483b10748bb1007c84d34dd8c323c27fb4eb7cc7bba9e8",
|
|
140
|
+
"android/src/androidTest/java/com/azzapp/rnskv/BigMontageTest.java": "642acd18497bc005839cf013716a8e2998cda78815f93334a72c8b4e133242a2",
|
|
141
|
+
"android/src/androidTest/java/com/azzapp/rnskv/CompositionExportTest.java": "d6a01e05b66ef21ba3209020925bd8112760fc5f58b170a70832f5b22d1c02a1",
|
|
142
|
+
"android/src/androidTest/java/com/azzapp/rnskv/CompositionPreviewTest.java": "c36d0248d2a49ba3a5cb26bad01e8367a19a5c5d8d2a3e175e45d115a5c50896",
|
|
143
|
+
"android/src/androidTest/java/com/azzapp/rnskv/Compositions.java": "d1bfd70013000825e4c57c28ccf5ded0efefbaf87eb58cf2638b3e3ecdf79258",
|
|
144
|
+
"android/src/androidTest/java/com/azzapp/rnskv/DirectTextureTest.java": "4f2a9ac2c701d20e08973b6488f5a99d1b55c547a383b84bf45f7e7b31564035",
|
|
145
|
+
"android/src/androidTest/java/com/azzapp/rnskv/EncodeTest.java": "93381c8e9bcefc3c24492b3e215b63d910658e8919c95917426b6912b1d85f0c",
|
|
146
|
+
"android/src/androidTest/java/com/azzapp/rnskv/Export.java": "4b8cd4ba0ef8c395a5acd63a820c27295d6786f657bc5c2106e81c2877910bd1",
|
|
147
|
+
"android/src/androidTest/java/com/azzapp/rnskv/MediaTest.java": "0686b5b91c9c5527cc238ff5e06b65962ee4384be38ce4a421b18210b42528fc",
|
|
148
|
+
"android/src/androidTest/java/com/azzapp/rnskv/NativeRgbaBufferTest.java": "3b5d67b1276d23ffab8ecd7ee96f920fe2794210fb279f4cdd3699cb4424917f",
|
|
149
|
+
"android/src/androidTest/java/com/azzapp/rnskv/OpenFailureTest.java": "57d2ca38520e932cc5bff2c2b36ae5c9ca78720b09576ec63e3a45f66969318e",
|
|
150
|
+
"android/src/androidTest/java/com/azzapp/rnskv/Pixels.java": "cebee44a39dac406547591df1b792626d78c9778f07beca78ff285a63fbc7155",
|
|
151
|
+
"android/src/androidTest/java/com/azzapp/rnskv/Player.java": "320d1665f1920c02d13b7677bf1096f2ede27651a7e45fe30dc1df14206fcc5a",
|
|
152
|
+
"android/src/androidTest/java/com/azzapp/rnskv/PlayerTest.java": "b23f6cd555fbe448fcc1f12f5703f6ffb47a548a26931b52763f811fa38536c8",
|
|
153
|
+
"android/src/androidTest/java/com/azzapp/rnskv/TestVideo.java": "f0ab437d829ed6c6412c76e1a226fd789d006abefb4bc3fd646cb1978ef6c2cc",
|
|
154
|
+
"android/src/main/AndroidManifest.xml": "bfe643676c7bfecf2683b1ad8044a754bc53141c9e4fc6714ad58c1530937b6d",
|
|
155
|
+
"android/src/main/java/com/azzapp/rnskv/AudioCompositionExporter.java": "f88677b933c7a08012190144ccb6cae7672e88b140579b8b7deb65085d3b395a",
|
|
156
|
+
"android/src/main/java/com/azzapp/rnskv/AudioCompositionPlayer.java": "04ea9480a0e4164473e80dc26d06c1c8708942762968138f3d937db5999576f8",
|
|
157
|
+
"android/src/main/java/com/azzapp/rnskv/BufferLifetime.java": "0b7ed28b60dc3480bf1b5e77e6e5a0f93fe35114fc136942a24848da50c3b63a",
|
|
158
|
+
"android/src/main/java/com/azzapp/rnskv/DecodeRequests.java": "18ddabfa8556dce051bb23da16edf45d9e846287bd34c70b6c78eae9c565b153",
|
|
159
|
+
"android/src/main/java/com/azzapp/rnskv/DecoderWindow.java": "c31565ca278342657895d52ae02a79903487f0f19d15c3677ac1b9c942ef0666",
|
|
160
|
+
"android/src/main/java/com/azzapp/rnskv/EGLResourcesHolder.java": "210038c00b747d18ce059b3f90e9dd561b6d0159ffc37e966a0ccedb2658359d",
|
|
161
|
+
"android/src/main/java/com/azzapp/rnskv/EGLUtils.java": "353be2d1bb2c93b74855d84a851e08eb57063626f91f4437e90e99afbc169a44",
|
|
162
|
+
"android/src/main/java/com/azzapp/rnskv/FrameSize.java": "c23b35630e9e9c8a1b45e99c314f35f5a1170df51aa7624eec466e752762b0f7",
|
|
163
|
+
"android/src/main/java/com/azzapp/rnskv/GLFrameExtractor.java": "fac47dcf9c594fdc42f332cc6c49b036c311c65d7bcd73476583d5714c076352",
|
|
164
|
+
"android/src/main/java/com/azzapp/rnskv/JNIHelpers.java": "36a3121f1198b780214a26641c5f9a65221957865d6f03a9e3ea6fe7a8b10a35",
|
|
165
|
+
"android/src/main/java/com/azzapp/rnskv/NativeEventDispatcher.java": "38258ea4e495b0fcf94191592e3a6c116a210c3e227968190adb7ba3b30f2f33",
|
|
166
|
+
"android/src/main/java/com/azzapp/rnskv/NativeRgbaBuffer.java": "fbdbf4f940c039c23458a53a6765643ba0578e5d1ceb3bc3b8b39921500fc133",
|
|
167
|
+
"android/src/main/java/com/azzapp/rnskv/ReactNativeSkiaVideoModule.java": "d80d12f865b1c65b3658a01742c75d47d4ebd3f52d5639b66c8d816641244b7f",
|
|
168
|
+
"android/src/main/java/com/azzapp/rnskv/ReactNativeSkiaVideoPackage.java": "5ee788c23d80111b5582d92fe468fb993181caa93db2f7121c3e287d066ee126",
|
|
169
|
+
"android/src/main/java/com/azzapp/rnskv/ReactNativeSkiaVideoSpec.java": "0e0d5b0f0a78d35894edaf114f119e60625fe792bbb060c73bf3e9c579874963",
|
|
170
|
+
"android/src/main/java/com/azzapp/rnskv/RgbaBufferAllocator.java": "bba2b69614b1be391200a7f51843cdaf59dc0a5e7f3d1d941e5acc634c69ea9e",
|
|
171
|
+
"android/src/main/java/com/azzapp/rnskv/RgbaLayout.java": "8d3809ccfa60993b5c174d52e0a65f61a2ecea3935c6f85464d21a2186d89abc",
|
|
172
|
+
"android/src/main/java/com/azzapp/rnskv/SurfaceOutputPolicy.java": "eba1255a5dbabc93216cbfdeea6f165deed20c5e3347b0f7d6ee9fd6b9a123e8",
|
|
173
|
+
"android/src/main/java/com/azzapp/rnskv/TextureRenderer.java": "c5fd5ee2957b7ad01d7c4a7f285c82fb6338b6dd56e555da7d5ed0d294d2f508",
|
|
174
|
+
"android/src/main/java/com/azzapp/rnskv/TimeHelpers.java": "dc554a6b7cee28f5537bad60aef5b939c911886499fc6aea4cc4bc9cddeae393",
|
|
175
|
+
"android/src/main/java/com/azzapp/rnskv/VideoCapabilities.java": "99ddf5dd614ef48724fba5a84bceab1f54af67ffe802c415e70853d8fcaa1f09",
|
|
176
|
+
"android/src/main/java/com/azzapp/rnskv/VideoComposition.java": "5870bb0aff68ae992da0c02688acb2da16f8e6055f7c62e121e52b94dbf853fd",
|
|
177
|
+
"android/src/main/java/com/azzapp/rnskv/VideoCompositionDecoder.java": "ec1063002784416660f44f4575f68e51e1ec8ab916d9dbe1f30e4273ef348b37",
|
|
178
|
+
"android/src/main/java/com/azzapp/rnskv/VideoCompositionFramesExtractor.java": "3370fddb949f288cf7cacff8cba9759225b5a5061e37b4e14748e838800bf198",
|
|
179
|
+
"android/src/main/java/com/azzapp/rnskv/VideoCompositionFramesExtractorSync.java": "a5500525a9819ce6bd3c493685010bd20f1f36c2ab6aace1f871ea49e94f0b73",
|
|
180
|
+
"android/src/main/java/com/azzapp/rnskv/VideoCompositionItemDecoder.java": "b6017dc7aca7b8a458b8ad47eaeb52f15b3e3438e08bd0f0b1b7d0f5ef91573c",
|
|
181
|
+
"android/src/main/java/com/azzapp/rnskv/VideoEncoder.java": "c0837ac058b9515af87be4188814a617c21f281c2971c5632ee2c6d0190a76e6",
|
|
182
|
+
"android/src/main/java/com/azzapp/rnskv/VideoFrame.java": "cdd0e0c0d4eedf8b2eee487d0ec540535bd76721132f400b265719370262bfb5",
|
|
183
|
+
"android/src/main/java/com/azzapp/rnskv/VideoPlayer.java": "3b5daee2af075711e7da2457e0c8fcbed74a8ad84ae1aeabee937b06caf5c807",
|
|
184
|
+
"android/src/test/java/com/azzapp/rnskv/BufferLifetimeTest.java": "f2428d43ba042b06a852921c36b1b224d2658dead651ceb08e6a54fd369e5829",
|
|
185
|
+
"android/src/test/java/com/azzapp/rnskv/DecodeRequestsTest.java": "ee0b66e24d1b6aa2566cfd30b4b2c3f59a935c81774b0a8d5aba4ddf0d7f4080",
|
|
186
|
+
"android/src/test/java/com/azzapp/rnskv/DecoderWindowTest.java": "ad61801e6356f38d748c4856966aac5da27ef5345c4d274810694e99b05e3d47",
|
|
187
|
+
"android/src/test/java/com/azzapp/rnskv/FrameSizeTest.java": "18bf1bee65d8f6f56d939d80ea9f8c5ddc0e5737e42b65682df30eac735dde4d",
|
|
188
|
+
"android/src/test/java/com/azzapp/rnskv/RgbaBufferAllocatorTest.java": "bd1dacf9a2205ae858f6ef08f29152d9e0d8e3dcf2ebe182c4716f1aa34e59e9",
|
|
189
|
+
"android/src/test/java/com/azzapp/rnskv/RgbaLayoutTest.java": "2903e8f370f5c4e064cf4ba15136c28f2e2d02f4d8e61e2f5809cd0472faa970",
|
|
190
|
+
"android/src/test/java/com/azzapp/rnskv/SurfaceOutputPolicyTest.java": "05be25567eda27bddfdcd009277277b1965d6fb1e661a0e9493bdf59dd8efee9",
|
|
191
|
+
"example/App.tsx": "2b145607ebdee278ef51f1f39bc6ee05b1e464703067ca9c2592760366e8b1ce",
|
|
192
|
+
"example/android/.gitignore": "82a757990284a60404e27fcab806bdf856fa077462e62ba6a4421ef4788d1213",
|
|
193
|
+
"example/android/app/build.gradle": "8dbb532d236ec033f67d3ce4fa5b30487d7d82ac7778f3beea4502122be259af",
|
|
194
|
+
"example/android/app/src/main/AndroidManifest.xml": "30e52ba5b6a76841fbaa91170d082b3610ebfde42c859f812ca10798a87669bf",
|
|
195
|
+
"example/android/app/src/main/java/com/skiawebgpuvideo/tests/MainActivity.kt": "fd82d57d0bfb9de61db1d93b04033f7ddc0019d7293013c8b8a7510015aad47e",
|
|
196
|
+
"example/android/app/src/main/java/com/skiawebgpuvideo/tests/MainApplication.kt": "9538b053c585b907985bbd0fd66590f47865149f593a99f1516defba729a584f",
|
|
197
|
+
"example/android/app/src/main/java/com/skiawebgpuvideo/tests/VideoBenchmarkHarness.kt": "f655cba0882ef700f044dc44b044752a3bd88c71f63211bb9afc3716d316a903",
|
|
198
|
+
"example/android/app/src/main/java/com/skiawebgpuvideo/tests/VideoBenchmarkPackage.kt": "32266ee7f6ad8d72a6c9e36b202f510cbb8688ccc63d7766ce742e3f5b7ae9b3",
|
|
199
|
+
"example/android/app/src/main/res/values/styles.xml": "d2fc968e7a52a12eb29acd07cd4c47d0ae73d4698ec69addf61b34f2690f6d1d",
|
|
200
|
+
"example/android/build.gradle": "5e6f23062f98c3c12e4e159c44f4b0a995acbd0683dd0d2f6fe64fbae8ce98c7",
|
|
201
|
+
"example/android/gradle/wrapper/gradle-wrapper.jar": "b3a875ddc1f044746e1b1a55f645584505f4a10438c1afea9f15e92a7c42ec13",
|
|
202
|
+
"example/android/gradle/wrapper/gradle-wrapper.properties": "a180163249c7252412ddaee1c7adcf59f6494b1183136f690fbd9a3b8aaed00e",
|
|
203
|
+
"example/android/gradle.properties": "9cb899438f2cf009a00f6e79525055dfda766b15db7ebbe0d64741f879e34d14",
|
|
204
|
+
"example/android/gradlew": "fb68debc1b1acf8ec55dc0d5e5495e1dedd0bd6b61f304bee61613eeb2bd9b92",
|
|
205
|
+
"example/android/gradlew.bat": "fedad02c18e266ec094995a5751b7fe1eb6e74f66bf75db64fae2e50eb22c234",
|
|
206
|
+
"example/android/settings.gradle": "86c493b95c4f5b242390d55ea57d59140db6926bb841775b06dd226f1eef7196"
|
|
207
|
+
},
|
|
208
|
+
"instrumentationPackagedNativeLibraries": [],
|
|
209
|
+
"releaseApkContainsHermesBundle": true,
|
|
210
|
+
"releaseApkAbis": [
|
|
211
|
+
"arm64-v8a"
|
|
212
|
+
],
|
|
213
|
+
"initialCheckpointScope": "Historical build-only evidence at 08:59 UTC; initial artifact hashes remain unchanged.",
|
|
214
|
+
"followUp": {
|
|
215
|
+
"recordedAt": "2026-10-07T15:01:33.805760+00:00",
|
|
216
|
+
"deviceReport": "../benchmark/android-device-306-verification.json",
|
|
217
|
+
"humanReport": "../docs/ANDROID_DEVICE_306.md",
|
|
218
|
+
"currentHostTests": {
|
|
219
|
+
"jvm": 43,
|
|
220
|
+
"failures": 0,
|
|
221
|
+
"errors": 0,
|
|
222
|
+
"skipped": 0,
|
|
223
|
+
"nativeFrameLease": 6,
|
|
224
|
+
"nativeSanitizers": [
|
|
225
|
+
"address",
|
|
226
|
+
"undefined"
|
|
227
|
+
]
|
|
228
|
+
},
|
|
229
|
+
"currentInventory": {
|
|
230
|
+
"namedCases": 52,
|
|
231
|
+
"plannedExecutions": 102,
|
|
232
|
+
"fullSuitePassed": false
|
|
233
|
+
},
|
|
234
|
+
"scopedCopyCheckpoint": {
|
|
235
|
+
"apkSha256": "789735e095937cc168865986a353613d29f065feeff40bca8676ab0895b2ef0a",
|
|
236
|
+
"sourceSnapshotSha256": "0a842f1f6f02ca4bb6f274050adcb15897b2cbc78aa76770b1aa94171ccfca3f",
|
|
237
|
+
"physicalTrial": "8 operations completed; 0 strict cleanup passes",
|
|
238
|
+
"copyCountBeforeSkia": 1,
|
|
239
|
+
"zeroCopy": false
|
|
240
|
+
},
|
|
241
|
+
"ahbCheckpoint": {
|
|
242
|
+
"apkSha256": "59afb795cfc9fe86d5bbbbaaa487cf0129130dd6538d0f5faf5d6bc11a6edbfa",
|
|
243
|
+
"sourceSnapshotSha256": "35c1f59a69c1a2d6cb04170fed083e3c6f81c51cd94efc35a490181cdd06ee43",
|
|
244
|
+
"bundleSha256": "4e02a04173fd471cd93520ee2b90ff2d3f0bda589649bd791ac1bbda0454e178",
|
|
245
|
+
"nativeLibrarySha256": "8a5cb7606f82bd829cda52e62644d0152844e7d37ab8bd4273ac425b449772e6",
|
|
246
|
+
"instrumentationApkSha256": "81aa5c0fc0ea43bbb3296c6380b8a9d55a5d51931e41c46d456c2e9bd680a34d",
|
|
247
|
+
"build": "Release APK, library Release AAR, Debug instrumentation APK; BUILD SUCCESSFUL",
|
|
248
|
+
"hostJvmTests": 43,
|
|
249
|
+
"nativeOwnershipTests": 6,
|
|
250
|
+
"nativeOwnershipPassed": 6,
|
|
251
|
+
"nativeOwnershipSkipped": 0,
|
|
252
|
+
"pixelOracleCases": 10,
|
|
253
|
+
"pixelOraclePassed": 10,
|
|
254
|
+
"performanceQualification": "24/24 strict focused workload passes; full instrumentation suite not qualified",
|
|
255
|
+
"decodeCpuReadback": false,
|
|
256
|
+
"zeroCopyClaim": false,
|
|
257
|
+
"lifecycleCasesPassed": 4,
|
|
258
|
+
"nativeCpuOwnershipTests": 5,
|
|
259
|
+
"nativeCpuOwnershipPassed": 5
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
buildscript {
|
|
2
|
+
repositories {
|
|
3
|
+
maven {
|
|
4
|
+
url "https://plugins.gradle.org/m2/"
|
|
5
|
+
}
|
|
6
|
+
google()
|
|
7
|
+
mavenCentral()
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
dependencies {
|
|
11
|
+
classpath("com.android.tools.build:gradle")
|
|
12
|
+
classpath("com.facebook.react:react-native-gradle-plugin")
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
apply plugin: "com.android.library"
|
|
17
|
+
apply plugin: "com.facebook.react"
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
import java.nio.file.Paths
|
|
21
|
+
|
|
22
|
+
static def findNodeModules(baseDir) {
|
|
23
|
+
def basePath = baseDir.toPath().normalize()
|
|
24
|
+
// Node's module resolution algorithm searches up to the root directory,
|
|
25
|
+
// after which the base path will be null
|
|
26
|
+
while (basePath) {
|
|
27
|
+
def nodeModulesPath = Paths.get(basePath.toString(), "node_modules")
|
|
28
|
+
def reactNativePath = Paths.get(nodeModulesPath.toString(), "react-native")
|
|
29
|
+
if (nodeModulesPath.toFile().exists() && reactNativePath.toFile().exists()) {
|
|
30
|
+
return nodeModulesPath.toString()
|
|
31
|
+
}
|
|
32
|
+
basePath = basePath.getParent()
|
|
33
|
+
}
|
|
34
|
+
throw new GradleException("React-Native-Skia-Video: Failed to find node_modules/ path!")
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
def nodeModules = findNodeModules(projectDir)
|
|
38
|
+
logger.warn("react-native-skia-video: node_modules/ found at: ${nodeModules}")
|
|
39
|
+
|
|
40
|
+
def buildType = "debug"
|
|
41
|
+
tasks.all({ task ->
|
|
42
|
+
if (task.name == "buildCMakeRelease") {
|
|
43
|
+
buildType = "release"
|
|
44
|
+
}
|
|
45
|
+
})
|
|
46
|
+
|
|
47
|
+
def getExtOrDefault(name) {
|
|
48
|
+
return rootProject.ext.has(name) ? rootProject.ext.get(name) : project.properties["ReactNativeSkiaVideo_" + name]
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
def getExtOrIntegerDefault(name) {
|
|
52
|
+
return rootProject.ext.has(name) ? rootProject.ext.get(name) : (project.properties["ReactNativeSkiaVideo_" + name]).toInteger()
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
def reactNativeArchitectures() {
|
|
56
|
+
def value = project.getProperties().get("reactNativeArchitectures")
|
|
57
|
+
return value ? value.split(",") : ["armeabi-v7a", "x86", "x86_64", "arm64-v8a"]
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
android {
|
|
61
|
+
namespace "com.azzapp.rnskv"
|
|
62
|
+
|
|
63
|
+
ndkVersion getExtOrDefault("ndkVersion")
|
|
64
|
+
compileSdkVersion getExtOrIntegerDefault("compileSdkVersion")
|
|
65
|
+
if (getExtOrIntegerDefault("minSdkVersion") < 28) {
|
|
66
|
+
throw new GradleException("Skia WebGPU Video requires Android API 28 or newer; the consuming app minSdkVersion is lower")
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
defaultConfig {
|
|
70
|
+
minSdkVersion getExtOrIntegerDefault("minSdkVersion")
|
|
71
|
+
targetSdkVersion getExtOrIntegerDefault("targetSdkVersion")
|
|
72
|
+
consumerProguardFiles "proguard-rules.pro"
|
|
73
|
+
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
|
74
|
+
|
|
75
|
+
externalNativeBuild {
|
|
76
|
+
cmake {
|
|
77
|
+
cppFlags "-O2 -frtti -fexceptions -Wall -fstack-protector-all"
|
|
78
|
+
arguments "-DANDROID_STL=c++_shared",
|
|
79
|
+
"-DNODE_MODULES_DIR=${nodeModules}",
|
|
80
|
+
"-DBUILD_TYPE=${buildType}"
|
|
81
|
+
abiFilters (*reactNativeArchitectures())
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
externalNativeBuild {
|
|
87
|
+
cmake {
|
|
88
|
+
path "CMakeLists.txt"
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
packagingOptions {
|
|
93
|
+
doNotStrip buildType == 'debug' ? "**/**/*.so" : ''
|
|
94
|
+
excludes = [
|
|
95
|
+
"META-INF",
|
|
96
|
+
"META-INF/**",
|
|
97
|
+
"**/libc++_shared.so",
|
|
98
|
+
"**/libfbjni.so",
|
|
99
|
+
"**/libjsi.so",
|
|
100
|
+
"**/libfolly_json.so",
|
|
101
|
+
"**/libfolly_runtime.so",
|
|
102
|
+
"**/libglog.so",
|
|
103
|
+
"**/libhermes.so",
|
|
104
|
+
"**/libhermes-executor-debug.so",
|
|
105
|
+
"**/libhermes_executor.so",
|
|
106
|
+
"**/libreactnative.so",
|
|
107
|
+
"**/libreactnativejni.so",
|
|
108
|
+
"**/libturbomodulejsijni.so",
|
|
109
|
+
"**/libreact_nativemodule_core.so",
|
|
110
|
+
"**/libjscexecutor.so",
|
|
111
|
+
"**/libruntimeexecutor.so"
|
|
112
|
+
]
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
buildFeatures {
|
|
116
|
+
buildConfig true
|
|
117
|
+
prefab true
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
buildTypes {
|
|
121
|
+
release {
|
|
122
|
+
minifyEnabled false
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
lintOptions {
|
|
127
|
+
disable "GradleCompatible"
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
compileOptions {
|
|
131
|
+
sourceCompatibility JavaVersion.VERSION_17
|
|
132
|
+
targetCompatibility JavaVersion.VERSION_17
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
sourceSets {
|
|
136
|
+
main {
|
|
137
|
+
java.srcDirs += ["${project.buildDir}/generated/source/codegen/java"]
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
repositories {
|
|
143
|
+
mavenCentral()
|
|
144
|
+
google()
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
def MEDIA3_VERSION = "1.10.1"
|
|
148
|
+
dependencies {
|
|
149
|
+
implementation 'com.facebook.react:react-android:+'
|
|
150
|
+
implementation "androidx.media3:media3-exoplayer:${MEDIA3_VERSION}"
|
|
151
|
+
implementation "androidx.media3:media3-datasource:${MEDIA3_VERSION}"
|
|
152
|
+
implementation "androidx.media3:media3-exoplayer-hls:${MEDIA3_VERSION}"
|
|
153
|
+
testImplementation "junit:junit:4.13.2"
|
|
154
|
+
androidTestImplementation "androidx.test:runner:1.6.2"
|
|
155
|
+
androidTestImplementation "androidx.test.ext:junit:1.2.1"
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
tasks.whenTaskAdded { task ->
|
|
159
|
+
if (task.name.contains("configureCMakeDebug")) {
|
|
160
|
+
rootProject.getTasksByName("packageReactNdkDebugLibs", true).forEach {
|
|
161
|
+
task.dependsOn(it)
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
if (task.name.contains("configureCMakeRel")) {
|
|
166
|
+
rootProject.getTasksByName("packageReactNdkReleaseLibs", true).forEach {
|
|
167
|
+
task.dependsOn(it)
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
react {
|
|
173
|
+
jsRootDir = file("../src/")
|
|
174
|
+
libraryName = "ReactNativeSkiaVideo"
|
|
175
|
+
codegenJavaPackageName = "com.azzapp.rnskv"
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
// A library's device tests run in their own APK, without a consuming RN app.
|
|
179
|
+
// Keep transitive JNI dependencies there while the published AAR still excludes them.
|
|
180
|
+
androidComponents.onVariants(androidComponents.selector().all()) { variant ->
|
|
181
|
+
if (variant.androidTest != null) {
|
|
182
|
+
def unsupportedAbis = ["arm64-v8a", "armeabi-v7a", "x86", "x86_64"] - reactNativeArchitectures().toList()
|
|
183
|
+
variant.androidTest.packaging.jniLibs.excludes.set(unsupportedAbis.collect { "**/${it}/*.so" })
|
|
184
|
+
}
|
|
185
|
+
}
|