react-native-skia-webgpu-video 0.0.0-stage → 0.1.0-beta.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 (236) hide show
  1. package/LICENSE +22 -0
  2. package/README.md +303 -2
  3. package/android/BUILD_VALIDATION.md +62 -0
  4. package/android/CMakeLists.txt +99 -0
  5. package/android/build-validation.json +262 -0
  6. package/android/build.gradle +185 -0
  7. package/android/cpp/EncoderTargets.cpp +226 -0
  8. package/android/cpp/EncoderTargets.h +70 -0
  9. package/android/cpp/JNIHelpers.cpp +15 -0
  10. package/android/cpp/JNIHelpers.h +20 -0
  11. package/android/cpp/NativeEventDispatcher.cpp +59 -0
  12. package/android/cpp/NativeEventDispatcher.h +31 -0
  13. package/android/cpp/NativeHardwareBuffer.cpp +397 -0
  14. package/android/cpp/NativeHardwareBuffer.h +34 -0
  15. package/android/cpp/NativeRgbaBuffer.cpp +45 -0
  16. package/android/cpp/NativeRgbaBuffer.h +9 -0
  17. package/android/cpp/ReturnedVideoFrames.h +37 -0
  18. package/android/cpp/RgbaFrameLease.h +53 -0
  19. package/android/cpp/VideoCapabilities.cpp +87 -0
  20. package/android/cpp/VideoCapabilities.h +44 -0
  21. package/android/cpp/VideoComposition.cpp +170 -0
  22. package/android/cpp/VideoComposition.h +36 -0
  23. package/android/cpp/VideoCompositionFramesExtractor.cpp +82 -0
  24. package/android/cpp/VideoCompositionFramesExtractor.h +48 -0
  25. package/android/cpp/VideoCompositionFramesExtractorHostObject.cpp +230 -0
  26. package/android/cpp/VideoCompositionFramesExtractorHostObject.h +42 -0
  27. package/android/cpp/VideoCompositionFramesExtractorSyncHostObject.cpp +133 -0
  28. package/android/cpp/VideoCompositionFramesExtractorSyncHostObject.h +46 -0
  29. package/android/cpp/VideoEncoderHostObject.cpp +318 -0
  30. package/android/cpp/VideoEncoderHostObject.h +76 -0
  31. package/android/cpp/VideoFrame.cpp +293 -0
  32. package/android/cpp/VideoFrame.h +27 -0
  33. package/android/cpp/VideoPlayer.cpp +96 -0
  34. package/android/cpp/VideoPlayer.h +52 -0
  35. package/android/cpp/VideoPlayerHostObject.cpp +225 -0
  36. package/android/cpp/VideoPlayerHostObject.h +43 -0
  37. package/android/cpp/cpp-adapter.cpp +316 -0
  38. package/android/gradle.properties +5 -0
  39. package/android/instrumentation-inventory.json +178 -0
  40. package/android/proguard-rules.pro +4 -0
  41. package/android/src/main/AndroidManifest.xml +2 -0
  42. package/android/src/main/java/com/azzapp/rnskv/AudioCompositionExporter.java +537 -0
  43. package/android/src/main/java/com/azzapp/rnskv/AudioCompositionPlayer.java +321 -0
  44. package/android/src/main/java/com/azzapp/rnskv/BufferLifetime.java +55 -0
  45. package/android/src/main/java/com/azzapp/rnskv/DecodeRequests.java +100 -0
  46. package/android/src/main/java/com/azzapp/rnskv/DecoderWindow.java +55 -0
  47. package/android/src/main/java/com/azzapp/rnskv/EGLResourcesHolder.java +132 -0
  48. package/android/src/main/java/com/azzapp/rnskv/EGLUtils.java +225 -0
  49. package/android/src/main/java/com/azzapp/rnskv/FrameSize.java +50 -0
  50. package/android/src/main/java/com/azzapp/rnskv/GLFrameExtractor.java +510 -0
  51. package/android/src/main/java/com/azzapp/rnskv/JNIHelpers.java +12 -0
  52. package/android/src/main/java/com/azzapp/rnskv/NativeEventDispatcher.java +25 -0
  53. package/android/src/main/java/com/azzapp/rnskv/NativeHardwareBuffer.java +62 -0
  54. package/android/src/main/java/com/azzapp/rnskv/NativeRgbaBuffer.java +35 -0
  55. package/android/src/main/java/com/azzapp/rnskv/ReactNativeSkiaVideoModule.java +45 -0
  56. package/android/src/main/java/com/azzapp/rnskv/ReactNativeSkiaVideoPackage.java +43 -0
  57. package/android/src/main/java/com/azzapp/rnskv/ReactNativeSkiaVideoSpec.java +9 -0
  58. package/android/src/main/java/com/azzapp/rnskv/RgbaBufferAllocator.java +83 -0
  59. package/android/src/main/java/com/azzapp/rnskv/RgbaLayout.java +33 -0
  60. package/android/src/main/java/com/azzapp/rnskv/SurfaceOutputPolicy.java +13 -0
  61. package/android/src/main/java/com/azzapp/rnskv/TextureRenderer.java +150 -0
  62. package/android/src/main/java/com/azzapp/rnskv/TimeHelpers.java +11 -0
  63. package/android/src/main/java/com/azzapp/rnskv/VideoCapabilities.java +354 -0
  64. package/android/src/main/java/com/azzapp/rnskv/VideoComposition.java +147 -0
  65. package/android/src/main/java/com/azzapp/rnskv/VideoCompositionDecoder.java +772 -0
  66. package/android/src/main/java/com/azzapp/rnskv/VideoCompositionFramesExtractor.java +354 -0
  67. package/android/src/main/java/com/azzapp/rnskv/VideoCompositionFramesExtractorSync.java +241 -0
  68. package/android/src/main/java/com/azzapp/rnskv/VideoCompositionItemDecoder.java +492 -0
  69. package/android/src/main/java/com/azzapp/rnskv/VideoEncoder.java +639 -0
  70. package/android/src/main/java/com/azzapp/rnskv/VideoFrame.java +74 -0
  71. package/android/src/main/java/com/azzapp/rnskv/VideoPlayer.java +361 -0
  72. package/cpp/RNSVCheckedSizes.h +54 -0
  73. package/cpp/RNSVEventEmitter.cpp +199 -0
  74. package/cpp/RNSVEventEmitter.h +31 -0
  75. package/cpp/RNSVHostObject.cpp +79 -0
  76. package/cpp/RNSVHostObject.h +67 -0
  77. package/cpp/RNSVMemoryBudget.cpp +68 -0
  78. package/cpp/RNSVMemoryBudget.h +100 -0
  79. package/cpp/RNSVRuntimeLifecycleMonitor.cpp +88 -0
  80. package/cpp/RNSVRuntimeLifecycleMonitor.h +33 -0
  81. package/docs/ANDROID_DEVICE_306.md +95 -0
  82. package/docs/ANDROID_EXPORT_CACHE_306.md +48 -0
  83. package/docs/ANDROID_MEMORY_RETENTION_306.md +67 -0
  84. package/docs/BENCHMARKS.md +368 -0
  85. package/docs/IOS_DEVICE_TESTS.md +115 -0
  86. package/docs/IOS_SIMULATOR_TESTS.md +74 -0
  87. package/docs/MIGRATION.md +82 -0
  88. package/docs/NATIVE_MEMORY_INVESTIGATION_306.md +88 -0
  89. package/docs/PERFORMANCE_AB_IPHONE_303.md +196 -0
  90. package/docs/PERFORMANCE_AB_SIMULATOR.md +135 -0
  91. package/docs/PERFORMANCE_AB_SOAK_SIMULATOR.md +84 -0
  92. package/docs/PERFORMANCE_IPHONE_306_OPTIMIZATION.md +76 -0
  93. package/docs/PERFORMANCE_SIMULATOR.md +89 -0
  94. package/docs/PERFORMANCE_SIMULATOR_INITIAL.md +96 -0
  95. package/docs/PERFORMANCE_SOAK_IPHONE_303.md +41 -0
  96. package/docs/UPSTREAM_NOTES.md +188 -0
  97. package/docs/assets/banner.svg +26 -0
  98. package/examples/webgpu-overlay.ts +147 -0
  99. package/ios/AVAssetTrackUtils.h +24 -0
  100. package/ios/AudioCompositionUtils.h +27 -0
  101. package/ios/AudioCompositionUtils.mm +113 -0
  102. package/ios/DecoderWindow.h +52 -0
  103. package/ios/NativeResourceStats.h +32 -0
  104. package/ios/RNSVColorSpace.h +50 -0
  105. package/ios/RNSVJSIUtils.h +46 -0
  106. package/ios/RNSVScopedPixelBuffer.h +17 -0
  107. package/ios/RNSVVideoPlayer.h +46 -0
  108. package/ios/RNSVVideoPlayer.mm +410 -0
  109. package/ios/ReactNativeSkiaVideo.h +8 -0
  110. package/ios/ReactNativeSkiaVideo.mm +310 -0
  111. package/ios/SeekPolicy.h +27 -0
  112. package/ios/VideoComposition.h +148 -0
  113. package/ios/VideoCompositionFramesExtractorHostObject.h +105 -0
  114. package/ios/VideoCompositionFramesExtractorHostObject.mm +686 -0
  115. package/ios/VideoCompositionFramesExtractorSyncHostObject.h +37 -0
  116. package/ios/VideoCompositionFramesExtractorSyncHostObject.mm +168 -0
  117. package/ios/VideoCompositionItemDecoder.h +60 -0
  118. package/ios/VideoCompositionItemDecoder.mm +480 -0
  119. package/ios/VideoEncoderHostObject.h +83 -0
  120. package/ios/VideoEncoderHostObject.mm +706 -0
  121. package/ios/VideoFrame.h +66 -0
  122. package/ios/VideoFrame.mm +108 -0
  123. package/ios/VideoPlayerHostObject.h +52 -0
  124. package/ios/VideoPlayerHostObject.mm +332 -0
  125. package/lib/module/NativeReactNativeSkiaVideo.js +5 -0
  126. package/lib/module/NativeReactNativeSkiaVideo.js.map +1 -0
  127. package/lib/module/RNSkiaVideoModule.js +20 -0
  128. package/lib/module/RNSkiaVideoModule.js.map +1 -0
  129. package/lib/module/canvas.js +18 -0
  130. package/lib/module/canvas.js.map +1 -0
  131. package/lib/module/exportCache.js +22 -0
  132. package/lib/module/exportCache.js.map +1 -0
  133. package/lib/module/exportFrames.js +338 -0
  134. package/lib/module/exportFrames.js.map +1 -0
  135. package/lib/module/exportQueue.js +52 -0
  136. package/lib/module/exportQueue.js.map +1 -0
  137. package/lib/module/exportTarget.js +137 -0
  138. package/lib/module/exportTarget.js.map +1 -0
  139. package/lib/module/exportVideoComposition.js +492 -0
  140. package/lib/module/exportVideoComposition.js.map +1 -0
  141. package/lib/module/frameInterop.js +532 -0
  142. package/lib/module/frameInterop.js.map +1 -0
  143. package/lib/module/gpu.js +222 -0
  144. package/lib/module/gpu.js.map +1 -0
  145. package/lib/module/gpuDevice.js +54 -0
  146. package/lib/module/gpuDevice.js.map +1 -0
  147. package/lib/module/index.js +36 -0
  148. package/lib/module/index.js.map +1 -0
  149. package/lib/module/memory.js +38 -0
  150. package/lib/module/memory.js.map +1 -0
  151. package/lib/module/package.json +1 -0
  152. package/lib/module/previewLifecycle.js +52 -0
  153. package/lib/module/previewLifecycle.js.map +1 -0
  154. package/lib/module/runtimeYield.js +10 -0
  155. package/lib/module/runtimeYield.js.map +1 -0
  156. package/lib/module/types.js +4 -0
  157. package/lib/module/types.js.map +1 -0
  158. package/lib/module/utils/useEventListener.js +18 -0
  159. package/lib/module/utils/useEventListener.js.map +1 -0
  160. package/lib/module/videoCompositionPlayer.js +348 -0
  161. package/lib/module/videoCompositionPlayer.js.map +1 -0
  162. package/lib/module/videoFrameImage.js +185 -0
  163. package/lib/module/videoFrameImage.js.map +1 -0
  164. package/lib/module/videoPlayer.js +172 -0
  165. package/lib/module/videoPlayer.js.map +1 -0
  166. package/lib/module/yuvBlit.js +299 -0
  167. package/lib/module/yuvBlit.js.map +1 -0
  168. package/lib/typescript/package.json +1 -0
  169. package/lib/typescript/src/NativeReactNativeSkiaVideo.d.ts +7 -0
  170. package/lib/typescript/src/NativeReactNativeSkiaVideo.d.ts.map +1 -0
  171. package/lib/typescript/src/RNSkiaVideoModule.d.ts +4 -0
  172. package/lib/typescript/src/RNSkiaVideoModule.d.ts.map +1 -0
  173. package/lib/typescript/src/canvas.d.ts +4 -0
  174. package/lib/typescript/src/canvas.d.ts.map +1 -0
  175. package/lib/typescript/src/exportCache.d.ts +6 -0
  176. package/lib/typescript/src/exportCache.d.ts.map +1 -0
  177. package/lib/typescript/src/exportFrames.d.ts +57 -0
  178. package/lib/typescript/src/exportFrames.d.ts.map +1 -0
  179. package/lib/typescript/src/exportQueue.d.ts +5 -0
  180. package/lib/typescript/src/exportQueue.d.ts.map +1 -0
  181. package/lib/typescript/src/exportTarget.d.ts +28 -0
  182. package/lib/typescript/src/exportTarget.d.ts.map +1 -0
  183. package/lib/typescript/src/exportVideoComposition.d.ts +68 -0
  184. package/lib/typescript/src/exportVideoComposition.d.ts.map +1 -0
  185. package/lib/typescript/src/frameInterop.d.ts +17 -0
  186. package/lib/typescript/src/frameInterop.d.ts.map +1 -0
  187. package/lib/typescript/src/gpu.d.ts +39 -0
  188. package/lib/typescript/src/gpu.d.ts.map +1 -0
  189. package/lib/typescript/src/gpuDevice.d.ts +11 -0
  190. package/lib/typescript/src/gpuDevice.d.ts.map +1 -0
  191. package/lib/typescript/src/index.d.ts +21 -0
  192. package/lib/typescript/src/index.d.ts.map +1 -0
  193. package/lib/typescript/src/memory.d.ts +25 -0
  194. package/lib/typescript/src/memory.d.ts.map +1 -0
  195. package/lib/typescript/src/previewLifecycle.d.ts +22 -0
  196. package/lib/typescript/src/previewLifecycle.d.ts.map +1 -0
  197. package/lib/typescript/src/runtimeYield.d.ts +4 -0
  198. package/lib/typescript/src/runtimeYield.d.ts.map +1 -0
  199. package/lib/typescript/src/types.d.ts +631 -0
  200. package/lib/typescript/src/types.d.ts.map +1 -0
  201. package/lib/typescript/src/utils/useEventListener.d.ts +5 -0
  202. package/lib/typescript/src/utils/useEventListener.d.ts.map +1 -0
  203. package/lib/typescript/src/videoCompositionPlayer.d.ts +85 -0
  204. package/lib/typescript/src/videoCompositionPlayer.d.ts.map +1 -0
  205. package/lib/typescript/src/videoFrameImage.d.ts +60 -0
  206. package/lib/typescript/src/videoFrameImage.d.ts.map +1 -0
  207. package/lib/typescript/src/videoPlayer.d.ts +99 -0
  208. package/lib/typescript/src/videoPlayer.d.ts.map +1 -0
  209. package/lib/typescript/src/yuvBlit.d.ts +50 -0
  210. package/lib/typescript/src/yuvBlit.d.ts.map +1 -0
  211. package/package.json +154 -4
  212. package/patches/react-native-skia+3.7.0.patch +502 -0
  213. package/react-native-skia-webgpu-video.podspec +35 -0
  214. package/scripts/apply-skia-canvas-patch.mjs +48 -0
  215. package/scripts/skia-canvas-patch.json +291 -0
  216. package/src/NativeReactNativeSkiaVideo.ts +8 -0
  217. package/src/RNSkiaVideoModule.ts +27 -0
  218. package/src/canvas.ts +22 -0
  219. package/src/exportCache.ts +27 -0
  220. package/src/exportFrames.ts +421 -0
  221. package/src/exportQueue.ts +65 -0
  222. package/src/exportTarget.ts +179 -0
  223. package/src/exportVideoComposition.ts +718 -0
  224. package/src/frameInterop.ts +684 -0
  225. package/src/gpu.ts +290 -0
  226. package/src/gpuDevice.ts +80 -0
  227. package/src/index.tsx +45 -0
  228. package/src/memory.ts +48 -0
  229. package/src/previewLifecycle.ts +60 -0
  230. package/src/runtimeYield.ts +6 -0
  231. package/src/types.ts +661 -0
  232. package/src/utils/useEventListener.ts +22 -0
  233. package/src/videoCompositionPlayer.ts +520 -0
  234. package/src/videoFrameImage.ts +205 -0
  235. package/src/videoPlayer.ts +318 -0
  236. package/src/yuvBlit.ts +331 -0
