diff options
author | Wen Chang Liu <wenchangliu@google.com> | 2022-03-16 02:57:01 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2022-03-16 02:57:01 +0000 |
commit | 371abe84cf7655895320b5801c0a8f26924841f2 (patch) | |
tree | 2c1ab4b64e08a05ba071dba423ea06bf9e4a29ec | |
parent | 46ffccf47fa814b6fa002d21be9869a662af19b1 (diff) | |
parent | e2de2c1d182acc226ed9a77536baeafcaa86d010 (diff) | |
download | gchips-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.h | 11 | ||||
-rw-r--r-- | libvendorgraphicbuffer/gralloc4/vendor_graphicbuffer_meta.cpp | 4 |
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; } |