Marc Rousavy
591cf30a06
perf: Make getCameraPermission
and getMicrophonePermission
synchronous ( #2302 )
2023-12-19 14:22:04 +01:00
Marc Rousavy
4ee52d6211
feat: Add onStarted
and onStopped
events ( #2273 )
...
* feat: Add `onStarted` and `onStopped` events
* Implement `onStart` for Android
* Update CameraSession.kt
* Update CameraSessionDelegate.swift
2023-12-09 19:09:55 +01:00
Marc Rousavy
ef58d13b87
feat: Implement exposure
( #2173 )
...
* feat: Implement `exposure` (iOS)
* Update Podfile.lock
* Format
* Expose exposure in format
* Set exposure in Camera2
* fix: Fix exposure calculation
* Add exposure docs
2023-11-19 15:26:43 +01:00
Marc Rousavy
c5dfb6c247
feat: Split videoHdr
and photoHdr
into two settings ( #2161 )
...
* feat: Split `videoHdr` and `photoHdr` into two settings
* fix: Rename all `hdr`
* fix: Fix HDR on Android
* Update CameraDeviceDetails.kt
* Update CameraDeviceDetails.kt
* fix: Correctly configure `pixelFormat` AFTER `format`
* Update CameraSession+Configuration.swift
* fix: Also after format changed
2023-11-15 18:33:12 +01:00
Marc Rousavy
cd0b413706
feat: New Core/
library ( #1975 )
...
Moves everything Camera related into `core/` / `Core/` so that it is better encapsulated from React Native.
Benefits:
1. Code is much better organized. Should be easier for collaborators now, and cleaner codebase for me.
2. Locking is fully atomically as you can now only configure the session through a lock/Mutex which is batch-overridable
* On iOS, this makes Camera startup time **MUCH** faster, I measured speedups from **1.5 seconds** to only **240 milliseconds** since we only lock/commit once! 🚀
* On Android, this fixes a few out-of-sync/concurrency issues like "Capture Request contains unconfigured Input/Output Surface!" since it is now a single lock-operation! 💪
3. It is easier to integrate VisionCamera outside of React Native (e.g. Native iOS Apps, NativeScript, Flutter, etc)
With this PR, VisionCamera V3 is up to **7x** faster than V2
2023-10-13 18:33:20 +02:00
Marc Rousavy
6640b72a00
feat: Code Scanner API ( #1912 )
...
* feat: CodeScanner JS API
* feat: iOS
* Use guard
* Format
* feat: Android base
* fix: Attach Surfaces
* Use isBusy var
* fix: Use separate Queue
* feat: Finish iOS types
* feat: Implement all other code types on Android
* fix: Call JS event
* fix: Pass codetypes on Android
* fix: iOS use Preview coordinate system
* docs: Add comments
* chore: Format code
* Update CameraView+AVCaptureSession.swift
* docs: Add Code Scanner docs
* docs: Update
* feat: Use lazily downloaded model on Android
* Revert changes in CameraPage
* Format
* fix: Fix empty QR codes
* Update README.md
2023-10-04 12:53:52 +02:00
Marc Rousavy
2d66d5893c
docs: New V3 docs for new API ( #1842 )
...
* docs: New V3 docs for new API
* fix: Prefer Wide-Angle unless explicitly opted-out
* docs: Update DEVICES
* Finish Devices docs
* Switch links
* Revert "Switch links"
This reverts commit 06f196ae0e67787cbd5768e125be6d0a3cb5bbc9.
* docs: New LIFECYCLE
* docs: New CAPTURING docs
* Update Worklets links
* docs: Update TROUBLESHOOTING and ZOOMING
* fix: Update `getAvailableCameraDevices()` usages
* docs: Update FORMATS
* Update Errors.kt
* docs: Fix broken links
* docs: Update references to old hooks
* docs: Create Frame Processor Tips
* docs: Auto-dark mode
* fix: Fix FPS filter
* feat: Add `'max'` flag to format filter
* fix: Use loop
* fix: Fix bug in `getCameraFormat`
* fix: Find best aspect ratio as well
* fix: Switch between formats on FPS change
* Update FRAME_PROCESSOR_PLUGIN_LIST.mdx
* Add FPS graph explanation
* feat: Support HDR filter
* docs: Add HDR docs
* docs: Add Video Stabilization
* docs: Update Skia docs
* Skia links
* Add Skia labels
* Update SKIA_FRAME_PROCESSORS.mdx
* docs: Add Performance
* Update some wording
* Update headers / and zoom
* Add examples for devices
* fix highlights
* fix: Expose `Frame`
* docs: Update FP docs
* Update links
* Update FRAME_PROCESSOR_CREATE_PLUGIN_IOS.mdx
2023-09-25 12:57:03 +02:00
Marc Rousavy
3169444697
feat: Implement resizeMode
prop for iOS ( #1838 )
...
* feat: Implement `resizeMode` prop for iOS
- `"cover"`: Keep aspect ratio, but fill entire parent view (centered).
- `"contain"`: Keep aspect ratio, but make sure the entire content is visible even if it introduces additional blank areas (centered).
* chore: Update prop docs
* Update CameraProps.ts
* Lint & Format
2023-09-23 10:14:27 +02:00
Marc Rousavy
fffefa9d12
feat: Add support for Buffer Compression for a more efficient Video Pipeline (enableBufferCompression
) ( #1828 )
...
feat: Add support for Buffer Compression for more efficient Video Pipeline (`enableBufferCompression`)
2023-09-21 17:18:54 +02:00
Marc Rousavy
977b859e46
feat: New JS API for useCameraDevice
and useCameraFormat
and much faster getAvailableCameraDevices()
( #1784 )
...
* Update podfile
* Update useCameraFormat.ts
* Update API
* Delete FormatFilter.md
* Format CameraViewManager.m ObjC style
* Make `getAvailableCameraDevices` synchronous/blocking
* Create some docs
* fix: Fix HardwareLevel types
* fix: Use new device/format API
* Use 60 FPS format as an example
* Replace `Camera.getAvailableCameraDevices` with new `CameraDevices` API/Module
* Fix Lint
* KTLint options
* Use continuation indent of 8
* Use 2 spaces for indent
* Update .editorconfig
* Format code
* Update .editorconfig
* Format more
* Update VideoStabilizationMode.kt
* fix: Expose `CameraDevicesManager` to ObjC
* Update CameraPage.tsx
* fix: `requiresMainQueueSetup() -> false`
* Always prefer higher resolution
* Update CameraDevicesManager.swift
* Update CameraPage.tsx
* Also filter pixelFormat
* fix: Add AVFoundation import
2023-09-21 11:20:33 +02:00
Marc Rousavy
325fc4d2bb
chore: Change line width to 140 in C++
2023-09-01 19:39:25 +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