Camera: Cache monitored tag options in service
Monitored camera tag dump options should be stored
by camera service and parsed during initialization of
each new camera client.
Bug: 71640311
Test: Camera CTS,
Manual using application
Change-Id: Id464fbaec40395e93969b90abbd07f0a5cd0dc30
diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp
index e7609ed..e14a0ee 100644
--- a/services/camera/libcameraservice/CameraService.cpp
+++ b/services/camera/libcameraservice/CameraService.cpp
@@ -67,6 +67,7 @@
#include "api1/Camera2Client.h"
#include "api2/CameraDeviceClient.h"
#include "utils/CameraTraces.h"
+#include "utils/TagMonitor.h"
namespace {
const char* kPermissionServiceName = "permission";
@@ -1413,7 +1414,7 @@
LOG_ALWAYS_FATAL_IF(client.get() == nullptr, "%s: CameraService in invalid state",
__FUNCTION__);
- err = client->initialize(mCameraProviderManager);
+ err = client->initialize(mCameraProviderManager, mMonitorTags);
if (err != OK) {
ALOGE("%s: Could not initialize client from HAL.", __FUNCTION__);
// Errors could be from the HAL module open call or from AppOpsManager
@@ -2688,6 +2689,16 @@
dprintf(fd, "CameraStates in use, may be deadlocked\n");
}
+ int argSize = args.size();
+ for (int i = 0; i < argSize; i++) {
+ if (args[i] == TagMonitor::kMonitorOption) {
+ if (i + 1 < argSize) {
+ mMonitorTags = String8(args[i + 1]);
+ }
+ break;
+ }
+ }
+
for (auto& state : mCameraStates) {
String8 cameraId = state.first;