mrousavy / react-native-vision-camera

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

🐛 photo.orientation is wrong when outputOrientation = preview on Android #2994

Open Titozzz opened 2 months ago

Titozzz commented 2 months ago

What's happening?

Unexpected orientation on Android using outputOrientation = preview iOS works fine

https://github.com/Titozzz/debug-orientation-vision-camera I kept the example to a minimum Just run the app and take a picture.

Reproduceable Code

import { StatusBar } from 'expo-status-bar';
import React, { useEffect, useRef } from 'react';
import { StyleSheet, Text, View, Button } from 'react-native';
import {
  Camera,
  useCameraDevice,
  useCameraPermission,
} from 'react-native-vision-camera';
import Exif from 'react-native-exif';

// Exif mapping:
// 1: 0 degrees, no rotation
// 2: 0 degrees, mirrored
// 3: 180 degrees, upside down
// 4: 180 degrees, upside down and mirrored
// 5: 90 degrees, mirrored and rotated to the right
// 6: 90 degrees, rotated to the right
// 7: 90 degrees, mirrored and rotated to the left
// 8: 90 degrees, rotated to the left

export default function App() {
  const device = useCameraDevice('front');
  const camera = useRef(null);

  const { hasPermission, requestPermission } = useCameraPermission();
  useEffect(() => {
    requestPermission();
  }, []);

  return (
    <View style={styles.container}>
      {hasPermission && device && (
        <Camera
          isActive
          device={device}
          photo
          ref={camera}
          style={StyleSheet.absoluteFill}
          outputOrientation="preview"
        ></Camera>
      )}
      <Button
        title="take picture"
        onPress={async () => {
          const photo = await camera.current.takePhoto();
          const exif = await Exif.getExif(photo.path);
          console.log(photo.orientation);
          console.log(exif.Orientation);
          // photo.orientation is portrait but exif.Orientation is 7 on Android. !!! Error !!!
          // on iOS it works fine: Photo.orientation is landscape-left and exif.Orientation is 5.
        }}
      ></Button>
    </View>
  );
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
  },
});

Relevant log output

                            Process com.titozzz.debugorientationvisioncamera created for next-top-activity {com.titozzz.debugorientationvisioncamera/com.titozzz.d
                            ebugorientationvisioncamera.MainActivity}
                            PID: 27601   UID:    GIDs: 

        ionvisioncamera  I  Late-enabling -Xcheck:jni
                         I  Using CollectorTypeCMC GC.
         ActivityThread  I  Relaunch all activities: onCoreSettingsChange
atibilityChangeReporter  D  Compat change id reported: 171979766; UID 10443; state: ENABLED
                         D  Compat change id reported: 242716250; UID 10443; state: ENABLED
           nativeloader  D  Configuring clns-4 for other apk /system_ext/framework/com.google.android.camerax.extensions.jar. target_sdk_version=34, uses_libraries
                            =ALL, library_path=/data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==/lib/arm64:/da
                            ta/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==/base.apk!/lib/arm64-v8a, permitted_
                            path=/data:/mnt/expand:/data/user/0/com.titozzz.debugorientationvisioncamera
                         D  Extending system_exposed_libraries: libedgetpu_dba.google.so
                         D  Configuring clns-5 for other apk /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==
                            /base.apk. target_sdk_version=34, uses_libraries=, library_path=/data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvision
                            camera--lQzEGwsfnx0VejHSpt_Mg==/lib/arm64:/data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0Vej
                            HSpt_Mg==/base.apk!/lib/arm64-v8a, permitted_path=/data:/mnt/expand:/data/user/0/com.titozzz.debugorientationvisioncamera
    GraphicsEnvironment  V  Currently set values for:
                         V    angle_gl_driver_selection_pkgs=[com.android.angle, com.linecorp.b612.android, com.campmobile.snow, com.google.android.apps.tachyon]
                         V    angle_gl_driver_selection_values=[angle, native, native, native]
                         V  com.titozzz.debugorientationvisioncamera is not listed in per-application setting
                         V  Neither updatable production driver nor prerelease driver is supported.
atibilityChangeReporter  D  Compat change id reported: 279646685; UID 10443; state: DISABLED
        ionvisioncamera  W  Accessing hidden method Ldalvik/system/BaseDexClassLoader;->getLdLibraryPath()Ljava/lang/String; (unsupported,core-platform-api, reflec
                            tion, allowed)
               SoLoader  V  Init SoLoader delegate
                 vulkan  D  searching for layers in '/data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==/lib/arm
                            64'
                         D  searching for layers in '/data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==/base.ap
                            k!/lib/arm64-v8a'
      AppCompatDelegate  D  Checking for metadata for AppLocalesMetadataHolderService : Service not found
        ionvisioncamera  E  Invalid resource ID 0x00000000.
               SoLoader  V  libhermes.so not found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==/lib/ar
                            m64
                         V  libjsi.so not found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==/lib/arm64
                         V  libfolly_runtime.so not found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==
                            /lib/arm64
                         V  libglog.so not found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==/lib/arm6
                            4
                         V  libm.so not found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==/lib/arm64
                         V  libm.so not found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==/base.apk!/l
                            ib/arm64-v8a
                         D  libm.so found on /system/lib64
                         D  libm.so loaded implicitly
                         V  libc++_shared.so not found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==/li
                            b/arm64
                         V  libc.so not found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==/lib/arm64
                         V  libc.so not found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==/base.apk!/l
                            ib/arm64-v8a
                         D  libc.so found on /system/lib64
                         D  libc.so loaded implicitly
                         V  libdl.so not found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==/lib/arm64
                         V  libdl.so not found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==/base.apk!/
                            lib/arm64-v8a
                         D  libdl.so found on /system/lib64
                         D  libdl.so loaded implicitly
                         D  libc++_shared.so found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==/base.a
                            pk!/lib/arm64-v8a
                         D  libglog.so found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==/base.apk!/li
                            b/arm64-v8a
                         D  libfolly_runtime.so found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==/bas
                            e.apk!/lib/arm64-v8a
                         D  libjsi.so found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==/base.apk!/lib
                            /arm64-v8a
                         V  libfbjni.so not found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==/lib/arm
                            64
                         V  libandroid.so not found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==/lib/a
                            rm64
                         V  libandroid.so not found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==/base.
                            apk!/lib/arm64-v8a
                         D  libandroid.so found on /system/lib64
                         D  libandroid.so loaded implicitly
                         V  liblog.so not found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==/lib/arm64
                         V  liblog.so not found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==/base.apk!
                            /lib/arm64-v8a
                         D  liblog.so found on /system/lib64
                         D  liblog.so loaded implicitly
                         D  libfbjni.so found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==/base.apk!/l
                            ib/arm64-v8a
                         D  libhermes.so found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==/base.apk!/
                            lib/arm64-v8a
                         V  libhermes_executor.so not found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg
                            ==/lib/arm64
                         V  libreactnativejni.so not found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg=
                            =/lib/arm64
                         V  libyoga.so not found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==/lib/arm6
                            4
                         D  libyoga.so found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==/base.apk!/li
                            b/arm64-v8a
                         V  libreactperfloggerjni.so not found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt
                            _Mg==/lib/arm64
                         D  libreactperfloggerjni.so found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg=
                            =/base.apk!/lib/arm64-v8a
                         V  libreact_render_core.so not found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_
                            Mg==/lib/arm64
                         V  libreact_render_debug.so not found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt
                            _Mg==/lib/arm64
                         D  libreact_render_debug.so found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg=
                            =/base.apk!/lib/arm64-v8a
                         V  libreact_render_graphics.so not found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejH
                            Spt_Mg==/lib/arm64
                         V  libreact_utils.so not found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==/l
                            ib/arm64
                         V  libreact_debug.so not found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==/l
                            ib/arm64
                         D  libreact_debug.so found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==/base.
                            apk!/lib/arm64-v8a
                         V  libjsinspector.so not found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==/l
                            ib/arm64
                         V  libreact_featureflags.so not found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt
                            _Mg==/lib/arm64
                         D  libreact_featureflags.so found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg=
                            =/base.apk!/lib/arm64-v8a
                         V  libruntimeexecutor.so not found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg
                            ==/lib/arm64
                         D  libruntimeexecutor.so found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==/b
                            ase.apk!/lib/arm64-v8a
                         D  libjsinspector.so found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==/base.
                            apk!/lib/arm64-v8a
                         D  libreact_utils.so found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==/base.
                            apk!/lib/arm64-v8a
                         D  libreact_render_graphics.so found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_
                            Mg==/base.apk!/lib/arm64-v8a
                         V  libreact_render_mapbuffer.so not found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0Vej
                            HSpt_Mg==/lib/arm64
                         D  libreact_render_mapbuffer.so found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt
                            _Mg==/base.apk!/lib/arm64-v8a
                         D  libreact_render_core.so found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==
                            /base.apk!/lib/arm64-v8a
                         D  libreactnativejni.so found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==/ba
                            se.apk!/lib/arm64-v8a
                         D  libhermes_executor.so found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==/b
                            ase.apk!/lib/arm64-v8a
                Sensors  W  Cannot get virtualdevice_native service
               SoLoader  V  libreact_devsupportjni.so not found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSp
                            t_Mg==/lib/arm64
           TrafficStats  D  tagSocket(100) with statsTag=0xffffffff, statsUid=-1
                         D  tagSocket(102) with statsTag=0xffffffff, statsUid=-1
        ionvisioncamera  W  Accessing hidden method Landroid/view/View;->computeFitSystemWindows(Landroid/graphics/Rect;Landroid/graphics/Rect;)Z (unsupported, ref
                            lection, allowed)
                         W  Accessing hidden method Landroid/view/ViewGroup;->makeOptionalFitsSystemWindows()V (unsupported, reflection, allowed)
               SoLoader  D  libreact_devsupportjni.so found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg
                            ==/base.apk!/lib/arm64-v8a
   ContentCaptureHelper  I  Setting logging level to OFF
           TrafficStats  D  tagSocket(106) with statsTag=0xffffffff, statsUid=-1
