summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMahesh Kumar Sharma <quic_smahesh@quicinc.com>2022-05-20 11:49:17 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2022-06-03 10:30:46 -0700
commit9cf3017b600c9fd71b3ce4a9a190509d42f08f45 (patch)
tree27e6cb7e5682d101ff45e5c5267faf0d320af7e2
parent0cf818d5e8cf92c34df00924ce7e9d4772989d71 (diff)
gralloc: Add getter and setter for transcode stats feature
Add setter and getter for transcode stats in gralloc. feature used to set stat info received from video decoder to gralloc. This decoder stat enables to fine tune encoding in second pass. Change-Id: I781ce6ea2eadd07bf9b0f38c302f6ce7a05351bb Signed-off-by: Mahesh Kumar Sharma <quic_smahesh@quicinc.com>
-rw-r--r--gralloc/QtiGralloc.cpp27
1 files changed, 27 insertions, 0 deletions
diff --git a/gralloc/QtiGralloc.cpp b/gralloc/QtiGralloc.cpp
index 954c46d..e71e545 100644
--- a/gralloc/QtiGralloc.cpp
+++ b/gralloc/QtiGralloc.cpp
@@ -164,6 +164,23 @@ Error encodeVideoHistogramMetadata(VideoHistogramMetadata &in, hidl_vec<uint8_t>
return Error::NONE;
}
+Error decodeVideoTranscodeStatsMetadata(hidl_vec<uint8_t> &in, VideoTranscodeStatsMetadata *out) {
+ if (!in.size() || !out) {
+ return Error::BAD_VALUE;
+ }
+ memcpy(out, in.data(), sizeof(VideoTranscodeStatsMetadata));
+ return Error::NONE;
+}
+
+Error encodeVideoTranscodeStatsMetadata(VideoTranscodeStatsMetadata &in, hidl_vec<uint8_t> *out) {
+ if (!out) {
+ return Error::BAD_VALUE;
+ }
+ out->resize(sizeof(VideoTranscodeStatsMetadata));
+ memcpy(out->data(), &in, sizeof(VideoTranscodeStatsMetadata));
+ return Error::NONE;
+}
+
Error decodeVideoTimestampInfo(hidl_vec<uint8_t> &in, VideoTimestampInfo *out) {
if (!in.size() || !out) {
return Error::BAD_VALUE;
@@ -225,6 +242,8 @@ MetadataType getMetadataType(uint32_t in) {
return MetadataType_CVPMetadata;
case QTI_VIDEO_HISTOGRAM_STATS:
return MetadataType_VideoHistogramStats;
+ case QTI_VIDEO_TRANSCODE_STATS:
+ return MetadataType_VideoTranscodeStats;
case QTI_VIDEO_TS_INFO:
return MetadataType_VideoTimestampInfo;
case QTI_FD:
@@ -326,6 +345,10 @@ Error get(void *buffer, uint32_t type, void *param) {
err = decodeVideoHistogramMetadata(bytestream,
reinterpret_cast<VideoHistogramMetadata *>(param));
break;
+ case QTI_VIDEO_TRANSCODE_STATS:
+ err = decodeVideoTranscodeStatsMetadata(bytestream,
+ reinterpret_cast<VideoTranscodeStatsMetadata *>(param));
+ break;
case QTI_VIDEO_TS_INFO:
err = decodeVideoTimestampInfo(bytestream, reinterpret_cast<VideoTimestampInfo *>(param));
break;
@@ -449,6 +472,10 @@ Error set(void *buffer, uint32_t type, void *param) {
err = encodeVideoHistogramMetadata(*reinterpret_cast<VideoHistogramMetadata *>(param),
&bytestream);
break;
+ case QTI_VIDEO_TRANSCODE_STATS:
+ err = encodeVideoTranscodeStatsMetadata(
+ *reinterpret_cast<VideoTranscodeStatsMetadata *>(param), &bytestream);
+ break;
case QTI_VIDEO_TS_INFO:
err = encodeVideoTimestampInfo(*reinterpret_cast<VideoTimestampInfo *>(param), &bytestream);
break;