Camera: Add feature combination query analytics
Add analytics for isSessionConfigurationSupported
and getSessionCharacteristics.
Test: statsd_testdrive 900
Bug: 321095612
Change-Id: I6a90f54794a4ad175c7f1ffe3b253ec1499860ab
diff --git a/camera/Android.bp b/camera/Android.bp
index 75c2999..36db74a 100644
--- a/camera/Android.bp
+++ b/camera/Android.bp
@@ -168,6 +168,7 @@
name: "libcamera_client_aidl",
srcs: [
"aidl/android/hardware/CameraExtensionSessionStats.aidl",
+ "aidl/android/hardware/CameraFeatureCombinationStats.aidl",
"aidl/android/hardware/ICameraService.aidl",
"aidl/android/hardware/ICameraServiceListener.aidl",
"aidl/android/hardware/ICameraServiceProxy.aidl",
diff --git a/camera/aidl/android/hardware/CameraFeatureCombinationStats.aidl b/camera/aidl/android/hardware/CameraFeatureCombinationStats.aidl
new file mode 100644
index 0000000..f4a11b1
--- /dev/null
+++ b/camera/aidl/android/hardware/CameraFeatureCombinationStats.aidl
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2024 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.hardware;
+
+/**
+ * {@hide}
+ */
+parcelable CameraFeatureCombinationStats {
+ /**
+ * Values for feature combination queries
+ */
+ const long CAMERA_FEATURE_UNKNOWN = 0;
+ const long CAMERA_FEATURE_60_FPS = 1 << 0;
+ const long CAMERA_FEATURE_STABILIZATION = 1 << 1;
+ const long CAMERA_FEATURE_HLG10 = 1 << 2;
+ const long CAMERA_FEATURE_JPEG = 1 << 3;
+ const long CAMERA_FEATURE_JPEG_R = 1 << 4;
+ const long CAMERA_FEATURE_4K = 1 << 5;
+
+ /**
+ * Values for notifyFeatureCombinationStats type
+ */
+ enum QueryType {
+ QUERY_FEATURE_COMBINATION = 0,
+ QUERY_SESSION_CHARACTERISTICS = 1,
+ }
+
+ @utf8InCpp String mCameraId;
+ int mUid;
+ long mFeatureCombination;
+ int mQueryType;
+ int mStatus;
+}
diff --git a/camera/aidl/android/hardware/ICameraServiceProxy.aidl b/camera/aidl/android/hardware/ICameraServiceProxy.aidl
index dcd69b0..887a68b 100644
--- a/camera/aidl/android/hardware/ICameraServiceProxy.aidl
+++ b/camera/aidl/android/hardware/ICameraServiceProxy.aidl
@@ -16,6 +16,7 @@
package android.hardware;
+import android.hardware.CameraFeatureCombinationStats;
import android.hardware.CameraSessionStats;
import android.hardware.CameraExtensionSessionStats;
@@ -38,6 +39,12 @@
oneway void notifyCameraState(in CameraSessionStats cameraSessionStats);
/**
+ * Notify feature combination query for a camera device.
+ */
+ oneway void notifyFeatureCombinationStats(
+ in CameraFeatureCombinationStats cameraFeatureCombinationStats);
+
+ /**
* Returns the necessary rotate and crop override for the top activity which
* will be one of ({@link android.hardware.camera2.CameraMetadata#SCALER_ROTATE_AND_CROP_NONE},
* {@link android.hardware.camera2.CameraMetadata#SCALER_ROTATE_AND_CROP_90},