From 95a8ed65c43386a3aafe91bf9a0646313d70db1d Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Fri, 12 Apr 2024 21:21:43 -0600 Subject: [PATCH] Catch file not found for alert frame --- frigate/review/maintainer.py | 38 +++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/frigate/review/maintainer.py b/frigate/review/maintainer.py index f04920d2c..ebc03a35e 100644 --- a/frigate/review/maintainer.py +++ b/frigate/review/maintainer.py @@ -204,13 +204,16 @@ class ReviewSegmentMaintainer(threading.Thread): segment.zones.update(object["current_zones"]) if len(active_objects) > segment.frame_active_count: - frame_id = f"{camera_config.name}{frame_time}" - yuv_frame = self.frame_manager.get( - frame_id, camera_config.frame_shape_yuv - ) - segment.update_frame(camera_config, yuv_frame, active_objects) - self.frame_manager.close(frame_id) - self.update_segment(segment) + try: + frame_id = f"{camera_config.name}{frame_time}" + yuv_frame = self.frame_manager.get( + frame_id, camera_config.frame_shape_yuv + ) + segment.update_frame(camera_config, yuv_frame, active_objects) + self.frame_manager.close(frame_id) + self.update_segment(segment) + except FileNotFoundError: + return else: if segment.severity == SeverityEnum.alert and frame_time > ( segment.last_update + THRESHOLD_ALERT_ACTIVITY @@ -293,15 +296,18 @@ class ReviewSegmentMaintainer(threading.Thread): zones=zones, ) - frame_id = f"{camera_config.name}{frame_time}" - yuv_frame = self.frame_manager.get( - frame_id, camera_config.frame_shape_yuv - ) - self.active_review_segments[camera].update_frame( - camera_config, yuv_frame, active_objects - ) - self.frame_manager.close(frame_id) - self.update_segment(self.active_review_segments[camera]) + try: + frame_id = f"{camera_config.name}{frame_time}" + yuv_frame = self.frame_manager.get( + frame_id, camera_config.frame_shape_yuv + ) + self.active_review_segments[camera].update_frame( + camera_config, yuv_frame, active_objects + ) + self.frame_manager.close(frame_id) + self.update_segment(self.active_review_segments[camera]) + except FileNotFoundError: + return def run(self) -> None: while not self.stop_event.is_set():