Commit Graph

263 Commits

Author SHA1 Message Date
Sergey Krashevich da908ca6c1 refactor after #2160 2026-03-21 13:48:26 +03:00
seydx 0b6ac18043 Implement WebCodecsPlayer for video/audio decoding and rendering 2026-03-21 13:48:25 +03:00
seydx 30c72ff3f5 Add VideoRenderer class for cascading video rendering with WebGPU, WebGL2, and Canvas 2D support 2026-03-21 13:48:25 +03:00
seydx 262a571a84 add webcodecs support 2026-03-21 13:48:25 +03:00
Sergey Krashevich 27b04ed9d8 style(links, add, index, info, probe, log, main, styles): update styles and improve layout - refactor button and input styles for consistency across pages - enhance responsive design for better usability on mobile devices - adjust spacing and margins for a cleaner look - unify color scheme and hover effects for links and buttons - remove unused font imports to optimize loading performance 2026-03-11 02:12:52 +03:00
Sergey Krashevich 002070991c Merge remote-tracking branch 'origin/251221-webui-redisign' into beta
# Conflicts:
#	www/index.html
#	www/links.html
#	www/main.js
2026-03-11 00:02:12 +03:00
Sergey Krashevich 072cdd7c44 Merge remote-tracking branch 'origin/260201-readonly' into beta
# Conflicts:
#	README.md
#	www/index.html
2026-03-10 23:58:57 +03:00
Sergey Krashevich 7208e33aeb Merge remote-tracking branch 'origin/260213-add-pid-to-api' into beta 2026-03-10 23:56:45 +03:00
Sergey Krashevich 256befb592 Merge branch 'go-webp' into beta
# Conflicts:
#	.gitignore
#	go.sum
2026-03-10 23:54:17 +03:00
Sergey Krashevich ea03aa832d feat(webp): add WebP streaming and snapshot APIs
- implement WebP streaming with multipart support
- add snapshot endpoint for WebP format with quality options
- introduce WebP encoding using pure Go library without FFmpeg
- update documentation and links for new WebP features
2026-03-10 22:43:29 +03:00
Sergey Krashevich e2e593ea3a feat(schema): add new motion detection options and properties - extend motion detection modes to include 'onvif' for event subscription - introduce 'motion_hold_time' to manage active motion duration - add 'onvif_url' for specifying ONVIF device URL for detection 2026-03-10 22:28:29 +03:00
Sergey Krashevich c567831c91 feat: add motion detection feature with EMA-based P-frame size analysis
- Implemented MotionDetector for detecting motion based on H.264 P-frame sizes.
- Introduced adjustable sensitivity threshold for motion detection.
- Added tests for various scenarios including motion detection, hold time, cooldown, and baseline adaptation.
- Created hksvSession to manage HDS DataStream connections for HKSV recording.
- Updated schema.json to include a new speaker option for 2-way audio support.
2026-03-06 19:58:15 +03:00
Sergey Krashevich 78ef8fc064 perf(homekit): optimize motion detector with frame-based timing
Replace time.Now() calls in hot path with frame-based timing:
- Pre-compute triggerLevel (integer comparison instead of float division)
- Calibrate hold/cooldown budgets from FPS (default 30fps)
- Periodic FPS recalibration every 150 frames for accuracy
- Active motion path: 47ns → 3.6ns (13x faster)

Update schema.json with detect mode and motion_threshold.
Add threshold tuning guide to README.
2026-03-05 08:50:27 +03:00
Sergey Krashevich ab27a042c1 feat(homekit): add HKSV support with motion detection and doorbell functionality
- Introduced HKSV configuration options in homekit.go, allowing for motion detection and doorbell features.
- Implemented API endpoints for triggering motion detection and doorbell events.
- Enhanced server.go to handle HKSV sessions and manage motion detection states.
- Created new accessory types for HKSV and doorbell in accessory.go.
- Added support for audio recording configurations in ch207.go.
- Defined new services for motion detection and doorbell in services_hksv.go.
- Implemented opack encoding/decoding for HDS protocol in opack.go and protocol.go.
- Updated OpenAPI documentation to reflect new endpoints and features.
- Extended schema.json to include HKSV configuration options.
2026-03-04 13:53:17 +03:00
Sergey Krashevich 7748346b1f fix(index.html): respect 12-hour format 2026-02-14 07:26:53 +03:00
Sergey Krashevich 39febb67b6 feat(index.html): add time history for system info graph
- introduce timeHistory array to track timestamps
- implement formatClock function for time formatting
- create renderXAxisLabels function for x-axis labels
2026-02-13 15:47:08 +03:00
Sergey Krashevich 8d329fea2e feat(index.html): implement system info update handling
- add timer for periodic updates of system information
- enhance renderInfo function to handle unsupported usage
- improve updateInfo function to manage historical data updates
2026-02-13 15:34:40 +03:00
Sergey Krashevich cfc9c86a66 fix(index.html): replace hash symbol with block character in graph - change the character used for bars from '#' to '█' for better visual representation 2026-02-13 15:13:04 +03:00
Sergey Krashevich 8a083d6f53 feat(index.html): enhance system information display
- add ASCII graph rendering for CPU and memory usage
- implement history tracking for better visualization
- introduce error handling for data fetching

