@camstack/addon-osd-manager 0.1.186 → 0.1.187
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/{MotionZonesSettings-Dp0R0q3Z.mjs → MotionZonesSettings-DExh7cfG.mjs} +2 -2
- package/dist/{PrivacyMaskSettings-IPP5tsg4.mjs → PrivacyMaskSettings-D7DD3Bjn.mjs} +4 -4
- package/dist/{SceneMonitorEditor-wh-xCA6m.mjs → SceneMonitorEditor-CSGICuxL.mjs} +3 -3
- package/dist/_stub.js +44 -37
- package/dist/{_virtual_mf-localSharedImportMap___mfe_internal__addon_osd_manager_page-Cr3qSOlj.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_osd_manager_page-CqKqHB_X.mjs} +4 -4
- package/dist/_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-xwBgquo5.mjs +26 -0
- package/dist/addon-osd-manager.css +1 -1
- package/dist/{hostInit-Byg5VNXi.mjs → hostInit-B0_eqBVt.mjs} +3 -3
- package/dist/index.js +31 -357
- package/dist/index.mjs +31 -357
- package/dist/{player-overlays-C2udddNf.mjs → player-overlays-BIS82ltZ.mjs} +1 -1
- package/dist/remoteEntry.js +1 -1
- package/dist/{responsive-Bef0FhzN.mjs → responsive-B3EaDJYd.mjs} +1 -1
- package/dist/{scene-monitor-copy-OXVinJYb.mjs → scene-monitor-copy-b6ZWnJc9.mjs} +1 -1
- package/dist/{square-ClhvKotL.mjs → square-DnMZ8-h0.mjs} +1 -1
- package/dist/{trash-2-DtyxSKWI.mjs → trash-2-Cd7WoJCB.mjs} +1 -1
- package/dist/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-2lDHA88N.mjs → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__addon_osd_manager_page__remoteEntry_js-CbqzvZt_.mjs} +1 -1
- package/package.json +1 -1
- package/dist/_virtual_mf___mfe_internal__addon_osd_manager_page__loadShare___mf_0_camstack_mf_1_types__loadShare__.js-fuPdAfsY.mjs +0 -26
package/dist/index.js
CHANGED
|
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
//#region ../types/dist/event-category-
|
|
5
|
+
//#region ../types/dist/event-category-B_0XEcLF.mjs
|
|
6
6
|
var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
7
7
|
EventCategory["SystemBoot"] = "system.boot";
|
|
8
8
|
EventCategory["SystemAddonsReady"] = "system.addons-ready";
|
|
@@ -503,15 +503,6 @@ var EventCategory = /* @__PURE__ */ function(EventCategory) {
|
|
|
503
503
|
EventCategory["AgentWsDisconnected"] = "agent.ws.disconnected";
|
|
504
504
|
EventCategory["AgentBackupActivated"] = "agent.backup.activated";
|
|
505
505
|
EventCategory["OrchestrationSettingsUpdated"] = "orchestration.settings-updated";
|
|
506
|
-
/**
|
|
507
|
-
* Per-agent hwaccel preference changed (user override set, cleared, or
|
|
508
|
-
* re-probed). Observability event — decoders pull the current pref at
|
|
509
|
-
* `createSession`, so running sessions keep their current backend until
|
|
510
|
-
* they rotate naturally (camera add/remove, stream restart). Future
|
|
511
|
-
* work can wire a listener in stream-broker that force-rotates live
|
|
512
|
-
* sessions; for now this event powers logs + admin-UI toast feedback.
|
|
513
|
-
*/
|
|
514
|
-
EventCategory["PipelineAgentHwaccelChanged"] = "pipeline.agent-hwaccel-changed";
|
|
515
506
|
EventCategory["MotionAnalysis"] = "detection.motion-analysis";
|
|
516
507
|
/** All raw motion zones from CCL before minArea filter — for UI debug overlay. */
|
|
517
508
|
EventCategory["MotionZonesRaw"] = "detection.motion-zones-raw";
|
|
@@ -5382,7 +5373,7 @@ var ZodIssueCode = {
|
|
|
5382
5373
|
var ZodFirstPartyTypeKind;
|
|
5383
5374
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5384
5375
|
//#endregion
|
|
5385
|
-
//#region ../types/dist/sleep-
|
|
5376
|
+
//#region ../types/dist/sleep-BNeXenvr.mjs
|
|
5386
5377
|
/**
|
|
5387
5378
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5388
5379
|
* window to float samples (D455).
|
|
@@ -6748,32 +6739,12 @@ object({
|
|
|
6748
6739
|
audioCodec: string().optional(),
|
|
6749
6740
|
metadata: record(string(), unknown()).readonly().optional()
|
|
6750
6741
|
});
|
|
6751
|
-
var EncodedPacketSchema = object({
|
|
6752
|
-
type: _enum(["video", "audio"]),
|
|
6753
|
-
data: _instanceof(Uint8Array),
|
|
6754
|
-
pts: number(),
|
|
6755
|
-
dts: number(),
|
|
6756
|
-
keyframe: boolean(),
|
|
6757
|
-
codec: string()
|
|
6758
|
-
});
|
|
6759
|
-
var DecodedFrameSchema = object({
|
|
6760
|
-
data: _instanceof(Uint8Array),
|
|
6761
|
-
width: number(),
|
|
6762
|
-
height: number(),
|
|
6763
|
-
format: _enum([
|
|
6764
|
-
"jpeg",
|
|
6765
|
-
"rgb",
|
|
6766
|
-
"bgr",
|
|
6767
|
-
"yuv420",
|
|
6768
|
-
"gray"
|
|
6769
|
-
]),
|
|
6770
|
-
timestamp: number()
|
|
6771
|
-
});
|
|
6772
6742
|
/**
|
|
6773
6743
|
* Wire schema for `FrameHandle` — a zero-pixel, serialisable reference to a
|
|
6774
6744
|
* frame in a shared-memory ring (Phase 5 / D9). Mirrors the `FrameHandle` TS
|
|
6775
|
-
* interface in `interfaces/frame-handle.ts` field-for-field so a
|
|
6776
|
-
*
|
|
6745
|
+
* interface in `interfaces/frame-handle.ts` field-for-field so a cap method
|
|
6746
|
+
* (the runner's native-crop and pipeline-executor inputs) can carry handles
|
|
6747
|
+
* over tRPC / Moleculer.
|
|
6777
6748
|
*
|
|
6778
6749
|
* The `satisfies` assertion below pins this schema to the interface: if a
|
|
6779
6750
|
* field is added to / removed from `FrameHandle` without a matching schema
|
|
@@ -6799,50 +6770,6 @@ var FrameHandleSchema = object({
|
|
|
6799
6770
|
slotCount: number().int().positive()
|
|
6800
6771
|
});
|
|
6801
6772
|
/**
|
|
6802
|
-
* Pixel format a frame-handle subscriber can request from the broker
|
|
6803
|
-
* (Phase 5 / D9). The packed, raster subset of `FrameFormat` — the formats a
|
|
6804
|
-
* `frameSink: 'shm'` decoder session can write into a `FrameRing` slot.
|
|
6805
|
-
* `jpeg` is excluded: a variable-length stream is not a fixed-stride ring
|
|
6806
|
-
* payload, and no decoded-frame consumer requests it over the shm plane.
|
|
6807
|
-
*/
|
|
6808
|
-
var FrameHandleFormatSchema = _enum([
|
|
6809
|
-
"rgb",
|
|
6810
|
-
"bgr",
|
|
6811
|
-
"yuv420",
|
|
6812
|
-
"gray"
|
|
6813
|
-
]);
|
|
6814
|
-
/**
|
|
6815
|
-
* Input for `stream-broker.subscribeFrames` (Phase 5 / D9). A consumer asks the
|
|
6816
|
-
* broker for a `FrameHandle` stream of one `format`; the broker maintains one
|
|
6817
|
-
* shared-memory ring per `(brokerId, format)` actually requested, so a `gray`
|
|
6818
|
-
* subscriber (motion) and an `rgb` subscriber (detection) each read the format
|
|
6819
|
-
* they asked for with no broker-side conversion.
|
|
6820
|
-
*/
|
|
6821
|
-
var SubscribeFramesInputSchema = object({
|
|
6822
|
-
brokerId: string(),
|
|
6823
|
-
format: FrameHandleFormatSchema,
|
|
6824
|
-
/**
|
|
6825
|
-
* Optional reader-side cadence hint in frames per second. The broker does
|
|
6826
|
-
* NOT throttle — latest-wins ring reads drop frames implicitly for a slow
|
|
6827
|
-
* consumer. The value is echoed back in `SubscribeFramesResult.maxFps` so
|
|
6828
|
-
* the consumer can pace its own `pullFrameHandles` polling.
|
|
6829
|
-
*/
|
|
6830
|
-
maxFps: number().positive().optional(),
|
|
6831
|
-
/** Short caller-identity tag (`motion`, `detection`, …) for diagnostics. */
|
|
6832
|
-
tag: string().optional()
|
|
6833
|
-
});
|
|
6834
|
-
/**
|
|
6835
|
-
* Result of `stream-broker.subscribeFrames`. The consumer then polls
|
|
6836
|
-
* `pullFrameHandles({ subscriptionId, maxCount })` and feeds each returned
|
|
6837
|
-
* `FrameHandle` to a `FrameRingReader`.
|
|
6838
|
-
*/
|
|
6839
|
-
var SubscribeFramesResultSchema = object({
|
|
6840
|
-
/** Opaque id the consumer passes to `pullFrameHandles` / `unsubscribeFrames`. */
|
|
6841
|
-
subscriptionId: string(),
|
|
6842
|
-
/** Reader-side cadence hint (frames/s) — echoes `SubscribeFramesInput.maxFps`. */
|
|
6843
|
-
maxFps: number().nonnegative()
|
|
6844
|
-
});
|
|
6845
|
-
/**
|
|
6846
6773
|
* Wire schema for a decoded audio chunk (Phase 5 / D9). Mirrors the
|
|
6847
6774
|
* `DecodedAudioChunk` TS interface in `interfaces/stream-broker.ts`: PCM
|
|
6848
6775
|
* sample bytes plus the track parameters a consumer needs to interpret them.
|
|
@@ -6850,8 +6777,8 @@ var SubscribeFramesResultSchema = object({
|
|
|
6850
6777
|
* Audio chunks are tiny (a ~500ms AudioCodecSession window is a few KB of
|
|
6851
6778
|
* Float32 PCM), so unlike video frames they ship their bytes INLINE over
|
|
6852
6779
|
* tRPC / Moleculer — no shared-memory plane. `data` is typed `Uint8Array`
|
|
6853
|
-
* (the wire-serialisable supertype of `Buffer`)
|
|
6854
|
-
*
|
|
6780
|
+
* (the wire-serialisable supertype of `Buffer`); a `Buffer` is assignable to
|
|
6781
|
+
* it.
|
|
6855
6782
|
*/
|
|
6856
6783
|
var AudioChunkFormatSchema = _enum(AUDIO_CHUNK_FORMATS);
|
|
6857
6784
|
var DecodedAudioChunkSchema = object({
|
|
@@ -6869,11 +6796,10 @@ var DecodedAudioChunkSchema = object({
|
|
|
6869
6796
|
format: AudioChunkFormatSchema.optional()
|
|
6870
6797
|
});
|
|
6871
6798
|
/**
|
|
6872
|
-
* Input for `stream-broker.subscribeAudioChunks` (Phase 5 / D9).
|
|
6873
|
-
*
|
|
6874
|
-
*
|
|
6875
|
-
*
|
|
6876
|
-
* `pullAudioChunks`.
|
|
6799
|
+
* Input for `stream-broker.subscribeAudioChunks` (Phase 5 / D9). Audio ships
|
|
6800
|
+
* its bytes inline: a consumer asks the broker for the decoded audio-chunk
|
|
6801
|
+
* stream of one broker; the broker keeps a per-subscription bounded FIFO queue
|
|
6802
|
+
* the consumer drains via `pullAudioChunks`.
|
|
6877
6803
|
*/
|
|
6878
6804
|
var SubscribeAudioChunksInputSchema = object({
|
|
6879
6805
|
brokerId: string(),
|
|
@@ -6904,9 +6830,7 @@ var BrokerStatsSchema = object({
|
|
|
6904
6830
|
"stopped"
|
|
6905
6831
|
]),
|
|
6906
6832
|
inputFps: number(),
|
|
6907
|
-
decodeFps: number(),
|
|
6908
6833
|
encodedSubscribers: number(),
|
|
6909
|
-
decodedSubscribers: number(),
|
|
6910
6834
|
uptimeMs: number(),
|
|
6911
6835
|
bitrateKbps: number(),
|
|
6912
6836
|
idrIntervalMs: number(),
|
|
@@ -6919,14 +6843,6 @@ var BrokerStatsSchema = object({
|
|
|
6919
6843
|
preBufferMs: number(),
|
|
6920
6844
|
preBufferPackets: number(),
|
|
6921
6845
|
/**
|
|
6922
|
-
* Moleculer node id of the decoder provider currently servicing this
|
|
6923
|
-
* stream's decoded subscribers. `null` until the deferred decoder is
|
|
6924
|
-
* created (no decoded clients yet, or codec not detected). Surfaces the
|
|
6925
|
-
* runtime decoder placement so the UI can show "Decoder: <agent>" without
|
|
6926
|
-
* a separate cap call per broker.
|
|
6927
|
-
*/
|
|
6928
|
-
decoderNodeId: string().nullable(),
|
|
6929
|
-
/**
|
|
6930
6846
|
* Detected audio track parameters from the RTSP DESCRIBE / SDP. `null`
|
|
6931
6847
|
* when the stream has no audio track or the broker is in cold start.
|
|
6932
6848
|
* `supported = false` means the codec was detected but the local
|
|
@@ -10360,70 +10276,6 @@ var StorageLocationDeclarationSchema = object({
|
|
|
10360
10276
|
"backup"
|
|
10361
10277
|
]).optional()
|
|
10362
10278
|
});
|
|
10363
|
-
var DecoderStatsSchema = object({
|
|
10364
|
-
inputFps: number(),
|
|
10365
|
-
outputFps: number(),
|
|
10366
|
-
avgDecodeTimeMs: number(),
|
|
10367
|
-
droppedFrames: number(),
|
|
10368
|
-
/**
|
|
10369
|
-
* Pull-mode adaptive-fps telemetry (optional — only pull sessions run the
|
|
10370
|
-
* lag-driven controller; push sessions omit these). `lagMs` is the EWMA of
|
|
10371
|
-
* the decoder's real-time drift (rising = falling behind live); `adaptiveFps`
|
|
10372
|
-
* is the current lag-throttled emit rate (≤ `effectiveFps` ceiling).
|
|
10373
|
-
*/
|
|
10374
|
-
lagMs: number().optional(),
|
|
10375
|
-
effectiveFps: number().optional(),
|
|
10376
|
-
adaptiveFps: number().optional()
|
|
10377
|
-
});
|
|
10378
|
-
var DecoderSessionConfigSchema = object({
|
|
10379
|
-
codec: string(),
|
|
10380
|
-
maxFps: number().default(0),
|
|
10381
|
-
outputFormat: _enum([
|
|
10382
|
-
"jpeg",
|
|
10383
|
-
"rgb",
|
|
10384
|
-
"bgr",
|
|
10385
|
-
"yuv420",
|
|
10386
|
-
"gray"
|
|
10387
|
-
]).default("jpeg"),
|
|
10388
|
-
scale: number().default(1),
|
|
10389
|
-
width: number().optional(),
|
|
10390
|
-
height: number().optional(),
|
|
10391
|
-
/**
|
|
10392
|
-
* Identifier of the camera this decoder session serves. Optional
|
|
10393
|
-
* because the cap is generic (any caller could request decode), but
|
|
10394
|
-
* stream-broker passes it so decoder logs include `deviceId` for
|
|
10395
|
-
* per-camera filtering when diagnosing failures (e.g. node-av
|
|
10396
|
-
* sendPacket errors on a single hung camera).
|
|
10397
|
-
*/
|
|
10398
|
-
deviceId: number().int().nonnegative().optional(),
|
|
10399
|
-
/**
|
|
10400
|
-
* Free-form tag for log scoping. Stream-broker uses
|
|
10401
|
-
* `broker:<deviceId>/<profile>`. Decoder session logger surfaces it
|
|
10402
|
-
* on every line so `grep tag=broker:5/high` filters one camera
|
|
10403
|
-
* profile cleanly.
|
|
10404
|
-
*/
|
|
10405
|
-
tag: string().optional(),
|
|
10406
|
-
/**
|
|
10407
|
-
* Where the session delivers decoded frames (Phase 5 / D9):
|
|
10408
|
-
*
|
|
10409
|
-
* - `'callback'` (default) — the legacy pixel path: decoded frames are
|
|
10410
|
-
* buffered as `DecodedFrame`s and drained via `pullFrames`.
|
|
10411
|
-
* - `'shm'` — the shared-memory frame plane: decoded frames are written
|
|
10412
|
-
* into an OS shared-memory ring and drained as zero-pixel
|
|
10413
|
-
* `FrameHandle`s via `pullHandles`. A session is one mode or the
|
|
10414
|
-
* other — `pullFrames` returns nothing for an `'shm'` session and
|
|
10415
|
-
* `pullHandles` returns nothing for a `'callback'` session.
|
|
10416
|
-
*/
|
|
10417
|
-
frameSink: _enum(["callback", "shm"]).default("callback"),
|
|
10418
|
-
/**
|
|
10419
|
-
* Per-camera decoder DEBUG facility. When `true`, a pull-mode session emits
|
|
10420
|
-
* a throttled (~1Hz) structured `decoder debug` line (effective/adaptive fps,
|
|
10421
|
-
* real-time lag, dropped-frame delta, avg decode time, hwaccel). Mirrors the
|
|
10422
|
-
* stream-broker's `streamingDebug` gate — off by default so production logs
|
|
10423
|
-
* stay quiet and the emit path pays zero per-frame cost when disabled.
|
|
10424
|
-
*/
|
|
10425
|
-
debug: boolean().optional()
|
|
10426
|
-
});
|
|
10427
10279
|
/**
|
|
10428
10280
|
* Per-component log CHANNELS — the gate a hot path consults, and the registry
|
|
10429
10281
|
* an addon declares its channels in.
|
|
@@ -13027,13 +12879,6 @@ var BrokerRtspClientSchema = object({
|
|
|
13027
12879
|
lastRtpAt: number(),
|
|
13028
12880
|
bytesSent: number()
|
|
13029
12881
|
});
|
|
13030
|
-
var BrokerDecodedClientSchema = object({
|
|
13031
|
-
tag: string(),
|
|
13032
|
-
subscribedAt: number(),
|
|
13033
|
-
maxFps: number(),
|
|
13034
|
-
framesDelivered: number(),
|
|
13035
|
-
framesDropped: number()
|
|
13036
|
-
});
|
|
13037
12882
|
var BrokerAudioClientSchema = object({
|
|
13038
12883
|
tag: string(),
|
|
13039
12884
|
subscribedAt: number(),
|
|
@@ -13125,7 +12970,6 @@ var BrokerEncodedClientSchema = object({
|
|
|
13125
12970
|
});
|
|
13126
12971
|
var BrokerClientsSchema = object({
|
|
13127
12972
|
rtsp: array(BrokerRtspClientSchema).readonly(),
|
|
13128
|
-
decoded: array(BrokerDecodedClientSchema).readonly(),
|
|
13129
12973
|
audio: array(BrokerAudioClientSchema).readonly(),
|
|
13130
12974
|
encoded: array(BrokerEncodedClientSchema).readonly(),
|
|
13131
12975
|
pipeClients: number(),
|
|
@@ -13617,11 +13461,7 @@ var streamBrokerCapability = {
|
|
|
13617
13461
|
listClients: method(object({ brokerId: string() }), BrokerClientsSchema),
|
|
13618
13462
|
killClient: method(object({
|
|
13619
13463
|
brokerId: string(),
|
|
13620
|
-
channel: _enum([
|
|
13621
|
-
"rtsp",
|
|
13622
|
-
"decoded",
|
|
13623
|
-
"audio"
|
|
13624
|
-
]),
|
|
13464
|
+
channel: _enum(["rtsp", "audio"]),
|
|
13625
13465
|
handle: string()
|
|
13626
13466
|
}), object({ killed: boolean() }), {
|
|
13627
13467
|
kind: "mutation",
|
|
@@ -13720,31 +13560,6 @@ var streamBrokerCapability = {
|
|
|
13720
13560
|
maxCount: number().int().positive().default(8)
|
|
13721
13561
|
}), array(DecodedAudioChunkSchema).readonly()),
|
|
13722
13562
|
unsubscribeAudioChunks: method(object({ subscriptionId: string() }), object({ released: boolean() }), { kind: "mutation" }),
|
|
13723
|
-
/**
|
|
13724
|
-
* ── Shared-memory frame plane (Phase 5 / D9) ──────────────────────
|
|
13725
|
-
*
|
|
13726
|
-
* The handle-based replacement for the live-object `IStreamBroker.
|
|
13727
|
-
* onDecodedFrame` callback path. A consumer:
|
|
13728
|
-
*
|
|
13729
|
-
* 1. `subscribeFrames({ brokerId, format })` — the broker spins up
|
|
13730
|
-
* (or reuses) a `frameSink: 'shm'` decoder session producing that
|
|
13731
|
-
* `format` and returns a `subscriptionId`.
|
|
13732
|
-
* 2. polls `pullFrameHandles({ subscriptionId, maxCount })` — drains
|
|
13733
|
-
* zero-pixel `FrameHandle[]`; each handle is fed to a
|
|
13734
|
-
* `FrameRingReader` that opens the named shm segment and reads the
|
|
13735
|
-
* pixels back zero-copy.
|
|
13736
|
-
* 3. `unsubscribeFrames({ subscriptionId })` on teardown.
|
|
13737
|
-
*
|
|
13738
|
-
* The broker keeps one shm ring per `(brokerId, format)` actually
|
|
13739
|
-
* requested — no broker-side `sharp` conversion. fps throttling is
|
|
13740
|
-
* implicit (latest-wins ring reads drop frames for a slow consumer).
|
|
13741
|
-
*/
|
|
13742
|
-
subscribeFrames: method(SubscribeFramesInputSchema, SubscribeFramesResultSchema, { kind: "mutation" }),
|
|
13743
|
-
pullFrameHandles: method(object({
|
|
13744
|
-
subscriptionId: string(),
|
|
13745
|
-
maxCount: number().int().positive().default(4)
|
|
13746
|
-
}), array(FrameHandleSchema).readonly()),
|
|
13747
|
-
unsubscribeFrames: method(object({ subscriptionId: string() }), object({ released: boolean() }), { kind: "mutation" }),
|
|
13748
13563
|
setPreBufferDuration: method(object({
|
|
13749
13564
|
brokerId: string(),
|
|
13750
13565
|
seconds: number().min(0).max(30)
|
|
@@ -15460,72 +15275,18 @@ id: union([string(), number()]) }), {
|
|
|
15460
15275
|
})
|
|
15461
15276
|
}
|
|
15462
15277
|
};
|
|
15463
|
-
/**
|
|
15464
|
-
* shm ring usage stats for a `frameSink: 'shm'` decoder session —
|
|
15465
|
-
* exposed via `decoder.getShmStats` so downstream consumers can
|
|
15466
|
-
* observe ring pressure (slot count, byte budget, hit/miss ratio).
|
|
15467
|
-
*/
|
|
15468
|
-
var ShmRingStatsSchema = object({
|
|
15469
|
-
sessionId: string(),
|
|
15470
|
-
slotCount: number().int(),
|
|
15471
|
-
slotByteLength: number().int(),
|
|
15472
|
-
segmentBytes: number().int(),
|
|
15473
|
-
budgetMb: number().int(),
|
|
15474
|
-
framesWritten: number().int(),
|
|
15475
|
-
getFrameHits: number().int(),
|
|
15476
|
-
getFrameMisses: number().int()
|
|
15477
|
-
});
|
|
15478
15278
|
var decoderCapability = {
|
|
15479
15279
|
name: "decoder",
|
|
15480
15280
|
scope: "system",
|
|
15481
15281
|
mode: "singleton",
|
|
15482
15282
|
preferredProvider: "decoder-nodeav",
|
|
15483
15283
|
methods: {
|
|
15484
|
-
supportsCodec: method(object({ codec: string() }), boolean()),
|
|
15485
15284
|
getInfo: method(_void(), object({
|
|
15486
15285
|
id: string(),
|
|
15487
15286
|
name: string(),
|
|
15488
|
-
isPullMode: boolean().optional(),
|
|
15489
|
-
priority: number().optional(),
|
|
15490
15287
|
hwaccel: string().optional(),
|
|
15491
15288
|
probedBestHwaccel: string().optional()
|
|
15492
15289
|
})),
|
|
15493
|
-
createSession: method(DecoderSessionConfigSchema, object({
|
|
15494
|
-
sessionId: string(),
|
|
15495
|
-
nodeId: string()
|
|
15496
|
-
})),
|
|
15497
|
-
destroySession: method(object({ sessionId: string() }), _void()),
|
|
15498
|
-
pushPacket: method(object({
|
|
15499
|
-
sessionId: string(),
|
|
15500
|
-
packet: EncodedPacketSchema
|
|
15501
|
-
}), _void()),
|
|
15502
|
-
openStream: method(object({
|
|
15503
|
-
sessionId: string(),
|
|
15504
|
-
url: string()
|
|
15505
|
-
}), _void()),
|
|
15506
|
-
pullFrames: method(object({
|
|
15507
|
-
sessionId: string(),
|
|
15508
|
-
maxCount: number().default(1),
|
|
15509
|
-
waitMs: number().optional()
|
|
15510
|
-
}), array(DecodedFrameSchema)),
|
|
15511
|
-
pullHandles: method(object({
|
|
15512
|
-
sessionId: string(),
|
|
15513
|
-
maxCount: number().default(1),
|
|
15514
|
-
waitMs: number().optional()
|
|
15515
|
-
}), array(FrameHandleSchema)),
|
|
15516
|
-
getFrame: method(object({ handle: FrameHandleSchema }), DecodedFrameSchema.nullable()),
|
|
15517
|
-
getShmStats: method(object({ sessionId: string() }), ShmRingStatsSchema.nullable()),
|
|
15518
|
-
updateConfig: method(object({
|
|
15519
|
-
sessionId: string(),
|
|
15520
|
-
config: DecoderSessionConfigSchema.partial()
|
|
15521
|
-
}), _void()),
|
|
15522
|
-
getStats: method(object({ sessionId: string() }), DecoderStatsSchema),
|
|
15523
|
-
listActiveSessions: method(_void(), array(object({
|
|
15524
|
-
sessionId: string(),
|
|
15525
|
-
codec: string(),
|
|
15526
|
-
outputFormat: string(),
|
|
15527
|
-
createdAtMs: number()
|
|
15528
|
-
})).readonly()),
|
|
15529
15290
|
/**
|
|
15530
15291
|
* Re-run the host platform-probe for the decoder's hwaccel backend
|
|
15531
15292
|
* and write the detected value into the addon's own global
|
|
@@ -24767,8 +24528,8 @@ Object.freeze(Object.fromEntries([{
|
|
|
24767
24528
|
var CLUSTER_STEP_SETTING_FIELDS = [{
|
|
24768
24529
|
stepId: "face-embedding",
|
|
24769
24530
|
key: "minLandmarkFaceSize",
|
|
24770
|
-
label: "Min face size
|
|
24771
|
-
description: "
|
|
24531
|
+
label: "Min face size to embed (detection-frame px)",
|
|
24532
|
+
description: "Faces smaller than this in the small frame the detector sees are not embedded, so they can never be recognised. Below it the face cannot be aligned reliably and a bad embedding matches everyone. Same value on every node. 0 = no limit.",
|
|
24772
24533
|
type: "slider",
|
|
24773
24534
|
min: 0,
|
|
24774
24535
|
max: 64,
|
|
@@ -29343,14 +29104,15 @@ var RunnerLocalLoadSchema = object({
|
|
|
29343
29104
|
* Per-inference-device live load (multi-device C4). One entry per deviceKey
|
|
29344
29105
|
* this runner currently has attached cameras on, so the orchestrator's second
|
|
29345
29106
|
* `balance()` pass (over a node's devices) weights on real per-pool session
|
|
29346
|
-
* counts. Empty on single-device / pre-multi-device runners.
|
|
29347
|
-
* per
|
|
29107
|
+
* counts. Empty on single-device / pre-multi-device runners. There is no
|
|
29108
|
+
* per-device queue depth: the inference pool's backlog has no accessor, and
|
|
29109
|
+
* a field that always read 0 was removed rather than shown as a measurement
|
|
29110
|
+
* (D762).
|
|
29348
29111
|
*/
|
|
29349
29112
|
devices: array(object({
|
|
29350
29113
|
deviceKey: string(),
|
|
29351
29114
|
backend: string(),
|
|
29352
|
-
attachedCameras: number()
|
|
29353
|
-
queueDepthTotal: number()
|
|
29115
|
+
attachedCameras: number()
|
|
29354
29116
|
})).default([]),
|
|
29355
29117
|
/** Hardware capability flags reported by this node. */
|
|
29356
29118
|
hardware: object({
|
|
@@ -29865,7 +29627,10 @@ var PipelineAssignmentSchema = object({
|
|
|
29865
29627
|
});
|
|
29866
29628
|
/**
|
|
29867
29629
|
* Per-agent load summary surfaced to the load balancer + dashboards.
|
|
29868
|
-
* Aggregated from each runner's `getLocalLoad` cap call.
|
|
29630
|
+
* Aggregated from each runner's `getLocalLoad` cap call. In the
|
|
29631
|
+
* `getAgentLoad` report, a single-device node's default-pool sessions (no
|
|
29632
|
+
* `deviceKey`) are credited to its one eligible device in `load.devices` —
|
|
29633
|
+
* the default pool IS that device (D745); the balancer's census stays raw.
|
|
29869
29634
|
*/
|
|
29870
29635
|
var AgentLoadSummarySchema = object({
|
|
29871
29636
|
nodeId: string(),
|
|
@@ -29954,8 +29719,14 @@ var CameraBrokerStatusSchema = object({
|
|
|
29954
29719
|
width: number(),
|
|
29955
29720
|
height: number(),
|
|
29956
29721
|
subscribers: number(),
|
|
29957
|
-
|
|
29958
|
-
|
|
29722
|
+
/**
|
|
29723
|
+
* Encoded packets/s the broker receives from the camera. null when the
|
|
29724
|
+
* broker's stats read failed — unknown, never 0 (a 0 here reads as a stall).
|
|
29725
|
+
* There is no output rate: decoding runs in the session decode workers, not
|
|
29726
|
+
* in the broker, so the broker's own decoded-frame rate is 0 on every live
|
|
29727
|
+
* camera and is not served (D758).
|
|
29728
|
+
*/
|
|
29729
|
+
inFps: number().nullable()
|
|
29959
29730
|
})).readonly(),
|
|
29960
29731
|
webrtcSessions: number(),
|
|
29961
29732
|
rtspRestream: boolean()
|
|
@@ -33752,8 +33523,6 @@ var WebrtcStreamChoiceSchema = object({
|
|
|
33752
33523
|
]).nullable(),
|
|
33753
33524
|
/** Input FPS from the camera (null for adaptive). */
|
|
33754
33525
|
inputFps: number().nullable(),
|
|
33755
|
-
/** Decoded FPS (null for adaptive). */
|
|
33756
|
-
decodeFps: number().nullable(),
|
|
33757
33526
|
/** Bitrate in kbps (null for adaptive). */
|
|
33758
33527
|
bitrateKbps: number().nullable()
|
|
33759
33528
|
});
|
|
@@ -48343,90 +48112,18 @@ Object.freeze({
|
|
|
48343
48112
|
addonId: null,
|
|
48344
48113
|
access: "create"
|
|
48345
48114
|
},
|
|
48346
|
-
"decoder.createSession": {
|
|
48347
|
-
capName: "decoder",
|
|
48348
|
-
capScope: "system",
|
|
48349
|
-
addonId: null,
|
|
48350
|
-
access: "view"
|
|
48351
|
-
},
|
|
48352
|
-
"decoder.destroySession": {
|
|
48353
|
-
capName: "decoder",
|
|
48354
|
-
capScope: "system",
|
|
48355
|
-
addonId: null,
|
|
48356
|
-
access: "delete"
|
|
48357
|
-
},
|
|
48358
|
-
"decoder.getFrame": {
|
|
48359
|
-
capName: "decoder",
|
|
48360
|
-
capScope: "system",
|
|
48361
|
-
addonId: null,
|
|
48362
|
-
access: "view"
|
|
48363
|
-
},
|
|
48364
48115
|
"decoder.getInfo": {
|
|
48365
48116
|
capName: "decoder",
|
|
48366
48117
|
capScope: "system",
|
|
48367
48118
|
addonId: null,
|
|
48368
48119
|
access: "view"
|
|
48369
48120
|
},
|
|
48370
|
-
"decoder.getShmStats": {
|
|
48371
|
-
capName: "decoder",
|
|
48372
|
-
capScope: "system",
|
|
48373
|
-
addonId: null,
|
|
48374
|
-
access: "view"
|
|
48375
|
-
},
|
|
48376
|
-
"decoder.getStats": {
|
|
48377
|
-
capName: "decoder",
|
|
48378
|
-
capScope: "system",
|
|
48379
|
-
addonId: null,
|
|
48380
|
-
access: "view"
|
|
48381
|
-
},
|
|
48382
|
-
"decoder.listActiveSessions": {
|
|
48383
|
-
capName: "decoder",
|
|
48384
|
-
capScope: "system",
|
|
48385
|
-
addonId: null,
|
|
48386
|
-
access: "view"
|
|
48387
|
-
},
|
|
48388
|
-
"decoder.openStream": {
|
|
48389
|
-
capName: "decoder",
|
|
48390
|
-
capScope: "system",
|
|
48391
|
-
addonId: null,
|
|
48392
|
-
access: "view"
|
|
48393
|
-
},
|
|
48394
|
-
"decoder.pullFrames": {
|
|
48395
|
-
capName: "decoder",
|
|
48396
|
-
capScope: "system",
|
|
48397
|
-
addonId: null,
|
|
48398
|
-
access: "view"
|
|
48399
|
-
},
|
|
48400
|
-
"decoder.pullHandles": {
|
|
48401
|
-
capName: "decoder",
|
|
48402
|
-
capScope: "system",
|
|
48403
|
-
addonId: null,
|
|
48404
|
-
access: "view"
|
|
48405
|
-
},
|
|
48406
|
-
"decoder.pushPacket": {
|
|
48407
|
-
capName: "decoder",
|
|
48408
|
-
capScope: "system",
|
|
48409
|
-
addonId: null,
|
|
48410
|
-
access: "view"
|
|
48411
|
-
},
|
|
48412
48121
|
"decoder.reprobeHwaccel": {
|
|
48413
48122
|
capName: "decoder",
|
|
48414
48123
|
capScope: "system",
|
|
48415
48124
|
addonId: null,
|
|
48416
48125
|
access: "create"
|
|
48417
48126
|
},
|
|
48418
|
-
"decoder.supportsCodec": {
|
|
48419
|
-
capName: "decoder",
|
|
48420
|
-
capScope: "system",
|
|
48421
|
-
addonId: null,
|
|
48422
|
-
access: "view"
|
|
48423
|
-
},
|
|
48424
|
-
"decoder.updateConfig": {
|
|
48425
|
-
capName: "decoder",
|
|
48426
|
-
capScope: "system",
|
|
48427
|
-
addonId: null,
|
|
48428
|
-
access: "view"
|
|
48429
|
-
},
|
|
48430
48127
|
"detectionPipeline.applyDeviceSettingsPatch": {
|
|
48431
48128
|
capName: "detection-pipeline",
|
|
48432
48129
|
capScope: "device",
|
|
@@ -53473,12 +53170,6 @@ Object.freeze({
|
|
|
53473
53170
|
addonId: null,
|
|
53474
53171
|
access: "view"
|
|
53475
53172
|
},
|
|
53476
|
-
"streamBroker.pullFrameHandles": {
|
|
53477
|
-
capName: "stream-broker",
|
|
53478
|
-
capScope: "system",
|
|
53479
|
-
addonId: null,
|
|
53480
|
-
access: "view"
|
|
53481
|
-
},
|
|
53482
53173
|
"streamBroker.regenerateRtspToken": {
|
|
53483
53174
|
capName: "stream-broker",
|
|
53484
53175
|
capScope: "system",
|
|
@@ -53545,12 +53236,6 @@ Object.freeze({
|
|
|
53545
53236
|
addonId: null,
|
|
53546
53237
|
access: "create"
|
|
53547
53238
|
},
|
|
53548
|
-
"streamBroker.subscribeFrames": {
|
|
53549
|
-
capName: "stream-broker",
|
|
53550
|
-
capScope: "system",
|
|
53551
|
-
addonId: null,
|
|
53552
|
-
access: "create"
|
|
53553
|
-
},
|
|
53554
53239
|
"streamBroker.unassignProfile": {
|
|
53555
53240
|
capName: "stream-broker",
|
|
53556
53241
|
capScope: "system",
|
|
@@ -53563,12 +53248,6 @@ Object.freeze({
|
|
|
53563
53248
|
addonId: null,
|
|
53564
53249
|
access: "create"
|
|
53565
53250
|
},
|
|
53566
|
-
"streamBroker.unsubscribeFrames": {
|
|
53567
|
-
capName: "stream-broker",
|
|
53568
|
-
capScope: "system",
|
|
53569
|
-
addonId: null,
|
|
53570
|
-
access: "create"
|
|
53571
|
-
},
|
|
53572
53251
|
"streamCatalog.getCatalog": {
|
|
53573
53252
|
capName: "stream-catalog",
|
|
53574
53253
|
capScope: "device",
|
|
@@ -56258,11 +55937,6 @@ Object.freeze({
|
|
|
56258
55937
|
form: "single",
|
|
56259
55938
|
optional: false
|
|
56260
55939
|
}],
|
|
56261
|
-
"decoder.createSession": [{
|
|
56262
|
-
name: "deviceId",
|
|
56263
|
-
form: "single",
|
|
56264
|
-
optional: true
|
|
56265
|
-
}],
|
|
56266
55940
|
"detectionPipeline.applyDeviceSettingsPatch": [{
|
|
56267
55941
|
name: "deviceId",
|
|
56268
55942
|
form: "single",
|