diff options
author | Mahesh Kumar Sharma <quic_smahesh@quicinc.com> | 2022-05-20 11:49:17 -0700 |
---|---|---|
committer | Gerrit - the friendly Code Review server <code-review@localhost> | 2022-06-03 10:30:46 -0700 |
commit | 9cf3017b600c9fd71b3ce4a9a190509d42f08f45 (patch) | |
tree | 27e6cb7e5682d101ff45e5c5267faf0d320af7e2 | |
parent | 0cf818d5e8cf92c34df00924ce7e9d4772989d71 (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.cpp | 27 |
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; |