@chrisalvir1/camera-ui-homekit-4k 0.6.20 → 0.6.22

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,27 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.6.22] — Robust H.264 Live Stream & Crystal-Clear Audio Passthrough
4
+
5
+ - **Fixed IP Version Match in `prepareStream`**: Ensured `addressOverride` strictly matches `request.addressVersion` (IPv4 vs IPv6). When HomeKit connects via IPv6, avoiding incompatible IPv4 override prevents HAP-NodeJS from rejecting the stream with "Incoming and outgoing ip address versions must match!" which previously resulted in "Sin respuesta".
6
+ - **Pure Native Packet Integrity**: Native `node-av` RTP video packets are passed through directly without running `timeline.rewrite`, preserving continuous RFC 6184 NAL fragmentation (FU-A) sequences, exact timestamps, and marker bits.
7
+ - **Opus Negotiation Alignment & Two-Way Audio**: Advertised OPUS exclusively in H.264 streaming options with `twoWayAudio: true`, ensuring iOS always negotiates Opus at 48 kHz.
8
+ - **Audio Return / Talkback Forwarding**: Handled return audio packets from HomeKit controllers and routed them directly to Camera.UI backchannel.
9
+ - **Strict Video Passthrough & 2K Hardware Transcoding**: Cameras $\le$ 1080p (e.g. Tapo C120 configured at 1080p) run in 100% video passthrough with zero re-encoding. Cameras > 1080p (e.g. Tapo C402 in 2K) transcode to 1080p via Apple Silicon Hardware Acceleration (`h264_videotoolbox`).
10
+ - **Atomic Constraints**: Absolutely zero changes to HEVC/HKSV3, recordings, or detection logic.
11
+
12
+ ## [0.6.21] — Non-blocking H.264 live stream startup & multihome IP routing
13
+
14
+ - Eliminated the blocking media packet wait (`await ready`) inside `handleStreamRequest(start)`:
15
+ HAP now returns the HTTP 204 success callback immediately once the streaming session starts (<100ms),
16
+ preventing iOS from timing out and displaying "Sin respuesta" (No response).
17
+ - Added multi-interface UDP socket resilience with 1MB send/recv buffers and automatic fallback
18
+ from Camera.UI native in-memory RTP to FFmpeg RTP (`-c:v copy`).
19
+ - Used request source address in HAP stream response to ensure HomeKit connects to the exact
20
+ reachable IP address on multihomed hosts.
21
+ - Preserved pristine 48 kHz RFC 7587 Opus audio timeline without timestamp downscaling,
22
+ eliminating the loud metallic screeching ("chirrido espantoso") present in the official plugin.
23
+ - Strict atomic rule maintained: zero changes to HEVC/HKSV3, recordings, or detection logic.
24
+
3
25
  ## [0.6.20] — Fix H.264 live Opus RFC 7587 48kHz clock & Baseline profile
4
26
 
5
27
  - Fixed Opus RTP timestamp clock to maintain the RFC 7587 standard 48,000 Hz
package/README.md CHANGED
@@ -12,8 +12,10 @@ 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.20** fixes the H.264 live Opus RTP clock to 48 kHz (RFC 7587),
16
- aligns RTCP Sender Reports, and enforces Baseline profile for HomeKit live streaming.
15
+ **Working version 0.6.22** resolves the HomeKit live stream "Sin respuesta" issue by
16
+ strictly matching IP address versions in HAP prepareStream, preserving native RFC 6184 NAL unit integrity,
17
+ and delivering crystal-clear 48 kHz Opus audio with video passthrough for $\le$1080p and Apple Silicon 2K hardware transcoding for >1080p.
18
+ **Release 0.6.21** non-blocking H.264 start response.
17
19
  **Release 0.6.19** restores standard H.264 resolution choices in the HomeKit offer.
18
20
  **Release 0.6.18** added initial Opus negotiation handling. **Release 0.6.17** adds LAN-aware mDNS.
19
21
  Runtime behavior was validated on the developer MacBook with Camera.UI 2.3.0;
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.20",
4
+ "version": "0.6.22",
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"