mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-10-12 17:52:48 +03:00
stop creating a config subscriber per capture thread (#24002)
This commit is contained in:
committed by
Nicolas Mowen
parent
d78f6a7a98
commit
f7c5500ea8
+5
-16
@@ -54,18 +54,11 @@ def capture_frames(
|
|||||||
skipped_eps = EventsPerSecond()
|
skipped_eps = EventsPerSecond()
|
||||||
skipped_eps.start()
|
skipped_eps.start()
|
||||||
|
|
||||||
config_subscriber = CameraConfigUpdateSubscriber(
|
|
||||||
None, {config.name: config}, [CameraConfigUpdateEnum.enabled]
|
|
||||||
)
|
|
||||||
|
|
||||||
def get_enabled_state():
|
|
||||||
"""Fetch the latest enabled state from ZMQ."""
|
|
||||||
config_subscriber.check_for_updates()
|
|
||||||
return config.enabled
|
|
||||||
|
|
||||||
try:
|
|
||||||
while not stop_event.is_set():
|
while not stop_event.is_set():
|
||||||
if not get_enabled_state():
|
# CameraWatchdog applies enabled updates onto this same CameraConfig
|
||||||
|
# before it stops ffmpeg. Do not subscribe here: it would be rebuilt per
|
||||||
|
# ffmpeg restart and strand a pipe in the idle main process config PUB.
|
||||||
|
if not config.enabled:
|
||||||
logger.debug(f"Stopping capture thread for disabled {config.name}")
|
logger.debug(f"Stopping capture thread for disabled {config.name}")
|
||||||
break
|
break
|
||||||
|
|
||||||
@@ -81,9 +74,7 @@ def capture_frames(
|
|||||||
if stop_event.is_set():
|
if stop_event.is_set():
|
||||||
break
|
break
|
||||||
|
|
||||||
logger.error(
|
logger.error(f"{config.name}: Unable to read frames from ffmpeg process.")
|
||||||
f"{config.name}: Unable to read frames from ffmpeg process."
|
|
||||||
)
|
|
||||||
|
|
||||||
if ffmpeg_process.poll() is not None:
|
if ffmpeg_process.poll() is not None:
|
||||||
logger.error(
|
logger.error(
|
||||||
@@ -105,8 +96,6 @@ def capture_frames(
|
|||||||
skipped_eps.update()
|
skipped_eps.update()
|
||||||
|
|
||||||
frame_index = 0 if frame_index == shm_frame_count - 1 else frame_index + 1
|
frame_index = 0 if frame_index == shm_frame_count - 1 else frame_index + 1
|
||||||
finally:
|
|
||||||
config_subscriber.stop()
|
|
||||||
|
|
||||||
|
|
||||||
class CameraWatchdog(threading.Thread):
|
class CameraWatchdog(threading.Thread):
|
||||||
|
|||||||
Reference in New Issue
Block a user