atibilityChangeReporter  D  Compat change id reported: 237531167; UID 10443; state: DISABLED
    unknown:ReactNative  W  Packager connection already open, nooping.
atibilityChangeReporter  D  Compat change id reported: 210923482; UID 10443; state: ENABLED
                         D  Compat change id reported: 63938206; UID 10443; state: DISABLED
 WindowOnBackDispatcher  W  sendCancelIfRunning: isInProgress=falsecallback=android.view.ViewRootImpl$$ExternalSyntheticLambda11@2507bd5
        ExpoModulesCore  I  ✅ AppContext was initialized
    CameraManagerGlobal  I  Connecting to camera service
    unknown:ReactNative  W  Packager connection already open, nooping.
wManagerPropertyUpdater  W  Could not find generated setter for class com.facebook.react.views.debuggingoverlay.DebuggingOverlayManager
                         W  Could not find generated setter for class com.facebook.react.uimanager.LayoutShadowNode
                         W  Could not find generated setter for class com.facebook.react.views.drawer.ReactDrawerLayoutManager
                         W  Could not find generated setter for class com.facebook.react.views.scroll.ReactHorizontalScrollViewManager
                         W  Could not find generated setter for class com.facebook.react.views.scroll.ReactHorizontalScrollContainerViewManager
                         W  Could not find generated setter for class com.facebook.react.views.progressbar.ReactProgressBarViewManager
                         W  Could not find generated setter for class com.facebook.react.views.progressbar.ProgressBarShadowNode
                         W  Could not find generated setter for class com.facebook.react.views.scroll.ReactScrollViewManager
                         W  Could not find generated setter for class com.facebook.react.views.switchview.ReactSwitchManager
                         W  Could not find generated setter for class com.facebook.react.views.switchview.ReactSwitchManager$ReactSwitchShadowNode
                         W  Could not find generated setter for class com.facebook.react.views.swiperefresh.SwipeRefreshLayoutManager
                         W  Could not find generated setter for class com.facebook.react.views.text.frescosupport.FrescoBasedReactTextInlineImageViewManager
                         W  Could not find generated setter for class com.facebook.react.views.text.frescosupport.FrescoBasedReactTextInlineImageShadowNode
                         W  Could not find generated setter for class com.facebook.react.views.image.ReactImageManager
                         W  Could not find generated setter for class com.facebook.react.views.modal.ReactModalHostManager
                         W  Could not find generated setter for class com.facebook.react.views.modal.ModalHostShadowNode
                         W  Could not find generated setter for class com.facebook.react.views.text.ReactRawTextManager
                         W  Could not find generated setter for class com.facebook.react.views.text.ReactRawTextShadowNode
                         W  Could not find generated setter for class com.facebook.react.views.textinput.ReactTextInputManager
                         W  Could not find generated setter for class com.facebook.react.views.textinput.ReactTextInputShadowNode
                         W  Could not find generated setter for class com.facebook.react.views.text.ReactTextViewManager
                         W  Could not find generated setter for class com.facebook.react.views.text.ReactTextShadowNode
                         W  Could not find generated setter for class com.facebook.react.views.view.ReactViewManager
                         W  Could not find generated setter for class com.facebook.react.views.text.ReactVirtualTextViewManager
                         W  Could not find generated setter for class com.facebook.react.views.text.ReactVirtualTextShadowNode
                         W  Could not find generated setter for class com.facebook.react.views.unimplementedview.ReactUnimplementedViewManager
                         W  Could not find generated setter for class com.mrousavy.camera.react.CameraViewManager
          CameraDevices  I  Initializing ProcessCameraProvider...
                         I  Camera #0 is now available.
                         I  Camera #1 is now available.
       CameraRepository  D  Added camera: 0
      Camera2CameraInfo  I  Device Level: INFO_SUPPORTED_HARDWARE_LEVEL_FULL
       CameraRepository  D  Added camera: 1
      Camera2CameraInfo  I  Device Level: INFO_SUPPORTED_HARDWARE_LEVEL_FULL
        CameraValidator  D  Verifying camera lens facing on panther, lensFacingInteger: null
          CameraDevices  I  Initializing ExtensionsManager...
    ExtenderVersionImpl  D  Extension device library version 1.4.0
        ExtenderVersion  D  Selected vendor runtime: 1.4.0
      ExtensionsManager  D  Successfully initialized extensions
          CameraDevices  I  Successfully initialized!
