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
a591186da6
test(homekit): add tests and benchmarks for HDS protocol and HKSV consumer
...
HDS protocol tests (15 tests, 4 benchmarks):
- Message structure for SendMediaInit and SendMediaFragment
- Multi-chunk splitting for fragments > 256KB
- Chunk boundary handling and sequence preservation
- WriteEvent/WriteResponse/WriteRequest round-trip
- opack helper functions
HKSV consumer tests (14 tests, 3 benchmarks):
- Consumer creation and field initialization
- GOP buffer flush with sequence numbering
- Activate with init segment and seqNum=2
- Activate timeout and error handling
- Stop safety (double-stop, deactivation)
- WriteTo blocking until Stop
Also fixes broken hds_test.go (undefined Client → NewConn).
2026-03-05 06:43:11 +03:00
Sergey Krashevich
1856b7ace4
fix(homekit): fix HKSV recording by correcting HDS protocol and adding GOP buffering
...
The HKSV recording was failing because:
1. The dataSend.data message structure was wrong - `packets` was a flat integer
instead of an array of objects with `data` and `metadata` fields matching
the HAP-NodeJS specification
2. Each video/audio frame was sent as a separate mediaFragment, but Home Hub
expects GOP-based fragments (~2-4 seconds of accumulated data)
3. Large fragments were not chunked (max 256 KiB per chunk)
Changes:
- Fix HDS dataSend.data message structure to use proper packets array with
nested data/metadata (dataType, dataSequenceNumber, dataChunkSequenceNumber,
isLastDataChunk, dataTotalSize)
- Add 256 KiB chunking for large media fragments
- Buffer moof+mdat pairs in hksvConsumer and flush on keyframe boundaries
(GOP-based fragmentation)
- Pre-start consumer at pair-verify for instant init segment delivery
- Add write-response support to HAP PUT handler for ch131 DataStream setup
- Fix HAP service linking to match HAP-NodeJS reference
- Add default SelectedCameraRecordingConfiguration (ch209) value
- Start continuous motion generator at pair-verify with dedup protection
2026-03-05 06:26:06 +03:00
Sergey Krashevich
35fd1383c8
fix(homekit): adjust motion detection threshold and improve hold time checks
2026-03-05 03:09:02 +03:00
Sergey Krashevich
15b0cc4c0c
feat(homekit): implement motion detection with configurable threshold and add motion detector functionality
2026-03-04 15:08:06 +03:00
Sergey Krashevich
81dd9e37d8
chore: update .gitignore to include .claude* and .ruff* files
2026-03-04 14:20:33 +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
Alex X
01c7451556
Restore fix audio sample rate for some xiaomi cameras #2006
2026-02-13 10:59:38 +03:00
Alex X
f68c602a7d
Add sitemap to website
2026-02-08 14:00:55 +03:00
Alex X
7f36033bff
Merge pull request #2080 from skrashevich/260208-fix-grammar
...
Fix documentation grammar
2026-02-08 13:04:29 +03:00
Sergey Krashevich
6304987a26
Review uncommitted changes
2026-02-08 08:50:18 +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
e5bb03349b
Add support pet feeder to xiaomi source #2078
2026-02-07 16:14:10 +03:00
Alex X
e90f159c68
Add meta info to website
2026-02-07 13:19:11 +03:00
Alex X
be4b6c3271
Update docs
2026-02-07 09:12:31 +03:00
Alex X
f3ad4ad977
Fix links in docs
2026-02-07 00:08:47 +03:00
Alex X
7083afe9b2
Merge pull request #2044 from skrashevich/documentation-site
...
(website): new documentation site
2026-02-06 21:49:35 +03:00
Alex X
d01b99d105
BIG docs refactoring
2026-02-06 21:45:55 +03:00
Alex X
d1d7846aed
Merge pull request #2064 from jmelancondev/webrtc/ice-server-urls-list
...
webrtc: Fix ice_servers parsing for a list of URLs
2026-02-03 13:42:13 +03:00
Alex X
8d58cc7f97
Merge pull request #2065 from skrashevich/260201-small-fixes
...
Fix error handling in stream creation and patching tests
2026-02-03 13:15:16 +03:00
Sergey Krashevich
f1d61bf15a
fix: handle errors in stream creation and patching in tests
2026-02-01 04:18:04 +03:00
José Mélançon
d2c4e44844
webrtc: Fix ice_servers parsing for a list of URLs
2026-01-31 14:25:13 -05:00
Sergey Krashevich
5bf5327a45
Merge branch 'AlexxIT:master' into documentation-site
2026-01-29 00:38:10 +03:00
Sergey Krashevich
4bf0aef124
Merge branch 'documentation-site' of https://github.com/skrashevich/go2rtc into documentation-site
2026-01-26 17:06:11 +03:00
Sergey Krashevich
8e01d5cfa9
🔧 chore(gh-pages): change default branch for deployment
2026-01-26 17:05:55 +03:00
Alex X
6085c8aabe
Merge pull request #2058 from skrashevich/260126-fix-spelling
...
📝 docs(README): update documentation for clarity and accuracy
2026-01-26 11:23:35 +03:00
Sergey Krashevich
8d4869fd08
Merge branch 'AlexxIT:master' into documentation-site
2026-01-26 04:22:35 +03:00
Sergey Krashevich
5970dd2fe4
📝 docs(README): update documentation for clarity and accuracy
2026-01-26 00:40:48 +03:00
Alex X
a41185c22a
Merge pull request #2054 from jeis4wpi/master
...
Propose fix a couple of typos
2026-01-25 21:41:31 +03:00
Alex X
c793855800
Merge pull request #2056 from martinbjeldbak/patch-1
...
docs: fix link to updated JSONSchema
2026-01-25 14:46:33 +03:00
Martin Bjeldbak Madsen
a556bca7bd
docs: fix link to updated JSONSchema
2026-01-25 19:57:58 +11:00
John E
051aa664cd
Propose fix a couple of typos
...
Signed-off-by: John E <jeis4wpi@outlook.com >
2026-01-23 17:17:53 -05:00
Alex X
6374366da5
Add support xiaomi isa.camera.df3 on old firmwares
2026-01-21 22:26:16 +03:00
Alex X
de157eb144
Strip Userinfo from log entries and errors #2051
2026-01-21 17:15:36 +03:00
Sergey Krashevich
72ec880300
Merge branch 'AlexxIT:master' into documentation-site
2026-01-21 15:56:17 +03:00
Alex X
6eeba1ae4c
Merge pull request #1720 from felipecrs/update-readme
...
Update README
2026-01-21 07:23:37 +03:00
Alex X
8f68f80bff
Add support xiaomi chuangmi.camera.ipc019e
2026-01-20 20:51:40 +03:00
Alex X
2f9d138692
Fix zero channel for xiaomi source #2047
2026-01-20 17:05:14 +03:00
Alex X
366cbd200d
Fix unknown msg 0xF0 for cs2 proto
2026-01-20 14:24:27 +03:00
Alex X
6f75b2f75e
Add trace log for xiaomi devices list
2026-01-20 14:19:51 +03:00
Alex X
75bd1f1b2b
Improve packet loss on old TUTK proto
2026-01-20 14:19:18 +03:00
Alex X
7793a55853
Add support xiaomi lumi.camera.gwagl01
2026-01-20 14:18:03 +03:00
Alex X
06cbbe5543
Add support xiaomi isa.camera.isc5c1
2026-01-19 21:55:07 +03:00
Felipe Santos
861bc9728b
Fix some other markdownlint violations
2026-01-19 14:24:59 -03:00
Felipe Santos
ae0646ea9e
Remove outdated section about Tuya cameras
2026-01-19 14:16:12 -03:00
Felipe Santos
c8412eb067
Merge branch 'master' of https://github.com/AlexxIT/go2rtc into update-readme
2026-01-19 14:12:00 -03:00
Alex X
a37fdf38d8
Add support xiaomi chuangmi.camera.v2 on old firmwares
2026-01-19 18:17:38 +03:00
Alex X
b5948cfb25
Update version to 1.9.14
v1.9.14
2026-01-19 11:59:09 +03:00
Alex X
c64fcc55a5
Update dependencies
2026-01-19 11:28:09 +03:00