diff --git a/frigate/video.py b/frigate/video.py index 89543e21a..abf490a72 100755 --- a/frigate/video.py +++ b/frigate/video.py @@ -606,23 +606,24 @@ def process_frames( startup_scan = True stationary_frame_counter = 0 + camera_enabled = True region_min_size = get_min_region_size(model_config) - prev_enabled = None - while not stop_event.is_set(): - _, enabled_config = enabled_config_subscriber.check_for_update() - current_enabled = ( - enabled_config.enabled - if enabled_config - else (prev_enabled if prev_enabled is not None else True) - ) - if prev_enabled is None: - prev_enabled = current_enabled + _, updated_enabled_config = enabled_config_subscriber.check_for_update() - if prev_enabled and not current_enabled and camera_metrics.frame_queue.empty(): + if updated_enabled_config: + prev_enabled = camera_enabled + camera_enabled = updated_enabled_config.enabled + + if ( + not camera_enabled + and prev_enabled != camera_enabled + and camera_metrics.frame_queue.empty() + ): logger.debug(f"Camera {camera_name} disabled, clearing tracked objects") + prev_enabled = camera_enabled # Clear norfair's dictionaries object_tracker.tracked_objects.clear() @@ -638,9 +639,7 @@ def process_frames( for tracker in object_tracker.default_tracker.values(): tracker.tracked_objects = [] - prev_enabled = current_enabled - - if not current_enabled: + if not camera_enabled: time.sleep(0.1) continue diff --git a/web/src/components/player/LivePlayer.tsx b/web/src/components/player/LivePlayer.tsx index f7121d40e..c34f4c94c 100644 --- a/web/src/components/player/LivePlayer.tsx +++ b/web/src/components/player/LivePlayer.tsx @@ -301,22 +301,6 @@ export default function LivePlayer({ player = ; } - // if (cameraConfig.name == "lpr") - // console.log( - // cameraConfig.name, - // "enabled", - // cameraEnabled, - // "prev enabled", - // prevCameraEnabledRef.current, - // "offline", - // offline, - // "show still", - // showStillWithoutActivity, - // "live ready", - // liveReady, - // player, - // ); - return (
- {offline && !showStillWithoutActivity && ( + {offline && !showStillWithoutActivity && cameraEnabled && (

Stream offline

diff --git a/web/src/types/frigateConfig.ts b/web/src/types/frigateConfig.ts index e468c534f..9b3d60606 100644 --- a/web/src/types/frigateConfig.ts +++ b/web/src/types/frigateConfig.ts @@ -155,15 +155,20 @@ export interface CameraConfig { record: { enabled: boolean; enabled_in_config: boolean; - events: { - objects: string[] | null; + alerts: { post_capture: number; pre_capture: number; - required_zones: string[]; retain: { - default: number; + days: number; + mode: string; + }; + }; + detections: { + post_capture: number; + pre_capture: number; + retain: { + days: number; mode: string; - objects: Record; }; }; expire_interval: number; diff --git a/web/src/views/live/LiveCameraView.tsx b/web/src/views/live/LiveCameraView.tsx index 15dea59d6..f9cc3cb42 100644 --- a/web/src/views/live/LiveCameraView.tsx +++ b/web/src/views/live/LiveCameraView.tsx @@ -1013,7 +1013,7 @@ function FrigateCameraFeatures({
Started manual on-demand recording.
- {!camera.record.enabled || camera.record.retain.days == 0 ? ( + {!camera.record.enabled || camera.record.alerts.retain.days == 0 ? (
Since recording is disabled or restricted in the config for this camera, only a snapshot will be saved.