From 225010c57099a2e886b6ace2aa086c0f3f8422f9 Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Wed, 11 Jun 2025 08:10:34 -0600 Subject: [PATCH] Create out SHM --- frigate/camera/maintainer.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/frigate/camera/maintainer.py b/frigate/camera/maintainer.py index 9d026d4e1..ab9f1b794 100644 --- a/frigate/camera/maintainer.py +++ b/frigate/camera/maintainer.py @@ -19,7 +19,7 @@ from frigate.const import SHM_FRAMES_VAR from frigate.models import Regions from frigate.util import Process as FrigateProcess from frigate.util.builtin import empty_and_close_queue -from frigate.util.image import SharedMemoryFrameManager +from frigate.util.image import SharedMemoryFrameManager, UntrackedSharedMemory from frigate.util.object import get_camera_regions_grid from frigate.video import capture_camera, track_camera @@ -54,6 +54,7 @@ class CameraMaintainer(threading.Thread): CameraConfigUpdateEnum.remove, ], ) + self.detector_camera_publisher = DetectorCameraPublisher() self.shm_count = self.__calculate_shm_frame_count() def __init_historical_regions(self) -> None: @@ -127,7 +128,6 @@ class CameraMaintainer(threading.Thread): return if runtime: - # TODO we have to send a ZMQ message to the object detector with the same out event self.detection_out_events[name] = mp.Event() self.camera_metrics[name] = CameraMetrics() self.ptz_metrics[name] = PTZMetrics(autotracker_enabled=False) @@ -137,6 +137,11 @@ class CameraMaintainer(threading.Thread): max(self.config.model.width, self.config.model.height), ) + try: + UntrackedSharedMemory(name=f"out-{name}", create=True, size=20 * 6 * 4) + except FileExistsError: + pass + camera_process = FrigateProcess( target=track_camera, name=f"camera_processor:{name}", @@ -229,5 +234,6 @@ class CameraMaintainer(threading.Thread): for camera in self.camera_metrics.keys(): self.__stop_camera_process(camera) + self.detector_camera_publisher.stop() self.update_subscriber.stop() self.frame_manager.cleanup()