summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorEino-Ville Talvala <etalvala@google.com>2013-06-03 16:50:53 -0700
committerEino-Ville Talvala <etalvala@google.com>2013-06-03 16:59:16 -0700
commit9454a9710b13c7d9262fe1cbd910235a3cd35f20 (patch)
treecbd13c8a4ce67c7eb8aee70a9dc6aeaf3f0efbc1 /services
parentb7319a7eb0a06ef4fd3a0c9157ee63e637ad7aa1 (diff)
downloadframeworks_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.cpp11
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