mirror of
https://github.com/blakeblackshear/frigate.git
synced 2026-10-15 19:22:52 +03:00
7620ea61a8885209dffa7f9efe6adf3bde7877e3
6439
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
7620ea61a8 |
Update translation files
Updated by "Cleanup translation files" add-on in Weblate. Translated using Weblate (Finnish) Currently translated at 100.0% (46 of 46 strings) Translated using Weblate (Finnish) Currently translated at 3.3% (26 of 771 strings) Translated using Weblate (Finnish) Currently translated at 1.9% (10 of 520 strings) Translated using Weblate (Finnish) Currently translated at 71.6% (53 of 74 strings) Translated using Weblate (Finnish) Currently translated at 100.0% (50 of 50 strings) Translated using Weblate (Finnish) Currently translated at 100.0% (129 of 129 strings) Translated using Weblate (Finnish) Currently translated at 100.0% (500 of 500 strings) Translated using Weblate (Finnish) Currently translated at 17.0% (24 of 141 strings) Translated using Weblate (Finnish) Currently translated at 33.9% (95 of 280 strings) Translated using Weblate (Finnish) Currently translated at 16.4% (229 of 1393 strings) Translated using Weblate (Finnish) Currently translated at 100.0% (49 of 49 strings) Translated using Weblate (Finnish) Currently translated at 100.0% (87 of 87 strings) Translated using Weblate (Finnish) Currently translated at 38.6% (56 of 145 strings) Translated using Weblate (Finnish) Currently translated at 89.7% (61 of 68 strings) Translated using Weblate (Finnish) Currently translated at 54.7% (145 of 265 strings) Translated using Weblate (Finnish) Currently translated at 90.6% (453 of 500 strings) Translated using Weblate (Finnish) Currently translated at 90.6% (453 of 500 strings) Co-authored-by: Hosted Weblate <hosted@weblate.org> Co-authored-by: Tobbana <tobbana@gmail.com> Co-authored-by: Vesa Takomo <vesatakomo@gmail.com> Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/fi/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/fi/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-camera/fi/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/fi/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-cameras/fi/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/fi/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/fi/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/fi/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/fi/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/fi/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/fi/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-replay/fi/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/fi/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/fi/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/fi/ Translation: Frigate NVR/Config - Cameras Translation: Frigate NVR/Config - Global Translation: Frigate NVR/audio Translation: Frigate NVR/common Translation: Frigate NVR/components-camera Translation: Frigate NVR/components-filter Translation: Frigate NVR/objects Translation: Frigate NVR/views-classificationmodel Translation: Frigate NVR/views-events Translation: Frigate NVR/views-explore Translation: Frigate NVR/views-exports Translation: Frigate NVR/views-replay Translation: Frigate NVR/views-search Translation: Frigate NVR/views-settings Translation: Frigate NVR/views-system |
||
|
|
754a4a9888 |
Translated using Weblate (French)
Currently translated at 100.0% (37 of 37 strings) Translated using Weblate (French) Currently translated at 100.0% (118 of 118 strings) Translated using Weblate (French) Currently translated at 99.2% (263 of 265 strings) Co-authored-by: Hosted Weblate <hosted@weblate.org> Co-authored-by: leo <boutin.leo2001@gmail.com> Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/fr/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/fr/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/fr/ Translation: Frigate NVR/common Translation: Frigate NVR/components-dialog Translation: Frigate NVR/components-player |
||
|
|
58d6454537 |
Translated using Weblate (Spanish)
Currently translated at 96.3% (743 of 771 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (520 of 520 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (141 of 141 strings) Translated using Weblate (Spanish) Currently translated at 98.8% (86 of 87 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (145 of 145 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (145 of 145 strings) Translated using Weblate (Spanish) Currently translated at 98.3% (116 of 118 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (500 of 500 strings) Translated using Weblate (Spanish) Currently translated at 98.3% (116 of 118 strings) Translated using Weblate (Spanish) Currently translated at 100.0% (265 of 265 strings) Co-authored-by: David Cambra <cambrafontan.david@gmail.com> Co-authored-by: Drones Aerial <drones.bsas@gmail.com> Co-authored-by: Hosted Weblate <hosted@weblate.org> Co-authored-by: glafe <tazefr@gmail.com> Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/es/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/es/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/es/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-cameras/es/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/es/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/es/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/es/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/es/ Translation: Frigate NVR/Config - Cameras Translation: Frigate NVR/Config - Global Translation: Frigate NVR/audio Translation: Frigate NVR/common Translation: Frigate NVR/components-dialog Translation: Frigate NVR/views-classificationmodel Translation: Frigate NVR/views-explore Translation: Frigate NVR/views-exports |
||
|
|
9c399fc519 |
Translated using Weblate (Indonesian)
Currently translated at 18.9% (146 of 771 strings) Translated using Weblate (Indonesian) Currently translated at 31.9% (166 of 520 strings) Translated using Weblate (Indonesian) Currently translated at 100.0% (265 of 265 strings) Update translation files Updated by "Cleanup translation files" add-on in Weblate. Co-authored-by: Hosted Weblate <hosted@weblate.org> Co-authored-by: My-Name-Is-Mac <adhari.mahendra@gmail.com> Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/id/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-cameras/id/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/id/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/ Translation: Frigate NVR/Config - Cameras Translation: Frigate NVR/Config - Global Translation: Frigate NVR/common Translation: Frigate NVR/views-settings |
||
|
|
48470c4537 |
Translated using Weblate (Italian)
Currently translated at 100.0% (118 of 118 strings) Translated using Weblate (Italian) Currently translated at 100.0% (265 of 265 strings) Co-authored-by: Angelo Rossi <angelo.rossi@smeup.com> Co-authored-by: Hosted Weblate <hosted@weblate.org> Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/it/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/it/ Translation: Frigate NVR/common Translation: Frigate NVR/components-dialog |
||
|
|
8fd57d81fc |
Update translation files
Updated by "Cleanup translation files" add-on in Weblate. Translated using Weblate (Polish) Currently translated at 74.0% (208 of 281 strings) Co-authored-by: Artur <wy66m6xm@anonaddy.me> Co-authored-by: Hosted Weblate <hosted@weblate.org> Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/pl/ Translation: Frigate NVR/views-system |
||
|
|
99134ed4cd |
Update translation files
Updated by "Cleanup translation files" add-on in Weblate. Translated using Weblate (Czech) Currently translated at 100.0% (46 of 46 strings) Translated using Weblate (Czech) Currently translated at 100.0% (62 of 62 strings) Translated using Weblate (Czech) Currently translated at 100.0% (66 of 66 strings) Translated using Weblate (Czech) Currently translated at 100.0% (26 of 26 strings) Translated using Weblate (Czech) Currently translated at 100.0% (25 of 25 strings) Translated using Weblate (Czech) Currently translated at 100.0% (771 of 771 strings) Translated using Weblate (Czech) Currently translated at 100.0% (520 of 520 strings) Translated using Weblate (Czech) Currently translated at 100.0% (141 of 141 strings) Translated using Weblate (Czech) Currently translated at 100.0% (281 of 281 strings) Translated using Weblate (Czech) Currently translated at 100.0% (1395 of 1395 strings) Translated using Weblate (Czech) Currently translated at 100.0% (49 of 49 strings) Translated using Weblate (Czech) Currently translated at 100.0% (6 of 6 strings) Translated using Weblate (Czech) Currently translated at 100.0% (128 of 128 strings) Translated using Weblate (Czech) Currently translated at 100.0% (60 of 60 strings) Translated using Weblate (Czech) Currently translated at 100.0% (87 of 87 strings) Translated using Weblate (Czech) Currently translated at 100.0% (145 of 145 strings) Translated using Weblate (Czech) Currently translated at 100.0% (68 of 68 strings) Translated using Weblate (Czech) Currently translated at 100.0% (37 of 37 strings) Translated using Weblate (Czech) Currently translated at 100.0% (74 of 74 strings) Translated using Weblate (Czech) Currently translated at 100.0% (118 of 118 strings) Translated using Weblate (Czech) Currently translated at 100.0% (50 of 50 strings) Translated using Weblate (Czech) Currently translated at 100.0% (129 of 129 strings) Translated using Weblate (Czech) Currently translated at 100.0% (265 of 265 strings) Translated using Weblate (Czech) Currently translated at 100.0% (500 of 500 strings) Translated using Weblate (Czech) Currently translated at 100.0% (74 of 74 strings) Translated using Weblate (Czech) Currently translated at 99.1% (117 of 118 strings) Translated using Weblate (Czech) Currently translated at 100.0% (50 of 50 strings) Translated using Weblate (Czech) Currently translated at 100.0% (10 of 10 strings) Translated using Weblate (Czech) Currently translated at 91.4% (118 of 129 strings) Translated using Weblate (Czech) Currently translated at 100.0% (265 of 265 strings) Translated using Weblate (Czech) Currently translated at 100.0% (500 of 500 strings) Translated using Weblate (Czech) Currently translated at 92.3% (109 of 118 strings) Translated using Weblate (Czech) Currently translated at 98.8% (262 of 265 strings) Co-authored-by: Ashus <ashus@users.noreply.hosted.weblate.org> Co-authored-by: Hosted Weblate <hosted@weblate.org> Co-authored-by: Petr Doležal <pietr_czech@users.noreply.hosted.weblate.org> Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/cs/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/cs/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-auth/cs/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-camera/cs/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/cs/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-filter/cs/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/cs/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-cameras/cs/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/cs/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-groups/cs/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-validation/cs/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/objects/cs/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-chat/cs/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/cs/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-events/cs/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/cs/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-exports/cs/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-facelibrary/cs/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/cs/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-motionsearch/cs/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-recording/cs/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-replay/cs/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-search/cs/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/cs/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/cs/ Translation: Frigate NVR/Config - Cameras Translation: Frigate NVR/Config - Global Translation: Frigate NVR/Config - Groups Translation: Frigate NVR/Config - Validation Translation: Frigate NVR/audio Translation: Frigate NVR/common Translation: Frigate NVR/components-auth Translation: Frigate NVR/components-camera Translation: Frigate NVR/components-dialog Translation: Frigate NVR/components-filter Translation: Frigate NVR/components-player Translation: Frigate NVR/objects Translation: Frigate NVR/views-chat Translation: Frigate NVR/views-classificationmodel Translation: Frigate NVR/views-events Translation: Frigate NVR/views-explore Translation: Frigate NVR/views-exports Translation: Frigate NVR/views-facelibrary Translation: Frigate NVR/views-live Translation: Frigate NVR/views-motionSearch Translation: Frigate NVR/views-recording Translation: Frigate NVR/views-replay Translation: Frigate NVR/views-search Translation: Frigate NVR/views-settings Translation: Frigate NVR/views-system |
||
|
|
822c8e2bda |
Update translation files
Updated by "Cleanup translation files" add-on in Weblate. Translated using Weblate (Catalan) Currently translated at 100.0% (281 of 281 strings) Translated using Weblate (Catalan) Currently translated at 100.0% (1394 of 1394 strings) Translated using Weblate (Catalan) Currently translated at 100.0% (280 of 280 strings) Translated using Weblate (Catalan) Currently translated at 100.0% (278 of 278 strings) Translated using Weblate (Catalan) Currently translated at 100.0% (1393 of 1393 strings) Translated using Weblate (Catalan) Currently translated at 100.0% (771 of 771 strings) Translated using Weblate (Catalan) Currently translated at 100.0% (520 of 520 strings) Translated using Weblate (Catalan) Currently translated at 100.0% (1391 of 1391 strings) Translated using Weblate (Catalan) Currently translated at 100.0% (128 of 128 strings) Translated using Weblate (Catalan) Currently translated at 100.0% (37 of 37 strings) Translated using Weblate (Catalan) Currently translated at 100.0% (759 of 759 strings) Translated using Weblate (Catalan) Currently translated at 100.0% (26 of 26 strings) Translated using Weblate (Catalan) Currently translated at 100.0% (508 of 508 strings) Translated using Weblate (Catalan) Currently translated at 100.0% (1371 of 1371 strings) Translated using Weblate (Catalan) Currently translated at 100.0% (265 of 265 strings) Update translation files Updated by "Cleanup translation files" add-on in Weblate. Co-authored-by: Eduardo Pastor Fernández <123eduardoneko123@gmail.com> Co-authored-by: Hosted Weblate <hosted@weblate.org> Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/ca/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/ca/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-cameras/ca/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/ca/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-validation/ca/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/ca/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/ca/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/ca/ Translation: Frigate NVR/Config - Cameras Translation: Frigate NVR/Config - Global Translation: Frigate NVR/Config - Validation Translation: Frigate NVR/common Translation: Frigate NVR/components-player Translation: Frigate NVR/views-live Translation: Frigate NVR/views-settings Translation: Frigate NVR/views-system |
||
|
|
df92f07a79 |
Update translation files
Updated by "Cleanup translation files" add-on in Weblate. Translated using Weblate (Belarusian) Currently translated at 100.0% (281 of 281 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (1394 of 1394 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (128 of 128 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (26 of 26 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (771 of 771 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (520 of 520 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (37 of 37 strings) Translated using Weblate (Belarusian) Currently translated at 100.0% (265 of 265 strings) Update translation files Updated by "Cleanup translation files" add-on in Weblate. Co-authored-by: Hosted Weblate <hosted@weblate.org> Co-authored-by: Uladz Maltsau <wldyslw@users.noreply.hosted.weblate.org> Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/be/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/be/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-cameras/be/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/be/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-validation/be/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/be/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/be/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/be/ Translation: Frigate NVR/Config - Cameras Translation: Frigate NVR/Config - Global Translation: Frigate NVR/Config - Validation Translation: Frigate NVR/common Translation: Frigate NVR/components-player Translation: Frigate NVR/views-live Translation: Frigate NVR/views-settings Translation: Frigate NVR/views-system |
||
|
|
7227929a9d |
Update translation files
Updated by "Cleanup translation files" add-on in Weblate. Translated using Weblate (Romanian) Currently translated at 100.0% (1395 of 1395 strings) Translated using Weblate (Romanian) Currently translated at 100.0% (1394 of 1394 strings) Translated using Weblate (Romanian) Currently translated at 100.0% (281 of 281 strings) Translated using Weblate (Romanian) Currently translated at 100.0% (280 of 280 strings) Translated using Weblate (Romanian) Currently translated at 100.0% (26 of 26 strings) Translated using Weblate (Romanian) Currently translated at 100.0% (771 of 771 strings) Translated using Weblate (Romanian) Currently translated at 100.0% (520 of 520 strings) Translated using Weblate (Romanian) Currently translated at 100.0% (278 of 278 strings) Translated using Weblate (Romanian) Currently translated at 100.0% (1393 of 1393 strings) Translated using Weblate (Romanian) Currently translated at 100.0% (128 of 128 strings) Translated using Weblate (Romanian) Currently translated at 100.0% (37 of 37 strings) Update translation files Updated by "Cleanup translation files" add-on in Weblate. Translated using Weblate (Romanian) Currently translated at 100.0% (1374 of 1374 strings) Translated using Weblate (Romanian) Currently translated at 100.0% (265 of 265 strings) Co-authored-by: Hosted Weblate <hosted@weblate.org> Co-authored-by: lukasig <lukasig@hotmail.com> Co-authored-by: lukasig <lukasig@users.noreply.hosted.weblate.org> Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/ro/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/ro/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-cameras/ro/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/ro/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-validation/ro/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/ro/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/ro/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/ro/ Translation: Frigate NVR/Config - Cameras Translation: Frigate NVR/Config - Global Translation: Frigate NVR/Config - Validation Translation: Frigate NVR/common Translation: Frigate NVR/components-player Translation: Frigate NVR/views-live Translation: Frigate NVR/views-settings Translation: Frigate NVR/views-system |
||
|
|
03ff04311b |
Translated using Weblate (Estonian)
Currently translated at 100.0% (46 of 46 strings) Translated using Weblate (Estonian) Currently translated at 28.7% (400 of 1393 strings) Translated using Weblate (Estonian) Currently translated at 100.0% (145 of 145 strings) Translated using Weblate (Estonian) Currently translated at 46.0% (65 of 141 strings) Translated using Weblate (Estonian) Currently translated at 100.0% (118 of 118 strings) Translated using Weblate (Estonian) Currently translated at 82.8% (414 of 500 strings) Translated using Weblate (Estonian) Currently translated at 95.1% (138 of 145 strings) Translated using Weblate (Estonian) Currently translated at 28.7% (400 of 1393 strings) Translated using Weblate (Estonian) Currently translated at 94.4% (137 of 145 strings) Translated using Weblate (Estonian) Currently translated at 100.0% (26 of 26 strings) Translated using Weblate (Estonian) Currently translated at 100.0% (128 of 128 strings) Translated using Weblate (Estonian) Currently translated at 93.7% (136 of 145 strings) Translated using Weblate (Estonian) Currently translated at 22.6% (32 of 141 strings) Translated using Weblate (Estonian) Currently translated at 100.0% (37 of 37 strings) Translated using Weblate (Estonian) Currently translated at 100.0% (265 of 265 strings) Co-authored-by: Hosted Weblate <hosted@weblate.org> Co-authored-by: Priit Jõerüüt <jrthwlate@users.noreply.hosted.weblate.org> Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/et/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/et/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-dialog/et/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/et/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-validation/et/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/et/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-explore/et/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/et/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-replay/et/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/et/ Translation: Frigate NVR/Config - Validation Translation: Frigate NVR/audio Translation: Frigate NVR/common Translation: Frigate NVR/components-dialog Translation: Frigate NVR/components-player Translation: Frigate NVR/views-classificationmodel Translation: Frigate NVR/views-explore Translation: Frigate NVR/views-live Translation: Frigate NVR/views-replay Translation: Frigate NVR/views-settings |
||
|
|
5eb2b6f04d |
Translated using Weblate (Danish)
Currently translated at 90.0% (450 of 500 strings) Co-authored-by: Hosted Weblate <hosted@weblate.org> Co-authored-by: Jan Eenholt <jan@eenholt.dk> Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/audio/da/ Translation: Frigate NVR/audio |
||
|
|
ba5330f8cf |
Update translation files
Updated by "Cleanup translation files" add-on in Weblate. Translated using Weblate (Portuguese (Brazil)) Currently translated at 98.7% (761 of 771 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 98.4% (512 of 520 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 98.4% (759 of 771 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 98.0% (510 of 520 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (37 of 37 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (265 of 265 strings) Update translation files Updated by "Cleanup translation files" add-on in Weblate. Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (759 of 759 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 100.0% (508 of 508 strings) Translated using Weblate (Portuguese (Brazil)) Currently translated at 99.3% (1365 of 1374 strings) Co-authored-by: Hosted Weblate <hosted@weblate.org> Co-authored-by: Paulo Fernando <paulofme01@gmail.com> Co-authored-by: Ricardo RFPP <ricardo.inteli@gmail.com> Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/pt_BR/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/pt_BR/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-cameras/pt_BR/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/pt_BR/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/pt_BR/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/ Translation: Frigate NVR/Config - Cameras Translation: Frigate NVR/Config - Global Translation: Frigate NVR/common Translation: Frigate NVR/components-player Translation: Frigate NVR/views-settings Translation: Frigate NVR/views-system |
||
|
|
7c6c529314 |
Update translation files
Updated by "Cleanup translation files" add-on in Weblate. Translated using Weblate (Turkish) Currently translated at 100.0% (1395 of 1395 strings) Translated using Weblate (Turkish) Currently translated at 100.0% (1394 of 1394 strings) Translated using Weblate (Turkish) Currently translated at 100.0% (281 of 281 strings) Translated using Weblate (Turkish) Currently translated at 100.0% (280 of 280 strings) Translated using Weblate (Turkish) Currently translated at 100.0% (1393 of 1393 strings) Translated using Weblate (Turkish) Currently translated at 100.0% (26 of 26 strings) Translated using Weblate (Turkish) Currently translated at 100.0% (771 of 771 strings) Translated using Weblate (Turkish) Currently translated at 100.0% (520 of 520 strings) Translated using Weblate (Turkish) Currently translated at 100.0% (141 of 141 strings) Translated using Weblate (Turkish) Currently translated at 100.0% (1391 of 1391 strings) Translated using Weblate (Turkish) Currently translated at 100.0% (1391 of 1391 strings) Translated using Weblate (Turkish) Currently translated at 100.0% (128 of 128 strings) Translated using Weblate (Turkish) Currently translated at 100.0% (37 of 37 strings) Translated using Weblate (Turkish) Currently translated at 100.0% (265 of 265 strings) Update translation files Updated by "Cleanup translation files" add-on in Weblate. Translated using Weblate (Turkish) Currently translated at 100.0% (1374 of 1374 strings) Translated using Weblate (Turkish) Currently translated at 100.0% (1374 of 1374 strings) Co-authored-by: Hosted Weblate <hosted@weblate.org> Co-authored-by: Murat Odabasi <modabas@users.noreply.hosted.weblate.org> Co-authored-by: Murat Odabasi <murat12@gmail.com> Co-authored-by: pcislocked <git@pcislocked.net> Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/common/tr/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/components-player/tr/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-cameras/tr/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-global/tr/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/config-validation/tr/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-classificationmodel/tr/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-live/tr/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-settings/tr/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/ Translate-URL: https://hosted.weblate.org/projects/frigate-nvr/views-system/tr/ Translation: Frigate NVR/Config - Cameras Translation: Frigate NVR/Config - Global Translation: Frigate NVR/Config - Validation Translation: Frigate NVR/common Translation: Frigate NVR/components-player Translation: Frigate NVR/views-classificationmodel Translation: Frigate NVR/views-live Translation: Frigate NVR/views-settings Translation: Frigate NVR/views-system |
||
|
|
15da89e56c |
Avoid buffering raw frames during watchdog resets (#24663)
* Don't buffer detect ffmpeg stdout when resetting the capture thread reset_capture_thread waited for the terminated detect process with communicate() on the no-frames and stale sub stream paths. communicate() reads the process's raw frames into memory until it exits, and a stalled detect process can write hundreds of duplicate frames per second before it does. Use wait() on every path, as the fps-exceeded path has since #19110; the timeout and kill still bound the wait. * Update frigate/video/ffmpeg.py accurately explain why wait() is safe Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com> * test(watchdog): remove non-regression child process test The Python child exits on SIGTERM, so this test also passes with the original communicate() reset. Keep the two mock tests that distinguish the fix and remove the unused imports. --------- Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com> |
||
|
|
64b07889af |
Tweaks and fixes (#24659)
* add last time to active notices * Stop retrying the review lookup in the explore detail menu when it 404s * don't let a slow websocket client block publishers A websocket client that stopped reading its socket (for example a suspended workstation with a Frigate tab open) blocked ws4py's sendall on whatever thread was publishing, including the single inter-process responder thread, so the recording maintainer and stats hung until nginx dropped the client after 5 minutes. Each client now gets its own bounded send queue and writer thread, and a client that overflows the queue is shut down. ws4py writes close and pong frames directly on its shared manager thread, bypassing the queue, so a 10s socket send timeout keeps a stalled client from pinning that thread. The jsmpeg and birdseye outputs share the class, so their unreachable send error handling is removed. * don't let a lost object enter a zone When the detector lost an object, the tracker kept it at its last box and every held frame still counted toward the zone's inertia. A car detected in a zone once or twice as it drove out of view could reach an inertia of 8 and be marked as entering, which sent it to GenAI and any other required zones check even though Review never showed the zone. Inertia and loitering still count on frames without a detection, but an object can only newly enter a zone on a frame where it was actually detected. * add test * limit retry stop to 404 only * add docstrings |
||
|
|
2b0a69c028 |
Merge remote-tracking branch 'origin/master' into dev
CI / AMD64 Build (push) Canceled after 0s
CI / AMD64 Smoke Test (push) Canceled after 0s
CI / ARM Build (push) Canceled after 0s
CI / Jetson Jetpack 6 (push) Canceled after 0s
CI / AMD64 Extra Build (push) Canceled after 0s
CI / ARM Extra Build (push) Canceled after 0s
CI / Synaptics Build (push) Canceled after 0s
CI / Assemble and push default build (push) Canceled after 0s
Brings the go2rtc security fixes from #24658 to dev. Dev-specific changes in the merge: - frigate/config/env.py stays deleted; the environment_vars protection for GO2RTC_ALLOW_ARBITRARY_EXEC moves to apply_config_env_vars in frigate/util/env.py, so the value never reaches os.environ - services.py imports substitute_frigate_vars from frigate.util.env and maps UnknownVariableError to the unknown variable message - go2rtc stream tests patch dev's import-time exec override snapshot and its FRIGATE_* variable sources - test_http_media.py keeps dev's _insert_recording helper; the one added on master replaced it and broke the dev tests Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> |
||
|
|
a3ca8742b0 |
Security patches (#24658)
CI / AMD64 Build (push) Canceled after 0s
CI / ARM Build (push) Canceled after 0s
CI / Jetson Jetpack 6 (push) Canceled after 0s
CI / AMD64 Extra Build (push) Canceled after 0s
CI / ARM Extra Build (push) Canceled after 0s
CI / Synaptics Build (push) Canceled after 0s
CI / Assemble and push default build (push) Canceled after 0s
* update version * Restrict ffmpeg: go2rtc sources added through the API go2rtc expands ffmpeg: sources into an exec: command line built from the source's #key=value parameters, so the echo/expr/exec prefix check on PUT /go2rtc/streams could be bypassed to run arbitrary ffmpeg arguments. Sources submitted through the API now only accept the ffmpeg: parameters the UI and docs use (video, audio, hardware with preset names, plus numeric width/height/rotate/bitrate/timeout and async). Quotes, whitespace, #raw, #input, #drawtext and unknown parameters are rejected unless GO2RTC_ALLOW_ARBITRARY_EXEC is set. Sources defined in the config file are unchanged. Fixes GHSA-qjjw-3v66-279f Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Only allow existing streams on proxied go2rtc live paths nginx proxies /live/mse/api/ws, /live/webrtc/api/ws and /api/go2rtc/webrtc straight to go2rtc, which creates a new ad hoc stream from any src that is not an existing stream name and starts the producer it describes. Any authenticated user, including the built-in viewer role, could use this to launch arbitrary go2rtc sources without going through the restricted-source checks on PUT /go2rtc/streams. The /auth subrequest now denies these paths unless every src names an existing stream: a camera or its live stream, a go2rtc stream from the config, or a stream go2rtc reports at runtime. This applies to every role, and the runtime lookup fails closed when go2rtc cannot be reached. Fixes GHSA-93xj-hg88-ffg7 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Ignore GO2RTC_ALLOW_ARBITRARY_EXEC in environment_vars environment_vars installs every key into the Frigate process environment at startup, so an admin could enable GO2RTC_ALLOW_ARBITRARY_EXEC from the config and turn off the restricted go2rtc source checks on the API. The override is meant to be set by the operator in the container environment (or the Home Assistant add-on options), so it is now skipped with a warning when it appears in environment_vars. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Apply go2rtc source restrictions to config/save and config/set go2rtc.streams written through config/save or config/set were only filtered at startup, which blocks echo/expr/exec and the map form but not the ffmpeg: parameters that PUT /go2rtc/streams now rejects. Saving a stream this way and restarting bypassed the API restriction. Both endpoints now reject a change that adds a go2rtc stream source that fails is_restricted_go2rtc_api_source, or a map-form source, unless GO2RTC_ALLOW_ARBITRARY_EXEC is set. Sources already in the saved config for the same stream are left alone, so streams configured on disk keep working and resubmitting the whole file from the config editor succeeds. config/set restores the previous file when it rejects a change. Follow-up to GHSA-qjjw-3v66-279f Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Match go2rtc stream-proxy paths the way nginx does /auth compared the raw $request_uri path against the three go2rtc stream-proxy paths exactly, while nginx matches its prefix locations against the normalized URI. Encoded characters, repeated slashes, dot segments or a suffix on the path skipped the stream check even though nginx still proxied the request to go2rtc. The go2rtc stream locations now set a variable that the auth subrequest forwards as X-Go2rtc-Stream-Proxy (client headers are not forwarded, so it cannot be spoofed). As a fallback, /auth also normalizes the path like nginx (percent-decoding, merging slashes, resolving dot segments) and prefix matches it, and splits the raw URI by hand since urlparse reads a leading // as a host. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Parse config stream changes with Frigate's YAML loader The go2rtc stream check on config/save and config/set parsed the config with the safe loader and treated a parse error as an empty config, while Frigate and the go2rtc startup script use the round-trip loader. Input that only the round-trip loader accepts, such as a tagged root map, hid new stream sources from the check. The check now uses the same round-trip loader and rejects the request when the new config cannot be parsed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Resolve go2rtc stream placeholders the same way everywhere The go2rtc startup script expanded stream sources with str.format(), which also supports attribute and index access, while the config API check used substitute_frigate_vars and fell back to the raw string when a placeholder could not be resolved. A placeholder the API check could not resolve could therefore expand into a restricted source at startup. The startup script now uses substitute_frigate_vars, like the rest of the config, and the API check rejects a stream source whose placeholders cannot be resolved. The startup script's own copy of the FRIGATE_* env var map is removed; the shared one also honors CREDENTIALS_DIRECTORY. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Accept codec sample rates in ffmpeg: go2rtc sources The ffmpeg: parameter allowlist only accepted plain names for video, audio and hardware, so the documented HomeKit source with #audio=opus/16000 was rejected by PUT /go2rtc/streams, config/save and config/set. Names may now carry a numeric /rate suffix. A rate without a name is still rejected. All ffmpeg: sources in the docs pass the check. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Restore the environment after go2rtc exec override tests Tests that removed or set GO2RTC_ALLOW_ARBITRARY_EXEC did not restore a value that was already present, so later tests could run with a changed security setting. They now use patch.dict on os.environ. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Revert the go2rtc startup script to str.format substitution Restores create_config.py to its state on master. The config API check rejects any stream source whose {FRIGATE_*} placeholders it cannot resolve with substitute_frigate_vars, and for every source it accepts, str.format() at startup either produces the same string or fails and stops go2rtc startup. Changing the startup script is therefore not needed for the fix, and leaving it alone avoids a conflict with dev, which already moved this script to the new env helpers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * Explain why a go2rtc stream change was rejected A stream source with an undefined or malformed {FRIGATE_*} placeholder was reported as a restricted source, which reads like a security block when the user made a typo. The config API now reports unknown variables and invalid placeholders separately from restricted sources. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> |
||
|
|
d3b2af932c | bump version in docs (#24654) | ||
|
|
b79e043976 |
Reduce idle CPU from thread pools (#24652)
CI / AMD64 Build (push) Canceled after 0s
CI / ARM Build (push) Canceled after 0s
CI / Jetson Jetpack 6 (push) Canceled after 0s
CI / AMD64 Smoke Test (push) Canceled after 0s
CI / AMD64 Extra Build (push) Canceled after 0s
CI / ARM Extra Build (push) Canceled after 0s
CI / Synaptics Build (push) Canceled after 0s
CI / Assemble and push default build (push) Canceled after 0s
* reduce idle cpu from onnxruntime and opencv thread pools ONNX Runtime's intra-op threads kept spinning for about 1 s after every run, so a CPU enrichment called once a second or more kept most cores busy. On a 16 thread machine, arcface at one call per second used 9.4 s of CPU per call with ~360 ms latency. Enrichment sessions on the CPU execution provider now set `session.intra_op.allow_spinning` to 0, which drops that to 1.9 s with no latency change. Detector sessions and GPU providers are unchanged, since disabling spinning doubled yolov9-t latency on CPU (12 to 23 ms). The output and embeddings processes now run OpenCV single threaded, like the camera tracking process. A 4 camera birdseye redraw at 1080p drops from 13.7 to 4.0 ms of CPU, and the full frame conversion in the enrichment processors from 23 to 2.7 ms, each adding about 1 ms of wall time. * test that only cpu enrichment sessions disable ort spinning * patch out the neural engine in the spinning test |
||
|
|
e61ad52b67 |
move env helpers out of the config package (#24648)
CI / AMD64 Build (push) Canceled after 0s
CI / AMD64 Smoke Test (push) Canceled after 0s
CI / ARM Build (push) Canceled after 0s
CI / Jetson Jetpack 6 (push) Canceled after 0s
CI / AMD64 Extra Build (push) Canceled after 0s
CI / ARM Extra Build (push) Canceled after 0s
CI / Synaptics Build (push) Canceled after 0s
CI / Assemble and push default build (push) Canceled after 0s
go2rtc's create_config.py imported frigate.config.env, which ran the frigate.config package init and loaded every detector plugin. Since the onnxruntime 1.30 bump, importing onnxruntime takes about 5s on some hosts, so go2rtc started after Frigate's cameras and every ffmpeg process failed to connect to the restream until it came up. The env helpers now live in frigate.util.env, so go2rtc's config script no longer imports onnxruntime. |
||
|
|
41d9577d72 |
Fix docs shm calculator (#24649)
CI / AMD64 Build (push) Canceled after 0s
CI / ARM Build (push) Canceled after 0s
CI / Jetson Jetpack 6 (push) Canceled after 0s
CI / AMD64 Extra Build (push) Canceled after 0s
CI / ARM Extra Build (push) Canceled after 0s
CI / Synaptics Build (push) Canceled after 0s
CI / Assemble and push default build (push) Canceled after 0s
* match the docs shm calculator to the backend's minimum The calculator left out the room Frigate reserves for 2 cameras added at runtime, counted the per-frame overhead once per camera instead of per frame, and reserved 40mb instead of 50mb for logs and the nginx cache, so a setup sized with it got well under 20 frames and the "SHM size is too small" warning. It now computes the same minimum as calculate_shm_requirements() and also shows the size for the full 50 frame cache. * size the docs shm calculator for 25 frames Sizing to the backend's 20 frame minimum could land at 19 frames from float rounding and still show the warning. |
||
|
|
cf67f08913 |
fix mse buffer trim spinning in a remove loop (#24643)
Subtracting 15s from the buffered end left a floating point remainder, so when Firefox held exactly 15s of buffer the handler called remove() on a near-zero range that removed nothing, and each updateend called it again. The loop pegged a CPU core and kept running after the websocket closed. Trimming now requires more than 1s past the window.v0.18.1 |
||
|
|
ff9eb8f184 |
Keep frame shared memory mapped (#24644)
* keep frame shm open and skip overwritten frames
Every reader closed and reopened a frame's shared memory segment on each frame, so each process paid a page fault on every page of a fresh mapping (about 760 for a 1080p frame) per frame. Readers now keep segments mapped. Capture stamps each slot's frame time in a per-camera `{camera}_frame_times` segment, and `get()` returns None when the slot no longer holds the requested frame, reopening once by name so a mapping left over from a same-size camera recreate heals itself. Capture also reuses a slot when the frame queue is full, since no reader was told about it.
* verify the frame for embeddings object updates
Tracked object events only carried the object's own frame_time, which stays at its last detection when the object isn't detected in a frame, so embeddings couldn't check the slot it read and could crop face or plate data from a frame that had already been overwritten. Events now carry the time of the frame they name, and embeddings passes it to `get()`.
* log when a frame slot was overwritten before it was read
A lapped read and a missing segment ended up as the same debug line at every caller, so there was no way to tell a slow reader from a missing frame.
* bring the FrameManager interface in line with its implementation
The abstract get() still had a timeout_ms signature from an older implementation and frame_times() wasn't declared, though capture and detect are typed against the interface. get() also didn't say how long the array it returns stays valid.
* drop a camera's cached frame mappings when it is removed or recreated
A reader that kept its mappings open stayed on a removed camera's segments, which pinned their shared memory until restart, and after a same-size recreate the ledger reopen only refreshed the slot being read while the other cached slots still returned the old camera's pixels. Readers now drop every cached slot for a camera on its remove update, and get() does the same when a ledger mismatch turns out to be a replaced ledger rather than a lapped slot.
* match a camera's frame names exactly in close_camera
The prefix match on `{camera}_frame` also caught another camera whose name starts with it, so removing `cam` dropped the cached ring of a camera named `cam_frame`.
|
||
|
|
bc06b8c753 |
run opencv single threaded in camera tracking processes (#24640)
CI / AMD64 Build (push) Canceled after 0s
CI / AMD64 Smoke Test (push) Canceled after 0s
CI / ARM Build (push) Canceled after 0s
CI / Jetson Jetpack 6 (push) Canceled after 0s
CI / AMD64 Extra Build (push) Canceled after 0s
CI / ARM Extra Build (push) Canceled after 0s
CI / Synaptics Build (push) Canceled after 0s
CI / Assemble and push default build (push) Canceled after 0s
OpenCV's default thread pool is sized to every core, and its idle threads spin while it works on the small motion frames and detection regions in each camera tracking process. On a 16 thread machine replaying 720p clips at 5 fps, tracking CPU dropped from 27-50 ms to 5-8 ms per frame with identical output and no change in wall time. Frames from ffmpeg are now also read directly into shared memory with readinto(), which skips one copy per frame. |
||
|
|
e7164882f5 |
Return to the requested URL after logging in (#24637)
When an unauthenticated user opens a deep link, carry the requested path through the login page in a redirect query param and return to it after a successful login instead of always going to the home page. Only same-origin targets are honored. Claude-Session: https://claude.ai/code/session_011CFGjgYURSRTpXBaxp1Dq7 Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> |
||
|
|
135a95d8f2 |
Fix various warnings and deprecations (#23641)
* Migrate to fastapi lifespan for startup events The `on_event` style decorator is deprecated https://fastapi.tiangolo.com/advanced/events/ * Migrate to pydantic TypeAdapter https://pydantic.dev/docs/validation/2.12/get-started/migration/#introduction-of-typeadapter * Replace pytz with native tz-aware objects and zoneinfo library Supported from Python 3.9, see https://peps.python.org/pep-0615/. Also https://blog.ganssle.io/articles/2019/11/utcnow.html. Also provide tzdata as new dependency to supplement systems without local tzdata information. * Provide lookup for normalized timezone names This provides a helper to look up the correct timezone name independent of the casing of the given timezone name. * Test timezone naming normalization and error handling |
||
|
|
7e402d70df |
Fix environment_vars not reaching ffmpeg processes (#24635)
CI / AMD64 Build (push) Canceled after 0s
CI / ARM Build (push) Canceled after 0s
CI / Jetson Jetpack 6 (push) Canceled after 0s
CI / AMD64 Extra Build (push) Canceled after 0s
CI / ARM Extra Build (push) Canceled after 0s
CI / Synaptics Build (push) Canceled after 0s
CI / Assemble and push default build (push) Canceled after 0s
* start the forkserver after the config applies environment_vars The forkserver started as a side effect of creating the multiprocessing Manager at the top of main(), before the config loaded, so every worker process and the ffmpeg it launched inherited the environment from before environment_vars were applied. Variables like LIBVA_DRIVER_NAME set in config.yml never reached ffmpeg. The Manager now uses the fork context, so the forkserver does not start until the first worker process. * fix test |
||
|
|
186a730790 |
use CLIPImageProcessorPil to silence transformers torchvision warning (#24636)
CI / AMD64 Build (push) Canceled after 0s
CI / AMD64 Smoke Test (push) Canceled after 0s
CI / ARM Build (push) Canceled after 0s
CI / Jetson Jetpack 6 (push) Canceled after 0s
CI / AMD64 Extra Build (push) Canceled after 0s
CI / ARM Extra Build (push) Canceled after 0s
CI / Synaptics Build (push) Canceled after 0s
CI / Assemble and push default build (push) Canceled after 0s
|
||
|
|
5c32af3c7f |
Autotracking improvements and fixes (#24633)
CI / AMD64 Build (push) Canceled after 0s
CI / AMD64 Smoke Test (push) Canceled after 0s
CI / ARM Build (push) Canceled after 0s
CI / Jetson Jetpack 6 (push) Canceled after 0s
CI / AMD64 Extra Build (push) Canceled after 0s
CI / ARM Extra Build (push) Canceled after 0s
CI / Synaptics Build (push) Canceled after 0s
CI / Assemble and push default build (push) Canceled after 0s
* fix autotracking tracker selection and crop before histogram conversion - Rebuild the norfair trackers when an onvif save changes autotracking enabled_in_config or the PTZ-tracked labels. The trackers were only built at startup, so disabling autotracking or removing person from its track list in the UI made get_tracker pick a tracker that didn't exist, and the KeyError killed the camera process until restart. Saves that leave the selection alone, and runtime MQTT toggles, don't touch tracking. - get_tracker now returns the default tracker that match_and_update actually feeds. On autotracking cameras it returned the static default for labels without their own tracker, so register missed the norfair object and lost the pre-initialization score history, and deregister pruned the wrong tracker. - get_histogram crops the box out of each I420 plane before converting to BGR instead of converting the whole frame. It runs per detection per frame on autotracking cameras and now costs about 0.2 ms at any resolution, down from 1 ms at 1080p and 5 ms at 4K. * don't rebuild trackers for track list edits while autotracking is disabled |
||
|
|
acc84d7658 |
Fixes (#24631)
* fix classification wizard finding no sample images on large databases The wizard grouped tracked objects by camera and 6 hour block, oldest first, then kept the first 100. With more than 100 groups that was always the oldest objects, which often have no snapshot or thumbnail left on disk, so no examples were generated. Shuffle the selection before truncating, and keep extracting from the remaining tracked objects until 100 usable images are found. * add notice and system ui message when a camera isn't using go2rtc * add docs note about privacy masks * match index-less device strings to hardware units in the detection models picker A config with `edgetpu:usb` was reported as hardware that wasn't found, because the picker compared device strings exactly and the probe reports the unit as `edgetpu:usb:0`. A device without an index now resolves to the first unit of that kind, so the hardware dropdown, the unit checkboxes, and the model summary all recognize it. * don't treat unknown audio as an audio-bearing stream A recording row with NULL has_audio (ffprobe failed and the cv2 fallback can't report audio) marked the whole stream as audio-bearing, so every confirmed video-only row on it was dropped as a glitch. A stream now counts as audio-bearing only when a row is known to carry audio. * stage main+sub exports on disk instead of /tmp/cache A main+sub export stages a full copy of itself before the final file is written. That copy went to /tmp/cache, so a long export outgrew the tmpfs and failed with no space left on device. Staged runs are now written to the exports directory, and startup removes any left behind by a killed export. * address review feedback - stage main+sub export runs in a staging subfolder of the exports directory, so media sync can't delete them mid-export and startup cleanup can't remove a finished export with a matching name or fail on an unremovable file - run object classification example collection off the event loop - prefer an exact hardware unit match over an index-less one, so an AMD GPU's "onnx" no longer selects the NVIDIA entry - add tests for the classification fallback and index-less hardware matching * serialize example collection and clean up exports when staging dir creation fails - overlapping object example requests could delete each other's images in the shared temp and train directories, so collection now runs under a lock - a failed makedirs for the staging directory raised past the failed-export cleanup and left the export spinning until restart, so it now fails the run through the normal cleanup path * revert |
||
|
|
8e569ff4f9 |
clarify intel gpu stats requirements for pre-broadwell gpus (#24632)
CI / AMD64 Build (push) Canceled after 0s
CI / ARM Build (push) Canceled after 0s
CI / Jetson Jetpack 6 (push) Canceled after 0s
CI / AMD64 Extra Build (push) Canceled after 0s
CI / ARM Extra Build (push) Canceled after 0s
CI / Synaptics Build (push) Canceled after 0s
CI / Assemble and push default build (push) Canceled after 0s
The i915 driver never publishes per-client usage counters on GPUs older than Broadwell, so Haswell and older users got a warning telling them to upgrade to kernel 6.5 even on 6.12. The warning and docs now state the Broadwell requirement alongside the kernel 6.5 requirement for 12th gen and newer. |
||
|
|
2cb03f442c |
Group dependabot updates (#24624)
CI / AMD64 Build (push) Canceled after 0s
CI / AMD64 Smoke Test (push) Canceled after 0s
CI / ARM Build (push) Canceled after 0s
CI / Jetson Jetpack 6 (push) Canceled after 0s
CI / AMD64 Extra Build (push) Canceled after 0s
CI / ARM Extra Build (push) Canceled after 0s
CI / Synaptics Build (push) Canceled after 0s
CI / Assemble and push default build (push) Canceled after 0s
* group dependabot updates and hold known-bad versions Dependabot opened a separate PR for every bump, refilled the list with security PRs right after each merge, and kept proposing versions known to break Frigate. - Group minor and patch updates and security updates into one PR per ecosystem, with separate groups for packages that only resolve together - Move every version hold into ignore rules, each with its reason - Switch to weekly updates with a 3-day cooldown - Turn off version updates for docker/tensorrt, since no pull request check builds those images - Drop target-branch, which kept these options from applying to security updates, and the docker entry, which never opened a PR - Scan the setup composite action, and bump change-string-case, setup-qemu, setup-buildx and login-action * group github actions security updates |
||
|
|
79177db969 |
Update deps (#24623)
* bump backend and frontend dependencies
Bumps every outdated dependency that passed testing, with the code changes each one needs.
- peewee 4.5 and peewee_migrate 2.3: use SqliteDatabase in place of the removed SqliteExtDatabase, and fix types for peewee's bundled stubs
- mypy 2.4.0: remove unused type ignores and add the annotations mypy 2 needs
- pandas 3.0: convert the motion activity index with as_unit("s"), because pandas 3 infers second resolution for whole-second timestamps and the old // 10**9 returned 1
- transformers 5.19: load Jina tokenizers from the saved directory with trust_remote_code off and use CLIPImageProcessor, since v5 removed CLIPFeatureExtractor and remote code pulled in torch
- tensorflow-cpu 2.21: pin protobuf to 7.36 in the TensorRT amd64 image, because the old 3.20.3 pin was installed over TensorFlow and broke its import
- pydantic 2.13 and google-genai 2.29: regenerate the API spec
- ruff 0.16: set an explicit lint select, since 0.16 widened the default rules
- react-router-dom 7: set useTransitions={false} on BrowserRouter to keep v6 update timing, which useSearchEffect relies on
- typescript 6: drop baseUrl and add node types in tsconfig
- radix: update to the latest release and remove the slot patch, which upstream now includes
- apexcharts 7.8: guard the tooltip formatter against null values
- cryptography 50, joserfc 1.7, pywebpush 2.5, openai 3.26, aiohttp, uvicorn, onvif-zeep-async, scipy, framer-motion 14, react-day-picker 10 and other minor and patch bumps
* silence httpx2 request logging
* redownload an incomplete jina tokenizer
An interrupted tokenizer download left the Hugging Face cache directory without the saved tokenizer files, and since the download is skipped whenever that directory exists, every restart failed to load the tokenizer. The Jina constructors now remove a tokenizer directory that has no tokenizer_config.json so the download runs again.
|
||
|
|
9d9de6263e |
only show camera group edit button on live grid to admins (#24622)
CI / AMD64 Build (push) Canceled after 0s
CI / ARM Build (push) Canceled after 0s
CI / Jetson Jetpack 6 (push) Canceled after 0s
CI / AMD64 Extra Build (push) Canceled after 0s
CI / ARM Extra Build (push) Canceled after 0s
CI / Synaptics Build (push) Canceled after 0s
CI / Assemble and push default build (push) Canceled after 0s
The pencil button on the desktop live grid opened the camera group edit dialog for any role, so viewers could change settings and then hit an admin-only error on save. The button now renders only for admins, matching the sidebar and mobile entry points. |
||
|
|
e8e6326d37 |
Create a notice when frames are backed up in the tracked object process (#24619)
* Create a notice when frames are backed up in the tracked object processor * Launch notice in thread to avoid more delay |
||
|
|
c75f7c3241 |
Reject dot-only usernames (#24611)
* reject usernames made only of dots
A username of "." or ".." passed validation, but browsers resolve those as path segments, so requests to /users/{username} never reached the API and the user could not be deleted or edited from the UI. User creation now rejects dot-only names in both the API and the create user dialog.
* show a specific error for dot-only usernames
Entering "." or ".." in the create user dialog showed the message listing periods as allowed characters, which didn't explain the rejection. The dialog now checks for dot-only names separately and shows its own message.
|
||
|
|
2e92251aa5 |
save genai debug thumbnails on early requests (#24615)
CI / AMD64 Build (push) Canceled after 0s
CI / ARM Build (push) Canceled after 0s
CI / Jetson Jetpack 6 (push) Canceled after 0s
CI / AMD64 Extra Build (push) Canceled after 0s
CI / ARM Extra Build (push) Canceled after 0s
CI / Synaptics Build (push) Canceled after 0s
CI / Assemble and push default build (push) Canceled after 0s
debug_save_thumbnails was only honored when a description was sent at the end of a tracked object, so requests triggered by after_significant_updates never wrote their images to genai-requests. The save now lives in a helper that both paths call. |
||
|
|
cc86519603 |
Lock ZMQ sockets shared across threads (#24607)
CI / AMD64 Build (push) Canceled after 0s
CI / ARM Build (push) Canceled after 0s
CI / Jetson Jetpack 6 (push) Canceled after 0s
CI / AMD64 Extra Build (push) Canceled after 0s
CI / ARM Extra Build (push) Canceled after 0s
CI / Synaptics Build (push) Canceled after 0s
CI / Assemble and push default build (push) Canceled after 0s
* lock zmq sockets shared across threads Several zmq sockets were used from more than one thread at a time, which zmq does not allow. In the embeddings process, GenAI review and object description threads shared one requestor, so overlapping calls silently dropped the second write and could eventually leave a thread waiting forever on a reply that had already arrived, after which nothing was saved until restart. The API's embeddings requestor had the same problem, concurrent config publishes could mix the topic of one update with the payload of another, and the webpush config subscribers were drained from every publishing thread, which could abort the process. Each socket now has a lock. The embeddings requestor lock does not wait, so an overlapping call still returns empty right away instead of stalling the API behind a slow reply. * add test |
||
|
|
01f3369659 |
Ollama image improvements (#24605)
CI / AMD64 Build (push) Canceled after 0s
CI / AMD64 Smoke Test (push) Canceled after 0s
CI / ARM Build (push) Canceled after 0s
CI / Jetson Jetpack 6 (push) Canceled after 0s
CI / AMD64 Extra Build (push) Canceled after 0s
CI / ARM Extra Build (push) Canceled after 0s
CI / Synaptics Build (push) Canceled after 0s
CI / Assemble and push default build (push) Canceled after 0s
* Support embeddinggemma for ollama * Refactor docs * Allow Ollama to probe cost of image tokens * Cleanup |
||
|
|
7786da465f |
Check export thumbnail image access (#24603)
* require export image_path to belong to the exported camera image_path was only checked for containment under the clips directory, which every camera shares, so a user restricted to one camera could start an export of that camera and have the server copy another camera's image, or a file from an admin-only directory like faces, into the export thumbnail. The path now also has to resolve to the camera being exported, using the same classifier that gates media requests. * check image_path against the caller's read access instead of the exported camera Requiring the image to belong to the exported camera rejected custom images that a script saves under the clips directory for its own export pipeline. The path is now accepted whenever the caller's role could read it as media, so admins and unrestricted roles can use any image there and restricted roles are limited to their own cameras. |
||
|
|
e66da62db3 |
fix untrained classification models not saving images (#24597)
CI / AMD64 Build (push) Canceled after 0s
CI / ARM Build (push) Canceled after 0s
CI / Jetson Jetpack 6 (push) Canceled after 0s
CI / AMD64 Extra Build (push) Canceled after 0s
CI / ARM Extra Build (push) Canceled after 0s
CI / Synaptics Build (push) Canceled after 0s
CI / Assemble and push default build (push) Canceled after 0s
The mypy cleanup in https://github.com/blakeblackshear/frigate/pull/22658 added a check on the tensor details to the top of process_frame for both state and object models. Those are unset until a model is trained, so untrained models returned early and never saved images to Recent Classifications. Remove the check from process_frame, the classify methods already check the tensor details before using them. |
||
|
|
c06a97378c |
skip malformed webpush subscriptions instead of failing startup (#24604)
Registration only checked that the p256dh and auth keys were non-empty strings, so any authenticated user could store a subscription that WebPusher refuses to construct. WebPushClient built one WebPusher per stored subscription with no error handling during init_dispatcher, so a single bad row raised before the camera processes and API started, and it did so again on every restart because the row was reloaded from the database. Building the pushers now logs and skips a subscription that fails to construct, both at startup and when expired subscriptions are cleaned up. |
||
|
|
f1d1748fb3 |
Fix Birdseye rapid camera switching when max_cameras is set (#24591)
CI / AMD64 Build (push) Canceled after 0s
CI / AMD64 Smoke Test (push) Canceled after 0s
CI / ARM Build (push) Canceled after 0s
CI / Jetson Jetpack 6 (push) Canceled after 0s
CI / AMD64 Extra Build (push) Canceled after 0s
CI / ARM Extra Build (push) Canceled after 0s
CI / Synaptics Build (push) Canceled after 0s
CI / Assemble and push default build (push) Canceled after 0s
* Fix Birdseye rapid camera switching in single-camera view (#10845) Add a configurable min_camera_hold (default 5s) to prevent Birdseye from rapidly flipping between cameras when multiple have simultaneous activity. Also fix the max_cameras cooldown which was bypassed whenever more cameras were active than the configured limit. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Remove min_camera_hold config, use hardcoded CAMERA_HOLD_SECONDS constant Replace the configurable min_camera_hold field with a module-level CAMERA_HOLD_SECONDS = 5 constant to keep behavior simple and avoid adding config complexity. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Fix max_cameras hold blocking count changes, add count-increase test The >= guard could prevent cameras from appearing when the displayed count was below max_cameras. Now the hold only applies when the limited count matches the currently displayed count, so count changes are always immediate. Adds a dedicated test for this case. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * Apply reviewer feedback: simplify max_cameras hold, remove single-camera hold - Use hawkeye217's suggested condition for max_cameras cooldown: only hold when currently showing exactly max_cameras and there are at least max_cameras active - Remove single-camera hold entirely — without max_cameras set, the hold only triggers when one camera expires as another activates, keeping the inactive camera visible unnecessarily - Remove last_layout_change_time (no longer used) - Remove single-camera hold tests (feature removed) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com> |
||
|
|
33cb8d987d |
pass only the request path in X-Original-URL (#24602)
nginx built X-Original-URL from the client's Host header plus the request path, so a Host containing '#' or '?' pushed the real path into the URL fragment or query. The media and go2rtc auth checks then saw an empty path and allowed restricted-role users to read other cameras' clips, recordings, exports and live streams. The header now carries only $request_uri, which is all the auth checks need. |
||
|
|
2273cf2d50 |
remove annke firmware workaround for autotracking (#24594)
see https://github.com/blakeblackshear/frigate/discussions/24593 |
||
|
|
f084e6acc7 |
Bump brace-expansion from 1.1.18 to 1.1.21 in /docs (#24596)
CI / AMD64 Build (push) Canceled after 0s
CI / AMD64 Smoke Test (push) Canceled after 0s
CI / ARM Build (push) Canceled after 0s
CI / Jetson Jetpack 6 (push) Canceled after 0s
CI / AMD64 Extra Build (push) Canceled after 0s
CI / ARM Extra Build (push) Canceled after 0s
CI / Synaptics Build (push) Canceled after 0s
CI / Assemble and push default build (push) Canceled after 0s
Bumps [brace-expansion](https://github.com/juliangruber/brace-expansion) from 1.1.18 to 1.1.21. - [Release notes](https://github.com/juliangruber/brace-expansion/releases) - [Commits](https://github.com/juliangruber/brace-expansion/compare/v1.1.18...v1.1.21) --- updated-dependencies: - dependency-name: brace-expansion dependency-version: 1.1.21 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
a3ea529eb5 |
Bump source-map-js from 1.2.1 to 1.2.2 in /docs (#24595)
Bumps [source-map-js](https://github.com/7rulnik/source-map-js) from 1.2.1 to 1.2.2. - [Release notes](https://github.com/7rulnik/source-map-js/releases) - [Changelog](https://github.com/7rulnik/source-map-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/7rulnik/source-map-js/compare/v1.2.1...v1.2.2) --- updated-dependencies: - dependency-name: source-map-js dependency-version: 1.2.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
c53adf1f72 |
Bump compression from 1.8.1 to 1.8.2 in /docs (#24585)
Bumps [compression](https://github.com/expressjs/compression) from 1.8.1 to 1.8.2. - [Release notes](https://github.com/expressjs/compression/releases) - [Changelog](https://github.com/expressjs/compression/blob/master/HISTORY.md) - [Commits](https://github.com/expressjs/compression/compare/v1.8.1...v1.8.2) --- updated-dependencies: - dependency-name: compression dependency-version: 1.8.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |
||
|
|
528967a783 |
Bump source-map-js from 1.2.1 to 1.2.2 in /web (#24583)
Bumps [source-map-js](https://github.com/7rulnik/source-map-js) from 1.2.1 to 1.2.2. - [Release notes](https://github.com/7rulnik/source-map-js/releases) - [Changelog](https://github.com/7rulnik/source-map-js/blob/main/CHANGELOG.md) - [Commits](https://github.com/7rulnik/source-map-js/compare/v1.2.1...v1.2.2) --- updated-dependencies: - dependency-name: source-map-js dependency-version: 1.2.2 dependency-type: indirect ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> |