mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-02-03 01:35:22 +03:00
Handle edge case for cameras that only record part time
This commit is contained in:
parent
959c648ac9
commit
4d9040b49f
@ -140,6 +140,11 @@ class StorageMaintainer(threading.Thread):
|
|||||||
.limit(segment_count * 12)
|
.limit(segment_count * 12)
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# cameras that are only recording part time
|
||||||
|
# should not be forced to have 2 hours of
|
||||||
|
# recordings disabled
|
||||||
|
limited_recorder = len(recordings) < segment_count
|
||||||
|
|
||||||
# Get retained events to check against
|
# Get retained events to check against
|
||||||
retained_events: Event = (
|
retained_events: Event = (
|
||||||
Event.select()
|
Event.select()
|
||||||
@ -156,8 +161,9 @@ class StorageMaintainer(threading.Thread):
|
|||||||
recordings, retained_events, segment_count
|
recordings, retained_events, segment_count
|
||||||
)
|
)
|
||||||
|
|
||||||
# check if 2 hours of segments were deleted from the 24 retrieved
|
# check if 2 hours of segments were deleted from the 24 hours retrieved
|
||||||
if len(deleted_recordings) < segment_count:
|
# if camera is a limited recorder then do not force removal
|
||||||
|
if not limited_recorder and len(deleted_recordings) < segment_count:
|
||||||
logger.debug(
|
logger.debug(
|
||||||
f"segment target of {segment_count} > {len(deleted_recordings)}, pulling all non-retained recordings"
|
f"segment target of {segment_count} > {len(deleted_recordings)}, pulling all non-retained recordings"
|
||||||
)
|
)
|
||||||
@ -167,13 +173,14 @@ class StorageMaintainer(threading.Thread):
|
|||||||
.where(Recordings.camera == camera)
|
.where(Recordings.camera == camera)
|
||||||
.order_by(Recordings.start_time.asc())
|
.order_by(Recordings.start_time.asc())
|
||||||
)
|
)
|
||||||
|
limited_recorder = len(recordings) < segment_count
|
||||||
second_run: set[str] = self.delete_recording_segments(
|
second_run: set[str] = self.delete_recording_segments(
|
||||||
recordings, retained_events, segment_count
|
recordings, retained_events, segment_count
|
||||||
)
|
)
|
||||||
deleted_recordings = deleted_recordings.union(second_run)
|
deleted_recordings = deleted_recordings.union(second_run)
|
||||||
|
|
||||||
# check if still 2 hour quota still not meant
|
# check if still 2 hour quota still not meant
|
||||||
if len(deleted_recordings) < segment_count:
|
if not limited_recorder and len(deleted_recordings) < segment_count:
|
||||||
logger.debug(
|
logger.debug(
|
||||||
f"segment target of {segment_count} > {len(deleted_recordings)}, pulling all recordings"
|
f"segment target of {segment_count} > {len(deleted_recordings)}, pulling all recordings"
|
||||||
)
|
)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user