Merge changes from topic "cameraserver-remove-libmediandk"

* changes:
  camerserver: Remove dependency on libmediandk.
  libmediautils: move AImageReader_getHGBPFromHandle from libmediandk.
gugelfrei
Jayant Chowdhary 6 years ago committed by Android (Google) Code Review
commit aee8f2951e

@ -161,6 +161,7 @@ cc_test {
shared_libs: [
"libbinder",
"libmediandk",
"libmediautils",
"libnativewindow",
"libgui",
"libutils",

@ -647,31 +647,6 @@ static native_handle_t *convertHalTokenToNativeHandle(
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,

@ -169,8 +169,4 @@ struct AImageReader : public RefBase {
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

@ -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;

@ -0,0 +1,52 @@
/*
* Copyright (C) 2018 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include <cmath>
#include <mediautils/AImageReaderUtils.h>
#include <hidl/HybridInterface.h>
namespace android {
namespace aimg {
using hardware::hidl_vec;
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;
}
sp<HGraphicBufferProducer> AImageReader_getHGBPFromHandle(
const native_handle_t *handle) {
if (handle == nullptr) {
return nullptr;
}
if (handle->numFds != 0 ||
handle->numInts < std::ceil(sizeof(size_t) / sizeof(int))) {
return nullptr;
}
return convertNativeHandleToHGBP(handle);
}
} //namespace aimg
} //namespace android

@ -16,6 +16,7 @@ cc_library {
name: "libmediautils",
srcs: [
"AImageReaderUtils.cpp",
"BatteryNotifier.cpp",
"ISchedulingPolicyService.cpp",
"MemoryLeakTrackUtil.cpp",
@ -30,6 +31,9 @@ cc_library {
"liblog",
"libutils",
"libmemunreachable",
"libhidlbase",
"android.hardware.graphics.bufferqueue@1.0",
"android.hidl.token@1.0-utils",
],
logtags: ["EventLogTags.logtags"],

@ -0,0 +1,35 @@
/*
* Copyright (C) 2018 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef AIMAGE_READER_UTILS_H
#define AIMAGE_READER_UTILS_H
#include <cutils/native_handle.h>
#include <android/hardware/graphics/bufferqueue/1.0/IGraphicBufferProducer.h>
namespace android {
namespace aimg {
using HGraphicBufferProducer = hardware::graphics::bufferqueue::V1_0::IGraphicBufferProducer;
// 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);
}// namespace aimg
}// namespace android
#endif //AIMAGE_READER_UTILS_H

@ -72,7 +72,6 @@ cc_library_shared {
"libbinder",
"libcutils",
"libmedia",
"libmediandk",
"libmediautils",
"libcamera_client",
"libcamera_metadata",

@ -16,7 +16,8 @@
#include <hidl/Convert.h>
#include <gui/bufferqueue/1.0/H2BGraphicBufferProducer.h>
#include <NdkImageReaderPriv.h>
#include <cutils/native_handle.h>
#include <mediautils/AImageReaderUtils.h>
namespace android {
namespace hardware {
@ -25,6 +26,7 @@ namespace utils {
namespace conversion {
using hardware::graphics::bufferqueue::V1_0::utils::H2BGraphicBufferProducer;
using aimg::AImageReader_getHGBPFromHandle;
// Note: existing data in dst will be gone. Caller still owns the memory of src
void convertToHidl(const camera_metadata_t *src, HCameraMetadata* dst) {

Loading…
Cancel
Save