@blockcast/mmt-container 2.2.0-main.73af0eedcbc8 → 2.2.0-main.a16efba1d85a
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/README.md +29 -17
- package/dist/browser-runtime.js +630 -191
- package/dist/browser-runtime.js.map +4 -4
- package/dist/carp-catalog.js.map +1 -1
- package/dist/catalog-fec-params.d.ts +17 -1
- package/dist/catalog-fec-params.d.ts.map +1 -1
- package/dist/catalog-fec-params.js +15 -0
- package/dist/catalog-fec-params.js.map +2 -2
- package/dist/catalog-network-source.js.map +1 -1
- package/dist/cmcd-producer.d.ts +60 -47
- package/dist/cmcd-producer.d.ts.map +1 -1
- package/dist/cmcd-producer.js +138 -109
- package/dist/cmcd-producer.js.map +2 -2
- package/dist/delivery-catalog.js +26 -16
- package/dist/delivery-catalog.js.map +2 -2
- package/dist/delta-fallback-config.js.map +1 -1
- package/dist/fec-manager.d.ts +3 -1
- package/dist/fec-manager.d.ts.map +1 -1
- package/dist/fec-manager.js +26 -4
- package/dist/fec-manager.js.map +2 -2
- package/dist/fec-state.js.map +1 -1
- package/dist/fec-worker-setup.d.ts +1 -1
- package/dist/fec-worker-setup.js +1 -1
- package/dist/fec-worker-setup.js.map +1 -1
- package/dist/held-layer-admission.js.map +1 -1
- package/dist/index.d.ts +5 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -1
- package/dist/index.js.map +2 -2
- package/dist/iso-block-locator.js.map +1 -1
- package/dist/iso-bmff-timing.d.ts +10 -1
- package/dist/iso-bmff-timing.d.ts.map +1 -1
- package/dist/iso-bmff-timing.js +36 -2
- package/dist/iso-bmff-timing.js.map +2 -2
- package/dist/media-router.js.map +1 -1
- package/dist/mfu-reassembler.js +12 -19
- package/dist/mfu-reassembler.js.map +2 -2
- package/dist/mmtp-container-parser.d.ts +35 -2
- package/dist/mmtp-container-parser.d.ts.map +1 -1
- package/dist/mmtp-container-parser.js +97 -28
- package/dist/mmtp-container-parser.js.map +2 -2
- package/dist/mmtp-container-parser.no-modules.js +222 -45
- package/dist/mmtp-container-parser.no-modules.js.map +3 -3
- package/dist/mmtp-decode-pipeline.js +97 -28
- package/dist/mmtp-decode-pipeline.js.map +2 -2
- package/dist/mmtp-fec-session.d.ts +41 -3
- package/dist/mmtp-fec-session.d.ts.map +1 -1
- package/dist/mmtp-fec-session.js +118 -13
- package/dist/mmtp-fec-session.js.map +3 -3
- package/dist/mmtp-router.d.ts +6 -0
- package/dist/mmtp-router.d.ts.map +1 -1
- package/dist/mmtp-router.js +150 -44
- package/dist/mmtp-router.js.map +2 -2
- package/dist/multicast-auth-catalog.js.map +1 -1
- package/dist/multicast-input.js.map +1 -1
- package/dist/multicast-manager.js +176 -48
- package/dist/multicast-manager.js.map +2 -2
- package/dist/multicast-transport.js +26 -16
- package/dist/multicast-transport.js.map +2 -2
- package/dist/multicast-unwrap.js +12 -19
- package/dist/multicast-unwrap.js.map +2 -2
- package/dist/no-modules.js +215 -42
- package/dist/no-modules.js.map +3 -3
- package/dist/repair-fetch.js.map +1 -1
- package/dist/repair-layer-subscriptions.d.ts +82 -0
- package/dist/repair-layer-subscriptions.d.ts.map +1 -0
- package/dist/repair-layer-subscriptions.js +192 -0
- package/dist/repair-layer-subscriptions.js.map +7 -0
- package/dist/signaling.js.map +1 -1
- package/dist/timestamp-codec.js +12 -19
- package/dist/timestamp-codec.js.map +2 -2
- package/dist/track-session.d.ts +1 -1
- package/dist/track-session.js.map +1 -1
- package/dist/wasm-mfu-reassembler.js.map +1 -1
- package/dist/wasm-mmtp-container-parser.js +97 -28
- package/dist/wasm-mmtp-container-parser.js.map +2 -2
- package/package.json +8 -5
- package/schemas/catalog.schema.json +4 -0
- package/src/catalog-fec-params.ts +36 -1
- package/src/cmcd-producer.ts +189 -179
- package/src/fec-manager.ts +26 -4
- package/src/fec-worker-setup.ts +2 -2
- package/src/index.ts +18 -2
- package/src/iso-bmff-timing.ts +40 -1
- package/src/mmtp-container-parser.ts +92 -7
- package/src/mmtp-fec-session.ts +115 -15
- package/src/mmtp-router.ts +46 -0
- package/src/repair-layer-subscriptions.ts +261 -0
- package/src/track-session.ts +1 -1
package/dist/mmtp-router.d.ts
CHANGED
|
@@ -19,6 +19,7 @@ import type { MfuReassemblyPolicy } from "./mfu-reassembly-policy.js";
|
|
|
19
19
|
import { type AuthoredTiming } from "./authored-timing.js";
|
|
20
20
|
import { FecBlockMapper } from "@blockcast/mmt-fec";
|
|
21
21
|
import { CmafBlockAssembler, type BlockAssemblerConfig, type CmafBlockSample } from "./cmaf-block-assembler.js";
|
|
22
|
+
import { type MmtpRecoveredHeadTimingStats } from "./mmtp-container-parser.js";
|
|
22
23
|
import { type TrackRole } from "./carp-catalog.js";
|
|
23
24
|
import { type BlockClass, type ClassifierMode, type ClassifierReason, type FrameGapDecision, type SourceSymbolEvidence } from "./block-policy.js";
|
|
24
25
|
import { type DuplicateHorizon } from "./duplicate-ledger.js";
|
|
@@ -238,6 +239,9 @@ export type RoutedPacketMeta = {
|
|
|
238
239
|
mmtpTimestamp: bigint;
|
|
239
240
|
/**
|
|
240
241
|
* The MMTP header RAP flag: the packet starts a random access point. On a
|
|
242
|
+
* track under a keyframe overlay it is also set on the FT=0 and FT=1 data
|
|
243
|
+
* units that govern a covered keyframe (draft-ramadan-moq-mmt-02 7.4.2), so
|
|
244
|
+
* it can precede the keyframe's first MFU fragment. On a
|
|
241
245
|
* `recovered` packet it is read from the FEC-reconstructed header, which is
|
|
242
246
|
* byte-exact outside packet_sequence_number, so it is the flag the
|
|
243
247
|
* publisher sent. The router's own gap decisions deliberately ignore it for
|
|
@@ -632,6 +636,8 @@ export declare class MmtpRouter {
|
|
|
632
636
|
* for a MoQ symbol on a protected flow (multicast-02 7.2.7).
|
|
633
637
|
*/
|
|
634
638
|
get keyframeOverlayStats(): Readonly<KeyframeOverlayStats>;
|
|
639
|
+
/** Recovered FT=2 heads held for their FT=1, and how each left the wait (BLO-53369). */
|
|
640
|
+
get recoveredHeadsAwaitingTiming(): Readonly<MmtpRecoveredHeadTimingStats>;
|
|
635
641
|
/**
|
|
636
642
|
* Install the keyframe overlay decoded on `fec` for a known overlay leg
|
|
637
643
|
* (draft-ramadan-mmt-fec-02 7.4.4: decoded independently of the base). `fec`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mmtp-router.d.ts","sourceRoot":"","sources":["../src/mmtp-router.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"mmtp-router.d.ts","sourceRoot":"","sources":["../src/mmtp-router.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAOL,KAAK,eAAe,EACpB,KAAK,UAAU,EACf,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,KAAK,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAElF,OAAO,KAAK,EACV,qBAAqB,EACrB,cAAc,EACd,sBAAsB,EACvB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAEtE,OAAO,EAAuB,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAChF,OAAO,EAGL,cAAc,EAEf,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,kBAAkB,EAClB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAML,KAAK,4BAA4B,EAClC,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EAErB,KAAK,oBAAoB,EAC1B,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAGL,KAAK,gBAAgB,EACtB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAEL,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EACrB,MAAM,gCAAgC,CAAC;AAIxC;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAwB/C,MAAM,MAAM,eAAe,GAAG;IAC5B,iEAAiE;IACjE,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,OAAO,CAAC;IAClB,mEAAmE;IACnE,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,+EAA+E;IAC/E,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB;;;;;;;;OAQG;IACH,kBAAkB,CAAC,EAAE,sBAAsB,CAAC;IAC5C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,8EAA8E;IAC9E,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,4DAA4D;IAC5D,6BAA6B,CAAC,EAAE,MAAM,EAAE,CAAC;IACzC,wCAAwC;IACxC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B;;;OAGG;IACH,2BAA2B,CAAC,EAAE,MAAM,CAAC;IACrC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,gBAAgB,CAAC;CAC9B,CAAC;AAEF,2EAA2E;AAC3E,MAAM,WAAW,kBAAkB;IACjC,cAAc,EAAE,MAAM,CAAC;IACvB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED;;4DAE4D;AAC5D,MAAM,MAAM,kBAAkB,GAAG,IAAI,CACnC,UAAU,EACR,iBAAiB,GAAG,eAAe,GAAG,gBAAgB,GAAG,kBAAkB,GAAG,kBAAkB,GAChG,kBAAkB,GAAG,oBAAoB,GAAG,YAAY,GAAG,wBAAwB,GACnF,uBAAuB,GAAG,eAAe,GAAG,qBAAqB,GAAG,uBAAuB,CAC9F,CAAC;AAEF;wCACwC;AACxC,eAAO,MAAM,+BAA+B,QAAS,CAAC;AAEtD;gFACgF;AAChF,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG,MAAM,GAAG,SAAS,CAI7F;AAED,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAyBD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,SAAS,QAAQ,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,EAAE,CAAC;IAChE;;;;;OAKG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,+EAA+E;AAC/E,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,gBAAgB,EAAE,MAAM,CAAC;CACnC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,MAAM,wBAAwB,GAChC,sBAAsB,GACtB,gBAAgB,GAChB,kBAAkB,CAAC;AAEvB,4EAA4E;AAC5E,MAAM,WAAW,oBAAoB;IACnC,wDAAwD;IACxD,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAC3B,wDAAwD;IACxD,QAAQ,CAAC,cAAc,CAAC,EAAE,QAAQ,CAAC,cAAc,CAAC,CAAC;CACpD;AAED,wDAAwD;AACxD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,QAAQ,CAAC,EAAE,EAAE,kBAAkB,CAAC;IAChC,8EAA8E;IAC9E,QAAQ,CAAC,GAAG,EAAE,oBAAoB,GAAG;QACnC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;KACrC,CAAC;IACF;;;;OAIG;IACH,QAAQ,CAAC,iBAAiB,EAAE,oBAAoB,GAAG,SAAS,CAAC;IAC7D,QAAQ,CAAC,MAAM,EAAE,wBAAwB,CAAC;IAC1C;;;;OAIG;IACH,QAAQ,CAAC,qBAAqB,EAAE,MAAM,CAAC;CACxC;AAED,+CAA+C;AAC/C,MAAM,WAAW,mBAAmB;IAClC,+DAA+D;IAC/D,QAAQ,CAAC,IAAI,EAAE,kBAAkB,CAAC;IAClC,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,EAAE,kBAAkB,CAAC;IAChC;;;;;OAKG;IACH,QAAQ,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,IAAI,CAAC;CACzD;AAED,oDAAoD;AACpD,MAAM,WAAW,kBAAkB;IACjC;;;;OAIG;IACH,MAAM,IAAI,OAAO,CAAC;CACnB;AAyJD,+CAA+C;AAC/C,MAAM,MAAM,aAAa,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,KAAK,IAAI,CAAC;AAE9E,gEAAgE;AAChE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB,EAAE,MAAM,CAAC;IAC7B;;;;;;;OAOG;IACH,aAAa,EAAE,MAAM,CAAC;IACtB;;;;;;;;;;;OAWG;IACH,GAAG,EAAE,OAAO,CAAC;IACb,sDAAsD;IACtD,SAAS,EAAE,OAAO,CAAC;IACnB,kEAAkE;IAClE,gBAAgB,EAAE,OAAO,CAAC;IAC1B,8EAA8E;IAC9E,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,sBAAsB,CAAC;CAC7C,CAAC;AAEF,qDAAqD;AACrD,MAAM,MAAM,mBAAmB,GAAG,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAoFvF,KAAK,iBAAiB,GAAG;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,wBAAwB,EAAE,MAAM,CAAC;IACjC,4BAA4B,EAAE,MAAM,CAAC;IACrC,0BAA0B,EAAE,MAAM,CAAC;IACnC,2BAA2B,EAAE,MAAM,CAAC;IACpC,gCAAgC,EAAE,MAAM,CAAC;CAC1C,CAAC;AAEF;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;;+EAM2E;IAC3E,gBAAgB,CACd,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,UAAU,EACtB,gBAAgB,CAAC,EAAE,MAAM,GACxB,UAAU,GAAG,IAAI,CAAC;IAErB,yGAAyG;IACzG,oBAAoB,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAEtF,uEAAuE;IACvE,qBAAqB,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1G;6DACyD;IACzD,sBAAsB,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACvG;8DAC0D;IAC1D,iBAAiB,CAAC,CAChB,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,eAAe,EAAE,MAAM,GAAG,SAAS,EACnC,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,UAAU,GACjB,cAAc,GAAG,IAAI,CAAC;IACzB,qBAAqB,CAAC,CACpB,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,eAAe,EAAE,MAAM,GAAG,SAAS,EACnC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC;IAEX;+DAC2D;IAC3D,qBAAqB,CAAC,CACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAEX;0EACsE;IACtE,gBAAgB,CACd,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,UAAU,EACtB,gBAAgB,CAAC,EAAE,MAAM,GACxB,UAAU,GAAG,IAAI,CAAC;IAErB,sFAAsF;IACtF,oBAAoB,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IAE5E,gFAAgF;IAChF,oBAAoB,CAClB,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,WAAW,GAAG,KAAK,EAC3B,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO,CAAC;IAEX;;2DAEuD;IACvD,uBAAuB,CAAC,CACtB,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,gBAAgB,CAAC,EAAE,MAAM,GACxB,sBAAsB,CAAC;IAE1B;;oBAEgB;IAChB,UAAU,CACR,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,oBAAoB,GAC7B,IAAI,CAAC;IAER,gEAAgE;IAChE,iBAAiB,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAE9C,oEAAoE;IACpE,eAAe,CAAC,CACd,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,gBAAgB,CAAC,EAAE,MAAM,GACxB,SAAS,GAAG,UAAU,GAAG,QAAQ,GAAG,WAAW,CAAC;IAEnD,iDAAiD;IACjD,QAAQ,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAEpC;;;OAGG;IACH,0BAA0B,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAElE;;;;;OAKG;IACH,4BAA4B,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAEpE,sCAAsC;IACtC,QAAQ,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAEhD,2CAA2C;IAC3C,iBAAiB,CAAC,CAChB,QAAQ,EAAE,MAAM,EAChB,gBAAgB,CAAC,EAAE,MAAM,GACxB;QAAE,IAAI,EAAE,cAAc,CAAC;QAAC,MAAM,EAAE,gBAAgB,GAAG,IAAI,CAAA;KAAE,CAAC;IAE7D,8DAA8D;IAC9D,gBAAgB,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAExE,8DAA8D;IAC9D,eAAe,CAAC,CACd,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,GAAG,EAAE,MAAM,EACX,gBAAgB,EAAE,MAAM,EACxB,cAAc,EAAE,MAAM,GACrB,IAAI,CAAC;IAER,4EAA4E;IAC5E,iBAAiB,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEnF,wEAAwE;IACxE,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpF,kEAAkE;IAClE,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAErF,2EAA2E;IAC3E,kBAAkB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEpF,sEAAsE;IACtE,aAAa,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEhF;;;;OAIG;IACH,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAAC;IACrE,2EAA2E;IAC3E,aAAa,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC;IAChE,wEAAwE;IACxE,eAAe,CAAC,CACd,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,IAAI,EAAE,MAAM,GACX;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACvC,iGAAiG;IACjG,UAAU,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9D;;;;OAIG;IACH,eAAe,CAAC,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IAC7D,iFAAiF;IACjF,aAAa,CAAC,CACZ,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC;IACX,qFAAqF;IACrF,cAAc,CAAC,CACb,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,OAAO,EAAE,MAAM,EACf,SAAS,EAAE,MAAM,GAChB,kBAAkB,CAAC,aAAa,CAAC,CAAC;IACrC,+FAA+F;IAC/F,aAAa,CAAC,CACZ,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,SAAS;QAAE,QAAQ,CAAC,KAAK,EAAE;YAAE,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,QAAQ,CAAC,MAAM,EAAE,SAAS,eAAe,CAAC,aAAa,CAAC,EAAE,CAAA;KAAE,EAAE,CAAC;IACzH,mFAAmF;IACnF,iBAAiB,CAAC,CAChB,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,GACb,SAAS,MAAM,EAAE,GAAG,IAAI,CAAC;IAG5B;;;;OAIG;IACH,wBAAwB,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAEhE,yDAAyD;IACzD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,mBAAmB,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;IAE3D,2DAA2D;IAC3D,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAEhC,+DAA+D;IAC/D,cAAc,IAAI,KAAK,CAAC;QACtB,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,KAAK,EAAE,YAAY,GAAG,UAAU,GAAG,QAAQ,CAAC;QAC5C,WAAW,EAAE,MAAM,CAAC;QACpB,CAAC,EAAE,MAAM,CAAC;QACV,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC,CAAC;IAEH,+BAA+B;IAC/B,QAAQ,CAAC,QAAQ,EAAE;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,EAAE,MAAM,CAAC;QACtB,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;QACxB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;IAIF,4DAA4D;IAC5D,cAAc,EACV,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC,GACpE,IAAI,CAAC;IAET,qEAAqE;IACrE,eAAe,EACX,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC,GACpE,IAAI,CAAC;IAET,qEAAqE;IACrE,aAAa,EACT,CAAC,CACC,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,UAAU,EAAE,UAAU,KACnB,IAAI,CAAC,GACV,IAAI,CAAC;IAET,sDAAsD;IACtD,eAAe,CAAC,EACZ,CAAC,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC,GAC/E,IAAI,CAAC;IAET,uEAAuE;IACvE,qBAAqB,CAAC,EAClB,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,SAAS,KAAK,IAAI,CAAC,GAClE,IAAI,CAAC;IAET,gCAAgC;IAChC,OAAO,IAAI,IAAI,CAAC;CACjB;AAyCD,qBAAa,UAAU;;gBA8MT,MAAM,CAAC,EAAE;QACnB,UAAU,CAAC,EAAE,cAAc,CAAC;QAC5B,SAAS,CAAC,EAAE,cAAc,CAAC;QAC3B,4FAA4F;QAC5F,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,gBAAgB,CAAC,EAAE,mBAAmB,CAAC;QACvC,WAAW,CAAC,EAAE,qBAAqB,CAAC;QACpC,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB;;;wCAGgC;QAChC,qBAAqB,CAAC,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;QAChD,uEAAuE;QACvE,aAAa,CAAC,EAAE,CACd,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,UAAU,EAAE,UAAU,KACnB,IAAI,CAAC;QACV,mEAAmE;QACnE,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,gBAAgB,KAAK,IAAI,CAAC;QAClD;;;;;WAKG;QACH,kBAAkB,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,KAAK,IAAI,CAAC;KAC3E;IAmSD,IAAI,UAAU,IAAI,cAAc,GAAG,IAAI,CAEtC;IAED;;;;;;OAMG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,gBAAgB;IAkBvD;;;;;OAKG;IACH,IAAI,yBAAyB,IAAI,MAAM,CAEtC;IAED,2EAA2E;IAC3E,IAAI,qBAAqB,IAAI,MAAM,CAElC;IAED;;;;OAIG;IACH,IAAI,+BAA+B,IAAI,MAAM,CAE5C;IAED;;;;;;;OAOG;IACH,IAAI,2BAA2B,IAAI,MAAM,CAExC;IAED;;;;OAIG;IACH,IAAI,yBAAyB,IAAI,MAAM,CAEtC;IAED,IAAI,WAAW,IAAI,qBAAqB,CAEvC;IAED,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC;IAyDnD;;qEAEiE;IACjE,cAAc,CAAC,EAAE,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAI3D;;;;;;;;;;;;OAYG;IACH,wBAAwB,CAAC,EAAE,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,GAAG,IAAI;IAK3D;6EACyE;IACzE,eAAe,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI;IAKxC;;mFAE+E;IAC/E,gBAAgB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAI1C;;;;;;;;2CAQuC;IACvC,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI;IAQrE,oDAAoD;IACpD,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS;IAK7D;;uFAEmF;IACnF,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAepD,uEAAuE;IACvE,YAAY,CAAC,EAAE,EAAE,aAAa,GAAG,IAAI;IAKrC,uEAAuE;IACvE,YAAY,CAAC,EAAE,EAAE,aAAa,GAAG,IAAI;IAKrC;;;;qDAIiD;IACjD,YAAY,CACV,QAAQ,EAAE,MAAM,EAChB,EAAE,EAAE,aAAa,GAChB,IAAI;IAKP;;;;;;OAMG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,mBAAmB,GAAG,IAAI;IAI9D;;;uCAGmC;IACnC,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,GAAG,IAAI;IAMnE;;qEAEiE;IACjE,kBAAkB,CAChB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,oBAAoB,EAC5B,gBAAgB,CAAC,EAAE,MAAM,GACxB,kBAAkB;IAerB;4EACwE;IACxE,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,UAAU,KAAK,IAAI,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI;IAKlG;;uEAEmE;IACnE,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI;IAKrG,qEAAqE;IACrE,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,IAAI,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI;IAKnG,mFAAmF;IACnF,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI;IAI9D;;iFAE6E;IAC7E,qBAAqB,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI;IAiBzE,6EAA6E;IAC7E,iBAAiB,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI;IAIpE;yEACqE;IACrE,gBAAgB,CACd,EAAE,EAAE,CACF,GAAG,EAAE,MAAM,EACX,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,UAAU,EAAE,UAAU,KACnB,IAAI,GACR,IAAI;IAMP;;;;;;;;;;OAUG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,IAAI;IAexD,iFAAiF;IACjF,yBAAyB,IAAI,IAAI;IAMjC;;mFAE+E;IAC/E,sBAAsB,CAAC,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,IAAI;IAU3E;;;;;;;OAOG;IACH,qBAAqB,CAAC,cAAc,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,kBAAkB,GAAG,IAAI;IAOxF,uEAAuE;IACvE,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,QAAQ,CAAC,kBAAkB,CAAC,GAAG,SAAS;IAIpF;;;;;OAKG;IACH,IAAI,oBAAoB,IAAI,QAAQ,CAAC,oBAAoB,CAAC,CAEzD;IAED,wFAAwF;IACxF,IAAI,4BAA4B,IAAI,QAAQ,CAAC,4BAA4B,CAAC,CAEzE;IAOD;;;;;;OAMG;IACH,sBAAsB,CAAC,cAAc,EAAE,MAAM,EAAE,GAAG,EAAE,kBAAkB,EAAE,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,MAAM,IAAI;IAYlH;;;;;;OAMG;IACH,mCAAmC,CACjC,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,SAAS,EAAE,GAAG,EAAE,MAAM,KAAK,IAAI,GACtF,MAAM,IAAI;IAOb,2DAA2D;IAC3D,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAInD;;;OAGG;IACH,qBAAqB,CAAC,cAAc,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI;IA2P9E;;;;;;;;OAQG;IACH,oBAAoB,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAM3E,yEAAyE;IACzE,YAAY,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI/B,qFAAqF;IACrF,YAAY,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI;IAQ7D;;;;;OAKG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAYxC;;;;;;OAMG;IACH,sBAAsB,CACpB,OAAO,EAAE,kBAAkB,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,EAC9C,QAAQ,EAAE,sBAAsB,GAC/B,IAAI;IAMP;;;;OAIG;IACH,gBAAgB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAexC;;;OAGG;IACH,2BAA2B,CAAC,OAAO,EAAE,kBAAkB,GAAG;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAsBjF;;;;OAIG;IACH,yBAAyB,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC,GAAG,IAAI,GAAG,IAAI;IAIpE;;;;;OAKG;IACH,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAW3C,mOAAmO;IACnO,IAAI,yBAAyB,IAAI,MAAM,CAEtC;IAED,kGAAkG;IAClG,IAAI,2BAA2B,IAAI,MAAM,CAExC;IAED,iFAAiF;IACjF,IAAI,6BAA6B,IAAI,MAAM,CAE1C;IAED,iGAAiG;IACjG,IAAI,4BAA4B,IAAI,MAAM,CAEzC;IAED,sFAAsF;IACtF,IAAI,uBAAuB,IAAI,MAAM,CAIpC;IAED;;;;OAIG;IACH,2BAA2B,CACzB,OAAO,EAAE,CAAC,CAAC,aAAa,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,SAAS,KAAK,cAAc,GAAG,IAAI,CAAC,GAAG,IAAI,GACvG,IAAI;IA0NP;;;;;OAKG;IACH,oBAAoB,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,eAAe,GAAG,MAAM;IAwBrF,sFAAsF;IACtF,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQzC,kGAAkG;IAClG,IAAI,yBAAyB,IAAI,MAAM,CAEtC;IAED,6FAA6F;IAC7F,IAAI,2BAA2B,IAAI,MAAM,CAExC;IAED;;;;;OAKG;IACH;;;;;;;OAOG;IACH,UAAU,CACR,MAAM,EAAE,UAAU,EAClB,MAAM,EAAE,WAAW,GAAG,KAAK,EAC3B,OAAO,CAAC,EAAE,kBAAkB,GAC3B,IAAI;IAiBP;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACH,eAAe,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,IAAI;IAOvE;;;OAGG;IACH,gBAAgB,CACd,MAAM,EAAE,UAAU,EAClB,iBAAiB,CAAC,EAAE,MAAM,EAC1B,gBAAgB,CAAC,EAAE,MAAM,EACzB,eAAe,CAAC,EAAE,MAAM,GACvB,IAAI;IAsRP;;;;OAIG;IACH,aAAa,CACX,aAAa,EAAE,MAAM,EACrB,gBAAgB,EAAE,MAAM,GAAG,SAAS,EACpC,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GACb,IAAI;IA0EP;;kDAE8C;IAC9C,mBAAmB,CACjB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,MAAM,EAChB,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO;IAUV;gFAC4E;IAC5E,oBAAoB,CAClB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,UAAU,EAChB,QAAQ,EAAE,MAAM,EAChB,GAAG,SAAI,EACP,gBAAgB,CAAC,EAAE,MAAM,GACxB,OAAO;IAQV;;yEAEqE;IACrE,uBAAuB,IAAI,IAAI;IAS/B,sEAAsE;IACtE,KAAK,IAAI,IAAI;IAKb,4EAA4E;IAC5E,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,IAAI;IA0C5D;;;;;;;;;;;;OAYG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IA6EtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqCG;IACH,iBAAiB,CAAC,OAAO,EAAE,mBAAmB,GAAG,kBAAkB;IA+LnE,6EAA6E;IAC7E,OAAO,CAAC,OAAO,GAAE;QAAE,KAAK,CAAC,EAAE,OAAO,CAAA;KAAO,GAAG,IAAI;IA6IhD;;;OAGG;IACH,0BAA0B,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS;IAI3F;;;OAGG;IACH,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO;IAIjG;;;;OAIG;IACH,iBAAiB,CACf,QAAQ,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,GAAG,SAAS,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,GACvF,MAAM,IAAI;CAuoEd"}
|
package/dist/mmtp-router.js
CHANGED
|
@@ -149,30 +149,26 @@ function isEmptyOrExactLegacyTrailer(payload, start, end) {
|
|
|
149
149
|
const authLength = view2.getUint16(2, false);
|
|
150
150
|
return start + LEGACY_TRAILER_HEADER_SIZE + authLength === end;
|
|
151
151
|
}
|
|
152
|
-
function resolveDeclaredTrailers(payload, declaredEnd, fecType, options
|
|
152
|
+
function resolveDeclaredTrailers(payload, declaredEnd, fecType, options) {
|
|
153
153
|
if (declaredEnd > payload.length)
|
|
154
154
|
return null;
|
|
155
155
|
if (options?.skipFecId) {
|
|
156
|
-
return isEmptyOrExactLegacyTrailer(payload, declaredEnd, payload.length) ? { hasFecId: false
|
|
156
|
+
return isEmptyOrExactLegacyTrailer(payload, declaredEnd, payload.length) ? { hasFecId: false } : null;
|
|
157
157
|
}
|
|
158
|
-
const overlay = options?.overlayDeclared === true && rapFlag;
|
|
159
158
|
if (fecType === 1) {
|
|
160
|
-
const fecStart = payload.length -
|
|
159
|
+
const fecStart = payload.length - SOURCE_FEC_PAYLOAD_ID_SIZE;
|
|
161
160
|
if (fecStart < declaredEnd || !isEmptyOrExactLegacyTrailer(payload, declaredEnd, fecStart)) {
|
|
162
161
|
return null;
|
|
163
162
|
}
|
|
164
|
-
return { hasFecId: true
|
|
163
|
+
return { hasFecId: true };
|
|
165
164
|
}
|
|
166
|
-
if (fecType !== 0
|
|
165
|
+
if (fecType !== 0)
|
|
167
166
|
return null;
|
|
168
167
|
if (isEmptyOrExactLegacyTrailer(payload, declaredEnd, payload.length)) {
|
|
169
|
-
return { hasFecId: false
|
|
168
|
+
return { hasFecId: false };
|
|
170
169
|
}
|
|
171
170
|
return null;
|
|
172
171
|
}
|
|
173
|
-
function sourceFecTrailerSize(overlay) {
|
|
174
|
-
return overlay ? 2 * SOURCE_FEC_PAYLOAD_ID_SIZE : SOURCE_FEC_PAYLOAD_ID_SIZE;
|
|
175
|
-
}
|
|
176
172
|
function planMfuExtraction(mmtpPacket, options, parsedHeader) {
|
|
177
173
|
if (mmtpPacket.length < MMTP_HEADER_SIZE + MPU_HEADER_SIZE) {
|
|
178
174
|
return {
|
|
@@ -225,11 +221,11 @@ function planMfuExtraction(mmtpPacket, options, parsedHeader) {
|
|
|
225
221
|
if ("rejection" in layoutResult)
|
|
226
222
|
return layoutResult;
|
|
227
223
|
const { layout } = layoutResult;
|
|
228
|
-
const trailerLayout = resolveDeclaredTrailers(payload, layout.dataEnd, header.fecType, options
|
|
224
|
+
const trailerLayout = resolveDeclaredTrailers(payload, layout.dataEnd, header.fecType, options);
|
|
229
225
|
if (!trailerLayout) {
|
|
230
226
|
if (!options?.skipFecId && header.fecType === 1) {
|
|
231
227
|
const observed = payload.length - layout.dataEnd;
|
|
232
|
-
const expected =
|
|
228
|
+
const expected = SOURCE_FEC_PAYLOAD_ID_SIZE;
|
|
233
229
|
if (observed !== expected) {
|
|
234
230
|
return {
|
|
235
231
|
rejection: {
|
|
@@ -261,13 +257,10 @@ function extractPlannedMfu(mmtpPacket, result) {
|
|
|
261
257
|
const mfuDuHeader = mfuDuHeaderPresent && mpu.timedFlag === 1 ? parseTimedMfuDuHeader(payload, MPU_HEADER_SIZE) : null;
|
|
262
258
|
const itemId = mfuDuHeaderPresent && mpu.timedFlag === 0 ? new DataView(payload.buffer, payload.byteOffset + MPU_HEADER_SIZE, 4).getUint32(0, false) : null;
|
|
263
259
|
const data = payload.subarray(mfuOffset, dataEnd);
|
|
264
|
-
const
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
}
|
|
268
|
-
const fecPayloadId = trailerLayout.hasFecId ? ssIdAt(trailerStart) : null;
|
|
269
|
-
const overlayFecPayloadId = trailerLayout.hasOverlayFecId ? ssIdAt(trailerStart + SOURCE_FEC_PAYLOAD_ID_SIZE) : null;
|
|
270
|
-
return { header, mpu, fragmentType, data, mfuDuHeader, itemId, fecPayloadId, overlayFecPayloadId };
|
|
260
|
+
const fecPayloadId = trailerLayout.hasFecId ? {
|
|
261
|
+
ssId: new DataView(mmtpPacket.buffer, mmtpPacket.byteOffset + mmtpPacket.length - SOURCE_FEC_PAYLOAD_ID_SIZE, 4).getUint32(0, false)
|
|
262
|
+
} : null;
|
|
263
|
+
return { header, mpu, fragmentType, data, mfuDuHeader, itemId, fecPayloadId };
|
|
271
264
|
}
|
|
272
265
|
function sourceFecPayloadIdOf(mmtpPacket, header) {
|
|
273
266
|
if (mmtpPacket.length < MMTP_HEADER_SIZE + MPU_HEADER_SIZE)
|
|
@@ -1617,14 +1610,15 @@ var MOQT_PUBLISHER_PRIORITY = Object.freeze({
|
|
|
1617
1610
|
});
|
|
1618
1611
|
|
|
1619
1612
|
// node_modules/@blockcast/mmt-transport/dist/amt-gateway.js
|
|
1613
|
+
var MAX_PENDING_PACKETS = 256;
|
|
1620
1614
|
var AMTGatewayManager = class {
|
|
1621
1615
|
subscriptions = /* @__PURE__ */ new Map();
|
|
1622
1616
|
messageHandler;
|
|
1617
|
+
messageListenerRegistered = false;
|
|
1623
1618
|
pendingPackets = /* @__PURE__ */ new Map();
|
|
1624
1619
|
constructor() {
|
|
1625
1620
|
this.messageHandler = (event) => {
|
|
1626
1621
|
const data = event.data;
|
|
1627
|
-
console.log(`[AMT] SW message received:`, data.type);
|
|
1628
1622
|
if (data.type === "UDP_PACKET") {
|
|
1629
1623
|
this.handlePacket(data);
|
|
1630
1624
|
} else if (data.type === "SOCKET_ERROR") {
|
|
@@ -1633,12 +1627,22 @@ var AMTGatewayManager = class {
|
|
|
1633
1627
|
console.log(`[AMT SW Debug] ${data.message}`);
|
|
1634
1628
|
}
|
|
1635
1629
|
};
|
|
1636
|
-
|
|
1637
|
-
|
|
1638
|
-
|
|
1639
|
-
|
|
1640
|
-
|
|
1630
|
+
}
|
|
1631
|
+
ensureMessageListener() {
|
|
1632
|
+
if (this.messageListenerRegistered || typeof navigator === "undefined" || !navigator.serviceWorker || !this.messageHandler) {
|
|
1633
|
+
return;
|
|
1634
|
+
}
|
|
1635
|
+
navigator.serviceWorker.addEventListener("message", this.messageHandler);
|
|
1636
|
+
this.messageListenerRegistered = true;
|
|
1637
|
+
console.log("[AMT] Registered service worker message handler");
|
|
1638
|
+
}
|
|
1639
|
+
removeMessageListener() {
|
|
1640
|
+
if (!this.messageListenerRegistered)
|
|
1641
|
+
return;
|
|
1642
|
+
if (this.messageHandler && typeof navigator !== "undefined" && navigator.serviceWorker) {
|
|
1643
|
+
navigator.serviceWorker.removeEventListener("message", this.messageHandler);
|
|
1641
1644
|
}
|
|
1645
|
+
this.messageListenerRegistered = false;
|
|
1642
1646
|
}
|
|
1643
1647
|
/**
|
|
1644
1648
|
* Subscribe via AMT tunnel
|
|
@@ -1648,6 +1652,7 @@ var AMTGatewayManager = class {
|
|
|
1648
1652
|
if (config.protected) {
|
|
1649
1653
|
throw new Error("AMTGatewayManager refuses a protected join: it reports no per-datagram sender (multicast-02 7.2.7)");
|
|
1650
1654
|
}
|
|
1655
|
+
this.ensureMessageListener();
|
|
1651
1656
|
const keyStr = this.getKeyString(key);
|
|
1652
1657
|
if (this.subscriptions.has(keyStr)) {
|
|
1653
1658
|
console.log(`[AMT] Reusing existing subscription to ${keyStr}`);
|
|
@@ -1683,6 +1688,8 @@ var AMTGatewayManager = class {
|
|
|
1683
1688
|
this.subscriptions.delete(keyStr);
|
|
1684
1689
|
this.pendingPackets.delete(subscription.subscriptionId);
|
|
1685
1690
|
}
|
|
1691
|
+
if (this.subscriptions.size === 0)
|
|
1692
|
+
this.removeMessageListener();
|
|
1686
1693
|
throw new Error(`Failed to subscribe via AMT: ${error instanceof Error ? error.message : String(error)}`);
|
|
1687
1694
|
}
|
|
1688
1695
|
}
|
|
@@ -1704,6 +1711,8 @@ var AMTGatewayManager = class {
|
|
|
1704
1711
|
} finally {
|
|
1705
1712
|
this.subscriptions.delete(handle);
|
|
1706
1713
|
this.pendingPackets.delete(subscription.subscriptionId);
|
|
1714
|
+
if (this.subscriptions.size === 0)
|
|
1715
|
+
this.removeMessageListener();
|
|
1707
1716
|
}
|
|
1708
1717
|
}
|
|
1709
1718
|
/**
|
|
@@ -1720,14 +1729,12 @@ var AMTGatewayManager = class {
|
|
|
1720
1729
|
if (!subscriptionId)
|
|
1721
1730
|
return;
|
|
1722
1731
|
const subscription = this.subscriptions.get(subscriptionId);
|
|
1723
|
-
if (!subscription)
|
|
1724
|
-
console.warn(`[AMT] Received packet for unknown subscription: ${subscriptionId}`);
|
|
1732
|
+
if (!subscription)
|
|
1725
1733
|
return;
|
|
1726
|
-
}
|
|
1727
1734
|
if (!subscription.handshakeComplete) {
|
|
1728
1735
|
const queue = this.pendingPackets.get(subscriptionId);
|
|
1729
1736
|
const packetData2 = data;
|
|
1730
|
-
if (queue) {
|
|
1737
|
+
if (queue && queue.length < MAX_PENDING_PACKETS) {
|
|
1731
1738
|
queue.push({
|
|
1732
1739
|
data: packetData2.data,
|
|
1733
1740
|
remoteAddress: packetData2.remoteAddress,
|
|
@@ -1753,19 +1760,15 @@ var AMTGatewayManager = class {
|
|
|
1753
1760
|
if (!subscriptionId)
|
|
1754
1761
|
return;
|
|
1755
1762
|
const subscription = this.subscriptions.get(subscriptionId);
|
|
1756
|
-
if (!subscription)
|
|
1757
|
-
console.warn(`[AMT] Received error for unknown subscription: ${subscriptionId}`);
|
|
1763
|
+
if (!subscription)
|
|
1758
1764
|
return;
|
|
1759
|
-
}
|
|
1760
1765
|
subscription.config.onError(new Error(error || "Unknown error"));
|
|
1761
1766
|
}
|
|
1762
1767
|
/**
|
|
1763
1768
|
* Cleanup on destroy
|
|
1764
1769
|
*/
|
|
1765
1770
|
destroy() {
|
|
1766
|
-
|
|
1767
|
-
navigator.serviceWorker.removeEventListener("message", this.messageHandler);
|
|
1768
|
-
}
|
|
1771
|
+
this.removeMessageListener();
|
|
1769
1772
|
const handles = Array.from(this.subscriptions.keys());
|
|
1770
1773
|
for (const handle of handles) {
|
|
1771
1774
|
this.unsubscribe(handle).catch((err) => {
|
|
@@ -7674,9 +7677,21 @@ var IsoBmffTimingResolver = class {
|
|
|
7674
7677
|
}
|
|
7675
7678
|
#track = null;
|
|
7676
7679
|
#fragments = /* @__PURE__ */ new Map();
|
|
7680
|
+
/** First sample of each pending fragment, kept in `#delivered` with its sample count. */
|
|
7681
|
+
#firstSamples = /* @__PURE__ */ new Map();
|
|
7682
|
+
/**
|
|
7683
|
+
* First sample and sample count of the newest fragments whose every slot was
|
|
7684
|
+
* cleared. Abandonment counts: `releaseSample` clears a slot too, which
|
|
7685
|
+
* matches the combiner, since it retires an abandoned sample as well.
|
|
7686
|
+
*/
|
|
7687
|
+
#delivered = /* @__PURE__ */ new Map();
|
|
7677
7688
|
#pendingSamples = 0;
|
|
7678
7689
|
#evictedSamples = 0;
|
|
7679
7690
|
#lastMovieFragmentRejection = null;
|
|
7691
|
+
/** True once an FT=0 has bound the track that FT=1 timing is read against. */
|
|
7692
|
+
get initialized() {
|
|
7693
|
+
return this.#track !== null;
|
|
7694
|
+
}
|
|
7680
7695
|
get pendingSampleCount() {
|
|
7681
7696
|
return this.#pendingSamples;
|
|
7682
7697
|
}
|
|
@@ -7700,7 +7715,14 @@ var IsoBmffTimingResolver = class {
|
|
|
7700
7715
|
this.#track = timing;
|
|
7701
7716
|
return true;
|
|
7702
7717
|
}
|
|
7703
|
-
|
|
7718
|
+
/**
|
|
7719
|
+
* `recovered` marks an FEC-recovered copy. A recovered block hands back
|
|
7720
|
+
* every FT=1 it holds, the received ones included, so a recovered copy of a
|
|
7721
|
+
* fragment whose samples are all done is a duplicate: admitting it again
|
|
7722
|
+
* would charge stale timing and could displace the live MPU's. A source
|
|
7723
|
+
* copy is still admitted again (a rendition switch re-arms timing that way).
|
|
7724
|
+
*/
|
|
7725
|
+
addMovieFragment(mpuSequenceNumber, data, additionalSampleLimit = this.maxPendingSamples, recovered = false) {
|
|
7704
7726
|
this.#lastMovieFragmentRejection = null;
|
|
7705
7727
|
if (!Number.isInteger(additionalSampleLimit) || additionalSampleLimit < 0) {
|
|
7706
7728
|
this.#lastMovieFragmentRejection = "invalid";
|
|
@@ -7726,6 +7748,8 @@ var IsoBmffTimingResolver = class {
|
|
|
7726
7748
|
(sample, index) => sample !== null && sameSample(sample, parsed.samples[index])
|
|
7727
7749
|
);
|
|
7728
7750
|
}
|
|
7751
|
+
const delivered = recovered ? this.#delivered.get(key) : void 0;
|
|
7752
|
+
if (delivered && delivered.sampleCount === parsed.samples.length && sameSample(delivered.first, parsed.samples[0])) return true;
|
|
7729
7753
|
let freed = 0;
|
|
7730
7754
|
while (this.#fragments.size > 0 && (this.#pendingSamples + parsed.samples.length > this.maxPendingSamples || parsed.samples.length - freed > additionalSampleLimit)) {
|
|
7731
7755
|
freed += this.#evictOldestFragment();
|
|
@@ -7739,6 +7763,7 @@ var IsoBmffTimingResolver = class {
|
|
|
7739
7763
|
return false;
|
|
7740
7764
|
}
|
|
7741
7765
|
this.#fragments.set(key, [...parsed.samples]);
|
|
7766
|
+
this.#firstSamples.set(key, parsed.samples[0]);
|
|
7742
7767
|
this.#pendingSamples += parsed.samples.length;
|
|
7743
7768
|
return true;
|
|
7744
7769
|
}
|
|
@@ -7796,6 +7821,7 @@ var IsoBmffTimingResolver = class {
|
|
|
7796
7821
|
let live = 0;
|
|
7797
7822
|
for (const sample of samples) if (sample !== null) live++;
|
|
7798
7823
|
this.#fragments.delete(oldest);
|
|
7824
|
+
this.#firstSamples.delete(oldest);
|
|
7799
7825
|
this.#pendingSamples -= live;
|
|
7800
7826
|
this.#evictedSamples += live;
|
|
7801
7827
|
return live;
|
|
@@ -7811,12 +7837,23 @@ var IsoBmffTimingResolver = class {
|
|
|
7811
7837
|
if (!samples || !samples[index]) return false;
|
|
7812
7838
|
samples[index] = null;
|
|
7813
7839
|
this.#pendingSamples--;
|
|
7814
|
-
if (samples.every((value) => value === null))
|
|
7840
|
+
if (samples.every((value) => value === null)) {
|
|
7841
|
+
this.#fragments.delete(key);
|
|
7842
|
+
const first = this.#firstSamples.get(key);
|
|
7843
|
+
this.#firstSamples.delete(key);
|
|
7844
|
+
this.#delivered.delete(key);
|
|
7845
|
+
this.#delivered.set(key, { first, sampleCount: samples.length });
|
|
7846
|
+
if (this.#delivered.size > this.maxPendingSamples) {
|
|
7847
|
+
this.#delivered.delete(this.#delivered.keys().next().value);
|
|
7848
|
+
}
|
|
7849
|
+
}
|
|
7815
7850
|
return true;
|
|
7816
7851
|
}
|
|
7817
7852
|
reset() {
|
|
7818
7853
|
this.#track = null;
|
|
7819
7854
|
this.#fragments.clear();
|
|
7855
|
+
this.#firstSamples.clear();
|
|
7856
|
+
this.#delivered.clear();
|
|
7820
7857
|
this.#pendingSamples = 0;
|
|
7821
7858
|
}
|
|
7822
7859
|
};
|
|
@@ -8298,6 +8335,12 @@ var MmtpContainerParser = class _MmtpContainerParser {
|
|
|
8298
8335
|
this.#reclaimedTimingSamples = 0;
|
|
8299
8336
|
this.#evictedTimingSamples = 0;
|
|
8300
8337
|
this.#rejectedMovieFragments = 0;
|
|
8338
|
+
this.#recoveredHeadsAwaitingTiming = {
|
|
8339
|
+
held: 0,
|
|
8340
|
+
expired: 0,
|
|
8341
|
+
discarded: 0,
|
|
8342
|
+
superseded: 0
|
|
8343
|
+
};
|
|
8301
8344
|
this.#sequencers = /* @__PURE__ */ new Map();
|
|
8302
8345
|
this.#fecGate = null;
|
|
8303
8346
|
this.#fecSequencer = null;
|
|
@@ -8406,6 +8449,7 @@ var MmtpContainerParser = class _MmtpContainerParser {
|
|
|
8406
8449
|
#reclaimedTimingSamples;
|
|
8407
8450
|
#evictedTimingSamples;
|
|
8408
8451
|
#rejectedMovieFragments;
|
|
8452
|
+
#recoveredHeadsAwaitingTiming;
|
|
8409
8453
|
#sequencers;
|
|
8410
8454
|
#fecGate;
|
|
8411
8455
|
#fecSequencer;
|
|
@@ -8526,6 +8570,14 @@ var MmtpContainerParser = class _MmtpContainerParser {
|
|
|
8526
8570
|
rejectedMovieFragments: this.#rejectedMovieFragments
|
|
8527
8571
|
};
|
|
8528
8572
|
}
|
|
8573
|
+
/** Recovered heads parked for FT=1 timing (BLO-53369). Survives dispose(). */
|
|
8574
|
+
get recoveredHeadsAwaitingTiming() {
|
|
8575
|
+
let pending = 0;
|
|
8576
|
+
for (const { awaitingTiming } of this.#timingStreams.values()) {
|
|
8577
|
+
for (const head of awaitingTiming) if (head.options?.recovered) pending++;
|
|
8578
|
+
}
|
|
8579
|
+
return { ...this.#recoveredHeadsAwaitingTiming, pending };
|
|
8580
|
+
}
|
|
8529
8581
|
get reorderStats() {
|
|
8530
8582
|
let bufferedFrames = this.#fecSequencer?.buffered ?? 0;
|
|
8531
8583
|
for (const { sequencer } of this.#sequencers.values()) bufferedFrames += sequencer.buffered;
|
|
@@ -8699,7 +8751,7 @@ var MmtpContainerParser = class _MmtpContainerParser {
|
|
|
8699
8751
|
const now = Date.now();
|
|
8700
8752
|
for (const { awaitingTiming } of this.#timingStreams.values()) {
|
|
8701
8753
|
while (awaitingTiming.length > 0 && now - awaitingTiming[0].arrivedAt > timeoutMs) {
|
|
8702
|
-
awaitingTiming.shift();
|
|
8754
|
+
this.#leaveAwaitingTiming(awaitingTiming.shift(), "expired");
|
|
8703
8755
|
}
|
|
8704
8756
|
}
|
|
8705
8757
|
}
|
|
@@ -8817,11 +8869,16 @@ var MmtpContainerParser = class _MmtpContainerParser {
|
|
|
8817
8869
|
if (mpu.fragmentationIndicator !== 0 || mpu.fragmentCounter !== 0)
|
|
8818
8870
|
return this.#drop("fragment-unexpected-fragmentation");
|
|
8819
8871
|
const resolver2 = this.#timingResolver(streamKey, info.packetId, false);
|
|
8820
|
-
if (!resolver2) return this.#drop("fragment-no-resolver");
|
|
8872
|
+
if (!resolver2?.initialized) return this.#drop("fragment-no-resolver");
|
|
8821
8873
|
const pendingBefore = resolver2.pendingSampleCount;
|
|
8822
8874
|
const evictedBefore = resolver2.evictedSampleCount;
|
|
8823
8875
|
const remaining = this.#maxPendingTimingSamples - this.#pendingTimingSamples;
|
|
8824
|
-
const admitted = resolver2.addMovieFragment(
|
|
8876
|
+
const admitted = resolver2.addMovieFragment(
|
|
8877
|
+
mpu.mpuSequenceNumber,
|
|
8878
|
+
data,
|
|
8879
|
+
remaining,
|
|
8880
|
+
options?.recovered === true
|
|
8881
|
+
);
|
|
8825
8882
|
this.#pendingTimingSamples += resolver2.pendingSampleCount - pendingBefore;
|
|
8826
8883
|
this.#evictedTimingSamples += resolver2.evictedSampleCount - evictedBefore;
|
|
8827
8884
|
if (!admitted) {
|
|
@@ -8841,7 +8898,7 @@ var MmtpContainerParser = class _MmtpContainerParser {
|
|
|
8841
8898
|
};
|
|
8842
8899
|
}
|
|
8843
8900
|
if (fragmentType !== 2) return this.#drop("unknown-fragment-type");
|
|
8844
|
-
const resolver = this.#timingResolver(streamKey, info.packetId,
|
|
8901
|
+
const resolver = this.#timingResolver(streamKey, info.packetId, true);
|
|
8845
8902
|
if (!resolver) return this.#drop("mfu-no-resolver");
|
|
8846
8903
|
if (!Number.isSafeInteger(data.byteLength) || data.byteLength <= 0)
|
|
8847
8904
|
return this.#drop("mfu-empty-payload");
|
|
@@ -8862,6 +8919,7 @@ var MmtpContainerParser = class _MmtpContainerParser {
|
|
|
8862
8919
|
mpuSequenceNumber: mpu.mpuSequenceNumber,
|
|
8863
8920
|
movieFragmentSequenceNumber: mfuDuHeader.movieFragmentSequenceNumber,
|
|
8864
8921
|
sampleNumber: mfuDuHeader.sampleNumber,
|
|
8922
|
+
sequenceNumber: info.sequenceNumber,
|
|
8865
8923
|
arrivedAt: Date.now()
|
|
8866
8924
|
});
|
|
8867
8925
|
return this.#drop("mfu-sample-timing-missing");
|
|
@@ -9185,6 +9243,10 @@ var MmtpContainerParser = class _MmtpContainerParser {
|
|
|
9185
9243
|
}
|
|
9186
9244
|
this.#emitFrame(data, meta);
|
|
9187
9245
|
}
|
|
9246
|
+
/** Whether FT=1 metadata already names this sample, without claiming it. */
|
|
9247
|
+
hasAuthoredTimingFor(packetId, mpuSequenceNumber, movieFragmentSequenceNumber, sampleNumber, catalogTrackName) {
|
|
9248
|
+
return this.#timingResolver(this.#streamKey(packetId, catalogTrackName), packetId, false)?.sampleTiming(mpuSequenceNumber, movieFragmentSequenceNumber, sampleNumber) != null;
|
|
9249
|
+
}
|
|
9188
9250
|
/**
|
|
9189
9251
|
* Claim and return the authored timing for a recovered sample. Recovery does
|
|
9190
9252
|
* not pass through the ordinary `feed()` completion path, so it must retire
|
|
@@ -9246,6 +9308,9 @@ var MmtpContainerParser = class _MmtpContainerParser {
|
|
|
9246
9308
|
for (const { sequencer } of this.#sequencers.values()) sequencer.discard();
|
|
9247
9309
|
this.#sequencers.clear();
|
|
9248
9310
|
this.#fecSequencer?.discard();
|
|
9311
|
+
for (const { awaitingTiming } of this.#timingStreams.values()) {
|
|
9312
|
+
for (const head of awaitingTiming) this.#leaveAwaitingTiming(head, "discarded");
|
|
9313
|
+
}
|
|
9249
9314
|
this.#timingStreams.clear();
|
|
9250
9315
|
this.#pendingTimingSamples = 0;
|
|
9251
9316
|
this.#reliableMoqStartupGate.clear();
|
|
@@ -9264,10 +9329,23 @@ var MmtpContainerParser = class _MmtpContainerParser {
|
|
|
9264
9329
|
return resolver;
|
|
9265
9330
|
}
|
|
9266
9331
|
#awaitTiming(streamKey, head) {
|
|
9267
|
-
const
|
|
9268
|
-
if (!
|
|
9332
|
+
const state = this.#timingStreams.get(streamKey);
|
|
9333
|
+
if (!state) return;
|
|
9334
|
+
if (!head.options?.recovered) {
|
|
9335
|
+
const kept = state.awaitingTiming.filter((queued) => !queued.options?.recovered || queued.sequenceNumber !== head.sequenceNumber);
|
|
9336
|
+
this.#recoveredHeadsAwaitingTiming.superseded += state.awaitingTiming.length - kept.length;
|
|
9337
|
+
state.awaitingTiming = kept;
|
|
9338
|
+
}
|
|
9339
|
+
const awaitingTiming = state.awaitingTiming;
|
|
9269
9340
|
awaitingTiming.push(head);
|
|
9270
|
-
if (
|
|
9341
|
+
if (head.options?.recovered) this.#recoveredHeadsAwaitingTiming.held++;
|
|
9342
|
+
if (awaitingTiming.length > MAX_AWAITING_TIMING_HEADS) {
|
|
9343
|
+
this.#leaveAwaitingTiming(awaitingTiming.shift(), "expired");
|
|
9344
|
+
}
|
|
9345
|
+
}
|
|
9346
|
+
/** Count a recovered head leaving the queue other than by replay or its source copy. */
|
|
9347
|
+
#leaveAwaitingTiming(head, outcome) {
|
|
9348
|
+
if (head.options?.recovered) this.#recoveredHeadsAwaitingTiming[outcome]++;
|
|
9271
9349
|
}
|
|
9272
9350
|
/**
|
|
9273
9351
|
* Feed again the heads whose timing the FT=1 just admitted declares. That
|
|
@@ -9295,6 +9373,7 @@ var MmtpContainerParser = class _MmtpContainerParser {
|
|
|
9295
9373
|
const state = this.#timingStreams.get(streamKey);
|
|
9296
9374
|
if (!state) return;
|
|
9297
9375
|
this.#timingStreams.delete(streamKey);
|
|
9376
|
+
for (const head of state.awaitingTiming) this.#leaveAwaitingTiming(head, "discarded");
|
|
9298
9377
|
this.#pendingTimingSamples -= state.resolver.pendingSampleCount;
|
|
9299
9378
|
if (this.#pendingTimingSamples < 0) {
|
|
9300
9379
|
throw new Error("[MmtpContainerParser] pending timing sample accounting underflow");
|
|
@@ -10634,6 +10713,10 @@ var MmtpRouter = class {
|
|
|
10634
10713
|
get keyframeOverlayStats() {
|
|
10635
10714
|
return { ...this.#overlayStats };
|
|
10636
10715
|
}
|
|
10716
|
+
/** Recovered FT=2 heads held for their FT=1, and how each left the wait (BLO-53369). */
|
|
10717
|
+
get recoveredHeadsAwaitingTiming() {
|
|
10718
|
+
return this.#parser.recoveredHeadsAwaitingTiming;
|
|
10719
|
+
}
|
|
10637
10720
|
#isOverlayRepair(repairPacketId, repairTrackName) {
|
|
10638
10721
|
return this.#overlayLegs.has(repairPacketId) || repairTrackName !== void 0 && this.#overlayRepairNames.has(repairTrackName);
|
|
10639
10722
|
}
|
|
@@ -13043,6 +13126,29 @@ var MmtpRouter = class {
|
|
|
13043
13126
|
}
|
|
13044
13127
|
);
|
|
13045
13128
|
}
|
|
13129
|
+
const untimedHead = (sym) => sym.fragmentType === 2 && sym.fragment.fragmentationIndicator === 1 && sym.fragment.movieFragmentSequenceNumber !== void 0 && sym.fragment.sampleNumber !== void 0 && !this.#parser.hasAuthoredTimingFor(
|
|
13130
|
+
ownerPacketId,
|
|
13131
|
+
sym.fragment.mpuSequenceNumber,
|
|
13132
|
+
sym.fragment.movieFragmentSequenceNumber,
|
|
13133
|
+
sym.fragment.sampleNumber,
|
|
13134
|
+
catalogTrackName
|
|
13135
|
+
);
|
|
13136
|
+
for (const sym of result.symbols) {
|
|
13137
|
+
if (!untimedHead(sym) || this.#sourceSeqReceived(ownerPacketId, sym.packetSequenceNumber, catalogTrackName)) continue;
|
|
13138
|
+
this.#feedViaParser(
|
|
13139
|
+
sym.rawSymbol,
|
|
13140
|
+
{ packetId: ownerPacketId, sequenceNumber: sym.packetSequenceNumber },
|
|
13141
|
+
void 0,
|
|
13142
|
+
{
|
|
13143
|
+
skipFecPayloadId: true,
|
|
13144
|
+
recovered: true,
|
|
13145
|
+
deliveryProvenance,
|
|
13146
|
+
...fecSbnOf(sym.index),
|
|
13147
|
+
...catalogTrackName === void 0 ? {} : { catalogTrackName }
|
|
13148
|
+
}
|
|
13149
|
+
);
|
|
13150
|
+
}
|
|
13151
|
+
result = { ...result, symbols: result.symbols.filter((sym) => !untimedHead(sym)) };
|
|
13046
13152
|
const gated = this.#isFecTrack(ownerPacketId);
|
|
13047
13153
|
const assembler = this.#mseAssemblerFor(ownerPacketId, catalogTrackName);
|
|
13048
13154
|
if (assembler) {
|