@homebridge-plugins/homebridge-eufy-security 5.0.0-beta.7 → 5.0.0-beta.8
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/dist/diagnostics.js +134 -2
- package/dist/diagnostics.js.map +1 -1
- package/dist/homekit/adapters/camera-streaming.js +50 -8
- package/dist/homekit/adapters/camera-streaming.js.map +1 -1
- package/dist/media/live-stream.js +62 -47
- package/dist/media/live-stream.js.map +1 -1
- package/dist/media/station-live-sessions.js +13 -1
- package/dist/media/station-live-sessions.js.map +1 -1
- package/dist/platform.js +2 -2
- package/dist/platform.js.map +1 -1
- package/package.json +2 -2
|
@@ -49,6 +49,21 @@ const CAMERA_TALKBACK_FAILED_CONDITION = 'camera-talkback-failed';
|
|
|
49
49
|
* choice, and a camera that retains it never retains more than a controller can select.
|
|
50
50
|
*/
|
|
51
51
|
const RECORDING_PREBUFFER_MS = 4_000;
|
|
52
|
+
/**
|
|
53
|
+
* How long a HomeBase-attached camera's pull is kept warm after its last consumer leaves, in milliseconds.
|
|
54
|
+
*
|
|
55
|
+
* A cold pull on such a camera costs the level-2 handshake plus the base's own warm-up before a first
|
|
56
|
+
* keyframe, which a controller that has already given up does not wait for; a pull still warm answers the
|
|
57
|
+
* next attach from its retained keyframe instead. Measured on a real base: a reattach 1.8s after release
|
|
58
|
+
* reached the adaptation in 9ms and the negotiated output in 0.56s, while a controller retried 8.3s after
|
|
59
|
+
* the attempt it abandoned — past the source's own default, which is what leaves the retry paying for a
|
|
60
|
+
* second cold start.
|
|
61
|
+
*
|
|
62
|
+
* A standalone camera is its own station and pays none of that, so it keeps the source's default. The window
|
|
63
|
+
* is bounded by the source's battery budget rather than by this value, because nothing extends that budget
|
|
64
|
+
* once the session holding it has ended.
|
|
65
|
+
*/
|
|
66
|
+
const ATTACHED_PULL_LINGER_MS = 30_000;
|
|
52
67
|
/** The fragment length this camera advertises, which is the value HomeKit Secure Video cameras use. */
|
|
53
68
|
const RECORDING_FRAGMENT_LENGTH_MS = 4_000;
|
|
54
69
|
/**
|
|
@@ -212,7 +227,13 @@ function attachCameraStreaming(context) {
|
|
|
212
227
|
: 'missing-trigger',
|
|
213
228
|
});
|
|
214
229
|
const prebufferLengthMs = recordingConfigured ? retainedPrebufferMs(context.evidence) : 0;
|
|
215
|
-
const
|
|
230
|
+
const attachedToBase = context.device.stationSn !== undefined && context.device.stationSn !== context.device.sn;
|
|
231
|
+
const liveSourceOptions = prebufferLengthMs > 0 || attachedToBase
|
|
232
|
+
? {
|
|
233
|
+
...(prebufferLengthMs > 0 ? { preBufferSeconds: prebufferLengthMs / 1_000 } : {}),
|
|
234
|
+
...(attachedToBase ? { lingerMs: ATTACHED_PULL_LINGER_MS } : {}),
|
|
235
|
+
}
|
|
236
|
+
: undefined;
|
|
216
237
|
const openLiveSource = camera.live.bind(camera);
|
|
217
238
|
const observed = observesCameraEnablement(camera, context.evidence);
|
|
218
239
|
const enablement = cameraEnablementReader(camera, context.evidence);
|
|
@@ -224,10 +245,23 @@ function attachCameraStreaming(context) {
|
|
|
224
245
|
const reportCapacity = cameraCondition(context, CAMERA_MEDIA_AT_CAPACITY_CONDITION, 'live');
|
|
225
246
|
const acquireLiveSnapshot = liveAvailable ? camera.snapshotLive.bind(camera) : undefined;
|
|
226
247
|
const openTalkback = talkbackConfigured ? camera.talkback.bind(camera) : undefined;
|
|
248
|
+
/**
|
|
249
|
+
* The SDK egresses this camera offers, each given the pull options this adapter owns and the options its
|
|
250
|
+
* own caller passes.
|
|
251
|
+
*
|
|
252
|
+
* The caller's own are merged last because they belong to one call rather than to the pull: an abort signal
|
|
253
|
+
* is how a still is abandoned and how a cancelled live acquisition is given up, and an egress that drops it
|
|
254
|
+
* cannot be stopped at all — a station that serves one camera at a time then stays held by work nobody is
|
|
255
|
+
* waiting for, and refuses every other camera behind it meanwhile.
|
|
256
|
+
*/
|
|
227
257
|
const source = {
|
|
228
|
-
live: () => openLiveSource(liveSourceOptions),
|
|
258
|
+
live: (options) => openLiveSource({ ...liveSourceOptions, ...options }),
|
|
229
259
|
...(storedAvailable ? { snapshotStored: camera.snapshotStored.bind(camera) } : {}),
|
|
230
|
-
...(acquireLiveSnapshot
|
|
260
|
+
...(acquireLiveSnapshot
|
|
261
|
+
? {
|
|
262
|
+
snapshotLive: (options = {}) => acquireLiveSnapshot({ ...liveSourceOptions, ...options }),
|
|
263
|
+
}
|
|
264
|
+
: {}),
|
|
231
265
|
...(recordingAvailable ? { recordFragments: camera.recordFragments.bind(camera) } : {}),
|
|
232
266
|
...(openTalkback ? { talkback: () => openTalkback(liveSourceOptions) } : {}),
|
|
233
267
|
};
|
|
@@ -267,7 +301,7 @@ function attachCameraStreaming(context) {
|
|
|
267
301
|
enablement,
|
|
268
302
|
availability: availabilityObservation(context.device.sn, context.availability),
|
|
269
303
|
reportSession: liveSessionReporter(context, reportAdmission),
|
|
270
|
-
reportRelease: (release) => context.trace?.({ event: 'live-session-released', release }),
|
|
304
|
+
reportRelease: (release, controller) => context.trace?.({ event: 'live-session-released', release, ...controller }),
|
|
271
305
|
reportTalkback: talkbackReporter(context),
|
|
272
306
|
reportAdmission,
|
|
273
307
|
reportCapacity,
|
|
@@ -1099,16 +1133,24 @@ class LiveCameraDelegate {
|
|
|
1099
1133
|
callback(new Error('live media session was not prepared'));
|
|
1100
1134
|
return;
|
|
1101
1135
|
}
|
|
1136
|
+
/**
|
|
1137
|
+
* A renegotiated selection is recorded and answered, and the session goes on serving the one it started
|
|
1138
|
+
* on.
|
|
1139
|
+
*
|
|
1140
|
+
* Applying it means replacing the adaptation, which can only begin on a source keyframe: this transport's
|
|
1141
|
+
* interval is seconds, and a controller that has renegotiated stops presenting what it is still being sent
|
|
1142
|
+
* meanwhile. Measured on a real controller, a request at 7.9s was serveable at 11.5s and the picture never
|
|
1143
|
+
* advanced again in between, while sessions that renegotiated nothing ran to their end — so the deferral
|
|
1144
|
+
* cost the whole session to honour one request. A controller that wants less asks again by renegotiating
|
|
1145
|
+
* the session itself, which is a start this camera answers from scratch.
|
|
1146
|
+
*/
|
|
1102
1147
|
if (request.type === 'reconfigure') {
|
|
1103
1148
|
if (!session.selection) {
|
|
1104
1149
|
this.release(request.sessionID);
|
|
1105
1150
|
callback(new Error('live media session has not started'));
|
|
1106
1151
|
return;
|
|
1107
1152
|
}
|
|
1108
|
-
|
|
1109
|
-
session.prepared.reconfigure(video);
|
|
1110
|
-
session.selection = { ...session.selection, video: { ...session.selection.video, ...request.video } };
|
|
1111
|
-
this.traceSelection('reconfigure', video, session.addressVersion);
|
|
1153
|
+
this.traceSelection('reconfigure', negotiatedVideo({ ...session.selection.video, ...request.video }, session.videoSsrc, this.hap), session.addressVersion);
|
|
1112
1154
|
callback();
|
|
1113
1155
|
return;
|
|
1114
1156
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"camera-streaming.js","sourceRoot":"","sources":["../../../src/homekit/adapters/camera-streaming.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"camera-streaming.js","sourceRoot":"","sources":["../../../src/homekit/adapters/camera-streaming.ts"],"names":[],"mappings":"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"}
|
|
@@ -55,6 +55,20 @@ const RETURN_AUDIO_BIND_GRACE_MS = 250;
|
|
|
55
55
|
* reports nothing at all.
|
|
56
56
|
*/
|
|
57
57
|
export const SOURCE_START_BACKSTOP_MS = 30_000;
|
|
58
|
+
/**
|
|
59
|
+
* How far the RTP sequence space is advanced for each adaptation a session sends on, in packets.
|
|
60
|
+
*
|
|
61
|
+
* One session keeps one SSRC and one SRTP key across a replaced adaptation, and the SRTP packet index is built
|
|
62
|
+
* from the sequence number — so a replacement that started where FFmpeg would have, at a random base, is read
|
|
63
|
+
* by the controller as replay half the time and its packets are discarded under a key that still
|
|
64
|
+
* authenticates. Nothing reports it: the controller goes on acknowledging what it received before, so RTCP
|
|
65
|
+
* liveness holds while the picture never advances again.
|
|
66
|
+
*
|
|
67
|
+
* Advancing instead of restarting keeps the index monotonic. The step is well under half the sequence space,
|
|
68
|
+
* which is what keeps the receiver's own index estimate correct across the wrap it eventually crosses; a gap
|
|
69
|
+
* this size reads as loss, which a controller already tolerates.
|
|
70
|
+
*/
|
|
71
|
+
const OUTPUT_SEQUENCE_STEP = 4_096;
|
|
58
72
|
const SOURCE_ACQUISITION_TIMEOUT = Symbol('source-acquisition-timeout');
|
|
59
73
|
/**
|
|
60
74
|
* The bounded reason one SDK source failure reports.
|
|
@@ -212,7 +226,6 @@ export class FfmpegLiveMedia {
|
|
|
212
226
|
let negotiated;
|
|
213
227
|
let stopped = false;
|
|
214
228
|
let receivedVideoKeyframe = false;
|
|
215
|
-
let reconfigurationPending = false;
|
|
216
229
|
/**
|
|
217
230
|
* The coded configuration the source last announced, and the one the running adaptation was opened for.
|
|
218
231
|
*
|
|
@@ -231,6 +244,13 @@ export class FfmpegLiveMedia {
|
|
|
231
244
|
let videoStartBackstop;
|
|
232
245
|
let videoFailed = false;
|
|
233
246
|
let rtcpObserved = false;
|
|
247
|
+
/** How many receiver reports this session was acknowledged by, and when the last one arrived. */
|
|
248
|
+
/** Why the video adaptation now running was started, which the record reporting it carries. */
|
|
249
|
+
let videoCause = 'first';
|
|
250
|
+
/** Where the next adaptation this session sends on starts its RTP sequence, advanced for every one. */
|
|
251
|
+
let videoSequence = 0;
|
|
252
|
+
let rtcpReports = 0;
|
|
253
|
+
let lastRtcpAt;
|
|
234
254
|
let streaming = false;
|
|
235
255
|
const stoppingProcesses = new WeakSet();
|
|
236
256
|
const congested = new Set();
|
|
@@ -345,14 +365,17 @@ export class FfmpegLiveMedia {
|
|
|
345
365
|
stopTalkback();
|
|
346
366
|
stopProcess(videoProcess);
|
|
347
367
|
stopProcess(audioProcess);
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
transport.onSessionReleased?.(videoFailed ? 'failed' : 'requested'
|
|
368
|
+
source?.stop();
|
|
369
|
+
if (negotiated) {
|
|
370
|
+
transport.onSessionReleased?.(videoFailed ? 'failed' : 'requested', {
|
|
371
|
+
reports: rtcpReports,
|
|
372
|
+
...(lastRtcpAt === undefined ? {} : { sinceLastReportMs: Date.now() - lastRtcpAt }),
|
|
373
|
+
});
|
|
351
374
|
}
|
|
352
375
|
videoPort.close();
|
|
353
376
|
audioPort?.close();
|
|
354
377
|
};
|
|
355
|
-
const failVideo = (reason) => {
|
|
378
|
+
const failVideo = (reason, servingChannel) => {
|
|
356
379
|
if (stopped || videoFailed) {
|
|
357
380
|
return;
|
|
358
381
|
}
|
|
@@ -365,7 +388,12 @@ export class FfmpegLiveMedia {
|
|
|
365
388
|
: !receivedVideoKeyframe
|
|
366
389
|
? 'first-source-keyframe'
|
|
367
390
|
: 'first-adapted-output';
|
|
368
|
-
transport.onSessionOutcome?.({
|
|
391
|
+
transport.onSessionOutcome?.({
|
|
392
|
+
outcome: 'failed',
|
|
393
|
+
reason,
|
|
394
|
+
stage,
|
|
395
|
+
...(servingChannel === undefined ? {} : { servingChannel }),
|
|
396
|
+
});
|
|
369
397
|
transport.onVideoFailure?.();
|
|
370
398
|
};
|
|
371
399
|
/**
|
|
@@ -376,6 +404,8 @@ export class FfmpegLiveMedia {
|
|
|
376
404
|
*/
|
|
377
405
|
const resetRtcpDeadline = () => {
|
|
378
406
|
rtcpObserved = true;
|
|
407
|
+
rtcpReports += 1;
|
|
408
|
+
lastRtcpAt = Date.now();
|
|
379
409
|
clearTimeout(initialRtcpGrace);
|
|
380
410
|
clearTimeout(rtcpDeadline);
|
|
381
411
|
if (!streaming) {
|
|
@@ -390,13 +420,9 @@ export class FfmpegLiveMedia {
|
|
|
390
420
|
* Adaptation reached the negotiated output, so the session is bounded from here by RTCP liveness
|
|
391
421
|
* rather than by the start backstop. The initial grace is armed from this point because media may
|
|
392
422
|
* legitimately start well after the session does.
|
|
393
|
-
*
|
|
394
|
-
* A selection HomeKit has already replaced does not discharge the deadline for its replacement, however
|
|
395
|
-
* much it keeps reporting: FFmpeg reports progress on a timer whether or not new media reaches it, so
|
|
396
|
-
* only the adaptation that carries the current selection can say that selection is being served.
|
|
397
423
|
*/
|
|
398
|
-
const observeAdaptationProgress = (
|
|
399
|
-
if (stopped
|
|
424
|
+
const observeAdaptationProgress = () => {
|
|
425
|
+
if (stopped) {
|
|
400
426
|
return;
|
|
401
427
|
}
|
|
402
428
|
clearTimeout(videoStartBackstop);
|
|
@@ -425,13 +451,12 @@ export class FfmpegLiveMedia {
|
|
|
425
451
|
* Writes one source access unit to the adaptation that is entitled to code it.
|
|
426
452
|
*
|
|
427
453
|
* A source configuration the running adaptation was not opened for cannot be coded by it at all, so those
|
|
428
|
-
* frames wait for the keyframe that lets a replacement start.
|
|
429
|
-
* only the output, so the current process keeps coding and keeps the previous selection on the wire until
|
|
430
|
-
* that same keyframe arrives; a controller reconfigures precisely when it is unhappy with what it
|
|
431
|
-
* receives, and the source is then often the very thing not producing keyframes.
|
|
454
|
+
* frames wait for the keyframe that lets a replacement start.
|
|
432
455
|
*
|
|
433
456
|
* Source-driven replacement is bounded by {@link MAX_SOURCE_INPUT_REPLACEMENTS}, past which the session
|
|
434
|
-
* fails rather than spawn again.
|
|
457
|
+
* fails rather than spawn again. It is the only replacement a session makes: a source that changes what it
|
|
458
|
+
* delivers cannot be coded by the running process at all, whereas a controller's renegotiated selection is
|
|
459
|
+
* a request this session declines in favour of the one it started on.
|
|
435
460
|
*/
|
|
436
461
|
const writeVideo = (frame) => {
|
|
437
462
|
if (stopped || !negotiated || !videoConfig) {
|
|
@@ -447,29 +472,28 @@ export class FfmpegLiveMedia {
|
|
|
447
472
|
if (videoProcess && inputChanged && !frame.keyframe) {
|
|
448
473
|
return;
|
|
449
474
|
}
|
|
450
|
-
if (videoProcess && frame.keyframe &&
|
|
451
|
-
|
|
452
|
-
sourceInputReplacements += 1;
|
|
453
|
-
}
|
|
475
|
+
if (videoProcess && frame.keyframe && inputChanged) {
|
|
476
|
+
sourceInputReplacements += 1;
|
|
454
477
|
if (sourceInputReplacements > MAX_SOURCE_INPUT_REPLACEMENTS) {
|
|
455
478
|
failVideo('source-input-unstable');
|
|
456
479
|
return;
|
|
457
480
|
}
|
|
458
|
-
|
|
481
|
+
videoCause = 'source-configuration';
|
|
459
482
|
stopProcess(videoProcess);
|
|
460
483
|
videoProcess = undefined;
|
|
461
484
|
}
|
|
462
485
|
if (!videoProcess) {
|
|
463
486
|
adaptationConfig = videoConfig;
|
|
464
|
-
|
|
487
|
+
videoSequence = (videoSequence + OUTPUT_SEQUENCE_STEP) & 0xffff;
|
|
488
|
+
const child = this.createProcess(this.executable, videoArguments(videoConfig, negotiated.video, targetAddress, transport.video, videoSequence));
|
|
465
489
|
videoProcess = child;
|
|
466
|
-
adaptationDiagnostics?.report({ role: 'live-video', event: 'started' });
|
|
490
|
+
adaptationDiagnostics?.report({ role: 'live-video', event: 'started', cause: videoCause });
|
|
467
491
|
const stderr = new AdaptationStderr();
|
|
468
492
|
let producedOutput = false;
|
|
469
493
|
child.stderr.on('data', (chunk) => {
|
|
470
494
|
if (stderr.observe(chunk).some((line) => line.startsWith('progress='))) {
|
|
471
495
|
producedOutput = true;
|
|
472
|
-
observeAdaptationProgress(
|
|
496
|
+
observeAdaptationProgress();
|
|
473
497
|
}
|
|
474
498
|
});
|
|
475
499
|
child.stdin.on('error', () => {
|
|
@@ -726,7 +750,7 @@ export class FfmpegLiveMedia {
|
|
|
726
750
|
}
|
|
727
751
|
catch (error) {
|
|
728
752
|
acquisition.abort(new Error('live media source acquisition was cancelled'));
|
|
729
|
-
failVideo(error === SOURCE_ACQUISITION_TIMEOUT ? 'source-acquisition-timeout' : sourceFailure(error));
|
|
753
|
+
failVideo(error === SOURCE_ACQUISITION_TIMEOUT ? 'source-acquisition-timeout' : sourceFailure(error), error instanceof StationBusyError ? error.servingChannel : undefined);
|
|
730
754
|
throw error === SOURCE_ACQUISITION_TIMEOUT ? new Error('live media source acquisition timed out') : error;
|
|
731
755
|
}
|
|
732
756
|
finally {
|
|
@@ -751,24 +775,6 @@ export class FfmpegLiveMedia {
|
|
|
751
775
|
source.on('stop', () => failVideo('source-stopped'));
|
|
752
776
|
await returnAudioReady;
|
|
753
777
|
},
|
|
754
|
-
/**
|
|
755
|
-
* Acknowledges a reconfigured selection and applies it at the next source keyframe.
|
|
756
|
-
*
|
|
757
|
-
* Nothing is torn down here: the current adaptation keeps the previous selection on the wire until the
|
|
758
|
-
* replacement has a keyframe to start from. The deferral is still bounded, because a session that never
|
|
759
|
-
* applies the selection HomeKit asked for must end and be renegotiated rather than silently serve the
|
|
760
|
-
* old one forever.
|
|
761
|
-
*/
|
|
762
|
-
reconfigure(video) {
|
|
763
|
-
if (!negotiated) {
|
|
764
|
-
return;
|
|
765
|
-
}
|
|
766
|
-
negotiated = { ...negotiated, video };
|
|
767
|
-
reconfigurationPending = videoProcess !== undefined;
|
|
768
|
-
clearTimeout(videoStartBackstop);
|
|
769
|
-
videoStartBackstop = setTimeout(() => failVideo('no-video-within-backstop'), SOURCE_START_BACKSTOP_MS);
|
|
770
|
-
videoStartBackstop.unref?.();
|
|
771
|
-
},
|
|
772
778
|
stop,
|
|
773
779
|
};
|
|
774
780
|
}
|
|
@@ -810,12 +816,21 @@ function commonArguments(inputFormat, inputOptions = []) {
|
|
|
810
816
|
'pipe:0',
|
|
811
817
|
];
|
|
812
818
|
}
|
|
813
|
-
|
|
819
|
+
/**
|
|
820
|
+
* The RTP output one adaptation sends on: the controller's endpoint, the identity the session negotiated for
|
|
821
|
+
* it, and where its sequence numbering starts.
|
|
822
|
+
*
|
|
823
|
+
* `sequence` is stated wherever a session may send on more than one adaptation, because the identity and the
|
|
824
|
+
* SRTP key outlive the process: see {@link OUTPUT_SEQUENCE_STEP} for what a restarted numbering costs. An
|
|
825
|
+
* output no replacement can follow omits it and keeps FFmpeg's own base.
|
|
826
|
+
*/
|
|
827
|
+
function outputArguments(targetAddress, target, payloadType, ssrc, packetSize, sequence) {
|
|
814
828
|
return [
|
|
815
829
|
'-payload_type',
|
|
816
830
|
String(payloadType),
|
|
817
831
|
'-ssrc',
|
|
818
832
|
String(ssrc),
|
|
833
|
+
...(sequence === undefined ? [] : ['-seq', String(sequence)]),
|
|
819
834
|
'-f',
|
|
820
835
|
'rtp',
|
|
821
836
|
'-srtp_out_suite',
|
|
@@ -866,7 +881,7 @@ function outputArguments(targetAddress, target, payloadType, ssrc, packetSize) {
|
|
|
866
881
|
* Baseline whatever `-profile:v` asks for. `-tune zerolatency` pins the same `sliced_threads`, `bframes`
|
|
867
882
|
* and `rc_lookahead` at either preset, so this costs computation rather than frame delay.
|
|
868
883
|
*/
|
|
869
|
-
function videoArguments(input, selection, targetAddress, target) {
|
|
884
|
+
function videoArguments(input, selection, targetAddress, target, sequence) {
|
|
870
885
|
const budget = videoBudgetInsideCeiling(selection);
|
|
871
886
|
return [
|
|
872
887
|
...commonArguments(input.codec === 'h265' ? 'hevc' : input.codec),
|
|
@@ -899,7 +914,7 @@ function videoArguments(input, selection, targetAddress, target) {
|
|
|
899
914
|
`${budget}k`,
|
|
900
915
|
'-bufsize',
|
|
901
916
|
`${budget}k`,
|
|
902
|
-
...outputArguments(targetAddress, target, selection.payloadType, selection.ssrc, selection.mtu),
|
|
917
|
+
...outputArguments(targetAddress, target, selection.payloadType, selection.ssrc, selection.mtu, sequence),
|
|
903
918
|
];
|
|
904
919
|
}
|
|
905
920
|
/**
|