mrousavy / react-native-vision-camera

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

[V4][Android] - The returned captured image dimensions is different from the output of `Image.getSize` 🐛 #2803

Open ldalzottomp opened 3 weeks ago

ldalzottomp commented 3 weeks ago

What's happening?

Hello!

In my recent try to update to the latest v4.0.1. I am encountering a weird issue when the orientation prop is set to landscape-left. The image dimension produced by camera.takePhoto() doesn't match the output of the react-native api Image.getSize. I suspect that wrong metadata are set in this case? All ohter values for the orientation props are okay.

You can check the following video that showcase the issue. Writtent in red :

Note: I reproduce in the example app if I change the orientation prop and console log the Image.getSize output.

https://github.com/mrousavy/react-native-vision-camera/assets/91324462/14a70f7e-b6d8-417e-888a-2e61db26378e

Reproduceable Code

import { useEffect, useRef, useState } from 'react';
import { Button, Image, ScrollView, StyleSheet, Text, View } from 'react-native';
import { Camera, Orientation, useCameraDevice } from 'react-native-vision-camera';

type PhotoModel = {
    uri: string;
    visionCameraWidth: number;
    visionCameraHeight: number;
    imageWidth: number;
    imageheight: number;
};

export default App = () => {
    const [init, setInit] = useState(false);
    useEffect(() => {
        (async () => {
            const newCameraPermission = await Camera.requestCameraPermission();
            setInit(true);
        })();
    }, []);

    const device = useCameraDevice('back');
    const cameraRef = useRef<Camera>(null);

    const [orientation, setOrientation] = useState<Orientation>('portrait');
    const [images, setImages] = useState<PhotoModel[]>([]);

    if (!init) {
        return <></>;
    }
    if (device == null) return <></>;
    return (
        <View style={StyleSheet.absoluteFill}>
            <Camera
                ref={cameraRef}
                style={StyleSheet.absoluteFill}
                device={device}
                isActive={true}
                photo={true}
                orientation={orientation}
            />
            <Button
                title="Take photo"
                onPress={async () => {
                    const photoResult = await cameraRef.current?.takePhoto({});
                    if (photoResult) {
                        Image.getSize('file:///' + photoResult?.path, (w, h) => {
                            setImages((prev) => {
                                return [
                                    ...prev,
                                    {
                                        uri: 'file:///' + photoResult.path,
                                        visionCameraWidth: photoResult.width,
                                        visionCameraHeight: photoResult.height,
                                        imageWidth: w,
                                        imageheight: h,
                                    },
                                ];
                            });
                        });
                    }
                }}
            />
            <Button
                title="Focus"
                onPress={async () => {
                    const photoResult = await cameraRef.current?.focus({ x: 0, y: 0 });
                }}
            />
            <View style={{ backgroundColor: 'red', height: 30 }}>
                <View style={{ flex: 1, flexDirection: 'row' }}>
                    <Button
                        title="LandLeft"
                        onPress={() => {
                            setOrientation('landscape-left');
                        }}
                    />
                    <Button
                        title="LandRight"
                        onPress={() => {
                            setOrientation('landscape-right');
                        }}
                    />
                    <Button
                        title="Port"
                        onPress={() => {
                            setOrientation('portrait');
                        }}
                    />
                    <Button
                        title="PortDown"
                        onPress={() => {
                            setOrientation('portrait-upside-down');
                        }}
                    />
                </View>
            </View>
            <ScrollView
                style={{
                    position: 'absolute',
                    bottom: 0,
                    left: 0,
                    right: 0,
                    height: 200,
                    backgroundColor: 'black',
                }}
                horizontal={true}
            >
                {images.map((image, index) => {
                    return (
                        <View key={index} style={{ flex: 1 }}>
                            <Image
                                style={{ flex: 1 }}
                                source={{
                                    uri: image.uri,
                                }}
                                height={200}
                                width={200}
                            />

                            <Text
                                style={{
                                    position: 'absolute',
                                    bottom: 0,
                                    left: 0,
                                    right: 0,
                                    height: 20,
                                    color: 'red',
                                }}
                            >
                                VC: {image.visionCameraWidth}x{image.visionCameraHeight}. RN:{' '}
                                {image.imageWidth}x{image.imageheight}
                            </Text>
                        </View>
                    );
                })}
            </ScrollView>
        </View>
    );
};

