Skip to content

Commit 2abf57a

Browse files
committed
Startup requests must be released back to the camera system
Signed-off-by: David Plowman <[email protected]>
1 parent dac3571 commit 2abf57a

File tree

1 file changed

+8
-4
lines changed

1 file changed

+8
-4
lines changed

picamera2/picamera2.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1331,13 +1331,17 @@ def set_controls(self, controls) -> None:
13311331

13321332
def process_requests(self, display) -> None:
13331333
# This is the function that the event loop, which runs externally to us, must call.
1334-
requests = []
1334+
new_requests = []
13351335
with self._requestslock:
1336-
requests = self._requests
1336+
new_requests = self._requests
13371337
self._requests = []
13381338
# Discard "startup frames", or frames with errors etc.
1339-
requests = [req for req in requests
1340-
if next(iter(req.request.buffers.values())).metadata.status == libcamera.FrameMetadata.Status.Success]
1339+
requests = []
1340+
for req in new_requests:
1341+
if next(iter(req.request.buffers.values())).metadata.status == libcamera.FrameMetadata.Status.Success:
1342+
requests.append(req)
1343+
else:
1344+
req.release()
13411345
self.frames += len(requests)
13421346
# It works like this:
13431347
# * We maintain a list of the requests that libcamera has completed (completed_requests).

0 commit comments

Comments
 (0)