From 4e8a3abd9d3051662ef73263ab868487dffab4b9 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 f2d8caaab0e7a..2106f1c7119a1 100644 --- a/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java +++ b/core/java/android/hardware/camera2/impl/CameraDeviceImpl.java @@ -2235,6 +2235,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);