Commit Graph

300 Commits

Author SHA1 Message Date
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
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
Marc Rousavy
a0590dccb5
feat: Replace Reanimated with RN Worklets (#1468)
* Setup RN Worklets

* Use RN Worklets on iOS

* Fix console

* Add `installFrameProcessorBindings()` function

* Add `FrameProcessorPlugins` proxy (BREAKING CHANGE)

* Clean up docs

* Update FRAME_PROCESSORS.mdx

* Use RN Worklets 0.2.5

* feat: Android build setup

* Rewrite Android Frame Processor Part

* Update CMakeLists.txt

* fix: Add react-native-worklets Gradle dependency

* Update Podfile.lock

* fix build

* gradle:7.4.1

* Init JSI Bindings in method on Android

* Fix Folly flags

* fix: Init `FrameProcessorRuntimeManager` later

* fix: Wrap in `<GestureHandlerRootView>`

* Refactor plugins

* fix: Remove enableFrameProcessors

* Install RN Worklets from current GH master

* Update babel.config.js

* Update CameraViewModule.kt

* Update ImageProxyUtils.java

* feat: Upgrade to Reanimated v3

* fix: Fix crash on Worklet init

* Update RN Worklets to latest master

* fix: Simplify FP Plugins Proxy
2023-02-13 15:22:45 +01:00
Marc Rousavy
11d1e7178d
chore: Upgrade to RN 71 (#1465)
* chore: Upgrade Example to RN 0.71

* chore: Upgrade all libs

* fix: Fix CameraRoll installation

* Update Gradle Tools

* fix: Fix buildscripts

* Clean out build.gradle

* fix: Fix Kotlin setup

* fix: Move kotlin-android dependency to lib

* Move `_setGlobalConsole`

* Update gradle-wrapper.properties

* Rebuild lockfiles

* chore: Update build:gradle

* Update StatusBarBlurBackground.tsx

* Use Java 11 in Workflows

* Update MediaPage.tsx

* Add `google` repository to build.gradle

* Double Java Heap size

* Increase heap size

* Alternative args

* Update build.gradle
2023-02-09 11:52:41 +01:00
Rohan Barman
6b32cd9cd7
docs: Replace outdated react-native-reanimated doc links (#1304) 2022-10-28 12:18:36 +02:00
Lihang Xu
312b82b9f6
docs: Add Dynamsoft Label Recognizer Frame Processor Plugin (#1183) 2022-08-05 09:52:35 +02:00
Philipp Parzer
f289f91773
docs: Fix typo in ERRORS (#1160)
fix typo "promt" to "prompt"
2022-07-25 13:26:18 +02:00
Mateusz Mędrek
2a73c09be5
docs: add vision-camera-plugin-builder sections in Creating Frame Processor Plugins (#1123)
- add automatic setup section to "Creating Frame Processor Plugins (iOS|Android)" with
vision-camera-plugin-builder CLI
2022-07-07 14:06:31 +02:00
Joaquín Ossandon
de41f8be83
docs: 📄 Add mocking section to docs (#1061)
* docs: add mocking mdx guide

* docs: show mocking section on sidebar
2022-05-27 11:34:54 +02:00
Marc Rousavy
485f33eb1c docs: Add Margelo Banner (https://margelo.io) 2022-04-11 15:55:03 +02:00
Aaron Grider
e529591880
docs: Add OCR frame processor plugin (#842) 2022-02-22 13:27:27 +01:00
Dominique Rau
c2de683d67
Update TROUBLESHOOTING.mdx (#832) 2022-02-17 11:10:14 +01:00
Lihang Xu
5e7b6a7050
docs: Add Dynamsoft Barcode Reader plugin (#772) 2022-01-27 08:45:07 +01:00
Marc Rousavy
13516c706b Update FRAME_PROCESSORS.mdx 2022-01-11 12:41:41 +01:00
Marc Rousavy
a0b21775e3 Update FRAME_PROCESSORS.mdx 2022-01-11 12:41:19 +01:00
Marc Rousavy
d44ed2ea39 Update FRAME_PROCESSORS.mdx 2022-01-11 12:39:05 +01:00
Marc Rousavy
c2518bc40f docs: Add documentation for disabling Frame Processors on Expo 2022-01-11 12:38:32 +01:00
Marc Rousavy
9d3665d7b8
chore(deps): Upgrade docs deps (#697)
* chore(deps): Upgrade deps (docs)

* Update package.json

* Update yarn.lock
2022-01-02 18:06:19 +01:00
Marc Rousavy
be5ec69b02
feat: Make Reanimated optional (disable Frame Processors if REA v2 is not installed) (#412)
* Fix building iOS without Reanimated

* Conditionally compile Frame Processors (gradle)

* Conditionally use externalNativeBuild

* Remove Reanimated import

* fix: Conditionally load REA/VisionCamera libraries

* fix: Add disable FP to docs

* fix: Fix dummy placeholder for Scheduler.mm

* fix: Fix dummy `Scheduler` declaration

* fix: Only init `CameraView` C++ side if frame processors are enabled

* fix: Install JSI Bindings on Frame Processor Manager ctor

* fix: Wrong conditional

* whoops
2022-01-02 17:35:26 +01:00
Daniel
5bbe2bfbab
docs: Update compileSdkVersion and targetSdkVersion (#585)
SDK version 31 required after 8d24e344c9
2021-12-30 11:39:38 +01:00
Hirbod
c2ba4fb1af
docs: Update Zooming code link (#661)
Change example link from fixed commit to master (this prevents copying old/non-working code)
2021-12-30 10:10:15 +01:00
dependabot[bot]
b10ca27daa
chore(deps-dev): bump docusaurus-plugin-typedoc in /docs (#649)
Bumps [docusaurus-plugin-typedoc](https://github.com/tgreyuk/typedoc-plugin-markdown/tree/HEAD/packages/docusaurus-plugin-typedoc) from 0.16.3 to 0.16.6.
- [Release notes](https://github.com/tgreyuk/typedoc-plugin-markdown/releases)
- [Changelog](https://github.com/tgreyuk/typedoc-plugin-markdown/blob/master/packages/docusaurus-plugin-typedoc/CHANGELOG.md)
- [Commits](https://github.com/tgreyuk/typedoc-plugin-markdown/commits/docusaurus-plugin-typedoc@0.16.6/packages/docusaurus-plugin-typedoc)

---
updated-dependencies:
- dependency-name: docusaurus-plugin-typedoc
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-12-13 17:01:21 +01:00
Marc Rousavy
934de142ee docs: Update Format.pixelFormat documentation 2021-12-10 09:52:40 +01:00
dependabot[bot]
007cf8f72a
chore(deps-dev): bump typedoc-plugin-markdown in /docs (#509)
Bumps [typedoc-plugin-markdown](https://github.com/tgreyuk/typedoc-plugin-markdown/tree/HEAD/packages/typedoc-plugin-markdown) from 3.11.2 to 3.11.3.
- [Release notes](https://github.com/tgreyuk/typedoc-plugin-markdown/releases)
- [Changelog](https://github.com/tgreyuk/typedoc-plugin-markdown/blob/master/packages/typedoc-plugin-markdown/CHANGELOG.md)
- [Commits](https://github.com/tgreyuk/typedoc-plugin-markdown/commits/typedoc-plugin-markdown@3.11.3/packages/typedoc-plugin-markdown)

---
updated-dependencies:
- dependency-name: typedoc-plugin-markdown
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-11 18:29:02 +02:00
dependabot[bot]
eff2e17c97
chore(deps-dev): bump typedoc from 0.22.4 to 0.22.5 in /docs (#475)
Bumps [typedoc](https://github.com/TypeStrong/TypeDoc) from 0.22.4 to 0.22.5.
- [Release notes](https://github.com/TypeStrong/TypeDoc/releases)
- [Changelog](https://github.com/TypeStrong/typedoc/blob/master/CHANGELOG.md)
- [Commits](https://github.com/TypeStrong/TypeDoc/compare/v0.22.4...v0.22.5)

---
updated-dependencies:
- dependency-name: typedoc
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-10-05 10:38:37 +02:00
Ben McDonald
c627febde5
docs: Fix small typo (#473) 2021-10-02 15:07:32 +02:00
dependabot[bot]
d2cb52fe92
chore(deps-dev): bump typedoc-plugin-markdown in /docs (#462)
Bumps [typedoc-plugin-markdown](https://github.com/tgreyuk/typedoc-plugin-markdown/tree/HEAD/packages/typedoc-plugin-markdown) from 3.11.0 to 3.11.2.
- [Release notes](https://github.com/tgreyuk/typedoc-plugin-markdown/releases)
- [Changelog](https://github.com/tgreyuk/typedoc-plugin-markdown/blob/master/packages/typedoc-plugin-markdown/CHANGELOG.md)
- [Commits](https://github.com/tgreyuk/typedoc-plugin-markdown/commits/typedoc-plugin-markdown@3.11.2/packages/typedoc-plugin-markdown)

---
updated-dependencies:
- dependency-name: typedoc-plugin-markdown
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-09-29 12:31:47 +02:00
alexstanbury
ef40b1db23
docs: Fix Frame Processor install step and QualityPrioritization Order (#451)
* fix: switched incorrect property ordering for qualityPrioritization options

fix: added extra step required for create frame processing plugin on Android

* fix: adjusted the highlighted line

* chore: added guidelines on how to generate and check docs updares

* chore: change instructions so they aren't so unnecessarily wordy! :P
2021-09-24 10:15:26 +02:00
Marc Rousavy
d3105fa207
chore: Upgrade a whole lotta dependencies (#436)
* chore: Upgrade a lot of dependencies for `./`

* chore: Upgrade a lot of dependencies for `./example`

* chore: Upgrade a lot of dependencies for `./docs`

* Use new `EventEmitter` syntax (`.remove()`)

* Update Podfile.lock

* docs: Use watch mode

* docs: Replace all relative links with absolute

* Fix all links

* Update docusaurus.config.js

* Upgrade docusaurus-plugin-typedoc to fix docs build

* Update yarn.lock

* Upgrade typescript to 4.4.3

* Fix error unknown

* Update package.json

* Upgrade typedoc

* Upgrade a few more deps

* Fix deprecated sidebar syntax

* Update Gemfile.lock
2021-09-22 13:58:59 +02:00
Marc Rousavy
68d737d6df
Update FRAME_PROCESSORS.mdx 2021-09-13 10:40:46 +02:00
Rodrigo Gomes
58e586220e
feat: add qrcode scanner plugin (#417)
* add qrcode scanner plugin

* chore: update FRAME_PROCESSOR_PLUGIN_LIST
2021-09-10 12:31:57 +02:00
Marc Rousavy
3aa1f5f849
Update FRAME_PROCESSORS.mdx 2021-09-09 22:04:33 +02:00
Marc Rousavy
43f5c54363
Update FRAME_PROCESSOR_CREATE_FINAL.mdx 2021-09-09 22:04:05 +02:00
Marc Rousavy
fe4b3c093b
Update ERRORS.mdx 2021-09-09 22:03:23 +02:00
Marc Rousavy
7ccc8b65f0
Update FORMATS.mdx 2021-09-09 22:01:52 +02:00
Marc Rousavy
0bbda5b84b
Update FORMATS.mdx 2021-09-09 22:01:23 +02:00
Marc Rousavy
57efc0e315
docs: Add vision-camera-ocr plugin to Community Plugins 2021-09-02 10:24:04 +02:00
Marc Rousavy
f558eb826b
docs: Add two plugins to the Community Plugins List
Adds @rodgomesc's vision-camera-face-detector and my Colorwaver app
2021-09-02 10:21:21 +02:00
Marc Rousavy
dc02a6ec7c
docs: Fix invalid static NSArray allocation 2021-08-28 10:19:06 +02:00
Marc Rousavy
f5e4ab9460
Update FRAME_PROCESSOR_PLUGIN_LIST.mdx 2021-08-16 16:44:56 +02:00
Marc Rousavy
a2293e858d
fix: Fix TypeScript relative imports (#358)
* fix: Fix TypeScript relative imports

* Decouple `example` from tsconfig

* fix ESLint config

* add lint-ci script

* move example running to workflow

* test ts

* test eslint

* test ts

* fix ESLint formatter

* Revert "fix ESLint formatter"

This reverts commit 21aca0dcdb54d4ce98b33d2b4f1decc18bc82e85.

* Revert "test ts"

This reverts commit becc346ad3d097b7d3570ebc8b5bf80390aadf87.

* Revert "test eslint"

This reverts commit 9c9f0b81bf3aa57188f550a34b2a8151e364f3b0.

* Revert "test ts"

This reverts commit 3cbe7200608910087b43e0d9cdae0917b0b4215e.
2021-08-16 10:45:41 +02:00
Marc Rousavy
b5452ac406
Update FRAME_PROCESSORS.mdx 2021-08-10 14:10:07 +02:00
Marc Rousavy
cc4d9c519b
docs: Improve cat bounds example 2021-08-10 14:08:52 +02:00
dependabot[bot]
f000835e21
chore(deps): bump @docusaurus/preset-classic in /docs (#317)
Bumps [@docusaurus/preset-classic](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-preset-classic) from 2.0.0-beta.3 to 2.0.0-beta.4.
- [Release notes](https://github.com/facebook/docusaurus/releases)
- [Changelog](https://github.com/facebook/docusaurus/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/docusaurus/commits/v2.0.0-beta.4/packages/docusaurus-preset-classic)

---
updated-dependencies:
- dependency-name: "@docusaurus/preset-classic"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-08-06 10:36:01 +02:00
Marc Rousavy
1c32726ef6
fix: Throw JS errors if JSI <-> JNI conversion failed (#324) 2021-08-05 10:10:49 +02:00
Marc Rousavy
b493576373
fix: Fix java.lang.NoSuchMethodError error for .toArrayList() (#322)
* fix: Fix `java.lang.NoSuchMethodError` error for `.toArrayList()`

* Fix `HashMap<K, V>` conversion to `jsi::Object`

* Update FRAME_PROCESSORS_CREATE_OVERVIEW.mdx
2021-08-04 16:07:08 +02:00
Marc Rousavy
0f7ee51333
feat: Add console logging support for Frame Processors (#297)
* Try to log to console via runOnJS

* Call `console.log`

* Create custom `VisionCameraScheduler`

* Fix scheduler call

* Call with this

* Fix console setting

* Move J---- to `java-bindings`

* c++ style

* Android: 1/2 Create custom Scheduler

* Android: 2/2 Use custom Scheduler

* Don't use `runOnJS`, use `__callAsync` directly
2021-07-30 10:27:45 +02:00
Marc Rousavy
445af943c3
feat: BREAKING CHANGE: Express zoom factor always in actual factor value (1, 2, 128, ...) instead of 0.0-1.0 scale (#306)
* Make `zoom` go on "factor" scale

* Clean up `zoom` code

* fix float conversion

* fix zoom interpretation

* Update docs for new zoom scale

* fix float conversion
2021-07-29 11:44:22 +02:00
Marc Rousavy
6e2dc4e73b
Update ZOOMING.mdx 2021-07-29 10:54:56 +02:00
Marc Rousavy
2856aa11f9
Update DEVICES.mdx 2021-07-29 10:52:39 +02:00
Marc Rousavy
6056979253
Update DEVICES.mdx 2021-07-29 10:52:05 +02:00
Marc Rousavy
87a5af87ad
Update DEVICES.mdx 2021-07-29 10:49:32 +02:00
Marc Rousavy
b8b1a5c547 docs: Improve CameraDevices documentation 2021-07-29 10:14:50 +02:00
Marc Rousavy
cbcde138fb
Update FRAME_PROCESSORS.mdx 2021-07-26 15:41:03 +02:00
Marc Rousavy
070d00718c
docs: Add examples for supportsParallelVideoProcessing 2021-07-26 15:37:55 +02:00
Marc Rousavy
bdad8c1295
Update SETUP.mdx 2021-07-26 15:32:43 +02:00
Marc Rousavy
4b4ea0ff33
fix: Fix UI Thread race condition in setFrameProcessor(...) (#265)
* fix: Fix UI Thread race condition in `setFrameProcessor(...)`

* Revert "fix: Fix UI Thread race condition in `setFrameProcessor(...)`"

This reverts commit 9c524e123cff6843d7d11db602a5027d1bb06b4b.

* Use `setImmediate` to call `setFrameProcessor(...)`

* Fix frame processor order of applying

* Add `enableFrameProcessor` prop that defines if a FP is added

* rename constant

* Implement `enableFrameProcessor` prop for Android and make `frameProcessorFps` faster

* link to troubleshooting guide

* Update TROUBLESHOOTING.mdx

* Add logs for use-cases

* fix log

* set initial frame processor in `onLayout` instead of `componentDidMount`
2021-07-12 15:16:03 +02:00
Marc Rousavy
25ac233088
Update FRAME_PROCESSORS.mdx 2021-07-09 10:21:02 +02:00
Marc Rousavy
cf96a6a9e6
Update FRAME_PROCESSORS_CREATE_OVERVIEW.mdx 2021-07-08 16:56:35 +02:00
Marc Rousavy
6f10188037
docs: Use Java in FPP "Overview" for simplicity (#266)
* Add android tab for docs

* Update FRAME_PROCESSORS_CREATE_OVERVIEW.mdx

* Add Objective-C

* Only use Java for examples (that's simpler to understand)

* Add Exceptions docs
2021-07-08 16:05:51 +02:00
Marc Rousavy
9ef2496a7a
Update FRAME_PROCESSORS.mdx 2021-07-08 14:23:30 +02:00
Marc Rousavy
a62697fe2a
Update FRAME_PROCESSORS.mdx 2021-07-08 14:22:56 +02:00
Marc Rousavy
cf68a4c647
docs: Explain Frame Processor benefits more 2021-07-08 14:17:10 +02:00
Marc Rousavy
5b75ce0dfb
Update TROUBLESHOOTING.mdx 2021-07-08 12:05:29 +02:00
Marc Rousavy
63cc806bd6
docs: Update Android TROUBLESHOOTING 2021-07-08 12:03:00 +02:00
dependabot[bot]
7661aea442
chore(deps): bump @docusaurus/preset-classic in /docs (#250)
Bumps [@docusaurus/preset-classic](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-preset-classic) from 2.0.0-beta.2 to 2.0.0-beta.3.
- [Release notes](https://github.com/facebook/docusaurus/releases)
- [Changelog](https://github.com/facebook/docusaurus/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/docusaurus/commits/v2.0.0-beta.3/packages/docusaurus-preset-classic)

---
updated-dependencies:
- dependency-name: "@docusaurus/preset-classic"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-07-07 16:17:27 +02:00
Marc Rousavy
a4397e1978 docs: Update expo install docs 2021-07-07 16:13:15 +02:00
Marc Rousavy
b40d3ddc6b docs: Update expo getting started docs 2021-07-07 16:06:01 +02:00
Marc Rousavy
d3a8b49f9b
feat: Expo support (#260)
* Create `withVisionCamera` plugin

* Add docs for setting up Expo

* Update SETUP.mdx

* Update app.config.js

* rename config -> plugin

* Update SETUP.mdx

* add "runs with expo" badge to README

* Revert "add "runs with expo" badge to README"

This reverts commit e05a87a2354a056432af7b94060e95df37077472.

* fix `withVisionCamera` path

* remove unnecessary type docs
2021-07-07 14:55:25 +02:00
Marc Rousavy
ba50e2b485
Update FRAME_PROCESSORS.mdx 2021-07-07 10:21:17 +02:00
Marc Rousavy
2fa0f8fd46
chore: Clean up root directory (#236)
* Clean up root

* remove unused REA patches

* Remove `cpp/` and create headers per platform

* fix `#import`

* fix `VISION_CAMERA_DISABLE_FRAME_PROCESSORS`
2021-07-06 16:42:58 +02:00
Marc Rousavy
65168f7abb
Update FRAME_PROCESSORS_CREATE_OVERVIEW.mdx 2021-07-06 15:28:17 +02:00
Marc Rousavy
444e421e67
Update FRAME_PROCESSORS_CREATE_OVERVIEW.mdx 2021-07-06 15:21:40 +02:00
Marc Rousavy
1f680276a0
Update FRAME_PROCESSORS.mdx 2021-07-06 15:16:54 +02:00
Marc Rousavy
3e3485ff7e
Update FRAME_PROCESSORS.mdx 2021-07-06 15:15:57 +02:00
Marc Rousavy
18e0d3ec7d
docs: Re-order Frame Processor docs 2021-07-06 15:12:29 +02:00
Marc Rousavy
db9c7d8e00
Update FRAME_PROCESSORS.mdx 2021-07-06 15:06:14 +02:00
Marc Rousavy
4a362a544f
Update FRAME_PROCESSORS.mdx 2021-07-06 15:05:13 +02:00
Marc Rousavy
d4057e9d8e
Update FRAME_PROCESSORS.mdx 2021-07-06 15:03:40 +02:00
Marc Rousavy
5ad386bfbc
Update FRAME_PROCESSORS.mdx 2021-07-06 15:01:58 +02:00
Marc Rousavy
94914907ba
docs: Shorten code sample 2021-07-06 14:56:44 +02:00
Marc Rousavy
1646bb56f4
docs: Link to Worklets docs 2021-07-06 14:54:05 +02:00
Marc Rousavy
db0baaefe8
docs: Use Hotdog/Not Hotdog as sample 2021-07-06 14:52:28 +02:00
Marc Rousavy
b39b38006c
docs: Update "The Frame object" docs 2021-07-06 14:32:39 +02:00
Marc Rousavy
ff892c2f4b
docs: Emphasize "video processing" 2021-07-06 14:02:04 +02:00
Marc Rousavy
949c44a97f
docs: Fix confusing wording 2021-07-06 14:00:48 +02:00
Marc Rousavy
0f6d0978f0
docs: Update Frame Processor Technical docs 2021-07-06 10:37:56 +02:00
Marc Rousavy
08d04d1be1 docs: Update documentation titles 2021-06-28 15:56:49 +02:00
dependabot[bot]
8451ba7584
chore(deps): bump @docusaurus/preset-classic in /docs (#222)
Bumps [@docusaurus/preset-classic](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus-preset-classic) from 2.0.0-beta.0 to 2.0.0-beta.1.
- [Release notes](https://github.com/facebook/docusaurus/releases)
- [Changelog](https://github.com/facebook/docusaurus/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/docusaurus/commits/v2.0.0-beta.1/packages/docusaurus-preset-classic)

---
updated-dependencies:
- dependency-name: "@docusaurus/preset-classic"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-06-27 14:06:38 +02:00
dependabot[bot]
39952d4294
chore(deps): bump @docusaurus/core in /docs (#220)
Bumps [@docusaurus/core](https://github.com/facebook/docusaurus/tree/HEAD/packages/docusaurus) from 2.0.0-beta.0 to 2.0.0-beta.1.
- [Release notes](https://github.com/facebook/docusaurus/releases)
- [Changelog](https://github.com/facebook/docusaurus/blob/master/CHANGELOG.md)
- [Commits](https://github.com/facebook/docusaurus/commits/v2.0.0-beta.1/packages/docusaurus)

---
updated-dependencies:
- dependency-name: "@docusaurus/core"
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-06-27 13:56:54 +02:00
Marc Rousavy
87e6bb710e
feat: Frame Processors for Android (#196)
* Create android gradle build setup

* Fix `prefab` config

* Add `pickFirst **/*.so` to example build.gradle

* fix REA path

* cache gradle builds

* Update validate-android.yml

* Create Native Proxy

* Copy REA header

* implement ctor

* Rename CameraViewModule -> FrameProcessorRuntimeManager

* init FrameProcessorRuntimeManager

* fix name

* Update FrameProcessorRuntimeManager.h

* format

* Create AndroidErrorHandler.h

* Initialize runtime and install JSI funcs

* Update FrameProcessorRuntimeManager.cpp

* Update CameraViewModule.kt

* Make CameraView hybrid C++ class to find view & set frame processor

* Update FrameProcessorRuntimeManager.cpp

* pass function by rvalue

* pass by const &&

* extract hermes and JSC REA

* pass `FOR_HERMES`

* correctly prepare JSC and Hermes

* Update CMakeLists.txt

* add missing hermes include

* clean up imports

* Create JImageProxy.h

* pass ImageProxy to JNI as `jobject`

* try use `JImageProxy` C++ wrapper type

* Use `local_ref<JImageProxy>`

* Create `JImageProxyHostObject` for JSI interop

* debug call to frame processor

* Unset frame processor

* Fix CameraView native part not being registered

* close image

* use `jobject` instead of `JImageProxy` for now :(

* fix hermes build error

* Set enable FP callback

* fix JNI call

* Update CameraView.cpp

* Get Format

* Create plugin abstract

* Make `FrameProcessorPlugin` a hybrid object

* Register plugin CXX

* Call `registerPlugin`

* Catch

* remove JSI

* Create sample QR code plugin

* register plugins

* Fix missing JNI binding

* Add `mHybridData`

* prefix name with two underscores (`__`)

* Update CameraPage.tsx

* wrap `ImageProxy` in host object

* Use `jobject` for HO box

* Update JImageProxy.h

* reinterpret jobject

* Try using `JImageProxy` instead of `jobject`

* Update JImageProxy.h

* get bytes per row and plane count

* Update CameraView.cpp

* Return base

* add some docs and JNI JSI conversion

* indent

* Convert JSI value to JNI jobject

* using namespace facebook

* Try using class

* Use plain old Object[]

* Try convert JNI -> JSI

* fix decl

* fix bool init

* Correctly link folly

* Update CMakeLists.txt

* Convert Map to Object

* Use folly for Map and Array

* Return `alias_ref<jobject>` instead of raw `jobject`

* fix JNI <-> JSI conversion

* Update JSIJNIConversion.cpp

* Log parameters

* fix params index offset

* add more test cases

* Update FRAME_PROCESSORS_CREATE_OVERVIEW.mdx

* fix types

* Rename to example plugin

* remove support for hashmap

* Try use HashMap iterable fbjni binding

* try using JReadableArray/JReadableMap

* Fix list return values

* Update JSIJNIConversion.cpp

* Update JSIJNIConversion.cpp

* (iOS) Rename ObjC QR Code Plugin to Example Plugin

* Rename Swift plugin QR -> Example

* Update ExamplePluginSwift.swift

* Fix Map/Dictionary logging format

* Update ExampleFrameProcessorPlugin.m

* Reconfigure session if frame processor changed

* Handle use-cases via `maxUseCasesCount`

* Don't crash app on `configureSession` error

* Document "use-cases"

* Update DEVICES.mdx

* fix merge

* Make `const &`

* iOS: Automatically enable `video` if a `frameProcessor` is set

* Update CameraView.cpp

* fix docs

* Automatically fallback to snapshot capture if `supportsParallelVideoProcessing` is false.

* Fix lookup

* Update CameraView.kt

* Implement `frameProcessorFps`

* Finalize Frame Processor Plugin Hybrid

* Update CameraViewModule.kt

* Support `flash` on `takeSnapshot()`

* Update docs

* Add docs

* Update CameraPage.tsx

* Attribute NonNull

* remove unused imports

* Add Android docs for Frame Processors

* Make JNI HashMap <-> JSI Object conversion faster

directly access `toHashMap` instead of going through java

* add todo

* Always run `prepareJSC` and `prepareHermes`

* switch jsc and hermes

* Specify ndkVersion `21.4.7075529`

* Update gradle.properties

* Update gradle.properties

* Create .aar

* Correctly prepare android package

* Update package.json

* Update package.json

* remove `prefab` build feature

* split

* Add docs for registering the FP plugin

* Add step for dep

* Update CaptureButton.tsx

* Move to `reanimated-headers/`

* Exclude reanimated-headers from cpplint

* disable `build/include_order` rule

* cpplint fixes

* perf: Make `JSIJNIConversion` a `namespace` instead of `class`

* Ignore runtime/references for `convert` funcs

* Build Android .aar in CI

* Run android build script only on `prepack`

* Update package.json

* Update package.json

* Update build-android-npm-package.sh

* Move to `yarn build`

* Also install node_modules in example step

* Update validate-android.yml

* sort imports

* fix torch

* Run ImageAnalysis on `FrameProcessorThread`

* Update Errors.kt

* Add clean android script

* Upgrade reanimated to 2.3.0-alpha.1

* Revert "Upgrade reanimated to 2.3.0-alpha.1"

This reverts commit c1d3bed5e03728d0b5e335a359524ff4f56f5035.

* ⚠️ TEMP FIX: hotfix reanimated build.gradle

* Update CameraView+TakeSnapshot.kt

* ⚠️ TEMP FIX: Disable ktlint action for now

* Update clean.sh

* Set max heap size to 4g

* rebuild lockfiles

* Update Podfile.lock

* rename

* Build lib .aar before example/
2021-06-27 12:37:54 +02:00
Marc Rousavy
a2311c02ac
Update FRAME_PROCESSOR_CREATE_PLUGIN_IOS.mdx 2021-06-24 12:12:43 +02:00
Marc Rousavy
2a00f2a098
Update FRAME_PROCESSORS.mdx 2021-06-24 12:07:15 +02:00
Marc Rousavy
7164b34510
Update FRAME_PROCESSORS.mdx 2021-06-24 12:05:52 +02:00
Marc Rousavy
9ea158ad8f
chore: Move to /mrousavy/ (#224)
* rename 1/n

* 2

* 3

* fix indent
2021-06-21 22:42:46 +02:00
Marc Rousavy
88a30e5723
Update LIFECYCLE.mdx 2021-06-09 17:21:13 +02:00
Marc Rousavy
489d313451
docs: Update Zooming 2021-06-09 12:49:59 +02:00
Marc Rousavy
48a97eccdd docs: Move ANIMATED -> ZOOMING 2021-06-09 12:46:26 +02:00
Marc Rousavy
8e520c42fe
docs: Update zooming 2021-06-09 12:45:22 +02:00