diff options
author | Sol Boucher <solb@google.com> | 2014-08-27 22:02:18 +0000 |
---|---|---|
committer | Android Git Automerger <android-git-automerger@android.com> | 2014-08-27 22:02:18 +0000 |
commit | 3a89cdf55cdef9426b0679f4d9e706da3715b2b9 (patch) | |
tree | ff28644747a8c1a7b481f78ef3c55b9686b983d7 | |
parent | ec891dde6a5de29ed505692b653f3ba3b3cae81f (diff) | |
parent | 7d71703202c2fba36653293eba2772745db46c00 (diff) | |
download | android_frameworks_ex-3a89cdf55cdef9426b0679f4d9e706da3715b2b9.tar.gz android_frameworks_ex-3a89cdf55cdef9426b0679f4d9e706da3715b2b9.tar.bz2 android_frameworks_ex-3a89cdf55cdef9426b0679f4d9e706da3715b2b9.zip |
am 7d717032: camera2-portability: Fix camera2 takePicture AE regression
* commit '7d71703202c2fba36653293eba2772745db46c00':
camera2-portability: Fix camera2 takePicture AE regression
-rw-r--r-- | camera2/portability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.java | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/camera2/portability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.java b/camera2/portability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.java index 44f19bc..c4eea50 100644 --- a/camera2/portability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.java +++ b/camera2/portability/src/com/android/ex/camera2/portability/AndroidCamera2AgentImpl.java @@ -854,6 +854,9 @@ class AndroidCamera2AgentImpl extends CameraAgent { case CaptureResult.CONTROL_AF_STATE_FOCUSED_LOCKED: case CaptureResult.CONTROL_AF_STATE_NOT_FOCUSED_LOCKED: { + // This check must be made regardless of whether the focus state has + // changed recently to avoid infinite waiting during autoFocus() + // when the algorithm has already either converged or failed to. if (mOneshotAfCallback != null) { // A call to autoFocus() was just made to request a focus lock. // Notify the caller that the lens is now indefinitely fixed, @@ -876,8 +879,7 @@ class AndroidCamera2AgentImpl extends CameraAgent { // might get the final callbacks for an earlier frame after receiving one or // more that correspond to the next one. To prevent our data from oscillating, // we never consider AE states that are older than the last one we've seen. - if (aeState != mCurrentAeState && - result.getFrameNumber() > mLastAeFrameNumber) { + if (result.getFrameNumber() > mLastAeFrameNumber) { mCurrentAeState = aeStateMaybe; mLastAeFrameNumber = result.getFrameNumber(); @@ -885,6 +887,9 @@ class AndroidCamera2AgentImpl extends CameraAgent { case CaptureResult.CONTROL_AE_STATE_CONVERGED: case CaptureResult.CONTROL_AE_STATE_FLASH_REQUIRED: case CaptureResult.CONTROL_AE_STATE_LOCKED: { + // This check must be made regardless of whether the exposure state + // has changed recently to avoid infinite waiting during + // takePicture() when the algorithm has already converged. if (mOneshotCaptureCallback != null) { // A call to takePicture() was just made, and autoexposure // converged so it's time to initiate the capture! |