Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
4 of 5 tasks
Titozzz opened this issue Jun 14, 2024 · 2 comments
Open
4 of 5 tasks
Labels
🐛 bug Something isn't working

Comments

@Titozzz
Copy link
Contributor

Titozzz commented Jun 14, 2024

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

@Titozzz Titozzz added the 🐛 bug Something isn't working label Jun 14, 2024
Copy link

maintenance-hans bot commented Jun 14, 2024

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.

@maintenance-hans maintenance-hans bot closed this as not planned Won't fix, can't repro, duplicate, stale Jun 14, 2024
@maintenance-hans maintenance-hans bot reopened this Jun 17, 2024
@PanamaDonne
Copy link

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
🐛 bug Something isn't working
2 participants