summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@quicinc.com>2017-12-20 02:19:17 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2017-12-20 02:19:16 -0800
commit7e1395551d76b3cd4f34c5e2b216b7c0dceef150 (patch)
treed1da37a289fcd0249eba53fc80775bbe9714bc29 /src
parent868f9317a442bcab83798427ac99f015414df700 (diff)
parentf5fb8e08e74bc802b946f4c1783d15dec218410d (diff)
downloadandroid_packages_apps_Snap-7e1395551d76b3cd4f34c5e2b216b7c0dceef150.tar.gz
android_packages_apps_Snap-7e1395551d76b3cd4f34c5e2b216b7c0dceef150.tar.bz2
android_packages_apps_Snap-7e1395551d76b3cd4f34c5e2b216b7c0dceef150.zip
Merge "SnapdragonCamera: add EIS in dev option"
Diffstat (limited to 'src')
-rwxr-xr-xsrc/com/android/camera/CaptureModule.java42
-rwxr-xr-xsrc/com/android/camera/SettingsActivity.java4
-rwxr-xr-xsrc/com/android/camera/SettingsManager.java8
3 files changed, 53 insertions, 1 deletions
diff --git a/src/com/android/camera/CaptureModule.java b/src/com/android/camera/CaptureModule.java
index 87b03d141..62e5bfa13 100755
--- a/src/com/android/camera/CaptureModule.java
+++ b/src/com/android/camera/CaptureModule.java
@@ -265,6 +265,8 @@ public class CaptureModule implements CameraModule, PhotoController,
"org.codeaurora.qcamera3.sharpness.strength", Integer.class);
public static final CaptureRequest.Key<Integer> exposure_metering = new CaptureRequest.Key<>(
"org.codeaurora.qcamera3.exposure_metering.exposure_metering_mode", Integer.class);
+ public static final CaptureRequest.Key<Byte> eis_mode =
+ new CaptureRequest.Key<>("org.quic.camera.eis3enable.EISV3Enable", byte.class);
private boolean[] mTakingPicture = new boolean[MAX_NUM_CAM];
private int mControlAFMode = CameraMetadata.CONTROL_AF_MODE_CONTINUOUS_PICTURE;
@@ -398,6 +400,7 @@ public class CaptureModule implements CameraModule, PhotoController,
private boolean mHighSpeedCapture = false;
private boolean mHighSpeedRecordingMode = false; //HFR
private int mHighSpeedCaptureRate;
+ private boolean mEisEnabled = false;
private CaptureRequest.Builder mVideoRequestBuilder;
private static final int STATS_DATA = 768;
@@ -3434,6 +3437,7 @@ public class CaptureModule implements CameraModule, PhotoController,
applyFaceDetection(builder);
applyZoom(builder, cameraId);
applyVideoEncoderProfile(builder);
+ applyEIS(builder);
}
private void updateVideoFlash() {
@@ -3559,6 +3563,15 @@ public class CaptureModule implements CameraModule, PhotoController,
mMediaRecorderPausing = true;
mRecordingTotalTime += SystemClock.uptimeMillis() - mRecordingStartTime;
mMediaRecorder.pause();
+ if (mEisEnabled) {
+ try {
+ if (mCurrentSession != null) {
+ mCurrentSession.abortCaptures();
+ }
+ } catch (CameraAccessException e) {
+ Log.w(TAG, "pauseVideoRecording " + " Camera access failed");
+ }
+ }
}
private void resumeVideoRecording() {
@@ -3593,6 +3606,13 @@ public class CaptureModule implements CameraModule, PhotoController,
boolean shouldAddToMediaStoreNow = false;
// Stop recording
checkAndPlayRecordSound(cameraId, false);
+ if (mEisEnabled) {
+ try {
+ mCaptureSession[cameraId].abortCaptures();
+ } catch (CameraAccessException e) {
+ Log.w(TAG, "stopRecordingVideo " + cameraId + " Camera access failed");
+ }
+ }
mFrameProcessor.setVideoOutputSurface(null);
mFrameProcessor.onClose();
closePreviewSession();
@@ -4145,7 +4165,11 @@ public class CaptureModule implements CameraModule, PhotoController,
String value = mSettingsManager.getValue(SettingsManager.KEY_SHARPNESS_CONTROL_MODE);
if (value != null) {
int intValue = Integer.parseInt(value);
- request.set(CaptureModule.sharpness_control, intValue);
+ try {
+ request.set(CaptureModule.sharpness_control, intValue);
+ } catch (IllegalArgumentException e) {
+ e.printStackTrace();
+ }
}
}
@@ -4161,6 +4185,22 @@ public class CaptureModule implements CameraModule, PhotoController,
}
}
+ private void applyEIS(CaptureRequest.Builder request) {
+ if (!mSettingsManager.isDeveloperEnabled()) {
+ return;//don't apply if not in dev mode
+ }
+ String value = mSettingsManager.getValue(SettingsManager.KEY_EIS_VALUE);
+ if (value != null) {
+ mEisEnabled = Boolean.parseBoolean(value);
+ byte byteValue = (byte) (mEisEnabled ? 0x01 : 0x00);
+ try {
+ request.set(CaptureModule.eis_mode, byteValue);
+ } catch (IllegalArgumentException e) {
+ e.printStackTrace();
+ }
+ }
+ }
+
private void applyExposureMeteringModes(CaptureRequest.Builder request) {
String value = mSettingsManager.getValue(SettingsManager.KEY_EXPOSURE_METERING_MODE);
if (value != null) {
diff --git a/src/com/android/camera/SettingsActivity.java b/src/com/android/camera/SettingsActivity.java
index 6531cc81d..52cd04ac3 100755
--- a/src/com/android/camera/SettingsActivity.java
+++ b/src/com/android/camera/SettingsActivity.java
@@ -320,6 +320,10 @@ public class SettingsActivity extends PreferenceActivity {
if (privateCounter >= DEVELOPER_MENU_TOUCH_COUNT) {
mDeveloperMenuEnabled = true;
mSharedPreferences.edit().putBoolean(SettingsManager.KEY_DEVELOPER_MENU, true).apply();
+ SharedPreferences sp = SettingsActivity.this.getSharedPreferences(
+ ComboPreferences.getGlobalSharedPreferencesName(SettingsActivity.this),
+ Context.MODE_PRIVATE);
+ sp.edit().putBoolean(SettingsManager.KEY_DEVELOPER_MENU, true).apply();
Toast.makeText(SettingsActivity.this, "Camera developer option is enabled now", Toast.LENGTH_SHORT).show();
recreate();
}
diff --git a/src/com/android/camera/SettingsManager.java b/src/com/android/camera/SettingsManager.java
index e6f96e0e3..0e42dfbfc 100755
--- a/src/com/android/camera/SettingsManager.java
+++ b/src/com/android/camera/SettingsManager.java
@@ -155,6 +155,7 @@ public class SettingsManager implements ListMenu.SettingsListener {
public static final String KEY_MANUAL_ISO_VALUE = "pref_camera2_manual_iso_key";
public static final String KEY_MANUAL_EXPOSURE_VALUE = "pref_camera2_manual_exposure_key";
public static final String KEY_QCFA = "pref_camera2_qcfa_key";
+ public static final String KEY_EIS_VALUE = "pref_camera2_eis_key";
public static final HashMap<String, Integer> KEY_ISO_INDEX = new HashMap<String, Integer>();
public static final String KEY_BSGC_DETECTION = "pref_camera2_bsgc_key";
@@ -1746,4 +1747,11 @@ public class SettingsManager implements ListMenu.SettingsListener {
editor.commit();
}
+ public boolean isDeveloperEnabled() {
+ SharedPreferences sp = mContext.getSharedPreferences(
+ ComboPreferences.getGlobalSharedPreferencesName(mContext),
+ Context.MODE_PRIVATE);
+ return sp.getBoolean(SettingsManager.KEY_DEVELOPER_MENU, false);
+ }
+
}