Dean 
							
						 
					 
					
						
						
							
						
						2c8d503e66 
					 
					
						
						
							
							Fix Bitmap.Config null-safety for Android API 35  
						
						
						
						
					 
					
						2025-10-28 13:54:54 -07:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						5b52acda26 
					 
					
						
						
							
							Gross hack to make things sort of work  
						
						
						
						
					 
					
						2024-11-10 17:51:15 -07:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						17f675657e 
					 
					
						
						
							
							WIP  
						
						
						
						
					 
					
						2024-11-09 19:52:05 -07:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						e9f08ef488 
					 
					
						
						
							
							Fix Preview View Aspect Ratio Orientation Issues in android  
						
						
						
						
					 
					
						2024-10-12 16:20:23 -06:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						0329e7976d 
					 
					
						
						
							
							Account for orientation in PreviewView  
						
						
						
						
					 
					
						2024-07-29 00:02:24 -06:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						b28a152471 
					 
					
						
						
							
							Fix last segment issue  
						
						
						
						
					 
					
						2024-07-24 21:00:27 -06:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						65021b895a 
					 
					
						
						
							
							Merge tag 'v3.9.2' into HEAD  
						
						... 
						
						
						
						Release 3.9.2 
						
						
					 
					
						2024-07-23 13:21:22 -06:00 
						 
				 
			
				
					
						
							
							
								Keaton Roux 
							
						 
					 
					
						
						
							
						
						97941a919f 
					 
					
						
						
							
							feat: Add UPC-A support ( #2563 )  
						
						... 
						
						
						
						* Add UPC_A support
* Add documentation for UPC-A on iOS
* Doc adjustments
---------
Co-authored-by: Keaton Roux <keaton@codehesion.co.za > 
						
						
					 
					
						2024-03-18 15:42:57 +01:00 
						 
				 
			
				
					
						
							
							
								Loewy 
							
						 
					 
					
						
						
							
						
						489171f6f3 
					 
					
						
						
							
							take internal storage filePath for RecordingSession, tested  
						
						
						
						
					 
					
						2024-03-11 23:52:04 -07:00 
						 
				 
			
				
					
						
							
							
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						3f1a7c9e32 
					 
					
						
						
							
							fix: Disable precapture sequence by default ( #2629 )  
						
						
						
						
					 
					
						2024-03-04 12:49:03 +01:00 
						 
				 
			
				
					
						
							
							
								Guoting Lei 
							
						 
					 
					
						
						
							
						
						e8dd1e0b2e 
					 
					
						
						
							
							fix: Use 0x0 as a fallback Size if SENSOR_INFO_PHYSICAL_SIZE is null (e.g. on USB cameras) ( #2608 )  
						
						... 
						
						
						
						2602:There is a NullPointerException here because CameraCharacteristics cannot get the SENSOR_INFO_PHYSICAL_SIZE value of the camera device 
						
						
					 
					
						2024-02-29 14:53:36 +01:00 
						 
				 
			
				
					
						
							
							
								Jonas Thuresson 
							
						 
					 
					
						
						
							
						
						bca9472ab8 
					 
					
						
						
							
							fix: Fix Boolean.parse string values from gradle properties ( #2599 )  
						
						... 
						
						
						
						* parse string booleans from gradle properties
* Define separate safeExtGetBool function
---------
Co-authored-by: Jonas Thuresson <jonas.thuresson@klarna.com > 
						
						
					 
					
						2024-02-26 09:16:54 +01:00 
						 
				 
			
				
					
						
							
							
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						369cb4a043 
					 
					
						
						
							
							fix: Fix Precapture timed out after 5 seconds error ( #2586 )  
						
						... 
						
						
						
						* fix: Fix precapture timeout error on capture
* fix: Catch timeout errors
* Update PersistentCameraCaptureSession.kt
* Update PersistentCameraCaptureSession.kt
* fix: Remove unsupported AE/AF/AWB triggers
* fix: Only enable flash if it is really AUTO
* Update CameraCaptureSession+precapture.kt
* Update CameraCaptureSession+setRepeatingRequestAndWaitForPrecapture.kt
* Update PersistentCameraCaptureSession.kt 
						
						
					 
					
						2024-02-20 18:35:55 +01:00 
						 
				 
			
				
					
						
							
							
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						fabf019f66 
					 
					
						
						
							
							fix: Fix "Unknown AF/AE/AWB State" error ( #2592 )  
						
						
						
						
					 
					
						2024-02-20 08:54:26 +01:00 
						 
				 
			
				
					
						
							
							
								bglgwyng 
							
						 
					 
					
						
						
							
						
						55992bb954 
					 
					
						
						
							
							fix: Fix Frame Processor SIGSEV crash in VisionCameraScheduler::trigger by locking mutex in dispatchAsync ( #2591 )  
						
						... 
						
						
						
						Add missing lock. 
						
						
					 
					
						2024-02-19 16:01:21 +01:00 
						 
				 
			
				
					
						
							
							
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						7ac6f4d008 
					 
					
						
						
							
							fix: Trigger measure and layout manually in PreviewView ( #2588 )  
						
						... 
						
						
						
						* fix: Trigger `measure` and `layout` manually to fix Preview stretching
* fix: Check for `0`/`NaN` 
						
						
					 
					
						2024-02-19 14:54:13 +01:00 
						 
				 
			
				
					
						
							
							
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						9af6e61dc8 
					 
					
						
						
							
							fix: Cancel focus on session close ( #2578 )  
						
						
						
						
					 
					
						2024-02-19 14:11:14 +01:00 
						 
				 
			
				
					
						
							
							
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						2c52fb01e4 
					 
					
						
						
							
							chore: Update comments  
						
						
						
						
					 
					
						2024-02-19 13:41:23 +01:00 
						 
				 
			
				
					
						
							
							
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						f6b7163660 
					 
					
						
						
							
							chore: Fix some C++ compiler warnings ( #2576 )  
						
						... 
						
						
						
						* chore: Fix some C++ compiler warnings
* Update MutableJByteBuffer.h
* Update MutableJByteBuffer.h
* Remove noexcept
* Explicit 
						
						
					 
					
						2024-02-16 18:01:52 +01:00 
						 
				 
			
				
					
						
							
							
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						bda43d3984 
					 
					
						
						
							
							fix: Fix nullable props ( #2573 )  
						
						... 
						
						
						
						* fix: Fix nullable props
* Update CameraView.kt
* Pass error to JS 
						
						
					 
					
						2024-02-16 13:46:13 +01:00 
						 
				 
			
				
					
						
							
							
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						b105de0194 
					 
					
						
						
							
							fix: Add extra sanity-checks for CaptureRequest ( #2571 )  
						
						... 
						
						
						
						* fix: Add extra sanity-checks for `CaptureRequest`
* Update CameraDeviceDetails.kt
* Refactor zoom a bit
* fix: Remove unneeded flash
* Move to AE instead of FLASH control
* Revert "Move to AE instead of FLASH control"
This reverts commit 755689411535803d156a4e84f143d0c9d08c858f.
* Set AE Mode to ON for manual flash control 
						
						
					 
					
						2024-02-16 13:13:56 +01:00 
						 
				 
			
				
					
						
							
							
								farwayer 
							
						 
					 
					
						
						
							
						
						57c6431353 
					 
					
						
						
							
							fix: Replace deprecated RCTEventEmitter with UIManager ( #2569 )  
						
						... 
						
						
						
						use new events 
						
						
					 
					
						2024-02-16 11:27:00 +01:00 
						 
				 
			
				
					
						
							
							
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						129e21f14e 
					 
					
						
						
							
							fix: Fix Session has been closed; further changes are illegal error by using tryStopRepeating()  ( #2568 )  
						
						... 
						
						
						
						* feat: Allow focus calls to be cancelable
* Cancelable
* fix: Use `tryStopRepeating` 
						
						
					 
					
						2024-02-15 17:34:55 +01:00 
						 
				 
			
				
					
						
							
							
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						4168d8f752 
					 
					
						
						
							
							feat: Allow focus calls to be cancelable ( #2567 )  
						
						... 
						
						
						
						* feat: Allow focus calls to be cancelable
* Cancelable 
						
						
					 
					
						2024-02-15 17:33:19 +01:00 
						 
				 
			
				
					
						
							
							
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						bcd12649e2 
					 
					
						
						
							
							fix: Move PreviewView into SurfaceView to make it simpler ( #2566 )  
						
						... 
						
						
						
						* hmmm
* Set initial fixed size
* fix: Repair PreviewView again
* Update PreviewView.kt 
						
						
					 
					
						2024-02-15 17:07:57 +01:00 
						 
				 
			
				
					
						
							
							
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						83c0184796 
					 
					
						
						
							
							fix: Take Orientation into account for PreviewView ( #2565 )  
						
						... 
						
						
						
						* fix: Take Orientation into account for `PreviewView`
* Log
* Take aspect ratio into account
* Reorganize code a bit
* Set LANDSCAPE_LEFT as default
* chore: Format 
						
						
					 
					
						2024-02-15 13:30:14 +01:00 
						 
				 
			
				
					
						
							
							
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						5df5ca9adf 
					 
					
						
						
							
							fix: Fix PreviewView stretching on Android (now finally a real fix) ( #2564 )  
						
						... 
						
						
						
						* fix: Only resolve once SurfaceHolder actually resized
* fix: Fix onMeasure not being called for `PreviewView`
* fix: Auto-trigger layout computation on Surface Change
* fix: Add proper LayoutParams to `PreviewView`
* Format 
						
						
					 
					
						2024-02-15 13:09:16 +01:00 
						 
				 
			
				
					
						
							
							
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						a7701c8c9c 
					 
					
						
						
							
							perf: Allow skipping pre-capture sequence if already focused ( #2561 )  
						
						... 
						
						
						
						This PR speeds up photo capture on Android by skipping pre-capture sequences on modes that are already focused (either AF, AE or AWB) 
						
						
					 
					
						2024-02-14 17:04:25 +01:00 
						 
				 
			
				
					
						
							
							
								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 
						
						
					 
					
						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 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						19bf300bbe 
					 
					
						
						
							
							Support orientation as a parameter to startRecording  
						
						
						
						
					 
					
						2024-02-08 11:17:09 -07: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 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						413be519d5 
					 
					
						
						
							
							Add onVideoChunkReady callback  
						
						
						
						
					 
					
						2024-02-01 19:42:57 -07:00 
						 
				 
			
				
					
						
							
							
								Marc Rousavy 
							
						 
					 
					
						
						
							
						
						1a8e518180 
					 
					
						
						
							
							chore: Remove unused frameProcessor variable  
						
						
						
						
					 
					
						2024-02-01 11:55:31 +01:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						fb42545890 
					 
					
						
						
							
							some camera orientation stuff, maybe toss?  
						
						
						
						
					 
					
						2024-01-31 16:50:36 -07:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						e82f068b21 
					 
					
						
						
							
							Add isLandscape to orientation  
						
						
						
						
					 
					
						2024-01-31 16:50:36 -07:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						08f37070a4 
					 
					
						
						
							
							Simplify ChunkedRecorder  
						
						
						
						
					 
					
						2024-01-31 16:50:36 -07:00 
						 
				 
			
				
					
						
					 
					
						
						
							
						
						d95057fa47 
					 
					
						
						
							
							Initial chunked recording implementation  
						
						
						
						
					 
					
						2024-01-31 16:50:34 -07:00