From b42479b73b7bfb7e9199c1d563f75a9ea196a8c2 Mon Sep 17 00:00:00 2001 From: Hiroki Mine Date: Tue, 28 Feb 2023 14:24:28 +0900 Subject: [PATCH] Fix the memory leak during high speed recording During high speed recording, 4 CaptureResults are marked in the mPartialResults at one time, but only 1 is removed. This change fixes to remove requestCount of CaptureResults at one time. Bug: 271052477 Change-Id: I15efe031ef37315118f65b8a3e82f4aec68d9820 --- .../android/hardware/camera2/impl/CameraDeviceImpl.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java b/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java index a6c79b3a289f8..9179f5de1a4f3 100644 --- a/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java +++ b/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java @@ -2228,6 +2228,12 @@ public class CameraDeviceImpl extends CameraDevice } else { List partialResults = mFrameNumberTracker.popPartialResults(frameNumber); + if (mBatchOutputMap.containsKey(requestId)) { + int requestCount = mBatchOutputMap.get(requestId); + for (int i = 1; i < requestCount; i++) { + mFrameNumberTracker.popPartialResults(frameNumber - (requestCount - i)); + } + } final long sensorTimestamp = result.get(CaptureResult.SENSOR_TIMESTAMP);