Implement session param injection in CameraService
- This allows injecting session params into existing camera clients.
- The injection is cleared upon the camera closing, and we do not keep
state from one camera open to the next.
- We restrict the injection to only allow overriding vendor tags for now.
- The actionable parts of the change are gated behind the inject_session_params
flag to allow easy flipping. When false, this feature will have no effect.
Bug: 308984721
Test: I tested that this works using adb shell.
Change-Id: I27d955d035dde57b63a220c5d68b505ec636c401
diff --git a/camera/aidl/android/hardware/ICameraService.aidl b/camera/aidl/android/hardware/ICameraService.aidl
index 8078cea..0eeeb7f 100644
--- a/camera/aidl/android/hardware/ICameraService.aidl
+++ b/camera/aidl/android/hardware/ICameraService.aidl
@@ -149,6 +149,18 @@
void remapCameraIds(in CameraIdRemapping cameraIdRemapping);
/**
+ * Inject Session Params into an existing camera session.
+ *
+ * @param cameraId the camera id session to inject session params into. Note that
+ * if there is no active session for the input cameraid, this operation
+ * will be a no-op. In addition, future camera sessions for cameraid will
+ * not be affected.
+ * @param sessionParams the session params to override for the existing session.
+ */
+ void injectSessionParams(@utf8InCpp String cameraId,
+ in CameraMetadataNative sessionParams);
+
+ /**
* Remove listener for changes to camera device and flashlight state.
*/
void removeListener(ICameraServiceListener listener);