display: Add video TS info metadata
Add support to pass new video timestamp info metadata
in gralloc buffer. Add support in both qdmetadata
and Gralloc4 interface.
CRs-Fixed: 2713472
Change-Id: Ica7776c6594ec3224f631f2eb23a1988f075313f
diff --git a/gralloc/QtiGralloc.cpp b/gralloc/QtiGralloc.cpp
index 5172ad5..c354537 100644
--- a/gralloc/QtiGralloc.cpp
+++ b/gralloc/QtiGralloc.cpp
@@ -164,6 +164,23 @@
return Error::NONE;
}
+Error decodeVideoTimestampInfo(hidl_vec<uint8_t> &in, VideoTimestampInfo *out) {
+ if (!in.size() || !out) {
+ return Error::BAD_VALUE;
+ }
+ memcpy(out, in.data(), sizeof(VideoTimestampInfo));
+ return Error::NONE;
+}
+
+Error encodeVideoTimestampInfo(VideoTimestampInfo &in, hidl_vec<uint8_t> *out) {
+ if (!out) {
+ return Error::BAD_VALUE;
+ }
+ out->resize(sizeof(VideoTimestampInfo));
+ memcpy(out->data(), &in, sizeof(VideoTimestampInfo));
+ return Error::NONE;
+}
+
MetadataType getMetadataType(uint32_t in) {
switch (in) {
case QTI_VT_TIMESTAMP:
@@ -190,6 +207,8 @@
return MetadataType_CVPMetadata;
case QTI_VIDEO_HISTOGRAM_STATS:
return MetadataType_VideoHistogramStats;
+ case QTI_VIDEO_TS_INFO:
+ return MetadataType_VideoTimestampInfo;
case QTI_FD:
return MetadataType_FD;
case QTI_PRIVATE_FLAGS:
@@ -273,6 +292,9 @@
case QTI_VIDEO_HISTOGRAM_STATS:
err = decodeVideoHistogramMetadata(bytestream, (VideoHistogramMetadata *)param);
break;
+ case QTI_VIDEO_TS_INFO:
+ err = decodeVideoTimestampInfo(bytestream, (VideoTimestampInfo *)param);
+ break;
case QTI_FD:
err = static_cast<Error>(android::gralloc4::decodeInt32(qtigralloc::MetadataType_FD,
bytestream, (int32_t *)param));
@@ -359,6 +381,9 @@
case QTI_VIDEO_HISTOGRAM_STATS:
err = encodeVideoHistogramMetadata(*(VideoHistogramMetadata *)param, &bytestream);
break;
+ case QTI_VIDEO_TS_INFO:
+ err = encodeVideoTimestampInfo(*(VideoTimestampInfo *)param, &bytestream);
+ break;
default:
param = nullptr;
return Error::UNSUPPORTED;