summaryrefslogtreecommitdiffstats
path: root/src/com/android/camera/util
diff options
context:
space:
mode:
authorWeijie Wang <weijiew@codeaurora.org>2017-08-17 16:49:51 +0800
committerWeijie Wang <weijiew@codeaurora.org>2017-09-07 16:38:45 +0800
commit18a8ecb60012335259135a45cbe05d8bf0f93190 (patch)
treed87760e26c17c49f6f2c65a6a46b363177d2c799 /src/com/android/camera/util
parentb59cf61c82d6c4af43a9f76a101b29f2a8b5ac17 (diff)
downloadandroid_packages_apps_Snap-18a8ecb60012335259135a45cbe05d8bf0f93190.tar.gz
android_packages_apps_Snap-18a8ecb60012335259135a45cbe05d8bf0f93190.tar.bz2
android_packages_apps_Snap-18a8ecb60012335259135a45cbe05d8bf0f93190.zip
SnapdragonCamera: Support HLG and HDR10
Support HLG and HDR10 Change-Id: I1dd8a40a85e9cc0115515217b4ec75a726b6f41e
Diffstat (limited to 'src/com/android/camera/util')
-rw-r--r--src/com/android/camera/util/SettingTranslation.java15
-rw-r--r--src/com/android/camera/util/VendorTagUtil.java25
2 files changed, 39 insertions, 1 deletions
diff --git a/src/com/android/camera/util/SettingTranslation.java b/src/com/android/camera/util/SettingTranslation.java
index 6aee0ede0..2151f66e0 100644
--- a/src/com/android/camera/util/SettingTranslation.java
+++ b/src/com/android/camera/util/SettingTranslation.java
@@ -29,6 +29,7 @@
package com.android.camera.util;
import android.hardware.camera2.CameraMetadata;
+import android.media.MediaCodecInfo;
import android.media.MediaRecorder;
import java.util.HashMap;
@@ -39,6 +40,7 @@ public class SettingTranslation {
private static final TwoWayMap VIDEO_ENCODER_TABLE = new TwoWayMap();
private static final TwoWayMap AUDIO_ENCODER_TABLE = new TwoWayMap();
private static final TwoWayMap NOISE_REDUCTION_TABLE = new TwoWayMap();
+ private static final TwoWayMap VIDEO_ENCODER_PROFILE_TABLE = new TwoWayMap();
static {
VIDEO_ENCODER_TABLE.put("default", MediaRecorder.VideoEncoder.DEFAULT);
@@ -69,6 +71,11 @@ public class SettingTranslation {
NOISE_REDUCTION_TABLE.put("minimal", CameraMetadata.NOISE_REDUCTION_MODE_MINIMAL);
NOISE_REDUCTION_TABLE.put("zero-shutter-lag", CameraMetadata
.NOISE_REDUCTION_MODE_ZERO_SHUTTER_LAG);
+
+ VIDEO_ENCODER_PROFILE_TABLE.put("HEVCProfileMain10",
+ MediaCodecInfo.CodecProfileLevel.HEVCProfileMain10);
+ VIDEO_ENCODER_PROFILE_TABLE.put("HEVCProfileMain10HDR10",
+ MediaCodecInfo.CodecProfileLevel.HEVCProfileMain10HDR10);
}
public static int getVideoEncoder(String key) {
@@ -95,6 +102,14 @@ public class SettingTranslation {
return NOISE_REDUCTION_TABLE.get(key);
}
+ public static int getVideoEncoderProfile(String key) {
+ return VIDEO_ENCODER_PROFILE_TABLE.get(key);
+ }
+
+ public static String getVideoEncoderProfile(int key) {
+ return VIDEO_ENCODER_PROFILE_TABLE.get(key);
+ }
+
private static class TwoWayMap {
private Map<String, Integer> strToInt = new HashMap<>();
private Map<Integer, String> intToStr = new HashMap<>();
diff --git a/src/com/android/camera/util/VendorTagUtil.java b/src/com/android/camera/util/VendorTagUtil.java
index 9c2f6cc1c..fb8aee010 100644
--- a/src/com/android/camera/util/VendorTagUtil.java
+++ b/src/com/android/camera/util/VendorTagUtil.java
@@ -28,6 +28,8 @@
*/
package com.android.camera.util;
+import android.hardware.camera2.CameraAccessException;
+import android.hardware.camera2.CameraDevice;
import android.hardware.camera2.CaptureRequest;
import android.util.Log;
@@ -52,7 +54,8 @@ public class VendorTagUtil {
private static CaptureRequest.Key<Long> ISO_EXP =
new CaptureRequest.Key<>("org.codeaurora.qcamera3.iso_exp_priority.use_iso_exp_priority",
Long.class);
-
+ private static final CaptureRequest.Key<Byte> HDRVideoMode =
+ new CaptureRequest.Key<>("org.quic.camera2.streamconfigs.HDRVideoMode", Byte.class);
private static boolean isSupported(CaptureRequest.Builder builder,
CaptureRequest.Key<?> key) {
@@ -62,6 +65,7 @@ public class VendorTagUtil {
}catch(IllegalArgumentException exception){
supported = false;
Log.d(TAG, "vendor tag " + key.getName() + " is not supported");
+ exception.printStackTrace();
}
if ( supported ) {
Log.d(TAG, "vendor tag " + key.getName() + " is supported");
@@ -131,4 +135,23 @@ public class VendorTagUtil {
return isSupported(builder, ISO_EXP);
}
+ public static void setHDRVideoMode(CaptureRequest.Builder builder, byte mode) {
+ if ( isHDRVideoModeSupported(builder) ) {
+ builder.set(HDRVideoMode, mode);
+ }
+ }
+
+ public static boolean isHDRVideoModeSupported(CaptureRequest.Builder builder) {
+ return isSupported(builder, HDRVideoMode);
+ }
+
+ public static boolean isHDRVideoModeSupported(CameraDevice camera) {
+ try {
+ CaptureRequest.Builder builder = camera.createCaptureRequest(CameraDevice.TEMPLATE_RECORD);
+ return isHDRVideoModeSupported(builder);
+ }catch(CameraAccessException exception) {
+ exception.printStackTrace();
+ return false;
+ }
+ }
}