Commit Graph
2964 Commits
Author SHA1 Message Date
Blake Blackshear 7a6ffb1032 adding output process to handle downstream processing of frames 2021-06-12 07:23:14 -05:00
Blake Blackshear fd51c7a955 development tweaks 2021-06-12 07:23:14 -05:00
Blake Blackshear b91b0d39dd updated devcontainer 2021-06-12 07:23:14 -05:00
Blake Blackshear 7fc9026ca6 basic plumbing for birdseye view 2021-06-12 07:23:14 -05:00
Blake Blackshear f4a0ec43a6 wip yuv_rgb refactor 2021-06-12 07:23:14 -05:00
Blake Blackshear 46e5a042ae adding s6-overlay and running jsmpeg 2021-06-12 07:23:14 -05:00
Blake Blackshear 7309c06be8 add jsmpeg relay 2021-06-12 07:23:14 -05:00
Jason HunterandBlake Blackshear c71b717a54 more lint fixes 2021-06-11 06:53:34 -05:00
Jason HunterandBlake Blackshear da8e54ed51 fix lint and tests 2021-06-11 06:53:34 -05:00
Jason HunterandBlake Blackshear b70c11e7a7 Cleanup video player and use consistently across recordings and events. 2021-06-11 06:53:34 -05:00
PatrickandBlake Blackshear e8c342e162 Update http.py
comparison of constants, use T/F instead
2021-06-10 20:58:28 -05:00
Jason HunterandBlake Blackshear f7975cbbc4 remove backfill - only store rows moving forward 2021-06-10 07:04:28 -05:00
Jason HunterandBlake Blackshear 098e293c82 fetch recordings until end of hour, not top of next hour 2021-06-10 07:04:28 -05:00
Jason HunterandBlake Blackshear eb3f50c9f0 add default to reducer 2021-06-10 07:04:28 -05:00
Jason HunterandBlake Blackshear 78a0b5e6c9 clean up VOD endpoint 2021-06-10 07:04:28 -05:00
Jason HunterandBlake Blackshear 055bd22138 initial implementation of recordings table 2021-06-10 07:04:28 -05:00
Mingkwan BurckhardtandBlake Blackshear 8dfff83447 Added support for authentication with client certificate with MQTT broker 2021-06-06 07:57:46 -05:00
Jason HunterandBlake Blackshear de3a19c4f0 Update web/src/__tests__/Sidebar.test.jsx 2021-06-06 07:54:58 -05:00
Jason HunterandBlake Blackshear 2a33c05378 add sidebar test 2021-06-06 07:54:58 -05:00
Jason HunterandBlake Blackshear bbb4d10718 add/fix tests 2021-06-06 07:54:58 -05:00
Jason HunterandBlake Blackshear 68dfaaf767 hide recordings page if record is not enabled, show error if no recordings available. 2021-06-06 07:54:58 -05:00
Blake Blackshear 0bb998c465 Merge branch 'master' into release-0.9.0 2021-06-05 07:59:07 -05:00
dependabot[bot]andBlake Blackshear ec9b525a3c build(deps): bump browserslist from 4.16.1 to 4.16.6 in /web
Bumps [browserslist](https://github.com/browserslist/browserslist) from 4.16.1 to 4.16.6.
- [Release notes](https://github.com/browserslist/browserslist/releases)
- [Changelog](https://github.com/browserslist/browserslist/blob/main/CHANGELOG.md)
- [Commits](https://github.com/browserslist/browserslist/compare/4.16.1...4.16.6)

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-05 07:30:53 -05:00
Jason HunterandBlake Blackshear 88ed7501a7 add mobile player and fullscreen support for iOS 2021-06-05 07:30:18 -05:00
Jason HunterandBlake Blackshear c73aebadcb change seek back to 10 seconds 2021-06-05 07:30:18 -05:00
Jason HunterandBlake Blackshear 40c4ca305e add playback rate adjustment and seek buttons 2021-06-05 07:30:18 -05:00
Jason HunterandBlake Blackshear 7b3abe330e recordings is taken by nginx so refresh fails - change base to recording 2021-06-05 07:30:18 -05:00
Jason HunterandBlake Blackshear 0d96c3529d We need to use relative URLs for Ingress to work 2021-06-05 07:30:18 -05:00
Jason HunterandBlake Blackshear 62452b1d21 cleanup dead code 2021-06-05 07:30:18 -05:00
Jason HunterandBlake Blackshear c5f005afef lint fix... again 2021-06-05 07:30:18 -05:00
Jason HunterandBlake Blackshear 4a45b6e76d do not show event end time 2021-06-05 07:30:18 -05:00
Jason HunterandBlake Blackshear a3cfbb6722 remove now playing because I do not handle autoadvance properly yet 2021-06-05 07:30:18 -05:00
Jason HunterandBlake Blackshear dc8ba5239d lint cleanup 2021-06-05 07:30:18 -05:00
Jason HunterandBlake Blackshear b53a50cd54 restyle to match Material Design List specs 2021-06-05 07:30:18 -05:00
Jason HunterandBlake Blackshear 9822d614e2 fix videojs bug when switching cameras, support recording delay, fix navigation highlight 2021-06-05 07:30:18 -05:00
Jason HunterandBlake Blackshear ca20c735f7 add event card to overlay 2021-06-05 07:30:18 -05:00
Jason HunterandBlake Blackshear d3dc018260 video overlay 2021-06-05 07:30:18 -05:00
Jason HunterandBlake Blackshear 28a2a3816a lint fixes 2021-06-05 07:30:18 -05:00
Jason HunterandBlake Blackshear 5461308d30 Initial Recordings UI 2021-06-05 07:30:18 -05:00
dependabot[bot]andBlake Blackshear b2f469ad76 build(deps): bump ws from 7.4.3 to 7.4.6 in /web
Bumps [ws](https://github.com/websockets/ws) from 7.4.3 to 7.4.6.
- [Release notes](https://github.com/websockets/ws/releases)
- [Commits](https://github.com/websockets/ws/compare/7.4.3...7.4.6)

Signed-off-by: dependabot[bot] <support@github.com>
2021-06-05 07:28:17 -05:00
highaltidudeandBlake Blackshear 8ea75e6748 Documentation Update-CPU Fall back corrected. 2021-06-05 07:27:58 -05:00
Jon GilmoreandGitHub 09a4d6d030 docs(typo): fix configuration typo (#1148) 2021-05-26 07:39:42 -07:00
Sean VigandBlake Blackshear abbc608ee4 Updates to object processing
Lock updates to tracked objects, current frame time, motion boxes, and
regions on `update()`.

Directly create Counters using counted values.

Don't convert removed_ids, new_ids, or updated_ids sets to lists.

Update defaultdict's to remove un-necessary lambdas when possible.

When possible, drop un-necessay list comprehensions, such as when
calling `any`.

Use set comprehension, rather than passing a list comprehension into
`set()`.

Do the slightly more pythonic `x not in y` rather than `not x in y` to
check list inclusion.
2021-05-23 21:00:56 -05:00
Sean VigandBlake Blackshear 9634ec8e31 Allow zone configs to be frozen
Set the color at construction so the zone config objects can be frozen
2021-05-23 20:38:57 -05:00
Sean VigandBlake Blackshear 84a0827aee Use dataclasses for config handling
Use config data classes to eliminate some of the boilerplate associated
with setting up the configuration.  In particular, using dataclasses
removes a lot of the boilerplate around assigning properties to the
object and allows these to be easily immutable by freezing them.  In the
case of simple, non-nested dataclasses, this also provides more
convenient `asdict` helpers.

To set this up, where previously the objects would be parsed from the
config via the `__init__` method, create a `build` classmethod that does
this and calls the dataclass initializer.

Some of the objects are mutated at runtime, in particular some of the
zones are mutated to set the color (this might be able to be refactored
out) and some of the camera functionality can be enabled/disabled.  Some
of the configs with `enabled` properties don't seem to have mqtt hooks
to be able to toggle this, in particular, the clips, snapshots, and
detect can be toggled but rtmp and record configs do not, but all of
these configs are still not frozen in case there is some other
functionality I am missing.

There are a couple other minor fixes here, one that was introduced
by me recently where `max_seconds` was not defined, the other to
properly `get()` the message payload when handling publishing mqtt
messages sent via websocket.
2021-05-23 20:38:57 -05:00
Blake Blackshear 1fbcf4d9b9 fixes 2021-05-23 08:21:18 -05:00
Sean VigandBlake Blackshear 80f8256422 Improve handling of object matching
Use `np.unique` to determine the correct set of row/col pairs to iterate
over when doing the object matching without needing to track which rows
or columns have already been seen.  Add to some of the accompanying
documentation to clarify this algorithm.

Also fix what looks to be an erroneous early return, and change this to
a continue.
2021-05-22 08:04:38 -05:00
Sean VigandBlake Blackshear 57864f2be6 Wait on stop event when possible
Generally eliminate the `while True` loops while waiting for a stop
event and prefer to condition the loops on if the stop event is set,
blocking on that where it makes sense.  This generally comes in 3
flavors.  First and simplest, when there is a sleep and the stop event
is the only thing the loop blocks on, instead do a check using
`stop_event.wait(timeout)` to instead block on the stop event for the
designated amount of time. Second, when there is a different event that
is blocking in the loop, condition the loop on `stop_event.is_set()`
rather than breaking when it is set. Finally, when there is a separate
internal condition that requires a counter, have the loop iterate over
the counter and use `if stop_event.wait(timeout)` internal to the loop.
2021-05-22 07:54:16 -05:00
Jason HunterandBlake Blackshear f4bc68d396 update HTTP API docs 2021-05-22 07:48:44 -05:00
Jason HunterandBlake Blackshear 926eec3c65 add --push so the images actually get published for nginx since they are not saved locally 2021-05-22 07:48:44 -05:00