* Add ui for events
* Display data for review items
* Use preview thumbnails
* Implement paging
* Show icons for what was detected
* Show progress bar on preview thumbnail
* Hide the overlays on hover and update reviewed status
* Dim previews that have been reviewed
* Show audio icons
* Cleanup preview thumb player
* initial implementation of review timeline
* Use timeout for hover playback
* Break apart mobile and desktop views
* Show icons for sub labels
* autoplay first video on mobile
* Only show the last 24 hours by default
* Rework scrolling to fix nested scrolling
* Final scroll cleanups
---------
Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
* initial implementation of review timeline
* hooks
* clean up and comments
* reorganize components
* colors and tweaks
* remove touch events for now
* remove touch events for now
* fix vite config
* use unix timestamps everywhere
* fix corner rounding
* comparison
* use ReviewSegment type
* update mock review event generator
* severity type enum
* remove testing code
* Move safari function
* Use webrtc for safari
* Use taller aspect ratio for tall thumbnails
* Simplify thumbnail sizing
* Use correct aspect ratio on all devices
* Don't show gif until event is over and fix aspect
* Be more efficient about updating events
* ensure previews are sorted
* Don't show live view when window is not visible
* Move debug camera to separate view
* Improve jpg loading
* Ensure still is updated on player live finish
* Don't reload when window not visible
* Only disconnect instead of full remove
* Use start time instead of event over to determine gif
* Break out live page
* Improving layouts and add chip component
* Improve default camera player sizing
* Improve live updating
* Cleanup and fit figma
* Use fixed height
* Masonry layout
* Fix stuff
* Don't force heights
* Adjust scaling
* Cleanup
* remove sidebar (#9731)
* remove sidebar
* keep sidebar on mobile for now and add icons
* Fix revalidation
* Cleanup
* Cleanup width
* Add chips for activity on cameras
* Remove dashboard from header
* Use Inter font (#9735)
* Show still image when no activity is occurring
* remove unused search params
* add playing check for webrtc
* Don't use grid at all for single column
* Fix height on mobile
* a few style updates to better match figma (#9745)
* Remove active objects when they become stationary
* Move to sidebar only and make settings separate component
* Fix layout
* Animate visibility of chips
* Sidebar is full screen
* Fix tall aspect ratio cameras
* Fix complicated aspect logic
* remove
* Adjust thumbnail aspect and add text
* margin on single column layout
* Smaller event thumb text
* Simplify basic image view
* Only show the red dot when camera is recording
* Improve typing for camera toggles
* animate chips with react-transition-group (#9763)
* don't flash when going to still image
* revalidate
* tooltips and active tracking outline (#9766)
* tooltips
* fix tooltip provider and add active tracking outline
* remove unused icon
* remove figma comment
* Get live mode working for jsmpeg
* add small gradient below timeago on event thumbnails (#9767)
* Create live mode hook and make sure jsmpeg can be used
* Enforce env var
* Use print
* Remove unstable
* Add tooltips to thumbnails
* Put back vite
* Format
* Update web/src/components/player/JSMpegPlayer.tsx
---------
Co-authored-by: Josh Hawkins <32435876+hawkeye217@users.noreply.github.com>
Co-authored-by: Blake Blackshear <blake@frigate.video>
* Show toast instead of text for success and errors
* Show correct times
* Start playing next hour when current hour ends
* Fix refreshing camera image
* Fix timeline
* Ensure viewport is always full screen
* Protect against hour with no cards and ensure data is consistent
* Reduce grouped up image refreshes
* Include current hour and fix scrubbing bugginess
* Scroll initially selected timeline in to view
* Expand timelne class type
* Use poster image for preview on video player instead of using separate image view
* Fix available streaming modes
* Incrase timing for grouping timline items
* Fix audio activity listener
* Fix player not switching views correctly
* Use player time to convert to timeline time
* Update sub labels for previous timeline items
* Show mini timeline bar for non selected items
* Rewrite desktop timeline to use separate dynamic video player component
* Extend improvements to mobile as well
* Improve time formatting
* Fix scroll
* Fix no preview case
* Mobile fixes
* Audio toggle fixes
* More fixes for mobile
* Improve scaling of graph motion activity
* Add keyboard shortcut hook and support shortcuts for playback page
* Fix sizing of dialog
* Improve height scaling of dialog
* simplify and fix layout system for timeline
* Fix timeilne items not working
* Implement basic Frigate+ submitting from timeline
* Add timeline graph component
* Add more custom colors and improve graph
* Add api and data
* Fix data sorting
* Add graph to timeline
* Only show timeline for selected hour
* Make data full range
* Break apart mobile and desktop timeline views
* Set aspect ratio for player correctly
* more modest default width
* Add timeline item card
* Get video player to fit
* get layout going
* More work on youtube view
* Get video scaling working
* Better dialog sizes
* Show all timelines for day
* Add full day of timelines
* Improve hooks
* Fix previews
* Separate mobile and desktop views and don't rerender
* cleanup
* Optimizations and improvements
* make preview dates more efficient
* Remove seekbar and use timeline as seekbar
* Improve background and scrubbing
* Move history card view to separate view and create timeline view
* Get custom time scrubber working
* Add back nav
* Show timeline bounding boxes
* Implement seeking limiter
* Use browser history to allow back button to close timeline viewer
* Fix mobile timeline and add more icons for detections
* Play when item is initially visible
* Add filter popover
* Add api filter hook and use UI with filtering
* Get history filtering working for cameras and labels
* Allow filtering on detail level
* Save timeline entries for api events
* reset
* fix width
* Fix mobile event timeago
* Reduce preview playback rate for safari browser
* Fix dashboard buttons
* Update recent events correctly
* Fix opening page on icon toggle
* Fix video player remote playback check
* fix history image
* Add sticky headers to history page
* Fix iOS empty frame
* reduce duplicate items and improve time format
* Organize data more effictively and ensure data is not overwritten
* Use icon to indicate preview
* Initial draft for filtering Frigate+ submits in frontend
* Hide filter when Frigate+ is not enabled
* Update http.py
* Revert "Update http.py"
This reverts commit fa292682d6.
* implement nginx caching
* bypass cache from frigate frontend, reduce to 5s
* set cache time to 2s
* cache 200s for 5s
* exclude vod endpoints from cache
* Show ongoing events separately
* Separate to separate event function
* Change icon type
* Hide in progress when date range search occurs
* Collapse in progress when filtering
* Fix event overlay
* Make tooltip more clear
Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>
---------
Co-authored-by: Blake Blackshear <blakeb@blakeshome.com>
* Refactor media source handling in MsePlayer.js and Birdseye.jsx to support ManagedMediaSource
* lint
* Update docs to reflect iOS supporting mse
---------
Co-authored-by: Sergey Krashevich <svk@svk.su>
* CenterFocusString icon
* Add CenterFocusString to multiselect
* Rename CenterFocusString.jsx
* Rename icon and make it smaller
* Rename icon
* Fix lint and use icon
for speech
* remove unused vars
* Remove unused import
* Add attribute item to timeline
* Add face icon
* Add support for other icons
* Cleanup
* Ensure attributes are only updated once
* don't show _ in attributes
* Add capability to link directly to an event ID in the web UI
* Move event ID to searchParams, add View All button
* Use searchParams inside eventsFetcher
* Refactor Calendar component to update month details only when year or month changes
* Update web/src/components/Calendar.jsx
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* Refactor event label and sub-label score display in Events.jsx to include the event label and sub-label percentage
* Revert "Refactor event label and sub-label score display in Events.jsx to include the event label and sub-label percentage"
This reverts commit 87c23adf1e.
* Refactor event label and sub label score display in Events component
* Refactor video player div class names in Birdseye.jsx to be more responsive
* let's JSMpegPlayer dont takes up the entire screen
* Update Birdseye.jsx
* Add useState hook and toggle button for dynamic width adjustment and refactor code for readability in env.js and Birdseye.jsx
* fix stupid typo
* Swapped the controls around
* Remove useless comments
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* Add button styles to the Birdseye component's toggle width button
---------
Co-authored-by: Nicolas Mowen <nickmowen213@gmail.com>
* Add functionality to update YAML config file with PUT request in HTTP endpoint
* Refactor copying of text to clipboard with Clipboard API and fallback to document.execCommand('copy') in CameraMap.jsx file
* Update YAML file from URL query parameters in frigate/http.py and add functionality to save motion masks, zones, and object masks in CameraMap.jsx
* formatting
* fix merging fuckup
* Refactor camera zone coordinate saving to use single query parameter per zone in CameraMap.jsx
* remove unnecessary print statements in util.py
* Refactor update_yaml_file function to separate the logic for updating YAML data into a new function update_yaml().
* fix merge errors
* Refactor code to improve error handling and add dependencies to useEffect hooks
* Initial audio classification model implementation
* fix mypy
* Keep audio labelmap local
* Cleanup
* Start adding config for audio
* Add the detector
* Add audio detection process keypoints
* Build out base config
* Load labelmap correctly
* Fix config bugs
* Start audio process
* Fix startup issues
* Try to cleanup restarting
* Add ffmpeg input args
* Get audio detection working
* Save event to db
* End events if not heard for 30 seconds
* Use not heard config
* Stop ffmpeg when shutting down
* Fixes
* End events correctly
* Use api instead of event queue to save audio events
* Get events working
* Close threads when stop event is sent
* remove unused
* Only start audio process if at least one camera is enabled
* Add const for float
* Cleanup labelmap
* Add audio icon in frontend
* Add ability to toggle audio with mqtt
* Set initial audio value
* Fix audio enabling
* Close logpipe
* Isort
* Formatting
* Fix web tests
* Fix web tests
* Handle cases where args are a string
* Remove log
* Cleanup process close
* Use correct field
* Simplify if statement
* Use var for localhost
* Add audio detectors docs
* Add restream docs to mention audio detection
* Add full config docs
* Fix links to other docs
---------
Co-authored-by: Jason Hunter <hunterjm@gmail.com>