mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-03-10 10:33:11 +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
60 lines
1.4 KiB
TypeScript
60 lines
1.4 KiB
TypeScript
import type { SectionConfigOverrides } from "./types";
|
|
|
|
const lpr: SectionConfigOverrides = {
|
|
base: {
|
|
sectionDocs: "/configuration/license_plate_recognition",
|
|
fieldDocs: {
|
|
enhancement: "/configuration/license_plate_recognition#enhancement",
|
|
},
|
|
restartRequired: [],
|
|
fieldOrder: ["enabled", "expire_time", "min_area", "enhancement"],
|
|
hiddenFields: [],
|
|
advancedFields: ["expire_time", "min_area", "enhancement"],
|
|
overrideFields: ["enabled", "min_area", "enhancement"],
|
|
},
|
|
global: {
|
|
fieldOrder: [
|
|
"enabled",
|
|
"model_size",
|
|
"detection_threshold",
|
|
"min_area",
|
|
"recognition_threshold",
|
|
"min_plate_length",
|
|
"format",
|
|
"match_distance",
|
|
"known_plates",
|
|
"enhancement",
|
|
"debug_save_plates",
|
|
"device",
|
|
"replace_rules",
|
|
],
|
|
advancedFields: [
|
|
"detection_threshold",
|
|
"recognition_threshold",
|
|
"min_plate_length",
|
|
"format",
|
|
"match_distance",
|
|
"known_plates",
|
|
"enhancement",
|
|
"debug_save_plates",
|
|
"device",
|
|
"replace_rules",
|
|
],
|
|
restartRequired: ["model_size", "enhancement", "device"],
|
|
uiSchema: {
|
|
format: {
|
|
"ui:options": { size: "md" },
|
|
},
|
|
replace_rules: {
|
|
"ui:field": "ReplaceRulesField",
|
|
"ui:options": {
|
|
label: false,
|
|
suppressDescription: true,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
};
|
|
|
|
export default lpr;
|