atibilityChangeReporter  D  Compat change id reported: 206033068; UID 10443; state: ENABLED
EncoderProfilesProvider  D  Base Bitrate(72000000bps) * Bit Depth Ratio (10 / 8) = 90000000
         MediaCodecList  D  codecHandlesFormat: no format, so no extra checks
                         D  codecHandlesFormat: no format, so no extra checks
                 CCodec  D  allocate(c2.exynos.hevc.encoder)
           Codec2Client  I  Available Codec2 services: "default" "default1" "default2" "software"
                 CCodec  I  setting up 'default' as default (vendor) store
               SoLoader  V  libreactnativeblob.so not found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg
                            ==/lib/arm64
                 CCodec  I  Created component [c2.exynos.hevc.encoder]
           CCodecConfig  D  read media type: video/hevc
  ReflectedParamUpdater  D  extent() != 1 for single value type: output.subscribed-indices.values
                         D  extent() != 1 for single value type: input.buffers.allocator-ids.values
                         D  extent() != 1 for single value type: output.buffers.allocator-ids.values
                         D  extent() != 1 for single value type: output.buffers.pool-ids.values
                         D  ignored struct field coding.qp.values
               SoLoader  D  libreactnativeblob.so found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==/b
                            ase.apk!/lib/arm64-v8a
  ReflectedParamUpdater  D  ignored struct field coding.gop.values
           CCodecConfig  D  ignoring local param raw.color (0xc2001809) as it is already supported
                         I  query failed after returning 25 values (BAD_INDEX)
                         D  c2 config diff is Dict {
                         D    c2::u32 algo.bitrate-mode.value = 3
                         D    c2::u32 algo.encoding-quality-level.value = 0
                         D    c2::i32 algo.priority.value = 0
                         D    c2::u32 algo.quality.value = 57
                         D    c2::float algo.rate.value = 0
                         D    c2::i32 coded.average-qp.value = 0
                         D    c2::u32 coded.bitrate-mode.value = 1
                         D    c2::u32 coded.bitrate.value = 64000
                         D    c2::float coded.frame-rate.value = 15
                         D    c2::u32 coded.hdr-format.value = 0
                         D    c2::u32 coded.picture-type.value = 0
                         D    c2::u32 coded.pl.level = 24584
                         D    c2::u32 coded.pl.profile = 24576
                         D    c2::u32 coding.intra-refresh.mode = 0
                         D    c2::float coding.intra-refresh.period = 0
                         D    c2::u32 coding.request-sync-frame.value = 0
                         D    c2::i64 coding.sync-frame-interval.value = 1000000
                         D    Buffer coding.temporal-layering = {
                         D      00000000:  10 00 00 00 07 20 01 52  00 00 00 00 00 00 00 00  ..... .R........
                         D    }
                         D    c2::u32 input.delay.value = 0
                         D    Buffer input.hdr-dynamic-info.data = {
                         D    }
                         D    c2::u32 input.hdr-dynamic-info.type = 1
                         D    string input.media-type.value = "video/raw"
                         D    c2::u32 output.buffers.prepend-header.va
                         D  found invalid HDR static metadata AMessage(what = 0x00000000) = {
                         D            int32_t android._color-format = 2130708361
                         D            int32_t android._dataspace = 0
                         D            int32_t bitrate-mode = 1
                         D            float cta861.max-cll = 0.000000
                         D            float cta861.max-fall = 65536.000000
                         D            int32_t frame-rate = 15
                         D            int32_t height = 160
                         D            int32_t intra-refresh-period = 0
                         D            string mime = "video/raw"
                         D            int32_t prepend-sps-pps-to-idr-frames = 0
                         D            int32_t priority = 0
                         D            float smpte2086.blue.x = 0.131000
                         D            float smpte2086.blue.y = 0.046000
                         D            float smpte2086.green.x = 0.170000
                         D            float smpte2086.green.y = 0.797000
                         D            float smpte2086.max-luminance = 1000.000000
                         D            float smpte2086.min-luminance = 0.000000
                         D            float smpte2086.red.x = 0.708000
                         D            float smpte2086.red.y = 0.292000
                         D            float smpte2086.white.x = 0.312700
                         D            float smpte2086.white.y = 0.329000
                         D            int32_t video-qp-average = 0
                         D            int3
          hw-BpHwBinder  I  onLastStrongRef automatically unlinking death recipients
  CapabilitiesByQuality  D  profiles = ImmutableEncoderProfilesProxy{defaultDurationSeconds=60, recommendedFileFormat=2, audioProfiles=[AudioProfileProxy{codec=3, 
                            mediaType=audio/mp4a-latm, bitrate=96000, sampleRate=48000, channels=1, profile=1}], videoProfiles=[VideoProfileProxy{codec=5, mediaTyp
                            e=video/hevc, bitrate=90000000, frameRate=60, width=3840, height=2160, profile=2, bitDepth=10, chromaSubsampling=0, hdrFormat=1}]}
EncoderProfilesProvider  D  Base Bitrate(33000000bps) * Bit Depth Ratio (10 / 8) = 41250000
  CapabilitiesByQuality  D  profiles = ImmutableEncoderProfilesProxy{defaultDurationSeconds=60, recommendedFileFormat=2, audioProfiles=[AudioProfileProxy{codec=3, 
                            mediaType=audio/mp4a-latm, bitrate=96000, sampleRate=48000, channels=1, profile=1}], videoProfiles=[VideoProfileProxy{codec=5, mediaTyp
                            e=video/hevc, bitrate=41250000, frameRate=60, width=1920, height=1080, profile=2, bitDepth=10, chromaSubsampling=0, hdrFormat=1}]}
EncoderProfilesProvider  D  Base Bitrate(12000000bps) * Bit Depth Ratio (10 / 8) = 15000000
  CapabilitiesByQuality  D  profiles = ImmutableEncoderProfilesProxy{defaultDurationSeconds=60, recommendedFileFormat=2, audioProfiles=[AudioProfileProxy{codec=3, 
                            mediaType=audio/mp4a-latm, bitrate=96000, sampleRate=48000, channels=1, profile=1}], videoProfiles=[VideoProfileProxy{codec=5, mediaTyp
                            e=video/hevc, bitrate=15000000, frameRate=30, width=1280, height=720, profile=2, bitDepth=10, chromaSubsampling=0, hdrFormat=1}]}
EncoderProfilesProvider  D  Base Bitrate(6000000bps) * Bit Depth Ratio (10 / 8) = 7500000
  CapabilitiesByQuality  D  profiles = ImmutableEncoderProfilesProxy{defaultDurationSeconds=60, recommendedFileFormat=2, audioProfiles=[AudioProfileProxy{codec=3, 
                            mediaType=audio/mp4a-latm, bitrate=96000, sampleRate=48000, channels=1, profile=1}], videoProfiles=[VideoProfileProxy{codec=5, mediaTyp
                            e=video/hevc, bitrate=7500000, frameRate=30, width=720, height=480, profile=2, bitDepth=10, chromaSubsampling=0, hdrFormat=1}]}
                         D  profiles = ImmutableEncoderProfilesProxy{defaultDurationSeconds=60, recommendedFileFormat=2, audioProfiles=[AudioProfileProxy{codec=3, 
                            mediaType=audio/mp4a-latm, bitrate=96000, sampleRate=48000, channels=1, profile=1}], videoProfiles=[VideoProfileProxy{codec=2, mediaTyp
                            e=video/avc, bitrate=72000000, frameRate=60, width=3840, height=2160, profile=-1, bitDepth=8, chromaSubsampling=0, hdrFormat=0}]}
                         D  profiles = ImmutableEncoderProfilesProxy{defaultDurationSeconds=60, recommendedFileFormat=2, audioProfiles=[AudioProfileProxy{codec=3, 
                            mediaType=audio/mp4a-latm, bitrate=96000, sampleRate=48000, channels=1, profile=1}], videoProfiles=[VideoProfileProxy{codec=2, mediaTyp
                            e=video/avc, bitrate=33000000, frameRate=60, width=1920, height=1080, profile=-1, bitDepth=8, chromaSubsampling=0, hdrFormat=0}]}
                         D  profiles = ImmutableEncoderProfilesProxy{defaultDurationSeconds=60, recommendedFileFormat=2, audioProfiles=[AudioProfileProxy{codec=3, 
                            mediaType=audio/mp4a-latm, bitrate=96000, sampleRate=48000, channels=1, profile=1}], videoProfiles=[VideoProfileProxy{codec=2, mediaTyp
                            e=video/avc, bitrate=12000000, frameRate=30, width=1280, height=720, profile=-1, bitDepth=8, chromaSubsampling=0, hdrFormat=0}]}
                         D  profiles = ImmutableEncoderProfilesProxy{defaultDurationSeconds=60, recommendedFileFormat=2, audioProfiles=[AudioProfileProxy{codec=3, 
                            mediaType=audio/mp4a-latm, bitrate=96000, sampleRate=48000, channels=1, profile=1}], videoProfiles=[VideoProfileProxy{codec=2, mediaTyp
                            e=video/avc, bitrate=6000000, frameRate=30, width=720, height=480, profile=-1, bitDepth=8, chromaSubsampling=0, hdrFormat=0}]}
  CameraOrientationUtil  D  getRelativeImageRotation: destRotationDegrees=0, sourceRotationDegrees=90, isOppositeFacing=true, result=90
             ziparchive  W  Unable to open '/data/app/~~9ogzmLWTZJvGS2H1Th3Bbw==/com.google.android.trichromelibrary_642216533-j0vIWiqWWXMzylUr_ui6Gg==/base.dm': N
                            o such file or directory
                         W  Unable to open '/data/app/~~9ogzmLWTZJvGS2H1Th3Bbw==/com.google.android.trichromelibrary_642216533-j0vIWiqWWXMzylUr_ui6Gg==/base.dm': N
                            o such file or directory
        ionvisioncamera  W  Entry not found
           nativeloader  D  Configuring clns-6 for other apk /data/app/~~9ogzmLWTZJvGS2H1Th3Bbw==/com.google.android.trichromelibrary_642216533-j0vIWiqWWXMzylUr_ui
                            6Gg==/base.apk. target_sdk_version=34, uses_libraries=ALL, library_path=/data/app/~~vV0snMrt1JvdbzIZgSwuew==/com.google.android.webview
                            -p4lFjG12y0M10dHuehigGQ==/lib/arm64:/data/app/~~vV0snMrt1JvdbzIZgSwuew==/com.google.android.webview-p4lFjG12y0M10dHuehigGQ==/base.apk!/
                            lib/arm64-v8a:/data/app/~~9ogzmLWTZJvGS2H1Th3Bbw==/com.google.android.trichromelibrary_642216533-j0vIWiqWWXMzylUr_ui6Gg==/base.apk!/lib
                            /arm64-v8a, permitted_path=/data:/mnt/expand
                         D  Extending system_exposed_libraries: libedgetpu_dba.google.so
    ExtenderVersionImpl  D  Advanced Extensions Implemented
                         D  Advanced Extensions Implemented
           nativeloader  D  Configuring clns-7 for other apk /data/app/~~vV0snMrt1JvdbzIZgSwuew==/com.google.android.webview-p4lFjG12y0M10dHuehigGQ==/base.apk. tar
                            get_sdk_version=34, uses_libraries=, library_path=/data/app/~~vV0snMrt1JvdbzIZgSwuew==/com.google.android.webview-p4lFjG12y0M10dHuehigG
                            Q==/lib/arm64:/data/app/~~vV0snMrt1JvdbzIZgSwuew==/com.google.android.webview-p4lFjG12y0M10dHuehigGQ==/base.apk!/lib/arm64-v8a:/data/ap
                            p/~~9ogzmLWTZJvGS2H1Th3Bbw==/com.google.android.trichromelibrary_642216533-j0vIWiqWWXMzylUr_ui6Gg==/base.apk!/lib/arm64-v8a, permitted_
                            path=/data:/mnt/expand
         WebViewFactory  I  Loading com.google.android.webview version 125.0.6422.165 (code 642216533)
  cr_WVCFactoryProvider  I  version=125.0.6422.165 (642216533) minSdkVersion=29 isBundle=true multiprocess=true packageId=2
EncoderProfilesProvider  D  Base Bitrate(22000000bps) * Bit Depth Ratio (10 / 8) = 27500000
  CapabilitiesByQuality  D  profiles = ImmutableEncoderProfilesProxy{defaultDurationSeconds=60, recommendedFileFormat=2, audioProfiles=[AudioProfileProxy{codec=3, 
                            mediaType=audio/mp4a-latm, bitrate=96000, sampleRate=48000, channels=1, profile=1}], videoProfiles=[VideoProfileProxy{codec=5, mediaTyp
                            e=video/hevc, bitrate=27500000, frameRate=30, width=1920, height=1080, profile=2, bitDepth=10, chromaSubsampling=0, hdrFormat=1}]}
EncoderProfilesProvider  D  Base Bitrate(12000000bps) * Bit Depth Ratio (10 / 8) = 15000000
  CapabilitiesByQuality  D  profiles = ImmutableEncoderProfilesProxy{defaultDurationSeconds=60, recommendedFileFormat=2, audioProfiles=[AudioProfileProxy{codec=3, 
                            mediaType=audio/mp4a-latm, bitrate=96000, sampleRate=48000, channels=1, profile=1}], videoProfiles=[VideoProfileProxy{codec=5, mediaTyp
                            e=video/hevc, bitrate=15000000, frameRate=30, width=1280, height=720, profile=2, bitDepth=10, chromaSubsampling=0, hdrFormat=1}]}
EncoderProfilesProvider  D  Base Bitrate(6000000bps) * Bit Depth Ratio (10 / 8) = 7500000
  CapabilitiesByQuality  D  profiles = ImmutableEncoderProfilesProxy{defaultDurationSeconds=60, recommendedFileFormat=2, audioProfiles=[AudioProfileProxy{codec=3, 
                            mediaType=audio/mp4a-latm, bitrate=96000, sampleRate=48000, channels=1, profile=1}], videoProfiles=[VideoProfileProxy{codec=5, mediaTyp
                            e=video/hevc, bitrate=7500000, frameRate=30, width=720, height=480, profile=2, bitDepth=10, chromaSubsampling=0, hdrFormat=1}]}
                         D  profiles = ImmutableEncoderProfilesProxy{defaultDurationSeconds=60, recommendedFileFormat=2, audioProfiles=[AudioProfileProxy{codec=3, 
                            mediaType=audio/mp4a-latm, bitrate=96000, sampleRate=48000, channels=1, profile=1}], videoProfiles=[VideoProfileProxy{codec=2, mediaTyp
                            e=video/avc, bitrate=22000000, frameRate=30, width=1920, height=1080, profile=-1, bitDepth=8, chromaSubsampling=0, hdrFormat=0}]}
                         D  profiles = ImmutableEncoderProfilesProxy{defaultDurationSeconds=60, recommendedFileFormat=2, audioProfiles=[AudioProfileProxy{codec=3, 
                            mediaType=audio/mp4a-latm, bitrate=96000, sampleRate=48000, channels=1, profile=1}], videoProfiles=[VideoProfileProxy{codec=2, mediaTyp
                            e=video/avc, bitrate=12000000, frameRate=30, width=1280, height=720, profile=-1, bitDepth=8, chromaSubsampling=0, hdrFormat=0}]}
                         D  profiles = ImmutableEncoderProfilesProxy{defaultDurationSeconds=60, recommendedFileFormat=2, audioProfiles=[AudioProfileProxy{codec=3, 
                            mediaType=audio/mp4a-latm, bitrate=96000, sampleRate=48000, channels=1, profile=1}], videoProfiles=[VideoProfileProxy{codec=2, mediaTyp
                            e=video/avc, bitrate=6000000, frameRate=30, width=720, height=480, profile=-1, bitDepth=8, chromaSubsampling=0, hdrFormat=0}]}
  CameraOrientationUtil  D  getRelativeImageRotation: destRotationDegrees=0, sourceRotationDegrees=270, isOppositeFacing=false, result=270
    ExtenderVersionImpl  D  Advanced Extensions Implemented
                         D  Advanced Extensions Implemented
       cr_LibraryLoader  I  Successfully loaded native library
  cr_CachingUmaRecorder  I  Flushed 6 samples from 6 histograms, 0 samples were dropped.
           TrafficStats  D  tagSocket(157) with statsTag=0xffffffff, statsUid=-1
               SoLoader  V  libexpo-modules-core.so not found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_
                            Mg==/lib/arm64
                         V  libreact_nativemodule_core.so not found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0Ve
                            jHSpt_Mg==/lib/arm64
                         D  libreact_nativemodule_core.so found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSp
                            t_Mg==/base.apk!/lib/arm64-v8a
                         D  libexpo-modules-core.so found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==
                            /base.apk!/lib/arm64-v8a
                         V  libturbomodulejsijni.so not found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_
                            Mg==/lib/arm64
                         D  libturbomodulejsijni.so found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_Mg==
                            /base.apk!/lib/arm64-v8a
        ExpoModulesCore  I  ✅ JSI interop was installed
                         W  ⚠️ JSI interop was already installed
                         I  ✅ Constants were exported
EncoderProfilesProvider  D  Base Bitrate(72000000bps) * Bit Depth Ratio (10 / 8) = 90000000
  CapabilitiesByQuality  D  profiles = ImmutableEncoderProfilesProxy{defaultDurationSeconds=60, recommendedFileFormat=2, audioProfiles=[AudioProfileProxy{codec=3, 
                            mediaType=audio/mp4a-latm, bitrate=96000, sampleRate=48000, channels=1, profile=1}], videoProfiles=[VideoProfileProxy{codec=5, mediaTyp
                            e=video/hevc, bitrate=90000000, frameRate=60, width=3840, height=2160, profile=2, bitDepth=10, chromaSubsampling=0, hdrFormat=1}]}
EncoderProfilesProvider  D  Base Bitrate(33000000bps) * Bit Depth Ratio (10 / 8) = 41250000
  CapabilitiesByQuality  D  profiles = ImmutableEncoderProfilesProxy{defaultDurationSeconds=60, recommendedFileFormat=2, audioProfiles=[AudioProfileProxy{codec=3, 
                            mediaType=audio/mp4a-latm, bitrate=96000, sampleRate=48000, channels=1, profile=1}], videoProfiles=[VideoProfileProxy{codec=5, mediaTyp
                            e=video/hevc, bitrate=41250000, frameRate=60, width=1920, height=1080, profile=2, bitDepth=10, chromaSubsampling=0, hdrFormat=1}]}
EncoderProfilesProvider  D  Base Bitrate(12000000bps) * Bit Depth Ratio (10 / 8) = 15000000
  CapabilitiesByQuality  D  profiles = ImmutableEncoderProfilesProxy{defaultDurationSeconds=60, recommendedFileFormat=2, audioProfiles=[AudioProfileProxy{codec=3, 
                            mediaType=audio/mp4a-latm, bitrate=96000, sampleRate=48000, channels=1, profile=1}], videoProfiles=[VideoProfileProxy{codec=5, mediaTyp
                            e=video/hevc, bitrate=15000000, frameRate=30, width=1280, height=720, profile=2, bitDepth=10, chromaSubsampling=0, hdrFormat=1}]}
EncoderProfilesProvider  D  Base Bitrate(6000000bps) * Bit Depth Ratio (10 / 8) = 7500000
  CapabilitiesByQuality  D  profiles = ImmutableEncoderProfilesProxy{defaultDurationSeconds=60, recommendedFileFormat=2, audioProfiles=[AudioProfileProxy{codec=3, 
                            mediaType=audio/mp4a-latm, bitrate=96000, sampleRate=48000, channels=1, profile=1}], videoProfiles=[VideoProfileProxy{codec=5, mediaTyp
                            e=video/hevc, bitrate=7500000, frameRate=30, width=720, height=480, profile=2, bitDepth=10, chromaSubsampling=0, hdrFormat=1}]}
                         D  profiles = ImmutableEncoderProfilesProxy{defaultDurationSeconds=60, recommendedFileFormat=2, audioProfiles=[AudioProfileProxy{codec=3, 
                            mediaType=audio/mp4a-latm, bitrate=96000, sampleRate=48000, channels=1, profile=1}], videoProfiles=[VideoProfileProxy{codec=2, mediaTyp
                            e=video/avc, bitrate=72000000, frameRate=60, width=3840, height=2160, profile=-1, bitDepth=8, chromaSubsampling=0, hdrFormat=0}]}
                         D  profiles = ImmutableEncoderProfilesProxy{defaultDurationSeconds=60, recommendedFileFormat=2, audioProfiles=[AudioProfileProxy{codec=3, 
                            mediaType=audio/mp4a-latm, bitrate=96000, sampleRate=48000, channels=1, profile=1}], videoProfiles=[VideoProfileProxy{codec=2, mediaTyp
                            e=video/avc, bitrate=33000000, frameRate=60, width=1920, height=1080, profile=-1, bitDepth=8, chromaSubsampling=0, hdrFormat=0}]}
                         D  profiles = ImmutableEncoderProfilesProxy{defaultDurationSeconds=60, recommendedFileFormat=2, audioProfiles=[AudioProfileProxy{codec=3, 
                            mediaType=audio/mp4a-latm, bitrate=96000, sampleRate=48000, channels=1, profile=1}], videoProfiles=[VideoProfileProxy{codec=2, mediaTyp
                            e=video/avc, bitrate=12000000, frameRate=30, width=1280, height=720, profile=-1, bitDepth=8, chromaSubsampling=0, hdrFormat=0}]}
                         D  profiles = ImmutableEncoderProfilesProxy{defaultDurationSeconds=60, recommendedFileFormat=2, audioProfiles=[AudioProfileProxy{codec=3, 
                            mediaType=audio/mp4a-latm, bitrate=96000, sampleRate=48000, channels=1, profile=1}], videoProfiles=[VideoProfileProxy{codec=2, mediaTyp
                            e=video/avc, bitrate=6000000, frameRate=30, width=720, height=480, profile=-1, bitDepth=8, chromaSubsampling=0, hdrFormat=0}]}
  CameraOrientationUtil  D  getRelativeImageRotation: destRotationDegrees=0, sourceRotationDegrees=90, isOppositeFacing=true, result=90
    ExtenderVersionImpl  D  Advanced Extensions Implemented
                         D  Advanced Extensions Implemented
EncoderProfilesProvider  D  Base Bitrate(22000000bps) * Bit Depth Ratio (10 / 8) = 27500000
  CapabilitiesByQuality  D  profiles = ImmutableEncoderProfilesProxy{defaultDurationSeconds=60, recommendedFileFormat=2, audioProfiles=[AudioProfileProxy{codec=3, 
                            mediaType=audio/mp4a-latm, bitrate=96000, sampleRate=48000, channels=1, profile=1}], videoProfiles=[VideoProfileProxy{codec=5, mediaTyp
                            e=video/hevc, bitrate=27500000, frameRate=30, width=1920, height=1080, profile=2, bitDepth=10, chromaSubsampling=0, hdrFormat=1}]}
EncoderProfilesProvider  D  Base Bitrate(12000000bps) * Bit Depth Ratio (10 / 8) = 15000000
  CapabilitiesByQuality  D  profiles = ImmutableEncoderProfilesProxy{defaultDurationSeconds=60, recommendedFileFormat=2, audioProfiles=[AudioProfileProxy{codec=3, 
                            mediaType=audio/mp4a-latm, bitrate=96000, sampleRate=48000, channels=1, profile=1}], videoProfiles=[VideoProfileProxy{codec=5, mediaTyp
                            e=video/hevc, bitrate=15000000, frameRate=30, width=1280, height=720, profile=2, bitDepth=10, chromaSubsampling=0, hdrFormat=1}]}
EncoderProfilesProvider  D  Base Bitrate(6000000bps) * Bit Depth Ratio (10 / 8) = 7500000
  CapabilitiesByQuality  D  profiles = ImmutableEncoderProfilesProxy{defaultDurationSeconds=60, recommendedFileFormat=2, audioProfiles=[AudioProfileProxy{codec=3, 
                            mediaType=audio/mp4a-latm, bitrate=96000, sampleRate=48000, channels=1, profile=1}], videoProfiles=[VideoProfileProxy{codec=5, mediaTyp
                            e=video/hevc, bitrate=7500000, frameRate=30, width=720, height=480, profile=2, bitDepth=10, chromaSubsampling=0, hdrFormat=1}]}
                         D  profiles = ImmutableEncoderProfilesProxy{defaultDurationSeconds=60, recommendedFileFormat=2, audioProfiles=[AudioProfileProxy{codec=3, 
                            mediaType=audio/mp4a-latm, bitrate=96000, sampleRate=48000, channels=1, profile=1}], videoProfiles=[VideoProfileProxy{codec=2, mediaTyp
                            e=video/avc, bitrate=22000000, frameRate=30, width=1920, height=1080, profile=-1, bitDepth=8, chromaSubsampling=0, hdrFormat=0}]}
                         D  profiles = ImmutableEncoderProfilesProxy{defaultDurationSeconds=60, recommendedFileFormat=2, audioProfiles=[AudioProfileProxy{codec=3, 
                            mediaType=audio/mp4a-latm, bitrate=96000, sampleRate=48000, channels=1, profile=1}], videoProfiles=[VideoProfileProxy{codec=2, mediaTyp
                            e=video/avc, bitrate=12000000, frameRate=30, width=1280, height=720, profile=-1, bitDepth=8, chromaSubsampling=0, hdrFormat=0}]}
                         D  profiles = ImmutableEncoderProfilesProxy{defaultDurationSeconds=60, recommendedFileFormat=2, audioProfiles=[AudioProfileProxy{codec=3, 
                            mediaType=audio/mp4a-latm, bitrate=96000, sampleRate=48000, channels=1, profile=1}], videoProfiles=[VideoProfileProxy{codec=2, mediaTyp
                            e=video/avc, bitrate=6000000, frameRate=30, width=720, height=480, profile=-1, bitDepth=8, chromaSubsampling=0, hdrFormat=0}]}
  CameraOrientationUtil  D  getRelativeImageRotation: destRotationDegrees=0, sourceRotationDegrees=270, isOppositeFacing=false, result=270
    ExtenderVersionImpl  D  Advanced Extensions Implemented
                         D  Advanced Extensions Implemented
          ReactNativeJS  I  Running "main" with {"rootTag":11}
           TrafficStats  D  tagSocket(157) with statsTag=0xffffffff, statsUid=-1
          ReactNativeJS  I  {
                         I    "formats": [],
                         I    "sensorOrientation": "landscape-right",
                         I    "hardwareLevel": "full",
                         I    "maxZoom": 10,
                         I    "minZoom": 0.8958333134651184,
                         I    "maxExposure": 24,
                         I    "supportsLowLightBoost": true,
                         I    "neutralZoom": 1,
                         I    "physicalDevices": [
                         I      "wide-angle-camera",
                         I      "wide-angle-camera",
                         I      "wide-angle-camera"
                         I    ],
                         I    "supportsFocus": true,
                         I    "supportsRawCapture": false,
                         I    "isMultiCam": true,
                         I    "minFocusDistance": 0,
                         I    "minExposure": -24,
                         I    "name": "1 (FRONT) androidx.camera.camera2",
                         I    "hasFlash": false,
                         I    "hasTorch": false,
                         I    "position": "front",
                         I    "id": "1"
                         I  }
                Sensors  W  Cannot get virtualdevice_native service
          CameraSession  I  Camera Lifecycle changed to CREATED!
             CameraView  I  Updating CameraSession...
                         I  Updating CameraSession...
                         I  Updating CameraSession...
          CameraSession  I  configure { ... }: Waiting for lock...
             CameraView  I  A new configure { ... } call arrived, aborting this one...
          CameraSession  I  configure { ... }: Waiting for lock...
             CameraView  I  A new configure { ... } call arrived, aborting this one...
          CameraSession  I  configure { ... }: Waiting for lock...
                         I  configure { ... }: Updating CameraSession Configuration... Difference(deviceChanged=true, outputsChanged=true, sidePropsChanged=true, i
                            sActiveChanged=true, orientationChanged=true, locationChanged=true)
                         I  Creating new Outputs for Camera #1...
                         I  Using FPS Range: null
                         I  Creating Preview output...
                         I  Creating Photo output...
                         I  Successfully created new Outputs for Camera #1!
                         I  Binding Camera #1...
               SoLoader  V  libreact_featureflagsjni.so not found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejH
                            Spt_Mg==/lib/arm64
          CameraSession  I  Binding 2 use-cases...
          ReactNativeJS  I  {
                         I    "formats": [],
                         I    "sensorOrientation": "landscape-right",
                         I    "hardwareLevel": "full",
                         I    "maxZoom": 10,
                         I    "minZoom": 0.8958333134651184,
                         I    "maxExposure": 24,
                         I    "supportsLowLightBoost": true,
                         I    "neutralZoom": 1,
                         I    "physicalDevices": [
                         I      "wide-angle-camera",
                         I      "wide-angle-camera",
                         I      "wide-angle-camera"
                         I    ],
                         I    "supportsFocus": true,
                         I    "supportsRawCapture": false,
                         I    "isMultiCam": true,
                         I    "minFocusDistance": 0,
                         I    "minExposure": -24,
                         I    "name": "1 (FRONT) androidx.camera.camera2",
                         I    "hasFlash": false,
                         I    "hasTorch": false,
                         I    "position": "front",
                         I    "id": "1"
                         I  }
               SoLoader  D  libreact_featureflagsjni.so found on /data/app/~~e6dHZR9gmnNXAylbaLyCTQ==/com.titozzz.debugorientationvisioncamera--lQzEGwsfnx0VejHSpt_
                            Mg==/base.apk!/lib/arm64-v8a
  CameraOrientationUtil  D  getRelativeImageRotation: destRotationDegrees=0, sourceRotationDegrees=270, isOppositeFacing=false, result=270
                         D  getRelativeImageRotation: destRotationDegrees=0, sourceRotationDegrees=270, isOppositeFacing=false, result=270
atibilityChangeReporter  D  Compat change id reported: 289878283; UID 10443; state: ENABLED
   DynamicRangeResolver  D  Resolved dynamic range for use case androidx.camera.core.Preview-7c13478d-1097-4ae2-80d7-218e290f5f6e to no compatible HDR dynamic rang
                            es.
                         D  DynamicRange@caa8cf3{encoding=UNSPECIFIED, bitDepth=0}
                         D  ->
                         D  DynamicRange@bf5362{encoding=SDR, bitDepth=8}
  CameraOrientationUtil  D  getRelativeImageRotation: destRotationDegrees=0, sourceRotationDegrees=270, isOppositeFacing=false, result=270
      DeferrableSurface  D  Surface created[total_surfaces=1, used_surfaces=0](androidx.camera.core.processing.SurfaceEdge$SettableSurface@157054f}
                         D  Surface created[total_surfaces=2, used_surfaces=0](androidx.camera.core.SurfaceRequest$2@aa8a76b}
                         D  New surface in use[total_surfaces=2, used_surfaces=1](androidx.camera.core.SurfaceRequest$2@aa8a76b}
                         D  use count+1, useCount=1 androidx.camera.core.SurfaceRequest$2@aa8a76b
  CameraOrientationUtil  D  getRelativeImageRotation: destRotationDegrees=0, sourceRotationDegrees=270, isOppositeFacing=false, result=270
           ImageCapture  D  createPipeline(cameraId: 1, streamSpec: StreamSpec{resolution=3264x2448, dynamicRange=DynamicRange@bf5362{encoding=SDR, bitDepth=8}, ex
                            pectedFrameRateRange=[0, 0], implementationOptions=androidx.camera.camera2.impl.Camera2ImplConfig@a3b9374})
atibilityChangeReporter  D  Compat change id reported: 236825255; UID 10443; state: ENABLED
      DeferrableSurface  D  Surface created[total_surfaces=3, used_surfaces=1](androidx.camera.core.impl.ImmediateSurface@203509d}
             CameraView  I  invokeOnInitialized()
      Camera2CameraImpl  D  {Camera@2ee9e12[id=1]} Use case androidx.camera.core.ImageCapture-46077afa-2e30-40c6-bdfc-5136fa0372c5143671400 ACTIVE
     UseCaseAttachState  D  Active and attached use case: [] for camera: 1
          CameraSession  I  Successfully bound Camera #1!
                         I  Camera Lifecycle changed to STARTED!
             CameraView  I  PreviewView Stream State changed to IDLE
      Camera2CameraImpl  D  {Camera@2ee9e12[id=1]} Use case androidx.camera.core.Preview-7c13478d-1097-4ae2-80d7-218e290f5f6e61376395 ACTIVE
     UseCaseAttachState  D  Active and attached use case: [] for camera: 1
          CameraSession  I  Camera State: CLOSED (has error: false)
                         I  Camera Lifecycle changed to RESUMED!
     OrientationManager  I  Target Orientation changed DEVICE -> PREVIEW!
                         I  Starting streaming device and screen orientation updates...
      Camera2CameraImpl  D  {Camera@2ee9e12[id=1]} Use case androidx.camera.core.ImageCapture-46077afa-2e30-40c6-bdfc-5136fa0372c5143671400 ACTIVE
     UseCaseAttachState  D  Active and attached use case: [] for camera: 1
                         D  Active and attached use case: [] for camera: 1
       MetadataProvider  I  Stopping location updates...
          CameraSession  I  configure { ... }: Completed CameraSession Configuration! (State: RESUMED)
      Camera2CameraImpl  D  {Camera@2ee9e12[id=1]} Use cases [androidx.camera.core.Preview-7c13478d-1097-4ae2-80d7-218e290f5f6e61376395, androidx.camera.core.Image
                            Capture-46077afa-2e30-40c6-bdfc-5136fa0372c5143671400] now ATTACHED
     UseCaseAttachState  D  All use case: [androidx.camera.core.ImageCapture-46077afa-2e30-40c6-bdfc-5136fa0372c5143671400, androidx.camera.core.Preview-7c13478d-1
                            097-4ae2-80d7-218e290f5f6e61376395] for camera: 1
      Camera2CameraImpl  D  No need to remove a previous mMeteringRepeating, SessionConfig Surfaces: 2, CaptureConfig Surfaces: 1
     UseCaseAttachState  D  Active and attached use case: [androidx.camera.core.ImageCapture-46077afa-2e30-40c6-bdfc-5136fa0372c5143671400, androidx.camera.core.Pr
                            eview-7c13478d-1097-4ae2-80d7-218e290f5f6e61376395] for camera: 1
      Camera2CameraImpl  D  {Camera@2ee9e12[id=1]} Resetting Capture Session
                         D  {Camera@2ee9e12[id=1]} Skipping Capture Session state check due to current camera state: INITIALIZED and previous session status: false
                         D  {Camera@2ee9e12[id=1]} Releasing session in state INITIALIZED
                         D  {Camera@2ee9e12[id=1]} Attempting to force open the camera.
    CameraStateRegistry  D  tryOpenCamera(Camera@2ee9e12[id=1]) [Available Cameras: 1, Already Open: false (Previous state: null)] --> SUCCESS
                         D  Recalculating open cameras:
                         D  Camera                                       State
                         D  -------------------------------------------------------------------
                         D  Camera@dbfe86b[id=0]                         UNKNOWN
                         D  Camera@2ee9e12[id=1]                         OPENING
                         D  -------------------------------------------------------------------
                         D  Open count: 1 (Max allowed: 1)
      Camera2CameraImpl  D  {Camera@2ee9e12[id=1]} Opening camera.
                         D  {Camera@2ee9e12[id=1]} Transitioning camera internal state: INITIALIZED --> OPENING
     CameraStateMachine  D  New public camera state CameraState{type=OPENING, error=null} from OPENING and null
                         D  Publishing new public camera state CameraState{type=OPENING, error=null}
             CameraView  I  CameraView attached to window!
     UseCaseAttachState  D  All use case: [androidx.camera.core.ImageCapture-46077afa-2e30-40c6-bdfc-5136fa0372c5143671400, androidx.camera.core.Preview-7c13478d-1
                            097-4ae2-80d7-218e290f5f6e61376395] for camera: 1
            PreviewView  D  Surface requested by Preview.
          CameraSession  I  Camera State: OPENING (has error: false)
        SurfaceViewImpl  D  Surface created.
                         D  Surface changed. Size: 1600x1200
            PreviewView  D  Preview transformation info updated. TransformationInfo{getCropRect=Rect(0, 0 - 1600, 1200), getRotationDegrees=270, getTargetRotation=
                            0, hasCameraTransform=true, getSensorToBufferTransform=Matrix{[1.0, 0.0, 0.0][0.0, 1.0, 0.0][0.0, 0.0, 1.0]}, isMirroring=true}
       PreviewTransform  D  Transformation info set: TransformationInfo{getCropRect=Rect(0, 0 - 1600, 1200), getRotationDegrees=270, getTargetRotation=0, hasCamera
                            Transform=true, getSensorToBufferTransform=Matrix{[1.0, 0.0, 0.0][0.0, 1.0, 0.0][0.0, 0.0, 1.0]}, isMirroring=true} 1600x1200 true
  CameraOrientationUtil  D  getRelativeImageRotation: destRotationDegrees=0, sourceRotationDegrees=270, isOppositeFacing=false, result=270
        SurfaceViewImpl  D  Surface set on Preview.
          ReactNativeJS  I  {
                         I    "formats": [],
                         I    "sensorOrientation": "landscape-right",
                         I    "hardwareLevel": "full",
                         I    "maxZoom": 10,
                         I    "minZoom": 0.8958333134651184,
                         I    "maxExposure": 24,
                         I    "supportsLowLightBoost": true,
                         I    "neutralZoom": 1,
                         I    "physicalDevices": [
                         I      "wide-angle-camera",
                         I      "wide-angle-camera",
                         I      "wide-angle-camera"
                         I    ],
                         I    "supportsFocus": true,
                         I    "supportsRawCapture": false,
                         I    "isMultiCam": true,
                         I    "minFocusDistance": 0,
                         I    "minExposure": -24,
                         I    "name": "1 (FRONT) androidx.camera.camera2",
                         I    "hasFlash": false,
                         I    "hasTorch": false,
                         I    "position": "front",
                         I    "id": "1"
                         I  }
          CameraDevices  I  Camera #1 is now unavailable.
      Camera2CameraImpl  D  {Camera@2ee9e12[id=1]} Use case androidx.camera.core.Preview-7c13478d-1097-4ae2-80d7-218e290f5f6e61376395 ACTIVE
     UseCaseAttachState  D  Active and attached use case: [androidx.camera.core.ImageCapture-46077afa-2e30-40c6-bdfc-5136fa0372c5143671400, androidx.camera.core.Pr
                            eview-7c13478d-1097-4ae2-80d7-218e290f5f6e61376395] for camera: 1
      Camera2CameraImpl  D  {Camera@2ee9e12[id=1]} Use case androidx.camera.core.ImageCapture-46077afa-2e30-40c6-bdfc-5136fa0372c5143671400 ACTIVE
     UseCaseAttachState  D  Active and attached use case: [androidx.camera.core.ImageCapture-46077afa-2e30-40c6-bdfc-5136fa0372c5143671400, androidx.camera.core.Pr
                            eview-7c13478d-1097-4ae2-80d7-218e290f5f6e61376395] for camera: 1
      Camera2CameraImpl  D  {Camera@2ee9e12[id=1]} CameraDevice.onOpened()
                         D  {Camera@2ee9e12[id=1]} Transitioning camera internal state: OPENING --> OPENED
    CameraStateRegistry  D  Recalculating open cameras:
                         D  Camera                                       State
                         D  -------------------------------------------------------------------
                         D  Camera@dbfe86b[id=0]                         UNKNOWN
                         D  Camera@2ee9e12[id=1]                         OPEN
                         D  -------------------------------------------------------------------
                         D  Open count: 1 (Max allowed: 1)
     CameraStateMachine  D  New public camera state CameraState{type=OPEN, error=null} from OPEN and null
                         D  Publishing new public camera state CameraState{type=OPEN, error=null}
          CameraSession  I  Camera State: OPEN (has error: false)
             CameraView  I  invokeOnStarted()
     UseCaseAttachState  D  All use case: [androidx.camera.core.ImageCapture-46077afa-2e30-40c6-bdfc-5136fa0372c5143671400, androidx.camera.core.Preview-7c13478d-1
                            097-4ae2-80d7-218e290f5f6e61376395] for camera: 1
                         D  Active and attached use case: [androidx.camera.core.ImageCapture-46077afa-2e30-40c6-bdfc-5136fa0372c5143671400, androidx.camera.core.Pr
                            eview-7c13478d-1097-4ae2-80d7-218e290f5f6e61376395] for camera: 1
 SyncCaptureSessionBase  D  [androidx.camera.camera2.internal.SynchronizedCaptureSessionImpl@f283222] getSurface done with results: [Surface(name=null)/@0x54444c3,
                             Surface(name=null)/@0x3eaa3ed]
         CaptureSession  D  Opening capture session.
 SyncCaptureSessionImpl  D  [androidx.camera.camera2.internal.SynchronizedCaptureSessionImpl@f283222] start openCaptureSession
      DeferrableSurface  D  use count+1, useCount=2 androidx.camera.core.SurfaceRequest$2@aa8a76b
                         D  New surface in use[total_surfaces=3, used_surfaces=2](androidx.camera.core.impl.ImmediateSurface@203509d}
                         D  use count+1, useCount=1 androidx.camera.core.impl.ImmediateSurface@203509d
 SyncCaptureSessionImpl  D  [androidx.camera.camera2.internal.SynchronizedCaptureSessionImpl@f283222] Session onConfigured()
         CaptureSession  D  Attempting to send capture request onConfigured
                         D  Issuing request for session.
a2CaptureRequestBuilder  D  createCaptureRequest
         CaptureSession  D  CameraCaptureSession.onConfigured() mState=OPENED
                         D  CameraCaptureSession.onReady() OPENED
          CameraSession  I  Preview orientation changed! PORTRAIT
             CameraView  I  invokeOnPreviewOrientationChanged(PORTRAIT)
          CameraSession  I  Output orientation changed! PORTRAIT
             CameraView  I  invokeOnOutputOrientationChanged(PORTRAIT)
  CameraOrientationUtil  D  getRelativeImageRotation: destRotationDegrees=0, sourceRotationDegrees=270, isOppositeFacing=false, result=270
atibilityChangeReporter  D  Compat change id reported: 78294732; UID 10443; state: ENABLED
           TrafficStats  D  tagSocket(102) with statsTag=0xffffffff, statsUid=-1
    StreamStateObserver  D  Update Preview stream state to STREAMING
             CameraView  I  PreviewView Stream State changed to STREAMING
                         I  invokeOnPreviewStarted()
                         I  invokeOnAverageFpsChanged(0.0)
                         I  invokeOnAverageFpsChanged(0.0)
                         I  invokeOnAverageFpsChanged(0.0)
                         I  invokeOnAverageFpsChanged(0.0)
                         I  invokeOnAverageFpsChanged(0.0)
                         I  invokeOnAverageFpsChanged(0.0)
                         I  invokeOnAverageFpsChanged(0.0)```

### Camera Device

```json
{
  "formats": [],
  "sensorOrientation": "landscape-right",
  "hardwareLevel": "full",
  "maxZoom": 10,
  "minZoom": 0.8958333134651184,
  "maxExposure": 24,
  "supportsLowLightBoost": true,
  "neutralZoom": 1,
  "physicalDevices": [
    "wide-angle-camera",
    "wide-angle-camera",
    "wide-angle-camera"
  ],
  "supportsFocus": true,
  "supportsRawCapture": false,
  "isMultiCam": true,
  "minFocusDistance": 0,
  "minExposure": -24,
  "name": "1 (FRONT) androidx.camera.camera2",
  "hasFlash": false,
  "hasTorch": false,
  "position": "front",
  "id": "1"
}
 LOG  {
  "formats": [],
  "sensorOrientation": "landscape-right",
  "hardwareLevel": "full",
  "maxZoom": 10,
  "minZoom": 0.8958333134651184,
  "maxExposure": 24,
  "supportsLowLightBoost": true,
  "neutralZoom": 1,
  "physicalDevices": [
    "wide-angle-camera",
    "wide-angle-camera",
    "wide-angle-camera"
  ],
  "supportsFocus": true,
  "supportsRawCapture": false,
  "isMultiCam": true,
  "minFocusDistance": 0,
  "minExposure": -24,
  "name": "1 (FRONT) androidx.camera.camera2",
  "hasFlash": false,
  "hasTorch": false,
  "position": "front",
  "id": "1"
}

Device

Pixel 7

VisionCamera Version

4.3.2

Can you reproduce this issue in the VisionCamera Example app?

Yes, I can reproduce the same issue in the Example app here

Additional information

maintenance-hans[bot] commented 2 months ago

Guten Tag, Hans here.

[!NOTE] New features, bugfixes, updates and other improvements are all handled mostly by @mrousavy in his free time. To support @mrousavy, please consider 💖 sponsoring him on GitHub 💖. Sponsored issues will be prioritized.

PanamaDonne commented 2 months ago

Yes, I see the same issue on Android + iPhone8 & down. Downgraded and it worked.

USAMA327 commented 1 month ago

Yes, I see the same issue on Android + iPhone8 & down. Downgraded and it worked.

Can you please tell me about the exact version you are using?

frodriguez-hu commented 3 weeks ago

Yes, I see the same issue on Android + iPhone8 & down. Downgraded and it worked.

To what version have you downgraded it?

PanamaDonne commented 3 weeks ago

Yes, I see the same issue on Android + iPhone8 & down. Downgraded and it worked.

To what version have you downgraded it?

4.0.1

PanamaDonne commented 3 weeks ago

Yes, I see the same issue on Android + iPhone8 & down. Downgraded and it worked.

Can you please tell me about the exact version you are using?

4.0.1

mannoeu commented 1 week ago

same here