mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-02-02 17:25:22 +03:00
Add camera level processing for birdseye
This commit is contained in:
parent
58c32857d3
commit
893000dd28
@ -190,14 +190,19 @@ class BirdsEyeFrameManager:
|
|||||||
channel_dims,
|
channel_dims,
|
||||||
)
|
)
|
||||||
|
|
||||||
def camera_active(self, object_box_count, motion_box_count):
|
def camera_active(self, camera_config, object_box_count, motion_box_count):
|
||||||
if self.mode == BirdseyeModeEnum.continuous:
|
if camera_config:
|
||||||
|
mode = camera_config.mode
|
||||||
|
else:
|
||||||
|
mode = self.mode
|
||||||
|
|
||||||
|
if mode == BirdseyeModeEnum.continuous:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
if self.mode == BirdseyeModeEnum.motion and motion_box_count > 0:
|
if mode == BirdseyeModeEnum.motion and motion_box_count > 0:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
if self.mode == BirdseyeModeEnum.objects and object_box_count > 0:
|
if mode == BirdseyeModeEnum.objects and object_box_count > 0:
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def update_frame(self):
|
def update_frame(self):
|
||||||
@ -310,11 +315,14 @@ class BirdsEyeFrameManager:
|
|||||||
|
|
||||||
return True
|
return True
|
||||||
|
|
||||||
def update(self, camera, object_count, motion_count, frame_time, frame) -> bool:
|
def update(self, camera, camera_config, object_count, motion_count, frame_time, frame) -> bool:
|
||||||
|
# don't process if birdseye is disabled for this camera
|
||||||
|
if camera_config and not camera_config.enabled:
|
||||||
|
return False
|
||||||
|
|
||||||
# update the last active frame for the camera
|
# update the last active frame for the camera
|
||||||
self.cameras[camera]["current_frame"] = frame_time
|
self.cameras[camera]["current_frame"] = frame_time
|
||||||
if self.camera_active(object_count, motion_count):
|
if self.camera_active(camera_config, object_count, motion_count):
|
||||||
self.cameras[camera]["last_active_frame"] = frame_time
|
self.cameras[camera]["last_active_frame"] = frame_time
|
||||||
|
|
||||||
now = datetime.datetime.now().timestamp()
|
now = datetime.datetime.now().timestamp()
|
||||||
@ -425,6 +433,7 @@ def output_frames(config: FrigateConfig, video_output_queue):
|
|||||||
):
|
):
|
||||||
if birdseye_manager.update(
|
if birdseye_manager.update(
|
||||||
camera,
|
camera,
|
||||||
|
config.cameras[camera].birdseye,
|
||||||
len([o for o in current_tracked_objects if not o["stationary"]]),
|
len([o for o in current_tracked_objects if not o["stationary"]]),
|
||||||
len(motion_boxes),
|
len(motion_boxes),
|
||||||
frame_time,
|
frame_time,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user