display: Add reserved size and status check to MetaData_t

* Move from fixed array reserved region to variable reserved
  region size
* Add bool arrays to indicate whether metadata has been set using
  Gralloc4 indices
* Replace metadata->operation with bool arrays for
  gralloc4/qdMetaData compatibility

CRs-Fixed: 2730848
Change-Id: Id52aac70c23ee4b39db185861f951bb909831afb
diff --git a/gralloc/QtiGralloc.h b/gralloc/QtiGralloc.h
index f0392f9..4be74e2 100644
--- a/gralloc/QtiGralloc.h
+++ b/gralloc/QtiGralloc.h
@@ -67,6 +67,7 @@
 Error get(void *buffer, uint32_t type, void *param);
 Error set(void *buffer, uint32_t type, void *param);
 MetadataType getMetadataType(uint32_t in);
+int getMetadataState(void *buffer, uint32_t type);
 
 static const MetadataType MetadataType_VTTimestamp = {VENDOR_QTI, QTI_VT_TIMESTAMP};
 
@@ -102,6 +103,12 @@
 static const MetadataType MetadataType_AlignedHeightInPixels = {VENDOR_QTI,
                                                                 QTI_ALIGNED_HEIGHT_IN_PIXELS};
 
+static const MetadataType MetadataType_StandardMetadataStatus = {VENDOR_QTI,
+                                                                 QTI_STANDARD_METADATA_STATUS};
+
+static const MetadataType MetadataType_VendorMetadataStatus = {VENDOR_QTI,
+                                                               QTI_VENDOR_METADATA_STATUS};
+
 // 0 is also used as invalid value in standard metadata
 static const MetadataType MetadataType_Invalid = {VENDOR_QTI, 0};
 
@@ -115,6 +122,8 @@
 static const aidl::android::hardware::graphics::common::ExtendableType
     PlaneLayoutComponentType_Meta = {VENDOR_QTI, PLANE_COMPONENT_TYPE_META};
 
+Error decodeMetadataState(hidl_vec<uint8_t> &in, bool *out);
+Error encodeMetadataState(bool *in, hidl_vec<uint8_t> *out);
 Error decodeColorMetadata(hidl_vec<uint8_t> &in, ColorMetaData *out);
 Error encodeColorMetadata(ColorMetaData &in, hidl_vec<uint8_t> *out);
 Error decodeGraphicsMetadata(hidl_vec<uint8_t> &in, GraphicsMetadata *out);
@@ -127,7 +136,6 @@
 Error encodeCVPMetadata(CVPMetadata &in, hidl_vec<uint8_t> *out);
 Error decodeVideoHistogramMetadata(hidl_vec<uint8_t> &in, VideoHistogramMetadata *out);
 Error encodeVideoHistogramMetadata(VideoHistogramMetadata &in, hidl_vec<uint8_t> *out);
-
 }  // namespace qtigralloc
 
 #endif  //__QTIGRALLOC_H__