mirror of
https://github.com/blakeblackshear/frigate.git
synced 2024-11-26 19:06:11 +01:00
dba21b606d
* Add config pub / sub pattern * remove recording from feature metrics * remove audio and feature metrics * Check for updates from all cameras * remove birdseye from camera metrics * remove motion and detection camera metrics * Ensure that all processes are stopped * Stop communicators * Detections * Cleanup video output queue * Use select for time sensitive polls * Use ipc instead of tcp
45 lines
1.2 KiB
Python
45 lines
1.2 KiB
Python
from multiprocessing import Queue
|
|
from multiprocessing.context import Process
|
|
from multiprocessing.sharedctypes import Synchronized
|
|
from multiprocessing.synchronize import Event
|
|
from typing import Optional, TypedDict
|
|
|
|
from frigate.object_detection import ObjectDetectProcess
|
|
|
|
|
|
class CameraMetricsTypes(TypedDict):
|
|
camera_fps: Synchronized
|
|
capture_process: Optional[Process]
|
|
detection_fps: Synchronized
|
|
detection_frame: Synchronized
|
|
ffmpeg_pid: Synchronized
|
|
frame_queue: Queue
|
|
process: Optional[Process]
|
|
process_fps: Synchronized
|
|
read_start: Synchronized
|
|
skipped_fps: Synchronized
|
|
audio_rms: Synchronized
|
|
audio_dBFS: Synchronized
|
|
|
|
|
|
class PTZMetricsTypes(TypedDict):
|
|
ptz_autotracker_enabled: Synchronized
|
|
ptz_tracking_active: Event
|
|
ptz_motor_stopped: Event
|
|
ptz_reset: Event
|
|
ptz_start_time: Synchronized
|
|
ptz_stop_time: Synchronized
|
|
ptz_frame_time: Synchronized
|
|
ptz_zoom_level: Synchronized
|
|
ptz_max_zoom: Synchronized
|
|
ptz_min_zoom: Synchronized
|
|
|
|
|
|
class StatsTrackingTypes(TypedDict):
|
|
camera_metrics: dict[str, CameraMetricsTypes]
|
|
detectors: dict[str, ObjectDetectProcess]
|
|
started: int
|
|
latest_frigate_version: str
|
|
last_updated: int
|
|
processes: dict[str, int]
|