react-native-vision-camera/package/ios
Marc Rousavy cf8f3d05e3
fix: Fix Video Recording delay and improve startRecording() performance (#2192)
* fix: Add more logs

* perf: Init audio AVAssetWriter in parallel

* chore: Log Audio Session activation

* perf: Init Audio Session asynchronously

* chore: Log when category changed

* fix: Revert lazy audio initialization

* Update Podfile.lock

* Pass `sourceFormatHint` to video and audio AVAssetWriter

* fix: Remove `sourceFormatHint` from Video Asset Writer

* Use default options for Audio Asset Writer

* Update Podfile.lock

* Revert "Use default options for Audio Asset Writer"

This reverts commit e575a14c5342ddc7f9db557d5e3915328ed9e798.

* Add time logs

* fix: Don't synchronize audio buffers, they are already in sync

* shouldOptimizeForNetworkUse = false

* fix: Only update `latestTimestamp` once video buffer has been written

* perf: Use `AVAssetWriterInput` instead of `AVAssetWriterInputPixelBufferAdaptor`

* fix: Fix Audio not being synchronized with Video

* Remove logs add comments

* Format

* feat: Set `.videoRecording` AVAudioSession mode

* Refactor `startRecording()` a bit

* Format

* chore: Throw error directly instead of double-checking
2023-11-22 17:53:10 +01:00
..
Core fix: Fix Video Recording delay and improve startRecording() performance (#2192) 2023-11-22 17:53:10 +01:00
Extensions fix: Fix Video Recording delay and improve startRecording() performance (#2192) 2023-11-22 17:53:10 +01:00
Frame Processor perf: Use lossy compressed YUV buffers if available (#2195) 2023-11-22 16:19:29 +01:00
Parsers fix: Fix Video Recording delay and improve startRecording() performance (#2192) 2023-11-22 17:53:10 +01:00
React Utils chore: Move everything into package/ (#1745) 2023-09-01 18:15:28 +02:00
Types fix: Fix Video Recording delay and improve startRecording() performance (#2192) 2023-11-22 17:53:10 +01:00
VisionCamera.xcodeproj fix: Fix Video Recording delay and improve startRecording() performance (#2192) 2023-11-22 17:53:10 +01:00
.swift-version chore: Move everything into package/ (#1745) 2023-09-01 18:15:28 +02:00
.swiftformat chore: Move everything into package/ (#1745) 2023-09-01 18:15:28 +02:00
.swiftlint.yml chore: Move everything into package/ (#1745) 2023-09-01 18:15:28 +02:00
CameraBridge.h feat: New JS API for useCameraDevice and useCameraFormat and much faster getAvailableCameraDevices() (#1784) 2023-09-21 11:20:33 +02:00
CameraDevicesManager.m feat: New JS API for useCameraDevice and useCameraFormat and much faster getAvailableCameraDevices() (#1784) 2023-09-21 11:20:33 +02:00
CameraDevicesManager.swift fix: Fix Xcode 15 build error (var instead of let) (#2048) 2023-10-19 17:43:20 +02:00
CameraView.swift feat: Implement exposure (#2173) 2023-11-19 15:26:43 +01:00
CameraView+Focus.swift feat: New Core/ library (#1975) 2023-10-13 18:33:20 +02:00
CameraView+RecordVideo.swift feat: New Core/ library (#1975) 2023-10-13 18:33:20 +02:00
CameraView+TakePhoto.swift feat: New Core/ library (#1975) 2023-10-13 18:33:20 +02:00
CameraView+Zoom.swift feat: New Core/ library (#1975) 2023-10-13 18:33:20 +02:00
CameraViewManager.m feat: Implement exposure (#2173) 2023-11-19 15:26:43 +01:00
CameraViewManager.swift feat: New Core/ library (#1975) 2023-10-13 18:33:20 +02:00
README.md chore: Move everything into package/ (#1745) 2023-09-01 18:15:28 +02:00

ios

This folder contains the iOS-platform-specific code for react-native-vision-camera.

Prerequesites

  1. Install Xcode tools
    xcode-select --install
    
  2. Install need SwiftFormat and SwiftLint
    brew install swiftformat swiftlint
    

Getting Started

It is recommended that you work on the code using the Example project (example/ios/VisionCameraExample.xcworkspace), since that always includes the React Native header files, plus you can easily test changes that way.

You can however still edit the library project here by opening VisionCamera.xcodeproj, this has the advantage of automatically formatting your Code (swiftformat) and showing you Linter errors (swiftlint) when trying to build (+B).

Committing

Before committing, make sure that you're not violating the Swift or C++ codestyles. To do that, run the following command:

yarn check-ios

This will also try to automatically fix any errors by re-formatting the Swift code.