From 613f1f6bd66e3365dfbe3db4a4709ad461e7dca4 Mon Sep 17 00:00:00 2001 From: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com> Date: Wed, 25 Oct 2023 14:06:57 -0500 Subject: [PATCH] check frame time for segment --- frigate/record/maintainer.py | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/frigate/record/maintainer.py b/frigate/record/maintainer.py index 8f55e9442..cdd1340aa 100644 --- a/frigate/record/maintainer.py +++ b/frigate/record/maintainer.py @@ -265,10 +265,16 @@ class RecordingMaintainer(threading.Thread): self.end_time_cache.pop(cache_path, None) # else retain days includes this segment else: - record_mode = self.config.cameras[camera].record.retain.mode - return await self.move_segment( - camera, start_time, end_time, duration, cache_path, record_mode - ) + most_recently_processed_frame_time = self.object_recordings_info[camera][ + -1 + ][0] + + # ensure delayed segment info does not lead to lost segments + if most_recently_processed_frame_time >= start_time: + record_mode = self.config.cameras[camera].record.retain.mode + return await self.move_segment( + camera, start_time, end_time, duration, cache_path, record_mode + ) def segment_stats( self, camera: str, start_time: datetime.datetime, end_time: datetime.datetime