mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-03-10 02:29:19 +03:00
Some checks are pending
CI / AMD64 Build (push) Waiting to run
CI / ARM Build (push) Waiting to run
CI / Jetson Jetpack 6 (push) Waiting to run
CI / AMD64 Extra Build (push) Blocked by required conditions
CI / ARM Extra Build (push) Blocked by required conditions
CI / Synaptics Build (push) Blocked by required conditions
CI / Assemble and push default build (push) Blocked by required conditions
* face recognition dynamic config * lpr dynamic config * safe changes for birdseye dynamic config * bird classification dynamic config * always assign new config to stats emitter to make telemetry fields dynamic * add wildcard support for camera config updates in config_set * update restart required fields for global sections * add test * fix rebase issue * collapsible settings sidebar use the preexisting control available with shadcn's sidebar (cmd/ctrl-B) to give users more space to set masks/zones on smaller screens * dynamic ffmpeg * ensure previews dir exists when ffmpeg processes restart, there's a brief window where the preview frame generation pipeline is torn down and restarted. before these changes, ffmpeg only restarted on crash/stall recovery or full Frigate restart. Now that ffmpeg restarts happen on-demand via config changes, there's a higher chance a frontend request hits the preview_mp4 or preview_gif endpoints during that brief restart window when the directory might not exist yet. The existing os.listdir() call would throw FileNotFoundError without a directory existence check. this fix just checks if the directory exists and returns 404 if not, exactly how preview_thumbnail already handles the same scenario a few lines below * global ffmpeg section * clean up * tweak * fix test
127 lines
3.0 KiB
TypeScript
127 lines
3.0 KiB
TypeScript
import type { SectionConfigOverrides } from "./types";
|
|
|
|
const objects: SectionConfigOverrides = {
|
|
base: {
|
|
sectionDocs: "/configuration/object_filters",
|
|
fieldDocs: {
|
|
"filters.min_area": "/configuration/object_filters#object-area",
|
|
"filters.max_area": "/configuration/object_filters#object-area",
|
|
"filters.min_score": "/configuration/object_filters#minimum-score",
|
|
"filters.threshold": "/configuration/object_filters#threshold",
|
|
"filters.min_ratio": "/configuration/object_filters/#object-proportions",
|
|
"filters.max_ratio": "/configuration/object_filters/#object-proportions",
|
|
},
|
|
restartRequired: [],
|
|
fieldOrder: ["track", "alert", "detect", "filters"],
|
|
fieldGroups: {
|
|
tracking: ["track", "alert", "detect"],
|
|
filtering: ["filters"],
|
|
},
|
|
hiddenFields: [
|
|
"enabled_in_config",
|
|
"mask",
|
|
"raw_mask",
|
|
"genai.enabled_in_config",
|
|
"filters.*.mask",
|
|
"filters.*.raw_mask",
|
|
"filters.mask",
|
|
"filters.raw_mask",
|
|
],
|
|
advancedFields: ["genai"],
|
|
uiSchema: {
|
|
"filters.*.min_area": {
|
|
"ui:options": {
|
|
suppressMultiSchema: true,
|
|
},
|
|
},
|
|
"filters.*": {
|
|
"ui:options": {
|
|
additionalPropertyKeyReadonly: true,
|
|
},
|
|
},
|
|
"filters.*.max_area": {
|
|
"ui:options": {
|
|
suppressMultiSchema: true,
|
|
},
|
|
},
|
|
track: {
|
|
"ui:widget": "objectLabels",
|
|
"ui:options": {
|
|
suppressMultiSchema: true,
|
|
},
|
|
},
|
|
genai: {
|
|
objects: {
|
|
"ui:widget": "objectLabels",
|
|
"ui:options": {
|
|
suppressMultiSchema: true,
|
|
},
|
|
},
|
|
prompt: {
|
|
"ui:widget": "textarea",
|
|
"ui:options": {
|
|
size: "full",
|
|
},
|
|
},
|
|
object_prompts: {
|
|
additionalProperties: {
|
|
"ui:options": {
|
|
size: "full",
|
|
},
|
|
},
|
|
},
|
|
required_zones: {
|
|
"ui:widget": "zoneNames",
|
|
"ui:options": {
|
|
suppressMultiSchema: true,
|
|
},
|
|
},
|
|
enabled_in_config: {
|
|
"ui:widget": "hidden",
|
|
},
|
|
},
|
|
},
|
|
},
|
|
global: {
|
|
restartRequired: [],
|
|
hiddenFields: [
|
|
"enabled_in_config",
|
|
"mask",
|
|
"raw_mask",
|
|
"genai.enabled_in_config",
|
|
"filters.*.mask",
|
|
"filters.*.raw_mask",
|
|
"filters.mask",
|
|
"filters.raw_mask",
|
|
"genai.required_zones",
|
|
],
|
|
},
|
|
camera: {
|
|
restartRequired: [],
|
|
},
|
|
replay: {
|
|
restartRequired: [],
|
|
fieldOrder: ["track", "filters"],
|
|
fieldGroups: {
|
|
tracking: ["track"],
|
|
filtering: ["filters"],
|
|
},
|
|
hiddenFields: [
|
|
"enabled_in_config",
|
|
"alert",
|
|
"detect",
|
|
"mask",
|
|
"raw_mask",
|
|
"genai",
|
|
"genai.enabled_in_config",
|
|
"filters.*.mask",
|
|
"filters.*.raw_mask",
|
|
"filters.mask",
|
|
"filters.raw_mask",
|
|
],
|
|
advancedFields: [],
|
|
},
|
|
};
|
|
|
|
export default objects;
|