summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--camera/device/1.0/default/Android.bp9
-rw-r--r--camera/device/1.0/default/CameraDevice.cpp96
-rw-r--r--camera/device/1.0/default/CameraDevice_1_0.h9
-rw-r--r--camera/provider/2.4/default/Android.bp16
-rw-r--r--wifi/1.1/default/wifi_status_util.cpp4
5 files changed, 109 insertions, 25 deletions
diff --git a/camera/device/1.0/default/Android.bp b/camera/device/1.0/default/Android.bp
index e0b31f0a4..f98b155cc 100644
--- a/camera/device/1.0/default/Android.bp
+++ b/camera/device/1.0/default/Android.bp
@@ -32,6 +32,13 @@ cc_library_shared {
include_dirs: [
"frameworks/native/include/media/openmax"
],
+ product_variables: {
+ aicp: {
+ uses_qti_camera_device: {
+ cppflags: ["-DQTI_CAMERA_DEVICE"],
+ shared_libs: ["vendor.qti.hardware.camera.device@1.0_vendor"],
+ },
+ },
+ },
export_include_dirs: ["."]
}
-
diff --git a/camera/device/1.0/default/CameraDevice.cpp b/camera/device/1.0/default/CameraDevice.cpp
index a03bbc867..116963b95 100644
--- a/camera/device/1.0/default/CameraDevice.cpp
+++ b/camera/device/1.0/default/CameraDevice.cpp
@@ -428,30 +428,72 @@ 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);
+#ifdef QTI_CAMERA_DEVICE
+ 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 {
+#endif
+ 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);
+#ifdef QTI_CAMERA_DEVICE
+ }
+#endif
}
}
@@ -667,6 +709,12 @@ Return<Status> CameraDevice::open(const sp<ICameraDeviceCallback>& callback) {
initHalPreviewWindow();
mDeviceCallback = callback;
+#ifdef QTI_CAMERA_DEVICE
+ mQDeviceCallback = vendor::qti::hardware::camera::device::V1_0::IQCameraDeviceCallback::castFrom(callback);
+ if(mQDeviceCallback == nullptr) {
+ ALOGI("could not cast ICameraDeviceCallback to IQCameraDeviceCallback");
+ }
+#endif
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 2c980f0a8..2b35a730d 100644
--- a/camera/device/1.0/default/CameraDevice_1_0.h
+++ b/camera/device/1.0/default/CameraDevice_1_0.h
@@ -24,6 +24,9 @@
#include "HandleImporter.h"
#include <android/hardware/camera/device/1.0/ICameraDevice.h>
+#ifdef QTI_CAMERA_DEVICE
+#include <vendor/qti/hardware/camera/device/1.0/IQCameraDeviceCallback.h>
+#endif
#include <android/hidl/allocator/1.0/IAllocator.h>
#include <android/hidl/memory/1.0/IMemory.h>
#include <hidl/MQDescriptor.h>
@@ -44,6 +47,9 @@ 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;
+#ifdef QTI_CAMERA_DEVICE
+using ::vendor::qti::hardware::camera::device::V1_0::IQCameraDeviceCallback;
+#endif
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 +170,9 @@ private:
const SortedVector<std::pair<std::string, std::string>>& mCameraDeviceNames;
sp<ICameraDeviceCallback> mDeviceCallback = nullptr;
+#ifdef QTI_CAMERA_DEVICE
+ sp<IQCameraDeviceCallback> mQDeviceCallback = nullptr;
+#endif
mutable Mutex mMemoryMapLock; // gating access to mMemoryMap
// must not hold mLock after this lock is acquired
diff --git a/camera/provider/2.4/default/Android.bp b/camera/provider/2.4/default/Android.bp
index c0b35912f..21ffb711f 100644
--- a/camera/provider/2.4/default/Android.bp
+++ b/camera/provider/2.4/default/Android.bp
@@ -24,6 +24,14 @@ cc_library_shared {
"libhardware",
"libcamera_metadata"
],
+ product_variables: {
+ aicp: {
+ uses_qti_camera_device: {
+ cppflags: ["-DQTI_CAMERA_DEVICE"],
+ shared_libs: ["vendor.qti.hardware.camera.device@1.0_vendor"],
+ },
+ },
+ },
static_libs: [
"android.hardware.camera.common@1.0-helper"
]
@@ -49,4 +57,12 @@ cc_binary {
"android.hardware.camera.provider@2.4",
"android.hardware.camera.common@1.0",
],
+ product_variables: {
+ aicp: {
+ uses_qti_camera_device: {
+ cppflags: ["-DQTI_CAMERA_DEVICE"],
+ shared_libs: ["vendor.qti.hardware.camera.device@1.0_vendor"],
+ },
+ },
+ },
}
diff --git a/wifi/1.1/default/wifi_status_util.cpp b/wifi/1.1/default/wifi_status_util.cpp
index 3a85e0998..26dd5a5de 100644
--- a/wifi/1.1/default/wifi_status_util.cpp
+++ b/wifi/1.1/default/wifi_status_util.cpp
@@ -92,6 +92,10 @@ WifiStatus createWifiStatusFromLegacyError(legacy_hal::wifi_error error,
case legacy_hal::WIFI_ERROR_UNKNOWN:
return createWifiStatus(WifiStatusCode::ERROR_UNKNOWN, "unknown");
+ default:
+ const std::string errStr = "errno: " + std::to_string(error)
+ + " (" + strerror(error) + ")";
+ return createWifiStatus(WifiStatusCode::ERROR_UNKNOWN, errStr);
}
}