Marc Rousavy
4ad4804e51
chore: Upgrade Skia to new Ganesh Rendering Pipeline and RN to 0.72 ( #1638 )
...
* chore: Upgrade all Deps RN 72
* fix breaking skia changes
* fix devDeps
* Update yarn.lock
* fix metro config
* Update yarn.lock
2023-07-03 12:40:07 +02:00
hmaltr
3ed019d018
docs: Fix "siginificant" typo ( #1626 )
2023-06-19 16:12:01 +02:00
Marc Rousavy
b8527d7de4
fix: Use HostTimeClock
as fallback if masterClock
is nil
( #1302 )
2023-06-15 11:08:04 +02:00
Marc Rousavy
8753af3633
docs: Use other Algolia App ID
2023-05-23 17:41:29 +02:00
Hanno J. Gödecke
820db3ca9e
android: add build support with RNSkia
...
This still depends on this PR to be merged: https://github.com/Shopify/react-native-skia/pull/1550
2023-05-04 12:30:24 +02:00
Marc Rousavy
f03dde725e
fix: Fix Skia build ( #1582 )
...
* Add Skia search path from `node_modules/`
* fix: Find `react-native-skia` from node_modules
* fix: Upgrade RN Skia to use includes fix
* Update FrameProcessorUtils.mm
2023-05-03 14:27:34 +02:00
Marc Rousavy
032798331a
chore: Upgrade RN Skia
2023-05-02 12:54:18 +02:00
Marc Rousavy
bf52e8dad7
chore: Upgrade React Native for Xcode fix
2023-04-24 22:40:14 +02:00
Marc Rousavy
bb7ab30a0e
fix: Set min iOS version to 12.4
2023-04-24 22:32:20 +02:00
Marc Rousavy
38749fb613
fix: Fix missing Camera error
2023-04-21 12:08:59 +02:00
Kody Fintak
8833ac10c3
fix: Fix Failed to parse camera Id
error by ignoring non-integer cameras ( #1428 )
2023-03-30 11:26:03 +02:00
Marc Rousavy
533c32a48d
docs: fix wrong comment
2023-03-29 12:03:20 +02:00
Marc Rousavy
af4e366312
fix: Fix runAtTargetFps
for multiple invocations per FP
2023-03-21 16:10:09 +01:00
Marc Rousavy
e1973b9b8d
chore: Use Reanimated 3 from npm
2023-03-21 15:19:32 +01:00
Marc Rousavy
6deb6862cf
fix: Remove temp-patch for REA plugin
2023-03-21 15:17:22 +01:00
Marc Rousavy
ba099e4044
docs: Add Multi-Camera zooming GIF
2023-03-16 13:40:05 -04:00
Marc Rousavy
3978406755
docs: Set up Google gtag
2023-03-16 13:30:59 -04:00
Marc Rousavy
1bd21a8d2b
docs: Fix og:image
2023-03-16 13:24:15 -04:00
Marc Rousavy
49322f278b
docs: Fix favicon
2023-03-16 13:22:59 -04:00
Marc Rousavy
a1af891879
fix: Use global.expo.modules
for JSI expo modules
2023-03-15 09:34:15 -04:00
Marc Rousavy
0d83a13196
feat: New CameraDevice
+ CameraFormat
detection using CameraX ( #1495 )
...
* Create CameraDevice.kt
* Create VideoStabilizationMode+String.kt
* Use CameraX Extensions
* Remove `system/no-camera-manager` error
2023-03-13 09:23:19 -04:00
Marc Rousavy
f791c6b4cd
feat: Better Native Module Error Detection ( #1515 )
...
* feat: Add more Error insights when the Camera Module cannot be found
* Assert JSI is available
* Update error description
* fix
* Update CameraError.ts
2023-03-13 09:21:08 -04:00
Marc Rousavy
06cbb742fb
docs: Add V3 Announcement Banner
2023-03-08 12:11:03 +01:00
Marc Rousavy
c2fb5bf156
docs: fix baseUrl
2023-03-08 09:26:24 +01:00
Marc Rousavy
6fa8b7f26e
docs: Add robots.txt
2023-03-08 09:25:12 +01:00
Marc Rousavy
35c779b1ad
docs: Add @vercel/analytics
2023-03-07 11:53:32 +01:00
Marc Rousavy
73c5d675f2
docs: fix algolia app ID
2023-03-06 12:19:30 +01:00
Marc Rousavy
815e47b249
Add og:image to theme config
2023-03-06 11:43:39 +01:00
Marc Rousavy
22c0c029c8
docs: Add og:image
2023-03-06 11:42:01 +01:00
Marc Rousavy
77dd181da9
docs: fix meta
2023-03-06 11:40:46 +01:00
Marc Rousavy
ba20e76d38
remove build docs
2023-03-06 11:36:00 +01:00
Marc Rousavy
ab757125b5
docs: Upgrade Docusaurus ( #1513 )
...
* Add sitemaps plugin
* Update docusaurus.config.js
* Update libs
* Add OpenGraph metadata
* use same url
2023-03-06 11:25:44 +01:00
Marc Rousavy
757ecb0640
docs: Deploy to https://react-native-vision-camera.com
2023-03-06 11:03:40 +01:00
Marc Rousavy
622d3830f1
feat: Make Frame Processor Plugins object-oriented on iOS as well ( #1496 )
...
* feat: Make Frame Processor Plugins object-oriented on iOS as well
* Add Plugin in AppDelegate
2023-02-27 11:18:03 +01:00
Marc Rousavy
566eda2395
docs: Run yarn install for root as well
2023-02-25 12:00:49 +01:00
Marc Rousavy
61f19df500
fix: Remove RN Skia dependency on Android for now
2023-02-23 17:43:24 +01:00
Marc Rousavy
f227a3e396
fix: Catch device == null
error
2023-02-23 14:57:57 +01:00
Marc Rousavy
ad5d64b01f
fix: ignore duplicate .so
libraries in package
2023-02-22 12:28:51 +01:00
Marc Rousavy
cf19ff2e5a
fix: Fix Android namespace
2023-02-21 15:54:04 +01:00
Marc Rousavy
0c3cd66016
fix: Improve C++ safety by attaching Cache Invalidator to jsi::Runtime
's lifecycle ( #1488 )
...
* fix: fix C++ lint
* fix: attach `InvalidateCacheOnDestroy` to `jsi::Runtime`
2023-02-21 15:44:43 +01:00
Marc Rousavy
1ddea178ae
chore: release 3.0.0-rc.2
2023-02-21 15:09:55 +01:00
Marc Rousavy
12f850c8e1
feat: Draw onto Frame
as if it was a Skia Canvas ( #1479 )
...
* Create Shaders.ts
* Add `previewType` and `enableFpsGraph`
* Add RN Skia native dependency
* Add Skia Preview View on iOS
* Pass 1
* Update FrameHostObject.mm
* Wrap Canvas
* Lockfiles
* fix: Fix stuff
* chore: Upgrade RNWorklets
* Add `previewType` to set the Preview
* feat: Add Example
* Update project.pbxproj
* `enableFpsGraph`
* Cache the `std::shared_ptr<FrameHostObject>`
* Update CameraView+RecordVideo.swift
* Update SkiaMetalCanvasProvider.mm
* Android: Integrate Skia Dependency
* fix: Use new Prefix
* Add example for rendering shader
* chore: Upgrade CameraX
* Remove KTX
* Enable `viewBinding`
* Revert "Enable `viewBinding`"
This reverts commit f2a603f53b33ea4311a296422ffd1a910ce03f9e.
* Revert "chore: Upgrade CameraX"
This reverts commit 8dc832cf8754490d31a6192e6c1a1f11cdcd94fe.
* Remove unneeded `ProcessCameraProvider.getInstance()` call
* fix: Add REA hotfix patch
* fix: Fix FrameHostObject dead in runAsync
* fix: Make `runAsync` run truly async by dropping new Frames while executing
* chore: Upgrade RN Worklets to latest
* chore: Upgrade RN Skia
* Revert "Remove KTX"
This reverts commit 253f586633f7af2da992d2279fc206dc62597129.
* Make Skia optional in CMake
* Fix import
* Update CMakeLists.txt
* Update build.gradle
* Update CameraView.kt
* Update CameraView.kt
* Update CameraView.kt
* Update Shaders.ts
* Center Blur
* chore: Upgrade RN Worklets
* feat: Add `toByteArray()`, `orientation`, `isMirrored` and `timestamp` to `Frame` (#1487 )
* feat: Implement `orientation` and `isMirrored` on Frame
* feat: Add `toArrayBuffer()` func
* perf: Do faster buffer copy
* feat: Implement `toArrayBuffer()` on Android
* feat: Add `orientation` and `isMirrored` to Android
* feat: Add `timestamp` to Frame
* Update Frame.ts
* Update JImageProxy.h
* Update FrameHostObject.cpp
* Update FrameHostObject.cpp
* Update CameraPage.tsx
* fix: Format Swift
2023-02-21 15:00:48 +01:00
Marc Rousavy
1f7a2e07f2
fix: Fix global.FrameProcessorPlugins
TS error
2023-02-15 19:15:36 +01:00
Marc Rousavy
0635d4aba0
fix: Add missing <regex>
header
2023-02-15 19:13:33 +01:00
Marc Rousavy
2909085ea6
chore: release 3.0.0-rc.1
2023-02-15 18:23:05 +01:00
Marc Rousavy
770357fd94
chore: Bump to 3.0.0-rc.0
2023-02-15 18:21:33 +01:00
Marc Rousavy
222ded4728
fix: Prevent possible crash in log error handler
2023-02-15 18:15:13 +01:00
Marc Rousavy
6825c1f587
fix: Print correct error in build.gradle
2023-02-15 17:39:46 +01:00
Marc Rousavy
f0ea18115e
fix: Fix CI for V3 ( #1475 )
...
* fix: Fix CI for "Build Android"
* update versions
* Update Gemfile.lock
* format swift
* fix: Fix swift lint
* Update .swiftlint.yml
* Use C++17 for lint
* fix: Fix C++ lints
2023-02-15 17:24:33 +01:00
Marc Rousavy
30b56153db
feat: Sync Frame Processors (plus runAsync
and runAtTargetFps
) ( #1472 )
...
Before, Frame Processors ran on a separate Thread.
After, Frame Processors run fully synchronous and always at the same FPS as the Camera.
Two new functions have been introduced:
* `runAtTargetFps(fps: number, func: () => void)`: Runs the given code as often as the given `fps`, effectively throttling it's calls.
* `runAsync(frame: Frame, func: () => void)`: Runs the given function on a separate Thread for Frame Processing. A strong reference to the Frame is held as long as the function takes to execute.
You can use `runAtTargetFps` to throttle calls to a specific API (e.g. if your Camera is running at 60 FPS, but you only want to run face detection at ~25 FPS, use `runAtTargetFps(25, ...)`.)
You can use `runAsync` to run a heavy algorithm asynchronous, so that the Camera is not blocked while your algorithm runs. This is useful if your main sync processor draws something, and your async processor is doing some image analysis on the side.
You can also combine both functions.
Examples:
```js
const frameProcessor = useFrameProcessor((frame) => {
'worklet'
console.log("I'm running at 60 FPS!")
}, [])
```
```js
const frameProcessor = useFrameProcessor((frame) => {
'worklet'
console.log("I'm running at 60 FPS!")
runAtTargetFps(10, () => {
'worklet'
console.log("I'm running at 10 FPS!")
})
}, [])
```
```js
const frameProcessor = useFrameProcessor((frame) => {
'worklet'
console.log("I'm running at 60 FPS!")
runAsync(frame, () => {
'worklet'
console.log("I'm running on another Thread, I can block for longer!")
})
}, [])
```
```js
const frameProcessor = useFrameProcessor((frame) => {
'worklet'
console.log("I'm running at 60 FPS!")
runAtTargetFps(10, () => {
'worklet'
runAsync(frame, () => {
'worklet'
console.log("I'm running on another Thread at 10 FPS, I can block for longer!")
})
})
}, [])
```
2023-02-15 16:47:09 +01:00