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

Commit a1ffbb8f authored by Shuzhen Wang's avatar Shuzhen Wang Committed by Automerger Merge Worker
Browse files

Merge "Camera: Pass metadataGetter from CameraDeviceClient" into tm-dev am: a1186bcd

parents 9f0c71f7 a1186bcd
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -721,8 +721,10 @@ binder::Status CameraDeviceClient::isSessionConfigurationSupported(
    }

    *status = false;
    camera3::metadataGetter getMetadata = [this](const String8 &id, bool /*overrideForPerfClass*/) {
          return mDevice->infoPhysical(id);};
    ret = mProviderManager->isSessionConfigurationSupported(mCameraIdStr.string(),
            sessionConfiguration, mOverrideForPerfClass, status);
            sessionConfiguration, mOverrideForPerfClass, getMetadata, status);
    switch (ret) {
        case OK:
            // Expected, do nothing.
+3 −3
Original line number Diff line number Diff line
@@ -40,7 +40,6 @@
#include <android-base/logging.h>
#include <cutils/properties.h>
#include <hwbinder/IPCThreadState.h>
#include <utils/SessionConfigurationUtils.h>
#include <utils/Trace.h>

#include "api2/HeicCompositeStream.h"
@@ -338,14 +337,15 @@ status_t CameraProviderManager::getCameraInfo(const std::string &id,

status_t CameraProviderManager::isSessionConfigurationSupported(const std::string& id,
        const SessionConfiguration &configuration, bool overrideForPerfClass,
        bool *status /*out*/) const {
        metadataGetter getMetadata, bool *status /*out*/) const {
    std::lock_guard<std::mutex> lock(mInterfaceMutex);
    auto deviceInfo = findDeviceInfoLocked(id);
    if (deviceInfo == nullptr) {
        return NAME_NOT_FOUND;
    }

    return deviceInfo->isSessionConfigurationSupported(configuration, overrideForPerfClass, status);
    return deviceInfo->isSessionConfigurationSupported(configuration,
            overrideForPerfClass, getMetadata, status);
}

status_t CameraProviderManager::getCameraIdIPCTransport(const std::string &id,
+6 −1
Original line number Diff line number Diff line
@@ -33,6 +33,7 @@
#include <utils/Errors.h>
#include <android/hardware/ICameraService.h>
#include <utils/IPCTransport.h>
#include <utils/SessionConfigurationUtils.h>
#include <aidl/android/hardware/camera/provider/ICameraProvider.h>
#include <android/hardware/camera/common/1.0/types.h>
#include <android/hardware/camera/provider/2.5/ICameraProvider.h>
@@ -278,7 +279,7 @@ public:
     */
    status_t isSessionConfigurationSupported(const std::string& id,
            const SessionConfiguration &configuration,
            bool overrideForPerfClass,
            bool overrideForPerfClass, camera3::metadataGetter getMetadata,
            bool *status /*out*/) const;

    /**
@@ -587,6 +588,7 @@ private:
            virtual status_t isSessionConfigurationSupported(
                    const SessionConfiguration &/*configuration*/,
                    bool /*overrideForPerfClass*/,
                    camera3::metadataGetter /*getMetadata*/,
                    bool * /*status*/) {
                return INVALID_OPERATION;
            }
@@ -639,6 +641,7 @@ private:
                    CameraMetadata *characteristics) const override;
            virtual status_t isSessionConfigurationSupported(
                    const SessionConfiguration &configuration, bool /*overrideForPerfClass*/,
                    camera3::metadataGetter /*getMetadata*/,
                    bool *status /*out*/) = 0;
            virtual status_t filterSmallJpegSizes() override;
            virtual void notifyDeviceStateChange(
@@ -658,6 +661,8 @@ private:
            // A copy of mCameraCharacteristics without performance class
            // override
            std::unique_ptr<CameraMetadata> mCameraCharNoPCOverride;
            // Only contains characteristics for hidden physical cameras,
            // not for public physical cameras.
            std::unordered_map<std::string, CameraMetadata> mPhysicalCameraCharacteristics;
            void queryPhysicalCameraIds();
            SystemCameraKind getSystemCameraKind();
+2 −6
Original line number Diff line number Diff line
@@ -693,15 +693,11 @@ status_t AidlProviderInfo::AidlDeviceInfo3::dumpState(int fd) {
}

status_t AidlProviderInfo::AidlDeviceInfo3::isSessionConfigurationSupported(
        const SessionConfiguration &configuration, bool overrideForPerfClass, bool *status) {
        const SessionConfiguration &configuration, bool overrideForPerfClass,
        camera3::metadataGetter getMetadata, bool *status) {

    camera::device::StreamConfiguration streamConfiguration;
    bool earlyExit = false;
    camera3::metadataGetter getMetadata = [this](const String8 &id, bool /*overrideForPerfClass*/) {
          CameraMetadata physicalChars;
          getPhysicalCameraCharacteristics(id.c_str(), &physicalChars);
          return physicalChars;
    };
    auto bRes = SessionConfigurationUtils::convertToHALStreamCombination(configuration,
            String8(mId.c_str()), mCameraCharacteristics, getMetadata, mPhysicalIds,
            streamConfiguration, overrideForPerfClass, &earlyExit);
+1 −1
Original line number Diff line number Diff line
@@ -129,7 +129,7 @@ struct AidlProviderInfo : public CameraProviderManager::ProviderInfo {

        virtual status_t isSessionConfigurationSupported(
                const SessionConfiguration &/*configuration*/,
                bool overrideForPerfClass,
                bool overrideForPerfClass, camera3::metadataGetter /*getMetadata*/,
                bool *status/*status*/);

        std::shared_ptr<aidl::android::hardware::camera::device::ICameraDevice>
Loading