cameraservice: Make getSessionCharacteristics accessible earlier
The current implementation of getSessionCharacteristics forced Camera2
to open a corresponding CameraDevice. However, there is no technical
limitation that prevents getSessionCharacteristics from being
accessible before an openCamera call.
This CL moves the getSessionCharacteristics to be a function in
ICameraService instead of ICameraDeviceUser which allows camera2
to call getSessionCharacteristics before calling openCamera
for a given device.
Bug: 320741775
Test: atest CtsCameraTestCases:CameraDeviceTest passes.
Test: atest CtsCameraTestCases:FeatureCombinationTest passes.
Test: atest CtsCameraTestCases:CameraDeviceSetupTest passes.
Test: atest cameraservice_test passes.
Change-Id: Ia21f882fac5ece59dcd6a70e04b2f81ef6dee4c3
diff --git a/services/camera/libcameraservice/CameraService.h b/services/camera/libcameraservice/CameraService.h
index 1487013..5b25bcd 100644
--- a/services/camera/libcameraservice/CameraService.h
+++ b/services/camera/libcameraservice/CameraService.h
@@ -248,6 +248,11 @@
/*out*/
bool* supported);
+ virtual binder::Status getSessionCharacteristics(
+ const std::string& cameraId, int targetSdkVersion, bool overrideToPortrait,
+ const SessionConfiguration& sessionConfiguration,
+ /*out*/ CameraMetadata* outMetadata);
+
// Extra permissions checks
virtual status_t onTransact(uint32_t code, const Parcel& data,
Parcel* reply, uint32_t flags);