mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-02-05 18:55:23 +03:00
Fix logic
This commit is contained in:
parent
fa252ce1cb
commit
b1d414b75c
@ -38,15 +38,13 @@ class SegmentInfo:
|
|||||||
|
|
||||||
def should_discard_segment(self, retain_mode: RetainModeEnum) -> bool:
|
def should_discard_segment(self, retain_mode: RetainModeEnum) -> bool:
|
||||||
return (
|
return (
|
||||||
(retain_mode == RetainModeEnum.motion and self.motion_box_count == 0)
|
retain_mode == RetainModeEnum.motion
|
||||||
or (
|
and self.motion_box_count == 0
|
||||||
retain_mode == RetainModeEnum.motion and self.average_dBFS == 0
|
and self.average_dBFS == 0
|
||||||
) # dBFS is stored in a negative scale
|
) or (
|
||||||
or (
|
|
||||||
retain_mode == RetainModeEnum.active_objects
|
retain_mode == RetainModeEnum.active_objects
|
||||||
and self.active_object_count == 0
|
and self.active_object_count == 0
|
||||||
)
|
)
|
||||||
)
|
|
||||||
|
|
||||||
|
|
||||||
class RecordingMaintainer(threading.Thread):
|
class RecordingMaintainer(threading.Thread):
|
||||||
|
|||||||
@ -5,27 +5,27 @@ from frigate.record.maintainer import SegmentInfo
|
|||||||
|
|
||||||
|
|
||||||
class TestRecordRetention(unittest.TestCase):
|
class TestRecordRetention(unittest.TestCase):
|
||||||
def test_motion_should_keep_motion_not_object():
|
def test_motion_should_keep_motion_not_object(self):
|
||||||
segment_info = SegmentInfo(
|
segment_info = SegmentInfo(
|
||||||
motion_box_count=1, active_object_count=0, average_dBFS=0
|
motion_box_count=1, active_object_count=0, average_dBFS=0
|
||||||
)
|
)
|
||||||
assert not segment_info.should_discard_segment(RetainModeEnum.motion)
|
assert not segment_info.should_discard_segment(RetainModeEnum.motion)
|
||||||
assert segment_info.should_discard_segment(RetainModeEnum.active_objects)
|
assert segment_info.should_discard_segment(RetainModeEnum.active_objects)
|
||||||
|
|
||||||
def test_object_should_keep_object_not_motion():
|
def test_object_should_keep_object_not_motion(self):
|
||||||
segment_info = SegmentInfo(
|
segment_info = SegmentInfo(
|
||||||
motion_box_count=0, active_object_count=1, average_dBFS=0
|
motion_box_count=0, active_object_count=1, average_dBFS=0
|
||||||
)
|
)
|
||||||
assert segment_info.should_discard_segment(RetainModeEnum.motion)
|
assert segment_info.should_discard_segment(RetainModeEnum.motion)
|
||||||
assert not segment_info.should_discard_segment(RetainModeEnum.active_objects)
|
assert not segment_info.should_discard_segment(RetainModeEnum.active_objects)
|
||||||
|
|
||||||
def test_all_should_keep_all():
|
def test_all_should_keep_all(self):
|
||||||
segment_info = SegmentInfo(
|
segment_info = SegmentInfo(
|
||||||
motion_box_count=0, active_object_count=0, average_dBFS=0
|
motion_box_count=0, active_object_count=0, average_dBFS=0
|
||||||
)
|
)
|
||||||
assert not segment_info.should_discard_segment(RetainModeEnum.all)
|
assert not segment_info.should_discard_segment(RetainModeEnum.all)
|
||||||
|
|
||||||
def test_should_keep_audio_in_motion_mode():
|
def test_should_keep_audio_in_motion_mode(self):
|
||||||
segment_info = SegmentInfo(
|
segment_info = SegmentInfo(
|
||||||
motion_box_count=0, active_object_count=0, average_dBFS=1
|
motion_box_count=0, active_object_count=0, average_dBFS=1
|
||||||
)
|
)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user