🐛 photo.orientation is wrong when outputOrientation = preview on Android
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
- [X] I am using Expo
- [ ] I have enabled Frame Processors (react-native-worklets-core)
- [X] I have read the Troubleshooting Guide
- [X] I agree to follow this project's Code of Conduct
- [X] I searched for similar issues in this repository and found none.
Guten Tag, Hans here.
[!NOTE] New features, bugfixes, updates and other improvements are all handled mostly by
@mrousavyin his free time. To support@mrousavy, please consider 💖 sponsoring him on GitHub 💖. Sponsored issues will be prioritized.
Yes, I see the same issue on Android + iPhone8 & down. Downgraded and it worked.
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?
Yes, I see the same issue on Android + iPhone8 & down. Downgraded and it worked.
To what version have you downgraded it?
Yes, I see the same issue on Android + iPhone8 & down. Downgraded and it worked.
To what version have you downgraded it?
4.0.1
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
same here
same