Nicolas Mowen
923d07b1a4
BUG: Event stuck if recording & snapshot disabled while in-progress ( #3023 )
...
* Fix recording getting stuck bug
* Fix typo
2022-03-30 06:33:34 -05:00
Nicolas Mowen
b1cc64d4fa
FEAT: Ability to set sub labels for specific events ( #2949 )
...
* Add sub label to model and set / delete funs
* Add migrations for sub label
* Tweaks to API and model
* Show sublabel if available
* Cleanups
* Update docs
* Show person in UI title
* Fix typo and don't fail on no json
* Transfer sub labels for in progress events
* Remove sublabel reset
* Remove person only check
* Make default null
* Update docs and formatting
* Make default null
* Make nullable in migration
* Undo null
* Update model to accept null
* Update migration to accept null
* Don't set to default values
* Remove redundant defaults and update http logic
* Only need a single route
* Enforce 20 character limit in http
* Update docs to mention 20 character limit
* Cleanup
* Separate insert and update to make sure updated values are retained when event ends
* Use insert instead of replace
* Remove redundant if and have should_update_db include clip or snapshot requirement.
2022-03-17 07:18:43 -05:00
Nicolas Mowen
0abd0627df
FEAT: Replace best jpg endpoint ( #2944 )
...
* Added object thumbnail def and made camera tracked objects use it.
* Add object snapshot def
* Remove documentation for best.jpg
* Update docs for label thumbnail and snapshot defs
2022-03-11 07:56:39 -06:00
Blake Blackshear
1c9ba11e07
swr events refactor
2022-03-11 07:49:06 -06:00
707Alex707
83481afee1
remove print statement
2022-03-10 20:02:10 -06:00
Blake Blackshear
b1a2b0cda2
make dynamic contrast optional and disable by default
2022-03-10 19:46:55 -06:00
Nicolas Mowen
006569391f
MQTT support for all
objects for each camera & zone ( #2908 )
2022-03-10 06:03:00 -06:00
JohnMark Sill
3e07d4eddb
feat: Timeline UI ( #2830 )
2022-02-27 08:04:12 -06:00
Nicolas Mowen
4004048add
Ability to retain specific clips / events indefinitely ( #2831 )
2022-02-21 22:03:01 -06:00
Blake Blackshear
cbf26e09a4
fix for opencv changes
2022-02-21 06:51:33 -06:00
Blake Blackshear
395c16300d
deregister based on max_frames setting
2022-02-18 21:18:26 -06:00
Blake Blackshear
ff19cdb773
refactor stationary config into section
2022-02-18 21:18:26 -06:00
Blake Blackshear
ebdfbfe96c
update birdseye to handle stationary objects
2022-02-18 21:18:26 -06:00
Blake Blackshear
c14f986fae
stop forcing detection all the way to stationary_threshold
2022-02-18 21:18:26 -06:00
Blake Blackshear
ee5b9986ad
bump default stationary_threshold to 10s
2022-02-18 21:18:26 -06:00
Blake Blackshear
190f217b13
set stationary_threshold default to 5x fps
2022-02-18 21:18:26 -06:00
Blake Blackshear
e78662b924
fix the bounding box calculation position at 10
2022-02-18 21:18:26 -06:00
Blake Blackshear
5a2e395352
selectively increment position changes
2022-02-18 21:18:26 -06:00
Jason Hunter
21178613de
Only send significant update once when motionless count reaches the defined threshold.
2022-02-18 21:18:26 -06:00
Jason Hunter
340be7f86d
Allow download of in progress clips
2022-02-18 21:18:26 -06:00
Blake Blackshear
0ff4acd59c
remove invalid warning
2022-02-18 21:18:26 -06:00
Jason Hunter
e433bec17f
Add in progress events to recordings view
2022-02-18 21:18:26 -06:00
Blake Blackshear
3189467a36
update an object once per minute
2022-02-18 21:18:26 -06:00
Blake Blackshear
63536d249f
signal an update when object becomes stationary
2022-02-18 21:18:26 -06:00
Blake Blackshear
3e90f3032c
make stationary_threshold configurable
2022-02-18 21:18:26 -06:00
Blake Blackshear
5cff849e59
publish an update on position changes
2022-02-18 21:18:26 -06:00
Blake Blackshear
06cc7527a9
only update db entry when a stored property changes
2022-02-18 21:18:26 -06:00
Blake Blackshear
d78dc2388c
increment motionless_count
2022-02-18 21:18:26 -06:00
Blake Blackshear
583912db9c
allow motion based retention when detect is disabled
2022-02-18 21:18:26 -06:00
Blake Blackshear
b82d75b79e
avoid rare divide by zero
2022-02-18 21:18:26 -06:00
Blake Blackshear
ac30091258
note for future
2022-02-18 21:18:26 -06:00
Blake Blackshear
de58bdcc9f
improve warning for retain modes
2022-02-18 21:18:26 -06:00
Blake Blackshear
329e5f8f91
invert active_count logic
2022-02-18 21:18:26 -06:00
Blake Blackshear
4a16171f96
set has_clip to false when recordings fail
2022-02-18 21:18:26 -06:00
Blake Blackshear
f0212c2aa4
adjust error messages on ffmpeg crash
2022-02-18 21:18:26 -06:00
Blake Blackshear
7401cf2399
add stacktrace to config validation errors
2022-02-18 21:18:26 -06:00
Blake Blackshear
cf6e66c453
allow dash in camera name
2022-02-18 21:18:26 -06:00
Blake Blackshear
34fa53afcc
make motion the default retain mode
2022-02-18 21:18:26 -06:00
Blake Blackshear
f512af2563
make expire interval configurable for users wanting to minimize i/o
2022-02-18 21:18:26 -06:00
Blake Blackshear
7e7d70aa5b
avoid extra tracking work on stationary frames
2022-02-18 21:18:26 -06:00
Blake Blackshear
dd1cf4d2ce
use iou instead of centroid
2022-02-18 21:18:26 -06:00
Blake Blackshear
e627f4e935
dont stop scanning when there are other regions
2022-02-18 21:18:26 -06:00
Blake Blackshear
c6445898ce
default periodic checks to never
2022-02-18 21:18:26 -06:00
Blake Blackshear
f1ddd0e6f7
scan the frame on startup
2022-02-18 21:18:26 -06:00
Blake Blackshear
db369a5b7f
require a position change to be an active object
2022-02-18 21:18:26 -06:00
Blake Blackshear
87cd618998
randomize the region multiplier for variation
2022-02-18 21:18:26 -06:00
Blake Blackshear
338e4004d4
improve method for determining position
...
compares the centroid to a history of bounding boxes
2022-02-18 21:18:26 -06:00
Blake Blackshear
675f21e23a
if recording not on disk, delete from db and return
2022-02-18 21:18:26 -06:00
Blake Blackshear
4d2d11193f
cleanup clean snapshots on event deletion too
2022-02-18 21:18:26 -06:00
Blake Blackshear
69aaf1f8e6
require url safe camera names
2022-02-18 21:18:26 -06:00
Yuriy Sannikov
6eecb6780e
Run python unit tests in a github actions ( #2589 )
...
* tox tests initial commit
* run tests in the Dockerfile during the build phase
* remove local tests
Co-authored-by: YS <ys@gm.com>
2022-02-18 21:18:26 -06:00
Yuriy Sannikov
80627e4989
safe refactoring ( #2552 )
...
Co-authored-by: YS <ys@gm.com>
2022-02-18 21:18:26 -06:00
TJ Horner
9e987fdebc
Change JPEG mime type ( #2543 )
2022-02-18 21:18:26 -06:00
Blake Blackshear
e6292c719d
disable disk sync on startup
2022-02-18 21:18:26 -06:00
Blake Blackshear
2c91e7853c
check for apex dir
2022-02-18 21:18:26 -06:00
Ryan McLean
1e7f196e5c
#2117 change entered_zones from set to list so that they are not automatically alphabetically ordered ( #2212 )
2022-02-18 21:18:26 -06:00
Justin Goette
f91f4f0053
Allow for ".yaml" ( #2244 )
...
* allow for ".yaml"
* remove unused import
2022-02-18 21:18:26 -06:00
Matt Clayton
8b2622a234
Add temperature of coral tpu to telemetry mqtt message
2022-02-18 21:18:26 -06:00
Blake Blackshear
ec3c15e4a7
expire overlapping segments based on mode
2022-02-18 21:18:26 -06:00
Blake Blackshear
188b202836
store objects and motion counts in the db
2022-02-18 21:18:26 -06:00
Blake Blackshear
01e607a14e
warn when retention mismatch
2022-02-18 21:18:26 -06:00
Blake Blackshear
5b164b72dc
refactor segment stats logic
2022-02-18 21:18:26 -06:00
Blake Blackshear
dcf65febba
switch to retain config instead of retain_days
2022-02-18 21:18:26 -06:00
Blake Blackshear
56a2d4e64d
pass processed tracked objects
2022-02-18 21:18:26 -06:00
Blake Blackshear
ef214fb80a
retain frame data for recording maintenance
2022-02-18 21:18:26 -06:00
Blake Blackshear
689af4ff87
sync recordings with disk once on startup
2022-02-18 21:18:26 -06:00
Blake Blackshear
4ab0927de8
no need to expire recordings every minute
2022-02-18 21:18:26 -06:00
Blake Blackshear
014e6fc909
ensure cache copies when events have ended
2022-02-18 21:18:26 -06:00
Blake Blackshear
6832575643
cleanup missing files from database once per hour
2022-02-18 21:18:26 -06:00
Blake Blackshear
07ad2d97b1
handle missing file edge case
2022-02-18 21:18:26 -06:00
Blake Blackshear
039f1a522e
log error messages on vod endpoints
2022-02-18 21:18:26 -06:00
Blake Blackshear
24e2f84231
ensure duration > 0 for segments
2022-02-18 21:18:26 -06:00
Blake Blackshear
c50e9d48bf
ensure stationary interval is greater than 0
2022-02-18 21:18:26 -06:00
Blake Blackshear
173eaabddf
add duration to cache
2022-02-18 21:18:26 -06:00
Blake Blackshear
a748b70da1
avoid running ffprobe for each segment multiple times
2022-02-18 21:18:26 -06:00
Blake Blackshear
8eabe5dd41
warn if no wait time
2022-02-18 21:18:26 -06:00
Blake Blackshear
114415b5e1
keep 5 segments in cache
2022-02-18 21:18:26 -06:00
Blake Blackshear
ba55b5a6db
better cache handling
2022-02-18 21:18:26 -06:00
Blake Blackshear
7533f2a8ab
avoid proactive messages with retain_days 0 and handle first pass
2022-02-18 21:18:26 -06:00
Blake Blackshear
543a8a1712
avoid divide by zero
2022-02-18 21:18:26 -06:00
Blake Blackshear
9b23ff597c
revert switch to b/w frame prep
2022-02-18 21:18:26 -06:00
Blake Blackshear
b2ce1edd5a
fix default motion comment
2022-02-18 21:18:26 -06:00
Blake Blackshear
a0235b7da4
more robust cache management
2022-02-18 21:18:26 -06:00
Blake Blackshear
34bc6a6457
error handling for the recording maintainer
2022-02-18 21:18:26 -06:00
Blake Blackshear
273076e7f4
don't modify ffmpeg_cmd object
2022-02-18 21:18:26 -06:00
Blake Blackshear
b29b311e92
fix ffmpeg config for env vars
2022-02-18 21:18:26 -06:00
Blake Blackshear
5a9e82c4b0
create ffmpeg commands on startup
2022-02-18 21:18:26 -06:00
Blake Blackshear
0695bb097d
revamp process clip
2022-02-18 21:18:26 -06:00
Blake Blackshear
294c79a271
no longer make motion settings dynamic
2022-02-18 21:18:26 -06:00
Blake Blackshear
e351e132f5
remove min frame height of 180 and increase contour area
2022-02-18 21:18:26 -06:00
Blake Blackshear
258215a3ae
consolidate regions
2022-02-18 21:18:26 -06:00
Blake Blackshear
08ddfc100f
improve contrast
2022-02-18 21:18:26 -06:00
Blake Blackshear
8ab6cba521
check for overlapping motion boxes
2022-02-18 21:18:26 -06:00
Blake Blackshear
eb16de7395
config option for stationary detection interval
2022-02-18 21:18:26 -06:00
Blake Blackshear
dde0498ed3
drop high overlap detections
2022-02-18 21:18:26 -06:00
Blake Blackshear
75c8570913
reduce detection rate for stationary objects
2022-02-18 21:18:26 -06:00
Blake Blackshear
e36099a342
improve box merging and keep tracking
2022-02-18 21:18:26 -06:00
Blake Blackshear
2f2329ba44
only save recordings when an event is in progress
2022-02-18 21:18:26 -06:00
Blake Blackshear
26ae6084ea
fix rtmp again
2021-10-24 13:53:43 -05:00
Blake Blackshear
a67b8ab84d
validate with runtime config ( fixes #2055 )
2021-10-23 08:21:15 -05:00
Blake Blackshear
4cf55ad8e2
Revert switch to mpegts format and audio default
2021-10-23 08:21:15 -05:00
Blake Blackshear
b0e0abe385
improve performance of cache loop
2021-10-23 08:21:15 -05:00
Blake Blackshear
4916e1cd1d
hide banner for ffmpeg conversion
2021-10-23 08:21:15 -05:00
Blake Blackshear
cd87f3e6f4
fix old style recording cleanup
2021-10-23 08:21:15 -05:00
Blake Blackshear
2e494477a6
backwards compatibility for segment_type
2021-10-16 10:36:13 -05:00
Blake Blackshear
86a741b6e6
assign roles when single input and consolidate validation
2021-10-16 07:46:39 -05:00
Blake Blackshear
f738275d21
yell about config validation errors
...
for the people in the back
2021-10-16 07:17:36 -05:00
Blake Blackshear
e297e02800
store audio by default
2021-10-16 06:06:49 -05:00
Blake Blackshear
b2e05afff2
prevent oldest recording from being deleted
2021-10-15 21:56:03 -05:00
Blake Blackshear
c809494c98
switch to mpegts format for cache and create mp4 with faststart
2021-10-15 21:08:43 -05:00
Blake Blackshear
ef82c5c691
fix expiration when event spans the exire date
2021-10-15 07:30:55 -05:00
Blake Blackshear
5669f4c161
fix logo used for birdseye
2021-10-05 18:40:46 -05:00
Blake Blackshear
de811b7018
delete clean snapshot when duplicate
2021-10-02 06:59:02 -05:00
Blake Blackshear
7bf7365f6c
better log message when corrupt segment detected
2021-10-02 06:58:29 -05:00
Blake Blackshear
e8e778c6d4
instantiate area field
2021-09-26 09:43:31 -05:00
Blake Blackshear
1d25936f31
add region/bbox/area to event table
2021-09-23 07:31:48 -05:00
Blake Blackshear
c3109f808c
allow partial days in retention settings
2021-09-20 18:59:16 -05:00
Blake Blackshear
a943ac1308
use s6 to shutdown frigate
2021-09-18 07:40:27 -05:00
Blake Blackshear
5a8016de87
simplify logic and fix wrong segments expiring ( fixes #1779 )
2021-09-17 17:15:16 -05:00
Blake Blackshear
bc350644bd
make expiration of deleted camera footage faster
2021-09-17 17:12:03 -05:00
Blake Blackshear
1b2134c49e
remove clip_ready event type
...
this doesnt really mean anything more than "end" anymore. new has_clip property added
2021-09-15 07:16:52 -05:00
Blake Blackshear
f83d4a58dd
add version to the logs on startup
2021-09-13 22:02:23 -05:00
Blake Blackshear
661f7baa21
fix global live config
2021-09-13 20:33:00 -05:00
Jason Hunter
a7b7a45b23
allow for custom object detection model via configuration
2021-09-12 07:17:26 -05:00
Blake Blackshear
89e317a6bb
store start/end event with pre/post capture to avoid expiring wanted recordings
2021-09-11 08:34:27 -05:00
Blake Blackshear
288b1a0562
remove nested enabled config setting on events
2021-09-08 08:02:26 -05:00
Blake Blackshear
e8eb3125a5
disallow extra keys in config
2021-09-04 16:56:01 -05:00
Blake Blackshear
8109445fdd
fix color config for ts ( fixes #1679 )
2021-09-04 16:40:10 -05:00
Blake Blackshear
f63a7cb6c0
remove font_scale in timestamp_style and calculate dynamically again
2021-09-04 16:34:48 -05:00
drinfernoo
65855e23d9
Add RTMP and timestamp style to global config ( #1674 )
...
* 📝 ✅ 🔧 - Make RTMP config global
Fixes #1671
* 📝 ✅ 🔧 - Make timestamp style config global
Fixes #1656
* fix test function names
* formatter
Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>
2021-09-03 07:03:36 -05:00
Blake Blackshear
6c28613def
moar speed
2021-09-03 06:31:06 -05:00
Blake Blackshear
56480dc1ef
bulk delete recordings
2021-09-02 20:40:38 -05:00
Blake Blackshear
8e1c15291d
optimize checking recordings for events
...
sorts events and recordings so you can avoid a cartesian product of checking all events against all recordings
2021-09-02 08:24:53 -05:00
Blake Blackshear
a1e52c51b1
dont expire events in two places
2021-09-01 07:06:52 -05:00
Blake Blackshear
8cc834633e
reduce db queries for recording cleanup
2021-09-01 06:44:05 -05:00
Blake Blackshear
7d65c05994
properly handle scenario with no recordings
2021-08-30 06:58:50 -05:00
Blake Blackshear
fbea51372f
sync global snapshot options ( fixes #1621 )
2021-08-28 09:14:00 -05:00
Blake Blackshear
fa5ec8d019
cleanup global and camera detect config ( fixes #1615 )
2021-08-28 08:51:51 -05:00
Blake Blackshear
11c425a7eb
error on invalid role
2021-08-28 08:16:25 -05:00
Blake Blackshear
6ccff71408
handle missing camera names
2021-08-28 07:43:51 -05:00
Blake Blackshear
41fea2a531
fix match for websocket url ( fixes #1633 )
2021-08-28 07:42:30 -05:00
ᗪєνιη ᗷυнʟ
10ab70080a
fix: consistent error logging to mqtt connection issues ( #1578 )
2021-08-24 07:59:31 -05:00
Blake Blackshear
29de723267
limit legacy expiration to files after the oldest recording in the db
2021-08-24 06:50:58 -05:00
Blake Blackshear
26424488a5
use find to reduce CPU usage for legacy expiration
2021-08-23 07:21:27 -05:00
Blake Blackshear
334095252c
copy then delete ( fixes #1516 )
2021-08-17 06:52:15 -05:00
Blake Blackshear
1c85f774eb
move colormap to config
2021-08-16 08:02:04 -05:00
Blake Blackshear
bbf0fc8324
use CPu detector by default
2021-08-16 07:39:20 -05:00
Blake Blackshear
b143e11e0e
cleanup logging
2021-08-16 07:38:53 -05:00
Sebastian Englbrecht
927f56ab9f
Fix logger invocation
2021-08-15 10:34:40 -05:00
Blake Blackshear
2181379475
stop using pycoral libs for efficiency
2021-08-15 09:14:13 -05:00
Blake Blackshear
45798d6d14
clean house on clips
2021-08-15 08:30:27 -05:00
Blake Blackshear
f3a1c1de0a
move width/height/fps under detect and make required
...
also resizes the output from ffmpeg to specified size
2021-08-14 14:18:35 -05:00
Blake Blackshear
0ccf543ec1
clarify a few things in logs
2021-08-14 14:04:00 -05:00
Blake Blackshear
b33f4e2dc6
assume the clip for the event exists with recordings
2021-08-12 06:42:44 -05:00
Blake Blackshear
9cab5da74c
cleanup dynamic mp4 clips
2021-08-11 07:39:03 -05:00
Blake Blackshear
189b9c6648
use a nginx internal redirect
2021-08-11 06:22:26 -05:00
Blake Blackshear
1823bd0305
fix scaling
2021-08-09 07:46:28 -05:00
Jason Hunter
fc40567794
remove -f mp4 as it is not needed
2021-08-07 15:51:16 -05:00
Jason Hunter
de121008c1
fix DoesNotExist exception
2021-08-07 15:51:16 -05:00
Jason Hunter
2fbfbf614b
add download option on clips and snapshots
2021-08-07 15:51:16 -05:00
Jason Hunter
c527b1ca5d
change MQTT to toggle recordings instead of clips
2021-08-07 15:51:16 -05:00
Jason Hunter
181a504a14
break out recording maintenance and cleanup into separate threads
2021-08-07 15:51:16 -05:00
Jason Hunter
5d940bcb86
optimize recording maintenance logic
2021-08-07 15:51:16 -05:00
Jason Hunter
5d94c68d66
fix recording retention logic
2021-08-07 15:51:16 -05:00
Jason Hunter
a476bc9885
initial commit
2021-08-07 15:51:16 -05:00
Blake Blackshear
dc759a3e56
use new pycoral libraries
2021-08-07 15:34:55 -05:00
Blake Blackshear
e51021c573
switch default live resolution to 720
2021-07-21 07:47:11 -05:00
Blake Blackshear
19115fb828
handle exception when missing frame
2021-07-16 07:28:30 -05:00
Blake Blackshear
50f0c05e69
fix motion mask overlay
2021-07-13 08:56:20 -05:00
Blake Blackshear
6b26fc753e
include ffmpeg_cmds in config endpoint
2021-07-10 06:40:50 -05:00
Blake Blackshear
ebee204ca0
ensure default args propogate
2021-07-10 06:40:50 -05:00
Blake Blackshear
92aa16c556
add labelmap customization to the config ( fixes #507 )
2021-07-07 22:58:18 -05:00
Blake Blackshear
a3853af47a
fix test
2021-07-07 22:58:18 -05:00
Blake Blackshear
f26f7b8d3f
make default motion a little more sensitive
2021-07-07 07:33:14 -05:00
Blake Blackshear
f4aa02cc19
allow specific objects to be listed for a zone ( fixes #1123 )
2021-07-07 07:33:14 -05:00
Blake Blackshear
da2492413f
publish on zone change ( fixes #1310 )
2021-07-07 07:03:28 -05:00
Blake Blackshear
f892a821f5
no need to worry about payload here
2021-07-06 07:36:37 -05:00
ElMoribond
fe2e32c84f
Add ability to restart
2021-07-06 07:36:37 -05:00
ElMoribond
c6e53d0ea8
Add ability to restart
2021-07-06 07:36:37 -05:00
ElMoribond
11d8095cdd
Add ability to restart
2021-07-06 07:36:37 -05:00
ElMoribond
a4052a9fe5
Add ability to restart
2021-07-06 07:36:37 -05:00
Blake Blackshear
b24bb3eb18
add range to birdseye quality config
2021-07-02 07:52:02 -05:00
Blake Blackshear
98d8118fb2
add options to define jpeg quality
2021-07-02 07:52:02 -05:00
Blake Blackshear
b4e7e51e63
make contour_area dynamic
2021-07-01 07:54:09 -05:00
Blake Blackshear
2a41a9d3ff
set min motion frame to 180
2021-07-01 07:54:09 -05:00
Blake Blackshear
09b0068d16
fix cache cleanup ( fixes #1231 )
2021-06-30 06:38:36 -05:00
Blake Blackshear
f9457be109
add test for max_disappeared default
2021-06-27 08:13:48 -05:00
Blake Blackshear
e9291fe9d1
make max_disappeared optional with default value
2021-06-27 08:13:48 -05:00
Craig Citro
20912c12e7
Check for jpg bytes before make_response
...
If jpg_bytes wasn't retrieved from either desk or a tracked object, respond with 404
Prevents uncaught error for unknown event ids sent to event_snapshot endpoint
2021-06-27 08:13:14 -05:00
Craig Citro
7ddba4fc59
Prevent repeated db connect calls
...
Only call database.connect() if database.is_closed()
Prevents errors if _db_connect is triggered twice
2021-06-27 08:13:14 -05:00
Patrick
7ad8b8298d
identity check is correct way to check for None
2021-06-27 08:09:58 -05:00
Jason Hunter
3fb24b4bf5
fix timestamp
2021-06-25 06:13:08 -05:00
Jason Hunter
ab93cae4c0
remove side effects from password substitution
2021-06-25 06:13:08 -05:00
Jason Hunter
8d01cc4807
fix ffmpeg config and remove side effects
2021-06-25 06:13:08 -05:00
Jason Hunter
1e21a62851
remove unneeded changes
2021-06-24 06:53:05 -05:00
Jason Hunter
c664bd63f6
initial conversion to pydantic
2021-06-24 06:53:05 -05:00
Blake Blackshear
762afb8f43
add config for camera live stream
2021-06-23 08:15:15 -05:00
Blake Blackshear
f009897eca
clear position before copy
2021-06-23 08:15:15 -05:00
Blake Blackshear
fa61e9da29
maintain aspect ratio for birdseye
2021-06-23 08:15:15 -05:00
Blake Blackshear
0ff037997f
fixup timestamp config
2021-06-23 08:15:15 -05:00