diff options
author | Igor Murashkin <iam@google.com> | 2014-07-10 16:46:07 -0700 |
---|---|---|
committer | Igor Murashkin <iam@google.com> | 2014-07-11 12:59:50 -0700 |
commit | 49a1d7b7de171246bb5a644c688ad944ead73062 (patch) | |
tree | ea8a864be7993da6ee8544797960f81a6aef83fd /core | |
parent | 3e280b4bb23be4e5e66ea6381fd63c74fdbd927e (diff) | |
download | frameworks_base-49a1d7b7de171246bb5a644c688ad944ead73062.zip frameworks_base-49a1d7b7de171246bb5a644c688ad944ead73062.tar.gz frameworks_base-49a1d7b7de171246bb5a644c688ad944ead73062.tar.bz2 |
camera2: (legacy) Fixes for CaptureRequestTest#testAeModeAndLock
Change-Id: I5c1008cf34a9d98f67c36966e7cbf1c312979f97
Diffstat (limited to 'core')
3 files changed, 26 insertions, 5 deletions
diff --git a/core/java/android/hardware/camera2/legacy/LegacyMetadataMapper.java b/core/java/android/hardware/camera2/legacy/LegacyMetadataMapper.java index d413cbd..519bbb6 100644 --- a/core/java/android/hardware/camera2/legacy/LegacyMetadataMapper.java +++ b/core/java/android/hardware/camera2/legacy/LegacyMetadataMapper.java @@ -84,10 +84,11 @@ public class LegacyMetadataMapper { * TODO: Remove these constants and strip out any code that previously relied on them * being set to true. */ - static final boolean LIE_ABOUT_AE_STATE = true; + static final boolean LIE_ABOUT_AE_STATE = false; static final boolean LIE_ABOUT_AE_MAX_REGIONS = false; static final boolean LIE_ABOUT_AF = true; static final boolean LIE_ABOUT_AF_MAX_REGIONS = true; + static final boolean LIE_ABOUT_AWB_STATE = false; static final boolean LIE_ABOUT_AWB = true; /** @@ -330,16 +331,17 @@ public class LegacyMetadataMapper { List<String> flashModes = p.getSupportedFlashModes(); String[] flashModeStrings = new String[] { + Camera.Parameters.FLASH_MODE_OFF, Camera.Parameters.FLASH_MODE_AUTO, Camera.Parameters.FLASH_MODE_ON, Camera.Parameters.FLASH_MODE_RED_EYE, // Map these manually Camera.Parameters.FLASH_MODE_TORCH, - Camera.Parameters.FLASH_MODE_OFF, }; int[] flashModeInts = new int[] { CONTROL_AE_MODE_ON, CONTROL_AE_MODE_ON_AUTO_FLASH, + CONTROL_AE_MODE_ON_ALWAYS_FLASH, CONTROL_AE_MODE_ON_AUTO_FLASH_REDEYE }; int[] aeAvail = ArrayUtils.convertStringListToIntArray( diff --git a/core/java/android/hardware/camera2/legacy/LegacyRequestMapper.java b/core/java/android/hardware/camera2/legacy/LegacyRequestMapper.java index 124fa42..273bd89 100644 --- a/core/java/android/hardware/camera2/legacy/LegacyRequestMapper.java +++ b/core/java/android/hardware/camera2/legacy/LegacyRequestMapper.java @@ -182,6 +182,10 @@ public class LegacyRequestMapper { params.setAutoExposureLock(aeLock); } + if (VERBOSE) { + Log.v(TAG, "convertRequestToMetadata - control.aeLock set to " + aeLock); + } + // TODO: Don't add control.aeLock to availableRequestKeys if it's not supported } diff --git a/core/java/android/hardware/camera2/legacy/LegacyResultMapper.java b/core/java/android/hardware/camera2/legacy/LegacyResultMapper.java index 375e6e0..c02f8ac 100644 --- a/core/java/android/hardware/camera2/legacy/LegacyResultMapper.java +++ b/core/java/android/hardware/camera2/legacy/LegacyResultMapper.java @@ -80,19 +80,22 @@ public class LegacyResultMapper { /* * control.ae* */ - mapAe(result, activeArraySize, zoomData, /*out*/params); + mapAe(result, request, activeArraySize, zoomData, /*out*/params); // control.awbLock result.set(CaptureResult.CONTROL_AWB_LOCK, params.getAutoWhiteBalanceLock()); // control.awbState - if (LegacyMetadataMapper.LIE_ABOUT_AWB) { + if (LegacyMetadataMapper.LIE_ABOUT_AWB_STATE) { // Lie to pass CTS temporarily. // TODO: CTS needs to be updated not to query this value // for LIMITED devices unless its guaranteed to be available. result.set(CaptureResult.CONTROL_AWB_STATE, CameraMetadata.CONTROL_AWB_STATE_CONVERGED); // TODO: Read the awb mode from parameters instead + } + + if (LegacyMetadataMapper.LIE_ABOUT_AWB) { result.set(CaptureResult.CONTROL_AWB_MODE, request.get(CaptureRequest.CONTROL_AWB_MODE)); } @@ -119,7 +122,7 @@ public class LegacyResultMapper { } private static void mapAe(CameraMetadataNative m, - Rect activeArray, ZoomData zoomData, /*out*/Parameters p) { + CaptureRequest request, Rect activeArray, ZoomData zoomData, /*out*/Parameters p) { // control.aeAntiBandingMode { int antiBandingMode = LegacyMetadataMapper.convertAntiBandingModeOrDefault( @@ -136,6 +139,18 @@ public class LegacyResultMapper { { boolean lock = p.isAutoExposureLockSupported() ? p.getAutoExposureLock() : false; m.set(CONTROL_AE_LOCK, lock); + if (VERBOSE) { + Log.v(TAG, + "mapAe - android.control.aeLock = " + lock + + ", supported = " + p.isAutoExposureLockSupported()); + } + + Boolean requestLock = request.get(CaptureRequest.CONTROL_AE_LOCK); + if (requestLock != null && requestLock != lock) { + Log.w(TAG, + "mapAe - android.control.aeLock was requested to " + requestLock + + " but resulted in " + lock); + } } // control.aeMode, flash.mode |