Marc Rousavy 
							
						 
					 
					
						
						
							
						
						37398cc909 
					 
					
						
						
							
							feat: Flash with AE Pre-capture trigger for Android ( #2558 )  
						
						 
						
						... 
						
						
						
						### Flash (`flash`)
Adds `flash` functionality with a fully custom pre-capture AE/AF/AWB trigger sequence for Android. 🎉  
```ts
camera.current.takePhoto({
  flash: 'on' // or 'auto'
})
```
### Better photos (`qualityPrioritization`)
We now also run the AE/AF/AWB precapture sequence on every photo (unless `qualityPrioritization` is `speed`), meaning photos are now less blurry, properly exposed, and properly white-balanced - so in short: **photo quality is now better!**.
The fast path still exists when using `qualityPrioritization: speed`, as that will skip the precapture sequence and metering actions and just grab an Image from the Camera as quickly as possible.
Additionally, `qualityPrioritization` now controls these options:
- [COLOR_CORRECTION_MODE](https://developer.android.com/reference/android/hardware/camera2/CaptureRequest#COLOR_CORRECTION_MODE )
- [EDGE_MODE](https://developer.android.com/reference/android/hardware/camera2/CaptureRequest#EDGE_MODE )
- [COLOR_CORRECTION_ABERRATION_MODE](https://developer.android.com/reference/android/hardware/camera2/CaptureRequest#COLOR_CORRECTION_ABERRATION_MODE )
- [HOT_PIXEL_MODE](https://developer.android.com/reference/android/hardware/camera2/CaptureRequest#HOT_PIXEL_MODE )
- [DISTORTION_CORRECTION_MODE](https://developer.android.com/reference/android/hardware/camera2/CaptureRequest#DISTORTION_CORRECTION_MODE )
- [NOISE_REDUCTION_MODE](https://developer.android.com/reference/android/hardware/camera2/CaptureRequest#NOISE_REDUCTION_MODE )
- [SHADING_MODE](https://developer.android.com/reference/android/hardware/camera2/CaptureRequest#SHADING_MODE )
- [TONEMAP_MODE](https://developer.android.com/reference/android/hardware/camera2/CaptureRequest#TONEMAP_MODE )
..by setting them to `_FAST` or `_HIGH_QUALITY`, which was previously left untouched. 
This now means:
- `takePhoto({ qualityPrioritization: 'speed' })` got FASTER 🚀  
- `takePhoto({ qualityPrioritization: 'quality' })` got BETTER QUALITY 📸  
- `takePhoto({ qualityPrioritization: 'balanced' })` is left unchanged ✅  
						
						
					 
					
						2024-02-14 16:43:30 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						1a0bd8f7c2 
					 
					
						
						
							
							feat: Add enableGpuBuffers property ( #2557 )  
						
						 
						
						... 
						
						
						
						* Revert "fix: Fix VideoPipeline crash on Samsung (Disable `USAGE_GPU_SAMPLED_IMAGE` ImageReader) (#2555 )"
This reverts commit ad33dd91b1 .
* feat: Add `enableGpuBuffers` prop
* Create ImageWriter separately 
						
						
					 
					
						2024-02-14 12:47:40 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						478688529b 
					 
					
						
						
							
							fix: Fix 60 FPS crashing on some Samsungs ( #2556 )  
						
						 
						
						... 
						
						
						
						* fix: Fix 60 FPS crash on Samsung by checking `CamcorderProfile.maxFps`
* Log FPS clamp
* Update CameraDeviceDetails.kt
* Format code 
						
						
					 
					
						2024-02-14 12:47:03 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						3699ccde94 
					 
					
						
						
							
							chore: Organize code  
						
						 
						
						
						
						
					 
					
						2024-02-14 11:53:17 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						ad33dd91b1 
					 
					
						
						
							
							fix: Fix VideoPipeline crash on Samsung (Disable USAGE_GPU_SAMPLED_IMAGE ImageReader) ( #2555 )  
						
						 
						
						... 
						
						
						
						* fix: Fix VideoPipeline crash on Samsung (`USAGE_GPU_SAMPLED_IMAGE` not supported)
* Format code 
						
						
					 
					
						2024-02-14 11:51:24 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						ec7ce36d25 
					 
					
						
						
							
							fix: Use acquireLatestImage instead of acquireNextImage for CodeScanner ( #2549 )  
						
						 
						
						
						
						
					 
					
						2024-02-13 15:15:29 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						b7e24c444e 
					 
					
						
						
							
							fix: Check if session is still valid before resetting AF after focus ( #2550 )  
						
						 
						
						... 
						
						
						
						* fix: Check if session is still valid before resetting AF after focus
* Update PersistentCameraCaptureSession.kt 
						
						
					 
					
						2024-02-13 15:15:19 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						a2a2e94865 
					 
					
						
						
							
							fix: Fix "Invalid pixel format 35" HardwareBuffer crash ( #2547 )  
						
						 
						
						
						
						
					 
					
						2024-02-13 13:52:21 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						1011c3f039 
					 
					
						
						
							
							fix: Fix java.lang.NoSuchMethodError in FrameProcessor initializer ( #2546 )  
						
						 
						
						
						
						
					 
					
						2024-02-13 13:46:17 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						24f43efa35 
					 
					
						
						
							
							feat: Add context to VisionCameraProxy ( #2545 )  
						
						 
						
						
						
						
					 
					
						2024-02-13 13:46:07 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						fb1d82ad9a 
					 
					
						
						
							
							feat: Implement focus() on Android ( #2523 )  
						
						 
						
						... 
						
						
						
						* feat: Implement `focus()` on Android
* Throw if not supported
* Do focus in example
* Format
* fix: Properly convert layer point to camera coordinates
* Fix
* Set trigger back to IDLE
* Fix rotation maybe?
* Rotated by
* fix: Fix display point calculation
* Try other
* Invoke `capture` callback on same thread
* Center metering rectangle
* Reset AF Trigger to IDLE
* Reset it to it's default AF mode again, i dont even know anymore
* Update CameraPage.tsx
* Format
* Apply options to repeating
* Set
* Use scene mode
* Update CameraPage.tsx
* Update CameraDeviceDetails.kt
* It fucking works
* Update PersistentCameraCaptureSession.kt
* Update PersistentCameraCaptureSession.kt
* Update PersistentCameraCaptureSession.kt
* Create CameraCaptureSession+setRepeatingRequestAndWait.kt
* Oh my god it works
* Also focus AE
* Cancel reset request
* Rename to AF
* Format
* Update PersistentCameraCaptureSession.kt 
						
						
					 
					
						2024-02-08 15:16:58 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						3192f5e939 
					 
					
						
						
							
							fix: Fix PreviewView being stretched ( #2519 )  
						
						 
						
						... 
						
						
						
						* fix: Fix Preview stretching
* feat: Keep screen on on Android
* Add test code for race condition
* fix: Fix preview stretching by awaiting SurfaceHolder resizing (`setFixedSize`)  before configuring Camera
* Format
* Update SurfaceHolder+resize.kt
* Update CameraPage.tsx 
						
						
					 
					
						2024-02-07 11:50:33 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						5acc64e031 
					 
					
						
						
							
							feat: Create persistent CaptureSession to avoid any blackscreen issues or errors ( #2494 )  
						
						 
						
						... 
						
						
						
						* feat: Create custom `CaptureSession` wrapper
* Create `PersistentCameraCaptureSession`
* Update VideoStabilizationMode.kt
* Create RepeatingRequest.kt
* Update CaptureSession.kt
* Delete CaptureSession.kt
* Update PersistentCameraCaptureSession.kt
* Update PersistentCameraCaptureSession.kt
* fix: Add `isRepeating`
* Update CameraSession.kt
* Make `SurfaceOutput` not `Closable` anymore
* Update PersistentCameraCaptureSession.kt
* Stub out the rest
* Format
* Set `isRunning` properly
* Close previous outputs
* onError callback
* Format
* Started/Stopped
* Update CameraPage.tsx
* Add `isValid`
* Log `isActive`
* Add `tryAbortCaptures`
* Configure()
* Try?
* Add `didDestroyFromOutside`
* Disable FP for testing
* fix: Call `super.onAttachedToWindow` first
* Hm
* Update CameraSession.kt
* Update PersistentCameraCaptureSession.kt
* Try catch `didDestroyFromOutside`
* Update PersistentCameraCaptureSession.kt
* Session can only be active with a preview
* Update PersistentCameraCaptureSession.kt
* Throw `no-outputs` if needed
* Update logs
* fix: Check for CAMERA permission
* fix: Close session when opening a new device
* perf: Make everything `by lazy` in CameraDeviceDetails
* Update CameraDeviceDetails.kt
* Update PersistentCameraCaptureSession.kt
* Update PersistentCameraCaptureSession.kt
* Move
* Update Podfile.lock
* Implement `capture()`
* Format
* fix: Fix orientation not being applied
* fix: Fix `isMirrored`
* fix: Fix getting size
* fix: Close `Surface` in `VideoPipeline`
* Format
* fix: Fix `VideoPipeline` not properly destroying itself
* Use FP again
* Update CameraConfiguration.kt
* Rename
* Clean up
* Format
* Update CameraConfiguration.kt
* fix: Don't stop repeating request when capturing 
						
						
					 
					
						2024-02-06 14:19:25 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						d8c95c901f 
					 
					
						
						
							
							feat: Synchronize Frame properly ( #2501 )  
						
						 
						
						... 
						
						
						
						* feat: Synchronize `Frame` properly
* Update CameraError.ts
* Image is not valid if `refCount` < 0 
						
						
					 
					
						2024-02-05 12:34:32 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						e95264f782 
					 
					
						
						
							
							fix: Fix minFocusDistance being NaN on some emulators  
						
						 
						
						
						
						
					 
					
						2024-02-02 09:54:17 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						1a8e518180 
					 
					
						
						
							
							chore: Remove unused frameProcessor variable  
						
						 
						
						
						
						
					 
					
						2024-02-01 11:55:31 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						f896831d4a 
					 
					
						
						
							
							fix: Properly check HardwareBuffer usage flags before setting them ( #2488 )  
						
						 
						
						... 
						
						
						
						* fix: Properly check `HardwareBuffer` usage flags before setting them
* fix: Use GPU flag if pixel format is NATIVE
* Update VideoPipeline.kt
* Add some logs
* fix: Properly convert ImageFormat to HardwareBufferFormat
* Update Podfile.lock
* fix: Add a safe `getHardwareBufferFormat` method
* Format 
						
						
					 
					
						2024-01-31 20:31:56 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						9089014ed8 
					 
					
						
						
							
							feat: Add FPS Counter to Android (enableFpsGraph) ( #2460 )  
						
						 
						
						... 
						
						
						
						* feat: Add FPS Counter to Android (`enableFpsGraph`)
* feat: Add FPS View
* Update FpsCounterView.kt
* Implement actual graph
* fix layout
* Update FpsGraphView.kt
* Update CameraPage.tsx 
						
						
					 
					
						2024-01-30 15:28:18 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						8c5b60355f 
					 
					
						
						
							
							perf: Use existing cameraQueue instead of yet another Thread ( #2459 )  
						
						 
						
						... 
						
						
						
						* perf: Use existing `cameraQueue` instead of yet another Thread
* fix: Use `coroutineScope` to avoid wrong use of isActive
* fix: Do the same for `CameraSession`
* Lint 
						
						
					 
					
						2024-01-30 14:26:55 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						af14f912fb 
					 
					
						
						
							
							chore: Move onFrame into Callback on Android ( #2458 )  
						
						 
						
						... 
						
						
						
						* Separate to onFrame
* Restructure FP
* Move lib loading into `CameraViewModule` 
						
						
					 
					
						2024-01-30 14:17:32 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Amir Hossein Shekari 
							
						 
					 
					
						
						
							
						
						02bc8a979c 
					 
					
						
						
							
							fix: Fix NullPointerException in initFrameProcessorPlugin if plugin is not found ( #2454 )  
						
						 
						
						... 
						
						
						
						* fix: fix the null exception
* Add `Nullable` and `NonNull` annotations
---------
Co-authored-by: Marc Rousavy <me@mrousavy.com > 
						
						
					 
					
						2024-01-30 10:52:42 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						b5eb01bac8 
					 
					
						
						
							
							fix: Expose auto-focus system for Android ( #2455 )  
						
						 
						
						... 
						
						
						
						* fix: Expose auto-focus system for Android
* Add `autoFocusSystem` to filter
* Update CameraDeviceDetails.kt
* Update getCameraFormat.ts 
						
						
					 
					
						2024-01-30 10:49:28 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						bdbcf05d14 
					 
					
						
						
							
							fix: Fix NullPointerException in VideoPipeline.removeRecordingSessionOutputSurface ( #2453 )  
						
						 
						
						
						
						
					 
					
						2024-01-29 18:59:12 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Daniel Prado 
							
						 
					 
					
						
						
							
						
						7e2889cf84 
					 
					
						
						
							
							fix: Fix maxImages have been acquired error in Frame Processor ( #2430 )  
						
						 
						
						... 
						
						
						
						* fix: maxImages when frameprocessor error
* fix: Use `try`/`finally` for safety
---------
Co-authored-by: Marc Rousavy <me@mrousavy.com > 
						
						
					 
					
						2024-01-25 18:17:48 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						b1fa06514f 
					 
					
						
						
							
							fix: Catch insufficient-storage errors ( #2422 )  
						
						 
						
						... 
						
						
						
						* fix: Catch `insufficient-storage` errors
* feat: Implement `insufficient-storage` error for Android
* fix: Catch insufficient storage error also on takePhoto android 
						
						
					 
					
						2024-01-24 11:48:38 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						f400487a8d 
					 
					
						
						
							
							fix: Remove unneeded synchronized keyword  
						
						 
						
						
						
						
					 
					
						2024-01-18 20:02:48 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						bae1f52d4a 
					 
					
						
						
							
							chore: Cleanup Android codebase ( #2415 )  
						
						 
						
						
						
						
					 
					
						2024-01-18 18:55:49 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						992934e00e 
					 
					
						
						
							
							feat: SharedArray:wrapData:withSize init for iOS ( #2410 )  
						
						 
						
						... 
						
						
						
						* feat: `ArrayBuffer:wrapData:withSize` init for iOS
* Format
* fix build error
* Update ExampleFrameProcessorPlugin.m
* docs: Add class docs for SharedArray 
						
						
					 
					
						2024-01-18 10:41:26 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						e21a1c2110 
					 
					
						
						
							
							fix: Throw not-compatible-with-outputs error when adding both CodeScannerPipeline and VideoPipeline ( #2411 )  
						
						 
						
						... 
						
						
						
						* fix: Throw `not-compatible-with-outputs` error when adding CodeScanner and Video
* Format 
						
						
					 
					
						2024-01-18 10:40:15 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						ba1d7eec9c 
					 
					
						
						
							
							feat: Use JSI's ArrayBuffer instead of TypedArray ( #2408 )  
						
						 
						
						... 
						
						
						
						* feat: Use JSI's `ArrayBuffer` instead of `TypedArray`
* fix: Fix move memory
* feat: Implement iOS
* Format
* Update JSIJNIConversion.cpp
* fix: Fix Android `toArrayBuffer` and other
* Catch FP call errors
* Update return type
* Use `CPU_READ_OFTEN` flag as well
* CPU flag
* Run destructors under `jni::ThreadScope`
* Update FrameProcessorPluginHostObject.cpp
* fix: Fix `toArrayBuffer()` crash
* Update Frame.ts 
						
						
					 
					
						2024-01-17 20:18:46 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						2f21609e39 
					 
					
						
						
							
							feat: Add SharedArray.getSize() ( #2406 )  
						
						 
						
						... 
						
						
						
						* feat: Add `SharedArray.getSize()`
* Rename `count` to `size` on iOS
* `->` instead of `.` 
						
						
					 
					
						2024-01-17 18:30:26 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						bdad4e1acb 
					 
					
						
						
							
							fix: Release MediaActionSound after playing ( #2390 )  
						
						 
						
						... 
						
						
						
						* fix: Release `MediaActionSound` after playing
* Make it a bit more expressive 
						
						
					 
					
						2024-01-16 18:01:28 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						58ef21ebfd 
					 
					
						
						
							
							feat: Add minFocusDistance prop to CameraDevice ( #2392 )  
						
						 
						
						... 
						
						
						
						* docs: Link `videoHdr`
* Update PERFORMANCE.mdx
* docs: Add isActive to perf
* docs: Update errors
* feat: Add `minFocusDistance` prop
* Format
* Update Podfile.lock
* fix: To Double
* fix: Import AVFoundation
* fix: Move from format -> device
* fix: Use centi-meters (cm) instead of meters
* Fix deadloop
* fix: Avoid -1 values 
						
						
					 
					
						2024-01-15 19:30:20 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						17ae5fae76 
					 
					
						
						
							
							fix: Fix CamcorderProfile out of range error ( #2389 )  
						
						 
						
						... 
						
						
						
						* fix: Fix `CamcorderProfile` out of range error
* fix: Also take `cameraId` into account 
						
						
					 
					
						2024-01-15 10:30:13 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						a4686022e2 
					 
					
						
						
							
							fix: Avoid "CameraNotReady" errors when updating props in background ( #2382 )  
						
						 
						
						
						
						
					 
					
						2024-01-13 20:02:18 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						29fe98cc44 
					 
					
						
						
							
							feat: Add zero-copy SharedArray type to Frame Processor Plugins ( #2383 )  
						
						 
						
						... 
						
						
						
						* feat: Create `TypedArray` class for Frame Processor Plugins
* Type
* feat: Pass `VisionCameraProxy` along (BREAKING)
* feat: Finish implementation
* Log a bit
* feat: Successfully convert JSI <> JNI buffers
* Wrap buffer
* fix: Fix using wrong Runtime
* feat: Add docs
* add zero copy example
* Format C++
* Create iOS base
* feat: Finish iOS implementation
* chore: Format
* fix: Use `NSData` instead of `NSMutableData`
* Format
* fix: Fix build when Frame Processors are disabled
* chore: Rename `TypedArray` to `SharedArray`
* fix: Fix Swift typings for Array
* Remove a few default inits
* fix: Fix Android build
* fix: Use `NSInteger`
* Update SharedArray.mm
* fix: Expose bytes directly on iOS (NSData was immutable) 
						
						
					 
					
						2024-01-12 16:00:36 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						322b6fcbd6 
					 
					
						
						
							
							fix: Fix Preview stretching on Android ( #2377 )  
						
						 
						
						... 
						
						
						
						* fix: Fix Preview stretching on Android
* fix: Simplify Preview size computation
* fix: Catch `stopRepeating` error
* fix: Fix preview size calculation
* Format code
* Update CameraSession.kt
* Enable CodeScanner in example app
* fix: Also update size on surface change
* Format
* fix: Flip sizes
* Revert that stuff again
* Update PreviewView.kt
* fix: Swap width and height in SurfaceHolder::setFixedSize 
						
						
					 
					
						2024-01-11 16:33:40 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						2b10622559 
					 
					
						
						
							
							fix: Fix Camera not stopping when isActive is set to false ( #2361 )  
						
						 
						
						
						
						
					 
					
						2024-01-10 16:00:28 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						a8b85a3053 
					 
					
						
						
							
							fix: Also call onInitialized when isActive=false  
						
						 
						
						... 
						
						
						
						related to https://github.com/mrousavy/react-native-vision-camera/issues/2364#issuecomment-1883201425  
						
						
					 
					
						2024-01-09 17:58:57 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						cc60ad296a 
					 
					
						
						
							
							fix: Validate input props (fps, hdr, torch, ...) instead of silently crashing ( #2354 )  
						
						 
						
						... 
						
						
						
						* fix: Fix Blackscreen by deterministically destroying session if `isActive=false`
* Re-open Camera if session died
* Simplify Camera
* Disconnect is optional, block when resetting state
* fix: Log in `configure { ... }`
* fix: Make concurrent configure safe
* fix: Don't resize preview
* fix: Use current `CameraConfiguration`
* Don't start if no outputs are available
* Only mount with preview outputs
* Update CameraSession.kt
* Update PreviewView.kt
* Better logging
* Update CameraSession.kt
* Extract
* fix: Rebuild entire session if `isActive` changed
* isActive safe
* Start session at 1
* Create ActiveCameraDevice.kt
* interrupts
* chore: Freeze `frame` in `useFrameProcessor`
* Revert "chore: Freeze `frame` in `useFrameProcessor`"
This reverts commit dff93d506e29a791d8dea8842b880ab5c892211e.
* chore: Better logging
* fix: Move HDR to `video`/`photo` config
* fix: Fix hdr usage
* fix: Ignore any updates after destroying Camera
* fix: Fix video HDR
* chore: Format code
* fix: Check Camera permission
* Remove unneeded error
* Update CameraSession.kt
* Update CameraPage.tsx
* Delete OutputConfiguration.toDebugString.kt
* Update CameraSession.kt
* fix: Perform sanity checks to make sure props are valid
* format 
						
						
					 
					
						2024-01-08 12:13:05 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						0d21bc3a57 
					 
					
						
						
							
							fix: Fix blackscreen issues and lifecycle when closing Camera ( #2339 )  
						
						 
						
						... 
						
						
						
						* fix: Fix Blackscreen by deterministically destroying session if `isActive=false`
* Re-open Camera if session died
* Simplify Camera
* Disconnect is optional, block when resetting state
* fix: Log in `configure { ... }`
* fix: Make concurrent configure safe
* fix: Don't resize preview
* fix: Use current `CameraConfiguration`
* Don't start if no outputs are available
* Only mount with preview outputs
* Update CameraSession.kt
* Update PreviewView.kt
* Better logging
* Update CameraSession.kt
* Extract
* fix: Rebuild entire session if `isActive` changed
* isActive safe
* Start session at 1
* Create ActiveCameraDevice.kt
* interrupts
* chore: Freeze `frame` in `useFrameProcessor`
* Revert "chore: Freeze `frame` in `useFrameProcessor`"
This reverts commit dff93d506e29a791d8dea8842b880ab5c892211e.
* chore: Better logging
* fix: Move HDR to `video`/`photo` config
* fix: Fix hdr usage
* fix: Ignore any updates after destroying Camera
* fix: Fix video HDR
* chore: Format code
* fix: Check Camera permission
* Remove unneeded error
* Update CameraSession.kt
* Update CameraPage.tsx
* Delete OutputConfiguration.toDebugString.kt
* Update CameraSession.kt 
						
						
					 
					
						2024-01-08 11:41:57 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						2cd22ad236 
					 
					
						
						
							
							fix: Fix "maxImages (3) has already been acquired" error ( #2352 )  
						
						 
						
						
						
						
					 
					
						2024-01-05 15:51:39 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						833ffb8478 
					 
					
						
						
							
							fix: Fix "The given value for videoStabilizationMode could not be parsed" error ( #2353 )  
						
						 
						
						
						
						
					 
					
						2024-01-05 15:51:34 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						3dc75112ae 
					 
					
						
						
							
							fix: Fix crash when trying to console.log(frame) ( #2335 )  
						
						 
						
						... 
						
						
						
						* feat: Override `toJSON` to support `console.log(frame)`
* Update FrameHostObject.mm
* Also use on Android
* Update FrameHostObject.mm 
						
						
					 
					
						2024-01-02 13:54:07 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						895f3ec889 
					 
					
						
						
							
							feat: Make Frame thread-safe and improve error messages ( #2327 )  
						
						 
						
						... 
						
						
						
						* fix: Fix multi-Thread access on Java
* fix: Thread-lock access on iOS as well
* whoops add missing header impl
* Update Podfile.lock
* fix: Don't use `CFGetRetainCount`
* fix: Lock access on iOS as well
* C++ format
* More detailed error
* chore: Move getters into `Frame`
* Format c++
* Use enum `orientation` again
* format
* fix: Synchronize `isValid` on Java
* Also log pixelformat
* feat: Use Java enums in C++
* Format C++ 
						
						
					 
					
						2023-12-29 14:09:56 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								David Gruseck 
							
						 
					 
					
						
						
							
						
						7905f2c057 
					 
					
						
						
							
							fix: Fix for inset of SENSOR_INFO_ACTIVE_ARRAY_SIZE for Android < 11 ( #2306 )  
						
						 
						
						... 
						
						
						
						fix for inset of SENSOR_INFO_ACTIVE_ARRAY_SIZE
Co-authored-by: David Gruseck <david.gruseck@actinate.com > 
						
						
					 
					
						2023-12-22 10:59:23 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						0d3ecd1131 
					 
					
						
						
							
							fix: Fix min/max exposure range on Android ( #2304 )  
						
						 
						
						
						
						
					 
					
						2023-12-21 12:25:46 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						591cf30a06 
					 
					
						
						
							
							perf: Make getCameraPermission and getMicrophonePermission synchronous ( #2302 )  
						
						 
						
						
						
						
					 
					
						2023-12-19 14:22:04 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						977bf56c6d 
					 
					
						
						
							
							feat: Concurrent/Cancellable configure ( #2282 )  
						
						 
						
						... 
						
						
						
						* feat: Cancellable `configure`
* Android
* Update Podfile.lock
* Configure outside of lock
* Update lockfiles
* Use `bundle` for CI
* Update script
* Update Podfile.lock
* fix: Set config at end
* Lint 
						
						
					 
					
						2023-12-13 16:38:02 +01:00  
					
					
						 
						
						
							
							
							 
							
							
							
							
							 
						
					 
				 
			
				
					
						
							
							
								 
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						9a187c6d19 
					 
					
						
						
							
							feat: Add width and height to VideoFile output ( #2281 )  
						
						 
						
						... 
						
						
						
						* feat: Add `width` and `height` to `VideoFile` output
* Format 
						
						
					 
					
						2023-12-12 16:43:57 +01:00