Relevant log output

2024-04-25 17:37:07.096 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:07.112 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:07.129 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:07.146 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:07.163 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:07.179 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:07.196 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:07.213 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:07.229 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:07.246 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:07.263 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:07.280 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:07.296 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:07.313 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:07.329 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:07.346 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:07.363 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:07.554 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:08.554 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:09.555 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:10.555 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:11.554 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:12.554 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:13.555 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:14.556 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:15.556 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:16.556 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:17.556 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:18.557 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:19.556 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:20.557 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:21.557 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:22.557 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:23.558 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:24.559 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:25.559 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:26.558 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:27.559 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:28.559 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:29.560 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:30.561 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:31.562 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:32.561 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:33.561 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:34.563 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:34.692 18515-18515 ViewRootIm...nActivity] com.rnvc                             I  ViewPostIme pointer 0
2024-04-25 17:37:34.725 18515-18515 ViewRootIm...nActivity] com.rnvc                             I  ViewPostIme pointer 1
2024-04-25 17:37:34.774 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:34.788 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:34.802 18515-18515 CameraView              com.rnvc                             I  Updating CameraSession...
2024-04-25 17:37:34.803 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:34.804 18515-18515 CameraSession           com.rnvc                             I  configure { ... }: Waiting for lock...
2024-04-25 17:37:34.804 18515-18515 CameraSession           com.rnvc                             I  Nothing changed, aborting configure { ... }
2024-04-25 17:37:34.821 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:34.838 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:34.855 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:34.872 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:34.888 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:34.905 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:34.922 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:34.939 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:34.955 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:34.972 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:34.989 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:35.005 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:35.022 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:35.039 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:35.055 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:35.072 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:35.089 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:35.106 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:35.122 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:35.139 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:35.156 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:35.171 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:35.563 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:36.562 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:37.562 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:38.093 18515-18515 ViewRootIm...nActivity] com.rnvc                             I  ViewPostIme pointer 0
2024-04-25 17:37:38.120 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:38.130 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:38.139 18515-18515 ViewRootIm...nActivity] com.rnvc                             I  ViewPostIme pointer 1
2024-04-25 17:37:38.148 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:38.158 18515-18515 CameraView              com.rnvc                             D  Finding view 7...
2024-04-25 17:37:38.159 18515-18515 CameraView              com.rnvc                             D  Found view 7!
2024-04-25 17:37:38.160 18515-25573 CameraView.takePhoto    com.rnvc                             I  Taking photo... Options: {}
2024-04-25 17:37:38.162 18515-25571 UseCaseAttachState      com.rnvc                             D  Active and attached use case: [androidx.camera.core.ImageCapture-92c8645b-d6f5-4cf1-9ffc-983c56701873136296374, androidx.camera.core.Preview-b93df1a8-de19-4add-841e-ab5ab742755786324049] for camera: 0
2024-04-25 17:37:38.163 18515-25573 CameraSession           com.rnvc                             I  Ringer mode is silent (1), disabling shutter sound...
2024-04-25 17:37:38.163 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:38.164 18515-25571 CaptureSession          com.rnvc                             D  Attempting to submit CaptureRequest after setting
2024-04-25 17:37:38.164 18515-25571 CaptureSession          com.rnvc                             D  Issuing request for session.
2024-04-25 17:37:38.164 18515-25571 Camera2Cap...estBuilder com.rnvc                             D  createCaptureRequest
2024-04-25 17:37:38.168 18515-18515 ImageCapture            com.rnvc                             D  takePictureInternal
2024-04-25 17:37:38.169 18515-18515 CameraOrientationUtil   com.rnvc                             D  getRelativeImageRotation: destRotationDegrees=90, sourceRotationDegrees=90, isOppositeFacing=true, result=0
2024-04-25 17:37:38.170 18515-18515 TakePictureManager      com.rnvc                             D  Issue the next TakePictureRequest.
2024-04-25 17:37:38.181 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:38.197 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:38.214 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:38.233 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:38.248 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:38.264 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:38.281 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:38.298 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:38.315 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:38.331 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:38.348 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:38.365 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:38.381 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:38.398 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:38.415 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:38.431 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:38.448 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:38.457 18515-25572 Camera2CameraImpl       com.rnvc                             D  {Camera@ab341b3[id=0]} Issue capture request
2024-04-25 17:37:38.457 18515-25572 CaptureSession          com.rnvc                             D  Issuing capture request.
2024-04-25 17:37:38.459 18515-25572 Camera2Cap...estBuilder com.rnvc                             D  createReprocessCaptureRequest
2024-04-25 17:37:38.465 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:38.482 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:38.499 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:38.517 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:38.562 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:38.695 18515-18515 CameraView              com.rnvc                             I  invokeOnShutter(PHOTO)
2024-04-25 17:37:38.721 18515-18515 TakePictureManager      com.rnvc                             D  Issue the next TakePictureRequest.
2024-04-25 17:37:38.721 18515-18515 TakePictureManager      com.rnvc                             D  No new request.
2024-04-25 17:37:38.897 18515-25562 CameraView.takePhoto    com.rnvc                             I  Successfully captured 4032 x 3024 photo!
2024-04-25 17:37:39.349 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:39.517 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:39.534 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:39.550 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:39.562 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:39.566 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:39.582 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:39.599 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:39.615 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:39.633 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:39.649 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:39.666 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:39.682 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:39.700 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:39.717 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:39.733 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:39.750 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:39.766 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:39.784 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:39.800 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:39.816 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:40.562 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:41.563 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:42.563 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:43.564 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:44.563 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:45.563 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:46.398 18515-18515 ViewRootIm...nActivity] com.rnvc                             I  ViewPostIme pointer 0
2024-04-25 17:37:46.425 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:46.436 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:46.453 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:46.469 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:46.481 18515-18515 ViewRootIm...nActivity] com.rnvc                             I  ViewPostIme pointer 1
2024-04-25 17:37:46.486 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:46.503 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:46.518 18515-18515 CameraView              com.rnvc                             I  Updating CameraSession...
2024-04-25 17:37:46.520 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:46.521 18515-18515 CameraSession           com.rnvc                             I  configure { ... }: Waiting for lock...
2024-04-25 17:37:46.521 18515-18515 CameraSession           com.rnvc                             I  Nothing changed, aborting configure { ... }
2024-04-25 17:37:46.536 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:46.553 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:46.563 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:46.569 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:46.586 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:46.603 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:46.620 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:46.637 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:46.654 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:46.670 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:46.687 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:46.704 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:46.720 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:46.737 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:46.754 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:46.770 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:46.787 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:46.804 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:46.819 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:47.564 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:48.370 18515-18515 ViewRootIm...nActivity] com.rnvc                             I  ViewPostIme pointer 0
2024-04-25 17:37:48.394 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:48.408 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:48.425 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:48.437 18515-18515 ViewRootIm...nActivity] com.rnvc                             I  ViewPostIme pointer 1
2024-04-25 17:37:48.441 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:48.448 18515-18515 CameraView              com.rnvc                             D  Finding view 7...
2024-04-25 17:37:48.449 18515-18515 CameraView              com.rnvc                             D  Found view 7!
2024-04-25 17:37:48.449 18515-25562 CameraView.takePhoto    com.rnvc                             I  Taking photo... Options: {}
2024-04-25 17:37:48.451 18515-25570 UseCaseAttachState      com.rnvc                             D  Active and attached use case: [androidx.camera.core.ImageCapture-92c8645b-d6f5-4cf1-9ffc-983c56701873136296374, androidx.camera.core.Preview-b93df1a8-de19-4add-841e-ab5ab742755786324049] for camera: 0
2024-04-25 17:37:48.453 18515-25562 CameraSession           com.rnvc                             I  Ringer mode is silent (1), disabling shutter sound...
2024-04-25 17:37:48.453 18515-25570 CaptureSession          com.rnvc                             D  Attempting to submit CaptureRequest after setting
2024-04-25 17:37:48.453 18515-25570 CaptureSession          com.rnvc                             D  Issuing request for session.
2024-04-25 17:37:48.453 18515-25570 Camera2Cap...estBuilder com.rnvc                             D  createCaptureRequest
2024-04-25 17:37:48.455 18515-18515 ImageCapture            com.rnvc                             D  takePictureInternal
2024-04-25 17:37:48.458 18515-18515 CameraOrientationUtil   com.rnvc                             D  getRelativeImageRotation: destRotationDegrees=270, sourceRotationDegrees=90, isOppositeFacing=true, result=180
2024-04-25 17:37:48.458 18515-18515 TakePictureManager      com.rnvc                             D  Issue the next TakePictureRequest.
2024-04-25 17:37:48.458 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:48.462 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:48.475 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:48.491 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:48.508 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:48.525 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:48.543 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:48.558 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:48.564 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:48.575 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:48.592 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:48.609 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:48.625 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:48.642 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:48.659 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:48.676 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:48.693 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:48.709 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:48.726 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:48.743 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:48.746 18515-25570 Camera2CameraImpl       com.rnvc                             D  {Camera@ab341b3[id=0]} Issue capture request
2024-04-25 17:37:48.746 18515-25570 CaptureSession          com.rnvc                             D  Issuing capture request.
2024-04-25 17:37:48.748 18515-25570 Camera2Cap...estBuilder com.rnvc                             D  createReprocessCaptureRequest
2024-04-25 17:37:48.759 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:48.776 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:48.789 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:48.960 18515-18515 CameraView              com.rnvc                             I  invokeOnShutter(PHOTO)
2024-04-25 17:37:48.980 18515-18515 TakePictureManager      com.rnvc                             D  Issue the next TakePictureRequest.
2024-04-25 17:37:48.980 18515-18515 TakePictureManager      com.rnvc                             D  No new request.
2024-04-25 17:37:49.151 18515-25573 CameraView.takePhoto    com.rnvc                             I  Successfully captured 4032 x 3024 photo!
2024-04-25 17:37:49.564 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:50.320 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:50.527 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:50.544 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:50.562 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:50.565 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:50.577 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:50.596 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:50.612 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:50.628 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:50.645 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:50.662 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:50.678 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:50.695 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:50.712 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:50.728 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:50.744 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:50.761 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:50.779 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:50.796 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:50.811 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:50.829 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:51.565 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:52.157 18515-18515 ViewRootIm...nActivity] com.rnvc                             I  ViewPostIme pointer 0
2024-04-25 17:37:52.254 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.267 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.284 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.302 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.313 18515-18515 ViewRootIm...nActivity] com.rnvc                             I  ViewPostIme pointer 1
2024-04-25 17:37:52.318 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.337 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.349 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.365 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.383 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.400 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.416 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.433 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.450 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.466 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.483 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.499 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.517 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.533 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.550 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.566 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:52.567 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.584 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.600 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.617 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.633 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.652 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.667 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.685 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.700 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.720 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.734 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.752 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.767 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.784 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.801 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.819 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.834 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.852 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.870 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.885 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.901 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.920 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.935 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.953 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.968 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:52.985 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.216 18515-18515 ViewRootIm...nActivity] com.rnvc                             I  ViewPostIme pointer 0
2024-04-25 17:37:53.287 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.303 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.320 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.335 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.353 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.359 18515-18515 ViewRootIm...nActivity] com.rnvc                             I  ViewPostIme pointer 1
2024-04-25 17:37:53.369 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.386 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.402 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.420 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.436 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.453 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.469 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.486 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.503 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.519 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.536 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.555 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.567 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:53.569 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.588 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.603 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.621 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.637 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.651 18515-18515 ViewRootIm...nActivity] com.rnvc                             I  ViewPostIme pointer 0
2024-04-25 17:37:53.656 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.671 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.689 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.705 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.721 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.739 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.755 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.771 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.784 18515-18515 ViewRootIm...nActivity] com.rnvc                             I  ViewPostIme pointer 1
2024-04-25 17:37:53.788 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.804 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.821 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.837 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.853 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.871 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.888 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.904 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.922 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.937 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.956 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.971 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:53.988 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:54.005 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:54.021 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:54.038 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:54.055 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:54.072 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:54.088 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:54.105 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:54.121 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:54.138 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:54.155 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:54.170 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:54.188 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:54.204 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:54.221 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:54.240 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:54.256 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:54.271 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:54.288 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:54.305 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:54.322 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:54.338 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:54.355 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:54.371 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:54.388 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:54.404 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:54.422 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:54.438 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:54.455 18515-25530 OpenGLRenderer          com.rnvc                             D  mPreviousPosition == bounds[l=-212.00 t=72.00 r=1292.00 b=2076.00]
2024-04-25 17:37:54.566 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:55.567 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)
2024-04-25 17:37:56.567 18515-25595 CameraView              com.rnvc                             I  invokeOnAverageFpsChanged(0.0)

