Close threads when stop event is sent

This commit is contained in:
Nick Mowen 2023-06-19 08:05:26 -06:00
parent 5c230ee0f5
commit 4239110af5

View File

@ -43,10 +43,14 @@ FFMPEG_COMMAND = (
def listen_to_audio(config: FrigateConfig) -> None: def listen_to_audio(config: FrigateConfig) -> None:
stop_event = mp.Event() stop_event = mp.Event()
audio_threads: list[threading.Thread] = []
def receiveSignal(signalNumber: int, frame: Optional[FrameType]) -> None: def receiveSignal(signalNumber: int, frame: Optional[FrameType]) -> None:
stop_event.set() stop_event.set()
for thread in audio_threads:
thread.join()
signal.signal(signal.SIGTERM, receiveSignal) signal.signal(signal.SIGTERM, receiveSignal)
signal.signal(signal.SIGINT, receiveSignal) signal.signal(signal.SIGINT, receiveSignal)
@ -56,7 +60,9 @@ def listen_to_audio(config: FrigateConfig) -> None:
for camera in config.cameras.values(): for camera in config.cameras.values():
if camera.enabled and camera.audio.enabled: if camera.enabled and camera.audio.enabled:
AudioEventMaintainer(camera, stop_event).start() audio = AudioEventMaintainer(camera, stop_event)
audio_threads.append(audio)
audio.start()
class AudioTfl: class AudioTfl: