From 4ffce38fc0c9d4a8ef2593a5d9f0808aca6be2c9 Mon Sep 17 00:00:00 2001 From: Blake Blackshear Date: Fri, 3 Feb 2023 18:34:29 -0600 Subject: [PATCH] handle the stop event in the broadcast threads --- frigate/output.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/frigate/output.py b/frigate/output.py index b03599f18..3ddf4f2f6 100644 --- a/frigate/output.py +++ b/frigate/output.py @@ -109,14 +109,15 @@ class FFMpegConverter: class BroadcastThread(threading.Thread): - def __init__(self, camera, converter, websocket_server): + def __init__(self, camera, converter, websocket_server, stop_event): super(BroadcastThread, self).__init__() self.camera = camera self.converter = converter self.websocket_server = websocket_server + self.stop_event = stop_event def run(self): - while True: + while not self.stop_event.is_set(): buf = self.converter.read(65536) if buf: manager = self.websocket_server.manager @@ -426,7 +427,7 @@ def output_frames(config: FrigateConfig, video_output_queue): cam_config.live.quality, ) broadcasters[camera] = BroadcastThread( - camera, converters[camera], websocket_server + camera, converters[camera], websocket_server, stop_event ) if config.birdseye.enabled: @@ -439,7 +440,7 @@ def output_frames(config: FrigateConfig, video_output_queue): config.birdseye.restream, ) broadcasters["birdseye"] = BroadcastThread( - "birdseye", converters["birdseye"], websocket_server + "birdseye", converters["birdseye"], websocket_server, stop_event ) websocket_thread.start()