@@ -0,0 +1,178 @@
1
+ {
2
+ "status": "partially-executed-on-physical-device",
3
+ "originalNamedCases": 40,
4
+ "originalPlannedExecutions": 86,
5
+ "additionalCases": {
6
+ "DirectTextureTest.oldPixelsRemainValidAcrossLaterFramesAndSessionDisposal": 5,
7
+ "NativeRgbaBufferTest": 5,
8
+ "NativeHardwareBufferTest": 6
9
+ },
10
+ "totalNamedCases": 52,
11
+ "totalPlannedExecutions": 102,
12
+ "codecUnavailableCases": "JUnit assumption skip, never counted as passed",
13
+ "classes": [
14
+ {
15
+ "class": "BigMontageTest",
16
+ "methods": [
17
+ "aLazyExportOfEight4KClipsGivesEveryFrame",
18
+ "aLazyPreviewOfEight4KClipsPlaysThrough",
19
+ "aLazyScrubOverEight4KClipsSettles",
20
+ "anEagerExportOfEight4KClipsWorksOrFailsCleanly",
21
+ "anEagerPreviewOfEight4KClipsWorksOrReportsAnError"
22
+ ],
23
+ "parameterSets": 1,
24
+ "plannedExecutions": 5
25
+ },
26
+ {
27
+ "class": "CompositionExportTest",
28
+ "methods": [
29
+ "aSingleItemGivesItsFrameAtEveryTime",
30
+ "aMontageGivesEachItemItsFrame",
31
+ "aLazyMontageGivesTheSameFramesWithFewerDecoders",
32
+ "anItemWithoutFramesDoesNotHoldTheExport",
33
+ "maxLongSideSizesTheFrame",
34
+ "releaseLeavesNoDecoderBehind"
35
+ ],
36
+ "parameterSets": 1,
37
+ "plannedExecutions": 6
38
+ },
39
+ {
40
+ "class": "CompositionPreviewTest",
41
+ "methods": [
42
+ "anEagerMontagePlaysThrough",
43
+ "aLazyMontagePlaysThroughWithFewDecoders",
44
+ "aSeekIntoAClosedItemShowsItsFrame",
45
+ "aScrubSettlesOnTheRightFrame",
46
+ "releaseStopsTheDecoderThreads"
47
+ ],
48
+ "parameterSets": 1,
49
+ "plannedExecutions": 5
50
+ },
51
+ {
52
+ "class": "DirectTextureTest",
53
+ "methods": [
54
+ "bothModesKeepTheirPixelsCropOrientationAndTimestamp",
55
+ "oldPixelsRemainValidAcrossLaterFramesAndSessionDisposal"
56
+ ],
57
+ "parameterSets": 5,
58
+ "plannedExecutions": 10
59
+ },
60
+ {
61
+ "class": "EncodeTest",
62
+ "methods": [
63
+ "anEagerMontageEncodesEveryFrameOfTheRightItem",
64
+ "aLazyMontageEncodesEveryFrameOfTheRightItem",
65
+ "anHevcExportEncodesEveryFrame",
66
+ "aLazy4KMontageExportsIn1080p",
67
+ "anAudioItemWithoutAnAudioTrackDoesNotHoldTheExport"
68
+ ],
69
+ "parameterSets": 1,
70
+ "plannedExecutions": 5
71
+ },
72
+ {
73
+ "class": "MediaTest",
74
+ "methods": [
75
+ "theExportGivesEveryFrameWithItsPixels",
76
+ "theFrameIsDrawnUpright",
77
+ "maxLongSideCapsTheFrame",
78
+ "thePreviewSeeksToExactFramesAndPlays"
79
+ ],
80
+ "parameterSets": 9,
81
+ "plannedExecutions": 36
82
+ },
83
+ {
84
+ "class": "NativeHardwareBufferTest",
85
+ "methods": [
86
+ "finishPublishesCompletedRgbaPixelsWithPackedRows",
87
+ "retainedLeaseSurvivesOriginalCloseAndEglProducerTeardown",
88
+ "videoFrameRetainKeepsIdentityAndIndependentOwnership",
89
+ "abortIsIdempotentAndCannotPublishAClosedWriter",
90
+ "quotaRefusalPreservesAnExistingLeaseAndReleasesPartialAllocation",
91
+ "invalidReadDestinationAndClosedLeaseCannotExposePixels"
92
+ ],
93
+ "parameterSets": 1,
94
+ "plannedExecutions": 6
95
+ },
96
+ {
97
+ "class": "NativeRgbaBufferTest",
98
+ "methods": [
99
+ "readOnlySliceKeepsBudgetAndBytesAfterFrameIsDropped",
100
+ "rejectedAllocationDoesNotLeaveReservation",
101
+ "snapshotsAreDistinctAndReadOnlyViewsCannotModifyPixels",
102
+ "artHeapRefusalDoesNotReserveOrAllocateTheHugeBacking",
103
+ "budgetRefusalPropagatesAndReleaseClosesDecoderAndFrames"
104
+ ],
105
+ "parameterSets": 1,
106
+ "plannedExecutions": 5
107
+ },
108
+ {
109
+ "class": "OpenFailureTest",
110
+ "methods": [
111
+ "dolbyVisionOverHevcIsDecodedAsHevcWithoutADolbyVisionDecoder",
112
+ "dolbyVisionOverAvcIsDecodedAsAvcWithoutADolbyVisionDecoder",
113
+ "otherCodecsAreLeftAlone",
114
+ "aFileThePreviewCannotOpenIsAnErrorEvent"
115
+ ],
116
+ "parameterSets": 1,
117
+ "plannedExecutions": 4
118
+ },
119
+ {
120
+ "class": "PlayerTest",
121
+ "methods": [
122
+ "playsThroughAndCompletes",
123
+ "aPausedSeekShowsTheExactFrameInAnyOrder",
124
+ "aSeekWhilePlayingPlaysOnFromThere",
125
+ "aSeekPastTheEndDoesNotBreakThePlayer",
126
+ "aLoopWrapsToTheFirstItem",
127
+ "aScrubSettlesOnTheLastSeek",
128
+ "aScrubWhilePlayingSettles",
129
+ "aPausedSeekAfterAScrubShowsItsFrameEveryTime",
130
+ "pauseStopsTheClockAndPlayResumes",
131
+ "playAfterTheEndStartsOver"
132
+ ],
133
+ "parameterSets": 2,
134
+ "plannedExecutions": 20
135
+ }
136
+ ],
137
+ "physicalDeviceEvidence": {
138
+ "model": "Google Pixel 8a",
139
+ "osVersion": "17",
140
+ "apiLevel": 37,
141
+ "beforeArtGuardFocusedDecodeEncode": {
142
+ "executed": 15,
143
+ "passed": 15,
144
+ "skipped": 0
145
+ },
146
+ "beforeArtGuardFullAttempt": {
147
+ "planned": 94,
148
+ "completedPassed": 2,
149
+ "completedFailed": 1,
150
+ "processCrash": 1,
151
+ "notExecuted": 90,
152
+ "failure": "Lazy 4K preview cadence assertion; eager eight-4K backing allocation exhausted ART heap"
153
+ },
154
+ "fullCurrentSuiteExecuted": false,
155
+ "scopedCopyArtOwnershipGuard": {
156
+ "executed": 5,
157
+ "passed": 5,
158
+ "skipped": 0
159
+ },
160
+ "currentAhbOwnership": {
161
+ "executed": 6,
162
+ "passed": 6,
163
+ "skipped": 0,
164
+ "durationSeconds": 0.168,
165
+ "instrumentationApkSha256": "81aa5c0fc0ea43bbb3296c6380b8a9d55a5d51931e41c46d456c2e9bd680a34d",
166
+ "testSourceSha256": "2bbfd0a87602dd9730963cf5fbf7aeb25c3f19c017e31991f620fa85f8debfbd",
167
+ "logSha256": "bb6f49823d82414a9c0ee1c7f962ea38e7cc25547aa695b3505279756129f4ee"
168
+ },
169
+ "currentCpuOwnership": {
170
+ "executed": 5,
171
+ "passed": 5,
172
+ "skipped": 0,
173
+ "durationSeconds": 0.896,
174
+ "instrumentationApkSha256": "81aa5c0fc0ea43bbb3296c6380b8a9d55a5d51931e41c46d456c2e9bd680a34d",
175
+ "logSha256": "5b66817815dce1f017a59d777de8362cdcf02d0dc4a2adfa06cd56cd523ed8f8"
176
+ }
177
+ }
178
+ }
@@ -0,0 +1,4 @@
1
+ # The C++ side finds these classes, methods and fields by name, and sets fields
2
+ # the Java side never writes: R8 would rename them, or fold them to their
3
+ # initial value.
4
+ -keep class com.azzapp.rnskv.** { *; }
@@ -0,0 +1,2 @@
1
+ <manifest xmlns:android="http://schemas.android.com/apk/res/android">
2
+ </manifest>