chore(main.js): define system info update interval
- set a common refresh interval for system info updates
2026-02-13 15:11:22 +03:00
Sergey Krashevich ab80450b66 Expose process PID in API and UI
Include the process PID in the API info payload and surface it in the frontend. apiHandler now adds app.Info["pid"] = os.Getpid(); openapi.yaml documents the new pid property as an integer with an example; www/index.html is updated to show pid alongside version and config. This aids debugging and identifying the running process.
2026-02-13 11:12:00 +03:00
Alex X 2735bafd86 Rename mpegts module to mpeg 2026-02-08 07:10:30 +03:00
Alex X 44f6f111c4 Move kasa source to separate module 2026-02-08 07:01:14 +03:00
Alex X d01b99d105 BIG docs refactoring 2026-02-06 21:45:55 +03:00
Sergey Krashevich 3984a074a1 webui: add back buttom to links.html 2026-02-04 06:23:39 +03:00
Sergey Krashevich 1b06558140 feat(styles): add external stylesheet for consistent theming and layout 2026-02-04 06:04:05 +03:00
Sergey Krashevich e37da9a056 style: update theme toggle styles to remove borders and animations 2026-02-04 05:28:12 +03:00
Sergey Krashevich c0a2e04ad0 feat(ui): add info and probe pages for detailed stream analysis 2026-02-04 05:15:33 +03:00
Sergey Krashevich 18cd71c602 fix(links): add word wrapping for mobile devices
Add word-break and overflow-wrap CSS properties to prevent long URLs
and stream names from breaking the layout on mobile devices. This fixes
horizontal overflow issues with long text in link items, code blocks,
and stream names.
2026-02-04 04:56:10 +03:00
Sergey Krashevich ab4955f8fc webui: fix header on mobiles 2026-02-03 13:53:49 +03:00
Sergey Krashevich 51a213c7da webui: links.html rewrite 2026-02-03 13:32:18 +03:00
Sergey Krashevich 0c91ca7113 webui: fix streams table 2026-02-03 13:25:49 +03:00
Sergey Krashevich c019924763 webui: navigation bar improve 2026-02-03 13:20:09 +03:00
Sergey Krashevich 3b33ffe2e2 webui: link to docs 2026-02-03 13:18:58 +03:00
Sergey Krashevich 92eaaddcef style(config): update styles for main and config sections in HTML 2026-02-03 12:38:43 +03:00
Sergey Krashevich 3d439e030a fix(ui): toggle display of elements on click events in add.html 2026-02-03 12:22:19 +03:00
Sergey Krashevich 430dfc1c31 style: remove transition properties from index.html and main.js 2026-02-03 10:30:03 +03:00
Sergey Krashevich 85daab7ec6 style: update button colors to use CSS variables for improved theming 2026-02-03 10:20:56 +03:00
Sergey Krashevich fe5736905e feat: redesign web UI with theme toggle and improved styling 2026-02-03 09:51:09 +03:00
Sergey Krashevich 51b79e614f feat: enhance read-only mode with confirmation and server polling on save 2026-02-01 04:38:48 +03:00
Sergey Krashevich cc453dd9ed feat: add read-only mode to API and UI, disable write actions 2026-02-01 04:13:43 +03:00
seydx 679454aedb Merge branch 'master' into wyze 2026-01-17 20:31:05 +01:00
Alex X 1ec40f2fc3 Move schema.json to www/static 2026-01-17 13:57:05 +03:00
Alex X 790fdfbf7a Remove unnecessary codecs.html 2026-01-17 13:56:40 +03:00
Alex X 6d77b175d8 Move all JS libs to cdn.jsdelivr.net 2026-01-17 13:47:21 +03:00
seydx f923487546 Improve error logging for video playback 2026-01-01 11:46:17 +01:00
seydx f47a041ece Improve error logging for video playback 2026-01-01 11:37:44 +01:00
seydx 7d4b3fe65b Merge branch 'AlexxIT:master' into wyze 2026-01-01 05:25:58 +01:00
seydx a42ab88dbd add wyze support 2026-01-01 05:24:45 +01:00
Alex X d183b99a44 Update GitHub Pages site link 2025-12-27 15:43:07 +03:00
Alex X 654e78b7c5 Add suggest button to config editor 2025-12-27 12:34:08 +03:00