Camera: Add support for stream combination query
Support runtime "SessionConfiguration" queries by camera
clients.
Bug: 111593096
Test: adb shell /data/nativetest64/camera_client_test/camera_client_test
--gtest_filter=CameraClientBinderTest.CheckBinderCameraDeviceUser,
Camera CTS
Change-Id: I1505e7bccdce468490b46ad4546e459354a4cda3
diff --git a/services/camera/libcameraservice/common/CameraProviderManager.h b/services/camera/libcameraservice/common/CameraProviderManager.h
index c506d35..99b87fb 100644
--- a/services/camera/libcameraservice/common/CameraProviderManager.h
+++ b/services/camera/libcameraservice/common/CameraProviderManager.h
@@ -28,6 +28,7 @@
#include <utils/Errors.h>
#include <android/hardware/camera/common/1.0/types.h>
#include <android/hardware/camera/provider/2.4/ICameraProvider.h>
+#include <android/hardware/camera/device/3.4/ICameraDeviceSession.h>
//#include <android/hardware/camera/provider/2.4/ICameraProviderCallbacks.h>
#include <android/hidl/manager/1.0/IServiceNotification.h>
#include <camera/VendorTagDescriptor.h>
@@ -166,6 +167,13 @@
CameraMetadata* characteristics) const;
/**
+ * Check for device support of specific stream combination.
+ */
+ status_t isSessionConfigurationSupported(const std::string& id,
+ const hardware::camera::device::V3_4::StreamConfiguration &configuration,
+ bool *status /*out*/) const;
+
+ /**
* Return the highest supported device interface version for this ID
*/
status_t getHighestSupportedVersion(const std::string &id,
@@ -315,6 +323,13 @@
return INVALID_OPERATION;
}
+ virtual status_t isSessionConfigurationSupported(
+ const hardware::camera::device::V3_4::StreamConfiguration &/*configuration*/,
+ bool * /*status*/)
+ const {
+ return INVALID_OPERATION;
+ }
+
DeviceInfo(const std::string& name, const metadata_vendor_id_t tagId,
const std::string &id, const hardware::hidl_version& version,
const std::vector<std::string>& publicCameraIds,
@@ -375,6 +390,10 @@
CameraMetadata *characteristics) const override;
virtual status_t getPhysicalCameraCharacteristics(const std::string& physicalCameraId,
CameraMetadata *characteristics) const override;
+ virtual status_t isSessionConfigurationSupported(
+ const hardware::camera::device::V3_4::StreamConfiguration &configuration,
+ bool *status /*out*/)
+ const override;
DeviceInfo3(const std::string& name, const metadata_vendor_id_t tagId,
const std::string &id, uint16_t minorVersion,