Camera Device

{
  "formats": [],
  "sensorOrientation": "landscape-left",
  "hardwareLevel": "full",
  "maxZoom": 8,
  "minZoom": 1,
  "maxExposure": 20,
  "supportsLowLightBoost": false,
  "neutralZoom": 1,
  "physicalDevices": [
    "wide-angle-camera"
  ],
  "supportsFocus": true,
  "supportsRawCapture": false,
  "isMultiCam": false,
  "minFocusDistance": 10,
  "minExposure": -20,
  "name": "0 (BACK) androidx.camera.camera2",
  "hasFlash": true,
  "hasTorch": true,
  "position": "back",
  "id": "0"
}

Device

Galaxy S9 - SM-G960F (Android 10, One UI 2.5)

VisionCamera Version

4.0.1

Can you reproduce this issue in the VisionCamera Example app?

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

Additional information

mrousavy commented 2 weeks ago

I use BitmapFactory.decodeFile to get the width and height of the photo after capturing.

According to BitmapFactory.Options.outHeight;

The resulting height of the bitmap. If inJustDecodeBounds is set to false, this will be height of the output bitmap after any scaling is applied. If true, it will be the height of the input image without any accounting for scaling.

We set inJustDecodeBounds to true, so this should be "the height of the input image without any accounting for scaling." - does Image.getSize maybe perform display scaling already?

