Camera: Add support for Neutral point DNG metadata
Change-Id: Ie403ba62afb3cb58ca5fa2cac541cd602123d0da
diff --git a/camera/QCamera2/HAL3/QCamera3HWI.cpp b/camera/QCamera2/HAL3/QCamera3HWI.cpp
index d7229ff..cfff7f3 100644
--- a/camera/QCamera2/HAL3/QCamera3HWI.cpp
+++ b/camera/QCamera2/HAL3/QCamera3HWI.cpp
@@ -2373,6 +2373,15 @@
privateData, MAX_METADATA_PAYLOAD_SIZE);
break;
}
+
+ case CAM_INTF_META_NEUTRAL_COL_POINT:{
+ cam_neutral_col_point_t *neuColPoint = (cam_neutral_col_point_t*)
+ POINTER_OF(CAM_INTF_META_NEUTRAL_COL_POINT, metadata);
+ camMetadata.update(ANDROID_SENSOR_NEUTRAL_COLOR_POINT,
+ (camera_metadata_rational_t*)neuColPoint->neutral_col_point, 3);
+ break;
+ }
+
default:
ALOGV("%s: This is not a valid metadata type to report to fwk, %d",
__func__, curr_entry);
diff --git a/camera/QCamera2/stack/common/cam_intf.h b/camera/QCamera2/stack/common/cam_intf.h
index 8595b37..36f59c7 100644
--- a/camera/QCamera2/stack/common/cam_intf.h
+++ b/camera/QCamera2/stack/common/cam_intf.h
@@ -518,6 +518,7 @@
INCLUDE(CAM_INTF_META_TEST_PATTERN_DATA, cam_test_pattern_data_t, 1);
INCLUDE(CAM_INTF_META_OTP_WB_GRGB, float, 1);
INCLUDE(CAM_INTF_META_PROFILE_TONE_CURVE, cam_profile_tone_curve, 1);
+ INCLUDE(CAM_INTF_META_NEUTRAL_COL_POINT, cam_neutral_col_point_t, 1);
INCLUDE(CAM_INTF_META_PRIVATE_DATA, char, MAX_METADATA_PAYLOAD_SIZE);
} metadata_type_t;
diff --git a/camera/QCamera2/stack/common/cam_types.h b/camera/QCamera2/stack/common/cam_types.h
index e4a4b8e..d539e46 100644
--- a/camera/QCamera2/stack/common/cam_types.h
+++ b/camera/QCamera2/stack/common/cam_types.h
@@ -1087,6 +1087,7 @@
CAM_INTF_META_OTP_WB_GRGB,
/* DNG file support */
CAM_INTF_META_PROFILE_TONE_CURVE,
+ CAM_INTF_META_NEUTRAL_COL_POINT,
CAM_INTF_PARM_MAX
} cam_intf_parm_type_t;
@@ -1170,6 +1171,10 @@
cam_tonemap_curve_t curve;
} cam_profile_tone_curve;
+typedef struct {
+ cam_rational_type_t neutral_col_point[3];
+} cam_neutral_col_point_t;
+
typedef enum {
OFF,
FAST,