diff options
author | Eino-Ville Talvala <etalvala@google.com> | 2013-06-03 16:50:53 -0700 |
---|---|---|
committer | Eino-Ville Talvala <etalvala@google.com> | 2013-06-03 16:59:16 -0700 |
commit | 9454a9710b13c7d9262fe1cbd910235a3cd35f20 (patch) | |
tree | cbd13c8a4ce67c7eb8aee70a9dc6aeaf3f0efbc1 /services | |
parent | b7319a7eb0a06ef4fd3a0c9157ee63e637ad7aa1 (diff) | |
download | frameworks_av-9454a9710b13c7d9262fe1cbd910235a3cd35f20.zip frameworks_av-9454a9710b13c7d9262fe1cbd910235a3cd35f20.tar.gz frameworks_av-9454a9710b13c7d9262fe1cbd910235a3cd35f20.tar.bz2 |
Camera2/3: Don't trigger AF when in INFINITY focus mode.
While the HAL should ignore it, it's faster to immediately respond
with success.
Also filter out cancel autofocus calls for FIXED/INFINITY focus.
Bug: 9263856
Change-Id: I637ec7c8b459d654ef11cb1142b959f2674224c5
Diffstat (limited to 'services')
-rw-r--r-- | services/camera/libcameraservice/Camera2Client.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/services/camera/libcameraservice/Camera2Client.cpp b/services/camera/libcameraservice/Camera2Client.cpp index dd50e3c..5fdec34 100644 --- a/services/camera/libcameraservice/Camera2Client.cpp +++ b/services/camera/libcameraservice/Camera2Client.cpp @@ -1007,8 +1007,12 @@ status_t Camera2Client::autoFocus() { * If the camera does not support auto-focus, it is a no-op and * onAutoFocus(boolean, Camera) callback will be called immediately * with a fake value of success set to true. + * + * Similarly, if focus mode is set to INFINITY, there's no reason to + * bother the HAL. */ - if (l.mParameters.focusMode == Parameters::FOCUS_MODE_FIXED) { + if (l.mParameters.focusMode == Parameters::FOCUS_MODE_FIXED || + l.mParameters.focusMode == Parameters::FOCUS_MODE_INFINITY) { notifyImmediately = true; notifySuccess = true; } @@ -1068,6 +1072,11 @@ status_t Camera2Client::cancelAutoFocus() { int triggerId; { SharedParameters::Lock l(mParameters); + // Canceling does nothing in FIXED or INFINITY modes + if (l.mParameters.focusMode == Parameters::FOCUS_MODE_FIXED || + l.mParameters.focusMode == Parameters::FOCUS_MODE_INFINITY) { + return OK; + } triggerId = ++l.mParameters.afTriggerCounter; // When using triggerAfWithAuto quirk, may need to reset focus mode to |