ldalzottomp commented 2 weeks ago

@mrousavy I tried to debug both source code and didn't any valid conclusion. I noted indeed that when react load the Image there is a resize done only for the LandscapeLeft picture. (done here in the RN code). But why would it happen only for this orientation ? Other three looks fine. It has to be something else I feel.

The same app login in V3 works fine.

I noted that when react load the exif to get the orientation, I have the following results.


public static final int ORIENTATION_NORMAL = 1;
public static final int ORIENTATION_ROTATE_180 = 3;
public static final int ORIENTATION_ROTATE_270 = 8;
public static final int ORIENTATION_ROTATE_90 = 6;

ORIENTATION_ROTATE_90 -> Portrait
ORIENTATION_ROTATE_NORMAL -> LandscapeLeft
ORIENTATION_ROTATE_180 -> LandscapeRight
ORIENTATION_ROTATE_270 -> PortraitUpsideDown

Which is different from V3 :


ORIENTATION_ROTATE_180 -> LandscapeLeft
ORIENTATION_ROTATE_NORMAL -> LandscapeRight

Exif metadata are read here in react

mrousavy commented 2 weeks ago

hmm, interesting. Orientation is still something that's not fully supported (See #1891) - so I don't really have a lot of insights, other than that I'd be confident that CameraX' EXIF writer is probably a bit more battletested than the one I wrote in V3. So V4 should be correct, anything that's incorrect should probably be reported in the Google Issue Tracker, they test on a lot of devices. I only have 3 phones.