Loading camera/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -168,6 +168,7 @@ filegroup { 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", Loading camera/aidl/android/hardware/CameraFeatureCombinationStats.aidl 0 → 100644 +47 −0 Original line number Diff line number Diff line /* * 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; } camera/aidl/android/hardware/ICameraServiceProxy.aidl +7 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package android.hardware; import android.hardware.CameraFeatureCombinationStats; import android.hardware.CameraSessionStats; import android.hardware.CameraExtensionSessionStats; Loading @@ -37,6 +38,12 @@ interface ICameraServiceProxy */ 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}, Loading services/camera/libcameraservice/CameraService.cpp +13 −3 Original line number Diff line number Diff line Loading @@ -926,8 +926,13 @@ Status CameraService::isSessionConfigurationWithParametersSupported( SessionConfigurationUtils::targetPerfClassPrimaryCamera( mPerfClassPrimaryCameraIds, cameraId, targetSdkVersion); return isSessionConfigurationWithParametersSupportedUnsafe(cameraId, sessionConfiguration, overrideForPerfClass, supported); auto ret = isSessionConfigurationWithParametersSupportedUnsafe(cameraId, sessionConfiguration, overrideForPerfClass, supported); if (flags::analytics_24q3()) { mCameraServiceProxyWrapper->logFeatureCombinationQuery(cameraId, getCallingUid(), sessionConfiguration, ret); } return ret; } Status CameraService::isSessionConfigurationWithParametersSupportedUnsafe( Loading Loading @@ -1071,7 +1076,12 @@ Status CameraService::getSessionCharacteristics(const std::string& unresolvedCam } } return filterSensitiveMetadataIfNeeded(cameraId, outMetadata); Status res = filterSensitiveMetadataIfNeeded(cameraId, outMetadata); if (flags::analytics_24q3()) { mCameraServiceProxyWrapper->logSessionCharacteristicsQuery(cameraId, getCallingUid(), sessionConfiguration, res); } return res; } Status CameraService::filterSensitiveMetadataIfNeeded( Loading services/camera/libcameraservice/tests/CameraPermissionsTest.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -146,6 +146,11 @@ public: return mCameraServiceProxy->notifyCameraState(cameraSessionStats); } virtual binder::Status notifyFeatureCombinationStats( const hardware::CameraFeatureCombinationStats& featureCombStats) override { return mCameraServiceProxy->notifyFeatureCombinationStats(featureCombStats); } virtual binder::Status isCameraDisabled(int userId, bool *ret) override { if (mOverrideCameraDisabled) { *ret = mCameraDisabled; Loading Loading
camera/Android.bp +1 −0 Original line number Diff line number Diff line Loading @@ -168,6 +168,7 @@ filegroup { 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", Loading
camera/aidl/android/hardware/CameraFeatureCombinationStats.aidl 0 → 100644 +47 −0 Original line number Diff line number Diff line /* * 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; }
camera/aidl/android/hardware/ICameraServiceProxy.aidl +7 −0 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package android.hardware; import android.hardware.CameraFeatureCombinationStats; import android.hardware.CameraSessionStats; import android.hardware.CameraExtensionSessionStats; Loading @@ -37,6 +38,12 @@ interface ICameraServiceProxy */ 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}, Loading
services/camera/libcameraservice/CameraService.cpp +13 −3 Original line number Diff line number Diff line Loading @@ -926,8 +926,13 @@ Status CameraService::isSessionConfigurationWithParametersSupported( SessionConfigurationUtils::targetPerfClassPrimaryCamera( mPerfClassPrimaryCameraIds, cameraId, targetSdkVersion); return isSessionConfigurationWithParametersSupportedUnsafe(cameraId, sessionConfiguration, overrideForPerfClass, supported); auto ret = isSessionConfigurationWithParametersSupportedUnsafe(cameraId, sessionConfiguration, overrideForPerfClass, supported); if (flags::analytics_24q3()) { mCameraServiceProxyWrapper->logFeatureCombinationQuery(cameraId, getCallingUid(), sessionConfiguration, ret); } return ret; } Status CameraService::isSessionConfigurationWithParametersSupportedUnsafe( Loading Loading @@ -1071,7 +1076,12 @@ Status CameraService::getSessionCharacteristics(const std::string& unresolvedCam } } return filterSensitiveMetadataIfNeeded(cameraId, outMetadata); Status res = filterSensitiveMetadataIfNeeded(cameraId, outMetadata); if (flags::analytics_24q3()) { mCameraServiceProxyWrapper->logSessionCharacteristicsQuery(cameraId, getCallingUid(), sessionConfiguration, res); } return res; } Status CameraService::filterSensitiveMetadataIfNeeded( Loading
services/camera/libcameraservice/tests/CameraPermissionsTest.cpp +5 −0 Original line number Diff line number Diff line Loading @@ -146,6 +146,11 @@ public: return mCameraServiceProxy->notifyCameraState(cameraSessionStats); } virtual binder::Status notifyFeatureCombinationStats( const hardware::CameraFeatureCombinationStats& featureCombStats) override { return mCameraServiceProxy->notifyFeatureCombinationStats(featureCombStats); } virtual binder::Status isCameraDisabled(int userId, bool *ret) override { if (mOverrideCameraDisabled) { *ret = mCameraDisabled; Loading