libmediautils: move AImageReader_getHGBPFromHandle from libmediandk.
This allows us to remove camerserver's dependency on libmediandk,
thereby reducing its vss increase (brought about due to many of
libmediandk's dependencies, which cameraserver does not need)
Bug: 119582723
Test: mm -j64
Test: showmap <pid of cameraserver> vss before change: 50628
Test: showmap <pid of cameraserver> vss after change: 31256
Test: AImageReaderWindowHandleTest
Change-Id: I8dec6430adda538cb293cdd0d087b9ae1767b900
Signed-off-by: Jayant Chowdhary <jchowdhary@google.com>
diff --git a/media/ndk/Android.bp b/media/ndk/Android.bp
index b21a1bb..541ba3e 100644
--- a/media/ndk/Android.bp
+++ b/media/ndk/Android.bp
@@ -161,6 +161,7 @@
shared_libs: [
"libbinder",
"libmediandk",
+ "libmediautils",
"libnativewindow",
"libgui",
"libutils",
diff --git a/media/ndk/NdkImageReader.cpp b/media/ndk/NdkImageReader.cpp
index 1adecb9..b86ab42 100644
--- a/media/ndk/NdkImageReader.cpp
+++ b/media/ndk/NdkImageReader.cpp
@@ -647,31 +647,6 @@
return nh;
}
-static sp<HGraphicBufferProducer> convertNativeHandleToHGBP (
- const native_handle_t *handle) {
- // Read the size of the halToken vec<uint8_t>
- hidl_vec<uint8_t> halToken;
- halToken.setToExternal(
- reinterpret_cast<uint8_t *>(const_cast<int *>(&(handle->data[1]))),
- handle->data[0]);
- sp<HGraphicBufferProducer> hgbp =
- HGraphicBufferProducer::castFrom(retrieveHalInterface(halToken));
- return hgbp;
-}
-
-EXPORT
-sp<HGraphicBufferProducer> AImageReader_getHGBPFromHandle(
- const native_handle_t *handle) {
- if (handle == nullptr) {
- return nullptr;
- }
- if (handle->numFds != 0 ||
- handle->numInts < ceil(sizeof(size_t) / sizeof(int))) {
- return nullptr;
- }
- return convertNativeHandleToHGBP(handle);
-}
-
EXPORT
media_status_t AImageReader_new(
int32_t width, int32_t height, int32_t format, int32_t maxImages,
diff --git a/media/ndk/NdkImageReaderPriv.h b/media/ndk/NdkImageReaderPriv.h
index d9ddfd9..78152d2 100644
--- a/media/ndk/NdkImageReaderPriv.h
+++ b/media/ndk/NdkImageReaderPriv.h
@@ -169,8 +169,4 @@
Mutex mLock;
};
-// Retrieves HGraphicBufferProducer corresponding to the native_handle_t
-// provided (this native handle MUST have been obtained by AImageReader_getWindowNativeHandle()).
-sp<HGraphicBufferProducer> AImageReader_getHGBPFromHandle(const native_handle_t *handle);
-
#endif // _NDK_IMAGE_READER_PRIV_H
diff --git a/media/ndk/tests/AImageReaderWindowHandleTest.cpp b/media/ndk/tests/AImageReaderWindowHandleTest.cpp
index 3b5e358..ef0ff67 100644
--- a/media/ndk/tests/AImageReaderWindowHandleTest.cpp
+++ b/media/ndk/tests/AImageReaderWindowHandleTest.cpp
@@ -17,6 +17,7 @@
#include <gtest/gtest.h>
#include <media/NdkImageReader.h>
#include <media/NdkImage.h>
+#include <mediautils/AImageReaderUtils.h>
#include <gui/IGraphicBufferProducer.h>
#include <gui/bufferqueue/1.0/H2BGraphicBufferProducer.h>
#include <NdkImageReaderPriv.h>
@@ -26,6 +27,8 @@
namespace android {
using hardware::graphics::bufferqueue::V1_0::utils::H2BGraphicBufferProducer;
+using aimg::AImageReader_getHGBPFromHandle;
+
typedef IGraphicBufferProducer::QueueBufferInput QueueBufferInput;
typedef IGraphicBufferProducer::QueueBufferOutput QueueBufferOutput;