mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-02-05 02:35:22 +03:00
Setup timeline queue in events
This commit is contained in:
parent
229d134cb4
commit
cca6676004
@ -290,12 +290,17 @@ class FrigateApp:
|
|||||||
capture_process.start()
|
capture_process.start()
|
||||||
logger.info(f"Capture process started for {name}: {capture_process.pid}")
|
logger.info(f"Capture process started for {name}: {capture_process.pid}")
|
||||||
|
|
||||||
|
def start_timeline_processor(self) -> None:
|
||||||
|
self.timeline_processor = TimelineProcessor(self.timeline_queue, self.stop_event)
|
||||||
|
self.timeline_processor.start()
|
||||||
|
|
||||||
def start_event_processor(self) -> None:
|
def start_event_processor(self) -> None:
|
||||||
self.event_processor = EventProcessor(
|
self.event_processor = EventProcessor(
|
||||||
self.config,
|
self.config,
|
||||||
self.camera_metrics,
|
self.camera_metrics,
|
||||||
self.event_queue,
|
self.event_queue,
|
||||||
self.event_processed_queue,
|
self.event_processed_queue,
|
||||||
|
self.timeline_queue,
|
||||||
self.stop_event,
|
self.stop_event,
|
||||||
)
|
)
|
||||||
self.event_processor.start()
|
self.event_processor.start()
|
||||||
@ -318,10 +323,6 @@ class FrigateApp:
|
|||||||
self.storage_maintainer = StorageMaintainer(self.config, self.stop_event)
|
self.storage_maintainer = StorageMaintainer(self.config, self.stop_event)
|
||||||
self.storage_maintainer.start()
|
self.storage_maintainer.start()
|
||||||
|
|
||||||
def start_timeline_processor(self) -> None:
|
|
||||||
self.timeline_processor = TimelineProcessor(self.timeline_queue, self.stop_event)
|
|
||||||
self.timeline_processor.start()
|
|
||||||
|
|
||||||
def start_stats_emitter(self) -> None:
|
def start_stats_emitter(self) -> None:
|
||||||
self.stats_emitter = StatsEmitter(
|
self.stats_emitter = StatsEmitter(
|
||||||
self.config,
|
self.config,
|
||||||
@ -392,6 +393,7 @@ class FrigateApp:
|
|||||||
self.start_storage_maintainer()
|
self.start_storage_maintainer()
|
||||||
self.init_stats()
|
self.init_stats()
|
||||||
self.init_web_server()
|
self.init_web_server()
|
||||||
|
self.start_timeline_processor()
|
||||||
self.start_event_processor()
|
self.start_event_processor()
|
||||||
self.start_event_cleanup()
|
self.start_event_cleanup()
|
||||||
self.start_recording_maintainer()
|
self.start_recording_maintainer()
|
||||||
|
|||||||
@ -11,6 +11,7 @@ from peewee import fn
|
|||||||
from frigate.config import EventsConfig, FrigateConfig, RecordConfig
|
from frigate.config import EventsConfig, FrigateConfig, RecordConfig
|
||||||
from frigate.const import CLIPS_DIR
|
from frigate.const import CLIPS_DIR
|
||||||
from frigate.models import Event
|
from frigate.models import Event
|
||||||
|
from frigate.timeline import InputTypeEnum
|
||||||
from frigate.types import CameraMetricsTypes
|
from frigate.types import CameraMetricsTypes
|
||||||
|
|
||||||
from multiprocessing.queues import Queue
|
from multiprocessing.queues import Queue
|
||||||
@ -48,6 +49,7 @@ class EventProcessor(threading.Thread):
|
|||||||
camera_processes: dict[str, CameraMetricsTypes],
|
camera_processes: dict[str, CameraMetricsTypes],
|
||||||
event_queue: Queue,
|
event_queue: Queue,
|
||||||
event_processed_queue: Queue,
|
event_processed_queue: Queue,
|
||||||
|
timeline_queue: Queue,
|
||||||
stop_event: MpEvent,
|
stop_event: MpEvent,
|
||||||
):
|
):
|
||||||
threading.Thread.__init__(self)
|
threading.Thread.__init__(self)
|
||||||
@ -56,6 +58,7 @@ class EventProcessor(threading.Thread):
|
|||||||
self.camera_processes = camera_processes
|
self.camera_processes = camera_processes
|
||||||
self.event_queue = event_queue
|
self.event_queue = event_queue
|
||||||
self.event_processed_queue = event_processed_queue
|
self.event_processed_queue = event_processed_queue
|
||||||
|
self.timeline_queue = timeline_queue
|
||||||
self.events_in_process: Dict[str, Event] = {}
|
self.events_in_process: Dict[str, Event] = {}
|
||||||
self.stop_event = stop_event
|
self.stop_event = stop_event
|
||||||
|
|
||||||
@ -73,6 +76,16 @@ class EventProcessor(threading.Thread):
|
|||||||
|
|
||||||
logger.debug(f"Event received: {event_type} {camera} {event_data['id']}")
|
logger.debug(f"Event received: {event_type} {camera} {event_data['id']}")
|
||||||
|
|
||||||
|
self.timeline_queue.put(
|
||||||
|
(
|
||||||
|
camera,
|
||||||
|
InputTypeEnum.tracked_object,
|
||||||
|
event_type,
|
||||||
|
self.events_in_process.get(event_data["id"]),
|
||||||
|
event_data,
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
event_config: EventsConfig = self.config.cameras[camera].record.events
|
event_config: EventsConfig = self.config.cameras[camera].record.events
|
||||||
|
|
||||||
if event_type == "start":
|
if event_type == "start":
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user