From f0a59da933a40855d5678ed6aa479af6ebb96dbc Mon Sep 17 00:00:00 2001 From: Nick Mowen Date: Mon, 19 Jun 2023 07:32:31 -0600 Subject: [PATCH] End events correctly --- frigate/events/audio.py | 7 +++++-- frigate/events/maintainer.py | 30 +++++++++++++----------------- 2 files changed, 18 insertions(+), 19 deletions(-) diff --git a/frigate/events/audio.py b/frigate/events/audio.py index 2e58f3409..6d627fc5b 100644 --- a/frigate/events/audio.py +++ b/frigate/events/audio.py @@ -51,8 +51,8 @@ def listen_to_audio(config: FrigateConfig, event_queue: mp.Queue) -> None: signal.signal(signal.SIGTERM, receiveSignal) signal.signal(signal.SIGINT, receiveSignal) - threading.current_thread().name = "process:recording_manager" - setproctitle("frigate.recording_manager") + threading.current_thread().name = "process:audio_manager" + setproctitle("frigate.audio_manager") listen() for camera in config.cameras.values(): @@ -170,6 +170,7 @@ class AudioEventMaintainer(threading.Thread): "id": event_id, "label": label, "camera": self.config.name, + "score": score, "start_time": now - self.config.record.events.pre_capture, "last_detection": now, } @@ -188,6 +189,7 @@ class AudioEventMaintainer(threading.Thread): self.queue.put( (EventTypeEnum.audio, "end", self.config.name, detection) ) + self.detections[detection["label"]] = None def restart_audio_pipe(self) -> None: try: @@ -216,3 +218,4 @@ class AudioEventMaintainer(threading.Thread): self.read_audio() stop_ffmpeg(self.audio_listener, logger) + self.pipe_file.close() diff --git a/frigate/events/maintainer.py b/frigate/events/maintainer.py index a28ec39e0..7fdb67aef 100644 --- a/frigate/events/maintainer.py +++ b/frigate/events/maintainer.py @@ -219,23 +219,19 @@ class EventProcessor(threading.Thread): self.event_processed_queue.put((event_data["id"], camera)) def handle_audio_detection(self, type: str, event_data: Event) -> None: - if type == "start": - event = { - Event.id: event_data["id"], - Event.label: event_data["label"], - Event.camera: event_data["camera"], - Event.start_time: event_data["start_time"], - Event.thumbnail: None, - Event.has_clip: True, - Event.has_snapshot: True, - Event.zones: [], - Event.data: {}, - } - elif type == "end": - event = { - Event.id: event_data["id"], - Event.end_time: event_data["end_time"], - } + event = { + Event.id: event_data["id"], + Event.label: event_data["label"], + Event.score: event_data["score"], + Event.camera: event_data["camera"], + Event.start_time: event_data["start_time"], + Event.end_time: event_data.get("end_time"), + Event.thumbnail: "", + Event.has_clip: True, + Event.has_snapshot: True, + Event.zones: [], + Event.data: {}, + } ( Event.insert(event)