frigate/frigate
Dmitry Ilyin b420efdebd Native ONVIF cell-motion ingest
Adds a per-camera ONVIF subscriber that lets cameras with native
hardware motion detection (e.g. OpenIPC firmware for HiSilicon,
Ingenic and SigmaStar SoCs; many ONVIF Profile-M devices) replace
Frigate's per-frame CPU motion analysis. Two standard ONVIF
transports are consumed in parallel:

- WS-BaseNotification PullPoint for the binary motion state
  (tns1:RuleEngine/CellMotionDetector/Motion IsMotion=true|false,
   with tns1:VideoSource/MotionAlarm State=true|false accepted as
   a fallback for cameras that only publish the legacy topic).
- RTSP analytics metadata stream (application/vnd.onvif.metadata)
  for the per-frame cell grid (tt:MotionInCells, base64 + PackBits
  bit-packed bitmap). Cell layout is discovered once at startup via
  AnalyticsService.GetAnalyticsModules and the camera's CellLayout
  transformation is used to map cells to detect-frame pixel
  rectangles via connected-components.

New config:
  onvif.events.{enabled, subscription_timeout, use_metadata_stream}
  motion.source: internal (default) | onvif

When motion.source: onvif, ImprovedMotionDetector is skipped and
motion_boxes come from the camera. Internal motion remains the
default; the new path is fully opt-in.
2026-05-30 19:43:33 +03:00
..
api Restore runtime state on startup (#23326) 2026-05-27 12:03:09 -06:00
camera Native ONVIF cell-motion ingest 2026-05-30 19:43:33 +03:00
comms Restore runtime state on startup (#23326) 2026-05-27 12:03:09 -06:00
config Native ONVIF cell-motion ingest 2026-05-30 19:43:33 +03:00
data_processing Miscellaneous fixes (#23177) 2026-05-12 10:20:39 -06:00
db More mypy cleanup (#22658) 2026-03-26 12:54:12 -06:00
detectors Miscellaneous fixes (#23238) 2026-05-18 22:52:40 -05:00
embeddings Debug replay fixes (#23276) 2026-05-21 08:12:53 -06:00
events Miscellaneous fixes (#23238) 2026-05-18 22:52:40 -05:00
genai Miscellaneous fixes (#23295) 2026-05-24 06:48:52 -06:00
images Replace green screen with error message and force camera_fps to 0 (#4544) 2022-11-28 21:47:20 -06:00
jobs Debug replay fixes (#23270) 2026-05-20 16:37:02 -05:00
motion Optimize more mypy classes (#22637) 2026-03-25 12:53:19 -06:00
object_detection Miscellaneous fixes (#23279) 2026-05-22 07:52:01 -06:00
output Refactor move_preview_frames function (#23264) 2026-05-20 10:52:47 -06:00
ptz Native ONVIF cell-motion ingest 2026-05-30 19:43:33 +03:00
record Miscellaneous fixes (#23295) 2026-05-24 06:48:52 -06:00
review Inverse mypy and more mypy fixes (#22645) 2026-03-25 19:30:59 -05:00
service_manager Add metrics page for embeddings and face / license plate processing times (#15818) 2025-02-08 12:47:01 -06:00
stats Miscellaneous fixes (#23317) 2026-05-27 09:19:11 -06:00
test Native ONVIF cell-motion ingest 2026-05-30 19:43:33 +03:00
track Miscellaneous fixes (#23238) 2026-05-18 22:52:40 -05:00
util Miscellaneous fixes (#23317) 2026-05-27 09:19:11 -06:00
video Native ONVIF cell-motion ingest 2026-05-30 19:43:33 +03:00
__init__.py app container and config schema 2021-01-26 21:40:33 -06:00
__main__.py Handle SIGINT with forkserver (#18860) 2025-08-16 10:20:33 -05:00
app.py Native ONVIF cell-motion ingest 2026-05-30 19:43:33 +03:00
const.py Improve credential redaction handling (#23265) 2026-05-20 15:59:01 -06:00
debug_replay.py Miscellaneous fixes (#23317) 2026-05-27 09:19:11 -06:00
ffmpeg_presets.py Tweaks (#22656) 2026-03-26 13:47:24 -05:00
log.py Add languages (#21870) 2026-02-03 13:29:52 -06:00
models.py Improve motion review and add motion search (#22253) 2026-03-05 17:53:48 -06:00
mypy.ini More mypy cleanup (#22658) 2026-03-26 12:54:12 -06:00
plus.py fix: upload_image parses response body before checking HTTP status (#22475) 2026-03-16 17:34:30 -06:00
storage.py Improve readability by removing trailing digits caused by floating number conversion (#22934) 2026-04-20 06:35:48 -06:00
timeline.py Display more scores in Tracking Details (#22799) 2026-04-07 10:06:22 -06:00
types.py Media sync API refactor and UI (#21542) 2026-02-26 21:27:56 -07:00
watchdog.py Miscellaneous fixes (#23032) 2026-04-29 16:20:19 -06:00