display: Add color Metadata
- Add color aspects and HDR10 related static metadata
which will be used in the existing metadata structure.
- Clients can use COLOR_METADATA to update the CSC
information
- UPDATE_COLOR_SPACE is legacy and will be used when
COLOR_METADATA is not set.
- Update gralloc to return color space when set from
COLOR_METADATA
- Gaurd the usage with USE_COLOR_METADATA for cobalt.
Change-Id: I460accf6cd2bb7a305c7e93284955e566a5b7532
Crs-fixed: 1074172
diff --git a/libqdutils/qdMetaData.cpp b/libqdutils/qdMetaData.cpp
index f62653a..c888baa 100644
--- a/libqdutils/qdMetaData.cpp
+++ b/libqdutils/qdMetaData.cpp
@@ -95,6 +95,11 @@
case SET_VT_TIMESTAMP:
data->vtTimeStamp = *((uint64_t *)param);
break;
+#ifdef USE_COLOR_METADATA
+ case COLOR_METADATA:
+ data->color = *((ColorMetaData *)param);
+#endif
+ break;
default:
ALOGE("Unknown paramType %d", paramType);
break;
@@ -196,6 +201,11 @@
case GET_VT_TIMESTAMP:
*((uint64_t *)param) = data->vtTimeStamp;
break;
+#ifdef USE_COLOR_METADATA
+ case GET_COLOR_METADATA:
+ *((ColorMetaData *)param) = data->color;
+#endif
+ break;
default:
ALOGE("Unknown paramType %d", paramType);
break;
diff --git a/libqdutils/qdMetaData.h b/libqdutils/qdMetaData.h
index 2b0b8c6..a0ac324 100644
--- a/libqdutils/qdMetaData.h
+++ b/libqdutils/qdMetaData.h
@@ -30,6 +30,10 @@
#ifndef _QDMETADATA_H
#define _QDMETADATA_H
+#ifdef USE_COLOR_METADATA
+#include <color_metadata.h>
+#endif
+
#ifdef __cplusplus
extern "C" {
#endif
@@ -91,11 +95,15 @@
/* Set by camera to program the VT Timestamp */
uint64_t vtTimeStamp;
+#ifdef USE_COLOR_METADATA
+ /* Color Aspects + HDR info */
+ ColorMetaData color;
+#endif
};
enum DispParamType {
SET_VT_TIMESTAMP = 0x0001,
- UNUSED1 = 0x0002,
+ COLOR_METADATA = 0x0002,
PP_PARAM_INTERLACED = 0x0004,
UNUSED2 = 0x0008,
UNUSED3 = 0x0010,
@@ -114,6 +122,7 @@
enum DispFetchParamType {
GET_VT_TIMESTAMP = 0x0001,
+ GET_COLOR_METADATA = 0x0002,
GET_PP_PARAM_INTERLACED = 0x0004,
GET_BUFFER_GEOMETRY = 0x0080,
GET_REFRESH_RATE = 0x0100,