Loading services/camera/libcameraservice/api2/CameraDeviceClient.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -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. Loading services/camera/libcameraservice/common/CameraProviderManager.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -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" Loading Loading @@ -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, Loading services/camera/libcameraservice/common/CameraProviderManager.h +6 −1 Original line number Diff line number Diff line Loading @@ -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> Loading Loading @@ -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; /** Loading Loading @@ -587,6 +588,7 @@ private: virtual status_t isSessionConfigurationSupported( const SessionConfiguration &/*configuration*/, bool /*overrideForPerfClass*/, camera3::metadataGetter /*getMetadata*/, bool * /*status*/) { return INVALID_OPERATION; } Loading Loading @@ -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( Loading @@ -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(); Loading services/camera/libcameraservice/common/aidl/AidlProviderInfo.cpp +2 −6 Original line number Diff line number Diff line Loading @@ -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); Loading services/camera/libcameraservice/common/aidl/AidlProviderInfo.h +1 −1 Original line number Diff line number Diff line Loading @@ -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 Loading
services/camera/libcameraservice/api2/CameraDeviceClient.cpp +3 −1 Original line number Diff line number Diff line Loading @@ -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. Loading
services/camera/libcameraservice/common/CameraProviderManager.cpp +3 −3 Original line number Diff line number Diff line Loading @@ -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" Loading Loading @@ -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, Loading
services/camera/libcameraservice/common/CameraProviderManager.h +6 −1 Original line number Diff line number Diff line Loading @@ -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> Loading Loading @@ -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; /** Loading Loading @@ -587,6 +588,7 @@ private: virtual status_t isSessionConfigurationSupported( const SessionConfiguration &/*configuration*/, bool /*overrideForPerfClass*/, camera3::metadataGetter /*getMetadata*/, bool * /*status*/) { return INVALID_OPERATION; } Loading Loading @@ -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( Loading @@ -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(); Loading
services/camera/libcameraservice/common/aidl/AidlProviderInfo.cpp +2 −6 Original line number Diff line number Diff line Loading @@ -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); Loading
services/camera/libcameraservice/common/aidl/AidlProviderInfo.h +1 −1 Original line number Diff line number Diff line Loading @@ -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