diff options
author | Ankit Goyal <layog@google.com> | 2023-10-09 20:28:19 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2023-10-09 20:28:19 +0000 |
commit | 78526db2a34178b6d95c44bf4467a55d14ff62db (patch) | |
tree | 5d29a725d4aedfb33562283c46057ce3abd560f4 | |
parent | f3398607064349c40998678d289ff2b79a06ed48 (diff) | |
parent | e4bb448a7b080f306010bbd54f843698128a75f2 (diff) | |
download | gchips-78526db2a34178b6d95c44bf4467a55d14ff62db.tar.gz |
Merge changes from topic "metadata-encode-decode" into main
* changes:
libvendorgraphicbuffer: Use mapper::get for pixel metadata
gralloc4: Use standard encode/decode
-rw-r--r-- | gralloc4/src/hidl_common/MapperMetadata.cpp | 7 | ||||
-rw-r--r-- | libvendorgraphicbuffer/gralloc4/vendor_graphicbuffer_meta.cpp | 49 |
2 files changed, 14 insertions, 42 deletions
diff --git a/gralloc4/src/hidl_common/MapperMetadata.cpp b/gralloc4/src/hidl_common/MapperMetadata.cpp index affcd4a..fdff90a 100644 --- a/gralloc4/src/hidl_common/MapperMetadata.cpp +++ b/gralloc4/src/hidl_common/MapperMetadata.cpp @@ -29,6 +29,7 @@ #include "mali_gralloc_formats.h" #include <pixel-gralloc/metadata.h> +#include <pixel-gralloc/utils.h> #include <vector> @@ -572,7 +573,7 @@ void get_metadata(const private_handle_t *handle, const IMapper::MetadataType &m else if (metadataType.name == ::pixel::graphics::kPixelMetadataTypeName) { switch (static_cast<::pixel::graphics::MetadataType>(metadataType.value)) { case ::pixel::graphics::MetadataType::VIDEO_HDR: - vec = encodePointer(get_video_hdr(handle)); + vec = ::pixel::graphics::utils::encode(get_video_hdr(handle)); break; case ::pixel::graphics::MetadataType::VIDEO_ROI: { @@ -580,7 +581,7 @@ void get_metadata(const private_handle_t *handle, const IMapper::MetadataType &m if (roi == nullptr) { err = android::BAD_VALUE; } else { - vec = encodePointer(roi); + vec = ::pixel::graphics::utils::encode(roi); } break; } @@ -590,7 +591,7 @@ void get_metadata(const private_handle_t *handle, const IMapper::MetadataType &m for (int i = 0; i < get_num_planes(handle); i++) { plane_fds[i] = handle->fds[handle->plane_info[i].fd_idx]; } - vec = ::pixel::graphics::util::encodeVector<int>(plane_fds); + vec = ::pixel::graphics::utils::encode(plane_fds); break; } default: diff --git a/libvendorgraphicbuffer/gralloc4/vendor_graphicbuffer_meta.cpp b/libvendorgraphicbuffer/gralloc4/vendor_graphicbuffer_meta.cpp index eb8d663..a39b4db 100644 --- a/libvendorgraphicbuffer/gralloc4/vendor_graphicbuffer_meta.cpp +++ b/libvendorgraphicbuffer/gralloc4/vendor_graphicbuffer_meta.cpp @@ -28,6 +28,7 @@ #include "exynos_format.h" #include <pixel-gralloc/metadata.h> +#include <pixel-gralloc/mapper.h> using namespace android; using namespace vendor::graphics; @@ -244,30 +245,15 @@ void* VendorGraphicBufferMeta::get_video_metadata(buffer_handle_t hnd) return nullptr; } - MapperMetadataType metadata_type{ - .name = ::pixel::graphics::kPixelMetadataTypeName, - .value = static_cast<int64_t>(::pixel::graphics::MetadataType::VIDEO_HDR), - }; + using namespace ::pixel::graphics; + auto out_oe = mapper::get<MetadataType::VIDEO_HDR>(handle); - Error error = Error::NONE; - void* output = nullptr; - - get_mapper()->get(handle, metadata_type, - [&](const auto& tmpError, const android::hardware::hidl_vec<uint8_t>& tmpVec) { - error = tmpError; - if (error != Error::NONE) { - return; - } - output = decodePointer(tmpVec); - }); - - - if (error != Error::NONE) { + if (!out_oe.has_value()) { ALOGE("Failed to get video HDR metadata"); return nullptr; } - return output; + return out_oe.value(); } void* VendorGraphicBufferMeta::get_video_metadata_roiinfo(buffer_handle_t hnd) @@ -277,30 +263,15 @@ void* VendorGraphicBufferMeta::get_video_metadata_roiinfo(buffer_handle_t hnd) return nullptr; } - MapperMetadataType metadata_type{ - .name = ::pixel::graphics::kPixelMetadataTypeName, - .value = static_cast<int64_t>(::pixel::graphics::MetadataType::VIDEO_ROI), - }; + using namespace ::pixel::graphics; + auto out_oe = mapper::get<MetadataType::VIDEO_ROI>(handle); - Error error = Error::NONE; - void* output = nullptr; - - get_mapper()->get(handle, metadata_type, - [&](const auto& tmpError, const android::hardware::hidl_vec<uint8_t>& tmpVec) { - error = tmpError; - if (error != Error::NONE) { - return; - } - output = decodePointer(tmpVec); - }); - - - if (error != Error::NONE) { - ALOGE("Failed to get video HDR metadata"); + if (!out_oe.has_value()) { + ALOGE("Failed to get video ROI metadata"); return nullptr; } - return output; + return out_oe.value(); } uint32_t VendorGraphicBufferMeta::get_format_fourcc(buffer_handle_t hnd) { |