Fix go2rtc init (#18708)

* Cleanup process handling

* Adjust process name
This commit is contained in:
Nicolas Mowen 2025-06-13 11:09:51 -06:00 committed by GitHub
parent d7a446e0f6
commit c3ba834a1c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 20 additions and 23 deletions

View File

@ -4,13 +4,13 @@ from statistics import mean
import numpy as np
import frigate.util as util
from frigate.config import DetectorTypeEnum
from frigate.object_detection.base import (
ObjectDetectProcess,
RemoteObjectDetector,
load_labels,
)
from frigate.util.process import FrigateProcess
my_frame = np.expand_dims(np.full((300, 300, 3), 1, np.uint8), axis=0)
labels = load_labels("/labelmap.txt")
@ -91,7 +91,7 @@ edgetpu_process_2 = ObjectDetectProcess(
)
for x in range(0, 10):
camera_process = util.Process(
camera_process = FrigateProcess(
target=start, args=(x, 300, detection_queue, events[str(x)])
)
camera_process.daemon = True

View File

@ -16,9 +16,9 @@ from frigate.const import CONFIG_DIR, FACE_DIR
from frigate.data_processing.types import DataProcessorMetrics
from frigate.db.sqlitevecq import SqliteVecQueueDatabase
from frigate.models import Event
from frigate.util import Process as FrigateProcess
from frigate.util.builtin import serialize
from frigate.util.classification import kickoff_model_training
from frigate.util.process import FrigateProcess
from .maintainer import EmbeddingMaintainer
from .util import ZScoreNormalization

View File

@ -11,7 +11,6 @@ from typing import Any, Tuple
import numpy as np
import frigate.util as util
from frigate.comms.detections_updater import DetectionPublisher, DetectionTypeEnum
from frigate.comms.event_metadata_updater import (
EventMetadataPublisher,
@ -40,6 +39,7 @@ from frigate.ffmpeg_presets import parse_preset_input
from frigate.log import LogPipe
from frigate.object_detection.base import load_labels
from frigate.util.builtin import get_ffmpeg_arg_list
from frigate.util.process import FrigateProcess
from frigate.video import start_or_restart_ffmpeg, stop_ffmpeg
try:
@ -76,7 +76,7 @@ def get_ffmpeg_command(ffmpeg: FfmpegConfig) -> list[str]:
)
class AudioProcessor(util.Process):
class AudioProcessor(FrigateProcess):
name = "frigate.audio_manager"
def __init__(

View File

@ -7,7 +7,6 @@ from multiprocessing.synchronize import Event as MpEvent
import numpy as np
import frigate.util as util
from frigate.comms.object_detector_signaler import (
ObjectDetectorPublisher,
ObjectDetectorSubscriber,
@ -21,6 +20,7 @@ from frigate.detectors.detector_config import (
)
from frigate.util.builtin import EventsPerSecond, load_labels
from frigate.util.image import SharedMemoryFrameManager, UntrackedSharedMemory
from frigate.util.process import FrigateProcess
from .util import tensor_transform
@ -85,7 +85,7 @@ class LocalObjectDetector(ObjectDetector):
return self.detect_api.detect_raw(tensor_input=tensor_input)
class DetectorRunner(util.Process):
class DetectorRunner(FrigateProcess):
def __init__(
self,
name,
@ -172,7 +172,7 @@ class ObjectDetectProcess:
self.detection_queue = detection_queue
self.avg_inference_speed = Value("d", 0.01)
self.detection_start = Value("d", 0.0)
self.detect_process: util.Process | None = None
self.detect_process: FrigateProcess | None = None
self.config = config
self.detector_config = detector_config
self.start_or_restart()
@ -195,7 +195,7 @@ class ObjectDetectProcess:
if (self.detect_process is not None) and self.detect_process.is_alive():
self.stop()
self.detect_process = DetectorRunner(
f"detector:{self.name}",
f"frigate.detector:{self.name}",
self.detection_queue,
self.cameras,
self.avg_inference_speed,

View File

@ -14,7 +14,6 @@ from ws4py.server.wsgirefserver import (
)
from ws4py.server.wsgiutils import WebSocketWSGIApplication
import frigate.util as util
from frigate.comms.detections_updater import DetectionSubscriber, DetectionTypeEnum
from frigate.comms.ws import WebSocket
from frigate.config import FrigateConfig
@ -27,6 +26,7 @@ from frigate.output.birdseye import Birdseye
from frigate.output.camera import JsmpegCamera
from frigate.output.preview import PreviewRecorder
from frigate.util.image import SharedMemoryFrameManager, get_blank_yuv_frame
from frigate.util.process import FrigateProcess
logger = logging.getLogger(__name__)
@ -71,7 +71,7 @@ def check_disabled_camera_update(
birdseye.all_cameras_disabled()
class OutputProcess(util.Process):
class OutputProcess(FrigateProcess):
def __init__(self, config: FrigateConfig) -> None:
super().__init__(name="frigate.output", daemon=True)
self.config = config

View File

@ -7,7 +7,7 @@ from playhouse.sqliteq import SqliteQueueDatabase
from frigate.config import FrigateConfig
from frigate.models import Recordings, ReviewSegment
from frigate.record.maintainer import RecordingMaintainer
from frigate.util import Process as FrigateProcess
from frigate.util.process import FrigateProcess
logger = logging.getLogger(__name__)

View File

@ -2,14 +2,14 @@
import logging
import frigate.util as util
from frigate.config import FrigateConfig
from frigate.review.maintainer import ReviewSegmentMaintainer
from frigate.util.process import FrigateProcess
logger = logging.getLogger(__name__)
class ReviewProcess(util.Process):
class ReviewProcess(FrigateProcess):
def __init__(self, config: FrigateConfig) -> None:
super().__init__(name="frigate.review_segment_manager", daemon=True)
self.config = config

View File

@ -1,3 +0,0 @@
from .process import Process
__all__ = ["Process"]

View File

@ -14,7 +14,7 @@ from frigate.comms.embeddings_updater import EmbeddingsRequestEnum, EmbeddingsRe
from frigate.comms.inter_process import InterProcessRequestor
from frigate.const import CLIPS_DIR, MODEL_CACHE_DIR, UPDATE_MODEL_STATE
from frigate.types import ModelStatusTypesEnum
from frigate.util import Process
from frigate.util.process import FrigateProcess
BATCH_SIZE = 16
EPOCHS = 50
@ -144,7 +144,7 @@ def kickoff_model_training(
# run training in sub process so that
# tensorflow will free CPU / GPU memory
# upon training completion
training_process = Process(
training_process = FrigateProcess(
target=__train_classification_model,
name=f"model_training:{model_name}",
args=(model_name,),

View File

@ -39,7 +39,7 @@ class BaseProcess(mp.Process):
pass
class Process(BaseProcess):
class FrigateProcess(BaseProcess):
logger: logging.Logger
@property

View File

@ -11,7 +11,6 @@ from typing import Any
import cv2
import frigate.util as util
from frigate.camera import CameraMetrics, PTZMetrics
from frigate.comms.inter_process import InterProcessRequestor
from frigate.config import CameraConfig, DetectConfig, ModelConfig
@ -51,6 +50,7 @@ from frigate.util.object import (
is_object_filtered,
reduce_detections,
)
from frigate.util.process import FrigateProcess
logger = logging.getLogger(__name__)
@ -437,7 +437,7 @@ class CameraCaptureRunner(threading.Thread):
)
class CameraCapture(util.Process):
class CameraCapture(FrigateProcess):
def __init__(
self, config: CameraConfig, shm_frame_count: int, camera_metrics: CameraMetrics
) -> None:
@ -461,7 +461,7 @@ class CameraCapture(util.Process):
camera_watchdog.join()
class CameraTracker(util.Process):
class CameraTracker(FrigateProcess):
def __init__(
self,
config: CameraConfig,