From 3c7db7bd5b1db889f7e0473c6e1ee726dacf8817 Mon Sep 17 00:00:00 2001 From: uvjustin <46082645+uvjustin@users.noreply.github.com> Date: Fri, 19 Feb 2021 00:00:26 +0800 Subject: [PATCH] Skip repeated segment in stream recorder (#46701) * Skip repeated segment in stream recorder * Allow for multiple overlap --- homeassistant/components/stream/recorder.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/homeassistant/components/stream/recorder.py b/homeassistant/components/stream/recorder.py index 0fc3d84b1b9..96531233771 100644 --- a/homeassistant/components/stream/recorder.py +++ b/homeassistant/components/stream/recorder.py @@ -42,7 +42,14 @@ def recorder_save_worker(file_out: str, segments: List[Segment], container_forma ) source.close() + last_sequence = float("-inf") for segment in segments: + # Because the stream_worker is in a different thread from the record service, + # the lookback segments may still have some overlap with the recorder segments + if segment.sequence <= last_sequence: + continue + last_sequence = segment.sequence + # Open segment source = av.open(segment.segment, "r", format=container_format) source_v = source.streams.video[0]