cameraserver: Add support for session specific hal buffer manager switches

With ICameraDeviceSession V3, it is possible for HALs to toggle HAL
buffer manager on and off depending on the session configuration.
Add support to cameraserver to switch HAL buffer manager behavior
for the session - depending on what the HAL decides.

Bug: 311263114

Test: Use GCA on device not advertising session hal buffer manager
Test: Camera CTS on cuttlefish

Change-Id: Ie7948a24e54bb920f49cf0c0ce61f42a4c8d09f7
Signed-off-by: Jayant Chowdhary <jchowdhary@google.com>
diff --git a/services/camera/libcameraservice/device3/Camera3SharedOutputStream.cpp b/services/camera/libcameraservice/device3/Camera3SharedOutputStream.cpp
index 1191f05..22f97bf 100644
--- a/services/camera/libcameraservice/device3/Camera3SharedOutputStream.cpp
+++ b/services/camera/libcameraservice/device3/Camera3SharedOutputStream.cpp
@@ -106,6 +106,13 @@
     return res;
 }
 
+void Camera3SharedOutputStream::setHalBufferManager(bool enabled) {
+    Mutex::Autolock l(mLock);
+    mUseHalBufManager = enabled;
+    if (mStreamSplitter != nullptr) {
+        mStreamSplitter->setHalBufferManager(enabled);
+    }
+}
 
 status_t Camera3SharedOutputStream::notifyBufferReleased(ANativeWindowBuffer *anwBuffer) {
     Mutex::Autolock l(mLock);