diff options
| author | 2023-05-01 19:43:30 -0700 | |
|---|---|---|
| committer | 2023-05-09 13:53:24 -0700 | |
| commit | 5409fbac997f7d7394cf7f9906293b2894e5b7c5 (patch) | |
| tree | 65ebce2cf1f0b39dd8590750b4046c8d18dd8efd | |
| parent | feb922b0ced2ef82a6f88ad3fd42354a5335d275 (diff) | |
cameraservice: Log session index
For tracking camera performance, it is helpful to know the order in
which camera sessions were created.
This CL adds a sessionIndex field to CameraSessionStats which tracks
the order in which sessions were created. This field is logged by
ICameraServiceProxy.
Bug: 236318755
Test: No functional change.
`atest CtsCameraTestCases` passes
Change-Id: I5a5accdb2fd3d1de6e7ec31f3e67faaeccb0d3dc
| -rw-r--r-- | core/java/android/hardware/CameraSessionStats.java | 12 | ||||
| -rw-r--r-- | services/core/java/com/android/server/camera/CameraServiceProxy.java | 16 |
2 files changed, 21 insertions, 7 deletions
diff --git a/core/java/android/hardware/CameraSessionStats.java b/core/java/android/hardware/CameraSessionStats.java index 79a551a6be1e..d59295ebe940 100644 --- a/core/java/android/hardware/CameraSessionStats.java +++ b/core/java/android/hardware/CameraSessionStats.java @@ -64,6 +64,7 @@ public class CameraSessionStats implements Parcelable { private ArrayList<CameraStreamStats> mStreamStats; private String mUserTag; private int mVideoStabilizationMode; + private int mSessionIndex; public CameraSessionStats() { mFacing = -1; @@ -80,11 +81,13 @@ public class CameraSessionStats implements Parcelable { mDeviceError = false; mStreamStats = new ArrayList<CameraStreamStats>(); mVideoStabilizationMode = -1; + mSessionIndex = 0; } public CameraSessionStats(String cameraId, int facing, int newCameraState, String clientName, int apiLevel, boolean isNdk, int creationDuration, - float maxPreviewFps, int sessionType, int internalReconfigure, long logId) { + float maxPreviewFps, int sessionType, int internalReconfigure, long logId, + int sessionIdx) { mCameraId = cameraId; mFacing = facing; mNewCameraState = newCameraState; @@ -97,6 +100,7 @@ public class CameraSessionStats implements Parcelable { mSessionType = sessionType; mInternalReconfigure = internalReconfigure; mStreamStats = new ArrayList<CameraStreamStats>(); + mSessionIndex = sessionIdx; } public static final @android.annotation.NonNull Parcelable.Creator<CameraSessionStats> CREATOR = @@ -140,6 +144,7 @@ public class CameraSessionStats implements Parcelable { dest.writeTypedList(mStreamStats); dest.writeString(mUserTag); dest.writeInt(mVideoStabilizationMode); + dest.writeInt(mSessionIndex); } public void readFromParcel(Parcel in) { @@ -164,6 +169,7 @@ public class CameraSessionStats implements Parcelable { mUserTag = in.readString(); mVideoStabilizationMode = in.readInt(); + mSessionIndex = in.readInt(); } public String getCameraId() { @@ -233,4 +239,8 @@ public class CameraSessionStats implements Parcelable { public int getVideoStabilizationMode() { return mVideoStabilizationMode; } + + public int getSessionIndex() { + return mSessionIndex; + } } diff --git a/services/core/java/com/android/server/camera/CameraServiceProxy.java b/services/core/java/com/android/server/camera/CameraServiceProxy.java index e8af840afe6e..0315352be133 100644 --- a/services/core/java/com/android/server/camera/CameraServiceProxy.java +++ b/services/core/java/com/android/server/camera/CameraServiceProxy.java @@ -244,12 +244,13 @@ public class CameraServiceProxy extends SystemService public String mUserTag; public int mVideoStabilizationMode; public final long mLogId; + public final int mSessionIndex; private long mDurationOrStartTimeMs; // Either start time, or duration once completed CameraUsageEvent(String cameraId, int facing, String clientName, int apiLevel, boolean isNdk, int action, int latencyMs, int operatingMode, boolean deviceError, - long logId) { + long logId, int sessionIdx) { mCameraId = cameraId; mCameraFacing = facing; mClientName = clientName; @@ -262,6 +263,7 @@ public class CameraServiceProxy extends SystemService mOperatingMode = operatingMode; mDeviceError = deviceError; mLogId = logId; + mSessionIndex = sessionIdx; } public void markCompleted(int internalReconfigure, long requestCount, @@ -844,7 +846,8 @@ public class CameraServiceProxy extends SystemService + ", streamCount is " + streamCount + ", userTag is " + e.mUserTag + ", videoStabilizationMode " + e.mVideoStabilizationMode - + ", logId " + e.mLogId); + + ", logId " + e.mLogId + + ", sessionIndex " + e.mSessionIndex); } // Convert from CameraStreamStats to CameraStreamProto CameraStreamProto[] streamProtos = new CameraStreamProto[MAX_STREAM_STATISTICS]; @@ -904,7 +907,7 @@ public class CameraServiceProxy extends SystemService MessageNano.toByteArray(streamProtos[2]), MessageNano.toByteArray(streamProtos[3]), MessageNano.toByteArray(streamProtos[4]), - e.mUserTag, e.mVideoStabilizationMode, e.mLogId); + e.mUserTag, e.mVideoStabilizationMode, e.mLogId, e.mSessionIndex); } } @@ -1094,6 +1097,7 @@ public class CameraServiceProxy extends SystemService String userTag = cameraState.getUserTag(); int videoStabilizationMode = cameraState.getVideoStabilizationMode(); long logId = cameraState.getLogId(); + int sessionIdx = cameraState.getSessionIndex(); synchronized(mLock) { // Update active camera list and notify NFC if necessary boolean wasEmpty = mActiveCameraUsage.isEmpty(); @@ -1115,7 +1119,7 @@ public class CameraServiceProxy extends SystemService CameraUsageEvent openEvent = new CameraUsageEvent( cameraId, facing, clientName, apiLevel, isNdk, FrameworkStatsLog.CAMERA_ACTION_EVENT__ACTION__OPEN, - latencyMs, sessionType, deviceError, logId); + latencyMs, sessionType, deviceError, logId, sessionIdx); mCameraUsageHistory.add(openEvent); break; case CameraSessionStats.CAMERA_STATE_ACTIVE: @@ -1142,7 +1146,7 @@ public class CameraServiceProxy extends SystemService CameraUsageEvent newEvent = new CameraUsageEvent( cameraId, facing, clientName, apiLevel, isNdk, FrameworkStatsLog.CAMERA_ACTION_EVENT__ACTION__SESSION, - latencyMs, sessionType, deviceError, logId); + latencyMs, sessionType, deviceError, logId, sessionIdx); CameraUsageEvent oldEvent = mActiveCameraUsage.put(cameraId, newEvent); if (oldEvent != null) { Slog.w(TAG, "Camera " + cameraId + " was already marked as active"); @@ -1186,7 +1190,7 @@ public class CameraServiceProxy extends SystemService CameraUsageEvent closeEvent = new CameraUsageEvent( cameraId, facing, clientName, apiLevel, isNdk, FrameworkStatsLog.CAMERA_ACTION_EVENT__ACTION__CLOSE, - latencyMs, sessionType, deviceError, logId); + latencyMs, sessionType, deviceError, logId, sessionIdx); mCameraUsageHistory.add(closeEvent); } |