summaryrefslogtreecommitdiff
path: root/camera
diff options
context:
space:
mode:
Diffstat (limited to 'camera')
-rw-r--r--camera/common/1.0/default/Android.bp1
-rw-r--r--camera/common/1.0/default/CameraModule.cpp22
-rw-r--r--camera/common/1.0/default/include/CameraModule.h1
-rw-r--r--camera/device/1.0/default/Android.bp6
-rw-r--r--camera/device/1.0/default/CameraDevice.cpp91
-rw-r--r--camera/device/1.0/default/CameraDevice_1_0.h3
-rw-r--r--camera/device/3.2/default/Android.bp1
-rw-r--r--camera/device/3.2/default/CameraDeviceSession.cpp4
-rw-r--r--camera/device/3.2/default/convert.cpp19
-rw-r--r--camera/device/3.3/default/convert.cpp16
-rw-r--r--camera/device/3.4/default/Android.bp2
-rw-r--r--camera/device/3.5/default/Android.bp2
-rw-r--r--camera/device/3.6/default/Android.bp1
-rw-r--r--camera/provider/2.4/default/Android.bp23
-rw-r--r--camera/provider/2.4/default/LegacyCameraProviderImpl_2_4.cpp53
-rw-r--r--camera/provider/2.4/default/LegacyCameraProviderImpl_2_4.h2
-rw-r--r--camera/provider/2.4/default/android.hardware.camera.provider@2.4-service.rc2
-rw-r--r--camera/provider/2.4/default/android.hardware.camera.provider@2.4-service_64.rc2
-rw-r--r--camera/provider/2.5/default/Android.bp16
19 files changed, 212 insertions, 55 deletions
diff --git a/camera/common/1.0/default/Android.bp b/camera/common/1.0/default/Android.bp
index 4a5ca83803..0927807b21 100644
--- a/camera/common/1.0/default/Android.bp
+++ b/camera/common/1.0/default/Android.bp
@@ -36,4 +36,5 @@ cc_library_static {
],
include_dirs: ["system/media/private/camera/include"],
export_include_dirs: ["include"],
+ sdclang: false,
}
diff --git a/camera/common/1.0/default/CameraModule.cpp b/camera/common/1.0/default/CameraModule.cpp
index 16fb85cc64..188b4bed27 100644
--- a/camera/common/1.0/default/CameraModule.cpp
+++ b/camera/common/1.0/default/CameraModule.cpp
@@ -267,6 +267,22 @@ int CameraModule::init() {
return res;
}
+int CameraModule::getCameraDeviceVersion(int cameraId, uint32_t* version) {
+ ATRACE_CALL();
+ int ret;
+ if (getModuleApiVersion() >= CAMERA_MODULE_API_VERSION_2_5 &&
+ mModule->get_camera_device_version != NULL) {
+ ret = mModule->get_camera_device_version(cameraId, version);
+ } else {
+ struct camera_info info;
+ ret = getCameraInfo(cameraId, &info);
+ if (ret == OK) {
+ *version = info.device_version;
+ }
+ }
+ return ret;
+}
+
int CameraModule::getCameraInfo(int cameraId, struct camera_info *info) {
ATRACE_CALL();
Mutex::Autolock lock(mCameraInfoLock);
@@ -367,11 +383,9 @@ int CameraModule::getPhysicalCameraInfo(int physicalCameraId, camera_metadata_t
int CameraModule::getDeviceVersion(int cameraId) {
ssize_t index = mDeviceVersionMap.indexOfKey(cameraId);
if (index == NAME_NOT_FOUND) {
- int deviceVersion;
+ uint32_t deviceVersion;
if (getModuleApiVersion() >= CAMERA_MODULE_API_VERSION_2_0) {
- struct camera_info info;
- getCameraInfo(cameraId, &info);
- deviceVersion = info.device_version;
+ getCameraDeviceVersion(cameraId, &deviceVersion);
} else {
deviceVersion = CAMERA_DEVICE_API_VERSION_1_0;
}
diff --git a/camera/common/1.0/default/include/CameraModule.h b/camera/common/1.0/default/include/CameraModule.h
index c89e934655..8195835406 100644
--- a/camera/common/1.0/default/include/CameraModule.h
+++ b/camera/common/1.0/default/include/CameraModule.h
@@ -49,6 +49,7 @@ public:
// Returns OK on success, NO_INIT on failure
int init();
+ int getCameraDeviceVersion(int cameraId, uint32_t* version);
int getCameraInfo(int cameraId, struct camera_info *info);
int getDeviceVersion(int cameraId);
int getNumberOfCameras(void);
diff --git a/camera/device/1.0/default/Android.bp b/camera/device/1.0/default/Android.bp
index 9ff6480d4b..f875d77f68 100644
--- a/camera/device/1.0/default/Android.bp
+++ b/camera/device/1.0/default/Android.bp
@@ -19,6 +19,7 @@ cc_library_shared {
"libhidlmemory",
"libutils",
"android.hardware.camera.device@1.0",
+ "vendor.qti.hardware.camera.device@1.0",
"android.hardware.camera.common@1.0",
"android.hardware.graphics.allocator@2.0",
"android.hardware.graphics.mapper@2.0",
@@ -40,4 +41,9 @@ cc_library_shared {
"media_plugin_headers",
],
export_include_dirs: ["."],
+ sdclang: false, // See b/163842697
+ // Since this platform module has been forked to depend on a vendor
+ // proprietary library, we exclude it from the vendor snapshot so that it
+ // will be built from source as part of the vendor build.
+ exclude_from_vendor_snapshot: true,
}
diff --git a/camera/device/1.0/default/CameraDevice.cpp b/camera/device/1.0/default/CameraDevice.cpp
index 80733d1908..622660685f 100644
--- a/camera/device/1.0/default/CameraDevice.cpp
+++ b/camera/device/1.0/default/CameraDevice.cpp
@@ -433,30 +433,68 @@ void CameraDevice::sDataCb(int32_t msg_type, const camera_memory_t *data, unsign
index, mem->mNumBufs);
return;
}
- if (object->mDeviceCallback != nullptr) {
- CameraFrameMetadata hidlMetadata;
- if (metadata) {
- hidlMetadata.faces.resize(metadata->number_of_faces);
- for (size_t i = 0; i < hidlMetadata.faces.size(); i++) {
- hidlMetadata.faces[i].score = metadata->faces[i].score;
- hidlMetadata.faces[i].id = metadata->faces[i].id;
- for (int k = 0; k < 4; k++) {
- hidlMetadata.faces[i].rect[k] = metadata->faces[i].rect[k];
- }
- for (int k = 0; k < 2; k++) {
- hidlMetadata.faces[i].leftEye[k] = metadata->faces[i].left_eye[k];
- }
- for (int k = 0; k < 2; k++) {
- hidlMetadata.faces[i].rightEye[k] = metadata->faces[i].right_eye[k];
- }
- for (int k = 0; k < 2; k++) {
- hidlMetadata.faces[i].mouth[k] = metadata->faces[i].mouth[k];
- }
- }
- }
- CameraHeapMemory* mem = static_cast<CameraHeapMemory *>(data->handle);
- object->mDeviceCallback->dataCallback(
- (DataCallbackMsg) msg_type, mem->handle.mId, index, hidlMetadata);
+ if(object->mQDeviceCallback != nullptr) {
+ vendor::qti::hardware::camera::device::V1_0::QCameraFrameMetadata hidlMetadata;
+ if (metadata) {
+ hidlMetadata.faces.resize(metadata->number_of_faces);
+ for (size_t i = 0; i < hidlMetadata.faces.size(); i++) {
+ hidlMetadata.faces[i].score = metadata->faces[i].score;
+ hidlMetadata.faces[i].id = metadata->faces[i].id;
+ for (int k = 0; k < 4; k++) {
+ hidlMetadata.faces[i].rect[k] = metadata->faces[i].rect[k];
+ }
+ for (int k = 0; k < 2; k++) {
+ hidlMetadata.faces[i].leftEye[k] = metadata->faces[i].left_eye[k];
+ }
+ for (int k = 0; k < 2; k++) {
+ hidlMetadata.faces[i].rightEye[k] = metadata->faces[i].right_eye[k];
+ }
+ for (int k = 0; k < 2; k++) {
+ hidlMetadata.faces[i].mouth[k] = metadata->faces[i].mouth[k];
+ }
+ hidlMetadata.faces[i].smile_degree = metadata->faces[i].smile_degree;
+ hidlMetadata.faces[i].smile_score = metadata->faces[i].smile_score;
+ hidlMetadata.faces[i].blink_detected = metadata->faces[i].blink_detected;
+ hidlMetadata.faces[i].face_recognised = metadata->faces[i].face_recognised;
+ hidlMetadata.faces[i].gaze_angle = metadata->faces[i].gaze_angle;
+ hidlMetadata.faces[i].updown_dir = metadata->faces[i].updown_dir;
+ hidlMetadata.faces[i].leftright_dir = metadata->faces[i].leftright_dir;
+ hidlMetadata.faces[i].roll_dir = metadata->faces[i].roll_dir;
+ hidlMetadata.faces[i].left_right_gaze = metadata->faces[i].left_right_gaze;
+ hidlMetadata.faces[i].top_bottom_gaze = metadata->faces[i].top_bottom_gaze;
+ hidlMetadata.faces[i].leye_blink = metadata->faces[i].leye_blink;
+ hidlMetadata.faces[i].reye_blink = metadata->faces[i].reye_blink;
+ }
+ }
+ CameraHeapMemory* mem = static_cast<CameraHeapMemory *>(data->handle);
+ object->mQDeviceCallback->QDataCallback(
+ (DataCallbackMsg) msg_type, mem->handle.mId, index, hidlMetadata);
+ } else {
+ if (object->mDeviceCallback != nullptr) {
+ CameraFrameMetadata hidlMetadata;
+ if (metadata) {
+ hidlMetadata.faces.resize(metadata->number_of_faces);
+ for (size_t i = 0; i < hidlMetadata.faces.size(); i++) {
+ hidlMetadata.faces[i].score = metadata->faces[i].score;
+ hidlMetadata.faces[i].id = metadata->faces[i].id;
+ for (int k = 0; k < 4; k++) {
+ hidlMetadata.faces[i].rect[k] = metadata->faces[i].rect[k];
+ }
+ for (int k = 0; k < 2; k++) {
+ hidlMetadata.faces[i].leftEye[k] = metadata->faces[i].left_eye[k];
+ }
+ for (int k = 0; k < 2; k++) {
+ hidlMetadata.faces[i].rightEye[k] = metadata->faces[i].right_eye[k];
+ }
+ for (int k = 0; k < 2; k++) {
+ hidlMetadata.faces[i].mouth[k] = metadata->faces[i].mouth[k];
+ }
+ }
+ }
+ CameraHeapMemory* mem = static_cast<CameraHeapMemory *>(data->handle);
+ object->mDeviceCallback->dataCallback(
+ (DataCallbackMsg) msg_type, mem->handle.mId, index, hidlMetadata);
+ }
}
}
@@ -672,6 +710,11 @@ Return<Status> CameraDevice::open(const sp<ICameraDeviceCallback>& callback) {
initHalPreviewWindow();
mDeviceCallback = callback;
+ mQDeviceCallback =
+ vendor::qti::hardware::camera::device::V1_0::IQCameraDeviceCallback::castFrom(callback);
+ if(mQDeviceCallback == nullptr) {
+ ALOGI("could not cast ICameraDeviceCallback to IQCameraDeviceCallback");
+ }
if (mDevice->ops->set_callbacks) {
mDevice->ops->set_callbacks(mDevice,
diff --git a/camera/device/1.0/default/CameraDevice_1_0.h b/camera/device/1.0/default/CameraDevice_1_0.h
index 2c980f0a8f..e5a194edc5 100644
--- a/camera/device/1.0/default/CameraDevice_1_0.h
+++ b/camera/device/1.0/default/CameraDevice_1_0.h
@@ -24,6 +24,7 @@
#include "HandleImporter.h"
#include <android/hardware/camera/device/1.0/ICameraDevice.h>
+#include <vendor/qti/hardware/camera/device/1.0/IQCameraDeviceCallback.h>
#include <android/hidl/allocator/1.0/IAllocator.h>
#include <android/hidl/memory/1.0/IMemory.h>
#include <hidl/MQDescriptor.h>
@@ -44,6 +45,7 @@ using ::android::hardware::camera::common::V1_0::helper::HandleImporter;
using ::android::hardware::camera::device::V1_0::CameraInfo;
using ::android::hardware::camera::device::V1_0::CommandType;
using ::android::hardware::camera::device::V1_0::ICameraDevice;
+using ::vendor::qti::hardware::camera::device::V1_0::IQCameraDeviceCallback;
using ::android::hardware::camera::device::V1_0::ICameraDeviceCallback;
using ::android::hardware::camera::device::V1_0::ICameraDevicePreviewCallback;
using ::android::hardware::camera::device::V1_0::MemoryId;
@@ -164,6 +166,7 @@ private:
const SortedVector<std::pair<std::string, std::string>>& mCameraDeviceNames;
sp<ICameraDeviceCallback> mDeviceCallback = nullptr;
+ sp<IQCameraDeviceCallback> mQDeviceCallback = nullptr;
mutable Mutex mMemoryMapLock; // gating access to mMemoryMap
// must not hold mLock after this lock is acquired
diff --git a/camera/device/3.2/default/Android.bp b/camera/device/3.2/default/Android.bp
index a1962915ff..d7ad6ad740 100644
--- a/camera/device/3.2/default/Android.bp
+++ b/camera/device/3.2/default/Android.bp
@@ -38,4 +38,5 @@ cc_library_shared {
export_shared_lib_headers: [
"libfmq",
],
+ sdclang: false, // See b/163842697
}
diff --git a/camera/device/3.2/default/CameraDeviceSession.cpp b/camera/device/3.2/default/CameraDeviceSession.cpp
index 769991c5fa..896c35843a 100644
--- a/camera/device/3.2/default/CameraDeviceSession.cpp
+++ b/camera/device/3.2/default/CameraDeviceSession.cpp
@@ -926,12 +926,12 @@ bool CameraDeviceSession::preProcessConfigurationLocked(
mStreamMap[id].data_space);
mCirculatingBuffers.emplace(stream.mId, CirculatingBuffers{});
} else {
- // width/height/format must not change, but usage/rotation might need to change
+ // width/height must not change, but usage/rotation might need to change
+ // format might change and get updated with overrideFormat
if (mStreamMap[id].stream_type !=
(int) requestedConfiguration.streams[i].streamType ||
mStreamMap[id].width != requestedConfiguration.streams[i].width ||
mStreamMap[id].height != requestedConfiguration.streams[i].height ||
- mStreamMap[id].format != (int) requestedConfiguration.streams[i].format ||
mStreamMap[id].data_space !=
mapToLegacyDataspace( static_cast<android_dataspace_t> (
requestedConfiguration.streams[i].dataSpace))) {
diff --git a/camera/device/3.2/default/convert.cpp b/camera/device/3.2/default/convert.cpp
index 06ad7e963c..628b7af912 100644
--- a/camera/device/3.2/default/convert.cpp
+++ b/camera/device/3.2/default/convert.cpp
@@ -66,6 +66,8 @@ void convertFromHidl(const Stream &src, Camera3Stream* dst) {
dst->data_space = (android_dataspace_t) src.dataSpace;
dst->rotation = (int) src.rotation;
dst->usage = (uint32_t) src.usage;
+ dst->reserved[0] = NULL;
+ dst->reserved[1] = NULL;
// Fields to be filled by HAL (max_buffers, priv) are initialized to 0
dst->max_buffers = 0;
dst->priv = 0;
@@ -88,6 +90,23 @@ void convertToHidl(const Camera3Stream* src, HalStream* dst) {
ALOGW("%s: Stream type %d is not currently supported!",
__FUNCTION__, src->stream_type);
}
+
+ HalStream* halStream = NULL;
+ if (src->reserved[0] != NULL) {
+ halStream = (HalStream*)(src->reserved[0]);
+ } else if (src->reserved[1] != NULL) {
+ halStream = (HalStream*)(src->reserved[1]);
+ }
+
+ // Check if overrideFormat is set and honor it
+ if (halStream != NULL) {
+ dst->overrideFormat = (PixelFormat) halStream->overrideFormat;
+ if (src->stream_type == CAMERA3_STREAM_OUTPUT) {
+ dst->producerUsage = (BufferUsageFlags)halStream->producerUsage;
+ } else if (src->stream_type == CAMERA3_STREAM_INPUT) {
+ dst->consumerUsage = (BufferUsageFlags)halStream->consumerUsage;
+ }
+ }
}
void convertToHidl(const camera3_stream_configuration_t& src, HalStreamConfiguration* dst) {
diff --git a/camera/device/3.3/default/convert.cpp b/camera/device/3.3/default/convert.cpp
index dae190b03c..ac17d837d7 100644
--- a/camera/device/3.3/default/convert.cpp
+++ b/camera/device/3.3/default/convert.cpp
@@ -47,6 +47,22 @@ void convertToHidl(const Camera3Stream* src, HalStream* dst) {
ALOGW("%s: Stream type %d is not currently supported!",
__FUNCTION__, src->stream_type);
}
+
+ HalStream* halStream = NULL;
+ if (src->reserved[0] != NULL) {
+ halStream = (HalStream*)(src->reserved[0]);
+ } else if (src->reserved[1] != NULL) {
+ halStream = (HalStream*)(src->reserved[1]);
+ }
+
+ if (halStream != NULL) {
+ dst->v3_2.overrideFormat = (PixelFormat) halStream->v3_2.overrideFormat;
+ if (src->stream_type == CAMERA3_STREAM_OUTPUT) {
+ dst->v3_2.producerUsage = (BufferUsageFlags)halStream->v3_2.producerUsage;
+ } else if (src->stream_type == CAMERA3_STREAM_INPUT) {
+ dst->v3_2.consumerUsage = (BufferUsageFlags)halStream->v3_2.consumerUsage;
+ }
+ }
}
void convertToHidl(const camera3_stream_configuration_t& src, HalStreamConfiguration* dst) {
diff --git a/camera/device/3.4/default/Android.bp b/camera/device/3.4/default/Android.bp
index 9f0c77739a..17bcdbb6d4 100644
--- a/camera/device/3.4/default/Android.bp
+++ b/camera/device/3.4/default/Android.bp
@@ -71,6 +71,7 @@ cc_library_shared {
export_shared_lib_headers: [
"libfmq",
],
+ sdclang: false, // See b/163842697
}
cc_library_shared {
@@ -114,4 +115,5 @@ cc_library_shared {
export_shared_lib_headers: [
"libfmq",
],
+ sdclang: false, // See b/163842697
}
diff --git a/camera/device/3.5/default/Android.bp b/camera/device/3.5/default/Android.bp
index 9d27b321e0..4ed65ba72d 100644
--- a/camera/device/3.5/default/Android.bp
+++ b/camera/device/3.5/default/Android.bp
@@ -68,6 +68,7 @@ cc_library_shared {
"android.hardware.camera.common@1.0-helper",
],
local_include_dirs: ["include/device_v3_5_impl"],
+ sdclang: false, // See b/163842697
}
cc_library_shared {
@@ -112,4 +113,5 @@ cc_library_shared {
export_shared_lib_headers: [
"libfmq",
],
+ sdclang: false, // See b/163842697
}
diff --git a/camera/device/3.6/default/Android.bp b/camera/device/3.6/default/Android.bp
index 89ee145820..0e5440a865 100644
--- a/camera/device/3.6/default/Android.bp
+++ b/camera/device/3.6/default/Android.bp
@@ -74,4 +74,5 @@ cc_library_shared {
export_shared_lib_headers: [
"libfmq",
],
+ sdclang: false, // See b/163842697
}
diff --git a/camera/provider/2.4/default/Android.bp b/camera/provider/2.4/default/Android.bp
index bccd6cb536..76220e2917 100644
--- a/camera/provider/2.4/default/Android.bp
+++ b/camera/provider/2.4/default/Android.bp
@@ -15,6 +15,7 @@ cc_library_shared {
shared_libs: [
"android.hardware.camera.common@1.0",
"android.hardware.camera.device@1.0",
+ "vendor.qti.hardware.camera.device@1.0",
"android.hardware.camera.device@3.2",
"android.hardware.camera.device@3.3",
"android.hardware.camera.device@3.4",
@@ -45,6 +46,11 @@ cc_library_shared {
"camera.device@3.5-impl_headers",
],
export_include_dirs: ["."],
+ sdclang: false, // See b/163842697
+ // Since this framework module has been forked to depend on a vendor
+ // proprietary library, we exclude this module from the vendor snapshot so
+ // that it will be built from source as part of the vendor image build.
+ exclude_from_vendor_snapshot: true,
}
cc_library_shared {
@@ -88,6 +94,10 @@ cc_library_shared {
"camera.device@3.6-external-impl_headers",
],
export_include_dirs: ["."],
+ // Since this framework module has a transitive dependency on a vendor
+ // proprietary library, we exclude this module from the vendor snapshot so
+ // that it will be built from source as part of the vendor image build.
+ exclude_from_vendor_snapshot: true,
}
cc_library_shared {
@@ -136,6 +146,10 @@ cc_library_shared {
"android.hardware.camera.common@1.0-helper",
],
export_include_dirs: ["."],
+ // Since this framework module has a transitive dependency on a vendor
+ // proprietary library, we exclude this module from the vendor snapshot so
+ // that it will be built from source as part of the vendor image build.
+ exclude_from_vendor_snapshot: true,
}
cc_defaults {
@@ -147,6 +161,7 @@ cc_defaults {
shared_libs: [
"android.hardware.camera.common@1.0",
"android.hardware.camera.device@1.0",
+ "vendor.qti.hardware.camera.device@1.0",
"android.hardware.camera.device@3.2",
"android.hardware.camera.device@3.3",
"android.hardware.camera.device@3.4",
@@ -174,6 +189,10 @@ cc_defaults {
"camera.device@3.5-external-impl_headers",
"camera.device@3.5-impl_headers",
],
+ // Since this framework module has been forked to depend on a vendor
+ // proprietary library, we exclude this module from the vendor snapshot so
+ // that it will be built from source as part of the vendor image build.
+ exclude_from_vendor_snapshot: true,
}
cc_binary {
@@ -236,4 +255,8 @@ cc_binary {
"camera.device@3.5-external-impl_headers",
"camera.device@3.5-impl_headers",
],
+ // Since this framework module has a transitive dependency on a vendor
+ // proprietary library, we exclude this module from the vendor snapshot so
+ // that it will be built from source as part of the vendor image build.
+ exclude_from_vendor_snapshot: true,
}
diff --git a/camera/provider/2.4/default/LegacyCameraProviderImpl_2_4.cpp b/camera/provider/2.4/default/LegacyCameraProviderImpl_2_4.cpp
index 7c3b982931..ab97646e32 100644
--- a/camera/provider/2.4/default/LegacyCameraProviderImpl_2_4.cpp
+++ b/camera/provider/2.4/default/LegacyCameraProviderImpl_2_4.cpp
@@ -87,23 +87,32 @@ void LegacyCameraProviderImpl_2_4::addDeviceNames(int camera_id, CameraDeviceSta
if (deviceVersion >= CAMERA_DEVICE_API_VERSION_3_2 &&
mModule->isOpenLegacyDefined()) {
// try open_legacy to see if it actually works
- struct hw_device_t* halDev = nullptr;
- int ret = mModule->openLegacy(cameraId, CAMERA_DEVICE_API_VERSION_1_0, &halDev);
- if (ret == 0) {
- mOpenLegacySupported[cameraIdStr] = true;
- halDev->close(halDev);
- deviceNamePair = std::make_pair(cameraIdStr,
+ if ((property_get_bool("ro.config.low_ram", /*default*/ false))) {
+ deviceNamePair = std::make_pair(cameraIdStr,
getHidlDeviceName(cameraIdStr, CAMERA_DEVICE_API_VERSION_1_0));
- mCameraDeviceNames.add(deviceNamePair);
- if (cam_new) {
- mCallbacks->cameraDeviceStatusChange(deviceNamePair.second, status);
- }
- } else if (ret == -EBUSY || ret == -EUSERS) {
+ mCameraDeviceNames.add(deviceNamePair);
+ if (cam_new) {
+ mCallbacks->cameraDeviceStatusChange(deviceNamePair.second, status);
+ }
+ } else {
+ struct hw_device_t* halDev = nullptr;
+ int ret = mModule->openLegacy(cameraId, CAMERA_DEVICE_API_VERSION_1_0, &halDev);
+ if (ret == 0) {
+ mOpenLegacySupported[cameraIdStr] = true;
+ halDev->close(halDev);
+ deviceNamePair = std::make_pair(cameraIdStr,
+ getHidlDeviceName(cameraIdStr, CAMERA_DEVICE_API_VERSION_1_0));
+ mCameraDeviceNames.add(deviceNamePair);
+ if (cam_new) {
+ mCallbacks->cameraDeviceStatusChange(deviceNamePair.second, status);
+ }
+ } else if (ret == -EBUSY || ret == -EUSERS) {
// Looks like this provider instance is not initialized during
// system startup and there are other camera users already.
// Not a good sign but not fatal.
- ALOGW("%s: open_legacy try failed!", __FUNCTION__);
- }
+ ALOGW("%s: open_legacy try failed!", __FUNCTION__);
+ }
+ }
}
}
@@ -314,15 +323,15 @@ bool LegacyCameraProviderImpl_2_4::initialize() {
mNumberOfLegacyCameras = mModule->getNumberOfCameras();
for (int i = 0; i < mNumberOfLegacyCameras; i++) {
- struct camera_info info;
- auto rc = mModule->getCameraInfo(i, &info);
+ uint32_t device_version;
+ auto rc = mModule->getCameraDeviceVersion(i, &device_version);
if (rc != NO_ERROR) {
- ALOGE("%s: Camera info query failed!", __func__);
+ ALOGE("%s: Camera device version query failed!", __func__);
mModule.clear();
return true;
}
- if (checkCameraVersion(i, info) != OK) {
+ if (checkCameraVersion(i, device_version) != OK) {
ALOGE("%s: Camera version check failed!", __func__);
mModule.clear();
return true;
@@ -342,7 +351,7 @@ bool LegacyCameraProviderImpl_2_4::initialize() {
/**
* Check that the device HAL version is still in supported.
*/
-int LegacyCameraProviderImpl_2_4::checkCameraVersion(int id, camera_info info) {
+int LegacyCameraProviderImpl_2_4::checkCameraVersion(int id, uint32_t device_version) {
if (mModule == nullptr) {
return NO_INIT;
}
@@ -352,7 +361,7 @@ int LegacyCameraProviderImpl_2_4::checkCameraVersion(int id, camera_info info) {
uint16_t moduleVersion = mModule->getModuleApiVersion();
if (moduleVersion >= CAMERA_MODULE_API_VERSION_2_0) {
// Verify the device version is in the supported range
- switch (info.device_version) {
+ switch (device_version) {
case CAMERA_DEVICE_API_VERSION_1_0:
case CAMERA_DEVICE_API_VERSION_3_2:
case CAMERA_DEVICE_API_VERSION_3_3:
@@ -370,7 +379,7 @@ int LegacyCameraProviderImpl_2_4::checkCameraVersion(int id, camera_info info) {
if (moduleVersion < CAMERA_MODULE_API_VERSION_2_5) {
ALOGE("%s: Device %d has unsupported version combination:"
"HAL version %x and module version %x",
- __FUNCTION__, id, info.device_version, moduleVersion);
+ __FUNCTION__, id, device_version, moduleVersion);
return NO_INIT;
}
break;
@@ -380,8 +389,8 @@ int LegacyCameraProviderImpl_2_4::checkCameraVersion(int id, camera_info info) {
case CAMERA_DEVICE_API_VERSION_3_1:
// no longer supported
default:
- ALOGE("%s: Device %d has HAL version %x, which is not supported",
- __FUNCTION__, id, info.device_version);
+ ALOGE("%s: Device %d has HAL version %x, which is not supported", __FUNCTION__, id,
+ device_version);
return NO_INIT;
}
}
diff --git a/camera/provider/2.4/default/LegacyCameraProviderImpl_2_4.h b/camera/provider/2.4/default/LegacyCameraProviderImpl_2_4.h
index b4914b3cfe..9ec5c5e8db 100644
--- a/camera/provider/2.4/default/LegacyCameraProviderImpl_2_4.h
+++ b/camera/provider/2.4/default/LegacyCameraProviderImpl_2_4.h
@@ -97,7 +97,7 @@ protected:
hidl_vec<VendorTagSection> mVendorTagSections;
bool setUpVendorTags();
- int checkCameraVersion(int id, camera_info info);
+ int checkCameraVersion(int id, uint32_t device_version);
// create HIDL device name from camera ID and legacy device version
std::string getHidlDeviceName(std::string cameraId, int deviceVersion);
diff --git a/camera/provider/2.4/default/android.hardware.camera.provider@2.4-service.rc b/camera/provider/2.4/default/android.hardware.camera.provider@2.4-service.rc
index f7ac9f83e4..ff924ed360 100644
--- a/camera/provider/2.4/default/android.hardware.camera.provider@2.4-service.rc
+++ b/camera/provider/2.4/default/android.hardware.camera.provider@2.4-service.rc
@@ -5,4 +5,4 @@ service vendor.camera-provider-2-4 /vendor/bin/hw/android.hardware.camera.provid
group audio camera input drmrpc
ioprio rt 4
capabilities SYS_NICE
- task_profiles CameraServiceCapacity MaxPerformance
+ task_profiles CameraServiceCapacity HighPerformance
diff --git a/camera/provider/2.4/default/android.hardware.camera.provider@2.4-service_64.rc b/camera/provider/2.4/default/android.hardware.camera.provider@2.4-service_64.rc
index a32dd468d3..642e84e5b0 100644
--- a/camera/provider/2.4/default/android.hardware.camera.provider@2.4-service_64.rc
+++ b/camera/provider/2.4/default/android.hardware.camera.provider@2.4-service_64.rc
@@ -5,4 +5,4 @@ service vendor.camera-provider-2-4 /vendor/bin/hw/android.hardware.camera.provid
group audio camera input drmrpc
ioprio rt 4
capabilities SYS_NICE
- task_profiles CameraServiceCapacity MaxPerformance
+ task_profiles CameraServiceCapacity HighPerformance
diff --git a/camera/provider/2.5/default/Android.bp b/camera/provider/2.5/default/Android.bp
index 2fcb35ab00..188b70157a 100644
--- a/camera/provider/2.5/default/Android.bp
+++ b/camera/provider/2.5/default/Android.bp
@@ -44,6 +44,10 @@ cc_library_shared {
"camera.device@3.5-impl_headers",
],
export_include_dirs: ["."],
+ // Since this framework module has a transitive dependency on a vendor
+ // proprietary library, we exclude this module from the vendor snapshot so
+ // that it will be built from source as part of the vendor image build.
+ exclude_from_vendor_snapshot: true,
}
cc_library_shared {
@@ -87,6 +91,10 @@ cc_library_shared {
"camera.device@3.6-external-impl_headers"
],
export_include_dirs: ["."],
+ // Since this framework module has a transitive dependency on a vendor
+ // proprietary library, we exclude this module from the vendor snapshot so
+ // that it will be built from source as part of the vendor image build.
+ exclude_from_vendor_snapshot: true,
}
cc_defaults {
@@ -123,6 +131,10 @@ cc_defaults {
"camera.device@3.4-impl_headers",
"camera.device@3.5-impl_headers"
],
+ // Since this framework module has a transitive dependency on a vendor
+ // proprietary library, we exclude this module from the vendor snapshot so
+ // that it will be built from source as part of the vendor image build.
+ exclude_from_vendor_snapshot: true,
}
cc_binary {
@@ -196,4 +208,8 @@ cc_binary {
"camera.device@3.5-impl_headers",
"camera.device@3.6-external-impl_headers",
],
+ // Since this framework module has a transitive dependency on a vendor
+ // proprietary library, we exclude this module from the vendor snapshot so
+ // that it will be built from source as part of the vendor image build.
+ exclude_from_vendor_snapshot: true,
}