@camstack/addon-pipeline 1.2.238 → 1.2.240
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/audio-analyzer/index.js +2 -2
- package/dist/audio-analyzer/index.mjs +2 -2
- package/dist/{default-detection-model-CDhXxOJQ.js → default-detection-model-DJkeAz6C.js} +1 -1
- package/dist/{default-detection-model-I8kuDTEi.mjs → default-detection-model-Dv2g-8oh.mjs} +1 -1
- package/dist/detection-pipeline/index.js +4 -4
- package/dist/detection-pipeline/index.mjs +4 -4
- package/dist/{dist-NX0e_oWp.js → dist-B9P1Ya2y.js} +23 -23
- package/dist/{dist-But4XMDJ.mjs → dist-DIsGbdn1.mjs} +24 -24
- package/dist/motion-wasm/index.js +1 -1
- package/dist/motion-wasm/index.mjs +1 -1
- package/dist/{node-BgM4n8D4.js → node-CLBXrI84.js} +1 -1
- package/dist/{node-BHxRrsoX.mjs → node-CiInWOoF.mjs} +1 -1
- package/dist/pipeline-runner/index.js +19 -15
- package/dist/pipeline-runner/index.mjs +19 -15
- package/dist/{process-memory-C3-EOjjf.mjs → process-memory-C-7H0mfd.mjs} +1 -1
- package/dist/{process-memory-C5_Mo9TI.js → process-memory-Cj9Baww4.js} +1 -1
- package/dist/recorder/index.js +2 -2
- package/dist/recorder/index.mjs +2 -2
- package/dist/{segment-demux-js-CVZACSOh.mjs → segment-demux-js-BB9vb34n.mjs} +1 -1
- package/dist/{segment-demux-js-BAD7i9RI.js → segment-demux-js-BiLMVPQy.js} +1 -1
- package/dist/session-decode/decode-worker-child.js +148 -3
- package/dist/session-decode/decode-worker-child.mjs +148 -3
- package/dist/stream-broker/{_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-DXlbqJea.mjs → _virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-Bi1AlQGX.mjs} +2 -2
- package/dist/stream-broker/demux-worker-child.js +1 -1
- package/dist/stream-broker/demux-worker-child.mjs +1 -1
- package/dist/stream-broker/{hostInit-hjR1kp3m.mjs → hostInit-dGR5o3xR.mjs} +2 -2
- package/dist/stream-broker/index.js +3 -3
- package/dist/stream-broker/index.mjs +3 -3
- package/dist/stream-broker/remoteEntry.js +1 -1
- package/package.json +1 -1
|
@@ -3,8 +3,8 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../chunk-emK7D4bc.js");
|
|
6
|
-
const require_dist = require("../dist-
|
|
7
|
-
const require_process_memory = require("../process-memory-
|
|
6
|
+
const require_dist = require("../dist-B9P1Ya2y.js");
|
|
7
|
+
const require_process_memory = require("../process-memory-Cj9Baww4.js");
|
|
8
8
|
let node_fs = require("node:fs");
|
|
9
9
|
node_fs = require_chunk.__toESM(node_fs);
|
|
10
10
|
let node_path = require("node:path");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { n as __require } from "../chunk-DnnnRqeS.mjs";
|
|
2
|
-
import { $t as hydrateSchema,
|
|
3
|
-
import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-
|
|
2
|
+
import { $t as hydrateSchema, Jt as audioChunkBytesPerSample, Lt as errMsg, N as audioAnalysisCapability, Ot as resolvePoolMemoryPolicy, P as audioAnalyzerCapability, Qt as expandAudioChunkToF32le, Wt as BaseAddon, bn as EventCategory, n as AUDIO_BACKEND_CHOICES, ot as mapAudioLabelToMacro, rn as nodePin, s as DEFAULT_AUDIO_ANALYZER_CONFIG, w as PoolMemoryWatchdog, y as HF_BASE_URL } from "../dist-DIsGbdn1.mjs";
|
|
3
|
+
import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-C-7H0mfd.mjs";
|
|
4
4
|
import * as fs from "node:fs";
|
|
5
5
|
import * as path$1 from "node:path";
|
|
6
6
|
import { downloadFile } from "@camstack/system/addon-utils";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { F as audioKindId, a as COCO_80_LABELS, o as COCO_TO_MACRO, r as AUDIO_MACRO_LABELS,
|
|
1
|
+
import { F as audioKindId, a as COCO_80_LABELS, o as COCO_TO_MACRO, r as AUDIO_MACRO_LABELS, tt as hfModelUrl } from "./dist-DIsGbdn1.mjs";
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
//#region src/detection-pipeline/pipeline/landmark-precision-gate.ts
|
|
4
4
|
/**
|
|
@@ -3,11 +3,11 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../chunk-emK7D4bc.js");
|
|
6
|
-
const require_dist = require("../dist-
|
|
7
|
-
const require_node = require("../node-
|
|
8
|
-
const require_default_detection_model = require("../default-detection-model-
|
|
6
|
+
const require_dist = require("../dist-B9P1Ya2y.js");
|
|
7
|
+
const require_node = require("../node-CLBXrI84.js");
|
|
8
|
+
const require_default_detection_model = require("../default-detection-model-DJkeAz6C.js");
|
|
9
9
|
const require_lazy_sharp = require("../lazy-sharp-BuwKlQLR.js");
|
|
10
|
-
const require_process_memory = require("../process-memory-
|
|
10
|
+
const require_process_memory = require("../process-memory-Cj9Baww4.js");
|
|
11
11
|
let node_os = require("node:os");
|
|
12
12
|
node_os = require_chunk.__toESM(node_os);
|
|
13
13
|
let node_fs = require("node:fs");
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { n as __require } from "../chunk-DnnnRqeS.mjs";
|
|
2
|
-
import { $t as hydrateSchema, At as
|
|
3
|
-
import { o as readProcessCost } from "../node-
|
|
4
|
-
import { a as ALL_PIPELINE_STEPS, c as getStep, d as landmarkPrecisionVerdict, l as getStepDefinition, n as resolveDefaultDetectionModel, o as ALL_STEPS, r as localFrameRegistry, s as getDefaultModelForFormat, u as resolveModelForFormat } from "../default-detection-model-
|
|
2
|
+
import { $t as hydrateSchema, At as runtimeDevices$1, Ft as supportedRuntimes$1, G as detectionPipelineCapability, J as enumerateInferenceDevices, Lt as errMsg, Ot as resolvePoolMemoryPolicy, Tt as resolveClusterStepModelId, V as defaultDeviceFor$1, Wt as BaseAddon, X as evaluateZoneRules, Yt as createEvent, bn as EventCategory, c as DEFAULT_CLUSTER_STEP_MODELS, gt as pickClusterStepSettings, hn as object, ht as pickClusterStepModels, in as parseJsonUnknown, it as loadContributionCapability, j as YAMNET_TO_MACRO, l as DEFAULT_CLUSTER_STEP_SETTINGS, ln as array, m as DEVICE_BACKEND_TO_FORMAT, nt as inferModelProvider, pt as overlayClusterStepSettings, rn as nodePin, sn as sleep, t as APPLE_SA_TO_MACRO, vn as string, w as PoolMemoryWatchdog, yn as union, yt as pipelineExecutorCapability } from "../dist-DIsGbdn1.mjs";
|
|
3
|
+
import { o as readProcessCost } from "../node-CiInWOoF.mjs";
|
|
4
|
+
import { a as ALL_PIPELINE_STEPS, c as getStep, d as landmarkPrecisionVerdict, l as getStepDefinition, n as resolveDefaultDetectionModel, o as ALL_STEPS, r as localFrameRegistry, s as getDefaultModelForFormat, u as resolveModelForFormat } from "../default-detection-model-Dv2g-8oh.mjs";
|
|
5
5
|
import { t as getSharp } from "../lazy-sharp-DXsqwpph.mjs";
|
|
6
|
-
import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-
|
|
6
|
+
import { n as pickNodePlatformArch, t as readProcessMemory } from "../process-memory-C-7H0mfd.mjs";
|
|
7
7
|
import * as os from "node:os";
|
|
8
8
|
import * as fs from "node:fs";
|
|
9
9
|
import * as path$1 from "node:path";
|
|
@@ -5360,7 +5360,7 @@ var ZodIssueCode = {
|
|
|
5360
5360
|
var ZodFirstPartyTypeKind;
|
|
5361
5361
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5362
5362
|
//#endregion
|
|
5363
|
-
//#region ../types/dist/sleep-
|
|
5363
|
+
//#region ../types/dist/sleep-B9qx0cEV.mjs
|
|
5364
5364
|
/**
|
|
5365
5365
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5366
5366
|
* window to float samples (D455).
|
|
@@ -7416,6 +7416,28 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
|
|
|
7416
7416
|
DeviceRole["GenericNotifier"] = "generic-notifier";
|
|
7417
7417
|
return DeviceRole;
|
|
7418
7418
|
}({});
|
|
7419
|
+
/**
|
|
7420
|
+
* Identity — preserves literal types for downstream inference.
|
|
7421
|
+
*
|
|
7422
|
+
* The constraint is `Record<string, unknown>` (not `CustomActionsSpec`) so
|
|
7423
|
+
* TypeScript does not widen each entry's literal `kind`/`auth` fields to
|
|
7424
|
+
* the broader unions declared on `CustomActionSpec`'s default generics.
|
|
7425
|
+
* Shape validity is enforced separately by the `customAction(...)` helper
|
|
7426
|
+
* whose return type is already a `CustomActionSpec<...>`.
|
|
7427
|
+
*/
|
|
7428
|
+
function defineCustomActions(spec) {
|
|
7429
|
+
return spec;
|
|
7430
|
+
}
|
|
7431
|
+
function customAction(input, output, options) {
|
|
7432
|
+
return {
|
|
7433
|
+
input,
|
|
7434
|
+
output,
|
|
7435
|
+
kind: options?.kind ?? "query",
|
|
7436
|
+
auth: options?.auth ?? "protected",
|
|
7437
|
+
scope: options?.scope ?? { kind: "system" },
|
|
7438
|
+
...options?.caller ? { caller: "required" } : {}
|
|
7439
|
+
};
|
|
7440
|
+
}
|
|
7419
7441
|
var StaticDirOutputSchema = object({ staticDir: string() });
|
|
7420
7442
|
var VersionOutputSchema = object({ version: string() });
|
|
7421
7443
|
method(_void(), StaticDirOutputSchema, { auth: "admin" }), method(_void(), VersionOutputSchema, { auth: "admin" });
|
|
@@ -14650,28 +14672,6 @@ method(object({}), object({ blocks: array(CoreBlockSchema) }), { auth: "admin" }
|
|
|
14650
14672
|
content: string()
|
|
14651
14673
|
})) }), { auth: "admin" });
|
|
14652
14674
|
/**
|
|
14653
|
-
* Identity — preserves literal types for downstream inference.
|
|
14654
|
-
*
|
|
14655
|
-
* The constraint is `Record<string, unknown>` (not `CustomActionsSpec`) so
|
|
14656
|
-
* TypeScript does not widen each entry's literal `kind`/`auth` fields to
|
|
14657
|
-
* the broader unions declared on `CustomActionSpec`'s default generics.
|
|
14658
|
-
* Shape validity is enforced separately by the `customAction(...)` helper
|
|
14659
|
-
* whose return type is already a `CustomActionSpec<...>`.
|
|
14660
|
-
*/
|
|
14661
|
-
function defineCustomActions(spec) {
|
|
14662
|
-
return spec;
|
|
14663
|
-
}
|
|
14664
|
-
function customAction(input, output, options) {
|
|
14665
|
-
return {
|
|
14666
|
-
input,
|
|
14667
|
-
output,
|
|
14668
|
-
kind: options?.kind ?? "query",
|
|
14669
|
-
auth: options?.auth ?? "protected",
|
|
14670
|
-
scope: options?.scope ?? { kind: "system" },
|
|
14671
|
-
...options?.caller ? { caller: "required" } : {}
|
|
14672
|
-
};
|
|
14673
|
-
}
|
|
14674
|
-
/**
|
|
14675
14675
|
* `custom-model-registry` — collection cap exposing operator-registered
|
|
14676
14676
|
* custom detection models. Each provider (today: `addon-model-studio`)
|
|
14677
14677
|
* contributes a list of `CustomModelDescriptor`s; the hub auto-concatenates
|
|
@@ -5360,7 +5360,7 @@ var ZodIssueCode = {
|
|
|
5360
5360
|
var ZodFirstPartyTypeKind;
|
|
5361
5361
|
ZodFirstPartyTypeKind || (ZodFirstPartyTypeKind = {});
|
|
5362
5362
|
//#endregion
|
|
5363
|
-
//#region ../types/dist/sleep-
|
|
5363
|
+
//#region ../types/dist/sleep-B9qx0cEV.mjs
|
|
5364
5364
|
/**
|
|
5365
5365
|
* The audio chunk plane's byte format, and the ONE expansion from a coded
|
|
5366
5366
|
* window to float samples (D455).
|
|
@@ -7416,6 +7416,28 @@ var DeviceRole = /* @__PURE__ */ function(DeviceRole) {
|
|
|
7416
7416
|
DeviceRole["GenericNotifier"] = "generic-notifier";
|
|
7417
7417
|
return DeviceRole;
|
|
7418
7418
|
}({});
|
|
7419
|
+
/**
|
|
7420
|
+
* Identity — preserves literal types for downstream inference.
|
|
7421
|
+
*
|
|
7422
|
+
* The constraint is `Record<string, unknown>` (not `CustomActionsSpec`) so
|
|
7423
|
+
* TypeScript does not widen each entry's literal `kind`/`auth` fields to
|
|
7424
|
+
* the broader unions declared on `CustomActionSpec`'s default generics.
|
|
7425
|
+
* Shape validity is enforced separately by the `customAction(...)` helper
|
|
7426
|
+
* whose return type is already a `CustomActionSpec<...>`.
|
|
7427
|
+
*/
|
|
7428
|
+
function defineCustomActions(spec) {
|
|
7429
|
+
return spec;
|
|
7430
|
+
}
|
|
7431
|
+
function customAction(input, output, options) {
|
|
7432
|
+
return {
|
|
7433
|
+
input,
|
|
7434
|
+
output,
|
|
7435
|
+
kind: options?.kind ?? "query",
|
|
7436
|
+
auth: options?.auth ?? "protected",
|
|
7437
|
+
scope: options?.scope ?? { kind: "system" },
|
|
7438
|
+
...options?.caller ? { caller: "required" } : {}
|
|
7439
|
+
};
|
|
7440
|
+
}
|
|
7419
7441
|
var StaticDirOutputSchema = object({ staticDir: string() });
|
|
7420
7442
|
var VersionOutputSchema = object({ version: string() });
|
|
7421
7443
|
method(_void(), StaticDirOutputSchema, { auth: "admin" }), method(_void(), VersionOutputSchema, { auth: "admin" });
|
|
@@ -14650,28 +14672,6 @@ method(object({}), object({ blocks: array(CoreBlockSchema) }), { auth: "admin" }
|
|
|
14650
14672
|
content: string()
|
|
14651
14673
|
})) }), { auth: "admin" });
|
|
14652
14674
|
/**
|
|
14653
|
-
* Identity — preserves literal types for downstream inference.
|
|
14654
|
-
*
|
|
14655
|
-
* The constraint is `Record<string, unknown>` (not `CustomActionsSpec`) so
|
|
14656
|
-
* TypeScript does not widen each entry's literal `kind`/`auth` fields to
|
|
14657
|
-
* the broader unions declared on `CustomActionSpec`'s default generics.
|
|
14658
|
-
* Shape validity is enforced separately by the `customAction(...)` helper
|
|
14659
|
-
* whose return type is already a `CustomActionSpec<...>`.
|
|
14660
|
-
*/
|
|
14661
|
-
function defineCustomActions(spec) {
|
|
14662
|
-
return spec;
|
|
14663
|
-
}
|
|
14664
|
-
function customAction(input, output, options) {
|
|
14665
|
-
return {
|
|
14666
|
-
input,
|
|
14667
|
-
output,
|
|
14668
|
-
kind: options?.kind ?? "query",
|
|
14669
|
-
auth: options?.auth ?? "protected",
|
|
14670
|
-
scope: options?.scope ?? { kind: "system" },
|
|
14671
|
-
...options?.caller ? { caller: "required" } : {}
|
|
14672
|
-
};
|
|
14673
|
-
}
|
|
14674
|
-
/**
|
|
14675
14675
|
* `custom-model-registry` — collection cap exposing operator-registered
|
|
14676
14676
|
* custom detection models. Each provider (today: `addon-model-studio`)
|
|
14677
14677
|
* contributes a list of `CustomModelDescriptor`s; the hub auto-concatenates
|
|
@@ -44379,4 +44379,4 @@ function enumerateInferenceDevices(hw) {
|
|
|
44379
44379
|
return out;
|
|
44380
44380
|
}
|
|
44381
44381
|
//#endregion
|
|
44382
|
-
export {
|
|
44382
|
+
export { failureContributionCapability as $, hydrateSchema as $t, RingBuffer as A, runtimeDevices as At, declareLogChannel as B, buildFfmpegArgs as Bt, OpsLogEntrySchema as C, recordingExportCapability as Ct, RECORDING_EXPORT_MAX_READ_BYTES as D, resolveLocationMode as Dt, RATE_CONTROL_TIGHT as E, resolveEgressDecodeHwAccel as Et, audioKindId as F, supportedRuntimes as Ft, detectionPipelineCapability as G, CAM_PROFILE_ORDER as Gt, deriveBatteryPresence as H, isSoftwareDecode as Ht, batteryCapability as I, webrtcSessionCapability as It, enumerateInferenceDevices as J, audioChunkBytesPerSample as Jt, egressTranscodeSharingKey as K, DeviceFeature as Kt, cameraStreamsCapability as L, errMsg as Lt, addonWidgetsSourceCapability as M, storageOccupancyCapability as Mt, audioAnalysisCapability as N, streamBrokerCapability as Nt, RecordingConfigSchema as O, resolvePoolMemoryPolicy as Ot, audioAnalyzerCapability as P, stripRetiredBandPreBufferSec as Pt, evictionPolicyOfLocation as Q, expandAudioChunkToF32le as Qt, createHwAccelCache as R, AUDIO_PRESETS as Rt, NativeLeaseSettingsSchema as S, recordingCapability as St, RATE_CONTROL_RELAXED as T, resolveClusterStepModelId as Tt, deriveDetailCropRect as U, BOOT_RECOVERY_BACKOFF_MS as Ut, defaultDeviceFor as V, invocationFromEncodeProfile as Vt, deriveRecordingMode as W, BaseAddon as Wt, evaluateZoneRules as X, customAction as Xt, evaluateSensorEdge as Y, createEvent as Yt, evictionPolicyForMode as Z, defineCustomActions as Zt, FailureCounters as _, record as _n, pickDetailCropConvention as _t, COCO_80_LABELS as a, parseProfileBrokerId as an, logChannelsCapability as at, MOTION_CLOSE_AFTER_MS as b, EventCategory as bn, pipelineRunnerCapability as bt, DEFAULT_CLUSTER_STEP_MODELS as c, _enum as cn, mayReadLocation as ct, DEFAULT_EVENTS_BAND_BUFFER_SEC as d, discriminatedUnion as dn, modeMayWrite as dt, isEvent as en, gbToBytes as et, DEFAULT_FIRST_SIGHTING_FRESHNESS_MS as f, lazy as fn, motionDetectionCapability as ft, ExportRecordSchema as g, preprocess as gn, pickClusterStepSettings as gt, EncodeProfileSchema as h, object as hn, pickClusterStepModels as ht, BatteryStatusSchema as i, parseJsonUnknown as in, loadContributionCapability as it, YAMNET_TO_MACRO as j, storageEvictableCapability as jt, RecordingSignalStatusSchema as k, resolveRecordingProfiles as kt, DEFAULT_CLUSTER_STEP_SETTINGS as l, array as ln, mayWriteToLocation as lt, DEVICE_BACKEND_TO_FORMAT as m, number as mn, parseProcStatus as mt, AUDIO_BACKEND_CHOICES as n, makeSourceBrokerId as nn, inferModelProvider as nt, COCO_TO_MACRO as o, selectAssignedProfileSlots as on, mapAudioLabelToMacro as ot, DEFAULT_NATIVE_LEASE_SETTINGS as p, literal as pn, overlayClusterStepSettings as pt, egressTransportFromRequest as q, DeviceType as qt, AUDIO_MACRO_LABELS as r, nodePin as rn, isFirstLevelMacroClass as rt, DEFAULT_AUDIO_ANALYZER_CONFIG as s, sleep as sn, maskUrlCredentials as st, APPLE_SA_TO_MACRO as t, makeProfileBrokerId as tn, hfModelUrl as tt, DEFAULT_DETAIL_CROP_CONVENTION as u, boolean as un, migrateLegacyDeviceSignalConfig as ut, G711_SCALE_CORRECTION_DB as v, string as vn, pickNativeLeaseOverride as vt, PoolMemoryWatchdog as w, recordingSignalCapability as wt, NativeLeaseAdmissionSchema as x, rankStreams as xt, HF_BASE_URL as y, union as yn, pipelineExecutorCapability as yt, createLogChannelsProvider as z, Fmp4BoxSplitter as zt };
|
|
@@ -2,7 +2,7 @@ Object.defineProperties(exports, {
|
|
|
2
2
|
__esModule: { value: true },
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
|
-
const require_dist = require("../dist-
|
|
5
|
+
const require_dist = require("../dist-B9P1Ya2y.js");
|
|
6
6
|
const require_lazy_sharp = require("../lazy-sharp-BuwKlQLR.js");
|
|
7
7
|
let node_fs = require("node:fs");
|
|
8
8
|
let node_path = require("node:path");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $t as hydrateSchema,
|
|
1
|
+
import { $t as hydrateSchema, Wt as BaseAddon, X as evaluateZoneRules, ft as motionDetectionCapability, qt as DeviceType } from "../dist-DIsGbdn1.mjs";
|
|
2
2
|
import { t as getSharp } from "../lazy-sharp-DXsqwpph.mjs";
|
|
3
3
|
import { readFileSync } from "node:fs";
|
|
4
4
|
import { join } from "node:path";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const require_chunk = require("./chunk-emK7D4bc.js");
|
|
2
|
-
const require_dist = require("./dist-
|
|
2
|
+
const require_dist = require("./dist-B9P1Ya2y.js");
|
|
3
3
|
let node_crypto = require("node:crypto");
|
|
4
4
|
let node_fs = require("node:fs");
|
|
5
5
|
node_fs = require_chunk.__toESM(node_fs, 1);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Bt as buildFfmpegArgs, Ht as isSoftwareDecode, Lt as errMsg, zt as Fmp4BoxSplitter } from "./dist-DIsGbdn1.mjs";
|
|
2
2
|
import { randomUUID } from "node:crypto";
|
|
3
3
|
import { realpathSync } from "node:fs";
|
|
4
4
|
import path from "node:path";
|
|
@@ -3,9 +3,9 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../chunk-emK7D4bc.js");
|
|
6
|
-
const require_dist = require("../dist-
|
|
7
|
-
const require_node = require("../node-
|
|
8
|
-
const require_default_detection_model = require("../default-detection-model-
|
|
6
|
+
const require_dist = require("../dist-B9P1Ya2y.js");
|
|
7
|
+
const require_node = require("../node-CLBXrI84.js");
|
|
8
|
+
const require_default_detection_model = require("../default-detection-model-DJkeAz6C.js");
|
|
9
9
|
const require_worker_protocol = require("../worker-protocol-B2MfQLlu.js");
|
|
10
10
|
const require_hub_hostname = require("../hub-hostname-DAJXlOgV.js");
|
|
11
11
|
const require_lazy_sharp = require("../lazy-sharp-BuwKlQLR.js");
|
|
@@ -5644,7 +5644,8 @@ var TIMED_OUT = Symbol("inference-timed-out");
|
|
|
5644
5644
|
function ownDetectionEntry(entry) {
|
|
5645
5645
|
return {
|
|
5646
5646
|
frame: ownFrame(entry.frame),
|
|
5647
|
-
handle: entry.handle
|
|
5647
|
+
handle: entry.handle,
|
|
5648
|
+
...entry.occasion !== void 0 ? { occasion: entry.occasion } : {}
|
|
5648
5649
|
};
|
|
5649
5650
|
}
|
|
5650
5651
|
/**
|
|
@@ -5824,7 +5825,7 @@ var PipelineRunner = class {
|
|
|
5824
5825
|
occupancyTimer: null,
|
|
5825
5826
|
motionInFlight: false,
|
|
5826
5827
|
lastResultDetections: 0,
|
|
5827
|
-
occupancyArmed:
|
|
5828
|
+
occupancyArmed: true,
|
|
5828
5829
|
emptyBurstStreak: 0
|
|
5829
5830
|
};
|
|
5830
5831
|
this.cameras.set(deviceId, state);
|
|
@@ -5999,7 +6000,8 @@ var PipelineRunner = class {
|
|
|
5999
6000
|
frame._enqueuedAt = Date.now();
|
|
6000
6001
|
state.detectionQueue.enqueue({
|
|
6001
6002
|
frame,
|
|
6002
|
-
handle
|
|
6003
|
+
handle,
|
|
6004
|
+
occasion: "burst"
|
|
6003
6005
|
});
|
|
6004
6006
|
return true;
|
|
6005
6007
|
}
|
|
@@ -6018,7 +6020,8 @@ var PipelineRunner = class {
|
|
|
6018
6020
|
frame._enqueuedAt = Date.now();
|
|
6019
6021
|
state.detectionQueue.enqueue({
|
|
6020
6022
|
frame,
|
|
6021
|
-
handle
|
|
6023
|
+
handle,
|
|
6024
|
+
occasion: "burst"
|
|
6022
6025
|
});
|
|
6023
6026
|
return true;
|
|
6024
6027
|
}
|
|
@@ -6310,7 +6313,7 @@ var PipelineRunner = class {
|
|
|
6310
6313
|
state.processedCount++;
|
|
6311
6314
|
if (result) {
|
|
6312
6315
|
if (result.shed === true) state.shedFrames++;
|
|
6313
|
-
await this.notifyCallbacks(deviceId, frame, plan.runsOnboard ? this.mergeOnboardDetections(state, result, frame) : result, streamType, handle, "pipeline");
|
|
6316
|
+
await this.notifyCallbacks(deviceId, frame, plan.runsOnboard ? this.mergeOnboardDetections(state, result, frame) : result, streamType, handle, "pipeline", entry.occasion ?? "session");
|
|
6314
6317
|
frameReleaseReason = "success";
|
|
6315
6318
|
const emittedAt = Date.now();
|
|
6316
6319
|
const capturedAt = frame.capturedAt;
|
|
@@ -6403,7 +6406,7 @@ var PipelineRunner = class {
|
|
|
6403
6406
|
detections: pairing.detections
|
|
6404
6407
|
};
|
|
6405
6408
|
state.lastResultDetections = pairing.detections.length;
|
|
6406
|
-
await this.notifyCallbacks(deviceId, frame, result, streamType, handle, "onboard");
|
|
6409
|
+
await this.notifyCallbacks(deviceId, frame, result, streamType, handle, "onboard", entry.occasion ?? "session");
|
|
6407
6410
|
frameReleaseReason = "success";
|
|
6408
6411
|
} catch {
|
|
6409
6412
|
frameReleaseReason = "error";
|
|
@@ -6532,9 +6535,9 @@ var PipelineRunner = class {
|
|
|
6532
6535
|
});
|
|
6533
6536
|
}
|
|
6534
6537
|
}
|
|
6535
|
-
async notifyCallbacks(deviceId, frame, result, streamType, handle, source) {
|
|
6538
|
+
async notifyCallbacks(deviceId, frame, result, streamType, handle, source, occasion) {
|
|
6536
6539
|
for (const callback of this.resultCallbacks) try {
|
|
6537
|
-
await callback(deviceId, frame, result, streamType, handle, source);
|
|
6540
|
+
await callback(deviceId, frame, result, streamType, handle, source, occasion);
|
|
6538
6541
|
} catch {}
|
|
6539
6542
|
}
|
|
6540
6543
|
pickNextDetectionFrame() {
|
|
@@ -7615,11 +7618,11 @@ var PipelineRunnerAddon = class PipelineRunnerAddon extends require_dist.BaseAdd
|
|
|
7615
7618
|
this.runner.onDetectionStreamChange((deviceId, action) => {
|
|
7616
7619
|
this.handleDetectionStreamChange(deviceId, action);
|
|
7617
7620
|
});
|
|
7618
|
-
this.runner.onResult(async (deviceId, frame, result, _streamType, handle, source) => {
|
|
7621
|
+
this.runner.onResult(async (deviceId, frame, result, _streamType, handle, source, occasion) => {
|
|
7619
7622
|
this.retention?.noteInferenceResult(deviceId, handle, result);
|
|
7620
7623
|
this.cutSubjectTiles(deviceId, result, handle);
|
|
7621
7624
|
const carried = await this.attachBirthEvidence(deviceId, frame, result);
|
|
7622
|
-
this.emitInferenceResult(deviceId, frame, carried, handle, source);
|
|
7625
|
+
this.emitInferenceResult(deviceId, frame, carried, handle, source, occasion);
|
|
7623
7626
|
const detectionCount = result.detections?.length ?? 0;
|
|
7624
7627
|
this.runner?.noteDetectionResult(deviceId, detectionCount);
|
|
7625
7628
|
if (detectionCount > 0 && this.occupancyBurstInFlight.has(deviceId)) this.occupancyBurstFound.add(deviceId);
|
|
@@ -10828,7 +10831,7 @@ var PipelineRunnerAddon = class PipelineRunnerAddon extends require_dist.BaseAdd
|
|
|
10828
10831
|
teardown();
|
|
10829
10832
|
}
|
|
10830
10833
|
}
|
|
10831
|
-
emitInferenceResult(deviceId, frame, result, handle, source) {
|
|
10834
|
+
emitInferenceResult(deviceId, frame, result, handle, source, occasion) {
|
|
10832
10835
|
if (!this.ctx?.eventBus) return;
|
|
10833
10836
|
const capturedAt = frame.capturedAt;
|
|
10834
10837
|
const detailSteps = this.attached.get(deviceId)?.detailSteps;
|
|
@@ -10840,7 +10843,8 @@ var PipelineRunnerAddon = class PipelineRunnerAddon extends require_dist.BaseAdd
|
|
|
10840
10843
|
emittedAt: Date.now(),
|
|
10841
10844
|
...typeof capturedAt === "number" && capturedAt > 0 ? { capturedAt } : {},
|
|
10842
10845
|
...detailSteps && detailSteps.length > 0 ? { detailSteps } : {},
|
|
10843
|
-
source
|
|
10846
|
+
source,
|
|
10847
|
+
occasion
|
|
10844
10848
|
};
|
|
10845
10849
|
this.ctx.eventBus.emit(require_dist.createEvent(require_dist.EventCategory.PipelineInferenceResult, {
|
|
10846
10850
|
type: "device",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { i as NO_COST_CLAIM, t as ChildCostRegistry } from "../node-
|
|
3
|
-
import { i as resolveFrameViewGeometry, l as getStepDefinition, r as localFrameRegistry } from "../default-detection-model-
|
|
1
|
+
import { $ as failureContributionCapability, Lt as errMsg, S as NativeLeaseSettingsSchema, U as deriveDetailCropRect, Wt as BaseAddon, Xt as customAction, Yt as createEvent, Zt as defineCustomActions, _ as FailureCounters, _t as pickDetailCropConvention, b as MOTION_CLOSE_AFTER_MS, bn as EventCategory, bt as pipelineRunnerCapability, cn as _enum, fn as lazy, hn as object, it as loadContributionCapability, ln as array, m as DEVICE_BACKEND_TO_FORMAT, mn as number, p as DEFAULT_NATIVE_LEASE_SETTINGS, pn as literal, rn as nodePin, u as DEFAULT_DETAIL_CROP_CONVENTION, un as boolean, vn as string, vt as pickNativeLeaseOverride, x as NativeLeaseAdmissionSchema } from "../dist-DIsGbdn1.mjs";
|
|
2
|
+
import { i as NO_COST_CLAIM, t as ChildCostRegistry } from "../node-CiInWOoF.mjs";
|
|
3
|
+
import { i as resolveFrameViewGeometry, l as getStepDefinition, r as localFrameRegistry } from "../default-detection-model-Dv2g-8oh.mjs";
|
|
4
4
|
import { t as isWorkerReply } from "../worker-protocol-C_W-P_g-.mjs";
|
|
5
5
|
import { t as resolveHubHostname } from "../hub-hostname-cCknRYKj.mjs";
|
|
6
6
|
import { t as getSharp } from "../lazy-sharp-DXsqwpph.mjs";
|
|
@@ -5636,7 +5636,8 @@ var TIMED_OUT = Symbol("inference-timed-out");
|
|
|
5636
5636
|
function ownDetectionEntry(entry) {
|
|
5637
5637
|
return {
|
|
5638
5638
|
frame: ownFrame(entry.frame),
|
|
5639
|
-
handle: entry.handle
|
|
5639
|
+
handle: entry.handle,
|
|
5640
|
+
...entry.occasion !== void 0 ? { occasion: entry.occasion } : {}
|
|
5640
5641
|
};
|
|
5641
5642
|
}
|
|
5642
5643
|
/**
|
|
@@ -5816,7 +5817,7 @@ var PipelineRunner = class {
|
|
|
5816
5817
|
occupancyTimer: null,
|
|
5817
5818
|
motionInFlight: false,
|
|
5818
5819
|
lastResultDetections: 0,
|
|
5819
|
-
occupancyArmed:
|
|
5820
|
+
occupancyArmed: true,
|
|
5820
5821
|
emptyBurstStreak: 0
|
|
5821
5822
|
};
|
|
5822
5823
|
this.cameras.set(deviceId, state);
|
|
@@ -5991,7 +5992,8 @@ var PipelineRunner = class {
|
|
|
5991
5992
|
frame._enqueuedAt = Date.now();
|
|
5992
5993
|
state.detectionQueue.enqueue({
|
|
5993
5994
|
frame,
|
|
5994
|
-
handle
|
|
5995
|
+
handle,
|
|
5996
|
+
occasion: "burst"
|
|
5995
5997
|
});
|
|
5996
5998
|
return true;
|
|
5997
5999
|
}
|
|
@@ -6010,7 +6012,8 @@ var PipelineRunner = class {
|
|
|
6010
6012
|
frame._enqueuedAt = Date.now();
|
|
6011
6013
|
state.detectionQueue.enqueue({
|
|
6012
6014
|
frame,
|
|
6013
|
-
handle
|
|
6015
|
+
handle,
|
|
6016
|
+
occasion: "burst"
|
|
6014
6017
|
});
|
|
6015
6018
|
return true;
|
|
6016
6019
|
}
|
|
@@ -6302,7 +6305,7 @@ var PipelineRunner = class {
|
|
|
6302
6305
|
state.processedCount++;
|
|
6303
6306
|
if (result) {
|
|
6304
6307
|
if (result.shed === true) state.shedFrames++;
|
|
6305
|
-
await this.notifyCallbacks(deviceId, frame, plan.runsOnboard ? this.mergeOnboardDetections(state, result, frame) : result, streamType, handle, "pipeline");
|
|
6308
|
+
await this.notifyCallbacks(deviceId, frame, plan.runsOnboard ? this.mergeOnboardDetections(state, result, frame) : result, streamType, handle, "pipeline", entry.occasion ?? "session");
|
|
6306
6309
|
frameReleaseReason = "success";
|
|
6307
6310
|
const emittedAt = Date.now();
|
|
6308
6311
|
const capturedAt = frame.capturedAt;
|
|
@@ -6395,7 +6398,7 @@ var PipelineRunner = class {
|
|
|
6395
6398
|
detections: pairing.detections
|
|
6396
6399
|
};
|
|
6397
6400
|
state.lastResultDetections = pairing.detections.length;
|
|
6398
|
-
await this.notifyCallbacks(deviceId, frame, result, streamType, handle, "onboard");
|
|
6401
|
+
await this.notifyCallbacks(deviceId, frame, result, streamType, handle, "onboard", entry.occasion ?? "session");
|
|
6399
6402
|
frameReleaseReason = "success";
|
|
6400
6403
|
} catch {
|
|
6401
6404
|
frameReleaseReason = "error";
|
|
@@ -6524,9 +6527,9 @@ var PipelineRunner = class {
|
|
|
6524
6527
|
});
|
|
6525
6528
|
}
|
|
6526
6529
|
}
|
|
6527
|
-
async notifyCallbacks(deviceId, frame, result, streamType, handle, source) {
|
|
6530
|
+
async notifyCallbacks(deviceId, frame, result, streamType, handle, source, occasion) {
|
|
6528
6531
|
for (const callback of this.resultCallbacks) try {
|
|
6529
|
-
await callback(deviceId, frame, result, streamType, handle, source);
|
|
6532
|
+
await callback(deviceId, frame, result, streamType, handle, source, occasion);
|
|
6530
6533
|
} catch {}
|
|
6531
6534
|
}
|
|
6532
6535
|
pickNextDetectionFrame() {
|
|
@@ -7607,11 +7610,11 @@ var PipelineRunnerAddon = class PipelineRunnerAddon extends BaseAddon {
|
|
|
7607
7610
|
this.runner.onDetectionStreamChange((deviceId, action) => {
|
|
7608
7611
|
this.handleDetectionStreamChange(deviceId, action);
|
|
7609
7612
|
});
|
|
7610
|
-
this.runner.onResult(async (deviceId, frame, result, _streamType, handle, source) => {
|
|
7613
|
+
this.runner.onResult(async (deviceId, frame, result, _streamType, handle, source, occasion) => {
|
|
7611
7614
|
this.retention?.noteInferenceResult(deviceId, handle, result);
|
|
7612
7615
|
this.cutSubjectTiles(deviceId, result, handle);
|
|
7613
7616
|
const carried = await this.attachBirthEvidence(deviceId, frame, result);
|
|
7614
|
-
this.emitInferenceResult(deviceId, frame, carried, handle, source);
|
|
7617
|
+
this.emitInferenceResult(deviceId, frame, carried, handle, source, occasion);
|
|
7615
7618
|
const detectionCount = result.detections?.length ?? 0;
|
|
7616
7619
|
this.runner?.noteDetectionResult(deviceId, detectionCount);
|
|
7617
7620
|
if (detectionCount > 0 && this.occupancyBurstInFlight.has(deviceId)) this.occupancyBurstFound.add(deviceId);
|
|
@@ -10820,7 +10823,7 @@ var PipelineRunnerAddon = class PipelineRunnerAddon extends BaseAddon {
|
|
|
10820
10823
|
teardown();
|
|
10821
10824
|
}
|
|
10822
10825
|
}
|
|
10823
|
-
emitInferenceResult(deviceId, frame, result, handle, source) {
|
|
10826
|
+
emitInferenceResult(deviceId, frame, result, handle, source, occasion) {
|
|
10824
10827
|
if (!this.ctx?.eventBus) return;
|
|
10825
10828
|
const capturedAt = frame.capturedAt;
|
|
10826
10829
|
const detailSteps = this.attached.get(deviceId)?.detailSteps;
|
|
@@ -10832,7 +10835,8 @@ var PipelineRunnerAddon = class PipelineRunnerAddon extends BaseAddon {
|
|
|
10832
10835
|
emittedAt: Date.now(),
|
|
10833
10836
|
...typeof capturedAt === "number" && capturedAt > 0 ? { capturedAt } : {},
|
|
10834
10837
|
...detailSteps && detailSteps.length > 0 ? { detailSteps } : {},
|
|
10835
|
-
source
|
|
10838
|
+
source,
|
|
10839
|
+
occasion
|
|
10836
10840
|
};
|
|
10837
10841
|
this.ctx.eventBus.emit(createEvent(EventCategory.PipelineInferenceResult, {
|
|
10838
10842
|
type: "device",
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const require_chunk = require("./chunk-emK7D4bc.js");
|
|
2
|
-
const require_dist = require("./dist-
|
|
2
|
+
const require_dist = require("./dist-B9P1Ya2y.js");
|
|
3
3
|
let node_fs = require("node:fs");
|
|
4
4
|
node_fs = require_chunk.__toESM(node_fs);
|
|
5
5
|
let node_child_process = require("node:child_process");
|
package/dist/recorder/index.js
CHANGED
|
@@ -3,8 +3,8 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../chunk-emK7D4bc.js");
|
|
6
|
-
const require_dist = require("../dist-
|
|
7
|
-
const require_node = require("../node-
|
|
6
|
+
const require_dist = require("../dist-B9P1Ya2y.js");
|
|
7
|
+
const require_node = require("../node-CLBXrI84.js");
|
|
8
8
|
const require_hub_hostname = require("../hub-hostname-DAJXlOgV.js");
|
|
9
9
|
const require_restream_intent = require("../restream-intent-C4adO0P8.js");
|
|
10
10
|
const require_retire_root_keys = require("../retire-root-keys-Csb8z2f3.js");
|
package/dist/recorder/index.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { $ as
|
|
2
|
-
import { a as physicalRootOf, i as NO_COST_CLAIM, t as ChildCostRegistry } from "../node-
|
|
1
|
+
import { $t as hydrateSchema, C as OpsLogEntrySchema, Ct as recordingExportCapability, D as RECORDING_EXPORT_MAX_READ_BYTES, Dt as resolveLocationMode, H as deriveBatteryPresence, I as batteryCapability, Kt as DeviceFeature, Lt as errMsg, Mt as storageOccupancyCapability, O as RecordingConfigSchema, Pt as stripRetiredBandPreBufferSec, Q as evictionPolicyOfLocation, St as recordingCapability, W as deriveRecordingMode, Wt as BaseAddon, Xt as customAction, Y as evaluateSensorEdge, Z as evictionPolicyForMode, Zt as defineCustomActions, _n as record, bn as EventCategory, cn as _enum, ct as mayReadLocation, d as DEFAULT_EVENTS_BAND_BUFFER_SEC, dt as modeMayWrite, et as gbToBytes, g as ExportRecordSchema, gn as preprocess, hn as object, i as BatteryStatusSchema, it as loadContributionCapability, jt as storageEvictableCapability, k as RecordingSignalStatusSchema, kt as resolveRecordingProfiles, ln as array, lt as mayWriteToLocation, mn as number, on as selectAssignedProfileSlots, qt as DeviceType, rn as nodePin, rt as isFirstLevelMacroClass, sn as sleep$1, un as boolean, ut as migrateLegacyDeviceSignalConfig, vn as string, wt as recordingSignalCapability } from "../dist-DIsGbdn1.mjs";
|
|
2
|
+
import { a as physicalRootOf, i as NO_COST_CLAIM, t as ChildCostRegistry } from "../node-CiInWOoF.mjs";
|
|
3
3
|
import { t as resolveHubHostname } from "../hub-hostname-cCknRYKj.mjs";
|
|
4
4
|
import { c as PREBUFFER_MAX_MS, r as RECORDING_PRE_ROLL_REQUEST_MS, s as withRecordingIntent } from "../restream-intent-MeJhGCK9.mjs";
|
|
5
5
|
import { n as RowMapStore, t as retireRootKeys } from "../retire-root-keys-DZvlso2l.mjs";
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { r as __toESM, t as __commonJSMin } from "./chunk-DnnnRqeS.mjs";
|
|
2
|
-
import {
|
|
2
|
+
import { Lt as errMsg } from "./dist-DIsGbdn1.mjs";
|
|
3
3
|
import { spawn } from "node:child_process";
|
|
4
4
|
//#region ../../node_modules/mp4box/dist/mp4box.all.js
|
|
5
5
|
var require_mp4box_all = /* @__PURE__ */ __commonJSMin(((exports) => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
const require_chunk = require("./chunk-emK7D4bc.js");
|
|
2
|
-
const require_dist = require("./dist-
|
|
2
|
+
const require_dist = require("./dist-B9P1Ya2y.js");
|
|
3
3
|
let node_child_process = require("node:child_process");
|
|
4
4
|
//#region ../../node_modules/mp4box/dist/mp4box.all.js
|
|
5
5
|
var require_mp4box_all = /* @__PURE__ */ require_chunk.__commonJSMin(((exports) => {
|
|
@@ -1323,6 +1323,126 @@ function resolveRgbCropSource(plane, planeStride, region) {
|
|
|
1323
1323
|
stride: tightStride
|
|
1324
1324
|
};
|
|
1325
1325
|
}
|
|
1326
|
+
var ADMITTED = { admitted: true };
|
|
1327
|
+
/**
|
|
1328
|
+
* Choose the media stride for one burst.
|
|
1329
|
+
*
|
|
1330
|
+
* `plannedFrames` is what the stride actually yields, so a caller can log the
|
|
1331
|
+
* intent next to the outcome — a budget that is never reached and a budget that
|
|
1332
|
+
* is always hit are different problems and used to read the same.
|
|
1333
|
+
*/
|
|
1334
|
+
function planPreRollBurst(input) {
|
|
1335
|
+
const span = Number.isFinite(input.spanMs) && input.spanMs > 0 ? input.spanMs : 0;
|
|
1336
|
+
const fps = Number.isFinite(input.detectionFps) && input.detectionFps > 0 ? input.detectionFps : 1;
|
|
1337
|
+
const maxFrames = Number.isFinite(input.maxFrames) && input.maxFrames > 0 ? input.maxFrames : 0;
|
|
1338
|
+
if (span === 0 || maxFrames === 0) return {
|
|
1339
|
+
strideMs: Number.POSITIVE_INFINITY,
|
|
1340
|
+
plannedFrames: 0,
|
|
1341
|
+
subsampled: false
|
|
1342
|
+
};
|
|
1343
|
+
const cadenceMs = 1e3 / fps;
|
|
1344
|
+
const budgetStrideMs = span / maxFrames;
|
|
1345
|
+
const subsampled = budgetStrideMs > cadenceMs;
|
|
1346
|
+
const strideMs = subsampled ? budgetStrideMs : cadenceMs;
|
|
1347
|
+
return {
|
|
1348
|
+
strideMs,
|
|
1349
|
+
plannedFrames: Math.min(maxFrames, Math.max(1, Math.floor(span / strideMs))),
|
|
1350
|
+
subsampled
|
|
1351
|
+
};
|
|
1352
|
+
}
|
|
1353
|
+
/**
|
|
1354
|
+
* The live, per-session budget. Stateful by necessity — a stride is a decision
|
|
1355
|
+
* about the PREVIOUS admission — and deliberately free of any clock of its own:
|
|
1356
|
+
* both times are passed in, so a test can drive a catch-up burst without
|
|
1357
|
+
* pretending 4 s of media takes 4 s to decode.
|
|
1358
|
+
*/
|
|
1359
|
+
var PreRollBurst = class {
|
|
1360
|
+
budget;
|
|
1361
|
+
plan;
|
|
1362
|
+
startedAtWall;
|
|
1363
|
+
/** Widest lead a frame's moment took over the wall clock — the SERVED span. */
|
|
1364
|
+
maxLeadMs = 0;
|
|
1365
|
+
lastAdmittedMediaWall = null;
|
|
1366
|
+
offered = 0;
|
|
1367
|
+
inferred = 0;
|
|
1368
|
+
done = false;
|
|
1369
|
+
drops = {
|
|
1370
|
+
stride: 0,
|
|
1371
|
+
"budget-frames": 0,
|
|
1372
|
+
"budget-wall-ms": 0,
|
|
1373
|
+
"live-edge": 0
|
|
1374
|
+
};
|
|
1375
|
+
constructor(input) {
|
|
1376
|
+
this.budget = input.budget;
|
|
1377
|
+
this.plan = input.plan;
|
|
1378
|
+
this.startedAtWall = input.startedAtWall;
|
|
1379
|
+
}
|
|
1380
|
+
/**
|
|
1381
|
+
* How much history this burst actually carried, in ms of media — the number
|
|
1382
|
+
* the broker knows as `preRollSpanMs` and that never reached this process.
|
|
1383
|
+
*
|
|
1384
|
+
* `null` until a frame has led the wall clock: a burst that saw none did not
|
|
1385
|
+
* measure a short span, it measured NOTHING, and the difference is the whole
|
|
1386
|
+
* reason the anchor was left alone rather than fabricated (D393).
|
|
1387
|
+
*/
|
|
1388
|
+
servedSpanMs() {
|
|
1389
|
+
return this.maxLeadMs > 0 ? this.maxLeadMs : null;
|
|
1390
|
+
}
|
|
1391
|
+
/** True once the burst has ended — by budget, or by reaching the live edge. */
|
|
1392
|
+
get finished() {
|
|
1393
|
+
return this.done;
|
|
1394
|
+
}
|
|
1395
|
+
/**
|
|
1396
|
+
* Offer one decoded history frame.
|
|
1397
|
+
*
|
|
1398
|
+
* `mediaWall` is the frame's OWN moment (see `media-clock.ts`); `nowWall` is
|
|
1399
|
+
* the wall clock of the offer. The two are different by construction during
|
|
1400
|
+
* catch-up, which is the whole reason this class exists.
|
|
1401
|
+
*/
|
|
1402
|
+
offer(mediaWall, nowWall) {
|
|
1403
|
+
this.offered++;
|
|
1404
|
+
if (this.done) return this.drop("budget-frames");
|
|
1405
|
+
const leadMs = mediaWall - nowWall;
|
|
1406
|
+
if (this.maxLeadMs > 0 && leadMs <= 100) {
|
|
1407
|
+
this.done = true;
|
|
1408
|
+
return this.drop("live-edge");
|
|
1409
|
+
}
|
|
1410
|
+
if (leadMs > this.maxLeadMs) this.maxLeadMs = leadMs;
|
|
1411
|
+
if (nowWall - this.startedAtWall >= this.budget.maxWallMs) {
|
|
1412
|
+
this.done = true;
|
|
1413
|
+
return this.drop("budget-wall-ms");
|
|
1414
|
+
}
|
|
1415
|
+
if (this.inferred >= this.budget.maxFrames) {
|
|
1416
|
+
this.done = true;
|
|
1417
|
+
return this.drop("budget-frames");
|
|
1418
|
+
}
|
|
1419
|
+
if (this.lastAdmittedMediaWall !== null && mediaWall - this.lastAdmittedMediaWall < this.plan.strideMs) return this.drop("stride");
|
|
1420
|
+
this.lastAdmittedMediaWall = mediaWall;
|
|
1421
|
+
this.inferred++;
|
|
1422
|
+
return ADMITTED;
|
|
1423
|
+
}
|
|
1424
|
+
/** End the burst without offering a frame (session torn down, decode ended). */
|
|
1425
|
+
finish() {
|
|
1426
|
+
this.done = true;
|
|
1427
|
+
}
|
|
1428
|
+
report() {
|
|
1429
|
+
return {
|
|
1430
|
+
offered: this.offered,
|
|
1431
|
+
inferred: this.inferred,
|
|
1432
|
+
dropped: this.offered - this.inferred,
|
|
1433
|
+
droppedByReason: { ...this.drops },
|
|
1434
|
+
strideMs: Math.round(this.plan.strideMs),
|
|
1435
|
+
subsampled: this.plan.subsampled
|
|
1436
|
+
};
|
|
1437
|
+
}
|
|
1438
|
+
drop(reason) {
|
|
1439
|
+
this.drops[reason]++;
|
|
1440
|
+
return {
|
|
1441
|
+
admitted: false,
|
|
1442
|
+
reason
|
|
1443
|
+
};
|
|
1444
|
+
}
|
|
1445
|
+
};
|
|
1326
1446
|
//#endregion
|
|
1327
1447
|
//#region src/session-decode/pull-demuxer-open.ts
|
|
1328
1448
|
/**
|
|
@@ -1577,6 +1697,18 @@ var REDIAL_MS = 3e3;
|
|
|
1577
1697
|
/** How often the worker emits its `framesDecoded/framesSkipped/deliveredFps` line. */
|
|
1578
1698
|
var METRICS_INTERVAL_MS = 1e4;
|
|
1579
1699
|
/**
|
|
1700
|
+
* Wall-clock ceiling on one pre-roll catch-up burst.
|
|
1701
|
+
*
|
|
1702
|
+
* A burst is a race against the live edge it is trying to get ahead of. Two
|
|
1703
|
+
* seconds in, the decoder has either caught up (the burst ended on its own) or
|
|
1704
|
+
* something is wrong — a cold GPU, a node under load, a camera whose GOP is
|
|
1705
|
+
* longer than its history — and continuing to spend inference on footage that
|
|
1706
|
+
* is now three or four seconds stale buys an operator nothing while a live
|
|
1707
|
+
* frame waits. The frame budget bounds the WORK; this bounds the WINDOW in
|
|
1708
|
+
* which that work is still worth doing.
|
|
1709
|
+
*/
|
|
1710
|
+
var PRE_ROLL_BURST_MAX_WALL_MS = 2e3;
|
|
1711
|
+
/**
|
|
1580
1712
|
* Hard cap on the native-frame retention ring (native-res crop feature). Kept
|
|
1581
1713
|
* DELIBERATELY TINY — its only job is to cover the detection→crop latency
|
|
1582
1714
|
* (typically 1-4 frames), NOT the full shm ring depth. On the HW path every
|
|
@@ -3290,13 +3422,26 @@ var DecodeWorkerChild = class {
|
|
|
3290
3422
|
const ptsMs = this.frameMediaPtsMs(frame);
|
|
3291
3423
|
if (ptsMs === null) return now;
|
|
3292
3424
|
if (this.mediaClock === null || this.mediaClock.dialSeq !== this.dialSeq) {
|
|
3293
|
-
const servedPreRollMs = 0;
|
|
3294
|
-
if (this.preRollMs > 0) this.emitStderr(`[decode] pre-roll requested ${this.preRollMs}ms but the SERVED span does not reach this worker — burst suppressed, clock anchored at now (D411 follow-up)`);
|
|
3295
3425
|
this.mediaClock = mediaClockForDial(this.mediaClock, this.dialSeq, {
|
|
3296
3426
|
firstPtsMs: ptsMs,
|
|
3297
|
-
preRollMs:
|
|
3427
|
+
preRollMs: 0,
|
|
3298
3428
|
nowWall: now
|
|
3299
3429
|
});
|
|
3430
|
+
if (this.preRollMs > 0 && this.preRollMaxFrames > 0) {
|
|
3431
|
+
const preRollCadenceMs = this.minIntervalMs > 0 ? this.minIntervalMs : 1e3;
|
|
3432
|
+
this.preRollBurst = new PreRollBurst({
|
|
3433
|
+
budget: {
|
|
3434
|
+
maxFrames: this.preRollMaxFrames,
|
|
3435
|
+
maxWallMs: PRE_ROLL_BURST_MAX_WALL_MS
|
|
3436
|
+
},
|
|
3437
|
+
plan: planPreRollBurst({
|
|
3438
|
+
spanMs: this.preRollMaxFrames * preRollCadenceMs,
|
|
3439
|
+
detectionFps: 1e3 / preRollCadenceMs,
|
|
3440
|
+
maxFrames: this.preRollMaxFrames
|
|
3441
|
+
}),
|
|
3442
|
+
startedAtWall: now
|
|
3443
|
+
});
|
|
3444
|
+
}
|
|
3300
3445
|
}
|
|
3301
3446
|
return mediaWallClockOf(this.mediaClock.anchor, ptsMs, now);
|
|
3302
3447
|
}
|
|
@@ -1322,6 +1322,126 @@ function resolveRgbCropSource(plane, planeStride, region) {
|
|
|
1322
1322
|
stride: tightStride
|
|
1323
1323
|
};
|
|
1324
1324
|
}
|
|
1325
|
+
var ADMITTED = { admitted: true };
|
|
1326
|
+
/**
|
|
1327
|
+
* Choose the media stride for one burst.
|
|
1328
|
+
*
|
|
1329
|
+
* `plannedFrames` is what the stride actually yields, so a caller can log the
|
|
1330
|
+
* intent next to the outcome — a budget that is never reached and a budget that
|
|
1331
|
+
* is always hit are different problems and used to read the same.
|
|
1332
|
+
*/
|
|
1333
|
+
function planPreRollBurst(input) {
|
|
1334
|
+
const span = Number.isFinite(input.spanMs) && input.spanMs > 0 ? input.spanMs : 0;
|
|
1335
|
+
const fps = Number.isFinite(input.detectionFps) && input.detectionFps > 0 ? input.detectionFps : 1;
|
|
1336
|
+
const maxFrames = Number.isFinite(input.maxFrames) && input.maxFrames > 0 ? input.maxFrames : 0;
|
|
1337
|
+
if (span === 0 || maxFrames === 0) return {
|
|
1338
|
+
strideMs: Number.POSITIVE_INFINITY,
|
|
1339
|
+
plannedFrames: 0,
|
|
1340
|
+
subsampled: false
|
|
1341
|
+
};
|
|
1342
|
+
const cadenceMs = 1e3 / fps;
|
|
1343
|
+
const budgetStrideMs = span / maxFrames;
|
|
1344
|
+
const subsampled = budgetStrideMs > cadenceMs;
|
|
1345
|
+
const strideMs = subsampled ? budgetStrideMs : cadenceMs;
|
|
1346
|
+
return {
|
|
1347
|
+
strideMs,
|
|
1348
|
+
plannedFrames: Math.min(maxFrames, Math.max(1, Math.floor(span / strideMs))),
|
|
1349
|
+
subsampled
|
|
1350
|
+
};
|
|
1351
|
+
}
|
|
1352
|
+
/**
|
|
1353
|
+
* The live, per-session budget. Stateful by necessity — a stride is a decision
|
|
1354
|
+
* about the PREVIOUS admission — and deliberately free of any clock of its own:
|
|
1355
|
+
* both times are passed in, so a test can drive a catch-up burst without
|
|
1356
|
+
* pretending 4 s of media takes 4 s to decode.
|
|
1357
|
+
*/
|
|
1358
|
+
var PreRollBurst = class {
|
|
1359
|
+
budget;
|
|
1360
|
+
plan;
|
|
1361
|
+
startedAtWall;
|
|
1362
|
+
/** Widest lead a frame's moment took over the wall clock — the SERVED span. */
|
|
1363
|
+
maxLeadMs = 0;
|
|
1364
|
+
lastAdmittedMediaWall = null;
|
|
1365
|
+
offered = 0;
|
|
1366
|
+
inferred = 0;
|
|
1367
|
+
done = false;
|
|
1368
|
+
drops = {
|
|
1369
|
+
stride: 0,
|
|
1370
|
+
"budget-frames": 0,
|
|
1371
|
+
"budget-wall-ms": 0,
|
|
1372
|
+
"live-edge": 0
|
|
1373
|
+
};
|
|
1374
|
+
constructor(input) {
|
|
1375
|
+
this.budget = input.budget;
|
|
1376
|
+
this.plan = input.plan;
|
|
1377
|
+
this.startedAtWall = input.startedAtWall;
|
|
1378
|
+
}
|
|
1379
|
+
/**
|
|
1380
|
+
* How much history this burst actually carried, in ms of media — the number
|
|
1381
|
+
* the broker knows as `preRollSpanMs` and that never reached this process.
|
|
1382
|
+
*
|
|
1383
|
+
* `null` until a frame has led the wall clock: a burst that saw none did not
|
|
1384
|
+
* measure a short span, it measured NOTHING, and the difference is the whole
|
|
1385
|
+
* reason the anchor was left alone rather than fabricated (D393).
|
|
1386
|
+
*/
|
|
1387
|
+
servedSpanMs() {
|
|
1388
|
+
return this.maxLeadMs > 0 ? this.maxLeadMs : null;
|
|
1389
|
+
}
|
|
1390
|
+
/** True once the burst has ended — by budget, or by reaching the live edge. */
|
|
1391
|
+
get finished() {
|
|
1392
|
+
return this.done;
|
|
1393
|
+
}
|
|
1394
|
+
/**
|
|
1395
|
+
* Offer one decoded history frame.
|
|
1396
|
+
*
|
|
1397
|
+
* `mediaWall` is the frame's OWN moment (see `media-clock.ts`); `nowWall` is
|
|
1398
|
+
* the wall clock of the offer. The two are different by construction during
|
|
1399
|
+
* catch-up, which is the whole reason this class exists.
|
|
1400
|
+
*/
|
|
1401
|
+
offer(mediaWall, nowWall) {
|
|
1402
|
+
this.offered++;
|
|
1403
|
+
if (this.done) return this.drop("budget-frames");
|
|
1404
|
+
const leadMs = mediaWall - nowWall;
|
|
1405
|
+
if (this.maxLeadMs > 0 && leadMs <= 100) {
|
|
1406
|
+
this.done = true;
|
|
1407
|
+
return this.drop("live-edge");
|
|
1408
|
+
}
|
|
1409
|
+
if (leadMs > this.maxLeadMs) this.maxLeadMs = leadMs;
|
|
1410
|
+
if (nowWall - this.startedAtWall >= this.budget.maxWallMs) {
|
|
1411
|
+
this.done = true;
|
|
1412
|
+
return this.drop("budget-wall-ms");
|
|
1413
|
+
}
|
|
1414
|
+
if (this.inferred >= this.budget.maxFrames) {
|
|
1415
|
+
this.done = true;
|
|
1416
|
+
return this.drop("budget-frames");
|
|
1417
|
+
}
|
|
1418
|
+
if (this.lastAdmittedMediaWall !== null && mediaWall - this.lastAdmittedMediaWall < this.plan.strideMs) return this.drop("stride");
|
|
1419
|
+
this.lastAdmittedMediaWall = mediaWall;
|
|
1420
|
+
this.inferred++;
|
|
1421
|
+
return ADMITTED;
|
|
1422
|
+
}
|
|
1423
|
+
/** End the burst without offering a frame (session torn down, decode ended). */
|
|
1424
|
+
finish() {
|
|
1425
|
+
this.done = true;
|
|
1426
|
+
}
|
|
1427
|
+
report() {
|
|
1428
|
+
return {
|
|
1429
|
+
offered: this.offered,
|
|
1430
|
+
inferred: this.inferred,
|
|
1431
|
+
dropped: this.offered - this.inferred,
|
|
1432
|
+
droppedByReason: { ...this.drops },
|
|
1433
|
+
strideMs: Math.round(this.plan.strideMs),
|
|
1434
|
+
subsampled: this.plan.subsampled
|
|
1435
|
+
};
|
|
1436
|
+
}
|
|
1437
|
+
drop(reason) {
|
|
1438
|
+
this.drops[reason]++;
|
|
1439
|
+
return {
|
|
1440
|
+
admitted: false,
|
|
1441
|
+
reason
|
|
1442
|
+
};
|
|
1443
|
+
}
|
|
1444
|
+
};
|
|
1325
1445
|
//#endregion
|
|
1326
1446
|
//#region src/session-decode/pull-demuxer-open.ts
|
|
1327
1447
|
/**
|
|
@@ -1576,6 +1696,18 @@ var REDIAL_MS = 3e3;
|
|
|
1576
1696
|
/** How often the worker emits its `framesDecoded/framesSkipped/deliveredFps` line. */
|
|
1577
1697
|
var METRICS_INTERVAL_MS = 1e4;
|
|
1578
1698
|
/**
|
|
1699
|
+
* Wall-clock ceiling on one pre-roll catch-up burst.
|
|
1700
|
+
*
|
|
1701
|
+
* A burst is a race against the live edge it is trying to get ahead of. Two
|
|
1702
|
+
* seconds in, the decoder has either caught up (the burst ended on its own) or
|
|
1703
|
+
* something is wrong — a cold GPU, a node under load, a camera whose GOP is
|
|
1704
|
+
* longer than its history — and continuing to spend inference on footage that
|
|
1705
|
+
* is now three or four seconds stale buys an operator nothing while a live
|
|
1706
|
+
* frame waits. The frame budget bounds the WORK; this bounds the WINDOW in
|
|
1707
|
+
* which that work is still worth doing.
|
|
1708
|
+
*/
|
|
1709
|
+
var PRE_ROLL_BURST_MAX_WALL_MS = 2e3;
|
|
1710
|
+
/**
|
|
1579
1711
|
* Hard cap on the native-frame retention ring (native-res crop feature). Kept
|
|
1580
1712
|
* DELIBERATELY TINY — its only job is to cover the detection→crop latency
|
|
1581
1713
|
* (typically 1-4 frames), NOT the full shm ring depth. On the HW path every
|
|
@@ -3289,13 +3421,26 @@ var DecodeWorkerChild = class {
|
|
|
3289
3421
|
const ptsMs = this.frameMediaPtsMs(frame);
|
|
3290
3422
|
if (ptsMs === null) return now;
|
|
3291
3423
|
if (this.mediaClock === null || this.mediaClock.dialSeq !== this.dialSeq) {
|
|
3292
|
-
const servedPreRollMs = 0;
|
|
3293
|
-
if (this.preRollMs > 0) this.emitStderr(`[decode] pre-roll requested ${this.preRollMs}ms but the SERVED span does not reach this worker — burst suppressed, clock anchored at now (D411 follow-up)`);
|
|
3294
3424
|
this.mediaClock = mediaClockForDial(this.mediaClock, this.dialSeq, {
|
|
3295
3425
|
firstPtsMs: ptsMs,
|
|
3296
|
-
preRollMs:
|
|
3426
|
+
preRollMs: 0,
|
|
3297
3427
|
nowWall: now
|
|
3298
3428
|
});
|
|
3429
|
+
if (this.preRollMs > 0 && this.preRollMaxFrames > 0) {
|
|
3430
|
+
const preRollCadenceMs = this.minIntervalMs > 0 ? this.minIntervalMs : 1e3;
|
|
3431
|
+
this.preRollBurst = new PreRollBurst({
|
|
3432
|
+
budget: {
|
|
3433
|
+
maxFrames: this.preRollMaxFrames,
|
|
3434
|
+
maxWallMs: PRE_ROLL_BURST_MAX_WALL_MS
|
|
3435
|
+
},
|
|
3436
|
+
plan: planPreRollBurst({
|
|
3437
|
+
spanMs: this.preRollMaxFrames * preRollCadenceMs,
|
|
3438
|
+
detectionFps: 1e3 / preRollCadenceMs,
|
|
3439
|
+
maxFrames: this.preRollMaxFrames
|
|
3440
|
+
}),
|
|
3441
|
+
startedAtWall: now
|
|
3442
|
+
});
|
|
3443
|
+
}
|
|
3299
3444
|
}
|
|
3300
3445
|
return mediaWallClockOf(this.mediaClock.anchor, ptsMs, now);
|
|
3301
3446
|
}
|
|
@@ -18,7 +18,7 @@ var e = {
|
|
|
18
18
|
},
|
|
19
19
|
"@camstack/types": {
|
|
20
20
|
name: "@camstack/types",
|
|
21
|
-
version: "1.2.
|
|
21
|
+
version: "1.2.195",
|
|
22
22
|
scope: ["default"],
|
|
23
23
|
loaded: !1,
|
|
24
24
|
from: "addon_stream_broker_widgets",
|
|
@@ -33,7 +33,7 @@ var e = {
|
|
|
33
33
|
},
|
|
34
34
|
"@camstack/ui-library": {
|
|
35
35
|
name: "@camstack/ui-library",
|
|
36
|
-
version: "1.2.
|
|
36
|
+
version: "1.2.160",
|
|
37
37
|
scope: ["default"],
|
|
38
38
|
loaded: !1,
|
|
39
39
|
from: "addon_stream_broker_widgets",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const require_segment_demux_js = require("../segment-demux-js-
|
|
1
|
+
const require_segment_demux_js = require("../segment-demux-js-BiLMVPQy.js");
|
|
2
2
|
let node_worker_threads = require("node:worker_threads");
|
|
3
3
|
//#region src/stream-broker/recorded/demux-worker-child.ts
|
|
4
4
|
/**
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { t as demuxSegmentFullJs } from "../segment-demux-js-
|
|
1
|
+
import { t as demuxSegmentFullJs } from "../segment-demux-js-BB9vb34n.mjs";
|
|
2
2
|
import { parentPort } from "node:worker_threads";
|
|
3
3
|
//#region src/stream-broker/recorded/demux-worker-child.ts
|
|
4
4
|
/**
|
|
@@ -36,7 +36,7 @@ async function r() {
|
|
|
36
36
|
}
|
|
37
37
|
},
|
|
38
38
|
"@camstack/types": {
|
|
39
|
-
version: "1.2.
|
|
39
|
+
version: "1.2.195",
|
|
40
40
|
scope: "default",
|
|
41
41
|
shareConfig: {
|
|
42
42
|
singleton: !0,
|
|
@@ -81,7 +81,7 @@ async function r() {
|
|
|
81
81
|
}
|
|
82
82
|
},
|
|
83
83
|
"@camstack/ui-library": {
|
|
84
|
-
version: "1.2.
|
|
84
|
+
version: "1.2.160",
|
|
85
85
|
scope: "default",
|
|
86
86
|
shareConfig: {
|
|
87
87
|
singleton: !0,
|
|
@@ -3,12 +3,12 @@ Object.defineProperties(exports, {
|
|
|
3
3
|
[Symbol.toStringTag]: { value: "Module" }
|
|
4
4
|
});
|
|
5
5
|
const require_chunk = require("../chunk-emK7D4bc.js");
|
|
6
|
-
const require_dist = require("../dist-
|
|
7
|
-
const require_node = require("../node-
|
|
6
|
+
const require_dist = require("../dist-B9P1Ya2y.js");
|
|
7
|
+
const require_node = require("../node-CLBXrI84.js");
|
|
8
8
|
const require_restream_intent = require("../restream-intent-C4adO0P8.js");
|
|
9
9
|
const require_remote_restream = require("../remote-restream-CO36Sr30.js");
|
|
10
10
|
const require_retire_root_keys = require("../retire-root-keys-Csb8z2f3.js");
|
|
11
|
-
const require_segment_demux_js = require("../segment-demux-js-
|
|
11
|
+
const require_segment_demux_js = require("../segment-demux-js-BiLMVPQy.js");
|
|
12
12
|
let node_os = require("node:os");
|
|
13
13
|
node_os = require_chunk.__toESM(node_os);
|
|
14
14
|
let node_crypto = require("node:crypto");
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { r as __toESM } from "../chunk-DnnnRqeS.mjs";
|
|
2
|
-
import { A as RingBuffer,
|
|
3
|
-
import { i as NO_COST_CLAIM, n as Fmp4FragmentChild, r as Fmp4FragmentPlane, t as ChildCostRegistry } from "../node-
|
|
2
|
+
import { A as RingBuffer, B as declareLogChannel, Bt as buildFfmpegArgs$1, E as RATE_CONTROL_TIGHT, Et as resolveEgressDecodeHwAccel, Gt as CAM_PROFILE_ORDER, H as deriveBatteryPresence, Ht as isSoftwareDecode, I as batteryCapability, It as webrtcSessionCapability, K as egressTranscodeSharingKey, Kt as DeviceFeature, L as cameraStreamsCapability, Lt as errMsg, M as addonWidgetsSourceCapability, Nt as streamBrokerCapability, Qt as expandAudioChunkToF32le, R as createHwAccelCache, Rt as AUDIO_PRESETS, T as RATE_CONTROL_RELAXED, Ut as BOOT_RECOVERY_BACKOFF_MS, Vt as invocationFromEncodeProfile, Wt as BaseAddon, Yt as createEvent, _n as record, an as parseProfileBrokerId, at as logChannelsCapability, bn as EventCategory, cn as _enum, dn as discriminatedUnion, en as isEvent, h as EncodeProfileSchema, hn as object, i as BatteryStatusSchema, it as loadContributionCapability, ln as array, mn as number, nn as makeSourceBrokerId, pn as literal, q as egressTransportFromRequest, qt as DeviceType, rn as nodePin, st as maskUrlCredentials, tn as makeProfileBrokerId, un as boolean, v as G711_SCALE_CORRECTION_DB, vn as string, xt as rankStreams, yn as union, z as createLogChannelsProvider } from "../dist-DIsGbdn1.mjs";
|
|
3
|
+
import { i as NO_COST_CLAIM, n as Fmp4FragmentChild, r as Fmp4FragmentPlane, t as ChildCostRegistry } from "../node-CiInWOoF.mjs";
|
|
4
4
|
import { c as PREBUFFER_MAX_MS, d as resolvePrebuffer, i as parseRestreamPath, l as capPreRollRequestMs, n as NO_DECLARATION, u as prebufferRetentionMs } from "../restream-intent-MeJhGCK9.mjs";
|
|
5
5
|
import { n as profileForStreamId } from "../remote-restream-BeHi78PZ.mjs";
|
|
6
6
|
import { n as RowMapStore, t as retireRootKeys } from "../retire-root-keys-DZvlso2l.mjs";
|
|
7
|
-
import { i as require_mp4box_all, n as demuxSegmentPreferJs, r as runFfmpegOnce, t as demuxSegmentFullJs } from "../segment-demux-js-
|
|
7
|
+
import { i as require_mp4box_all, n as demuxSegmentPreferJs, r as runFfmpegOnce, t as demuxSegmentFullJs } from "../segment-demux-js-BB9vb34n.mjs";
|
|
8
8
|
import { createRequire } from "node:module";
|
|
9
9
|
import * as os from "node:os";
|
|
10
10
|
import { networkInterfaces, tmpdir } from "node:os";
|
|
@@ -30,7 +30,7 @@ async function d(e) {
|
|
|
30
30
|
}
|
|
31
31
|
}
|
|
32
32
|
async function f() {
|
|
33
|
-
return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-
|
|
33
|
+
return l ||= d(() => import("./_virtual_mf-localSharedImportMap___mfe_internal__addon_stream_broker_widgets-Bi1AlQGX.mjs")).catch((e) => {
|
|
34
34
|
throw l = void 0, e;
|
|
35
35
|
}), l;
|
|
36
36
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@camstack/addon-pipeline",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.240",
|
|
4
4
|
"description": "Pipeline bundle — runner, detection, motion, audio + stream broker. Multi-entry npm package shipping pipeline addons under a single bundle.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"camstack",
|