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

Commit 8b7ba583 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add support for 3.8 version of ICameraDeviceCallback"

parents c973fc79 90708ea0
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -156,6 +156,7 @@ cc_library_shared {
        "android.hardware.camera.device@3.5",
        "android.hardware.camera.device@3.6",
        "android.hardware.camera.device@3.7",
        "android.hardware.camera.device@3.8",
        "media_permission-aidl-cpp",
    ],

+2 −0
Original line number Diff line number Diff line
@@ -910,6 +910,7 @@ Status CameraService::makeClient(const sp<CameraService>& cameraService,
        case CAMERA_DEVICE_API_VERSION_3_5:
        case CAMERA_DEVICE_API_VERSION_3_6:
        case CAMERA_DEVICE_API_VERSION_3_7:
        case CAMERA_DEVICE_API_VERSION_3_8:
            if (effectiveApiLevel == API_1) { // Camera1 API route
                sp<ICameraClient> tmp = static_cast<ICameraClient*>(cameraCb.get());
                *client = new Camera2Client(cameraService, tmp, packageName, featureId,
@@ -2545,6 +2546,7 @@ Status CameraService::supportsCameraApi(const String16& cameraId, int apiVersion
        case CAMERA_DEVICE_API_VERSION_3_5:
        case CAMERA_DEVICE_API_VERSION_3_6:
        case CAMERA_DEVICE_API_VERSION_3_7:
        case CAMERA_DEVICE_API_VERSION_3_8:
            ALOGV("%s: Camera id %s uses HAL3.2 or newer, supports api1/api2 directly",
                    __FUNCTION__, id.string());
            *isSupported = true;
+1 −0
Original line number Diff line number Diff line
@@ -88,6 +88,7 @@ enum SystemCameraKind {
#define CAMERA_DEVICE_API_VERSION_3_5 HARDWARE_DEVICE_API_VERSION(3, 5)
#define CAMERA_DEVICE_API_VERSION_3_6 HARDWARE_DEVICE_API_VERSION(3, 6)
#define CAMERA_DEVICE_API_VERSION_3_7 HARDWARE_DEVICE_API_VERSION(3, 7)
#define CAMERA_DEVICE_API_VERSION_3_8 HARDWARE_DEVICE_API_VERSION(3, 8)

/**
 * A manager for all camera providers available on an Android device.
+12 −1
Original line number Diff line number Diff line
@@ -1176,6 +1176,16 @@ hardware::Return<void> Camera3Device::processCaptureResult(

hardware::Return<void> Camera3Device::notify(
        const hardware::hidl_vec<hardware::camera::device::V3_2::NotifyMsg>& msgs) {
    return notifyHelper<hardware::camera::device::V3_2::NotifyMsg>(msgs);
}

hardware::Return<void> Camera3Device::notify_3_8(
        const hardware::hidl_vec<hardware::camera::device::V3_8::NotifyMsg>& msgs) {
    return notifyHelper<hardware::camera::device::V3_8::NotifyMsg>(msgs);
}

template<typename NotifyMsgType>
hardware::Return<void> Camera3Device::notifyHelper(const hardware::hidl_vec<NotifyMsgType>& msgs) {
    // Ideally we should grab mLock, but that can lead to deadlock, and
    // it's not super important to get up to date value of mStatus for this
    // warning print, hence skipping the lock here
@@ -5469,7 +5479,8 @@ void Camera3Device::RequestThread::cleanUpFailedRequests(bool sendRequestError)
                    outputBuffers->editItemAt(i).acquire_fence = -1;
                }
                outputBuffers->editItemAt(i).status = CAMERA_BUFFER_STATUS_ERROR;
                captureRequest->mOutputStreams.editItemAt(i)->returnBuffer((*outputBuffers)[i], 0,
                captureRequest->mOutputStreams.editItemAt(i)->returnBuffer((*outputBuffers)[i],
                        /*timestamp*/0, /*readoutTimestamp*/0,
                        /*timestampIncreasing*/true, std::vector<size_t> (),
                        captureRequest->mResultExtras.frameNumber);
            }
+10 −1
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@
#include <android/hardware/camera/device/3.2/ICameraDeviceCallback.h>
#include <android/hardware/camera/device/3.4/ICameraDeviceCallback.h>
#include <android/hardware/camera/device/3.5/ICameraDeviceCallback.h>
#include <android/hardware/camera/device/3.8/ICameraDeviceCallback.h>
#include <fmq/MessageQueue.h>

#include <camera/CaptureResult.h>
@@ -83,7 +84,7 @@ class Camera3StreamInterface;
 */
class Camera3Device :
            public CameraDeviceBase,
            virtual public hardware::camera::device::V3_5::ICameraDeviceCallback,
            virtual public hardware::camera::device::V3_8::ICameraDeviceCallback,
            public camera3::SetErrorInterface,
            public camera3::InflightRequestUpdateInterface,
            public camera3::RequestBufferInterface,
@@ -642,6 +643,14 @@ class Camera3Device :
            const hardware::hidl_vec<
                    hardware::camera::device::V3_2::StreamBuffer>& buffers) override;

    hardware::Return<void> notify_3_8(
            const hardware::hidl_vec<
                    hardware::camera::device::V3_8::NotifyMsg>& msgs) override;

    template<typename NotifyMsgType>
    hardware::Return<void> notifyHelper(
            const hardware::hidl_vec<NotifyMsgType>& msgs);

    // Handle one notify message
    void notify(const hardware::camera::device::V3_2::NotifyMsg& msg);

Loading