summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
authorzhuw <zhuw@codeaurora.org>2018-01-22 18:51:08 +0800
committerxianming wang <mingwax@codeaurora.org>2018-02-28 11:04:57 +0800
commit11e8b8771f6f5c638dbf9116178e111381a62609 (patch)
tree2c8af47bceb4a45a8d49590a4afdecee78034adb /src/com
parent4335371742baa7ddd04b8359c4bd6c76cf4e29d1 (diff)
downloadandroid_packages_apps_Snap-11e8b8771f6f5c638dbf9116178e111381a62609.tar.gz
android_packages_apps_Snap-11e8b8771f6f5c638dbf9116178e111381a62609.tar.bz2
android_packages_apps_Snap-11e8b8771f6f5c638dbf9116178e111381a62609.zip
SnapdragonCamera: Support zzhdr for Video HDR
(1) Add operation in dev options (2) Set opmode before createsession (3) Set vendor tag in first PCR CRs-Fixed: 2197108 Change-Id: Ib3e95f4a09960f8aa41e79b5f3b8832fcf8d90fc
Diffstat (limited to 'src/com')
-rwxr-xr-xsrc/com/android/camera/CaptureModule.java39
-rwxr-xr-xsrc/com/android/camera/SettingsActivity.java22
-rwxr-xr-xsrc/com/android/camera/SettingsManager.java13
3 files changed, 66 insertions, 8 deletions
diff --git a/src/com/android/camera/CaptureModule.java b/src/com/android/camera/CaptureModule.java
index fd33eb029..996b59a23 100755
--- a/src/com/android/camera/CaptureModule.java
+++ b/src/com/android/camera/CaptureModule.java
@@ -253,6 +253,10 @@ public class CaptureModule implements CameraModule, PhotoController,
new CameraCharacteristics.Key<>("org.codeaurora.qcamera3.quadra_cfa.qcfa_dimension", int[].class);
public static CameraCharacteristics.Key<Byte> bsgcAvailable =
new CameraCharacteristics.Key<>("org.codeaurora.qcamera3.stats.bsgc_available", Byte.class);
+ public static CameraCharacteristics.Key<int[]> support_video_hdr_modes =
+ new CameraCharacteristics.Key<>("org.codeaurora.qcamera3.available_video_hdr_modes.video_hdr_modes", int[].class);
+ public static CaptureRequest.Key<Integer> support_video_hdr_values =
+ new CaptureRequest.Key<>("org.codeaurora.qcamera3.available_video_hdr_modes.video_hdr_values", Integer.class);
public static CaptureResult.Key<byte[]> blinkDetected =
new CaptureResult.Key<>("org.codeaurora.qcamera3.stats.blink_detected", byte[].class);
public static CaptureResult.Key<byte[]> blinkDegree =
@@ -3657,15 +3661,8 @@ public class CaptureModule implements CameraModule, PhotoController,
}
}, null);
} else {
- int index = getSensorTableHFRRange();
- if (index != -1) {
- if (DEBUG) {
- Log.v(TAG, "setVendorStreamConfigMode index :" + index);
- }
- mCameraDevice[cameraId].setVendorStreamConfigMode(index);
- }
surfaces.add(mVideoSnapshotImageReader.getSurface());
-
+ setOpModeForVideoStream(cameraId);
String value = mSettingsManager.getValue(SettingsManager.KEY_FOVC_VALUE);
if (value != null && Boolean.parseBoolean(value)) {
mStreamConfigOptMode = mStreamConfigOptMode | STREAM_CONFIG_MODE_FOVC;
@@ -3796,6 +3793,32 @@ public class CaptureModule implements CameraModule, PhotoController,
applyZoom(builder, cameraId);
applyVideoEncoderProfile(builder);
applyVideoEIS(builder);
+ applyVideoHDR(builder);
+ }
+
+ private void applyVideoHDR(CaptureRequest.Builder builder) {
+ String value = mSettingsManager.getValue(SettingsManager.KEY_VIDEO_HDR_VALUE);
+ if (value != null) {
+ try {
+ builder.set(CaptureModule.support_video_hdr_values, Integer.parseInt(value));
+ } catch (IllegalArgumentException e) {
+ Log.w(TAG, "cannot find vendor tag: " + support_video_hdr_values.toString());
+ }
+ }
+ }
+
+ private void setOpModeForVideoStream(int cameraId) {
+ int index = getSensorTableHFRRange();
+ if (index != -1) {
+ if (DEBUG) {
+ Log.v(TAG, "setOpModeForVideoStream index :" + index);
+ }
+ try {
+ mCameraDevice[cameraId].setVendorStreamConfigMode(index);
+ } catch (CameraAccessException e) {
+ e.printStackTrace();
+ }
+ }
}
private void updateVideoFlash() {
diff --git a/src/com/android/camera/SettingsActivity.java b/src/com/android/camera/SettingsActivity.java
index 5deaa2c42..6064c0d38 100755
--- a/src/com/android/camera/SettingsActivity.java
+++ b/src/com/android/camera/SettingsActivity.java
@@ -121,6 +121,19 @@ public class SettingsActivity extends PreferenceActivity {
mSettingsManager.updateQcfaPictureSize();
updatePreference(SettingsManager.KEY_PICTURE_SIZE);
}
+
+ if ( pref.getKey().equals(SettingsManager.KEY_VIDEO_HDR_VALUE) ) {
+ ListPreference autoHdrPref = (ListPreference) findPreference(
+ mSettingsManager.KEY_AUTO_HDR);
+ if (pref.getSummary().equals("enable")) {
+ // when enable the Video HDR, app will disable the AUTO HDR.
+ autoHdrPref.setEnabled(false);
+ autoHdrPref.setValue("disable");
+ mSettingsManager.setValue(mSettingsManager.KEY_AUTO_HDR, "disable");
+ } else {
+ autoHdrPref.setEnabled(true);
+ }
+ }
}
}
};
@@ -396,6 +409,7 @@ public class SettingsActivity extends PreferenceActivity {
updatePreference(SettingsManager.KEY_ZOOM);
updatePreference(SettingsManager.KEY_SWITCH_CAMERA);
updatePictureSizePreferenceButton();
+ updateVideoHDRPreference();
Map<String, SettingsManager.Values> map = mSettingsManager.getValuesMap();
Set<Map.Entry<String, SettingsManager.Values>> set = map.entrySet();
@@ -430,6 +444,14 @@ public class SettingsActivity extends PreferenceActivity {
}
}
+ private void updateVideoHDRPreference() {
+ ListPreference pref = (ListPreference)findPreference(SettingsManager.KEY_VIDEO_HDR_VALUE);
+ if (pref == null) {
+ return;
+ }
+ pref.setEnabled(mSettingsManager.isZZHDRSupported());
+ }
+
private void updatePreferenceButton(String key) {
Preference pref = findPreference(key);
if (pref != null ) {
diff --git a/src/com/android/camera/SettingsManager.java b/src/com/android/camera/SettingsManager.java
index 303ea0395..37376715d 100755
--- a/src/com/android/camera/SettingsManager.java
+++ b/src/com/android/camera/SettingsManager.java
@@ -148,6 +148,7 @@ public class SettingsManager implements ListMenu.SettingsListener {
public static final String KEY_HISTOGRAM = "pref_camera2_histogram_key";
public static final String KEY_AUTO_HDR = "pref_camera2_auto_hdr_key";
public static final String KEY_HDR = "pref_camera2_hdr_key";
+ public static final String KEY_VIDEO_HDR_VALUE = "pref_camera2_video_hdr_key";
public static final String KEY_SAVERAW = "pref_camera2_saveraw_key";
public static final String KEY_ZOOM = "pref_camera2_zoom_key";
public static final String KEY_SHARPNESS_CONTROL_MODE = "pref_camera2_sharpness_control_key";
@@ -1155,6 +1156,18 @@ public class SettingsManager implements ListMenu.SettingsListener {
return true;
}
+ public boolean isZZHDRSupported() {
+ int modes[] = null;
+ try {
+ modes = mCharacteristics.get(getCurrentCameraId())
+ .get(CaptureModule.support_video_hdr_modes);
+ } catch (IllegalArgumentException e) {
+ Log.w(TAG, "cannot find vendor tag: " +
+ CaptureModule.support_video_hdr_modes.toString());
+ }
+ return modes != null && modes.length > 1;
+ }
+
public boolean isAutoExposureRegionSupported(int id) {
Integer maxAERegions = mCharacteristics.get(id).get(
CameraCharacteristics.CONTROL_MAX_REGIONS_AE);