gralloc: Add support for QtiMapperExtension version 1.1
Add new API getSurfaceMetadata_V1() which will take a valid pointer
to surface metadata and fill it with metadata values.
CRs-Fixed: 2505696
Change-Id: I82882a7cb36a5bd18417fd43a19976e078c77ca9
diff --git a/gralloc/Android.mk b/gralloc/Android.mk
index 6603f43..9ad44e5 100644
--- a/gralloc/Android.mk
+++ b/gralloc/Android.mk
@@ -71,7 +71,8 @@
vendor.qti.hardware.display.mapper@2.0 \
vendor.qti.hardware.display.mapperextensions@1.0 \
android.hardware.graphics.mapper@2.0 \
- android.hardware.graphics.mapper@2.1
+ android.hardware.graphics.mapper@2.1 \
+ vendor.qti.hardware.display.mapperextensions@1.1
LOCAL_CFLAGS := $(common_flags) -DLOG_TAG=\"qdgralloc\" -Wno-sign-conversion
LOCAL_ADDITIONAL_DEPENDENCIES := $(common_deps)
LOCAL_SRC_FILES := QtiMapper.cpp QtiMapperExtensions.cpp
diff --git a/gralloc/QtiMapper.h b/gralloc/QtiMapper.h
index eca74f0..7302e5e 100644
--- a/gralloc/QtiMapper.h
+++ b/gralloc/QtiMapper.h
@@ -59,8 +59,8 @@
using ::android::hidl::base::V1_0::IBase;
using gralloc::BufferManager;
using ::vendor::qti::hardware::display::mapper::V2_0::IQtiMapper;
-using ::vendor::qti::hardware::display::mapperextensions::V1_0::IQtiMapperExtensions;
-using ::vendor::qti::hardware::display::mapperextensions::V1_0::implementation::QtiMapperExtensions;
+using ::vendor::qti::hardware::display::mapperextensions::V1_1::IQtiMapperExtensions;
+using ::vendor::qti::hardware::display::mapperextensions::V1_1::implementation::QtiMapperExtensions;
using IMapper_2_1 = android::hardware::graphics::mapper::V2_1::IMapper;
using BufferDescriptorInfo_2_0 =
@@ -92,7 +92,7 @@
createDescriptor_2_1_cb _hidl_cb) override;
Return<void> getMapperExtensions(getMapperExtensions_cb hidl_cb);
- sp<mapperextensions::V1_0::IQtiMapperExtensions> extensions_ = nullptr;
+ sp<mapperextensions::V1_1::IQtiMapperExtensions> extensions_ = nullptr;
private:
BufferManager *buf_mgr_ = nullptr;
diff --git a/gralloc/QtiMapperExtensions.cpp b/gralloc/QtiMapperExtensions.cpp
index afe3efa..56b747b 100644
--- a/gralloc/QtiMapperExtensions.cpp
+++ b/gralloc/QtiMapperExtensions.cpp
@@ -40,7 +40,7 @@
namespace hardware {
namespace display {
namespace mapperextensions {
-namespace V1_0 {
+namespace V1_1 {
namespace implementation {
using gralloc::BufferInfo;
@@ -351,8 +351,23 @@
return Void();
}
+Return<Error> QtiMapperExtensions::getSurfaceMetadata_V1(void *buffer, void *metadata) {
+ auto err = Error::BAD_BUFFER;
+ auto hnd = static_cast<private_handle_t *>(buffer);
+ if (metadata != nullptr && buffer != nullptr && private_handle_t::validate(hnd) == 0) {
+ if (getMetaData(hnd, GET_GRAPHICS_METADATA, metadata) == 0) {
+ err = Error::NONE;
+ } else {
+ err = Error::UNSUPPORTED;
+ }
+ } else {
+ ALOGE("%s: buffer pointer: %p, metadata pointer: %p ", __FUNCTION__, buffer, metadata);
+ }
+ return err;
+}
+
} // namespace implementation
-} // namespace V1_0
+} // namespace V1_1
} // namespace mapperextensions
} // namespace display
} // namespace hardware
diff --git a/gralloc/QtiMapperExtensions.h b/gralloc/QtiMapperExtensions.h
index e266e66..b333312 100644
--- a/gralloc/QtiMapperExtensions.h
+++ b/gralloc/QtiMapperExtensions.h
@@ -32,7 +32,7 @@
#include <hidl/MQDescriptor.h>
#include <hidl/Status.h>
-#include <vendor/qti/hardware/display/mapperextensions/1.0/IQtiMapperExtensions.h>
+#include <vendor/qti/hardware/display/mapperextensions/1.1/IQtiMapperExtensions.h>
#include "gr_buf_mgr.h"
namespace vendor {
@@ -40,7 +40,7 @@
namespace hardware {
namespace display {
namespace mapperextensions {
-namespace V1_0 {
+namespace V1_1 {
namespace implementation {
using ::android::sp;
@@ -56,7 +56,10 @@
using ::android::hidl::base::V1_0::DebugInfo;
using ::android::hidl::base::V1_0::IBase;
using gralloc::BufferManager;
-using ::vendor::qti::hardware::display::mapperextensions::V1_0::IQtiMapperExtensions;
+using ::vendor::qti::hardware::display::mapperextensions::V1_1::IQtiMapperExtensions;
+using ::vendor::qti::hardware::display::mapperextensions::V1_0::Error;
+using ::vendor::qti::hardware::display::mapperextensions::V1_0::PlaneLayout;
+using ::vendor::qti::hardware::display::mapperextensions::V1_0::YCbCrLayout;
class QtiMapperExtensions : public IQtiMapperExtensions {
public:
@@ -88,10 +91,11 @@
Return<void> getSurfaceMetadata(void *buffer, getSurfaceMetadata_cb _hidl_cb) override;
Return<void> getFormatLayout(int32_t format, uint64_t usage, int32_t flags, int32_t width,
int32_t height, getFormatLayout_cb hidl_cb) override;
+ Return<Error> getSurfaceMetadata_V1(void *buffer, void *metadata) override;
};
} // namespace implementation
-} // namespace V1_0
+} // namespace V1_1
} // namespace mapperextensions
} // namespace display
} // namespace hardware