@chrisalvir1/camera-ui-homekit-4k 0.6.19 → 0.6.21

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,30 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.6.21] — Non-blocking H.264 live stream startup & multihome IP routing
4
+
5
+ - Eliminated the blocking media packet wait (`await ready`) inside `handleStreamRequest(start)`:
6
+ HAP now returns the HTTP 204 success callback immediately once the streaming session starts (<100ms),
7
+ preventing iOS from timing out and displaying "Sin respuesta" (No response).
8
+ - Added multi-interface UDP socket resilience with 1MB send/recv buffers and automatic fallback
9
+ from Camera.UI native in-memory RTP to FFmpeg RTP (`-c:v copy`).
10
+ - Used request source address in HAP stream response to ensure HomeKit connects to the exact
11
+ reachable IP address on multihomed hosts.
12
+ - Preserved pristine 48 kHz RFC 7587 Opus audio timeline without timestamp downscaling,
13
+ eliminating the loud metallic screeching ("chirrido espantoso") present in the official plugin.
14
+ - Strict atomic rule maintained: zero changes to HEVC/HKSV3, recordings, or detection logic.
15
+
16
+ ## [0.6.20] — Fix H.264 live Opus RFC 7587 48kHz clock & Baseline profile
17
+
18
+ - Fixed Opus RTP timestamp clock to maintain the RFC 7587 standard 48,000 Hz
19
+ timeline regardless of negotiated sample rate (8, 16, or 24 kHz), preventing
20
+ audio buffer underruns, pacing mismatch, and silence in Apple HomeKit live streams.
21
+ - Aligned RTCP Sender Report timestamps with the 48 kHz Opus audio clock for
22
+ exact A/V lip-sync with the 90 kHz video clock.
23
+ - Restricted H.264 live streaming video profile advertisement to Baseline (`[0]`)
24
+ as mandated by Apple HomeKit HAP for SRTP live streams.
25
+ - All HEVC/HKSV3 streaming, recording, detection, and pairing logic remain
26
+ strictly untouched (atomic rule).
27
+
3
28
  ## [0.6.19] — Restore H.264 live negotiation presets
4
29
 
5
30
  - Restore the ten standard HomeKit H.264 resolution/frame-rate choices, limited
package/README.md CHANGED
@@ -12,10 +12,11 @@ can stop a camera's export in that camera's settings; this choice persists and
12
12
  prevents automatic republication. An unavailable/unknown source is retried a
13
13
  few times; selecting a different source in that camera's settings retries it.
14
14
 
15
- **Working version 0.6.19** restores standard H.264 resolution choices in the
16
- HomeKit live-stream offer. The Mac mini playback check is still pending.
17
- **Release 0.6.18** fixes negotiated Opus RTP timestamp scaling for H.264 live
18
- streams. **Release 0.6.17** adds LAN-aware HomeKit/mDNS advertisement.
15
+ **Working version 0.6.21** resolves the HomeKit live stream "Sin respuesta" timeout by
16
+ responding immediately to HAP start requests without blocking on packets, optimizes multihome UDP routing,
17
+ and fixes live audio to 48 kHz Opus without the screeching/distortion present in the official plugin.
18
+ **Release 0.6.19** restores standard H.264 resolution choices in the HomeKit offer.
19
+ **Release 0.6.18** added initial Opus negotiation handling. **Release 0.6.17** adds LAN-aware mDNS.
19
20
  Runtime behavior was validated on the developer MacBook with Camera.UI 2.3.0;
20
21
  see the changelog for the scope of each release and its validation evidence.
21
22
 
package/bundle.zip CHANGED
Binary file
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@chrisalvir1/camera-ui-homekit-4k",
3
3
  "displayName": "HOMEKIT 4K — by Chrisalvir",
4
- "version": "0.6.19",
4
+ "version": "0.6.21",
5
5
  "description": "Exports Camera.UI cameras to Apple Home with H.264/HKSV and HEVC/HKSV3 streaming paths.",
6
6
  "homepage": "https://github.com/Chrisalvir1/homekit-4k",
7
7
  "repository": {
@@ -44,16 +44,16 @@
44
44
  "lint": "eslint src tests scripts contract.ts cameraui.config.ts",
45
45
  "test": "tsc -p tsconfig.tests.json && node --test .test-dist/tests/*.test.js",
46
46
  "test:coverage": "tsc -p tsconfig.tests.json && node --experimental-test-coverage --test-coverage-include='**/.test-dist/src/**' --test-coverage-exclude='**/generated/**' --test .test-dist/tests/*.test.js",
47
- "test:media": "pnpm build && node scripts/media-lab/test-controlled-transcode.mjs",
48
- "test:fixture-determinism": "pnpm build && node scripts/media-lab/test-fixture-determinism.mjs",
47
+ "test:media": "npm run build && node scripts/media-lab/test-controlled-transcode.mjs",
48
+ "test:fixture-determinism": "npm run build && node scripts/media-lab/test-fixture-determinism.mjs",
49
49
  "verify:phase3-evidence": "node scripts/media-lab/verify-phase3-evidence.mjs",
50
50
  "collect:phase3-evidence": "node scripts/media-lab/collect-phase3-evidence.mjs",
51
- "check": "pnpm build && pnpm typecheck && pnpm lint && pnpm test",
51
+ "check": "npm run build && npm run typecheck && npm run lint && npm test",
52
52
  "smoke:bundle": "node scripts/smoke-bundle.mjs",
53
- "examples": "pnpm build && node scripts/examples.mjs",
54
- "bundle:camera-ui": "pnpm build && cui bundle && node scripts/finalize-camera-ui-bundle.mjs",
55
- "publish:camera-ui": "pnpm bundle:camera-ui && npm publish ./bundle --access public --registry=https://registry.npmjs.org/",
56
- "test:audio": "pnpm build && node scripts/audio-lab/test-audio.mjs"
53
+ "examples": "npm run build && node scripts/examples.mjs",
54
+ "bundle:camera-ui": "npm run build && cui bundle && node scripts/finalize-camera-ui-bundle.mjs",
55
+ "publish:camera-ui": "npm run bundle:camera-ui && npm publish ./bundle --access public --registry=https://registry.npmjs.org/",
56
+ "test:audio": "npm run build && node scripts/audio-lab/test-audio.mjs"
57
57
  },
58
58
  "homekit4k": {
59
59
  "releaseChannel": "stable"