From d3feb3d62c139f08879bbb7f7a0513d593dafcc0 Mon Sep 17 00:00:00 2001 From: Shuzhen Wang Date: Fri, 17 Aug 2018 13:52:40 -0700 Subject: Camera: Add support for physical camera characteristics query - Add version 3.5 for ICameraDevice for physical camera characteristics query. - Add version 3.5 for ICameraDeviceSession to work around HIDL versioning bug. Test: Camera CTS Bug: 79523700 Change-Id: I8df6cdd4ee6ac5755758510c0dc1ea1cec31aa73 --- camera/common/1.0/default/include/CameraModule.h | 2 ++ 1 file changed, 2 insertions(+) (limited to 'camera/common/1.0/default/include/CameraModule.h') diff --git a/camera/common/1.0/default/include/CameraModule.h b/camera/common/1.0/default/include/CameraModule.h index deebd09480..ed853bf85f 100644 --- a/camera/common/1.0/default/include/CameraModule.h +++ b/camera/common/1.0/default/include/CameraModule.h @@ -65,6 +65,7 @@ public: void *getDso(); // Only used by CameraProvider void removeCamera(int cameraId); + int getPhysicalCameraInfo(int physicalCameraId, camera_metadata_t **physicalInfo); private: // Derive camera characteristics keys defined after HAL device version @@ -76,6 +77,7 @@ private: camera_module_t *mModule; KeyedVector mCameraInfoMap; KeyedVector mDeviceVersionMap; + KeyedVector mPhysicalCameraInfoMap; Mutex mCameraInfoLock; }; -- cgit v1.2.3 From 6bdeaf55bf5cb7d313628d0ff092413c42b5782c Mon Sep 17 00:00:00 2001 From: Shuzhen Wang Date: Wed, 5 Sep 2018 09:40:00 -0700 Subject: VTS: Add test for device version 3.5 Also includes: - Add test for getPhysicalCameraCharacteristics. - Doc update for the new HIDL API. - Tighten boundary check for camera ID in CameraModule. Test: vts-tradefed run commandAndExit vts --skip-all-system-status-check --skip-preconditions --module VtsHalCameraProviderV2_4Target -l INFO Bug: 79523700 Bug: 115969176 Bug: 116512585 Change-Id: I051d1b0c91834781a1f8d893ed5ebfa579b03774 --- camera/common/1.0/default/include/CameraModule.h | 1 + 1 file changed, 1 insertion(+) (limited to 'camera/common/1.0/default/include/CameraModule.h') diff --git a/camera/common/1.0/default/include/CameraModule.h b/camera/common/1.0/default/include/CameraModule.h index ed853bf85f..aee9654dc7 100644 --- a/camera/common/1.0/default/include/CameraModule.h +++ b/camera/common/1.0/default/include/CameraModule.h @@ -75,6 +75,7 @@ private: int32_t keyTag, const Vector& appendKeys); status_t filterOpenErrorCode(status_t err); camera_module_t *mModule; + int mNumberOfCameras; KeyedVector mCameraInfoMap; KeyedVector mDeviceVersionMap; KeyedVector mPhysicalCameraInfoMap; -- cgit v1.2.3 From 40a8c6ed51abdf0ebebd566879ef232573696ab0 Mon Sep 17 00:00:00 2001 From: Emilian Peev Date: Mon, 29 Oct 2018 09:35:21 +0000 Subject: Camera: Add support for stream combination query Camera devices 3.5 and later can optionally support stream combination queries. These use the regular 'StreamConfiguration' structure however in contrast to normal stream configuration, the query will be much faster and will not cause any HW/SW side effects. Additionally it will be possible to run stream combination queries at any time after the camera device is open. Implement stream combination query for the external camera provider. Bug: 111593096 Test: vts-tradefed run commandAndExit vts --skip-all-system-status-check --skip-preconditions --module VtsHalCameraProviderV2_4Target -l INFO Change-Id: I59ec936d17dabc89ba49407a750df1cd2e61b145 --- camera/common/1.0/default/include/CameraModule.h | 1 + 1 file changed, 1 insertion(+) (limited to 'camera/common/1.0/default/include/CameraModule.h') diff --git a/camera/common/1.0/default/include/CameraModule.h b/camera/common/1.0/default/include/CameraModule.h index aee9654dc7..ee75e722d1 100644 --- a/camera/common/1.0/default/include/CameraModule.h +++ b/camera/common/1.0/default/include/CameraModule.h @@ -66,6 +66,7 @@ public: // Only used by CameraProvider void removeCamera(int cameraId); int getPhysicalCameraInfo(int physicalCameraId, camera_metadata_t **physicalInfo); + int isStreamCombinationSupported(int cameraId, camera_stream_combination_t *streams); private: // Derive camera characteristics keys defined after HAL device version -- cgit v1.2.3 From 2951804146cd3239f3b4371021cb95b4aa52fc2f Mon Sep 17 00:00:00 2001 From: Eino-Ville Talvala Date: Fri, 18 Jan 2019 17:32:06 -0800 Subject: Camera: Restructure default camera.provider 2.4 To allow for implementation inheritance of @2.4 legacy wrapper and @2.4 external webcamera HALs in the @2.5 implementations, restructure the existing default provider to separate the service interface into a thin shim that calls the implementations. Test: Camera starts as usual after refactor, VTS tests pass Bug: 121379978 Change-Id: Id40790ed4fb495577fd2b885c706b2ed7a96d64e --- camera/common/1.0/default/include/CameraModule.h | 1 + 1 file changed, 1 insertion(+) (limited to 'camera/common/1.0/default/include/CameraModule.h') diff --git a/camera/common/1.0/default/include/CameraModule.h b/camera/common/1.0/default/include/CameraModule.h index ee75e722d1..32c387f107 100644 --- a/camera/common/1.0/default/include/CameraModule.h +++ b/camera/common/1.0/default/include/CameraModule.h @@ -67,6 +67,7 @@ public: void removeCamera(int cameraId); int getPhysicalCameraInfo(int physicalCameraId, camera_metadata_t **physicalInfo); int isStreamCombinationSupported(int cameraId, camera_stream_combination_t *streams); + void notifyDeviceStateChange(uint64_t deviceState); private: // Derive camera characteristics keys defined after HAL device version -- cgit v1.2.3 From 892e826a3286a138f246a7e8303051e161a19318 Mon Sep 17 00:00:00 2001 From: Shuzhen Wang Date: Fri, 8 Feb 2019 16:12:30 -0800 Subject: Camera: Handle binder call failure due to static metadata size For physical camera static metadata, we should reduce its size before passing it across binder if possible. Test: Camera CTS Bug: 124129552 Change-Id: I0d9129642ddcbb4c1a1c7fcf7a88bac734be4f5a --- camera/common/1.0/default/include/CameraModule.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'camera/common/1.0/default/include/CameraModule.h') diff --git a/camera/common/1.0/default/include/CameraModule.h b/camera/common/1.0/default/include/CameraModule.h index 32c387f107..c89e934655 100644 --- a/camera/common/1.0/default/include/CameraModule.h +++ b/camera/common/1.0/default/include/CameraModule.h @@ -17,6 +17,9 @@ #ifndef CAMERA_COMMON_1_0_CAMERAMODULE_H #define CAMERA_COMMON_1_0_CAMERAMODULE_H +#include +#include + #include #include #include @@ -69,6 +72,10 @@ public: int isStreamCombinationSupported(int cameraId, camera_stream_combination_t *streams); void notifyDeviceStateChange(uint64_t deviceState); + static bool isLogicalMultiCamera( + const common::V1_0::helper::CameraMetadata& metadata, + std::unordered_set* physicalCameraIds); + private: // Derive camera characteristics keys defined after HAL device version static void deriveCameraCharacteristicsKeys(uint32_t deviceVersion, CameraMetadata &chars); -- cgit v1.2.3