diff --git a/docs/docs/configuration/semantic_search.md b/docs/docs/configuration/semantic_search.md
index 80fce2958..d9fcb5006 100644
--- a/docs/docs/configuration/semantic_search.md
+++ b/docs/docs/configuration/semantic_search.md
@@ -19,7 +19,7 @@ For best performance, 16GB or more of RAM and a dedicated GPU are recommended.
## Configuration
-Semantic Search is disabled by default, and must be enabled in your config file or in the UI's Classification Settings page before it can be used. Semantic Search is a global configuration setting.
+Semantic Search is disabled by default, and must be enabled in your config file or in the UI's Enrichments Settings page before it can be used. Semantic Search is a global configuration setting.
```yaml
semantic_search:
@@ -29,7 +29,7 @@ semantic_search:
:::tip
-The embeddings database can be re-indexed from the existing tracked objects in your database by pressing the "Reindex" button in the Classification Settings in the UI or by adding `reindex: True` to your `semantic_search` configuration and restarting Frigate. Depending on the number of tracked objects you have, it can take a long while to complete and may max out your CPU while indexing.
+The embeddings database can be re-indexed from the existing tracked objects in your database by pressing the "Reindex" button in the Enrichments Settings in the UI or by adding `reindex: True` to your `semantic_search` configuration and restarting Frigate. Depending on the number of tracked objects you have, it can take a long while to complete and may max out your CPU while indexing.
If you are enabling Semantic Search for the first time, be advised that Frigate does not automatically index older tracked objects. You will need to reindex as described above.
diff --git a/frigate/output/output.py b/frigate/output/output.py
index befb663eb..1723ac73c 100644
--- a/frigate/output/output.py
+++ b/frigate/output/output.py
@@ -111,7 +111,7 @@ def output_frames(
move_preview_frames("cache")
for camera, cam_config in config.cameras.items():
- if not cam_config.enabled:
+ if not cam_config.enabled_in_config:
continue
jsmpeg_cameras[camera] = JsmpegCamera(cam_config, stop_event, websocket_server)
diff --git a/frigate/output/preview.py b/frigate/output/preview.py
index be9da292b..08caa6738 100644
--- a/frigate/output/preview.py
+++ b/frigate/output/preview.py
@@ -403,6 +403,7 @@ class PreviewRecorder:
self.reset_frame_cache(frame_time)
def stop(self) -> None:
+ self.config_subscriber.stop()
self.requestor.stop()
diff --git a/web/public/locales/en/views/settings.json b/web/public/locales/en/views/settings.json
index 21e316cb9..1cbd4ccea 100644
--- a/web/public/locales/en/views/settings.json
+++ b/web/public/locales/en/views/settings.json
@@ -3,7 +3,7 @@
"default": "Settings - Frigate",
"authentication": "Authentication Settings - Frigate",
"camera": "Camera Settings - Frigate",
- "classification": "Classification Settings - Frigate",
+ "enrichments": "Enrichments Settings - Frigate",
"masksAndZones": "Mask and Zone Editor - Frigate",
"motionTuner": "Motion Tuner - Frigate",
"object": "Debug - Frigate",
@@ -13,7 +13,7 @@
},
"menu": {
"ui": "UI",
- "classification": "Classification",
+ "enrichments": "Enrichments",
"cameras": "Camera Settings",
"masksAndZones": "Masks / Zones",
"motionTuner": "Motion Tuner",
@@ -82,9 +82,9 @@
}
}
},
- "classification": {
- "title": "Classification Settings",
- "unsavedChanges": "Unsaved Classification settings changes",
+ "enrichments": {
+ "title": "Enrichments Settings",
+ "unsavedChanges": "Unsaved Enrichments settings changes",
"birdClassification": {
"title": "Bird Classification",
"desc": "Bird classification identifies known birds using a quantized Tensorflow model. When a known bird is recognized, its common name will be added as a sub_label. This information is included in the UI, filters, as well as in notifications."
@@ -138,9 +138,9 @@
"desc": "Frigate can recognize license plates on vehicles and automatically add the detected characters to the recognized_license_plate field or a known name as a sub_label to objects that are of type car. A common use case may be to read the license plates of cars pulling into a driveway or cars passing by on a street.",
"readTheDocumentation": "Read the Documentation"
},
- "restart_required": "Restart required (Classification settings changed)",
+ "restart_required": "Restart required (Enrichments settings changed)",
"toast": {
- "success": "Classification settings have been saved. Restart Frigate to apply your changes.",
+ "success": "Enrichments settings have been saved. Restart Frigate to apply your changes.",
"error": "Failed to save config changes: {{errorMessage}}"
}
},
diff --git a/web/src/lib/const.ts b/web/src/lib/const.ts
index e860b4ab4..bb9a43712 100644
--- a/web/src/lib/const.ts
+++ b/web/src/lib/const.ts
@@ -1,6 +1,7 @@
export const supportedLanguageKeys = [
"en",
"es",
+ "pt",
"fr",
"de",
"it",
diff --git a/web/src/pages/Settings.tsx b/web/src/pages/Settings.tsx
index 9966b6e11..368d4dea0 100644
--- a/web/src/pages/Settings.tsx
+++ b/web/src/pages/Settings.tsx
@@ -35,7 +35,7 @@ import MotionTunerView from "@/views/settings/MotionTunerView";
import MasksAndZonesView from "@/views/settings/MasksAndZonesView";
import AuthenticationView from "@/views/settings/AuthenticationView";
import NotificationView from "@/views/settings/NotificationsSettingsView";
-import ClassificationSettingsView from "@/views/settings/ClassificationSettingsView";
+import EnrichmentsSettingsView from "@/views/settings/EnrichmentsSettingsView";
import UiSettingsView from "@/views/settings/UiSettingsView";
import FrigatePlusSettingsView from "@/views/settings/FrigatePlusSettingsView";
import { useSearchEffect } from "@/hooks/use-overlay-state";
@@ -48,7 +48,7 @@ import { useTranslation } from "react-i18next";
const allSettingsViews = [
"ui",
- "classification",
+ "enrichments",
"cameras",
"masksAndZones",
"motionTuner",
@@ -249,8 +249,8 @@ export default function Settings() {