homebridge-unifi-protect 5.3.4 → 5.4.0
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/config.schema.json +1 -1
- package/dist/protect-accessory.js +37 -36
- package/dist/protect-accessory.js.map +1 -1
- package/dist/protect-camera.js +268 -92
- package/dist/protect-camera.js.map +1 -1
- package/dist/protect-ffmpeg-record.js +54 -39
- package/dist/protect-ffmpeg-record.js.map +1 -1
- package/dist/protect-ffmpeg-stream.js +0 -2
- package/dist/protect-ffmpeg-stream.js.map +1 -1
- package/dist/protect-ffmpeg.js +27 -13
- package/dist/protect-ffmpeg.js.map +1 -1
- package/dist/protect-nvr-events.js +19 -12
- package/dist/protect-nvr-events.js.map +1 -1
- package/dist/protect-record.js +140 -73
- package/dist/protect-record.js.map +1 -1
- package/dist/protect-securitysystem.js +1 -1
- package/dist/protect-securitysystem.js.map +1 -1
- package/dist/protect-sensor.js +4 -4
- package/dist/protect-sensor.js.map +1 -1
- package/dist/protect-stream.js +80 -59
- package/dist/protect-stream.js.map +1 -1
- package/dist/protect-timeshift.js +46 -62
- package/dist/protect-timeshift.js.map +1 -1
- package/dist/settings.js +4 -5
- package/dist/settings.js.map +1 -1
- package/package.json +9 -9
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protect-sensor.js","sourceRoot":"","sources":["../src/protect-sensor.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"protect-sensor.js","sourceRoot":"","sources":["../src/protect-sensor.ts"],"names":[],"mappings":"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"}
|
package/dist/protect-stream.js
CHANGED
|
@@ -33,7 +33,6 @@ class ProtectStreamingDelegate {
|
|
|
33
33
|
this.savedBitrate = 0;
|
|
34
34
|
this.snapshotCache = {};
|
|
35
35
|
this.verboseFfmpeg = false;
|
|
36
|
-
this.verboseFfmpegTimer = null;
|
|
37
36
|
this.videoEncoder = this.config.videoEncoder || "libx264";
|
|
38
37
|
this.videoProcessor = this.config.videoProcessor || ffmpeg_for_homebridge_1.default || "ffmpeg";
|
|
39
38
|
// Setup for HKSV, if enabled.
|
|
@@ -213,7 +212,7 @@ class ProtectStreamingDelegate {
|
|
|
213
212
|
}
|
|
214
213
|
// Launch the Protect video (and audio) stream.
|
|
215
214
|
async startStream(request, callback) {
|
|
216
|
-
var _a, _b, _c, _d
|
|
215
|
+
var _a, _b, _c, _d;
|
|
217
216
|
const cameraConfig = this.protectCamera.accessory.context.device;
|
|
218
217
|
const sessionInfo = this.pendingSessions[request.sessionID];
|
|
219
218
|
const sdpIpVersion = sessionInfo.addressVersion === "ipv6" ? "IP6 " : "IP4";
|
|
@@ -265,16 +264,37 @@ class ProtectStreamingDelegate {
|
|
|
265
264
|
// a negative impact.
|
|
266
265
|
const videomtu = 188 * 3;
|
|
267
266
|
const audiomtu = 188 * 1;
|
|
268
|
-
// -hide_banner
|
|
269
|
-
// -
|
|
270
|
-
//
|
|
271
|
-
// -
|
|
272
|
-
//
|
|
273
|
-
//
|
|
274
|
-
//
|
|
275
|
-
|
|
267
|
+
// -hide_banner Suppress printing the startup banner in FFmpeg.
|
|
268
|
+
// -probesize 2048 How many bytes should be analyzed for stream information. We default to to analyze time should be spent analyzing
|
|
269
|
+
// the input stream, in microseconds.
|
|
270
|
+
// -max_delay 500000 Set an upper limit on how much time FFmpeg can take in demuxing packets.
|
|
271
|
+
// -fflags +flush_packets+nobuffer Set format flags to ensure that packets are written out immediately and that latency due to buffering is reduced.
|
|
272
|
+
// -flush_packets 1 Flush the underlying I/O stream after each packet to further reduce latency.
|
|
273
|
+
// -r fps Set the input frame rate for the video stream.
|
|
274
|
+
// -rtsp_transport tcp Tell the RTSP stream handler that we're looking for a TCP connection.
|
|
275
|
+
// -i this.rtspEntry.url RTSPS URL to get our input stream from.
|
|
276
|
+
// -map 0:v selects the first available video track from the stream. Protect actually maps audio
|
|
277
|
+
// and video tracks in opposite locations from where FFmpeg typically expects them. This
|
|
278
|
+
// setting is a more general solution than naming the track locations directly in case
|
|
279
|
+
// Protect changes this in the future.
|
|
280
|
+
// Yes, we included these above as well: they need to be included for every I/O stream to maximize effectiveness it seems.
|
|
281
|
+
// -fflags +flush_packets+nobuffer Set format flags to ensure that packets are written out immediately and that latency due to buffering is reduced.
|
|
282
|
+
// -flush_packets 1 Flush the underlying I/O stream after each packet to further reduce latency.
|
|
283
|
+
const ffmpegArgs = [
|
|
284
|
+
"-hide_banner",
|
|
285
|
+
"-probesize", "2048",
|
|
286
|
+
"-max_delay", "500000",
|
|
287
|
+
"-fflags", "+flush_packets+nobuffer",
|
|
288
|
+
"-flush_packets", "1",
|
|
289
|
+
"-r", this.rtspEntry.channel.fps.toString(),
|
|
290
|
+
"-rtsp_transport", "tcp",
|
|
291
|
+
"-i", this.rtspEntry.url,
|
|
292
|
+
"-map", "0:v",
|
|
293
|
+
"-fflags", "+flush_packets+nobuffer",
|
|
294
|
+
"-flush_packets", "1"
|
|
295
|
+
];
|
|
276
296
|
// Inform the user.
|
|
277
|
-
this.log.info("%s: Streaming request from %s: %sx%s@%sfps, %s kbps. %s
|
|
297
|
+
this.log.info("%s: Streaming request from %s: %sx%s@%sfps, %s kbps. %s %s, %s kbps.", this.name(), sessionInfo.address, request.video.width, request.video.height, request.video.fps, request.video.max_bit_rate, isTranscoding ? "Transcoding" : "Using", this.rtspEntry.name, this.rtspEntry.channel.bitrate / 1000);
|
|
278
298
|
// Check to see if we're transcoding. If we are, set the right FFmpeg encoder options. If not, copy the video stream.
|
|
279
299
|
if (isTranscoding) {
|
|
280
300
|
// Configure our video parameters for transcoding:
|
|
@@ -295,7 +315,7 @@ class ProtectStreamingDelegate {
|
|
|
295
315
|
else {
|
|
296
316
|
// Configure our video parameters for just copying the input stream from Protect - it tends to be quite solid in most cases:
|
|
297
317
|
//
|
|
298
|
-
// -vcodec copy
|
|
318
|
+
// -vcodec copy Copy the stream withour reencoding it.
|
|
299
319
|
ffmpegArgs.push("-vcodec", "copy");
|
|
300
320
|
}
|
|
301
321
|
// Add in any user-specified options for FFmpeg.
|
|
@@ -304,30 +324,34 @@ class ProtectStreamingDelegate {
|
|
|
304
324
|
}
|
|
305
325
|
// Configure our video parameters for SRTP streaming:
|
|
306
326
|
//
|
|
307
|
-
// -
|
|
308
|
-
// -
|
|
309
|
-
// -
|
|
310
|
-
// -
|
|
311
|
-
// -
|
|
312
|
-
|
|
327
|
+
// -fflags +flush_packets+nobuffer Set format flags to ensure that packets are written out immediately and that latency due to buffering is reduced.
|
|
328
|
+
// -flush_packets 1 Flush the underlying I/O stream after each packet to further reduce latency.
|
|
329
|
+
// -payload_type num Payload type for the RTP stream. This is negotiated by HomeKit and is usually 99 for H.264 video.
|
|
330
|
+
// -ssrc Synchronization source stream identifier. Random number negotiated by HomeKit to identify this stream.
|
|
331
|
+
// -f rtp Specify that we're using the RTP protocol.
|
|
332
|
+
// -srtp_out_suite enc Specify the output encryption encoding suites.
|
|
333
|
+
// -srtp_out_params params Specify the output encoding parameters. This is negotiated by HomeKit.
|
|
334
|
+
ffmpegArgs.push("-fflags", "+flush_packets+nobuffer", "-flush_packets", "1", "-payload_type", request.video.pt.toString(), "-ssrc", sessionInfo.videoSSRC.toString(), "-f", "rtp", "-srtp_out_suite", "AES_CM_128_HMAC_SHA1_80", "-srtp_out_params", sessionInfo.videoSRTP.toString("base64"), "srtp://" + sessionInfo.address + ":" + sessionInfo.videoPort.toString() + "?rtcpport=" + sessionInfo.videoPort.toString() +
|
|
313
335
|
"&localrtcpport=" + sessionInfo.videoPort.toString() + "&pkt_size=" + videomtu.toString());
|
|
314
336
|
// Configure the audio portion of the command line, if we have a version of FFmpeg supports libfdk_aac. Options we use are:
|
|
315
337
|
//
|
|
316
|
-
// -map 0:a
|
|
317
|
-
//
|
|
318
|
-
//
|
|
319
|
-
//
|
|
320
|
-
// -acodec libfdk_aac
|
|
321
|
-
// -profile:a aac_eld
|
|
322
|
-
// -flags +global_header
|
|
323
|
-
// -
|
|
324
|
-
// -
|
|
325
|
-
// -
|
|
326
|
-
// -
|
|
327
|
-
// -
|
|
338
|
+
// -map 0:a Selects the first available audio track from the stream. Protect actually maps audio
|
|
339
|
+
// and video tracks in opposite locations from where FFmpeg typically expects them. This
|
|
340
|
+
// setting is a more general solution than naming the track locations directly in case
|
|
341
|
+
// Protect changes this in the future.
|
|
342
|
+
// -acodec libfdk_aac Encode to AAC.
|
|
343
|
+
// -profile:a aac_eld Specify enhanced, low-delay AAC for HomeKit.
|
|
344
|
+
// -flags +global_header Sets the global header in the bitstream.
|
|
345
|
+
// -fflags +flush_packets+nobuffer Set format flags to ensure that packets are written out immediately and that latency due to buffering is reduced.
|
|
346
|
+
// -flush_packets 1 Flush the underlying I/O stream after each packet to further reduce latency.
|
|
347
|
+
// -f null Null filter to pass the audio unchanged without running through a muxing operation.
|
|
348
|
+
// -ar samplerate Sample rate to use for this audio. This is specified by HomeKit.
|
|
349
|
+
// -b:a bitrate Bitrate to use for this audio. This is specified by HomeKit.
|
|
350
|
+
// -bufsize size This is the decoder buffer size, which drives the variability / quality of the output bitrate.
|
|
351
|
+
// -ac 1 Set the number of audio channels to 1.
|
|
328
352
|
if (sessionInfo.hasLibFdk) {
|
|
329
353
|
// Configure our audio parameters.
|
|
330
|
-
ffmpegArgs.push("-map", "0:a", "-acodec", "libfdk_aac", "-profile:a", "aac_eld", "-flags", "+global_header", "-f", "null", "-ar", request.audio.sample_rate.toString() + "k", "-b:a", request.audio.max_bit_rate.toString() + "k", "-bufsize", (2 * request.audio.max_bit_rate).toString() + "k", "-ac", "1");
|
|
354
|
+
ffmpegArgs.push("-map", "0:a", "-acodec", "libfdk_aac", "-profile:a", "aac_eld", "-flags", "+global_header", "-fflags", "+flush_packets+nobuffer", "-flush_packets", "1", "-f", "null", "-ar", request.audio.sample_rate.toString() + "k", "-b:a", request.audio.max_bit_rate.toString() + "k", "-bufsize", (2 * request.audio.max_bit_rate).toString() + "k", "-ac", "1");
|
|
331
355
|
// If we are audio filtering, address it here.
|
|
332
356
|
if (this.protectCamera.nvr.optionEnabled(cameraConfig, "Audio.Filter.Noise", false, sessionInfo.address)) {
|
|
333
357
|
let highpass;
|
|
@@ -348,12 +372,14 @@ class ProtectStreamingDelegate {
|
|
|
348
372
|
}
|
|
349
373
|
// Add the required RTP settings and encryption for the stream:
|
|
350
374
|
//
|
|
351
|
-
// -
|
|
352
|
-
// -
|
|
353
|
-
// -
|
|
354
|
-
// -
|
|
355
|
-
// -
|
|
356
|
-
|
|
375
|
+
// -fflags +flush_packets+nobuffer Set format flags to ensure that packets are written out immediately and that latency due to buffering is reduced.
|
|
376
|
+
// -flush_packets 1 Flush the underlying I/O stream after each packet to further reduce latency.
|
|
377
|
+
// -payload_type num Payload type for the RTP stream. This is negotiated by HomeKit and is usually 110 for AAC-ELD audio.
|
|
378
|
+
// -ssrc synchronization source stream identifier. Random number negotiated by HomeKit to identify this stream.
|
|
379
|
+
// -f rtp Specify that we're using the RTP protocol.
|
|
380
|
+
// -srtp_out_suite enc Specify the output encryption encoding suites.
|
|
381
|
+
// -srtp_out_params params Specify the output encoding parameters. This is negotiated by HomeKit.
|
|
382
|
+
ffmpegArgs.push("-fflags", "+flush_packets+nobuffer", "-flush_packets", "1", "-payload_type", request.audio.pt.toString(), "-ssrc", sessionInfo.audioSSRC.toString(), "-f", "rtp", "-srtp_out_suite", "AES_CM_128_HMAC_SHA1_80", "-srtp_out_params", sessionInfo.audioSRTP.toString("base64"), "srtp://" + sessionInfo.address + ":" + sessionInfo.audioPort.toString() + "?rtcpport=" + sessionInfo.audioPort.toString() +
|
|
357
383
|
"&localrtcpport=" + sessionInfo.audioPort.toString() + "&pkt_size=" + audiomtu.toString());
|
|
358
384
|
}
|
|
359
385
|
// Additional logging, but only if we're debugging.
|
|
@@ -407,6 +433,8 @@ class ProtectStreamingDelegate {
|
|
|
407
433
|
// -i pipe:0 Read input from standard input.
|
|
408
434
|
// -map 0:a Selects the first available audio track from the stream.
|
|
409
435
|
// -acodec aac Encode to AAC. This is set by Protect.
|
|
436
|
+
// -fflags +flush_packets+nobuffer Set format flags to ensure that packets are written out immediately and that latency due to buffering is reduced.
|
|
437
|
+
// -flush_packets 1 Flush the underlying I/O stream after each packet to further reduce latency.
|
|
410
438
|
// -flags +global_header Sets the global header in the bitstream.
|
|
411
439
|
// -ar samplerate Sample rate to use for this audio. This is specified by Protect.
|
|
412
440
|
// -b:a bitrate Bitrate to use for this audio. This is specified by Protect.
|
|
@@ -414,13 +442,14 @@ class ProtectStreamingDelegate {
|
|
|
414
442
|
// -f adts Transmit an ADTS stream.
|
|
415
443
|
// pipe:1 Output the ADTS stream to standard output.
|
|
416
444
|
const ffmpegReturnAudioCmd = [
|
|
417
|
-
"-hide_banner",
|
|
418
445
|
"-protocol_whitelist", "pipe,udp,rtp,file,crypto",
|
|
419
446
|
"-f", "sdp",
|
|
420
447
|
"-acodec", "libfdk_aac",
|
|
421
448
|
"-ac", cameraConfig.talkbackSettings.channels.toString(),
|
|
422
449
|
"-i", "pipe:0",
|
|
423
450
|
"-acodec", cameraConfig.talkbackSettings.typeFmt,
|
|
451
|
+
"-fflags", "flush_packets",
|
|
452
|
+
"-flush_packets", "1",
|
|
424
453
|
"-flags", "+global_header",
|
|
425
454
|
"-ar", cameraConfig.talkbackSettings.samplingRate.toString(),
|
|
426
455
|
"-b:a", "64k",
|
|
@@ -468,11 +497,19 @@ class ProtectStreamingDelegate {
|
|
|
468
497
|
const ffmpegReturnAudio = new protect_ffmpeg_stream_1.FfmpegStreamingProcess(this, request.sessionID, ffmpegReturnAudioCmd);
|
|
469
498
|
// Setup housekeeping for the twoway FFmpeg session.
|
|
470
499
|
this.ongoingSessions[request.sessionID].ffmpeg.push(ffmpegReturnAudio);
|
|
471
|
-
//
|
|
472
|
-
|
|
500
|
+
// This is an unfortunate, but necessary, workaround for low-power systems that struggle to keep up at times. Writing the
|
|
501
|
+
// SDP header through stdin creates a small race condition - namely that we need to wait for FFmpeg to be completely
|
|
502
|
+
// ready to take input via stdin before we give it the SDP description through stdin. It's possible to launch the FFmpeg
|
|
503
|
+
// process and complete this write sequence before stdin is actually up and running on FFmpeg. Waiting for a small amount
|
|
504
|
+
// of time to write to stdin, allows us to try to wait more effectively FFmpeg to be ready before sending the SDP description.
|
|
505
|
+
setTimeout(() => {
|
|
506
|
+
var _a;
|
|
507
|
+
// Feed the SDP session description to FFmpeg on stdin.
|
|
508
|
+
(_a = ffmpegReturnAudio.stdin) === null || _a === void 0 ? void 0 : _a.end(sdpReturnAudio + "\n");
|
|
509
|
+
}, 100);
|
|
473
510
|
// Send the audio.
|
|
474
|
-
(
|
|
475
|
-
ws === null || ws === void 0 ? void 0 : ws.send(data, error => {
|
|
511
|
+
(_c = ffmpegReturnAudio.stdout) === null || _c === void 0 ? void 0 : _c.on("data", dataListener = (data) => {
|
|
512
|
+
ws === null || ws === void 0 ? void 0 : ws.send(data, (error) => {
|
|
476
513
|
// This happens when an error condition is encountered on sending data to the websocket.
|
|
477
514
|
// We assume the worst and close our talkback channel.
|
|
478
515
|
if (error) {
|
|
@@ -481,7 +518,7 @@ class ProtectStreamingDelegate {
|
|
|
481
518
|
});
|
|
482
519
|
});
|
|
483
520
|
// Make sure we terminate the talkback websocket when we're done.
|
|
484
|
-
(
|
|
521
|
+
(_d = ffmpegReturnAudio.ffmpegProcess) === null || _d === void 0 ? void 0 : _d.once("exit", () => {
|
|
485
522
|
var _a;
|
|
486
523
|
// Make sure we catch any stray connections that may be too slow to open.
|
|
487
524
|
isTalkbackLive = false;
|
|
@@ -626,22 +663,6 @@ class ProtectStreamingDelegate {
|
|
|
626
663
|
await this.stopStream(session);
|
|
627
664
|
}
|
|
628
665
|
}
|
|
629
|
-
// Temporarily increase the verbosity of FFmpeg output for end users.
|
|
630
|
-
setVerboseFfmpeg() {
|
|
631
|
-
// If we're already increased our logging, we're done.
|
|
632
|
-
if (this.platform.verboseFfmpeg || this.verboseFfmpegTimer) {
|
|
633
|
-
return;
|
|
634
|
-
}
|
|
635
|
-
// Set a timer to revert back to normal behavior.
|
|
636
|
-
this.verboseFfmpegTimer = setTimeout(() => {
|
|
637
|
-
this.verboseFfmpeg = false;
|
|
638
|
-
this.log.info("%s: Returning FFmpeg logging output to normal levels.", this.name());
|
|
639
|
-
// Clear out the old timer.
|
|
640
|
-
this.verboseFfmpegTimer = null;
|
|
641
|
-
}, settings_1.PROTECT_FFMPEG_VERBOSE_DURATION * 60 * 1000);
|
|
642
|
-
this.log.info("%s: FFmpeg exited unexpectedly. Increasing logging output of FFmpeg for the next %s minutes to provide additional detail for future attempts to stream video.", this.name(), settings_1.PROTECT_FFMPEG_VERBOSE_DURATION);
|
|
643
|
-
this.verboseFfmpeg = true;
|
|
644
|
-
}
|
|
645
666
|
}
|
|
646
667
|
exports.ProtectStreamingDelegate = ProtectStreamingDelegate;
|
|
647
668
|
//# sourceMappingURL=protect-stream.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"protect-stream.js","sourceRoot":"","sources":["../src/protect-stream.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"protect-stream.js","sourceRoot":"","sources":["../src/protect-stream.ts"],"names":[],"mappings":";;;;;;AA2BA,iDAAgE;AAChE,yCAKoB;AAEpB,mEAAiE;AAGjE,qDAA4D;AAC5D,+CAA2C;AAC3C,4CAA2B;AAC3B,kFAA+C;AAC/C,2DAAwD;AAExD,gIAAgI;AAChI,0GAA0G;AAC1G,OAAO,CAAC,QAAQ,CAAC,CAAC,YAAY,CAAC,mBAAmB,GAAG,GAAG,CAAC;AAuBzD,wDAAwD;AACxD,MAAa,wBAAwB;IAqBnC,YAAY,aAA4B,EAAE,WAAuC;QAE/E,IAAI,CAAC,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC;QAC7B,IAAI,CAAC,MAAM,GAAG,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC;QAC5C,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACvE,IAAI,CAAC,GAAG,GAAG,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;QACjC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,GAAG,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,CAAC;QACtC,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACnD,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,IAAI,CAAC,eAAe,GAAG,EAAE,CAAC;QAC1B,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC;QACvC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;QACtB,IAAI,CAAC,aAAa,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,IAAI,SAAS,CAAC;QAC1D,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,+BAAU,IAAI,QAAQ,CAAC;QAE3E,8BAA8B;QAC9B,IAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;YAC5B,IAAI,CAAC,IAAI,GAAG,IAAI,yCAAwB,CAAC,aAAa,CAAC,CAAC;SACzD;QAED,mCAAmC;QACnC,MAAM,OAAO,GAA4B;YAEvC,4EAA4E;YAC5E,iBAAiB,EAAE,EAAE;YAErB,mCAAmC;YACnC,QAAQ,EAAE,IAAI;YAEd,uDAAuD;YACvD,SAAS,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBAElD,QAAQ,EAAE,IAAI,CAAC,IAAgC;gBAE/C,OAAO,EAAE;oBAEP,KAAK,EAAE;wBAEL,MAAM,EAAE;4BACN;gCAEE,+EAA+E;gCAC/E,UAAU,gBAA8C;gCACxD,IAAI,gBAA6C;6BAClD;yBACF;qBACF;oBAED,2BAA2B,EAAE;wBAC3B;4BAEE,uGAAuG;4BACvG,wBAAwB;4BACxB,cAAc,EAAE,sCAA2B;4BAC3C,IAAI,wBAAgD;yBACrD;qBACF;oBAED,2GAA2G;oBAC3G,2CAA2C;oBAC3C,eAAe,EAAE,qCAA0B;oBAE3C,KAAK,EAAE;wBAEL,UAAU,EAAE;4BAEV,mGAAmG;4BACnG,iGAAiG;4BACjG,mGAAmG;4BACnG,qBAAqB;4BACrB,MAAM,EAAE,sDAAuF;4BAC/F,QAAQ,EAAE,cAA6B;yBACxC;wBAED,WAAW,EAAE,WAAW;wBAExB,IAAI,cAAkC;qBACvC;iBACF;aACF;YAED,qBAAqB;YACrB,OAAO,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;gBAEhD,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,YAAY,CAAC;aAC/E;YAED,gBAAgB,EAAE;gBAChB,KAAK,EAAE;oBACL,MAAM,EAAE;wBACN;4BACE,UAAU,iBAAiC;4BAC3C,IAAI,yBAAiC;yBACtC;qBACF;oBAED,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,WAAW;iBAC5C;gBAED,qBAAqB,EAAE,iCAAmD;gBAE1E,KAAK,EAAE;oBACL,KAAK,EAAE;wBACL,mGAAmG;wBACnG,iGAAiG;wBACjG,mGAAmG;wBACnG,qBAAqB;wBACrB,MAAM,EAAE,sDAAuF;wBAC/F,QAAQ,EAAE,cAA6B;qBACxC;oBAED,mGAAmG;oBACnG,kGAAkG;oBAClG,2FAA2F;oBAC3F,sGAAsG;oBACtG,wEAAwE;oBACxE,WAAW,EAAE,WAAW;iBACzB;aACF;SACF,CAAC;QAEF,IAAI,CAAC,UAAU,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC3D,CAAC;IAED,0CAA0C;IACnC,KAAK,CAAC,qBAAqB,CAAC,OAAyB,EAAE,QAAkC;;QAE9F,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAEjD,8CAA8C;QAC9C,IAAG,CAAC,QAAQ,EAAE;YAEZ,IAAG,QAAQ,EAAE;gBACX,QAAQ,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,iCAAiC,CAAC,CAAC,CAAC;aACtE;YAED,OAAO;SACR;QAED,+BAA+B;QAC/B,IAAG,QAAQ,EAAE;YACX,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;SAC/B;QAED,6DAA6D;QAC7D,MAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,0CAAE,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,UAAU,EAAE,yBAAyB,GAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC1I,CAAC;IAED,sCAAsC;IAC/B,KAAK,CAAC,aAAa,CAAC,OAA6B,EAAE,QAA+B;QAEvF,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,MAA6B,CAAC;QAExF,qCAAqC;QACrC,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,YAAY,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QAEhH,6FAA6F;QAC7F,MAAM,SAAS,GAAG,cAAc,IAAI,CAAC,MAAM,8CAAsB,CAAC,YAAY,CAAC,IAAI,CAAC,cAAc,EAAE,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QAE7H,4BAA4B;QAC5B,MAAM,qBAAqB,GAAG,CAAC,MAAM,IAAA,2BAAY,EAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACpE,MAAM,iBAAiB,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAA,2BAAY,EAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACrH,MAAM,oBAAoB,GAAG,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,IAAA,2BAAY,EAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACxH,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,6BAA6B,EAAE,CAAC;QAE5E,IAAG,CAAC,SAAS,EAAE;YACb,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,+BAA+B,EAAE,IAAI,CAAC,IAAI,EAAE,EACxD,cAAc,CAAC,CAAC,CAAC,0FAA0F,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SACrH;QAED,IAAI,UAAU,GAAG,IAAI,CAAC;QACtB,IAAI,QAAQ,GAAG,IAAI,CAAC;QAEpB,IAAG,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YAE9C,qDAAqD;YACrD,UAAU,GAAG,IAAI,wBAAU,CAAC,IAAI,EAAE,OAAO,CAAC,cAAc,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,oBAAoB,CAAC,CAAC;YAE1H,sDAAsD;YACtD,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC;YAChE,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,YAAY,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;YAEvI,+DAA+D;YAC/D,IAAG,CAAC,QAAQ,EAAE;gBAEZ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,8CAA8C,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;aAC7E;SACF;QAED,4BAA4B;QAC5B,MAAM,eAAe,GAAG,CAAC,MAAM,IAAA,2BAAY,EAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC9D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,gBAAgB,CAAC,6BAA6B,EAAE,CAAC;QAE5E,MAAM,WAAW,GAAgB;YAC/B,OAAO,EAAE,OAAO,CAAC,aAAa;YAC9B,cAAc,EAAE,OAAO,CAAC,cAAc;YAEtC,gBAAgB,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe;YAC/C,qBAAqB,EAAE,qBAAqB;YAC5C,oBAAoB,EAAE,oBAAoB;YAC1C,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI;YAC7B,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC3E,SAAS,EAAE,SAAS;YAEpB,SAAS,EAAE,SAAS;YACpB,UAAU,EAAE,UAAU;YACtB,QAAQ,EAAE,QAAQ;YAElB,gBAAgB,EAAE,OAAO,CAAC,KAAK,CAAC,eAAe;YAC/C,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,IAAI;YAC7B,eAAe,EAAE,eAAe;YAChC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;YAC3E,SAAS,EAAE,SAAS;SACrB,CAAC;QAEF,kHAAkH;QAClH,oHAAoH;QACpH,qCAAqC;QACrC,MAAM,QAAQ,GAA0B;YACtC,KAAK,EAAE;gBACL,IAAI,EAAE,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,qBAAqB;gBAC/F,qCAAqC;gBACrC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ;gBAChC,qCAAqC;gBACrC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS;gBAClC,IAAI,EAAE,SAAS;aAChB;YAED,KAAK,EAAE;gBACL,IAAI,EAAE,eAAe;gBACrB,qCAAqC;gBACrC,QAAQ,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ;gBAChC,qCAAqC;gBACrC,SAAS,EAAE,OAAO,CAAC,KAAK,CAAC,SAAS;gBAClC,IAAI,EAAE,SAAS;aAChB;SACF,CAAC;QAEF,sFAAsF;QACtF,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,WAAW,CAAC;QACtD,QAAQ,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAChC,CAAC;IAED,+CAA+C;IACvC,KAAK,CAAC,WAAW,CAAC,OAA2B,EAAE,QAA+B;;QAEpF,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,MAA6B,CAAC;QACxF,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAC5D,MAAM,YAAY,GAAG,WAAW,CAAC,cAAc,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAA,CAAC,CAAC,KAAK,CAAC;QAE3E,sCAAsC;QACtC,IAAG,YAAY,CAAC,KAAK,KAAK,WAAW,EAAE;YACrC,MAAM,YAAY,GAAG,qEAAqE,CAAC;YAE3F,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,YAAY,CAAC,CAAC;YACpD,QAAQ,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC;YACvD,OAAO;SACR;QAED,6DAA6D;QAC7D,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;QAE3H,IAAG,CAAC,IAAI,CAAC,SAAS,EAAE;YAElB,MAAM,YAAY,GAAG,uEAAuE,CAAC;YAE7F,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,gCAAgC,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,YAAY,EACxE,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;YAE5F,QAAQ,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,GAAG,IAAI,GAAG,YAAY,CAAC,CAAC,CAAC;YACvD,OAAO;SACR;QAED,0HAA0H;QAC1H,IAAG,CAAC,IAAI,CAAC,YAAY,EAAE;YAErB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAE7E,IAAG,IAAI,CAAC,YAAY,GAAG,CAAC,EAAE;gBAExB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;aACvB;SACF;QAED,2FAA2F;QAC3F,oEAAoE;QACpE,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;QAElG,sBAAsB;QACtB,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,YAAY,EAAE,iBAAiB,EAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;QAExH,qGAAqG;QACrG,yGAAyG;QACzG,sGAAsG;QACtG,0GAA0G;QAC1G,sGAAsG;QACtG,4GAA4G;QAC5G,2GAA2G;QAC3G,4GAA4G;QAC5G,uGAAuG;QACvG,oGAAoG;QACpG,2BAA2B;QAC3B,EAAE;QACF,8GAA8G;QAC9G,6GAA6G;QAC7G,8DAA8D;QAC9D,EAAE;QACF,iHAAiH;QACjH,mHAAmH;QACnH,qBAAqB;QACrB,MAAM,QAAQ,GAAG,GAAG,GAAG,CAAC,CAAC;QACzB,MAAM,QAAQ,GAAG,GAAG,GAAG,CAAC,CAAC;QAEzB,mFAAmF;QACnF,qJAAqJ;QACrJ,sEAAsE;QACtE,4GAA4G;QAC5G,qJAAqJ;QACrJ,gHAAgH;QAChH,kFAAkF;QAClF,yGAAyG;QACzG,2EAA2E;QAC3E,wHAAwH;QACxH,yHAAyH;QACzH,uHAAuH;QACvH,uEAAuE;QACvE,2JAA2J;QAC3J,qJAAqJ;QACrJ,gHAAgH;QAChH,MAAM,UAAU,GAAG;YAEjB,cAAc;YACd,YAAY,EAAE,MAAM;YACpB,YAAY,EAAE,QAAQ;YACtB,SAAS,EAAE,yBAAyB;YACpC,gBAAgB,EAAE,GAAG;YACrB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE;YAC3C,iBAAiB,EAAE,KAAK;YACxB,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG;YACxB,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,yBAAyB;YACpC,gBAAgB,EAAE,GAAG;SACtB,CAAC;QAEF,mBAAmB;QACnB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sEAAsE,EAClF,IAAI,CAAC,IAAI,EAAE,EAAE,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,YAAY,EAC1H,aAAa,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;QAEvG,qHAAqH;QACrH,IAAG,aAAa,EAAE;YAEhB,kDAAkD;YAClD,EAAE;YACF,6DAA6D;YAC7D,iFAAiF;YACjF,8HAA8H;YAC9H,gIAAgI;YAChI,6HAA6H;YAC7H,gGAAgG;YAChG,qHAAqH;YACrH,oHAAoH;YACpH,iDAAiD;YACjD,oIAAoI;YACpI,0DAA0D;YAC1D,UAAU,CAAC,IAAI,CAEb,SAAS,EAAE,IAAI,CAAC,YAAY,EAC5B,UAAU,EAAE,UAAU,EACtB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,UAAU,EACrB,KAAK,EAAE,GAAG,EACV,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,GAAG,EACnD,UAAU,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,GAAG,GAAG,EAC7D,UAAU,EAAE,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,GAAG,EACvD,WAAW,EAAE,UAAU,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,EAAE,CACvD,CAAC;SAEH;aAAM;YAEL,4HAA4H;YAC5H,EAAE;YACF,6DAA6D;YAC7D,UAAU,CAAC,IAAI,CAEb,SAAS,EAAE,MAAM,CAClB,CAAC;SACH;QAED,gDAAgD;QAChD,IAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,EAAE;YAErC,UAAU,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;SACxD;QAED,qDAAqD;QACrD,EAAE;QACF,qJAAqJ;QACrJ,gHAAgH;QAChH,qIAAqI;QACrI,0IAA0I;QAC1I,8EAA8E;QAC9E,kFAAkF;QAClF,0GAA0G;QAC1G,UAAU,CAAC,IAAI,CAEb,SAAS,EAAE,yBAAyB,EACpC,gBAAgB,EAAE,GAAG,EACrB,eAAe,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,EAC5C,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,EACzC,IAAI,EAAE,KAAK,EACX,iBAAiB,EAAE,yBAAyB,EAC5C,kBAAkB,EAAE,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAC5D,SAAS,GAAG,WAAW,CAAC,OAAO,GAAG,GAAG,GAAG,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,YAAY,GAAG,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE;YAC1H,iBAAiB,GAAG,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,YAAY,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAC1F,CAAC;QAEF,2HAA2H;QAC3H,EAAE;QACF,wHAAwH;QACxH,yHAAyH;QACzH,uHAAuH;QACvH,uEAAuE;QACvE,kDAAkD;QAClD,gFAAgF;QAChF,4EAA4E;QAC5E,qJAAqJ;QACrJ,gHAAgH;QAChH,uHAAuH;QACvH,oGAAoG;QACpG,gGAAgG;QAChG,kIAAkI;QAClI,0EAA0E;QAC1E,IAAG,WAAW,CAAC,SAAS,EAAE;YAExB,kCAAkC;YAClC,UAAU,CAAC,IAAI,CAEb,MAAM,EAAE,KAAK,EACb,SAAS,EAAE,YAAY,EACvB,YAAY,EAAE,SAAS,EACvB,QAAQ,EAAE,gBAAgB,EAC1B,SAAS,EAAE,yBAAyB,EACpC,gBAAgB,EAAE,GAAG,EACrB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,QAAQ,EAAE,GAAG,GAAG,EACjD,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,GAAG,EACnD,UAAU,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,QAAQ,EAAE,GAAG,GAAG,EAC7D,KAAK,EAAE,GAAG,CACX,CAAC;YAEF,8CAA8C;YAC9C,IAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,CAAC,YAAY,EAAE,oBAAoB,EAAE,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE;gBAEvG,IAAI,QAAQ,CAAC;gBACb,IAAI,OAAO,CAAC;gBAEZ,qEAAqE;gBACrE,QAAQ,GAAG,QAAQ,CAAC,MAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,6BAA6B,EAAE,WAAW,CAAC,OAAO,CAAC,mCAAI,EAAE,CAAC,CAAC;gBAE9H,mDAAmD;gBACnD,IAAG,CAAC,QAAQ,KAAK,QAAQ,CAAC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,EAAE;oBAC5C,QAAQ,GAAG,+CAAoC,CAAC;iBACjD;gBAED,qEAAqE;gBACrE,OAAO,GAAG,QAAQ,CAAC,MAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,YAAY,EAAE,4BAA4B,EAAE,WAAW,CAAC,OAAO,CAAC,mCAAI,EAAE,CAAC,CAAC;gBAE5H,mDAAmD;gBACnD,IAAG,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,EAAE;oBACzC,OAAO,GAAG,8CAAmC,CAAC;iBAC/C;gBAED,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,aAAa,GAAG,QAAQ,CAAC,QAAQ,EAAE,GAAG,aAAa,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;aAClG;YAED,+DAA+D;YAC/D,EAAE;YACF,qJAAqJ;YACrJ,gHAAgH;YAChH,wIAAwI;YACxI,0IAA0I;YAC1I,8EAA8E;YAC9E,kFAAkF;YAClF,0GAA0G;YAC1G,UAAU,CAAC,IAAI,CAEb,SAAS,EAAE,yBAAyB,EACpC,gBAAgB,EAAE,GAAG,EACrB,eAAe,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,EAC5C,OAAO,EAAE,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,EACzC,IAAI,EAAE,KAAK,EACX,iBAAiB,EAAE,yBAAyB,EAC5C,kBAAkB,EAAE,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAC5D,SAAS,GAAG,WAAW,CAAC,OAAO,GAAG,GAAG,GAAG,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,YAAY,GAAG,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE;gBAC1H,iBAAiB,GAAG,WAAW,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,YAAY,GAAG,QAAQ,CAAC,QAAQ,EAAE,CAC1F,CAAC;SACH;QAED,mDAAmD;QACnD,IAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,EAAE;YAEpD,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;SAC/C;QAED,IAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE;YAEhC,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;SAC7C;QAED,sDAAsD;QACtD,MAAM,YAAY,GAAG,IAAI,8CAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,UAAU,EACjF,CAAC,WAAW,CAAC,SAAS,IAAI,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,WAAW,CAAC,cAAc,EAAE,IAAI,EAAE,WAAW,CAAC,eAAe,EAAE,EACzJ,QAAQ,CAAC,CAAC;QAEZ,yDAAyD;QACzD,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,EAAE,CAAE,YAAY,CAAE,EAAE,UAAU,EAAE,WAAW,CAAC,UAAU,EAAE,CAAC;QAC3G,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAE/C,2GAA2G;QAC3G,IAAG,CAAC,WAAW,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,EAAE;YAE5D,OAAO;SACR;QAED,4EAA4E;QAC5E,sFAAsF;QACtF,EAAE;QACF,kBAAkB;QAClB,EAAE;QACF,6CAA6C;QAC7C,mDAAmD;QACnD,qCAAqC;QACrC,wCAAwC;QACxC,iEAAiE;QACjE,2EAA2E;QAC3E,mEAAmE;QACnE,+DAA+D;QAC/D,mEAAmE;QACnE,sDAAsD;QACtD,MAAM,cAAc,GAAG;YAErB,KAAK;YACL,aAAa,GAAG,YAAY,GAAG,YAAY;YAC3C,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,iBAAiB;YACtC,OAAO,GAAG,YAAY,GAAG,GAAG,GAAG,WAAW,CAAC,OAAO;YAClD,OAAO;YACP,UAAU,GAAG,WAAW,CAAC,oBAAoB,CAAC,QAAQ,EAAE,GAAG,cAAc;YACzE,SAAS;YACT,oCAAoC;YACpC,kHAAkH;YAClH,4CAA4C,GAAG,WAAW,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;SACxF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAEb,2HAA2H;QAC3H,EAAE;QACF,oFAAoF;QACpF,qEAAqE;QACrE,2CAA2C;QAC3C,yDAAyD;QACzD,kFAAkF;QAClF,gEAAgE;QAChE,qJAAqJ;QACrJ,gHAAgH;QAChH,kEAAkE;QAClE,0FAA0F;QAC1F,sFAAsF;QACtF,8FAA8F;QAC9F,kDAAkD;QAClD,oEAAoE;QACpE,MAAM,oBAAoB,GAAG;YAE3B,qBAAqB,EAAE,0BAA0B;YACjD,IAAI,EAAE,KAAK;YACX,SAAS,EAAE,YAAY;YACvB,KAAK,EAAE,YAAY,CAAC,gBAAgB,CAAC,QAAQ,CAAC,QAAQ,EAAE;YACxD,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,YAAY,CAAC,gBAAgB,CAAC,OAAO;YAChD,SAAS,EAAE,eAAe;YAC1B,gBAAgB,EAAE,GAAG;YACrB,QAAQ,EAAE,gBAAgB;YAC1B,KAAK,EAAE,YAAY,CAAC,gBAAgB,CAAC,YAAY,CAAC,QAAQ,EAAE;YAC5D,MAAM,EAAE,KAAK;YACb,IAAI,EAAE,MAAM;YACZ,QAAQ;SACT,CAAC;QAEF,mDAAmD;QACnD,IAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,IAAI,IAAI,CAAC,aAAa,EAAE;YAEpD,oBAAoB,CAAC,IAAI,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;SACzD;QAED,IAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE;YAEhC,oBAAoB,CAAC,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;SACvD;QAED,IAAI;YAEF,6BAA6B;YAC7B,IAAI,EAAE,GAAqB,IAAI,CAAC;YAChC,IAAI,cAAc,GAAG,KAAK,CAAC;YAC3B,IAAI,YAAoC,CAAC;YACzC,IAAI,YAAwB,CAAC;YAE7B,IAAG,WAAW,CAAC,QAAQ,EAAE;gBAEvB,gCAAgC;gBAChC,EAAE,GAAG,IAAI,YAAS,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,kBAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;gBACxE,cAAc,GAAG,IAAI,CAAC;gBAEtB,mDAAmD;gBACnD,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,IAAI,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;oBAE1B,kEAAkE;oBAClE,IAAI,KAA+B,CAAC,IAAI,KAAK,WAAW,EAAE;wBAExD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,8DAA8D,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;qBACpG;oBAED,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,SAAS,EAAE,CAAC;gBAClB,CAAC,CAAC,CAAC;gBAEH,kDAAkD;gBAClD,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,EAAE,CAAC,MAAM,EAAE,YAAY,GAAG,GAAS,EAAE;oBAEvC,qFAAqF;oBACrF,IAAG,CAAC,cAAc,EAAE;wBAElB,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,SAAS,EAAE,CAAC;qBACjB;gBACH,CAAC,CAAC,CAAC;gBAEH,oCAAoC;gBACpC,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,IAAI,CAAC,OAAO,EAAE,GAAG,EAAE;oBAErB,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;gBAC3C,CAAC,CAAC,CAAC;aACJ;YAED,kBAAkB;YAClB,MAAM,iBAAiB,GAAG,IAAI,8CAAsB,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;YAEpG,oDAAoD;YACpD,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAEvE,yHAAyH;YACzH,oHAAoH;YACpH,wHAAwH;YACxH,yHAAyH;YACzH,8HAA8H;YAC9H,UAAU,CAAC,GAAG,EAAE;;gBAEd,uDAAuD;gBACvD,MAAA,iBAAiB,CAAC,KAAK,0CAAE,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,CAAC;YACtD,CAAC,EAAE,GAAG,CAAC,CAAC;YAER,kBAAkB;YAClB,MAAA,iBAAiB,CAAC,MAAM,0CAAE,EAAE,CAAC,MAAM,EAAE,YAAY,GAAG,CAAC,IAAY,EAAQ,EAAE;gBAEzE,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,IAAI,CAAC,IAAI,EAAE,CAAC,KAAwB,EAAQ,EAAE;oBAEhD,wFAAwF;oBACxF,sDAAsD;oBACtD,IAAG,KAAK,EAAE;wBAER,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,SAAS,EAAE,CAAC;qBACjB;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,iEAAiE;YACjE,MAAA,iBAAiB,CAAC,aAAa,0CAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;;gBAEjD,yEAAyE;gBACzE,cAAc,GAAG,KAAK,CAAC;gBAEvB,uBAAuB;gBACvB,IAAG,CAAC,CAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,UAAU,MAAK,YAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,UAAU,MAAK,YAAS,CAAC,IAAI,CAAC,EAAE;oBAEhF,EAAE,aAAF,EAAE,uBAAF,EAAE,CAAE,SAAS,EAAE,CAAC;iBACjB;gBAED,MAAA,iBAAiB,CAAC,MAAM,0CAAE,cAAc,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;YACjE,CAAC,CAAC,CAAC;SACJ;QAAC,OAAM,KAAK,EAAE;YAEb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uDAAuD,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;SAC7F;IACH,CAAC;IAED,oCAAoC;IAC7B,KAAK,CAAC,mBAAmB,CAAC,OAAyB,EAAE,QAA+B;QAEzF,QAAO,OAAO,CAAC,IAAI,EAAE;YAEnB;gBAEE,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAC1C,MAAM;YAER;gBAEE,iEAAiE;gBACjE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,mFAAmF,EAC/F,IAAI,CAAC,IAAI,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;gBAEzG,sCAAsC;gBACtC,IAAG,IAAI,CAAC,SAAS,EAAE;oBAEjB,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,KAAK,CAAC,YAAY,GAAG,IAAI,CAAC,CAAC;iBACnG;gBAED,QAAQ,EAAE,CAAC;gBACX,MAAM;YAER,uBAA6B;YAC7B;gBAEE,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBACzC,QAAQ,EAAE,CAAC;gBACX,MAAM;SACT;IACH,CAAC;IAED,4CAA4C;IACpC,iBAAiB,CAAC,SAAiB;QAEzC,uFAAuF;QACvF,IAAG,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,EAAE;YACtG,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;YACrC,OAAO,IAAI,CAAC;SACb;QAED,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC;IAC7C,CAAC;IAED,mBAAmB;IACX,KAAK,CAAC,WAAW,CAAC,OAAyB;QAEjD,MAAM,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,CAAC,MAA6B,CAAC;QACxF,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAEtD,sCAAsC;QACtC,IAAG,YAAY,CAAC,KAAK,KAAK,WAAW,EAAE;YACrC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,0EAA0E,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;YACxG,OAAO,IAAI,CAAC;SACb;QAED,gFAAgF;QAChF,IAAG,OAAO,EAAE;YACV,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC;YACjD,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;SACpD;QAED,yCAAyC;QACzC,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,WAAW,GAAG,GAAG,GAAG,MAAM,CAAC,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;QAErJ,iGAAiG;QACjG,iFAAiF;QACjF,IAAG,CAAC,CAAA,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,EAAE,CAAA,EAAE;YAEhB,0DAA0D;YAC1D,MAAM,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAEhE,IAAG,cAAc,EAAE;gBACjB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,mFAAmF,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBACjH,OAAO,cAAc,CAAC;aACvB;YAED,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,sCAAsC,EACnD,IAAI,CAAC,IAAI,EAAE,EACX,QAAQ,CAAC,CAAC,CAAC,GAAG,GAAG,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,GAAG,KAAK,GAAG,QAAQ,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAExF,OAAO,IAAI,CAAC;SACb;QAED,IAAI;YAEF,sBAAsB;YACtB,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC;YAC9G,OAAO,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;SAEnD;QAAC,OAAM,KAAK,EAAE;YAEb,IAAG,KAAK,YAAY,0BAAU,EAAE;gBAC9B,IAAI,cAAc,CAAC;gBAEnB,QAAO,KAAK,CAAC,IAAI,EAAE;oBACjB,KAAK,4BAA4B;wBAE/B,cAAc,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;wBAE1D,IAAG,cAAc,EAAE;4BACjB,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,qEAAqE,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;4BACnG,OAAO,cAAc,CAAC;yBACvB;wBAED,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,8FAA8F,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;wBAC5H,OAAO,IAAI,CAAC;wBACZ,MAAM;oBAER;wBACE,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uBAAuB,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC;wBACpE,OAAO,IAAI,CAAC;wBACZ,MAAM;iBACT;aACF;YAED,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,4DAA4D,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;YACjG,OAAO,IAAI,CAAC;SACb;IACH,CAAC;IAED,wBAAwB;IACjB,KAAK,CAAC,UAAU,CAAC,SAAiB;;QAEvC,IAAI;YAEF,6CAA6C;YAC7C,IAAG,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE;gBAElC,KAAI,MAAM,aAAa,IAAI,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE;oBACjE,aAAa,CAAC,IAAI,EAAE,CAAC;iBACtB;gBAED,qCAAqC;gBACrC,MAAA,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC,UAAU,0CAAE,KAAK,EAAE,CAAC;gBAEpD,mBAAmB;gBACnB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,sCAAsC,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;aACpE;YAED,sBAAsB;YACtB,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YACvC,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YAEvC,sHAAsH;YACtH,IAAG,CAAC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE;gBAE/B,IAAG,MAAA,IAAI,CAAC,IAAI,0CAAE,WAAW,EAAE;oBAEzB,yBAAyB;oBACzB,MAAM,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;iBAC9D;qBAAM,IAAG,IAAI,CAAC,YAAY,EAAE;oBAE3B,gCAAgC;oBAChC,IAAG,IAAI,CAAC,SAAS,EAAE;wBAEjB,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;qBACnF;oBAED,IAAI,CAAC,YAAY,GAAG,CAAC,CAAC;iBACvB;aACF;SAEF;QAAC,OAAM,KAAK,EAAE;YAEb,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iEAAiE,EAAE,IAAI,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;SACvG;IACH,CAAC;IAED,kCAAkC;IAC3B,KAAK,CAAC,QAAQ;QAEnB,KAAI,MAAM,OAAO,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;YAEtD,4CAA4C;YAC5C,MAAM,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;SAChC;IACH,CAAC;CACF;AAl4BD,4DAk4BC"}
|
|
@@ -12,40 +12,40 @@ class ProtectTimeshiftBuffer extends events_1.EventEmitter {
|
|
|
12
12
|
this.accessory = protectCamera.accessory;
|
|
13
13
|
this.buffer = [];
|
|
14
14
|
this.bufferSize = 1;
|
|
15
|
+
this.channelId = 0;
|
|
16
|
+
this.isStarted = false;
|
|
15
17
|
this.livestream = new unifi_protect_1.ProtectLivestream(protectCamera.nvr.nvrApi, protectCamera.platform.log);
|
|
16
18
|
this.log = protectCamera.platform.log;
|
|
17
19
|
this.name = protectCamera.name.bind(protectCamera);
|
|
18
20
|
this.nvr = protectCamera.nvr;
|
|
19
21
|
this.protectCamera = protectCamera;
|
|
20
|
-
// We use
|
|
21
|
-
//
|
|
22
|
-
// but the result is a much better HKSV event recording. We may eventually allow for a larger segment
|
|
23
|
-
// resolution in order to give devices at the lower end of the performance curve some added cushion,
|
|
24
|
-
// albeit at the expense of a suboptimal user experience when reviewing HKSV recorded events.
|
|
22
|
+
// We use a small value for segment resolution in our timeshift buffer to ensure we provide an optimal timeshifting experience.
|
|
23
|
+
// It's a very small amount of additional overhead for most modern CPUs, but the result is a much better HKSV event recording.
|
|
25
24
|
this._segmentLength = settings_1.PROTECT_HKSV_SEGMENT_RESOLUTION;
|
|
26
25
|
this._isTransmitting = false;
|
|
27
26
|
this.configureTimeshiftBuffer();
|
|
28
27
|
}
|
|
29
28
|
// Configure the timeshift buffer.
|
|
30
29
|
configureTimeshiftBuffer() {
|
|
31
|
-
let
|
|
32
|
-
|
|
30
|
+
let seenInitSegment = false;
|
|
31
|
+
// If the livestream API has closed, stop what we're doing.
|
|
32
|
+
this.livestream.on("close", () => {
|
|
33
|
+
this.log.error("%s: The Protect livestream API has closed unexpectedly and will retry again shortly. " +
|
|
34
|
+
"This is usually due to a controller or camera restart and can be safely ignored.", this.name());
|
|
35
|
+
this.stop();
|
|
36
|
+
});
|
|
33
37
|
// First, we need to listen for any segments sent by the UniFi Protect livestream in order
|
|
34
38
|
// to create our timeshift buffer.
|
|
35
39
|
this.livestream.on("message", (segment) => {
|
|
36
|
-
var _a
|
|
37
|
-
// Crucially, we don't want to keep any
|
|
38
|
-
//
|
|
39
|
-
//
|
|
40
|
-
//
|
|
41
|
-
//
|
|
42
|
-
// worry about it again.
|
|
43
|
-
if (!
|
|
44
|
-
|
|
45
|
-
return;
|
|
46
|
-
}
|
|
47
|
-
if (!seenMoov && ((_b = this.livestream.moov) === null || _b === void 0 ? void 0 : _b.equals(segment))) {
|
|
48
|
-
seenMoov = true;
|
|
40
|
+
var _a;
|
|
41
|
+
// Crucially, we don't want to keep any initialization segment (which is always composed of
|
|
42
|
+
// FTYP and MOOV boxes) in our timeshift buffer. The reason for this is that these boxes are
|
|
43
|
+
// special in the fMP4 world and must be transmitted at the beginning of any new fMP4 stream.
|
|
44
|
+
// So what do we do? The livestream saves the initialization segment for us, so all we need to
|
|
45
|
+
// do is ensure we don't include them in our timeshift buffer. There should only ever be a single
|
|
46
|
+
// initialization segment, so once we've seen one, we don't need to worry about it again.
|
|
47
|
+
if (!seenInitSegment && ((_a = this.livestream.initSegment) === null || _a === void 0 ? void 0 : _a.equals(segment))) {
|
|
48
|
+
seenInitSegment = true;
|
|
49
49
|
return;
|
|
50
50
|
}
|
|
51
51
|
// Add the livestream segment to the end of the timeshift buffer.
|
|
@@ -69,14 +69,13 @@ class ProtectTimeshiftBuffer extends events_1.EventEmitter {
|
|
|
69
69
|
}
|
|
70
70
|
// Start the livestream and begin creating our timeshift buffer.
|
|
71
71
|
async start(channelId) {
|
|
72
|
-
var _a, _b, _c, _d
|
|
73
|
-
// Ensure we have sane values configured for the segment resolution.
|
|
72
|
+
var _a, _b, _c, _d;
|
|
73
|
+
// Ensure we have sane values configured for the segment resolution. We check this here instead of
|
|
74
|
+
// in the constructor because we may not have an HKSV recording configuration available to us immediately upon startup.
|
|
74
75
|
if ((_b = (_a = this.protectCamera.stream.hksv) === null || _a === void 0 ? void 0 : _a.recordingConfiguration) === null || _b === void 0 ? void 0 : _b.mediaContainerConfiguration.fragmentLength) {
|
|
75
|
-
if ((this.segmentLength < 100) ||
|
|
76
|
+
if ((this.segmentLength < 100) || (this.segmentLength > 1500) ||
|
|
76
77
|
(this.segmentLength > (((_d = (_c = this.protectCamera.stream.hksv) === null || _c === void 0 ? void 0 : _c.recordingConfiguration) === null || _d === void 0 ? void 0 : _d.mediaContainerConfiguration.fragmentLength) / 2))) {
|
|
77
|
-
this._segmentLength =
|
|
78
|
-
this.log.error("%s: An invalid HomeKit Secure Video segment length was configured. " +
|
|
79
|
-
"Choosing a safe value instead, though one that provides a less than ideal event clip viewing experience: %s.", this.name(), this.segmentLength);
|
|
78
|
+
this._segmentLength = settings_1.PROTECT_HKSV_SEGMENT_RESOLUTION;
|
|
80
79
|
}
|
|
81
80
|
}
|
|
82
81
|
// Clear out the timeshift buffer, if it's been previously filled, and then fire up the timeshift buffer.
|
|
@@ -85,67 +84,52 @@ class ProtectTimeshiftBuffer extends events_1.EventEmitter {
|
|
|
85
84
|
if (!(await this.livestream.start(this.accessory.context.device.id, channelId, this.segmentLength))) {
|
|
86
85
|
return false;
|
|
87
86
|
}
|
|
87
|
+
this.channelId = channelId;
|
|
88
|
+
this.isStarted = true;
|
|
88
89
|
return true;
|
|
89
90
|
}
|
|
90
91
|
// Stop timeshifting the livestream.
|
|
91
92
|
stop() {
|
|
92
93
|
this.livestream.stop();
|
|
93
94
|
this.buffer = [];
|
|
95
|
+
this.isStarted = false;
|
|
94
96
|
return true;
|
|
95
97
|
}
|
|
96
98
|
// Start or stop transmitting our timeshift buffer.
|
|
97
|
-
transmitStream(transmitState) {
|
|
99
|
+
async transmitStream(transmitState) {
|
|
98
100
|
// If we're done transmitting, flag it, and allow our buffer to resume maintaining itself.
|
|
99
101
|
if (!transmitState) {
|
|
100
102
|
this._isTransmitting = false;
|
|
101
103
|
return;
|
|
102
104
|
}
|
|
103
|
-
//
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
105
|
+
// If we haven't started the livestream, or it was closed for some reason, let's start it now.
|
|
106
|
+
if (!this.isStarted && !(await this.start(this.channelId))) {
|
|
107
|
+
this.log.error("%s: Unable to access the Protect livestream API. " +
|
|
108
|
+
"This is usually due to the Protect controller or camera restarting. Will retry again on the next detected motion event.", this.name());
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
// Add the initialization segment to the beginning of the timeshift buffer, if we have it.
|
|
112
|
+
// If we don't, FFmpeg will still be able to generate a valid fMP4 stream, albeit a slightly less elegantly.
|
|
113
|
+
const initSegment = await this.livestream.getInitSegment();
|
|
114
|
+
if (initSegment) {
|
|
115
|
+
this.buffer.unshift(initSegment);
|
|
108
116
|
}
|
|
109
117
|
else {
|
|
110
|
-
this.log.
|
|
118
|
+
this.log.error("%s: Unable to get the fMP4 stream header.", this.name());
|
|
111
119
|
}
|
|
112
120
|
// Signal our livestream listener that it's time to start transmitting our queued segments and timeshift.
|
|
113
121
|
this._isTransmitting = true;
|
|
114
122
|
}
|
|
115
|
-
//
|
|
116
|
-
|
|
117
|
-
// Keep looping until we see both, but don't loop for more than two seconds, as a failsafe.
|
|
118
|
-
for (let i = 0; i < 20; i++) {
|
|
119
|
-
// We have what we're looking for. We're done.
|
|
120
|
-
if (this.livestream.ftyp && this.livestream.moov) {
|
|
121
|
-
break;
|
|
122
|
-
}
|
|
123
|
-
// Let's try again shortly.
|
|
124
|
-
// eslint-disable-next-line no-await-in-loop
|
|
125
|
-
await this.nvr.sleep(100);
|
|
126
|
-
}
|
|
127
|
-
// We still don't have the boxes that make up the stream header. Time to give up.
|
|
128
|
-
if (!this.livestream.ftyp || !this.livestream.moov) {
|
|
129
|
-
return null;
|
|
130
|
-
}
|
|
131
|
-
// Return the header.
|
|
132
|
-
return Buffer.concat([this.livestream.ftyp, this.livestream.moov]);
|
|
133
|
-
}
|
|
134
|
-
// Check if a segment is the FTYP box.
|
|
135
|
-
isFtyp(segment) {
|
|
123
|
+
// Check if this is the fMP4 initialization segment.
|
|
124
|
+
isInitSegment(segment) {
|
|
136
125
|
var _a;
|
|
137
|
-
if ((_a = this.livestream.
|
|
126
|
+
if ((_a = this.livestream.initSegment) === null || _a === void 0 ? void 0 : _a.equals(segment)) {
|
|
138
127
|
return true;
|
|
139
128
|
}
|
|
140
129
|
return false;
|
|
141
130
|
}
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
var _a;
|
|
145
|
-
if ((_a = this.livestream.moov) === null || _a === void 0 ? void 0 : _a.equals(segment)) {
|
|
146
|
-
return true;
|
|
147
|
-
}
|
|
148
|
-
return false;
|
|
131
|
+
getInitSegment() {
|
|
132
|
+
return this.livestream.getInitSegment();
|
|
149
133
|
}
|
|
150
134
|
// Return whether we are transmitting our timeshift buffer or not.
|
|
151
135
|
get isTransmitting() {
|