Commit Graph

1241 Commits

Author SHA1 Message Date
Marc Rousavy
44ed42d5d6
feat: Expose unified VisionCameraProxy object, make FrameProcessorPlugins object-oriented (#1660)
* feat: Replace `FrameProcessorRuntimeManager` with `VisionCameraProxy` (iOS)

* Make `FrameProcessorPlugin` a constructable HostObject

* fix: Fix `name` override

* Simplify `useFrameProcessor

* fix: Fix lint errors

* Remove FrameProcessorPlugin::name

* JSIUtils -> JSINSObjectConversion
2023-07-21 17:52:30 +02:00
Marc Rousavy
375e894038
feat: Complete iOS Codebase rewrite (#1647)
* Make Frame Processors an extra subspec

* Update VisionCamera.podspec

* Make optional

* Make VisionCamera compile without Skia

* Fix

* Add skia again

* Update VisionCamera.podspec

* Make VisionCamera build without Frame Processors

* Rename error to `system/frame-processors-unavailable`

* Fix Frame Processor returning early

* Remove `preset`, FP partial rewrite

* Only warn on frame drop

* Fix wrong queue

* fix: Run on CameraQueue again

* Update CameraView.swift

* fix: Activate audio session asynchronously on audio queue

* Update CameraView+RecordVideo.swift

* Update PreviewView.h

* Cleanups

* Cleanup

* fix cast

* feat: Add LiDAR Depth Camera support

* Upgrade Ruby

* Add vector icons type

* Update Gemfile.lock

* fix: Stop queues on deinit

* Also load `builtInTrueDepthCamera`

* Update CameraViewManager.swift

* Update SkImageHelpers.mm

* Extract FrameProcessorCallback to FrameProcessor

Holds more context now :)

* Rename to .m

* fix: Add `RCTLog` import

* Create SkiaFrameProcessor

* Update CameraBridge.h

* Call Frame Processor

* Fix defines

* fix: Allow deleting callback funcs

* fix Skia build

* batch

* Just call `setSkiaFrameProcessor`

* Rewrite in Swift

* Pass `SkiaRenderer`

* Fix Import

* Move `PreviewView` to Swift

* Fix Layer

* Set Skia Canvas to Frame Host Object

* Make `DrawableFrameHostObject` subclass

* Fix TS types

* Use same MTLDevice and apply scale

* Make getter

* Extract `setTorch` and `Preview`

* fix: Fix nil metal device

* Don't wait for session stop in deinit

* Use main pixel ratio

* Use unique_ptr for Render Contexts

* fix: Fix SkiaPreviewDisplayLink broken after deinit

* inline `getTextureCache`

* Update CameraPage.tsx

* chore: Format iOS

* perf: Allow MTLLayer to be optimized for only frame buffers

* Add RN Video types

* fix: Fix Frame Processors if guard

* Find nodeModules recursively

* Create `Frame.isDrawable`

* Add `cocoapods-check` dependency
2023-07-20 15:30:04 +02:00
Marc Rousavy
5fb594ce6b fix: Fix Worklets imports 2023-07-03 22:32:08 +02:00
Marc Rousavy
0139324da8 fix: Use correct Gradle version 2023-07-03 22:21:02 +02:00
Marc Rousavy
66c64814cc fix: Downgrade Gradle to 7.5.1 2023-07-03 22:15:06 +02:00
Marc Rousavy
cde8b762a3 chore: Remove react-native-slider 2023-07-03 22:10:20 +02:00
Marc Rousavy
7ae15af8cd feat: Add RN 0.72 support (namespace in build.gradle) 2023-07-03 22:07:49 +02:00
Marc Rousavy
0111f2edb4 fix: Simplify Podfile 2023-07-03 13:37:43 +02:00
Marc Rousavy
d964f40e53 Merge branch 'v3' of https://github.com/mrousavy/react-native-vision-camera into v3 2023-07-03 12:41:33 +02:00
Marc Rousavy
82eaf9594f chore: Extract to convertMTLTextureToSkImage 2023-07-03 12:41:26 +02:00
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