mrousavy / react-native-vision-camera

📸 A powerful, high-performance React Native Camera library.
https://react-native-vision-camera.com
MIT License
7.28k stars 1.07k forks source link

🐛 iOS front Camera landscape mode issue. #3137

Open sw-tt-hitendrachavda opened 1 month ago

sw-tt-hitendrachavda commented 1 month ago

What's happening?

I am capture the video using back and font camera. when i use back camera in landscape of portrait mode it's working fine. but when i use front camera in landscape mode it getting blur. (low resolution)

Reproduceable Code

const frontformate = useCameraFormat(devicesFront, [
    { fps: 30 },
    { videoResolution: { width: 1280, height: 720 } },
    ]);

  const backformate =  useCameraFormat(devicesBack, [
    { fps: 30 },
    { videoResolution: { width: 1280, height: 720 } },
    ]);

 <View style={styles.containercamera}>
          {
            cameraType === 'front' ? 
            <Camera
            ref={cameraRef}
            style={[styles.camera]}
            audio={true}
            video={true}
            device={devicesFront}
            isActive={true}
            format={frontformate}
            outputOrientation='device'

          /> : 
          <Camera
            ref={cameraRef}
            style={[styles.camera]}
            audio={true}
            video={true}
            device={devicesBack}
            isActive={true}
            format={backformate}
          /> 
          }
</View>

Relevant log output

12:41:37.257: [info] 📸 VisionCamera.didSetProps(_:): Updating 26 props: [onInitialized, cameraId, position, enableBufferCompression, preview, onOutputOrientationChanged, onStarted, onCodeScanned, top, right, isActive, video, onViewReady, onError, onStopped, isMirrored, onPreviewOrientationChanged, onPreviewStopped, enableFrameProcessor, onPreviewStarted, format, left, bottom, audio, outputOrientation, onShutter]
12:41:37.259: [info] 📸 VisionCamera.configurePreviewOrientation(_:): Updating Preview rotation: landscapeLeft...
12:41:37.259: [info] 📸 VisionCamera.configureOutputOrientation(_:): Updating Outputs rotation: landscapeLeft...
12:41:37.259: [info] 📸 VisionCamera.configure(_:): configure { ... }: Waiting for lock...
12:41:37.262: [info] 📸 VisionCamera.configure(_:): configure { ... }: Updating CameraSession Configuration... Difference(inputChanged: true, outputsChanged: true, videoStabilizationChanged: true, orientationChanged: true, formatChanged: true, sidePropsChanged: true, torchChanged: true, zoomChanged: true, exposureChanged: true, audioSessionChanged: true, locationChanged: true)
12:41:37.262: [info] 📸 VisionCamera.configureDevice(configuration:): Configuring Input Device...
12:41:37.262: [info] 📸 VisionCamera.configureDevice(configuration:): Configuring Camera com.apple.avfoundation.avcapturedevice.built-in_video:1...
12:41:37.272: [debug] 📸 VisionCamera.sensorOrientation: Sensor Orientation changed from landscapeLeft -> portrait
12:41:37.272: [info] 📸 VisionCamera.configurePreviewOrientation(_:): Updating Preview rotation: portrait...
12:41:37.278: [info] 📸 VisionCamera.configureOutputOrientation(_:): Updating Outputs rotation: portrait...
12:41:37.279: [info] 📸 VisionCamera.configureDevice(configuration:): Successfully configured Input Device!
12:41:37.279: [info] 📸 VisionCamera.configureOutputs(configuration:): Configuring Outputs...
12:41:37.279: [info] 📸 VisionCamera.configureOutputs(configuration:): Adding Video Data output...
12:41:37.280: [info] 📸 VisionCamera.configureOutputs(configuration:): AVCaptureVideoDataOutput will rotate Frames to landscapeRight...
12:41:37.280: [info] 📸 VisionCamera.configurePreviewOrientation(_:): Updating Preview rotation: portrait...
12:41:37.285: [info] 📸 VisionCamera.configureOutputOrientation(_:): Updating Outputs rotation: portrait...
12:41:37.285: [info] 📸 VisionCamera.configureOutputs(configuration:): Successfully configured all outputs!
12:41:37.286: [info] 📸 VisionCamera.setTargetOutputOrientation(_:): Setting target output orientation from device to device...
12:41:37.286: [info] 📸 VisionCamera.configureFormat(configuration:device:): Configuring Format (3840x2160 | 1280x720@30.0 (ISO: 19.0..1824.0))...
12:41:37.288: [info] 📸 VisionCamera.configureFormat(configuration:device:): Successfully configured Format!
12:41:37.289: [info] 📸 VisionCamera.getPixelFormat(for:): Available Pixel Formats: ["420v", "420f", "BGRA"], finding best match... (pixelFormat="yuv", enableHdr={false}, enableBufferCompression={true})
12:41:37.289: [info] 📸 VisionCamera.getPixelFormat(for:): Using PixelFormat: 420f...
12:41:37.457: [info] 📸 VisionCamera.init(frame:session:): Preview Layer started previewing.
12:41:37.459: [info] 📸 VisionCamera.configure(_:): Beginning AudioSession configuration...
12:41:37.459: [info] 📸 VisionCamera.configureAudioSession(configuration:): Configuring Audio Session...
12:41:37.460: [info] 📸 VisionCamera.configureAudioSession(configuration:): Adding Audio input...
12:41:37.461: [info] 📸 VisionCamera.configure(_:): Beginning Location Output configuration...
12:41:37.464: [info] 📸 VisionCamera.configureAudioSession(configuration:): Adding Audio Data output...
12:41:37.465: [info] 📸 VisionCamera.configure(_:): Finished Location Output configuration!
12:41:37.465: [info] 📸 VisionCamera.configure(_:): Committed AudioSession configuration!
12:41:38.729: [debug] 📸 VisionCamera.deviceOrientation: Device Orientation changed from portrait -> landscapeLeft
12:41:38.729: [info] 📸 VisionCamera.configureOutputOrientation(_:): Updating Outputs rotation: landscapeRight...
12:41:39.109: [debug] 📸 VisionCamera.interfaceOrientation: Interface Orientation changed from portrait -> landscapeLeft
12:41:39.110: [info] 📸 VisionCamera.configurePreviewOrientation(_:): Updating Preview rotation: landscapeRight...
2024-08-13 12:41:39.186996+0530 utrapp[1873:286835] [javascript] 'isTablet', false
2024-08-13 12:41:39.187104+0530 utrapp[1873:286835] [javascript] 'isIpad', false
2024-08-13 12:41:39.187179+0530 utrapp[1873:286835] [javascript] 'iPhone', false
2024-08-13 12:41:39.230967+0530 utrapp[1873:286835] [javascript] Lanscape mode
2024-08-13 12:41:39.248489+0530 utrapp[1873:286835] [javascript] Lanscape mode
2024-08-13 12:41:39.263289+0530 utrapp[1873:286835] [javascript] 'isTablet', false
2024-08-13 12:41:39.263422+0530 utrapp[1873:286835] [javascript] 'isIpad', false
2024-08-13 12:41:39.263481+0530 utrapp[1873:286835] [javascript] 'iPhone', false
12:41:40.154: [debug] 📸 VisionCamera.deviceOrientation: Device Orientation changed from landscapeLeft -> portrait
12:41:40.154: [info] 📸 VisionCamera.configureOutputOrientation(_:): Updating Outputs rotation: portrait...

