mrousavy / react-native-vision-camera

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

🐛 CaptureRequest contains unconfigured Input/Output Surface #1819

Closed OpachiEg closed 1 year ago

OpachiEg commented 1 year ago

What's happening?

When the screen with the camera opens for the first time, no error occurs. When I try to rotate the camera this error appears. It also appears when I go to another screen and then return to the screen with the camera

Reproduceable Code

const [cameraType, setCameraType] = useState('back');
    const devices = useCameraDevices("wide-angle-camera")[cameraType];
    const [showCamera, setShowCamera] = useState(false);
    const camera = useRef(null);

    useEffect(() => {
        requestPermissions()
    }, []);

    const requestPermissions = async () => {
        const cameraPermission = await Camera.requestCameraPermission();
        const microphonePermission = await Camera.requestMicrophonePermission();
        if (cameraPermission === "granted" && microphonePermission === "granted") {
            setShowCamera(true);
        }
    };

    const changeCameraType = () => {
         if (cameraType === 'back') setCameraType('front');
         else setCameraType('back');
    };

    return (
        <View style={...}>
            {showCamera && devices &&
            <Camera video={true} device={devices} isActive={true} ref={camera} style={StyleSheet.absoluteFill}/>}
        </View>
    );

Relevant log output

java.lang.IllegalArgumentException: CaptureRequest contains unconfigured Input/Output Surface!
  android.hardware.camera2.CaptureRequest.convertSurfaceToStreamId(CaptureRequest.java:739)
  android.hardware.camera2.impl.CameraDeviceImpl.submitCaptureRequest(CameraDeviceImpl.java:1215)
  android.hardware.camera2.impl.CameraDeviceImpl.setRepeatingRequest(CameraDeviceImpl.java:1263)
  android.hardware.camera2.impl.CameraCaptureSessionImpl.setRepeatingRequest(CameraCaptureSessionImpl.java:313)
  com.mrousavy.camera.core.CameraSession.updateRepeatingRequest(CameraSession.kt:548)
  com.mrousavy.camera.core.CameraSession.startRunning(CameraSession.kt:526)
  com.mrousavy.camera.core.CameraSession.access$startRunning(CameraSession.kt:51)
  com.mrousavy.camera.core.CameraSession$configureSession$1.invokeSuspend(CameraSession.kt:157)
  kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
  kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
  android.os.Handler.handleCallback(Handler.java:938)
  android.os.Handler.dispatchMessage(Handler.java:99)
  android.os.Looper.loopOnce(Looper.java:201)
  android.os.Looper.loop(Looper.java:288)
  android.os.HandlerThread.run(HandlerThread.java:67)

Camera Device

{
  "hardwareLevel": "limited",
  "pixelFormats": [
    "JPEG",
    "PRIVATE",
    "YUV_420_888"
  ],
  "maxZoom": 4,
  "minZoom": 1,
  "supportsLowLightBoost": true,
  "sensorOrientation": "landscape-right",
  "supportsDepthCapture": false,
  "neutralZoom": 1,
  "supportsFocus": true,
  "supportsRawCapture": false,
  "isMultiCam": false,
  "hasTorch": true,
  "devices": [
    "wide-angle-camera"
  ],
  "hasFlash": true,
  "name": "BACK (0)",
  "position": "back",
  "id": "0"
}

Device

Realme C31 (Android 12)

VisionCamera Version

3.0.0

Can you reproduce this issue in the VisionCamera Example app?

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

Additional information

bglgwyng commented 1 year ago

It's duplicated. #1773

OpachiEg commented 1 year ago

Did you fix it?

bglgwyng commented 1 year ago

No 😢

mrousavy commented 1 year ago

Duplicate of #1773 yep

mrousavy commented 1 year ago

@bglgwyng can I somehow give you permission to close duplicate issues here? is that something you would be willing to help with?

bglgwyng commented 1 year ago

Sure! I'm glad I can offer even a small help.