Guard lookups when adding/deleting cameras at runtime (#23994)

* Guard object processor queue handlers against unknown cameras

* Skip embeddings post processing for removed cameras

* End review segments for removed cameras

* Drop queued autotracker moves for removed cameras

* Release tracked event thumbnails when skipping a removed camera

* Add locked accessors for camera states

* Read camera states through the processor accessors

* Guard output and recording paths against cameras not yet known

* Resolve camera state once in ONVIF, notification, and transcription paths
This commit is contained in:
Josh Hawkins
2026-08-18 16:25:18 -05:00
parent 811887c70d
commit 4bfd89fd90
16 changed files with 463 additions and 128 deletions
@@ -83,6 +83,10 @@ class AudioTranscriptionPostProcessor(PostProcessorApi):
"""
event_id = data["event_id"]
camera_name = data["camera"]
camera_config = self.config.cameras.get(camera_name)
if camera_config is None:
return
if data_type == PostProcessDataEnum.recording:
start_ts = data["frame_time"]
@@ -104,7 +108,7 @@ class AudioTranscriptionPostProcessor(PostProcessorApi):
try:
audio_data = get_audio_from_recording(
self.config.cameras[camera_name].ffmpeg,
camera_config.ffmpeg,
camera_name,
start_ts,
end_ts,