[Android] Cannot capture RAW using .capturePhotoToFile() if permission is granted in the same launch of app
Author: Jacky161Created Jun 25, 2026Updated Aug 4, 2026
Labels🐛 bug
Prerequisites
- I have read and followed every applicable step in the Nitro Modules Troubleshooting guide.
- I have read the VisionCamera Troubleshooting guide.
- I have searched existing issues and found nothing matching.
- I am on the latest version of react-native-vision-camera, or have a specific reason I cannot upgrade.
Reproduction
https://github.com/Jacky161/react-native-vision-camera
Steps to reproduce
- Clone https://github.com/Jacky161/react-native-vision-camera.git
bun installinsideapps/simple-camera- Run on Android Device
- Grant all requested permissions
- Within the same launch of the app, capture an image.
- Image capture fails.
- Fully close the app via the app drawer, and reopen it.
- Capture an image. Notice that it is successful.
What did you expect to happen?
RAW image is captured successfully and is displayed on the next screen.
What actually happened?
RAW image fails to capture:
Failed to take Photo! [Error: androidx.camera.core.ImageCaptureException: Image with an unsupported format was used
at androidx.camera.core.imagecapture.DngImage2Disk.writeImageToFile(DngImage2Disk.java:82)
at androidx.camera.core.imagecapture.DngImage2Disk.apply(DngImage2Disk.java:65)
at androidx.camera.core.imagecapture.ProcessingNode.saveRawToDisk(ProcessingNode.java:317)
at androidx.camera.core.imagecapture.ProcessingNode.processOnDiskCapture(ProcessingNode.java:288)
at androidx.camera.core.imagecapture.ProcessingNode.lambda$processInputPacket$6$androidx-camera-core-imagecapture-ProcessingNode(ProcessingNode.java:203)
at androidx.camera.core.imagecapture.ProcessingNode$$ExternalSyntheticLambda4.run(D8$$SyntheticClass:0)
at androidx.camera.core.CameraXTracer.trace(CameraXTracer.kt:35)
at androidx.camera.core.imagecapture.ProcessingNode.processInputPacket(ProcessingNode.java:193)
at androidx.camera.core.imagecapture.ProcessingNode.lambda$transform$0$androidx-camera-core-imagecapture-ProcessingNode(ProcessingNode.java:148)
at androidx.camera.core.imagecapture.ProcessingNode$$ExternalSyntheticLambda8.run(D8$$SyntheticClass:0)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1100)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:1572)
Caused by: java.lang.IllegalArgumentException: Missing metadata fields for tag CalibrationIlluminant1 (c65a)
at android.hardware.camera2.DngCreator.nativeWriteImage(Native Method)
at android.hardware.camera2.DngCreator.writeByteBuffer(DngCreator.java:511)
at android.hardware.camera2.DngCreator.writeImage(DngCreator.java:445)
at androidx.camera.core.imagecapture.DngImage2Disk.writeImageToFile(DngImage2Disk.java:80)
... 12 moreAffected platforms
Android (device)
Device(s) affected
Samsung Galaxy S22 Ultra (Android 16), LG Velvet 5G (Android 13)
VisionCamera version
5.0.11
React Native version
0.85.3
React Native architecture
New Architecture (Fabric / bridgeless)
Features being used
- Preview
- Photo capture
- Video capture
- Frame Processors (worklets)
- Skia Frame Processors
- Code/Barcode Scanner
- Location metadata
- Multi-cam
- Depth data
- HDR / custom dynamic range
- Custom format / FPS / resolution
Relevant logs / stack trace
06-25 10:14:52.205 5111 5136 I CameraManagerGlobal: Camera 0 facing CAMERA_FACING_BACK state now CAMERA_STATE_OPEN for client com.margelo.nitro.camera.example.simple API Level 2 User Id 0Device Id 0
06-25 10:14:52.215 5111 5239 I CXCP : Opened CameraId-0 in 198.927 ms
06-25 10:14:52.217 5111 5153 D SurfaceView: 51898495 updateSurfacePosition RenderWorker, frameNr = 74, position = [2, 75, 1442, 1155] surfaceSize = 1440x1080
06-25 10:14:52.217 5111 5153 I SV[51898495 MainActivity]: uSP: rtp = Rect(2, 75 - 1442, 1155) rtsw = 1440 rtsh = 1080
06-25 10:14:52.217 5111 5153 I SV[51898495 MainActivity]: onSSPAndSRT: pl = 2 pt = 75 sx = 1.0 sy = 1.0
06-25 10:14:52.217 5111 5153 I SV[51898495 MainActivity]: aOrMT: VRI[MainActivity]@e4d5551 t = android.view.SurfaceControl$Transaction@6ff8cd3 fN = 74 android.view.SurfaceView.-$$Nest$mapplyOrMergeTransaction:0 android.view.SurfaceView$SurfaceViewPositionUpdateListener.positionChanged:1932 android.graphics.RenderNode$CompositePositionUpdateListener.positionChanged:401
06-25 10:14:52.217 5111 5153 I VRI[MainActivity]@e4d5551: mWNT: t=0xb400006e8ced2710 mBlastBufferQueue=0xb40000705c886390 fn= 74 HdrRenderState mRenderHdrSdrRatio=1.0 caller= android.view.SurfaceView.applyOrMergeTransaction:1863 android.view.SurfaceView.-$$Nest$mapplyOrMergeTransaction:0 android.view.SurfaceView$SurfaceViewPositionUpdateListener.positionChanged:1932
06-25 10:14:52.219 5111 5222 I CXCP : Camera open completed: OpenCameraResult(cameraState=CameraState-1, errorCode=null)
06-25 10:14:52.223 5111 5243 I CXCP : PruningCameraDeviceManager: CameraId-0 opened successfully
06-25 10:14:52.224 5111 5242 I CXCP : Creating CameraCaptureSession from CameraId-0 using CaptureSessionState-1 with:
06-25 10:14:52.224 5111 5242 I CXCP : Stream-1 -> Surface(name=null mNativeObject=-5476376664021856064)/@0x4cac70d
06-25 10:14:52.224 5111 5242 I CXCP : Stream-2 -> Surface(name=null mNativeObject=-5476376664021865952)/@0x9beca17
06-25 10:14:52.260 5111 5153 D SurfaceView: 51898495 updateSurfacePosition RenderWorker, frameNr = 77, position = [1, 75, 1442, 1155] surfaceSize = 1440x1080
06-25 10:14:52.260 5111 5153 I SV[51898495 MainActivity]: uSP: rtp = Rect(1, 75 - 1442, 1155) rtsw = 1440 rtsh = 1080
06-25 10:14:52.260 5111 5153 I SV[51898495 MainActivity]: onSSPAndSRT: pl = 1 pt = 75 sx = 1.0006944 sy = 1.0
06-25 10:14:52.260 5111 5153 I SV[51898495 MainActivity]: aOrMT: VRI[MainActivity]@e4d5551 t = android.view.SurfaceControl$Transaction@6ff8cd3 fN = 77 android.view.SurfaceView.-$$Nest$mapplyOrMergeTransaction:0 android.view.SurfaceView$SurfaceViewPositionUpdateListener.positionChanged:1932 android.graphics.RenderNode$CompositePositionUpdateListener.positionChanged:401
06-25 10:14:52.260 5111 5153 I VRI[MainActivity]@e4d5551: mWNT: t=0xb400006e8ced2710 mBlastBufferQueue=0xb40000705c886390 fn= 77 HdrRenderState mRenderHdrSdrRatio=1.0 caller= android.view.SurfaceView.applyOrMergeTransaction:1863 android.view.SurfaceView.-$$Nest$mapplyOrMergeTransaction:0 android.view.SurfaceView$SurfaceViewPositionUpdateListener.positionChanged:1932
06-25 10:14:52.264 5111 5153 D SurfaceView: 51898495 updateSurfacePosition RenderWorker, frameNr = 78, position = [1, 75, 1441, 1155] surfaceSize = 1440x1080
06-25 10:14:52.264 5111 5153 I SV[51898495 MainActivity]: uSP: rtp = Rect(1, 75 - 1441, 1155) rtsw = 1440 rtsh = 1080
06-25 10:14:52.264 5111 5153 I SV[51898495 MainActivity]: onSSPAndSRT: pl = 1 pt = 75 sx = 1.0 sy = 1.0
06-25 10:14:52.264 5111 5153 I SV[51898495 MainActivity]: aOrMT: VRI[MainActivity]@e4d5551 t = android.view.SurfaceControl$Transaction@6ff8cd3 fN = 78 android.view.SurfaceView.-$$Nest$mapplyOrMergeTransaction:0 android.view.SurfaceView$SurfaceViewPositionUpdateListener.positionChanged:1932 android.graphics.RenderNode$CompositePositionUpdateListener.positionChanged:401
06-25 10:14:52.265 5111 5153 I VRI[MainActivity]@e4d5551: mWNT: t=0xb400006e8ced2710 mBlastBufferQueue=0xb40000705c886390 fn= 78 HdrRenderState mRenderHdrSdrRatio=1.0 caller= android.view.SurfaceView.applyOrMergeTransaction:1863 android.view.SurfaceView.-$$Nest$mapplyOrMergeTransaction:0 android.view.SurfaceView$SurfaceViewPositionUpdateListener.positionChanged:1932
06-25 10:14:52.299 5111 5153 D SurfaceView: 51898495 updateSurfacePosition RenderWorker, frameNr = 82, position = [0, 75, 1441, 1155] surfaceSize = 1440x1080
06-25 10:14:52.299 5111 5153 I SV[51898495 MainActivity]: uSP: rtp = Rect(0, 75 - 1441, 1155) rtsw = 1440 rtsh = 1080
06-25 10:14:52.299 5111 5153 I SV[51898495 MainActivity]: onSSPAndSRT: pl = 0 pt = 75 sx = 1.0006944 sy = 1.0
06-25 10:14:52.299 5111 5153 I SV[51898495 MainActivity]: aOrMT: VRI[MainActivity]@e4d5551 t = android.view.SurfaceControl$Transaction@6ff8cd3 fN = 82 android.view.SurfaceView.-$$Nest$mapplyOrMergeTransaction:0 android.view.SurfaceView$SurfaceViewPositionUpdateListener.positionChanged:1932 android.graphics.RenderNode$CompositePositionUpdateListener.positionChanged:401
06-25 10:14:52.300 5111 5153 I VRI[MainActivity]@e4d5551: mWNT: t=0xb400006e8ced2710 mBlastBufferQueue=0xb40000705c886390 fn= 82 HdrRenderState mRenderHdrSdrRatio=1.0 caller= android.view.SurfaceView.applyOrMergeTransaction:1863 android.view.SurfaceView.-$$Nest$mapplyOrMergeTransaction:0 android.view.SurfaceView$SurfaceViewPositionUpdateListener.positionChanged:1932
06-25 10:14:52.306 5111 5153 D SurfaceView: 51898495 updateSurfacePosition RenderWorker, frameNr = 83, position = [0, 75, 1440, 1155] surfaceSize = 1440x1080
06-25 10:14:52.306 5111 5153 I SV[51898495 MainActivity]: uSP: rtp = Rect(0, 75 - 1440, 1155) rtsw = 1440 rtsh = 1080
06-25 10:14:52.306 5111 5153 I SV[51898495 MainActivity]: onSSPAndSRT: pl = 0 pt = 75 sx = 1.0 sy = 1.0
06-25 10:14:52.306 5111 5153 I SV[51898495 MainActivity]: aOrMT: VRI[MainActivity]@e4d5551 t = android.view.SurfaceControl$Transaction@6ff8cd3 fN = 83 android.view.SurfaceView.-$$Nest$mapplyOrMergeTransaction:0 android.view.SurfaceView$SurfaceViewPositionUpdateListener.positionChanged:1932 android.graphics.RenderNode$CompositePositionUpdateListener.positionChanged:401
06-25 10:14:52.306 5111 5153 I VRI[MainActivity]@e4d5551: mWNT: t=0xb400006e8ced2710 mBlastBufferQueue=0xb40000705c886390 fn= 83 HdrRenderState mRenderHdrSdrRatio=1.0 caller= android.view.SurfaceView.applyOrMergeTransaction:1863 android.view.SurfaceView.-$$Nest$mapplyOrMergeTransaction:0 android.view.SurfaceView$SurfaceViewPositionUpdateListener.positionChanged:1932
06-25 10:14:52.736 5111 5195 E ReactNativeJS: [Error: Uncaught (in promise, id: 0): "Error: java.lang.RuntimeException: Timeouted: JPromise was destroyed!
06-25 10:14:52.736 5111 5195 E ReactNativeJS: at com.facebook.jni.HybridData$Destructor.deleteNative(Native Method)
06-25 10:14:52.736 5111 5195 E ReactNativeJS: at com.facebook.jni.HybridData$Destructor.destruct(HybridData.java:82)
06-25 10:14:52.736 5111 5195 E ReactNativeJS: at com.facebook.jni.DestructorThread$1.run(DestructorThread.java:78)
06-25 10:14:52.736 5111 5195 E ReactNativeJS: "]
06-25 10:14:52.786 5111 5240 D CXCP : CaptureSessionState-1 Configured
06-25 10:14:52.786 5111 5242 D CXCP : CXCP#createCaptureSession-0 - 560.839 ms
06-25 10:14:52.788 5111 5558 W .example.simple: Long monitor contention with owner CXCP-05 (5242) at void android.hardware.camera2.impl.CameraDeviceImpl.waitUntilIdle()(CameraDeviceImpl.java:1762) waiters=0 in void android.hardware.camera2.impl.CameraDeviceImpl$6.run() for 549ms
06-25 10:14:52.788 5111 5242 I CXCP : Configured CaptureSessionState-1 in 564.393 ms
06-25 10:14:52.788 5111 5242 D CXCP : GraphProcessor(cameraGraph: CameraGraph-1) onGraphStarted
06-25 10:14:52.788 5111 5242 D CXCP : CameraGraph-1 state updated to GRAPH_STARTED
06-25 10:14:52.789 5111 5242 D CXCP : Updated current camera internal state: OPEN to CombinedCameraState(state=OPEN, error=null)
06-25 10:14:52.789 5111 5242 D CXCP : Building CaptureRequest for Request(streams=[Stream-1], template=RequestTemplate(value=1))@7aac32b
06-25 10:14:52.792 5111 5242 D CXCP : CXCP#createCaptureRequest-0 - 2.415 ms
06-25 10:14:52.793 5111 5242 D CXCP : GraphRequestProcessor-1 submitting Camera2CaptureSequence-1
06-25 10:14:52.793 5111 5239 D CXCP : CaptureSessionState-1 Ready
06-25 10:14:52.795 5111 5111 I ActiveCameraSessionSingle: Camera #CameraId-0 State changed! Type: OPEN | Error: null
06-25 10:14:52.802 5111 5242 D CXCP : CXCP#setRepeatingRequest-0 - 7.045 ms
06-25 10:14:52.802 5111 5242 D CXCP : GraphRequestProcessor-1 submitted Camera2CaptureSequence-1
06-25 10:14:52.802 5111 5241 D CXCP : CaptureSessionState-1 Active
06-25 10:14:52.807 5111 5136 I CameraManagerGlobal: Camera 0 facing CAMERA_FACING_BACK state now CAMERA_STATE_ACTIVE for client com.margelo.nitro.camera.example.simple API Level 2 User Id 0Device Id 0
06-25 10:14:52.887 5111 5111 I SurfaceView: 51898495 Changes: creating=false format=false size=false visible=false alpha=false hint=false left=true top=false z=false attached=true lifecycleStrategy=false
06-25 10:14:52.888 5111 5111 I SurfaceView: 51898495 Cur surface: Surface(name=null mNativeObject=-5476376664021856064)/@0x4cac70d
06-25 10:14:52.888 5111 5111 D SurfaceComposerClient: setCornerRadius ## 317e87f SurfaceView[com.margelo.nitro.camera.example.simple/com.margelo.nitro.camera.example.simple.MainActivity]@0#3324 cornerRadius=0.000000
06-25 10:14:52.888 5111 5111 I SV[51898495 MainActivity]: updateSurface: mVisible = true mSurface.isValid() = true
06-25 10:14:52.888 5111 5111 I SV[51898495 MainActivity]: updateSurface: mSurfaceCreated = true surfaceChanged = false visibleChanged = false
06-25 10:14:52.888 5111 5111 V SurfaceView: Layout: x=-300 y=75 w=1440 h=1080, frame=Rect(0, 0 - 1440, 1080)
06-25 10:14:52.889 5111 5111 I VRI[MainActivity]@e4d5551: registerCallbackForPendingTransactions
06-25 10:14:52.921 5111 5153 D SurfaceView: 51898495 updateSurfacePosition RenderWorker, frameNr = 94, position = [-301, 75, 1381, 2317] surfaceSize = 1440x1080
06-25 10:14:52.921 5111 5153 I SV[51898495 MainActivity]: uSP: rtp = Rect(-301, 75 - 1381, 2317) rtsw = 1440 rtsh = 1080
06-25 10:14:52.921 5111 5153 I SV[51898495 MainActivity]: onSSPAndSRT: pl = -301 pt = 75 sx = 1.1680555 sy = 2.0759258
06-25 10:14:52.922 5111 5153 I SV[51898495 MainActivity]: aOrMT: VRI[MainActivity]@e4d5551 t = android.view.SurfaceControl$Transaction@6ff8cd3 fN = 94 android.view.SurfaceView.-$$Nest$mapplyOrMergeTransaction:0 android.view.SurfaceView$SurfaceViewPositionUpdateListener.positionChanged:1932 android.graphics.RenderNode$CompositePositionUpdateListener.positionChanged:401
06-25 10:14:52.922 5111 5153 I VRI[MainActivity]@e4d5551: mWNT: t=0xb400006e8ced2710 mBlastBufferQueue=0xb40000705c886390 fn= 94 HdrRenderState mRenderHdrSdrRatio=1.0 caller= android.view.SurfaceView.applyOrMergeTransaction:1863 android.view.SurfaceView.-$$Nest$mapplyOrMergeTransaction:0 android.view.SurfaceView$SurfaceViewPositionUpdateListener.positionChanged:1932
06-25 10:14:52.922 5111 5174 I VRI[MainActivity]@e4d5551: mWNT: t=0xb400006e8cefa790 mBlastBufferQueue=0xb40000705c886390 fn= 94 HdrRenderState mRenderHdrSdrRatio=1.0 caller= android.view.ViewRootImpl$10.onFrameDraw:6536 android.view.ViewRootImpl$4.onFrameDraw:2489 android.view.ThreadedRenderer$1.onFrameDraw:718
06-25 10:14:52.971 5111 5861 D nativeloader: Load /data/app/~~8FnvxEwvRxKilmV4A6QLZA==/com.margelo.nitro.camera.example.simple-gGlmM4QLrf6iGhg6L6fJ_w==/base.apk!/lib/arm64-v8a/libimagepipeline.so using class loader ns clns-10 (caller=/data/app/~~8FnvxEwvRxKilmV4A6QLZA==/com.margelo.nitro.camera.example.simple-gGlmM4QLrf6iGhg6L6fJ_w==/base.apk!classes20.dex): ok
06-25 10:14:52.983 5111 5861 I Kumiho-Kumiho: getPackageName: com.margelo.nitro.camera.example.simple
06-25 10:14:52.993 5111 5872 I Kumiho-Kumiho: getPackageName: com.margelo.nitro.camera.example.simple
06-25 10:14:53.000 5111 5872 I Kumiho-Kumiho: getPackageName: com.margelo.nitro.camera.example.simple
06-25 10:14:53.102 5111 5244 D StreamStateObserver: Update Preview stream state to STREAMING
06-25 10:14:53.103 5111 5225 I BLASTBufferQueue: [317e87f SurfaceView[com.margelo.nitro.camera.example.simple/com.margelo.nitro.camera.example.simple.MainActivity]@0#2](f:0,a:0,s:0) onFrameAvailable the first frame is available
06-25 10:14:53.103 5111 5225 I SurfaceComposerClient: apply transaction with the first frame. layerId: 3325, bufferData(ID: 21951577849864, frameNumber: 1)
06-25 10:14:53.104 5111 5111 I HybridPreviewViewSpec: PreviewView started!
06-25 10:14:53.536 5111 5111 I VRI[MainActivity]@e4d5551: handleResized, frames=ClientWindowFrames{frame=[0,0][1080,2316] display=[0,0][1080,2316] parentFrame=[0,0][0,0]} displayId=0 dragResizing=false compatScale=1.0 frameChanged=false attachedFrameChanged=false configChanged=false displayChanged=false compatScaleChanged=false dragResizingChanged=false
06-25 10:14:56.065 5111 5111 I InsetsSourceConsumer: applyRequestedVisibilityToControl: visible=true, type=statusBars, host=com.margelo.nitro.camera.example.simple/com.margelo.nitro.camera.example.simple.MainActivity
06-25 10:14:56.236 5111 5111 I VRI[MainActivity]@e4d5551: ViewPostIme pointer 0
06-25 10:14:56.239 5111 5111 I VRI[MainActivity]@e4d5551: call setFrameRateCategory for touch hint category=high hint, reason=touch, vri=VRI[MainActivity]@e4d5551
06-25 10:14:56.259 5111 5111 I VRI[MainActivity]@e4d5551: ViewPostIme pointer 1
06-25 10:14:57.763 5111 5111 I VRI[MainActivity]@e4d5551: ViewPostIme pointer 0
06-25 10:14:57.826 5111 5111 I VRI[MainActivity]@e4d5551: ViewPostIme pointer 1
06-25 10:14:57.828 5111 5111 W unknown:ReactNative: Can't cancel already finished gesture. Is a child View trying to start a gesture from an UP/CANCEL event?
06-25 10:14:57.834 5111 5195 I ReactNativeJS: Capturing Photo...
06-25 10:14:57.838 5111 5219 I HybridCameraPhotoOutputSpec: Capturing Photo to file...
06-25 10:14:57.838 5111 5219 D ImageCapture: setFlashMode: flashMode = 2
06-25 10:14:57.838 5111 5219 D CXCP : setFlashAsync: flashMode = 2, requestControl = androidx.camera.camera2.impl.DeferredUseCaseCameraRequestControl@9dd7d3c
06-25 10:14:57.838 5111 5239 D CXCP : State3AControl.getFinalPreferredAeMode: preferAeMode = 1
06-25 10:14:57.840 5111 5111 D ImageCapture: takePictureInternal
06-25 10:14:57.840 5111 5111 D TakePictureManagerImpl: Issue the next TakePictureRequest.
06-25 10:14:57.840 5111 5239 D CXCP : UseCaseCameraRequestControlImpl#setParametersAsync: [DEFAULT] values = {CaptureRequest.Key(android.control.aeMode)=1, CaptureRequest.Key(android.control.afMode)=4, CaptureRequest.Key(android.control.awbMode)=1}, optionPriority = OPTIONAL
06-25 10:14:57.841 5111 5111 D ProcessingRequest: ProcessingRequest: mRequestId = 0, mTagBundleKey = 265117420
06-25 10:14:57.843 5111 5239 D CXCP : UseCaseCameraState#updateState: parameters = {CaptureRequest.Key(android.control.aeExposureCompensation)=0, CaptureRequest.Key(android.control.aeMode)=1, CaptureRequest.Key(android.control.afMode)=4, CaptureRequest.Key(android.control.awbMode)=1}, internalParameters = {Metadata.Key(camerax.tag_bundle)=android.hardware.camera2.CaptureRequest.setTag.CX}, streams = null, template = RequestTemplate(value=1)
06-25 10:14:57.845 5111 5239 D CXCP : Update RepeatingRequest: Request(streams=[Stream-1], template=RequestTemplate(value=1))@e2994bb
06-25 10:14:57.847 5111 5223 D CXCP : Building CaptureRequest for Request(streams=[Stream-1], template=RequestTemplate(value=1))@e2994bb
06-25 10:14:57.848 5111 5223 D CXCP : CXCP#createCaptureRequest-0 - 0.430 ms
06-25 10:14:57.848 5111 5223 D CXCP : GraphRequestProcessor-1 submitting Camera2CaptureSequence-2
06-25 10:14:57.849 5111 5239 D CXCP : StillCaptureRequestControl: submitting CaptureRequest(captureConfigs=[androidx.camera.core.impl.CaptureConfig@6a77dd8], captureMode=1, flashType=0, result=CompletableDeferredImpl{Active}@ab89531) at androidx.camera.camera2.impl.DeferredUseCaseCameraRequestControl@9dd7d3c
06-25 10:14:57.850 5111 5239 D CXCP : FlashControl: Waiting for any ongoing update to be completed
06-25 10:14:57.850 5111 5223 D CXCP : CXCP#setRepeatingRequest-0 - 1.763 ms
06-25Source: mrousavy/react-native-vision-camera