summaryrefslogtreecommitdiff
path: root/src/com/android/camera/CaptureModule.java
diff options
context:
space:
mode:
authorxianming wang <mingwax@codeaurora.org>2019-03-19 17:29:10 +0800
committerGerrit - the friendly Code Review server <code-review@localhost>2019-04-04 02:51:29 -0700
commita22fc229f5f559f6f6a90355b4d93bf86c6bc8a0 (patch)
tree2b0408774d238a3384a0b705b781245d6d1a0218 /src/com/android/camera/CaptureModule.java
parent34bc4aa35bd28358f2210ee5d7a600fd0f83f02a (diff)
SnapdragonCamera: AEC warm start function completed
Complete the function AEC warm start. CRs-Fixed: Change-Id: Ic96f617a1cf70bce621ec8dc263ec74579dff245
Diffstat (limited to 'src/com/android/camera/CaptureModule.java')
-rwxr-xr-xsrc/com/android/camera/CaptureModule.java46
1 files changed, 38 insertions, 8 deletions
diff --git a/src/com/android/camera/CaptureModule.java b/src/com/android/camera/CaptureModule.java
index 3934855bc..642a4f599 100755
--- a/src/com/android/camera/CaptureModule.java
+++ b/src/com/android/camera/CaptureModule.java
@@ -246,6 +246,7 @@ public class CaptureModule implements CameraModule, PhotoController,
private float mBGain = -1.0f;
private float mCctAWB = -1.0f;
private float[] mAWBDecisionAfterTC = new float[2];
+ private float[] mAECSensitivity = new float[3];
/** Add for EIS and FOVC Configuration */
private int mStreamConfigOptMode = 0;
@@ -382,6 +383,13 @@ public class CaptureModule implements CameraModule, PhotoController,
private static final CaptureRequest.Key<Float[]> awbWarmStart_decision_after_tc =
new CaptureRequest.Key<>("org.quic.camera2.statsconfigs.AWBDecisionAfterTC", Float[].class);
+ //AEC warm start
+ private static final CaptureResult.Key<float[]> aec_sensitivity =
+ new CaptureResult.Key<>("org.quic.camera2.statsconfigs.AECSensitivity", float[].class);
+
+ private static final CaptureRequest.Key<Float[]> aec_start_up_sensitivity =
+ new CaptureRequest.Key<>("org.quic.camera2.statsconfigs.AECStartUpSensitivity", Float[].class);
+
public static final CaptureRequest.Key<Integer> sharpness_control = new CaptureRequest.Key<>(
"org.codeaurora.qcamera3.sharpness.strength", Integer.class);
public static final CaptureRequest.Key<Integer> exposure_metering = new CaptureRequest.Key<>(
@@ -471,6 +479,7 @@ public class CaptureModule implements CameraModule, PhotoController,
boolean mUnsupportedResolution = false;
private boolean mExistAWBVendorTag = true;
+ private boolean mExistAECWarmTag = true;
private static final long SDCARD_SIZE_LIMIT = 4000 * 1024 * 1024L;
private static final String sTempCropFilename = "crop-temp";
@@ -6492,6 +6501,9 @@ public class CaptureModule implements CameraModule, PhotoController,
float cct = pref.getFloat(SettingsManager.KEY_AWB_CCT_VALUE, awbDefault);
float tc0 = pref.getFloat(SettingsManager.KEY_AWB_DECISION_AFTER_TC_0, awbDefault);
float tc1 = pref.getFloat(SettingsManager.KEY_AWB_DECISION_AFTER_TC_1, awbDefault);
+ float aec0 = pref.getFloat(SettingsManager.KEY_AEC_SENSITIVITY_0, awbDefault);
+ float aec1 = pref.getFloat(SettingsManager.KEY_AEC_SENSITIVITY_1, awbDefault);
+ float aec2 = pref.getFloat(SettingsManager.KEY_AEC_SENSITIVITY_2, awbDefault);
if (rGain != awbDefault && gGain != awbDefault && gGain != bGain) {
Float[] awbGains = {rGain, gGain, bGain};
Float[] tcs = {tc0, tc1};
@@ -6506,23 +6518,38 @@ public class CaptureModule implements CameraModule, PhotoController,
e.printStackTrace();
}
}
+ if (aec0 != awbDefault && aec1 != awbDefault && aec2 != awbDefault) {
+ Float[] aecGains = {aec0, aec1, aec2};
+ try {
+ request.set(CaptureModule.aec_start_up_sensitivity, aecGains);
+ result = true;
+ } catch (IllegalArgumentException e) {
+ e.printStackTrace();
+ }
+ } else {
+ Log.v(TAG, " applyAWBCCTAndAgain aec0 :" + aec0 + " " + aec1 + " " + aec2);
+ }
return result;
}
- private boolean updateAWBCCTAndgains(CaptureResult awbResult) {
+ private boolean updateAWBCCTAndgains(CaptureResult captureResult) {
boolean result = false;
- if (awbResult != null) {
+ if (captureResult != null) {
try {
if (mExistAWBVendorTag) {
- mRGain = awbResult.get(CaptureModule.awbFrame_control_rgain);
- mGGain = awbResult.get(CaptureModule.awbFrame_control_ggain);
- mBGain = awbResult.get(CaptureModule.awbFrame_control_bgain);
- mCctAWB = awbResult.get(CaptureModule.awbFrame_control_cct);
- mAWBDecisionAfterTC = awbResult.get(CaptureModule.awbFrame_decision_after_tc);
- result = true;
+ mRGain = captureResult.get(CaptureModule.awbFrame_control_rgain);
+ mGGain = captureResult.get(CaptureModule.awbFrame_control_ggain);
+ mBGain = captureResult.get(CaptureModule.awbFrame_control_bgain);
+ mCctAWB = captureResult.get(CaptureModule.awbFrame_control_cct);
+ mAWBDecisionAfterTC = captureResult.get(CaptureModule.awbFrame_decision_after_tc);
}
+ if (mExistAECWarmTag) {
+ mAECSensitivity = captureResult.get(CaptureModule.aec_sensitivity);
+ }
+ result = true;
} catch (IllegalArgumentException e) {
mExistAWBVendorTag = false;
+ mExistAECWarmTag = false;
e.printStackTrace();
} catch(NullPointerException e) {
}
@@ -6541,6 +6568,9 @@ public class CaptureModule implements CameraModule, PhotoController,
editor.putFloat(SettingsManager.KEY_AWB_CCT_VALUE, mCctAWB);
editor.putFloat(SettingsManager.KEY_AWB_DECISION_AFTER_TC_0, mAWBDecisionAfterTC[0]);
editor.putFloat(SettingsManager.KEY_AWB_DECISION_AFTER_TC_1, mAWBDecisionAfterTC[1]);
+ editor.putFloat(SettingsManager.KEY_AEC_SENSITIVITY_0, mAECSensitivity[0]);
+ editor.putFloat(SettingsManager.KEY_AEC_SENSITIVITY_1, mAECSensitivity[1]);
+ editor.putFloat(SettingsManager.KEY_AEC_SENSITIVITY_2, mAECSensitivity[2]);
editor.apply();
}