From 9e37217d851e7136b752ec4552c6d95efddd3c4f Mon Sep 17 00:00:00 2001 From: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com> Date: Sun, 20 Oct 2024 13:19:58 -0500 Subject: [PATCH] only save a fixed number of thumbnails if genai is enabled --- frigate/embeddings/maintainer.py | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/frigate/embeddings/maintainer.py b/frigate/embeddings/maintainer.py index c7060b9a6..7ce63e7f8 100644 --- a/frigate/embeddings/maintainer.py +++ b/frigate/embeddings/maintainer.py @@ -31,6 +31,8 @@ from .embeddings import Embeddings logger = logging.getLogger(__name__) +MAX_THUMBNAILS = 10 + class EmbeddingMaintainer(threading.Thread): """Handle embedding queue and post event updates.""" @@ -117,6 +119,15 @@ class EmbeddingMaintainer(threading.Thread): return camera_config = self.config.cameras[camera] + # no need to save our own thumbnails if genai is not enabled + # or if the object has become stationary + if ( + not camera_config.genai.enabled + or self.genai_client is None + or data["stationary"] + ): + return + if data["id"] not in self.tracked_events: self.tracked_events[data["id"]] = [] @@ -127,7 +138,14 @@ class EmbeddingMaintainer(threading.Thread): if yuv_frame is not None: data["thumbnail"] = self._create_thumbnail(yuv_frame, data["box"]) + + # Limit the number of thumbnails saved + if len(self.tracked_events[data["id"]]) >= MAX_THUMBNAILS: + # Always keep the first thumbnail for the event + self.tracked_events[data["id"]].pop(1) + self.tracked_events[data["id"]].append(data) + self.frame_manager.close(frame_id) except FileNotFoundError: pass