summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWen Chang Liu <wenchangliu@google.com>2022-03-16 02:57:01 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2022-03-16 02:57:01 +0000
commit371abe84cf7655895320b5801c0a8f26924841f2 (patch)
tree2c1ab4b64e08a05ba071dba423ea06bf9e4a29ec
parent46ffccf47fa814b6fa002d21be9869a662af19b1 (diff)
parente2de2c1d182acc226ed9a77536baeafcaa86d010 (diff)
downloadgchips-371abe84cf7655895320b5801c0a8f26924841f2.tar.gz
Merge changes I358622a2,I11a2d3d8 into tm-dev
* changes: libvendorgraphicbuffer: fix address offset of ROI metadata include: update VendorVideoAPI for ROI info support
-rw-r--r--include/VendorVideoAPI.h11
-rw-r--r--libvendorgraphicbuffer/gralloc4/vendor_graphicbuffer_meta.cpp4
2 files changed, 14 insertions, 1 deletions
diff --git a/include/VendorVideoAPI.h b/include/VendorVideoAPI.h
index 7dc2a09..89f88ad 100644
--- a/include/VendorVideoAPI.h
+++ b/include/VendorVideoAPI.h
@@ -42,6 +42,7 @@ typedef enum _ExynosVideoInfoType {
VIDEO_INFO_TYPE_YSUM_DATA = 0x1 << 3,
VIDEO_INFO_TYPE_HDR_DYNAMIC = 0x1 << 4,
VIDEO_INFO_TYPE_CHECK_PIXEL_FORMAT = 0x1 << 5,
+ VIDEO_INFO_TYPE_ROI_INFO = 0x1 << 7,
VIDEO_INFO_TYPE_CROP_INFO = 0x1 << 8,
} ExynosVideoInfoType;
@@ -118,12 +119,22 @@ typedef struct _ExynosVideoCrop {
int height;
} ExynosVideoCrop;
+#define MAX_ROIINFO_SIZE 32400
+typedef struct _ExynosVideoROIData {
+ int nUpperQpOffset;
+ int nLowerQpOffset;
+ int bUseRoiInfo;
+ int nRoiMBInfoSize;
+ char pRoiMBInfo[MAX_ROIINFO_SIZE];
+} ExynosVideoROIData;
+
typedef struct _ExynosVideoDecData {
int nInterlacedType;
} ExynosVideoDecData;
typedef struct _ExynosVideoEncData {
ExynosVideoYSUMData sYsumData;
+ unsigned long long pRoiData; /* for fixing byte alignment on 64x32 problem */
} ExynosVideoEncData;
typedef struct _ExynosVideoMeta {
diff --git a/libvendorgraphicbuffer/gralloc4/vendor_graphicbuffer_meta.cpp b/libvendorgraphicbuffer/gralloc4/vendor_graphicbuffer_meta.cpp
index 9034019..49ce035 100644
--- a/libvendorgraphicbuffer/gralloc4/vendor_graphicbuffer_meta.cpp
+++ b/libvendorgraphicbuffer/gralloc4/vendor_graphicbuffer_meta.cpp
@@ -24,6 +24,7 @@
#include "mali_gralloc_buffer.h"
#include "mali_gralloc_formats.h"
#include "hidl_common/SharedMetadata.h"
+#include "hidl_common/SharedMetadata_struct.h"
#include "exynos_format.h"
using namespace android;
@@ -253,7 +254,8 @@ void* VendorGraphicBufferMeta::get_video_metadata_roiinfo(buffer_handle_t hnd)
return nullptr;
if (gralloc_hnd->get_usage() & VendorGraphicBufferUsage::ROIINFO)
- return static_cast<char*>(gralloc_hnd->attr_base) + SZ_4k * 2;
+ return static_cast<char*>(gralloc_hnd->attr_base) +
+ sizeof(shared_metadata) + gralloc_hnd->reserved_region_size;
return nullptr;
}