[libcamera-devel,v2,4/8] android: camera_device: Clear allocator at configureStream

Message ID 20200918135041.91492-5-jacopo@jmondi.org
State Superseded
Headers show
Series
  • android: camera_device: Add support for internal buffers
Related show

Commit Message

Jacopo Mondi Sept. 18, 2020, 1:50 p.m. UTC
The configureStream operation might be called by the Android framework
in two successive capture session without going through a close().

Clear all the allocated buffers before configuring the camera streams.

Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Reviewed-by: Hirokazu Honda <hiroh@chromium.org>
Signed-off-by: Jacopo Mondi <jacopo@jmondi.org>
---
 src/android/camera_device.cpp | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

Patch

diff --git a/src/android/camera_device.cpp b/src/android/camera_device.cpp
index 98b8159ebd8c..42fb9ea4e113 100644
--- a/src/android/camera_device.cpp
+++ b/src/android/camera_device.cpp
@@ -1182,12 +1182,13 @@  int CameraDevice::configureStreams(camera3_stream_configuration_t *stream_list)
 	}
 
 	/*
-	 * Clear and remove any existing configuration from previous calls, and
-	 * ensure the required entries are available without further
-	 * reallocation.
+	 * Clear and remove any existing configuration and memory allocated from
+	 * previous calls, and ensure the required entries are available without
+	 * further reallocation.
 	 */
 	streams_.clear();
 	streams_.reserve(stream_list->num_streams);
+	allocator_.clear();
 
 	/* First handle all non-MJPEG streams. */
 	camera3_stream_t *jpegStream = nullptr;