fix(video): release shm handle when a captured frame is skipped

This commit is contained in:
Bazyl Horsey 2026-08-21 16:37:24 -05:00
parent b1cdf1f76b
commit 10179b5cfb

View File

@ -99,10 +99,14 @@ def capture_frames(
try:
# add to the queue
frame_queue.put((frame_name, current_frame.value), False)
frame_manager.close(frame_name)
except queue.Full:
# if the queue is full, skip this frame
skipped_eps.update()
finally:
# release our handle either way. on the skip path the frame is
# never handed to a consumer, so nothing else will close it and
# the mapping stays open until this ring slot comes back around.
frame_manager.close(frame_name)
frame_index = 0 if frame_index == shm_frame_count - 1 else frame_index + 1
finally: