From 055f0dfc223501f5d2be481f616ca2b3b49832ee Mon Sep 17 00:00:00 2001 From: Nicolas Mowen Date: Wed, 4 Sep 2024 08:25:00 -0600 Subject: [PATCH] Fix birdseye opening and not closing frames (#13553) --- frigate/output/birdseye.py | 7 +++++-- frigate/output/output.py | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/frigate/output/birdseye.py b/frigate/output/birdseye.py index e22628ecd..6c42f450b 100644 --- a/frigate/output/birdseye.py +++ b/frigate/output/birdseye.py @@ -357,8 +357,9 @@ class BirdsEyeFrameManager: frame = None channel_dims = None else: + frame_id = f"{camera}{frame_time}" frame = self.frame_manager.get( - f"{camera}{frame_time}", self.config.cameras[camera].frame_shape_yuv + frame_id, self.config.cameras[camera].frame_shape_yuv ) if frame is None: @@ -375,6 +376,8 @@ class BirdsEyeFrameManager: channel_dims, ) + self.frame_manager.close(frame_id) + def camera_active(self, mode, object_box_count, motion_box_count): if mode == BirdseyeModeEnum.continuous: return True @@ -716,7 +719,6 @@ class Birdseye: def __init__( self, config: FrigateConfig, - frame_manager: SharedMemoryFrameManager, stop_event: mp.Event, websocket_server, ) -> None: @@ -736,6 +738,7 @@ class Birdseye: self.broadcaster = BroadcastThread( "birdseye", self.converter, websocket_server, stop_event ) + frame_manager = SharedMemoryFrameManager() self.birdseye_manager = BirdsEyeFrameManager(config, frame_manager, stop_event) self.config_subscriber = ConfigSubscriber("config/birdseye/") diff --git a/frigate/output/output.py b/frigate/output/output.py index f351e967d..c1be7154c 100644 --- a/frigate/output/output.py +++ b/frigate/output/output.py @@ -76,7 +76,7 @@ def output_frames( preview_write_times[camera] = 0 if config.birdseye.enabled: - birdseye = Birdseye(config, frame_manager, stop_event, websocket_server) + birdseye = Birdseye(config, stop_event, websocket_server) websocket_thread.start()