Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9c3d4885 authored by Sauhard Pande's avatar Sauhard Pande Committed by Bruno Martins
Browse files

Camera: CameraHardwareInterface changes to support Extended FD

Added QDataCallback definition to pass the extended QCameraFrameMetadata
fields from HIDL to framework.

Change-Id: Idece64f22dd6ee3713c7db658b8583854086a1d8
parent 20cce2a2
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -123,6 +123,7 @@ cc_library_shared {
        "android.hardware.camera.provider@2.5",
        "android.hardware.camera.provider@2.6",
        "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",
+14 −0
Original line number Diff line number Diff line
@@ -136,6 +136,20 @@ hardware::Return<void> CameraHardwareInterface::dataCallback(
    return hardware::Void();
}

hardware::Return<void> CameraHardwareInterface::QDataCallback(
        DataCallbackMsg msgType, uint32_t data, uint32_t bufferIndex,
        const vendor::qti::hardware::camera::device::V1_0::QCameraFrameMetadata& metadata) {
    if (mHidlMemPoolMap.count(data) == 0) {
        ALOGE("%s: memory pool ID %d not found", __FUNCTION__, data);
        return hardware::Void();
    }
    camera_frame_metadata_t md;
    md.number_of_faces = metadata.faces.size();
    md.faces = (camera_face_t*) metadata.faces.data();
    sDataCb((int32_t) msgType, mHidlMemPoolMap.at(data), bufferIndex, &md, this);
    return hardware::Void();
}

hardware::Return<void> CameraHardwareInterface::dataCallbackTimestamp(
        DataCallbackMsg msgType, uint32_t data,
        uint32_t bufferIndex, int64_t timestamp) {
+6 −1
Original line number Diff line number Diff line
@@ -29,6 +29,7 @@
#include <hardware/camera.h>

#include <common/CameraProviderManager.h>
#include <vendor/qti/hardware/camera/device/1.0/IQCameraDeviceCallback.h>

namespace android {

@@ -85,7 +86,7 @@ typedef void (*data_callback_timestamp_batch)(

class CameraHardwareInterface :
        public virtual RefBase,
        public virtual hardware::camera::device::V1_0::ICameraDeviceCallback,
        public virtual vendor::qti::hardware::camera::device::V1_0::IQCameraDeviceCallback,
        public virtual hardware::camera::device::V1_0::ICameraDevicePreviewCallback {

public:
@@ -395,6 +396,10 @@ private:
            hardware::camera::device::V1_0::DataCallbackMsg msgType,
            const hardware::hidl_vec<
                    hardware::camera::device::V1_0::HandleTimestampMessage>&) override;
    hardware::Return<void> QDataCallback(
            hardware::camera::device::V1_0::DataCallbackMsg msgType,
            uint32_t data, uint32_t bufferIndex,
            const vendor::qti::hardware::camera::device::V1_0::QCameraFrameMetadata& metadata) override;

    /**
     * Implementation of android::hardware::camera::device::V1_0::ICameraDevicePreviewCallback