Camera Device

{
  "minFocusDistance": 0,
  "hardwareLevel": "full",
  "maxExposure": 8,
  "supportsLowLightBoost": false,
  "isMultiCam": false,
  "minZoom": 1,
  "position": "front",
  "formats": [],
  "name": "Front Camera",
  "minExposure": -8,
  "hasFlash": true,
  "maxZoom": 135,
  "physicalDevices": [
    "wide-angle-camera"
  ],
  "supportsFocus": false,
  "supportsRawCapture": false,
  "neutralZoom": 1,
  "sensorOrientation": "portrait",
  "id": "com.apple.avfoundation.avcapturedevice.built-in_video:1",
  "hasTorch": false
}

Device

iPhone 8 (Version 16.7.7)

VisionCamera Version

4.5.1

Can you reproduce this issue in the VisionCamera Example app?

I didn't try (⚠️ your issue might get ignored & closed if you don't try this)

Additional information

maintenance-hans[bot] commented 1 month ago

Guten Tag, Hans here! 🍻

Thanks for ze detailed report. It looks like you're experiencing a blur issue with ze front camera in landscape mode. However, it would help if you could try to reproduce this issue in ze VisionCamera Example app, as this could help narrow down ze problem. Also, please make sure to always check for ze latest versions.

If you're still facing issues, please paste relevant logs from Xcode so mrousavy can better understand the situation. Logs are very important to help diagnose what's going wrong!

Feel free to update ze issue once you have more information. Danke!

Note: If you think I made a mistake, please ping @mrousavy to take a look.