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
39b16e60e4
chore: Also show dependency upgrades in release notes
2021-07-26 11:38:12 +02:00
Marc Rousavy
ef455df865
feat: Support rotation ( #301 )
...
* feat: Android: Listen to rotation changes
* Only change rotation on configuration change
* feat: iOS: Support Rotation
* Swift lint
2021-07-26 11:32:58 +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
dependabot[bot]
39fb4e0cd3
chore(deps-dev): bump metro-react-native-babel-preset in /example ( #247 )
...
Bumps [metro-react-native-babel-preset](https://github.com/facebook/metro ) from 0.66.0 to 0.66.1.
- [Release notes](https://github.com/facebook/metro/releases )
- [Changelog](https://github.com/facebook/metro/blob/master/CHANGELOG.md )
- [Commits](https://github.com/facebook/metro/compare/v0.66.0...v0.66.1 )
---
updated-dependencies:
- dependency-name: metro-react-native-babel-preset
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-07-07 16:20:57 +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
fa5f5c0cab
feat: Implement Frame.close()
( #229 )
...
* Implement `Frame.close()`
* close frame in dtor
* Update JImageProxyHostObject.cpp
* fix close
* Check if closed
* remove a few logs
* r
* fix `isValid` and `isReady`
* Add JImage
* Release JNI frame ref on destroy
* fix pod setup
* Fix isValid call
* Fix `close` not returning a function
* throw error if closed twice
* iOS: Schedule `console.error` call on JS thread
* Android: Log Frame Processor Error to JS
* fix syntax
* Check if valid `toString()`
* Update Frame.ts
* Remove `isReady`
* Fix JImage accessors
* remove `JImage` C++ sources
* Throw error if accessing props on closed Frame
* Delete `JImage.h`
2021-07-06 10:08:44 +02:00
Marc Rousavy
7d3b352155
perf: Avoid expensive CMSampleBuffer copy ( #235 )
...
* Don't copy CMSampleBuffer
* Update CameraView+RecordVideo.swift
* Update Podfile.lock
2021-07-06 09:25:11 +02:00
Marc Rousavy
d0764ada79
Update Podfile.lock
2021-06-28 20:51:12 +02:00
Marc Rousavy
7dddc0ae44
Update README.md
2021-06-28 13:54:16 +02:00
Marc Rousavy
d54358ac10
fix: Remove patch-package
2021-06-28 12:26:39 +02:00
Marc Rousavy
4a1fc1ddd8
fix: patch-package install error
2021-06-28 09:24:37 +02:00
Marc Rousavy
ca5baef1a6
chore: Rebuild .pbxproj
2021-06-27 13:33:39 +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
9c579c65aa
try: Improvements from WWDC 2021 1:1 workshop ( #197 )
...
* perf: Automatically determine Pixel Format depending on active format. (More efficient video recording 🚀 )
* perf: Skip `AVAssetWriter` transform by directly correctly orienting the Video Output connection
* feat: Support camera flipping while recording
* feat: Run frame processor on separate queue, avoids stutters in video recordigns
* feat: Automatically drop late frame processor frames
2021-06-11 21:06:19 +02:00
Marc Rousavy
02168e1f28
chore(deps): Use stable version of react-native-navigation
2021-06-09 14:14:40 +02:00
Marc Rousavy
68a716b506
feat: native Frame
type to provide Orientation ( #186 )
...
* Use Frame.h
* Add orientation
* Determine buffer orientation
* Replace plugins
* fix calls
* Update FRAME_PROCESSOR_CREATE_PLUGIN_IOS.mdx
* Update FRAME_PROCESSOR_CREATE_PLUGIN_IOS.mdx
* format
* Update CameraPage.tsx
* Update FRAME_PROCESSOR_CREATE_PLUGIN_IOS.mdx
* Add links to docs
* Use `.` syntax
* Make properties `readonly`
* Fix `@synthesize` backing store
2021-06-09 10:57:05 +02:00
Marc Rousavy
4038db2e28
feat: Frame Processors: Allow returning Frame
s (support for resize and other frame manipulations) ( #185 )
...
* batch
* Init Frame as box
* Use ObjC syntax
* Fix access
* Revert "Fix access"
This reverts commit 7de09e52739d4c2b53f485d5ed696f1665fa5737.
* Revert "Use ObjC syntax"
This reverts commit e33f05ae8451cc4ee24af41d14dc76a57c157554.
* Revert "Init Frame as box"
This reverts commit 5adafb6109bfbf7fddb8ddc4af7d306b7b76b476.
* use holder
* convert buffer <-> jsi object
* add docs
* add more docs
* Update JSIUtils.mm
* Update FRAME_PROCESSORS_CREATE_OVERVIEW.mdx
* Update CameraView+RecordVideo.swift
2021-06-08 14:20:07 +02:00
dependabot[bot]
1b08c0cbae
chore(deps-dev): bump typescript from 4.2.4 to 4.3.2 in /example ( #157 )
...
Bumps [typescript](https://github.com/Microsoft/TypeScript ) from 4.2.4 to 4.3.2.
- [Release notes](https://github.com/Microsoft/TypeScript/releases )
- [Commits](https://github.com/Microsoft/TypeScript/compare/v4.2.4...v4.3.2 )
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-06-08 14:07:03 +02:00
dependabot[bot]
8c69d902f9
chore(deps-dev): bump prettier from 2.3.0 to 2.3.1 in /example ( #170 )
...
Bumps [prettier](https://github.com/prettier/prettier ) from 2.3.0 to 2.3.1.
- [Release notes](https://github.com/prettier/prettier/releases )
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md )
- [Commits](https://github.com/prettier/prettier/compare/2.3.0...2.3.1 )
---
updated-dependencies:
- dependency-name: prettier
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-06-08 13:58:08 +02:00
dependabot[bot]
6ba683dd3f
chore(deps-dev): bump eslint from 7.27.0 to 7.28.0 in /example ( #169 )
...
Bumps [eslint](https://github.com/eslint/eslint ) from 7.27.0 to 7.28.0.
- [Release notes](https://github.com/eslint/eslint/releases )
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md )
- [Commits](https://github.com/eslint/eslint/compare/v7.27.0...v7.28.0 )
---
updated-dependencies:
- dependency-name: eslint
dependency-type: direct:development
update-type: version-update:semver-minor
...
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-06-08 13:57:50 +02:00
Marc Rousavy
72a1fad78e
feat: Separate usecases (decouple microphone, video, photo) ( #168 )
...
* Add props
* add props (iOS)
* Add use-cases conditionally
* Update CameraView+RecordVideo.swift
* Update RecordingSession.swift
* reconfigure on change
* Throw correct errors
* Check for audio permission
* Move `#if` outward
* Throw appropriate errors
* Update CameraView+RecordVideo.swift
* fix Splashscreen
* Dynamic filePath
* Fix video extension
* add `avci` and `m4v` file types
* Fix RecordVideo errors
* Fix audio setup
* Enable `photo`, `video` and `audio`
* Check for `video={true}` in frameProcessor
* format
* Remove unused DispatchQueue
* Update docs
* Add `supportsPhotoAndVideoCapture`
* Fix view manager
* Fix error not being propagated
* Catch normal errors too
* Update DEVICES.mdx
* Update CAPTURING.mdx
* Update classdocs
2021-06-07 13:08:40 +02:00
Marc Rousavy
555474be7d
fix: Represent neutralZoom in factor instead of percentage ( #179 )
...
* Use factor instead of percent for `neutralZoom`
* fix zoom calculation
* Update CameraPage.tsx
2021-06-07 10:46:53 +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
835a48ff96
Update Podfile.lock
2021-06-04 10:55:16 +02:00
Marc Rousavy
60c194f428
chore: Update bundle
2021-06-03 15:43:47 +02:00
Marc Rousavy
eeb765f018
fix: Move Audio Input initialization shortly before startRecording
( #159 )
...
* rename
* Update AVAudioSession+updateCategory.swift
* fix bootstrap script
* Update CameraView+AVAudioSession.swift
* move audio input adding lower
* Activate AudioSession only when starting recording
* format
* Deactivate Audio Session
* remove audio input before deactivating audio session
* Update CameraView+AVAudioSession.swift
* log time
* Update CameraView+AVAudioSession.swift
* measure time with `measureElapsedTime`
* Update project.pbxproj
* only log in debug builds
* bootstrap with bridge (RNN new API)
* Mark two funcs as `@inlinable`
* format
* Update ReactLogger.swift
* Make audioWriter optional (allow videos without sound)
* only log frame drop reason in DEBUG
* Make audio writing entirely optional
* format
* Use function name as label for measureElapsedTime
* Update MeasureElapsedTime.swift
* Update MeasureElapsedTime.swift
* Mark AudioWriter as finished
* set `automaticallyConfiguresApplicationAudioSession` once
* Add JS console logging
* log to JS console for a few logs
* Update AVAudioSession+updateCategory.swift
* format
* Update JSConsoleHelper.mm
* catch log errors
* Update ReactLogger.swift
* fix docs
* Update RecordingSession.swift
* Immediatelly add audio input
* Update CameraView+AVCaptureSession.swift
* Update CameraView+AVCaptureSession.swift
* Update ReactLogger.swift
* immediatelly set audio session
* extract
* format
* Update TROUBLESHOOTING.mdx
* hmm
* Update AVAudioSession+updateCategory.swift
* Create secondary `AVCaptureSession` for audio
* Configure once, start stop on demand
* format
* fix audio notification interruptions
* docs
2021-06-03 14:16:02 +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
a0e063414a
chore(deps): Bump Android native dependencies ( #150 )
...
* Bump gradle build-tools to 4.2.1
* Bump kotlinx coroutines to 1.5.0
* Bump Kotlin to 1.5.0
* Replace `jcenter` with `mavenCentral`
* Upgrade Kotlin to 1.5.10
* Upgrade gradle plugin to 4.2.1
* Revert "Upgrade gradle plugin to 4.2.1"
This reverts commit 0946110ff442ddd24f2f3f31e7587851d7626c9e.
* Revert "Upgrade Kotlin to 1.5.10"
This reverts commit 2b11c5c911397d1db1ea7a24fb8c8634a25b5c76.
* Revert "Replace `jcenter` with `mavenCentral`"
This reverts commit 3e40b516619067c0d9da1abf3cfeb9acb6102c71.
2021-05-27 11:29:52 +02:00
Marc Rousavy
deb8beb688
chore: Bump reanimated requirements ( #149 )
...
* Bump the reanimated requirement to 2.2.0 and above
* bump versions podfile
* Simplify Frame Processor
* Add `'worklet'` note
2021-05-27 11:08:57 +02:00
Marc Rousavy
310ad5fc4c
chore: Simplify format sorting/filtering ( #140 )
...
* Simplify format sorting/filtering
* Update useCameraFormat.ts
* Also check photo HDR
* Simplify double tap
* Remove snapshot
* Remove custom `useCameraDevice` hook
* Update Podfile.lock
2021-05-14 11:52:28 +02:00
Marc Rousavy
f839bc23ac
chore: Cleanup codebase ( #137 )
...
* Remove `useCachedState`
* Add pressable opacity
* Update Media.tsx
* f
* Update FormatFilter.ts
* update
* App -> CameraPage, Media -> MediaPage
* Update CameraPage.tsx
* Create 60 FPS switch
* Update CameraPage.tsx
2021-05-11 12:59:05 +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
dependabot[bot]
c3ff25de41
Bump gradle from 4.1.3 to 4.2.0 in /android ( #132 )
...
* Bump gradle from 4.1.3 to 4.2.0 in /android
Bumps gradle from 4.1.3 to 4.2.0.
Signed-off-by: dependabot[bot] <support@github.com>
* update gradle wrapper
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Marc Rousavy <marcrousavy@hotmail.com>
2021-05-05 10:41:42 +02:00
Marc Rousavy
24a0bcde48
Add additional ESLint rules
2021-03-31 16:02:04 +02:00
Marc Rousavy
7c33839e36
Reformat ( #116 )
...
* Reformat
* Prettier: Print Width 140
* SwiftFormat: Disable `organizeDeclarations`
* React Helpers -> React Utils
* Use bundle exec for pods
* Disable Hermes in Example
* Create clean.sh
* Update package.json
* Re-generate lockfiles
* Add bundle install step to bootstrap
2021-03-31 15:43:29 +02:00
Marc Rousavy
501827cb87
Rename pod to VisionCamera
2021-03-26 16:22:24 +01:00
Marc Rousavy
9404b93dc3
Extract AVCaptureSession
and AVAudioSession
setup to extensions
2021-03-26 16:20:57 +01:00
Marc Rousavy
35806ff660
Upgrade Example to RN 0.64 ( #83 )
...
* ReactLogger: Also log function
* Run SwiftFormat & SwiftLint in example project
* Upgrade to RN 0.64 1/2
* Update lockfiles
* Upgrade a few packages
* index.tsx -> index.js
* Upgrade docusaurus
* Fix line length violation
* Update CameraView.swift
* Update gradle plugin
* Fix example to prefer higher res cameras
* Remove unused log line
* Update App.tsx
2021-03-19 15:53:19 +01:00
Marc Rousavy
b0069c23e1
Docs/capturing ( #70 )
...
* Add capturing base doc
* Pin RNN version where Modal without animation works
* Add docs for Taking Photos/Recording Videos
2021-03-17 15:17:05 +01:00
dependabot[bot]
50cabe9306
Bump eslint from 7.21.0 to 7.22.0 in /example ( #59 )
...
Bumps [eslint](https://github.com/eslint/eslint ) from 7.21.0 to 7.22.0.
- [Release notes](https://github.com/eslint/eslint/releases )
- [Changelog](https://github.com/eslint/eslint/blob/master/CHANGELOG.md )
- [Commits](https://github.com/eslint/eslint/compare/v7.21.0...v7.22.0 )
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-03-15 10:35:59 +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
dependabot[bot]
c4d7d81c36
Bump @types/react from 17.0.2 to 17.0.3 in /example ( #45 )
...
Bumps [@types/react](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react ) from 17.0.2 to 17.0.3.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react )
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-03-12 10:38:45 +01:00
dependabot[bot]
bb1a5e744b
Bump @types/react-native from 0.63.50 to 0.63.51 in /example ( #47 )
...
Bumps [@types/react-native](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/react-native ) from 0.63.50 to 0.63.51.
- [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases )
- [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/react-native )
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-03-12 09:52:18 +01:00
dependabot[bot]
29c401bb8a
Bump typescript from 4.2.2 to 4.2.3 in /example ( #46 )
...
Bumps [typescript](https://github.com/Microsoft/TypeScript ) from 4.2.2 to 4.2.3.
- [Release notes](https://github.com/Microsoft/TypeScript/releases )
- [Commits](https://github.com/Microsoft/TypeScript/compare/v4.2.2...v4.2.3 )
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-03-12 09:51:40 +01:00
Marc Rousavy
1f08a44100
Use Ruby Gemfile (bundle) to optimize pod install times
2021-03-11 19:08:51 +01:00
dependabot[bot]
305add48b4
Bump @babel/core from 7.13.8 to 7.13.10 in /example ( #34 )
...
Bumps [@babel/core](https://github.com/babel/babel/tree/HEAD/packages/babel-core ) from 7.13.8 to 7.13.10.
- [Release notes](https://github.com/babel/babel/releases )
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md )
- [Commits](https://github.com/babel/babel/commits/v7.13.10/packages/babel-core )
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-03-11 16:18:34 +01:00
dependabot[bot]
ae556cfa93
Bump @typescript-eslint/parser from 4.16.1 to 4.17.0 in /example ( #35 )
...
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser ) from 4.16.1 to 4.17.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/parser/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.17.0/packages/parser )
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-03-11 16:15:32 +01:00
dependabot[bot]
6bd8552747
Bump @babel/runtime from 7.13.9 to 7.13.10 in /example ( #31 )
...
Bumps [@babel/runtime](https://github.com/babel/babel/tree/HEAD/packages/babel-runtime ) from 7.13.9 to 7.13.10.
- [Release notes](https://github.com/babel/babel/releases )
- [Changelog](https://github.com/babel/babel/blob/main/CHANGELOG.md )
- [Commits](https://github.com/babel/babel/commits/v7.13.10/packages/babel-runtime )
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-03-11 16:12:43 +01:00
dependabot[bot]
a8fbe0109b
Bump @typescript-eslint/eslint-plugin from 4.16.1 to 4.17.0 in /example ( #33 )
...
Bumps [@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin ) from 4.16.1 to 4.17.0.
- [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases )
- [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/master/packages/eslint-plugin/CHANGELOG.md )
- [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v4.17.0/packages/eslint-plugin )
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-03-11 16:08:45 +01:00
dependabot[bot]
845a7707d4
Bump react-native-navigation from 7.11.2 to 7.11.3 in /example ( #32 )
...
Bumps [react-native-navigation](https://github.com/wix/react-native-navigation ) from 7.11.2 to 7.11.3.
- [Release notes](https://github.com/wix/react-native-navigation/releases )
- [Changelog](https://github.com/wix/react-native-navigation/blob/master/CHANGELOG.md )
- [Commits](https://github.com/wix/react-native-navigation/compare/7.11.2...7.11.3 )
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-03-11 16:06:01 +01:00
Marc Rousavy
befd943f94
Update Podfile.lock
2021-03-10 15:24:12 +01:00
Marc Rousavy
b329107fa5
Update yarn.lock
2021-03-04 17:26:09 +01:00
Marc Rousavy
7cd3954a08
Update package.json
2021-03-04 17:25:47 +01:00
Marc Rousavy
6ea88a931b
Update README.md
2021-03-04 14:12:20 +01:00
Marc Rousavy
15709e9f53
Fix old links
2021-03-04 10:45:50 +01:00
David Angulo
c598414930
Update build.gradle ( #16 )
2021-03-04 09:47:39 +01:00
Marc Rousavy
ece148d93e
Upgrade all packages to latest
2021-03-03 21:56:03 +01:00
Victor Malov
e54276aa68
fix: fix banner image import path ( #14 )
2021-03-03 18:56:06 +01:00
Marc Rousavy
45c344c4df
Update img links
2021-03-03 12:42:28 +01:00
Marc Rousavy
0b7b4d50b5
Automatically build API documentation ( #11 )
...
* Automatically build API documentation using Typedoc and Docusaurus
* Move MD and move to MDX for Docusaurus Guides
2021-03-03 12:37:43 +01:00
Marc Rousavy
6438b9a8bc
Bump CameraX versions to alpha2/alpha22 ( #7 )
...
* Bump CameraX versions to alpha2/alpha22
* Use `setDefaultResolution` to set format's photoSize
2021-02-26 17:34:28 +01:00
Marc Rousavy
8849208d0c
Update App.tsx
2021-02-25 15:34:23 +01:00
Marc Rousavy
796b4f1b98
Fix wrong variable name for tag
2021-02-25 15:15:35 +01:00
Marc Rousavy
d601a8dcc9
Fix App.tsx tsc errors
2021-02-25 13:57:51 +01:00
Marc Rousavy
32da54ab46
Fix a few ESLint errors
2021-02-23 11:57:43 +01:00
Marc Rousavy
1f3de955c7
Update useIsForeground.ts
2021-02-22 12:28:56 +01:00
Marc Rousavy
d3fbf6700e
Update Constants.ts
2021-02-22 12:28:51 +01:00
Marc Rousavy
04fd5bb069
Squash format-filter
2021-02-20 23:20:28 +01:00
Marc Rousavy
f8a119ccc7
Update FormatFilter.ts
2021-02-20 17:44:54 +01:00
Marc Rousavy
1e1031f70a
remove RESOLUTION_LIMIT
2021-02-20 17:44:45 +01:00
Marc Rousavy
c1f3ea98d7
Update App.tsx
2021-02-20 17:42:37 +01:00
Marc Rousavy
6377f7be71
Update Settings.tsx
2021-02-20 17:39:41 +01:00
Marc Rousavy
b7274eb2e9
Add selectable FPS
2021-02-20 17:39:04 +01:00
Marc Rousavy
eaebda7954
example: Install rn-slider
2021-02-20 17:38:28 +01:00
Marc Rousavy
43ea7ed734
example: Install pipestate for minimal state management
2021-02-20 17:18:15 +01:00
Marc Rousavy
4989812de7
F
2021-02-20 17:12:21 +01:00
Marc Rousavy
fdbd45871a
ES
2021-02-20 17:08:35 +01:00
Marc Rousavy
dc2be934f6
ESLint autofix
2021-02-20 17:07:10 +01:00
Marc Rousavy
f2a1d52aa7
rm example dotfiles
2021-02-20 17:04:53 +01:00
Marc Rousavy
84a7a2f841
Update README.md
2021-02-20 16:38:40 +01:00
Marc Rousavy
adceea9261
Add example screenshot
2021-02-20 16:37:42 +01:00
Marc Rousavy
63201eab83
Delete package-lock.json
2021-02-19 21:30:18 +01:00
Marc Rousavy
36dbdfd570
Android: copy vector icons
2021-02-19 21:16:11 +01:00
Marc Rousavy
27f5ad016b
Fix android bottom
2021-02-19 21:14:42 +01:00
Marc Rousavy
f1a2db1141
A few manifest settings
2021-02-19 21:12:16 +01:00
Marc Rousavy
73b371ccdc
Statusbar settings
2021-02-19 21:10:32 +01:00
Marc Rousavy
a428aea69c
Android: Bump kotlin-gradle-plugin to 1.4.30
2021-02-19 21:05:19 +01:00
Marc Rousavy
fd698a610c
Android: Bump flipper to 0.74.0
2021-02-19 21:05:09 +01:00
Marc Rousavy
7bcbc2506f
Android: Fix a few things that went broke
2021-02-19 21:05:01 +01:00
Marc Rousavy
695f98f551
Set minSdkVersion to 21
2021-02-19 20:54:55 +01:00
Marc Rousavy
ffa2527849
Rename proj
2021-02-19 20:50:41 +01:00
Marc Rousavy
040722defa
update android lib name
2021-02-19 20:48:35 +01:00
Marc Rousavy
38d9cd353a
Create icon
2021-02-19 20:39:11 +01:00
Marc Rousavy
8a8525f8f8
Update app-icon
2021-02-19 20:21:20 +01:00
Marc Rousavy
438ad01b07
Create README.md
2021-02-19 20:15:28 +01:00
Marc Rousavy
c09ee2b8af
format
2021-02-19 20:05:02 +01:00
Marc Rousavy
ba32595b01
Update Splash.tsx
2021-02-19 19:56:42 +01:00
Marc Rousavy
6a6a198921
Update LaunchScreen.storyboard
2021-02-19 19:56:06 +01:00