diff options
-rw-r--r-- | core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java b/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java index 68926d0..5bc7f71 100644 --- a/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java +++ b/core/java/android/hardware/camera2/impl/CameraCaptureSessionImpl.java @@ -657,9 +657,9 @@ public class CameraCaptureSessionImpl extends CameraCaptureSession { } // Slow path: #close was called explicitly on this session; unconfigure first + mUnconfigureDrainer.taskStarted(); try { - mUnconfigureDrainer.taskStarted(); mDeviceImpl .configureOutputsChecked(null); // begin transition to unconfigured } catch (CameraAccessException e) { @@ -667,6 +667,11 @@ public class CameraCaptureSessionImpl extends CameraCaptureSession { Log.e(TAG, mIdString + "Exception while configuring outputs: ", e); // TODO: call onError instead of onClosed if this happens + } catch (IllegalStateException e) { + // Camera is already closed, so go straight to the close callback + if (VERBOSE) Log.v(TAG, mIdString + + "Camera was already closed or busy, skipping unconfigure"); + mUnconfigureDrainer.taskFinished(); } mUnconfigureDrainer.beginDrain(); |