Marc Rousavy
907e7936d5
Update BUG_REPORT.yml
2023-09-14 14:10:52 +02:00
Marc Rousavy
b8fc32db34
Update BUG_REPORT.yml
2023-09-14 14:10:41 +02:00
Marc Rousavy
e4c6e5d11f
Update BUG_REPORT.yml
2023-09-14 14:09:47 +02:00
Marc Rousavy
d8ac0b54fa
Update BUG_REPORT.yml
2023-09-14 14:06:09 +02:00
Marc Rousavy
62ae7cc887
Update BUG_REPORT.yml
2023-09-14 14:02:26 +02:00
Marc Rousavy
d251394eb2
Update BUG_REPORT.yml
2023-09-14 14:02:18 +02:00
Marc Rousavy
87af5dd761
Update BUG_REPORT.yml
2023-09-14 14:02:02 +02:00
Marc Rousavy
ca7c8ab22d
chore: Use new Android Lint CI ( #1761 )
...
* chore: Use new Android Lint CI
* Update validate-android.yml
2023-09-06 11:01:36 +02:00
Marc Rousavy
f3fd3f15e3
chore: Clean up Android codebase a bit ( #1748 )
...
<!--
❤️ Thank you for your contribution! ❤️
Make sure you have read the Contributing Guidelines:
https://github.com/mrousavy/react-native-vision-camera/blob/main/CONTRIBUTING.md
-->
## What
<!--
Enter a short description on what this pull-request does.
Examples:
This PR adds support for the HEVC format.
This PR fixes a "unsupported device" error on iPhone 8 and below.
This PR fixes a typo in a CameraError.
This PR adds support for Quadruple Cameras.
-->
## Changes
<!--
Create a short list of logic-changes.
Examples:
* This PR changes the default value of X to Y.
* This PR changes the configure() function to cache results.
-->
## Tested on
<!--
Create a short list of devices and operating-systems you have tested
this change on. (And verified that everything works as expected).
Examples:
* iPhone 11 Pro, iOS 14.3
* Huawai P20, Android 10
-->
## Related issues
<!--
Link related issues here.
Examples:
* Fixes #29
* Closes #30
* Resolves #5
-->
2023-09-02 01:04:36 +02:00
Marc Rousavy
f2c41e333c
Update config.yml
2023-09-01 23:52:10 +02:00
Marc Rousavy
84272d2a2a
Update BUILD_ERROR.yml
2023-09-01 23:49:23 +02:00
Marc Rousavy
74b5898af7
fix: Use pod install
instead of bundle exec pod ...
2023-09-01 20:21:40 +02:00
Marc Rousavy
7ca226aa76
Add optional checkboxes
2023-09-01 20:10:44 +02:00
Marc Rousavy
e44d0e7aed
chore: Fix iOS build CI
2023-09-01 20:09:33 +02:00
Marc Rousavy
c3f6589b48
Update issue templates
2023-09-01 18:46:41 +02:00
Marc Rousavy
036856aed5
chore: Move everything into package/
( #1745 )
...
* Move everything into package
* Remove .DS_Store
* Move scripts and eslintrc to package
* Create CODE_OF_CONDUCT.md
* fix some links
* Update all links (I think)
* Update generated docs
* Update notice-yarn-changes.yml
* Update validate-android.yml
* Update validate-cpp.yml
* Delete notice-yarn-changes.yml
* Update validate-cpp.yml
* Update validate-cpp.yml
* Update validate-js.yml
* Update validate-cpp.yml
* Update validate-cpp.yml
* wrong c++ style
* Revert "wrong c++ style"
This reverts commit 55a3575589c6f13f8b05134d83384f55e0601ab2.
2023-09-01 18:15:28 +02:00
Marc Rousavy
03b57a7d27
feat: Use clang-format to keep the C++ codebase clean ( #1741 )
...
* Use clang-format
* Create .clang-format
* Update .clang-format
* Update .clang-format
* Update .clang-format
* Only search in cpp dirs
* Update clang-format.sh
* Update .clang-format
* Update .clang-format
* Update .clang-format
* Format C++ code!
* Use version 16
* Update clang-format.sh
* Remove Shaders.ts
* fix: Lint Swift
2023-09-01 12:58:32 +02:00
Marc Rousavy
0a28454579
chore: Remove Skia ❌ 🎨 ( #1740 )
...
* Revert "feat: Skia for Android (#1731 )"
This reverts commit a7c137da07
.
* Remove some skia
* Remove all the Skia stuff.
* Update useFrameProcessor.ts
* Update lockfiles
* fix: Use native Preview again
* Use `OpenGLTexture&` again
* Remove `PreviewOutput` (we use `SurfaceView` in parallel)
* fix: Log photo widths
* fix: Fix cpplint
2023-09-01 12:20:17 +02:00
Marc Rousavy
37a3548a81
feat: Full Android rewrite (CameraX -> Camera2) ( #1674 )
...
* Nuke CameraX
* fix: Run View Finder on UI Thread
* Open Camera, set up Threads
* fix init
* Mirror if needed
* Try PreviewView
* Use max resolution
* Add `hardwareLevel` property
* Check if output type is supported
* Replace `frameRateRanges` with `minFps` and `maxFps`
* Remove `isHighestPhotoQualitySupported`
* Remove `colorSpace`
The native platforms will use the best / most accurate colorSpace by default anyways.
* HDR
* Check from format
* fix
* Remove `supportsParallelVideoProcessing`
* Correctly return video/photo sizes on Android now. Finally
* Log all Device props
* Log if optimized usecase is used
* Cleanup
* Configure Camera Input only once
* Revert "Configure Camera Input only once"
This reverts commit 0fd6c03f54c7566cb5592053720c4a8743aba92e.
* Extract Camera configuration
* Try to reconfigure all
* Hook based
* Properly set up `CameraSession`
* Delete unused
* fix: Fix recreate when outputs change
* Update NativePreviewView.kt
* Use callback for closing
* Catch CameraAccessException
* Finally got it stable
* Remove isMirrored
* Implement `takePhoto()`
* Add ExifInterface library
* Run findViewById on UI Thread
* Add Photo Output Surface to takePhoto
* Fix Video Stabilization Modes
* Optimize Imports
* More logs
* Update CameraSession.kt
* Close Image
* Use separate Executor in CameraQueue
* Delete hooks
* Use same Thread again
* If opened, call error
* Update CameraSession.kt
* Log HW level
* fix: Don't enable Stream Use Case if it's not 100% supported
* Move some stuff
* Cleanup PhotoOutputSynchronizer
* Try just open in suspend fun
* Some synchronization fixes
* fix logs
* Update CameraDevice+createCaptureSession.kt
* Update CameraDevice+createCaptureSession.kt
* fixes
* fix: Use Snapshot Template for speed capture prio
* Use PREVIEW template for repeating request
* Use `TEMPLATE_RECORD` if video use-case is attached
* Use `isRunning` flag
* Recreate session everytime on active/inactive
* Lazily get values in capture session
* Stability
* Rebuild session if outputs change
* Set `didOutputsChange` back to false
* Capture first in lock
* Try
* kinda fix it? idk
* fix: Keep Outputs
* Refactor into single method
* Update CameraView.kt
* Use Enums for type safety
* Implement Orientation (I think)
* Move RefCount management to Java (Frame)
* Don't crash when dropping a Frame
* Prefer Devices with higher max resolution
* Prefer multi-cams
* Use FastImage for Media Page
* Return orientation in takePhoto()
* Load orientation from EXIF Data
* Add `isMirrored` props and documentation for PhotoFile
* fix: Return `not-determined` on Android
* Update CameraViewModule.kt
* chore: Upgrade packages
* fix: Fix Metro Config
* Cleanup config
* Properly mirror Images on save
* Prepare MediaRecorder
* Start/Stop MediaRecorder
* Remove `takeSnapshot()`
It no longer works on Android and never worked on iOS. Users could use useFrameProcessor to take a Snapshot
* Use `MediaCodec`
* Move to `VideoRecording` class
* Cleanup Snapshot
* Create `SkiaPreviewView` hybrid class
* Create OpenGL context
* Create `SkiaPreviewView`
* Fix texture creation missing context
* Draw red frame
* Somehow get it working
* Add Skia CMake setup
* Start looping
* Init OpenGL
* Refactor into `SkiaRenderer`
* Cleanup PreviewSize
* Set up
* Only re-render UI if there is a new Frame
* Preview
* Fix init
* Try rendering Preview
* Update SkiaPreviewView.kt
* Log version
* Try using Skia (fail)
* Drawwwww!!!!!!!!!! 🎉
* Use Preview Size
* Clear first
* Refactor into SkiaRenderer
* Add `previewType: "none"` on iOS
* Simplify a lot
* Draw Camera? For some reason? I have no idea anymore
* Fix OpenGL errors
* Got it kinda working again?
* Actually draw Frame woah
* Clean up code
* Cleanup
* Update on main
* Synchronize render calls
* holy shit
* Update SkiaRenderer.cpp
* Update SkiaRenderer.cpp
* Refactor
* Update SkiaRenderer.cpp
* Check for `NO_INPUT_TEXTURE`^
* Post & Wait
* Set input size
* Add Video back again
* Allow session without preview
* Convert JPEG to byte[]
* feat: Use `ImageReader` and use YUV Image Buffers in Skia Context (#1689 )
* Try to pass YUV Buffers as Pixmaps
* Create pixmap!
* Clean up
* Render to preview
* Only render if we have an output surface
* Update SkiaRenderer.cpp
* Fix Y+U+V sampling code
* Cleanup
* Fix Semaphore 0
* Use 4:2:0 YUV again idk
* Update SkiaRenderer.h
* Set minSdk to 26
* Set surface
* Revert "Set minSdk to 26"
This reverts commit c4085b7c16c628532e5c2d68cf7ed11c751d0b48.
* Set previewType
* feat: Video Recording with Camera2 (#1691 )
* Rename
* Update CameraSession.kt
* Use `SurfaceHolder` instead of `SurfaceView` for output
* Update CameraOutputs.kt
* Update CameraSession.kt
* fix: Fix crash when Preview is null
* Check if snapshot capture is supported
* Update RecordingSession.kt
* S
* Use `MediaRecorder`
* Make audio optional
* Add Torch
* Output duration
* Update RecordingSession.kt
* Start RecordingSession
* logs
* More log
* Base for preparing pass-through Recording
* Use `ImageWriter` to append Images to the Recording Surface
* Stream PRIVATE GPU_SAMPLED_IMAGE Images
* Add flags
* Close session on stop
* Allow customizing `videoCodec` and `fileType`
* Enable Torch
* Fix Torch Mode
* Fix comparing outputs with hashCode
* Update CameraSession.kt
* Correctly pass along Frame Processor
* fix: Use AUDIO_BIT_RATE of 16 * 44,1Khz
* Use CAMCORDER instead of MIC microphone
* Use 1 channel
* fix: Use `Orientation`
* Add `native` PixelFormat
* Update iOS to latest Skia integration
* feat: Add `pixelFormat` property to Camera
* Catch error in configureSession
* Fix JPEG format
* Clean up best match finder
* Update CameraDeviceDetails.kt
* Clamp sizes by maximum CamcorderProfile size
* Remove `getAvailableVideoCodecs`
* chore: release 3.0.0-rc.5
* Use maximum video size of RECORD as default
* Update CameraDeviceDetails.kt
* Add a todo
* Add JSON device to issue report
* Prefer `full` devices and flash
* Lock to 30 FPS on Samsung
* Implement Zoom
* Refactor
* Format -> PixelFormat
* fix: Feat `pixelFormat` -> `pixelFormats`
* Update TROUBLESHOOTING.mdx
* Format
* fix: Implement `zoom` for Photo Capture
* fix: Don't run if `isActive` is `false`
* fix: Call `examplePlugin(frame)`
* fix: Fix Flash
* fix: Use `react-native-worklets-core`!
* fix: Fix import
2023-08-21 12:50:14 +02:00
Marc Rousavy
61fd4e0474
Merge branch 'main' into v3
2023-07-31 18:27:11 +02:00
Marc Rousavy
1e57e5b95c
ci: Add CI tests to build Android without Skia or FP
2023-07-31 17:38:58 +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
ba20e76d38
remove build docs
2023-03-06 11:36:00 +01:00
Marc Rousavy
757ecb0640
docs: Deploy to https://react-native-vision-camera.com
2023-03-06 11:03:40 +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
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
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
Marc Rousavy
85f5f71058
Update dependabot.yml
2022-04-25 10:17:21 +02:00
Marc Rousavy
0904767cf2
fix: Log Stacktrace on Frame Processor Error ( #731 )
...
* fix: Log JS Stack on Error
* Android
* Format Stacktrace better
* Update FrameProcessorUtils.mm
* Allow unapproved C++11 headers
* Use `.c_str()`
2022-01-10 16:37:47 +01:00
Marc Rousavy
d5414d2dc6
Add files via upload
2021-09-15 13:28:40 +02:00
Marc Rousavy
3d51cca02c
chore: Also run validate-cpp for Android C++ files
2021-09-07 14:17:35 +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
60cf3fea55
Update BUG_REPORT.yml
2021-08-09 13:21:07 +02:00
Bartosz Kaszubowski
0569c065bc
chore: fix the permission issue for dependabot ( #286 )
...
* attempt to fix the permission issue for dependabot
* move permissions to the job scope
2021-07-26 09:42:51 +02:00
Marc Rousavy
01104e0932
Update BUG_REPORT.yml
2021-07-14 13:57:09 +02:00
Marc Rousavy
22ed8ecbcc
chore: Use device for BUG REPORT
2021-07-14 13:55:53 +02:00
Marc Rousavy
b222acc331
chore: Update CONTRIBUTING guidelines
2021-07-14 13:17:16 +02:00
Marc Rousavy
64c105b369
Update FEATURE_REQUEST.yml
2021-07-14 11:34:09 +02:00
Marc Rousavy
3f819c9e93
Update QUESTION.yml
2021-07-14 11:33:16 +02:00
Marc Rousavy
292883ce76
Update QUESTION.yml
2021-07-14 11:31:57 +02:00
Marc Rousavy
f7a1961d6b
update issue templates
2021-07-14 11:31:03 +02:00
Marc Rousavy
f840ce2cd4
docs: Make Feature Request an issue template
2021-07-14 11:23:56 +02:00
Marc Rousavy
56a723a1a7
Update config.yml
2021-07-14 11:18:35 +02:00
Marc Rousavy
c653fddec1
Update BUG_REPORT.yml
2021-07-14 11:17:32 +02:00
Marc Rousavy
3f3a2ec5ae
Update BUG_REPORT.yml
2021-07-14 11:09:35 +02:00
Marc Rousavy
1e0c29a8e3
Update BUG_REPORT.yml
2021-07-14 11:09:15 +02:00
Marc Rousavy
05597f86e0
Update BUG_REPORT.yml
2021-07-14 11:08:54 +02:00
Marc Rousavy
6418b0f920
Update BUG_REPORT.yml
2021-07-14 11:08:43 +02:00
Marc Rousavy
901339aaf3
Update BUG_REPORT.yml
2021-07-14 11:07:55 +02:00
Marc Rousavy
a14350b60b
Update BUG_REPORT.yml
2021-07-14 11:04:41 +02:00
Marc Rousavy
76e92121af
Delete BUG_REPORT.md
2021-07-14 11:03:48 +02:00
Marc Rousavy
4d900e144d
Create config.yml
2021-07-14 11:03:24 +02:00
Marc Rousavy
0e420ce60c
Create BUG_REPORT.yml
2021-07-14 11:00:26 +02:00
Marc Rousavy
b2f3c08a07
fix: Distribute Android code as source ( #234 )
...
* Build Android as source
* more reliably find `enableHermes`
2021-07-08 10:52:14 +02:00
Marc Rousavy
aa9132b527
Run dependabot for Android daily
2021-07-07 11:38:47 +02:00
Marc Rousavy
a591cea809
chore: Also run CI on android-npm changes
2021-06-29 09:22:05 +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
9ea158ad8f
chore: Move to /mrousavy/ ( #224 )
...
* rename 1/n
* 2
* 3
* fix indent
2021-06-21 22:42:46 +02:00
Marc Rousavy
8aec647acd
fix: Fix CI ( #165 )
...
* fix conditional
* Build with cache again
* Update build-ios.yml
* Update build-ios.yml
* Build for iPhone 11 Pro
* Continue on buildcache restore error
* remove emoji
* Remove `measureElapsedTime<T>`
* Upgrade dependencies
* Build with `-quiet`
* Use `xcpretty`
* set -o
2021-06-04 12:32:20 +02:00
Marc Rousavy
aaad8fc94a
fix: GH action iOS build
2021-06-03 14:31:04 +02:00
Marc Rousavy
71730a73ef
fix: Fix AVAudioSession not allowing background music playback ( #155 )
...
* Set category always if different
* rename org
* Fix video format sorting
* fix format filtering
* Update AVAudioSession+setCategoryIfNotSet.swift
* upgrade all dependencies
* Also run dependabot for JS codebase
* Update MediaPage.tsx
* Use typescript 4.2.4
* Also run TS in check-all
* Downgrade typescript to 4.2.3
* f
* recreate lockfiles
* docs: Revert package.json changes
* revert all package.json changes
* Update Podfile.lock
* bump all dependencies, pin typescript to 4.2.4
* Downgrade react-native-navigation for now
* upgrade to later snapshot
* Update yarn.lock
* remove yeet
2021-06-01 13:07:57 +02:00
Marc Rousavy
160ec77940
devops: Notice yarn.lock changes ( #145 )
...
* test
* Update notice-yarn-changes.yml
* upgrade prettier
2021-05-20 10:31:25 +02:00
Marc Rousavy
b6a67d5ced
feature: Frame Processors (iOS) ( #2 )
...
* Clean up Frame Processor
* Create FrameProcessorHolder
* Create FrameProcessorDelegate in ObjC++
* Move frame processor to FrameProcessorDelegate
* Decorate runtime, check for null
* Update FrameProcessorDelegate.mm
* Cleanup FrameProcessorBindings.mm
* Fix RuntimeDecorator.h import
* Update FrameProcessorDelegate.mm
* "React" -> "React Helper" to avoid confusion
* Rename folders again
* Fix podspec flattening a lot of headers, causing REA nameclash
* Fix header imports to avoid REA naming collision
* Lazily initialize jsi::Runtime on DispatchQueue
* Install frame processor bindings from Swift
* First try to call jsi::Function (frame processor) 👀
* Call viewForReactTag on RCT main thread
* Fix bridge accessing
* Add more logs
* Update CameraViewManager.swift
* Add more TODOs
* Re-indent .cpp files
* Fix RCTTurboModule import podspec
* Remove unnecessary include check for swift umbrella header
* Merge branch 'main' into frame-processors
* Docs: use static width for images (283)
* Create validate-cpp.yml
* Update a lot of packages to latest
* Set SWIFT_VERSION to 5.2 in podspec
* Create clean.sh
* Delete unused C++ files
* podspec: Remove CLANG_CXX_LANGUAGE_STANDARD and OTHER_CFLAGS
* Update pod lockfiles
* Regenerate lockfiles
* Remove IOSLogger
* Use NSLog
* Create FrameProcessorManager (inherits from REA RuntimeManager)
* Create reanimated::RuntimeManager shared_ptr
* Re-integrate pods
* Add react-native-reanimated >=2 peerDependency
* Add metro-config
* blacklist -> exclusionList
* Try to call worklet
* Fix jsi::Value* initializer
* Call ShareableValue::adapt (makeShareable) with React/JS Runtime
* Add null-checks
* Lift runtime manager creation out of delegate, into bindings
* Remove debug statement
* Make RuntimeManager unique_ptr
* Set _FRAME_PROCESSOR
* Extract convertJSIFunctionToFrameProcessorCallback
* Print frame
* Merge branch 'main' into frame-processors
* Reformat Swift code
* Install reanimated from npm again
* Re-integrate Pods
* Dependabot: Also scan example/ and docs/
* Update validate-cpp.yml
* Create FrameProcessorUtils
* Create Frame.h
* Abstract HostObject creation away
* Fix types
* Fix frame processor call
* Add todo
* Update lockfiles
* Add C++ contributing instructions
* Update CONTRIBUTING.md
* Add android/src/main/cpp to cpplint
* Update cpplint.sh
* Fix a few cpplint errors
* Fix globals
* Fix a few more cpplint errors
* Update App.tsx
* Update AndroidLogger.cpp
* Format
* Fix cpplint script (check-cpp)
* Try to simplify frame processor
* y
* Update FrameProcessorUtils.mm
* Update FrameProcessorBindings.mm
* Update CameraView.swift
* Update CameraViewManager.m
* Restructure everything
* fix
* Fix `@objc` export (make public)
* Refactor installFrameProcessorBindings into FrameProcessorRuntimeManager
* Add swift RCTBridge.runOnJS helper
* Fix run(onJS)
* Add pragma once
* Add `&self` to lambda
* Update FrameProcessorRuntimeManager.mm
* reorder imports
* Fix imports
* forward declare
* Rename extension
* Destroy buffer after execution
* Add FrameProcessorPluginRegistry base
* Merge branch 'main' into frame-processors
* Add frameProcessor to types
* Update Camera.tsx
* Fix rebase merge
* Remove movieOutput
* Use `useFrameProcessor`
* Fix bad merge
* Add additional ESLint rules
* Update lockfiles
* Update CameraViewManager.m
* Add support for V8 runtime
* Add frame processor plugins API
* Print plugin invoke
* Fix React Utils in podspec
* Fix runOnJS swift name
* Remove invalid redecl of `captureSession`
* Use REA 2.1.0 which includes all my big PRs 🎉
* Update validate-cpp.yml
* Update Podfile.lock
* Remove Flipper
* Fix dereferencing
* Capture `self` by value. Fucking hell, what a dumb mistake.
* Override a few HostObject functions
* Expose isReady, width, height, bytesPerRow and planesCount
* use hook again
* Expose property names
* FrameProcessor -> Frame
* Update CameraView+RecordVideo.swift
* Add Swift support for Frame Processors Plugins
* Add macros for plugin installation
* Add ObjC frame processor plugin
* Correctly install frame processor plugins
* Don't require custom name for macro
* Check if plugin already exists
* Implement QR Code Frame Processor Plugin in Swift
* Adjust ObjC style frame processor macro
* optimize
* Add `frameProcessorFrameDropRate`
* Fix types
* Only log once
* Log if it executes slowly
* Implement `frameProcessorFps`
* Implement manual encoded video recordings
* Use recommended video settings
* Add fileType types
* Ignore if input is not ready for media data
* Add completion handler
* Add audio buffer sampling
* Init only for video frame
* use AVAssetWriterInputPixelBufferAdaptor
* Remove AVAssetWriterInputPixelBufferAdaptor
* Rotate VideoWriter
* Always assume portrait orientation
* Update RecordingSession.swift
* Use a separate Queue for Audio
* Format Swift
* Update CameraView+RecordVideo.swift
* Use `videoQueue` instead of `cameraQueue`
* Move example plugins to example app
* Fix hardcoded name in plugin macro
* QRFrame... -> QRCodeFrame...
* Update FrameProcessorPlugin.h
* Add example frame processors to JS base
* Update QRCodeFrameProcessorPluginSwift.m
* Add docs to create FP Plugins
* Update FRAME_PROCESSORS_CREATE.mdx
* Update FRAME_PROCESSORS_CREATE.mdx
* Use `AVAssetWriterInputPixelBufferAdaptor` for efficient pixel buffer recycling
* Add customizable `pixelFormat`
* Use native format if available
* Update project.pbxproj
* Set video width and height as source-pixel-buffer attributes
* Catch
* Update App.tsx
* Don't explicitly set video dimensions, let CVPixelBufferPool handle it
* Add a few logs
* Cleanup
* Update CameraView+RecordVideo.swift
* Eagerly initialize asset writer to fix stutter at first frame
* Use `cameraQueue` DispatchQueue to not block CaptureDataOutputDelegate
* Fix duration calculation
* cleanup
* Cleanup
* Swiftformat
* Return available video codecs
* Only show frame drop notification for video output
* Remove photo and video codec functionality
It was too much complexity and probably never used anyways.
* Revert all android related changes for now
* Cleanup
* Remove unused header
* Update AVAssetWriter.Status+descriptor.swift
* Only call Frame Processor for Video Frames
* Fix `if`
* Add support for Frame Processor plugin parameters/arguments
* Fix arg support
* Move to JSIUtils.mm
* Update JSIUtils.h
* Update FRAME_PROCESSORS_CREATE.mdx
* Update FRAME_PROCESSORS_CREATE.mdx
* Upgrade packages for docs/
* fix docs
* Rename
* highlight lines
* docs
* community plugins
* Update FRAME_PROCESSOR_CREATE_FINAL.mdx
* Update FRAME_PROCESSOR_PLUGIN_LIST.mdx
* Update FRAME_PROCESSOR_PLUGIN_LIST.mdx
* Update dependencies (1/2)
* Update dependencies (2/2)
* Update Gemfile.lock
* add FP docs
* Update README.md
* Make `lastFrameProcessor` private
* add `frameProcessor` docs
* fix docs
* adjust docs
* Update DEVICES.mdx
* fix
* s
* Add logs demo
* add metro restart note
* Update FRAME_PROCESSOR_CREATE_PLUGIN_IOS.mdx
* Mirror video device
* Update AVCaptureVideoDataOutput+mirror.swift
* Create .swift-version
* Enable whole module optimization
* Fix recording mirrored video
* Swift format
* Clean dictionary on `markInvalid`
* Fix cleanup
* Add docs for disabling frame processors
* Update project.pbxproj
* Revert "Update project.pbxproj"
This reverts commit e67861e51b88b4888a6940e2d20388f3044211d0.
* Log frame drop reason
* Format
* add more samples
* Add clang-format
* also check .mm
* Revert "also check .mm"
This reverts commit 8b9d5e2c29866b05909530d104f6633d6c49eadd.
* Revert "Add clang-format"
This reverts commit 7643ac808e0fc34567ea1f814e73d84955381636.
* Use `kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange` as default
* Read matching video attributes from videoSettings
* Add TODO
* Swiftformat
* Conditionally disable frame processors
* Assert if trying to use frame processors when disabled
* Add frame-processors demo gif
* Allow disabling frame processors via `VISION_CAMERA_DISABLE_FRAME_PROCESSORS`
* Update FrameProcessorRuntimeManager.mm
* Update FRAME_PROCESSORS.mdx
* Update project.pbxproj
* Update FRAME_PROCESSORS_CREATE_OVERVIEW.mdx
2021-05-06 14:11:55 +02:00
Marc Rousavy
9f956a6f2f
devops: Use buildcache for iOS builds ( #131 )
...
* Use buildcache for iOS builds
from https://github.com/mikehardy/buildcache-action
* Update build-ios.yml
* Update build-ios.yml
* Specify compiler options to make buildcache work
* Update build-ios.yml
2021-05-05 15:28:14 +02:00
Marc Rousavy
1341d3ca92
fix: Actions labels ( #133 )
...
* Fix labels
* update
2021-05-05 10:38:26 +02:00
Marc Rousavy
53281dfb57
Create FUNDING.yml
2021-04-18 19:05:34 +02:00
Marc Rousavy
a0c9a0477b
Update BUG_REPORT.md
2021-03-29 17:27:13 +02:00
Marc Rousavy
12f6ab5217
Disable dependabot for package.json
...
It's only devDependencies and some upgrades won't work with the example
2021-03-26 17:34:50 +01:00
Marc Rousavy
8e396c329a
Disable dependabot for docs/ and example/
2021-03-26 17:33:07 +01:00
Marc Rousavy
48821d50ca
Move Guides to docs/guides directory ( #96 )
...
* Move Guides to docs/guides directory
* Rename sidebar
* Fix api/ links
* Update SETUP.mdx
2021-03-23 15:25:27 +01:00
Marc Rousavy
0ce6f3eddd
Add autofix/diff checker to ESLint
2021-03-12 15:10:44 +01:00
Marc Rousavy
04163160ff
Also run validate-js for example/
2021-03-12 14:58:09 +01:00
Marc Rousavy
dee957648b
Fix tsc (again) ( #50 )
...
* Test forbid `<View>`
* Update validate-js.yml
* Run yarn lint with custom formatter lib
* Revert "Test forbid `<View>`"
This reverts commit d36ab54b48b7e86e594d360bd71c82b541ed63fa.
* Test: Intentional tsc error
* Update notice-new-dependencies.yml
* Update validate-js.yml
* Use reviewdog again, but with custom efm
* Fix <Camera> props
* Update validate-js.yml
* Try use github-check
* Update validate-js.yml
* Update validate-js.yml
* Add two reporters
* Update validate-js.yml
* Level error
* Use github-pr-review
* Update validate-js.yml
* Revert "Test: Intentional tsc error"
This reverts commit a4e7f6f599d403848729143f1bd87a3435c70826.
2021-03-12 14:19:22 +01:00
Marc Rousavy
33483cba94
Fix tsc ( #49 )
...
* Test: Rename a used prop
* Use `github-check` reporter
* Also output to CI
* Update validate-js.yml
* Update validate-js.yml
* Update validate-js.yml
* Revert "Test: Rename a used prop"
This reverts commit 266b2716ea591a1e826279c1f573870bee3b13e5.
* Run tsc and lint in parallel
* Flatten `CameraProps` into single `interface`
* Type NativeCameraViewProps
* Fix native method typings
* Force `as any` for now
2021-03-12 13:21:46 +01:00
Marc Rousavy
b3881db9b8
Only build iOS if native files changed
2021-03-12 09:59:45 +01:00
Marc Rousavy
1f08a44100
Use Ruby Gemfile (bundle) to optimize pod install times
2021-03-11 19:08:51 +01:00
Marc Rousavy
9cbb5ad68e
Update build-ios.yml
2021-03-11 19:02:10 +01:00
Marc Rousavy
832d6155eb
Cache Pods in any path that contains "Pods"
2021-03-11 18:36:35 +01:00
Marc Rousavy
c84fa68357
Fix iOS build action ( #43 )
2021-03-11 18:27:10 +01:00
Marc Rousavy
0d717f0dbe
Build App Actions ( #41 )
...
* Adds a "Build Android App" action that builds example/android (I think we can also just build android/, but this is just double safety)
* Adds a "Build iOS App" action that builds example/ios (disabled for now as that is very expensive)
2021-03-11 16:51:28 +01:00
Marc Rousavy
305c11fe7b
Dependabot: Also scan example/ and docs/
2021-03-11 15:53:14 +01:00
Marc Rousavy
47276997e3
Documentation: Use checkout-v2, remove setup-node
2021-03-09 14:16:21 +01:00
Marc Rousavy
630f47da92
Revert "Cleanup Build & Release Documentation action"
...
This reverts commit a2c85cc7a5
.
2021-03-09 14:14:54 +01:00
Marc Rousavy
27f9fec281
Revert "don't use ssh"
...
This reverts commit 9c3071ec03
.
2021-03-09 14:14:52 +01:00
Marc Rousavy
9c3071ec03
don't use ssh
2021-03-09 14:14:30 +01:00
Marc Rousavy
a2c85cc7a5
Cleanup Build & Release Documentation action
2021-03-09 14:11:38 +01:00
Marc Rousavy
cd55596ebd
Create notice-new-dependencies.yml
2021-03-09 11:14:45 +01:00
Marc Rousavy
64bb6f6a2a
Run SwiftFormat in GH Action ( #28 )
2021-03-09 10:53:29 +01:00
Marc Rousavy
168ba054d1
Update workflow glob matchers
2021-03-09 09:45:06 +01:00
Marc Rousavy
fcda8dd75a
Reviewdog: Fail on error
2021-03-08 19:34:46 +01:00
Marc Rousavy
f051481010
Devops/reviewdog typescript ( #25 )
...
* Use reviewdog for TSC
* Replace all `type Readonly<T>` with `interface T`
* Use --frozen-lockfile for yarn
* Give all actions a name
* Fix yarn example
2021-03-08 17:51:47 +01:00
Marc Rousavy
33794d7dc4
Update dependabot.yml
2021-03-04 13:17:44 +01:00
Marc Rousavy
47c57298fc
Create dependabot.yml
2021-03-04 13:15:17 +01:00
Marc Rousavy
15709e9f53
Fix old links
2021-03-04 10:45:50 +01:00
Marc Rousavy
138e7bd0ec
Ignore example/
for building docs
2021-03-04 10:38:42 +01:00
Marc Rousavy
71b442aeb4
Fix docs build path
2021-03-04 10:36:27 +01:00
Marc Rousavy
0709711b07
Only trigger on source code changes
2021-03-04 10:28:51 +01:00
Marc Rousavy
e7f696112e
Install node_modules in build-docs.yml
2021-03-04 10:27:37 +01:00
Marc Rousavy
78aa90109a
Update build-docs.yml
2021-03-03 21:31:22 +01:00