@blockcast/mmt-container 2.2.0-main.efb4fa4521af → 2.2.0-main.fb5c7dfbe2de
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 +1336 -302
- package/dist/browser-runtime.js.map +3 -3
- 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/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 +70 -12
- package/dist/fec-manager.d.ts.map +1 -1
- package/dist/fec-manager.js +403 -58
- package/dist/fec-manager.js.map +2 -2
- 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/index.d.ts +4 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +2 -2
- package/dist/iso-block-locator.d.ts +48 -13
- package/dist/iso-block-locator.d.ts.map +1 -1
- package/dist/iso-block-locator.js +97 -25
- package/dist/iso-block-locator.js.map +2 -2
- 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/mmtp-container-parser.d.ts +79 -10
- package/dist/mmtp-container-parser.d.ts.map +1 -1
- package/dist/mmtp-container-parser.js +207 -26
- package/dist/mmtp-container-parser.js.map +2 -2
- package/dist/mmtp-container-parser.no-modules.js +209 -29
- package/dist/mmtp-container-parser.no-modules.js.map +2 -2
- package/dist/mmtp-decode-pipeline.js +206 -26
- package/dist/mmtp-decode-pipeline.js.map +2 -2
- package/dist/mmtp-router.d.ts +34 -8
- package/dist/mmtp-router.d.ts.map +1 -1
- package/dist/mmtp-router.js +555 -79
- package/dist/mmtp-router.js.map +2 -2
- package/dist/multicast-manager.d.ts +13 -3
- package/dist/multicast-manager.d.ts.map +1 -1
- package/dist/multicast-manager.js +980 -146
- package/dist/multicast-manager.js.map +2 -2
- package/dist/multicast-transport.js +28 -18
- package/dist/multicast-transport.js.map +2 -2
- package/dist/no-modules.js +206 -26
- package/dist/no-modules.js.map +2 -2
- package/dist/repair-fetch.d.ts +36 -8
- package/dist/repair-fetch.d.ts.map +1 -1
- package/dist/repair-fetch.js +285 -26
- package/dist/repair-fetch.js.map +3 -3
- package/dist/repair-layer-subscriptions.d.ts +6 -2
- package/dist/repair-layer-subscriptions.d.ts.map +1 -1
- package/dist/repair-layer-subscriptions.js +6 -3
- package/dist/repair-layer-subscriptions.js.map +2 -2
- package/dist/track-session.d.ts +1 -1
- package/dist/track-session.d.ts.map +1 -1
- package/dist/track-session.js +1 -0
- package/dist/track-session.js.map +2 -2
- package/dist/wasm-mmtp-container-parser.js +206 -26
- package/dist/wasm-mmtp-container-parser.js.map +2 -2
- package/package.json +8 -5
- package/src/catalog-fec-params.ts +36 -1
- package/src/cmcd-producer.ts +189 -179
- package/src/fec-manager.ts +433 -32
- package/src/fec-worker-setup.ts +2 -2
- package/src/index.ts +9 -2
- package/src/iso-block-locator.ts +133 -31
- package/src/iso-bmff-timing.ts +40 -1
- package/src/mmtp-container-parser.ts +306 -29
- package/src/mmtp-router.ts +548 -38
- package/src/multicast-manager.ts +44 -6
- package/src/repair-fetch.ts +363 -49
- package/src/repair-layer-subscriptions.ts +13 -5
- package/src/track-session.ts +4 -1
package/dist/index.d.ts
CHANGED
|
@@ -21,9 +21,9 @@ export { MmtpToCmaf, encodeDataSegment, encodeMultiSampleSegment, buildVideoInit
|
|
|
21
21
|
export { type PacketClass, getPacketType, isSignalingPacket, isSourcePacket, classifyPacket, } from './signaling.js';
|
|
22
22
|
export { CmafBlockAssembler, type CmafBlockSample, type CmafSampleOrderPolicy, type CmafSampleOrderStats, type CmafEmitStats, type CmafAudioConcealStats, type BlockAssemblerConfig, } from './cmaf-block-assembler.js';
|
|
23
23
|
export { CmafGroupBatcher, type CmafGroupBatcherConfig, } from './cmaf-group-batcher.js';
|
|
24
|
-
export { FECManager, type FECManagerConfig, type FecDecoderUnavailableEvent, type FecDecoderUnavailableReason, type FecFallbackDecoder, type WasmFecDecoder, type FecStats, type MulticastSymbolDelivery, type UndelimitedIsoLoss, type FecBlockResolution, type RepairVia, type FecRepairLayer, type FecFailClosedReason, type FecFailClosedEvent, } from './fec-manager.js';
|
|
24
|
+
export { FECManager, type FECManagerConfig, type FecDecoderUnavailableEvent, type FecDecoderUnavailableReason, type FecFallbackDecoder, type WasmFecDecoder, type FecStats, type MulticastSymbolDelivery, type UndelimitedIsoLoss, type ExpiredIsoHole, type IsoSpanFailure, type FecBlockResolution, type RepairVia, type FecRepairLayer, type FecFailClosedReason, type FecFailClosedEvent, } from './fec-manager.js';
|
|
25
25
|
export { MmtpRouter, KEYFRAME_LOST_TIMEOUT_SLACK, type FrameCallback, type FECManagerLike, type MmtpIngressContext, type KeyframeOverlayLeg, type KeyframeOverlayFec, type KeyframeOverlayStats, KEYFRAME_OVERLAY_EXTENSION_TYPE, keyframeOverlaySsId, type MmtpStreamIdentity, type RoutedPacketMeta, type StagedStreamSwitch, type StreamSwitchCommit, type StreamSwitchCommitReason, type StreamSwitchOptions, type StreamSwitchPosition, type TrackPacketCallback, } from './mmtp-router.js';
|
|
26
|
-
export { MmtpContainerParser, type MmtpParserConfig, type MmtpParserRecord, type MmtpParserFeedStats, type MmtpFeedDropReason, type MmtpFeedOutcomeKey, type TrackInfo, type MmtpReorderStats, type MmtpReorderFrameDiagnostics, type MmtpReorderStreamDiagnostics, type FrameMeta as ParserFrameMeta, type PacketInfo, type ParsedMmtpPacket, } from './mmtp-container-parser.js';
|
|
26
|
+
export { MmtpContainerParser, type MmtpParserConfig, type MmtpParserRecord, type MmtpParserFeedStats, type MmtpFeedDropReason, type MmtpFeedOutcomeKey, type TrackInfo, type MmtpReorderStats, type MmtpRecoveredHeadTimingStats, type MmtpReorderFrameDiagnostics, type MmtpReorderStreamDiagnostics, type FrameMeta as ParserFrameMeta, type PacketInfo, type ParsedMmtpPacket, } from './mmtp-container-parser.js';
|
|
27
27
|
export { datagramMfuReassembly, reliableMoqMfuReassembly, mmtpFrameReorderWindowFrames, mfuReassemblyTimeoutMs, type MfuReassemblyPolicy, type MmtpTrackType, type ReliableMoqReassemblyOptions, } from './mfu-reassembly-policy.js';
|
|
28
28
|
export { WasmMfuReassembler, resolveGlobalMmtWasmBindings, type MmtWasmBindings, type WasmMfuReassemblerOptions, } from './wasm-mfu-reassembler.js';
|
|
29
29
|
export { createWasmMmtpContainerParser, type WasmMmtpParserConfig, } from './wasm-mmtp-container-parser.js';
|
|
@@ -43,8 +43,8 @@ export { parseAacFrameSamples, parseAacSampleRate, parseOpusFrameSamples, frameS
|
|
|
43
43
|
export { TransportPool, type SubscriptionMode, type DirectSocketHealth, type Subscription, type SubscriptionStats, type AcquireOptions, type TransportPoolOptions, } from './transport-pool.js';
|
|
44
44
|
export { TrackSession, SessionManager, MAX_TAKEOVER_DEADLINE_MS, JOIN_DEFER_WARN_MS, computeFecDeliveryWindowMs, computeFecDeliveryWindowMediaUnits, computeFecLossWindowMs, type FecDeliveryWindowConfig, type TrackState, type TrackSessionConfig, type SessionManagerCallbacks, type MmtpTrackEvent, type MmtpSessionCallbacks, } from './track-session.js';
|
|
45
45
|
export { FecStarvationDetector, type FecStarvationSnapshot, type FecStarvationDetectorConfig, } from './fec-starvation-detector.js';
|
|
46
|
-
export { CmcdProducer, type
|
|
47
|
-
export { catalogFecInterleaveMs, resolveCatalogTrackFec, type CatalogTrackRef, type FecInterleaveCatalog, type GroupDurationCatalog, type KeyframeCadenceCatalog, type TrackFecParams, type TrackFecUnavailable, catalogTrackFecUnavailable, catalogGroupDurationMs, catalogKeyframeCadenceMs, catalogFecMediaUnitsPerSecond, type GroupDurationRendition, resolveCatalogTrackGroupDurationMs, joinedRepairSymbolCount, FEC_BLOCK_PROFILES, isFecBlockProfile, parseFecBlockProfile, type FecBlockProfile, resolveRepairLayers, catalogRepairTarget, DEFAULT_REPAIR_PRIORITY, MAX_ENCODING_SYMBOL_ID, MAX_RAPTORQ_SOURCE_SYMBOLS, MAX_REPAIR_SYMBOLS, REPAIR_PRIORITY_MAX, REPAIR_PRIORITY_MIN, type RepairLayerCatalog, type RepairLayerParams, type RepairLayersResolution, type RepairOverlayParams, validateFecCatalog, type FecCatalogCode, type FecCatalogInstance, type FecCatalogIssue, type FecCatalogOutcome, type FecCatalogReceiver, type FecCatalogReport, } from "./catalog-fec-params.js";
|
|
46
|
+
export { CmcdProducer, encodeCmcdRecord, type CmcdRecord, type CmcdToken, type CmcdValue, type CmcdProducerOptions, type SnapshotData, type TransportSnapshot, type TransportTransitionEvent, } from './cmcd-producer.js';
|
|
47
|
+
export { catalogFecInterleaveMs, resolveCatalogTrackFec, type CatalogTrackRef, type FecInterleaveCatalog, type GroupDurationCatalog, type KeyframeCadenceCatalog, type TrackFecParams, type TrackFecUnavailable, catalogTrackFecUnavailable, catalogTrackDeliveryMode, catalogGroupDurationMs, catalogKeyframeCadenceMs, catalogFecMediaUnitsPerSecond, type GroupDurationRendition, resolveCatalogTrackGroupDurationMs, joinedRepairSymbolCount, FEC_BLOCK_PROFILES, isFecBlockProfile, parseFecBlockProfile, type FecBlockProfile, resolveRepairLayers, catalogRepairTarget, DEFAULT_REPAIR_PRIORITY, MAX_ENCODING_SYMBOL_ID, MAX_RAPTORQ_SOURCE_SYMBOLS, MAX_REPAIR_SYMBOLS, REPAIR_PRIORITY_MAX, REPAIR_PRIORITY_MIN, type RepairLayerCatalog, type RepairLayerParams, type RepairLayersResolution, type RepairOverlayParams, validateFecCatalog, type FecCatalogCode, type FecCatalogInstance, type FecCatalogIssue, type FecCatalogOutcome, type FecCatalogReceiver, type FecCatalogReport, } from "./catalog-fec-params.js";
|
|
48
48
|
export { FEC_INACTIVE_REASONS, catalogDeclaresFec, resolveFecState, type FecActiveState, type FecInactiveReason, type FecInactiveState, type FecState, type FecStateEvidence, type FecTransportPolicy, type NoFecCounters, } from "./fec-state.js";
|
|
49
49
|
export { MmtpFecSession, type MmtpFecSessionCatalogFec, type MmtpFecSessionConfig, type MmtpFecSessionDecoder, type MmtpFecSessionDecoderConstructor, type MmtpFecSessionMessageConfig, type MmtpFecSessionMessageUpdate, type MmtpFecSessionMixedPathStats, type MmtpFecSessionPath, type MmtpFecSessionPathCounts, type MmtpFecSessionStats, } from "./mmtp-fec-session.js";
|
|
50
50
|
export { RepairLayerSubscriptions, type MoqRepairDelivery, type RepairLayerSource, type RepairLayerSubscriptionsOptions, type RepairLayerSubscriptionsSnapshot, type RepairTrackSubscription, } from "./repair-layer-subscriptions.js";
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -218,12 +218,14 @@ import {
|
|
|
218
218
|
FecStarvationDetector
|
|
219
219
|
} from "./fec-starvation-detector.js";
|
|
220
220
|
import {
|
|
221
|
-
CmcdProducer
|
|
221
|
+
CmcdProducer,
|
|
222
|
+
encodeCmcdRecord
|
|
222
223
|
} from "./cmcd-producer.js";
|
|
223
224
|
import {
|
|
224
225
|
catalogFecInterleaveMs,
|
|
225
226
|
resolveCatalogTrackFec,
|
|
226
227
|
catalogTrackFecUnavailable,
|
|
228
|
+
catalogTrackDeliveryMode,
|
|
227
229
|
catalogGroupDurationMs,
|
|
228
230
|
catalogKeyframeCadenceMs,
|
|
229
231
|
catalogFecMediaUnitsPerSecond,
|
|
@@ -340,6 +342,7 @@ export {
|
|
|
340
342
|
catalogGroupDurationMs,
|
|
341
343
|
catalogKeyframeCadenceMs,
|
|
342
344
|
catalogRepairTarget,
|
|
345
|
+
catalogTrackDeliveryMode,
|
|
343
346
|
catalogTrackFecUnavailable,
|
|
344
347
|
classifyH264Keyframe,
|
|
345
348
|
classifyHevcKeyframe,
|
|
@@ -360,6 +363,7 @@ export {
|
|
|
360
363
|
detectH264Keyframe,
|
|
361
364
|
detectHevcKeyframe,
|
|
362
365
|
driftCheck,
|
|
366
|
+
encodeCmcdRecord,
|
|
363
367
|
encodeDataSegment,
|
|
364
368
|
encodeFecSourceInfo,
|
|
365
369
|
encodeLocTimestamp,
|
package/dist/index.js.map
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../src/index.ts"],
|
|
4
|
-
"sourcesContent": ["/**\n * @mmt/container - MMTP/LOC Container Parsing\n *\n * Shared container parsing library for MMT over MoQ and SSM.\n *\n * @packageDocumentation\n */\n\nexport type { AuthoredTiming } from './authored-timing.js'\n\n// MFU Reassembler\nexport {\n type MFUFragment,\n type ReassembledMFU,\n type ReassemblerStats,\n type MFUReassemblerOptions,\n type MfuReassemblerBackend,\n type MmtpSourcePath,\n MFUReassembler,\n isMfuReassemblyError,\n MfuReassemblyError,\n type MfuReassemblyErrorCode,\n createFragment,\n processMMTPWithReassembly,\n} from './mfu-reassembler.js'\n\n// Sample combiner: combines subsample data units (moqcast #37) of one\n// timed sample, each already reassembled by MFUReassembler, back into one\n// contiguous sample.\nexport {\n type CombinedSample,\n type SampleCombinerStats,\n SampleCombiner,\n SampleCombineError,\n type SampleCombineErrorCode,\n} from './sample-combiner.js'\n\n// fMP4 data-unit completion policy (BLO-13291)\nexport { isCompleteFmp4DataUnit } from './fmp4-completion.js'\n\n\n// The bc-provenance v2 surface (@blockcast/mmt-manifest-verify) is intentionally\n// NOT re-exported from the eager index barrel: it imports @noble/curves and\n// @noble/hashes, bare specifiers the moq-lib / shred / moqtail players (which\n// load the barrel as raw ESM via an import map) cannot resolve. Import it from\n// that package directly. The router's provenance hooks take it by type only.\n\n// H.264/AVC + H.265/HEVC Codec Utilities\nexport {\n type AvcCInfo,\n type AacAscInfo,\n type SpsPps,\n type FallbackAvcCOptions,\n type HevcParameterSets,\n type H264KeyframeDetectionOptions,\n type H264AvccSample,\n type H264SampleFormat,\n type H264NalUnitFormat,\n type H264NalUnitSample,\n extractAvcCFromInitSegment,\n extractAacAscFromInitSegment,\n normalizeMmtpInitSegment,\n generateFallbackAvcC,\n extractSpsPpsFromAvcC,\n avccToAnnexB,\n extractCodecDescriptionFromAnnexB,\n codecStringFromAvcC,\n isAnnexB,\n isCompleteAvccSample,\n findAnnexBStartCode,\n splitAnnexBNalUnits,\n annexBToAvcc,\n normalizeH264SampleToAvcc,\n splitH264SampleNalUnits,\n classifyH264Keyframe,\n detectH264Keyframe,\n mmtpTimestampToMicros,\n isFmp4InitSegment,\n wrapAdtsFrame,\n // HEVC (BLO-7764): build the hvcC description WebCodecs requires for length-prefixed H.265.\n isHevcCodec,\n removeEmulationPrevention,\n splitAvccNalUnits,\n extractHevcParameterSets,\n generateHvcCFromParameterSets,\n extractHevcCodecDescription,\n hevcVclOnly,\n // HEVC receive path (BLO-35597): catalog-selected family, IRAP keyframes,\n // SPS-derived codec string, MSE sample normalization.\n type VideoSampleEntry,\n type VideoCodecFamily,\n type HevcSpsInfo,\n type HevcCmafSample,\n videoSampleEntryFromCodecString,\n videoCodecFamily,\n HEVC_NAL_UNIT_TYPE,\n HEVC_NAL_HEADER_LENGTH,\n hevcNalUnitType,\n isHevcIrapNalUnitType,\n parseHevcSps,\n hevcCodecStringFromSps,\n classifyHevcKeyframe,\n detectHevcKeyframe,\n normalizeHevcSampleToLengthPrefixed,\n prepareHevcCmafSample,\n} from './codec-utils.js'\n\n// LOC FEC Extensions (draft-ramadan-moq-fec \u00A75.3, object extension 0x11)\nexport {\n LOCHeaderExtensionId,\n FEC_SS_ID_MAX,\n FEC_SOURCE_INFO_LEN,\n encodeFecSourceInfo,\n decodeFecSourceInfo,\n FecSourceInfo,\n AuthTag,\n} from './loc.js'\n\n// CARP Catalog Extensions (draft-law-ramadan-moq-carp-reliability \u00A73-4)\n// + Track Timing (draft-ramadan-moq-mmt-01 \u00A74.4.2)\nexport {\n type FecCatalogConfig,\n type FecInstanceConfig,\n type MulticastProtocol,\n type MulticastTrack,\n type MulticastTrackObject,\n type MulticastEndpoint,\n type AmtDiscovery,\n type MulticastCatalogConfig,\n type NetworkSource,\n isMulticastTrackObject,\n isMulticastEndpoint,\n isMulticastCatalogConfig,\n type TrackTimingConfig,\n isTrackTimingConfig,\n resolveGroupDurationTicks,\n resolveGroupDurationMs,\n validateSwitchingSetTiming,\n type CmsfCatalog,\n type CmsfCatalogErrorCode,\n CmsfCatalogValidationError,\n validateCmsfMmtpCatalog,\n type ArchiveConfig,\n archiveOrigin,\n} from './carp-catalog.js'\n\n// Strict v2 multicast delivery catalog (DASH/HLS/MMTP routes), moved from\n// moqtail-private so players share one contract (BLO-47003).\nexport {\n normalizeDeliveryCatalog,\n type DeliveryPackaging,\n type DeliveryContentType,\n type DeliveryEndpoint,\n type DeliveryPolicy,\n type DeliveryObjectMapping,\n type DeliveryFec,\n type DeliveryRouteBase,\n type DashDeliveryRoute,\n type HlsDeliveryRoute,\n type MmtpDeliveryRoute,\n type DashDeliveryConfig,\n type HlsDeliveryConfig,\n type MmtpDeliveryConfig,\n type DeliveryMulticastBase,\n type DeliveryMulticastV2,\n type DeliveryCatalogV2,\n} from './delivery-catalog.js'\n\n// Multicast input contract \u2014 validator + builder for publisher-emitted\n// catalogs (draft-ramadan-moq-multicast-01 \u00A74.1, BLO-3323 A.1).\n// `multicastFromEnv` is the env-var helper used by FFmpeg and the\n// cast bridge (BLO-3337).\nexport {\n type MulticastInput,\n type MulticastEndpointInput,\n type MulticastInputErrorKind,\n MulticastInputError,\n multicastFromConfig,\n multicastFromEnv,\n} from './multicast-input.js'\n\n// Phase 14 catalog override hook (test harness injects\n// globalThis.__PHASE14_CATALOG_OVERRIDE; see 7point-validation.test.mjs)\nexport {\n type Phase14OverrideTrack,\n type Phase14CatalogOverride,\n getPhase14CatalogOverride,\n mergeOverrideIntoHangRenditions,\n mergeOverrideIntoCmsfTracks,\n} from './phase14-catalog-override.js'\n\n// Multicast Unwrap (container-aware MMTP dispatch)\nexport {\n type MulticastContainerContract,\n type MulticastContainerErrorCode,\n type FecPayloadId as MulticastFecPayloadId,\n type MulticastFrame,\n MulticastContainerContractError,\n validateMulticastContainerContract,\n unwrapMulticastPacket,\n} from './multicast-unwrap.js'\n\n// Timestamp Codec \u2014 container-format-agnostic timestamp encoding/decoding\nexport {\n type ContainerFormat,\n type LocHeader,\n encodeTimestamp,\n decodeTimestamp,\n getTimestampSize,\n decodeLocHeader,\n decodeLocTimestamp,\n encodeLocTimestamp,\n} from './timestamp-codec.js'\n\n// MMTP \u2192 CMAF conversion (draft-ramadan-moq-mmt \u00A75.3)\nexport {\n MmtpToCmaf,\n encodeDataSegment,\n encodeMultiSampleSegment,\n buildVideoInitSegment,\n buildHevcVideoInitSegment,\n buildAudioInitSegment,\n generateSilenceFrame,\n} from './mmtp-to-cmaf.js'\n\n// MMTP Signaling \u2014 packet type detection and classification\nexport {\n type PacketClass,\n getPacketType,\n isSignalingPacket,\n isSourcePacket,\n classifyPacket,\n} from './signaling.js'\n\n// FEC Block \u2192 CMAF Segment Assembler\nexport {\n CmafBlockAssembler,\n type CmafBlockSample,\n type CmafSampleOrderPolicy,\n type CmafSampleOrderStats,\n type CmafEmitStats,\n type CmafAudioConcealStats,\n type BlockAssemblerConfig,\n} from './cmaf-block-assembler.js'\n\n// MoQ Group \u2192 CMAF Segment Batcher\nexport {\n CmafGroupBatcher,\n type CmafGroupBatcherConfig,\n} from './cmaf-group-batcher.js'\n\n// FEC Manager (codec-agnostic FEC decode service)\nexport {\n FECManager,\n type FECManagerConfig,\n type FecDecoderUnavailableEvent,\n type FecDecoderUnavailableReason,\n type FecFallbackDecoder,\n type WasmFecDecoder,\n type FecStats,\n type MulticastSymbolDelivery,\n type UndelimitedIsoLoss,\n type FecBlockResolution,\n type RepairVia,\n type FecRepairLayer,\n type FecFailClosedReason,\n type FecFailClosedEvent,\n} from './fec-manager.js'\n\n// MMTP Router (packet processing + frame routing)\nexport {\n MmtpRouter,\n KEYFRAME_LOST_TIMEOUT_SLACK,\n type FrameCallback,\n type FECManagerLike,\n type MmtpIngressContext,\n type KeyframeOverlayLeg,\n type KeyframeOverlayFec,\n type KeyframeOverlayStats,\n KEYFRAME_OVERLAY_EXTENSION_TYPE,\n keyframeOverlaySsId,\n type MmtpStreamIdentity,\n type RoutedPacketMeta,\n type StagedStreamSwitch,\n type StreamSwitchCommit,\n type StreamSwitchCommitReason,\n type StreamSwitchOptions,\n type StreamSwitchPosition,\n type TrackPacketCallback,\n} from './mmtp-router.js'\n\n// MmtpContainerParser (unified, transport-agnostic)\nexport {\n MmtpContainerParser,\n type MmtpParserConfig,\n type MmtpParserRecord,\n type MmtpParserFeedStats,\n type MmtpFeedDropReason,\n type MmtpFeedOutcomeKey,\n type TrackInfo,\n type MmtpReorderStats,\n type MmtpReorderFrameDiagnostics,\n type MmtpReorderStreamDiagnostics,\n type FrameMeta as ParserFrameMeta,\n type PacketInfo,\n type ParsedMmtpPacket,\n} from './mmtp-container-parser.js'\n\nexport {\n datagramMfuReassembly,\n reliableMoqMfuReassembly,\n mmtpFrameReorderWindowFrames,\n mfuReassemblyTimeoutMs,\n type MfuReassemblyPolicy,\n type MmtpTrackType,\n type ReliableMoqReassemblyOptions,\n} from './mfu-reassembly-policy.js'\n\nexport {\n WasmMfuReassembler,\n resolveGlobalMmtWasmBindings,\n type MmtWasmBindings,\n type WasmMfuReassemblerOptions,\n} from './wasm-mfu-reassembler.js'\n\nexport {\n createWasmMmtpContainerParser,\n type WasmMmtpParserConfig,\n} from './wasm-mmtp-container-parser.js'\n\n// Multicast Transport (SSM join/socket/watchdog)\nexport {\n MulticastTransport,\n type MulticastFailbackReason,\n type MulticastJoinDeclineReason,\n type MulticastJoinOutcome,\n type MulticastJoinProviderError,\n type MulticastJoinStats,\n type MulticastTransportConfig,\n type ResolvedMulticastTransport,\n} from './multicast-transport.js'\n\n// Multicast Manager (backwards-compat facade composing all three)\nexport {\n MulticastManager,\n forwardRepairLifecycleEvents,\n isRepairLifecycleEvent,\n REPAIR_LIFECYCLE_EVENT_TYPE,\n REPAIR_LIFECYCLE_LOG_PREFIX,\n type MulticastEndpointConfig,\n type MultiTrackCatalog,\n type MultiTrackCatalogTrack,\n type WasmFecDecoderFactory,\n type RepairBlockIdentity,\n type RepairLifecycleApplicationEvent,\n type RepairLifecycleEventOptions,\n type RepairLifecycleEventFactory,\n type RepairLifecycleEventTarget,\n type RepairLifecycleSource,\n type RepairLifecycleEvent,\n type RepairLifecycleObserver,\n type RepairStreamIdentity,\n type BlockPolicyStats,\n type RenditionSwitch,\n type RenditionSwitchCancel,\n type RenditionSwitchRequest,\n type RenditionSwitchState,\n} from './multicast-manager.js'\n\n// Keyframe-protected FEC repair policy: block classification, repair\n// priority, and the stall/conceal decision every player applies.\nexport {\n BlockClassifier,\n decideGap,\n deriveBlockClassifierGeometry,\n keyframeIntervalMediaTicks,\n repairPriorityForClass,\n type BlockClass,\n type BlockClassifierGeometry,\n type BlockClassifierGeometryInput,\n type ClassifierChange,\n type ClassifierMode,\n type ClassifierReason,\n type DecideGapInput,\n type FrameGapAction,\n type FrameGapDecision,\n type FrameGapReason,\n type GapFrameEvidence,\n type GapStreamIdentity,\n type KeyframeInterval,\n type ReclassificationEvidence,\n type RepairPriority,\n type SourceSymbolEvidence,\n type TrackKind,\n} from './block-policy.js'\n\n// Sink-side concealment: hold last good frame, exact audio gap sizing.\nexport {\n AudioGapConcealer,\n HoldLastTimeline,\n videoConcealModeForCodec,\n type AudioAccessUnit,\n type AudioGapConcealerStats,\n type AudioGapPlan,\n type HoldLastTimelineOptions,\n type HoldLastTimelineStats,\n type TimelineEmit,\n type TimelineSample,\n type VideoConcealMode,\n} from './conceal-timeline.js'\n\n// FEC Worker Setup (shared fec-setup helper)\nexport {\n setupFecWorkerForTrack,\n type FecWorkerAssetUrls,\n type FecWorkerSetupOptions,\n type FecWorkerSetupResult,\n} from './fec-worker-setup.js'\n\n// Media Router (shared MoQ \u2194 multicast source arbitration)\nexport {\n MediaRouter,\n TrackSourceConflictError,\n type MediaRouterOptions,\n type TrackSource,\n type SetTrackSourceOptions,\n type MigrationPolicy,\n type FrameMeta as RouterFrameMeta,\n type FrameKind,\n type SourceKind,\n type DeltaFallbackConfig,\n} from './media-router.js'\nexport {\n resolveDeltaFallback,\n type ResolvedDeltaFallback,\n} from './delta-fallback-config.js'\n\n// Group-alignment primitive \u2014 shared with Go sender + Rust relay.\n// See align.ts docstring for cross-language contract. Authoritative form\n// is integer-ticks (groupIdForTicks); seconds-form is the legacy ramp.\nexport {\n groupIdForTicks,\n groupIdFor,\n secondsFromTicks,\n asSeconds,\n driftCheck,\n type Seconds,\n type DriftCheckResult,\n} from './align.js'\n\n// Audio Ring Buffer \u2014 DEPRECATED: canonical location is @blockcast/mmt-render/audio.\n// Kept here for backwards compat with consumers not yet migrated to mmt-render.\n// The mmt-render version includes warmup-delayed clock recovery + adaptive target fill.\nexport {\n AudioRingBuffer,\n type AudioRingBufferConfig,\n} from './audio-ring-buffer.js'\n\n// MMTP Decode Pipeline (MoQ + multicast unified decode path)\nexport {\n MmtpDecodePipeline,\n type PipelineFecClient,\n type PipelineConfig,\n type MmtpFeedStats,\n} from './mmtp-decode-pipeline.js'\n\n// Track Pipeline (per-track transport promotion + ABR)\nexport {\n TrackPipeline,\n type TrackTransport,\n type TrackTransportPreference,\n type TransportCapabilityReport,\n type TrackTransportResolution,\n type TrackSourceFactory,\n} from './track-pipeline.js'\n\n// Track Pipeline Setup (shared wiring helper for both players)\nexport {\n setupTrackPipeline,\n type TrackDescriptor,\n type SetupTrackPipelineOptions,\n type SetupTrackPipelineResult,\n} from './track-pipeline-setup.js'\n\n// Audio Init Data Parser (spec-compliant frame samples from initData)\nexport {\n parseAacFrameSamples,\n parseAacSampleRate,\n parseOpusFrameSamples,\n frameSamplesFromInit,\n} from './audio-init-parser.js'\n\n// Transport Pool (ref-counted subscription lifecycle, PIM)\nexport {\n TransportPool,\n type SubscriptionMode,\n type DirectSocketHealth,\n type Subscription,\n type SubscriptionStats,\n type AcquireOptions,\n type TransportPoolOptions,\n} from './transport-pool.js'\n\n// Track Session + Session Manager (per-track state machine, Patent Claim 9)\nexport {\n TrackSession,\n SessionManager,\n MAX_TAKEOVER_DEADLINE_MS,\n JOIN_DEFER_WARN_MS,\n computeFecDeliveryWindowMs,\n computeFecDeliveryWindowMediaUnits,\n computeFecLossWindowMs,\n type FecDeliveryWindowConfig,\n type TrackState,\n type TrackSessionConfig,\n type SessionManagerCallbacks,\n type MmtpTrackEvent,\n type MmtpSessionCallbacks,\n} from './track-session.js'\n\n// FEC starvation detector (post-cutover repair-only/no-progress detection,\n// drives TrackSession lossDetected/lossRecovered \u2014 BLO-9413/D4)\nexport {\n FecStarvationDetector,\n type FecStarvationSnapshot,\n type FecStarvationDetectorConfig,\n} from './fec-starvation-detector.js'\n\n// CMCD Producer (x-bc-* vendor key telemetry, BLO-1044)\nexport {\n CmcdProducer,\n type CmcdParams,\n type CmcdProducerOptions,\n type SnapshotData,\n type TransportSnapshot,\n type TransportTransitionEvent,\n} from './cmcd-producer.js'\n\nexport {\n\tcatalogFecInterleaveMs,\n\tresolveCatalogTrackFec,\n\ttype CatalogTrackRef,\n\ttype FecInterleaveCatalog,\n\ttype GroupDurationCatalog,\n\ttype KeyframeCadenceCatalog,\n\ttype TrackFecParams,\n\ttype TrackFecUnavailable,\n\tcatalogTrackFecUnavailable,\n\tcatalogGroupDurationMs,\n\tcatalogKeyframeCadenceMs,\n\tcatalogFecMediaUnitsPerSecond,\n\ttype GroupDurationRendition,\n\tresolveCatalogTrackGroupDurationMs,\n\tjoinedRepairSymbolCount,\n\tFEC_BLOCK_PROFILES,\n\tisFecBlockProfile,\n\tparseFecBlockProfile,\n\ttype FecBlockProfile,\n\tresolveRepairLayers,\n\tcatalogRepairTarget,\n\tDEFAULT_REPAIR_PRIORITY,\n\tMAX_ENCODING_SYMBOL_ID,\n\tMAX_RAPTORQ_SOURCE_SYMBOLS,\n\tMAX_REPAIR_SYMBOLS,\n\tREPAIR_PRIORITY_MAX,\n\tREPAIR_PRIORITY_MIN,\n\ttype RepairLayerCatalog,\n\ttype RepairLayerParams,\n\ttype RepairLayersResolution,\n\ttype RepairOverlayParams,\n\t// FEC catalog binding, draft-ramadan-moq-fec-catalog-00 array shape (BLO-50171).\n\tvalidateFecCatalog,\n\ttype FecCatalogCode,\n\ttype FecCatalogInstance,\n\ttype FecCatalogIssue,\n\ttype FecCatalogOutcome,\n\ttype FecCatalogReceiver,\n\ttype FecCatalogReport,\n} from \"./catalog-fec-params.js\";\n\n// Typed FEC state (active with counters, or inactive with a reason) shared by\n// every player, resolved from catalog, transport policy, bridge and\n// subscription state rather than from counters.\nexport {\n\tFEC_INACTIVE_REASONS,\n\tcatalogDeclaresFec,\n\tresolveFecState,\n\ttype FecActiveState,\n\ttype FecInactiveReason,\n\ttype FecInactiveState,\n\ttype FecState,\n\ttype FecStateEvidence,\n\ttype FecTransportPolicy,\n\ttype NoFecCounters,\n} from \"./fec-state.js\";\n\n// In-band AL-FEC for one MMTP asset over a MoQT subscription, for a player\n// that owns its own parser (the Shaka MSF MMTP packaging).\nexport {\n\tMmtpFecSession,\n\ttype MmtpFecSessionCatalogFec,\n\ttype MmtpFecSessionConfig,\n\ttype MmtpFecSessionDecoder,\n\ttype MmtpFecSessionDecoderConstructor,\n\ttype MmtpFecSessionMessageConfig,\n\ttype MmtpFecSessionMessageUpdate,\n\ttype MmtpFecSessionMixedPathStats,\n\ttype MmtpFecSessionPath,\n\ttype MmtpFecSessionPathCounts,\n\ttype MmtpFecSessionStats,\n} from \"./mmtp-fec-session.js\";\n// MoQ repair-layer subscriptions by measured loss (BLO-35456)\nexport {\n\tRepairLayerSubscriptions,\n\ttype MoqRepairDelivery,\n\ttype RepairLayerSource,\n\ttype RepairLayerSubscriptionsOptions,\n\ttype RepairLayerSubscriptionsSnapshot,\n\ttype RepairTrackSubscription,\n} from \"./repair-layer-subscriptions.js\";\n\nexport {\n\tcatalogAmtNetworkSource,\n\tcatalogAtsc3NetworkSource,\n\tDEFAULT_AMT_RELAY_PORT,\n\ttype AmtNetworkSource,\n\ttype Atsc3NetworkSource,\n\ttype CatalogNetworkSource,\n} from \"./catalog-network-source.js\";\n\n// D-28 shared repair-fetch shell (per-SBN on-demand MoQ FEC repair backfill)\nexport {\n wireRepairFetch,\n repairFetchSubscriberPriority,\n SOURCE_MEDIA_PRIORITY_MAX,\n type ResolveRepairTarget,\n type RepairTarget,\n type RepairFetchHost,\n type RepairFetchPriority,\n type RepairFetchRequest,\n type RepairFetchTransport,\n type RepairRangeFetchRequest,\n type RepairRangeFetchTransport,\n type RepairDeadlineBound,\n type RepairPriorityReason,\n type RepairSendMeasurement,\n type RepairSkipReason,\n type RepairStopReason,\n type RepairSubscribeCallback,\n type WireRepairFetchOptions,\n} from './repair-fetch.js'\n// MoQ repair group ids for iso-ssbg1-v1 blocks (BLO-35597): the 62-bit\n// wrap-epoch-extended SS_Start and the repair FETCH range for a lost SS_ID.\nexport {\n extSsStart,\n extendSsId,\n repairFetchRange,\n type RepairFetchRange,\n} from '@blockcast/mmt-fec'\nexport { DeliveryGapEstimator } from './delivery-gap.js'\n"],
|
|
5
|
-
"mappings": ";AAWA;AAAA,EAOE;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,OACK;AAKP;AAAA,EAGE;AAAA,EACA;AAAA,OAEK;AAGP,SAAS,8BAA8B;AAUvC;AAAA,EAWE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAOA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAIP;AAAA,EAUE;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAGA;AAAA,EACA;AAAA,EAEA;AAAA,OACK;AAIP;AAAA,EACE;AAAA,OAiBK;AAMP;AAAA,EAIE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAIP;AAAA,EAGE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP;AAAA,EAKE;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP;AAAA,EAGE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP;AAAA,EAEE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP;AAAA,EACE;AAAA,OAOK;AAGP;AAAA,EACE;AAAA,OAEK;AAGP;AAAA,EACE;AAAA,
|
|
4
|
+
"sourcesContent": ["/**\n * @mmt/container - MMTP/LOC Container Parsing\n *\n * Shared container parsing library for MMT over MoQ and SSM.\n *\n * @packageDocumentation\n */\n\nexport type { AuthoredTiming } from './authored-timing.js'\n\n// MFU Reassembler\nexport {\n type MFUFragment,\n type ReassembledMFU,\n type ReassemblerStats,\n type MFUReassemblerOptions,\n type MfuReassemblerBackend,\n type MmtpSourcePath,\n MFUReassembler,\n isMfuReassemblyError,\n MfuReassemblyError,\n type MfuReassemblyErrorCode,\n createFragment,\n processMMTPWithReassembly,\n} from './mfu-reassembler.js'\n\n// Sample combiner: combines subsample data units (moqcast #37) of one\n// timed sample, each already reassembled by MFUReassembler, back into one\n// contiguous sample.\nexport {\n type CombinedSample,\n type SampleCombinerStats,\n SampleCombiner,\n SampleCombineError,\n type SampleCombineErrorCode,\n} from './sample-combiner.js'\n\n// fMP4 data-unit completion policy (BLO-13291)\nexport { isCompleteFmp4DataUnit } from './fmp4-completion.js'\n\n\n// The bc-provenance v2 surface (@blockcast/mmt-manifest-verify) is intentionally\n// NOT re-exported from the eager index barrel: it imports @noble/curves and\n// @noble/hashes, bare specifiers the moq-lib / shred / moqtail players (which\n// load the barrel as raw ESM via an import map) cannot resolve. Import it from\n// that package directly. The router's provenance hooks take it by type only.\n\n// H.264/AVC + H.265/HEVC Codec Utilities\nexport {\n type AvcCInfo,\n type AacAscInfo,\n type SpsPps,\n type FallbackAvcCOptions,\n type HevcParameterSets,\n type H264KeyframeDetectionOptions,\n type H264AvccSample,\n type H264SampleFormat,\n type H264NalUnitFormat,\n type H264NalUnitSample,\n extractAvcCFromInitSegment,\n extractAacAscFromInitSegment,\n normalizeMmtpInitSegment,\n generateFallbackAvcC,\n extractSpsPpsFromAvcC,\n avccToAnnexB,\n extractCodecDescriptionFromAnnexB,\n codecStringFromAvcC,\n isAnnexB,\n isCompleteAvccSample,\n findAnnexBStartCode,\n splitAnnexBNalUnits,\n annexBToAvcc,\n normalizeH264SampleToAvcc,\n splitH264SampleNalUnits,\n classifyH264Keyframe,\n detectH264Keyframe,\n mmtpTimestampToMicros,\n isFmp4InitSegment,\n wrapAdtsFrame,\n // HEVC (BLO-7764): build the hvcC description WebCodecs requires for length-prefixed H.265.\n isHevcCodec,\n removeEmulationPrevention,\n splitAvccNalUnits,\n extractHevcParameterSets,\n generateHvcCFromParameterSets,\n extractHevcCodecDescription,\n hevcVclOnly,\n // HEVC receive path (BLO-35597): catalog-selected family, IRAP keyframes,\n // SPS-derived codec string, MSE sample normalization.\n type VideoSampleEntry,\n type VideoCodecFamily,\n type HevcSpsInfo,\n type HevcCmafSample,\n videoSampleEntryFromCodecString,\n videoCodecFamily,\n HEVC_NAL_UNIT_TYPE,\n HEVC_NAL_HEADER_LENGTH,\n hevcNalUnitType,\n isHevcIrapNalUnitType,\n parseHevcSps,\n hevcCodecStringFromSps,\n classifyHevcKeyframe,\n detectHevcKeyframe,\n normalizeHevcSampleToLengthPrefixed,\n prepareHevcCmafSample,\n} from './codec-utils.js'\n\n// LOC FEC Extensions (draft-ramadan-moq-fec \u00A75.3, object extension 0x11)\nexport {\n LOCHeaderExtensionId,\n FEC_SS_ID_MAX,\n FEC_SOURCE_INFO_LEN,\n encodeFecSourceInfo,\n decodeFecSourceInfo,\n FecSourceInfo,\n AuthTag,\n} from './loc.js'\n\n// CARP Catalog Extensions (draft-law-ramadan-moq-carp-reliability \u00A73-4)\n// + Track Timing (draft-ramadan-moq-mmt-01 \u00A74.4.2)\nexport {\n type FecCatalogConfig,\n type FecInstanceConfig,\n type MulticastProtocol,\n type MulticastTrack,\n type MulticastTrackObject,\n type MulticastEndpoint,\n type AmtDiscovery,\n type MulticastCatalogConfig,\n type NetworkSource,\n isMulticastTrackObject,\n isMulticastEndpoint,\n isMulticastCatalogConfig,\n type TrackTimingConfig,\n isTrackTimingConfig,\n resolveGroupDurationTicks,\n resolveGroupDurationMs,\n validateSwitchingSetTiming,\n type CmsfCatalog,\n type CmsfCatalogErrorCode,\n CmsfCatalogValidationError,\n validateCmsfMmtpCatalog,\n type ArchiveConfig,\n archiveOrigin,\n} from './carp-catalog.js'\n\n// Strict v2 multicast delivery catalog (DASH/HLS/MMTP routes), moved from\n// moqtail-private so players share one contract (BLO-47003).\nexport {\n normalizeDeliveryCatalog,\n type DeliveryPackaging,\n type DeliveryContentType,\n type DeliveryEndpoint,\n type DeliveryPolicy,\n type DeliveryObjectMapping,\n type DeliveryFec,\n type DeliveryRouteBase,\n type DashDeliveryRoute,\n type HlsDeliveryRoute,\n type MmtpDeliveryRoute,\n type DashDeliveryConfig,\n type HlsDeliveryConfig,\n type MmtpDeliveryConfig,\n type DeliveryMulticastBase,\n type DeliveryMulticastV2,\n type DeliveryCatalogV2,\n} from './delivery-catalog.js'\n\n// Multicast input contract \u2014 validator + builder for publisher-emitted\n// catalogs (draft-ramadan-moq-multicast-01 \u00A74.1, BLO-3323 A.1).\n// `multicastFromEnv` is the env-var helper used by FFmpeg and the\n// cast bridge (BLO-3337).\nexport {\n type MulticastInput,\n type MulticastEndpointInput,\n type MulticastInputErrorKind,\n MulticastInputError,\n multicastFromConfig,\n multicastFromEnv,\n} from './multicast-input.js'\n\n// Phase 14 catalog override hook (test harness injects\n// globalThis.__PHASE14_CATALOG_OVERRIDE; see 7point-validation.test.mjs)\nexport {\n type Phase14OverrideTrack,\n type Phase14CatalogOverride,\n getPhase14CatalogOverride,\n mergeOverrideIntoHangRenditions,\n mergeOverrideIntoCmsfTracks,\n} from './phase14-catalog-override.js'\n\n// Multicast Unwrap (container-aware MMTP dispatch)\nexport {\n type MulticastContainerContract,\n type MulticastContainerErrorCode,\n type FecPayloadId as MulticastFecPayloadId,\n type MulticastFrame,\n MulticastContainerContractError,\n validateMulticastContainerContract,\n unwrapMulticastPacket,\n} from './multicast-unwrap.js'\n\n// Timestamp Codec \u2014 container-format-agnostic timestamp encoding/decoding\nexport {\n type ContainerFormat,\n type LocHeader,\n encodeTimestamp,\n decodeTimestamp,\n getTimestampSize,\n decodeLocHeader,\n decodeLocTimestamp,\n encodeLocTimestamp,\n} from './timestamp-codec.js'\n\n// MMTP \u2192 CMAF conversion (draft-ramadan-moq-mmt \u00A75.3)\nexport {\n MmtpToCmaf,\n encodeDataSegment,\n encodeMultiSampleSegment,\n buildVideoInitSegment,\n buildHevcVideoInitSegment,\n buildAudioInitSegment,\n generateSilenceFrame,\n} from './mmtp-to-cmaf.js'\n\n// MMTP Signaling \u2014 packet type detection and classification\nexport {\n type PacketClass,\n getPacketType,\n isSignalingPacket,\n isSourcePacket,\n classifyPacket,\n} from './signaling.js'\n\n// FEC Block \u2192 CMAF Segment Assembler\nexport {\n CmafBlockAssembler,\n type CmafBlockSample,\n type CmafSampleOrderPolicy,\n type CmafSampleOrderStats,\n type CmafEmitStats,\n type CmafAudioConcealStats,\n type BlockAssemblerConfig,\n} from './cmaf-block-assembler.js'\n\n// MoQ Group \u2192 CMAF Segment Batcher\nexport {\n CmafGroupBatcher,\n type CmafGroupBatcherConfig,\n} from './cmaf-group-batcher.js'\n\n// FEC Manager (codec-agnostic FEC decode service)\nexport {\n FECManager,\n type FECManagerConfig,\n type FecDecoderUnavailableEvent,\n type FecDecoderUnavailableReason,\n type FecFallbackDecoder,\n type WasmFecDecoder,\n type FecStats,\n type MulticastSymbolDelivery,\n type UndelimitedIsoLoss,\n type ExpiredIsoHole,\n type IsoSpanFailure,\n type FecBlockResolution,\n type RepairVia,\n type FecRepairLayer,\n type FecFailClosedReason,\n type FecFailClosedEvent,\n} from './fec-manager.js'\n\n// MMTP Router (packet processing + frame routing)\nexport {\n MmtpRouter,\n KEYFRAME_LOST_TIMEOUT_SLACK,\n type FrameCallback,\n type FECManagerLike,\n type MmtpIngressContext,\n type KeyframeOverlayLeg,\n type KeyframeOverlayFec,\n type KeyframeOverlayStats,\n KEYFRAME_OVERLAY_EXTENSION_TYPE,\n keyframeOverlaySsId,\n type MmtpStreamIdentity,\n type RoutedPacketMeta,\n type StagedStreamSwitch,\n type StreamSwitchCommit,\n type StreamSwitchCommitReason,\n type StreamSwitchOptions,\n type StreamSwitchPosition,\n type TrackPacketCallback,\n} from './mmtp-router.js'\n\n// MmtpContainerParser (unified, transport-agnostic)\nexport {\n MmtpContainerParser,\n type MmtpParserConfig,\n type MmtpParserRecord,\n type MmtpParserFeedStats,\n type MmtpFeedDropReason,\n type MmtpFeedOutcomeKey,\n type TrackInfo,\n type MmtpReorderStats,\n type MmtpRecoveredHeadTimingStats,\n type MmtpReorderFrameDiagnostics,\n type MmtpReorderStreamDiagnostics,\n type FrameMeta as ParserFrameMeta,\n type PacketInfo,\n type ParsedMmtpPacket,\n} from './mmtp-container-parser.js'\n\nexport {\n datagramMfuReassembly,\n reliableMoqMfuReassembly,\n mmtpFrameReorderWindowFrames,\n mfuReassemblyTimeoutMs,\n type MfuReassemblyPolicy,\n type MmtpTrackType,\n type ReliableMoqReassemblyOptions,\n} from './mfu-reassembly-policy.js'\n\nexport {\n WasmMfuReassembler,\n resolveGlobalMmtWasmBindings,\n type MmtWasmBindings,\n type WasmMfuReassemblerOptions,\n} from './wasm-mfu-reassembler.js'\n\nexport {\n createWasmMmtpContainerParser,\n type WasmMmtpParserConfig,\n} from './wasm-mmtp-container-parser.js'\n\n// Multicast Transport (SSM join/socket/watchdog)\nexport {\n MulticastTransport,\n type MulticastFailbackReason,\n type MulticastJoinDeclineReason,\n type MulticastJoinOutcome,\n type MulticastJoinProviderError,\n type MulticastJoinStats,\n type MulticastTransportConfig,\n type ResolvedMulticastTransport,\n} from './multicast-transport.js'\n\n// Multicast Manager (backwards-compat facade composing all three)\nexport {\n MulticastManager,\n forwardRepairLifecycleEvents,\n isRepairLifecycleEvent,\n REPAIR_LIFECYCLE_EVENT_TYPE,\n REPAIR_LIFECYCLE_LOG_PREFIX,\n type MulticastEndpointConfig,\n type MultiTrackCatalog,\n type MultiTrackCatalogTrack,\n type WasmFecDecoderFactory,\n type RepairBlockIdentity,\n type RepairLifecycleApplicationEvent,\n type RepairLifecycleEventOptions,\n type RepairLifecycleEventFactory,\n type RepairLifecycleEventTarget,\n type RepairLifecycleSource,\n type RepairLifecycleEvent,\n type RepairLifecycleObserver,\n type RepairStreamIdentity,\n type BlockPolicyStats,\n type RenditionSwitch,\n type RenditionSwitchCancel,\n type RenditionSwitchRequest,\n type RenditionSwitchState,\n} from './multicast-manager.js'\n\n// Keyframe-protected FEC repair policy: block classification, repair\n// priority, and the stall/conceal decision every player applies.\nexport {\n BlockClassifier,\n decideGap,\n deriveBlockClassifierGeometry,\n keyframeIntervalMediaTicks,\n repairPriorityForClass,\n type BlockClass,\n type BlockClassifierGeometry,\n type BlockClassifierGeometryInput,\n type ClassifierChange,\n type ClassifierMode,\n type ClassifierReason,\n type DecideGapInput,\n type FrameGapAction,\n type FrameGapDecision,\n type FrameGapReason,\n type GapFrameEvidence,\n type GapStreamIdentity,\n type KeyframeInterval,\n type ReclassificationEvidence,\n type RepairPriority,\n type SourceSymbolEvidence,\n type TrackKind,\n} from './block-policy.js'\n\n// Sink-side concealment: hold last good frame, exact audio gap sizing.\nexport {\n AudioGapConcealer,\n HoldLastTimeline,\n videoConcealModeForCodec,\n type AudioAccessUnit,\n type AudioGapConcealerStats,\n type AudioGapPlan,\n type HoldLastTimelineOptions,\n type HoldLastTimelineStats,\n type TimelineEmit,\n type TimelineSample,\n type VideoConcealMode,\n} from './conceal-timeline.js'\n\n// FEC Worker Setup (shared fec-setup helper)\nexport {\n setupFecWorkerForTrack,\n type FecWorkerAssetUrls,\n type FecWorkerSetupOptions,\n type FecWorkerSetupResult,\n} from './fec-worker-setup.js'\n\n// Media Router (shared MoQ \u2194 multicast source arbitration)\nexport {\n MediaRouter,\n TrackSourceConflictError,\n type MediaRouterOptions,\n type TrackSource,\n type SetTrackSourceOptions,\n type MigrationPolicy,\n type FrameMeta as RouterFrameMeta,\n type FrameKind,\n type SourceKind,\n type DeltaFallbackConfig,\n} from './media-router.js'\nexport {\n resolveDeltaFallback,\n type ResolvedDeltaFallback,\n} from './delta-fallback-config.js'\n\n// Group-alignment primitive \u2014 shared with Go sender + Rust relay.\n// See align.ts docstring for cross-language contract. Authoritative form\n// is integer-ticks (groupIdForTicks); seconds-form is the legacy ramp.\nexport {\n groupIdForTicks,\n groupIdFor,\n secondsFromTicks,\n asSeconds,\n driftCheck,\n type Seconds,\n type DriftCheckResult,\n} from './align.js'\n\n// Audio Ring Buffer \u2014 DEPRECATED: canonical location is @blockcast/mmt-render/audio.\n// Kept here for backwards compat with consumers not yet migrated to mmt-render.\n// The mmt-render version includes warmup-delayed clock recovery + adaptive target fill.\nexport {\n AudioRingBuffer,\n type AudioRingBufferConfig,\n} from './audio-ring-buffer.js'\n\n// MMTP Decode Pipeline (MoQ + multicast unified decode path)\nexport {\n MmtpDecodePipeline,\n type PipelineFecClient,\n type PipelineConfig,\n type MmtpFeedStats,\n} from './mmtp-decode-pipeline.js'\n\n// Track Pipeline (per-track transport promotion + ABR)\nexport {\n TrackPipeline,\n type TrackTransport,\n type TrackTransportPreference,\n type TransportCapabilityReport,\n type TrackTransportResolution,\n type TrackSourceFactory,\n} from './track-pipeline.js'\n\n// Track Pipeline Setup (shared wiring helper for both players)\nexport {\n setupTrackPipeline,\n type TrackDescriptor,\n type SetupTrackPipelineOptions,\n type SetupTrackPipelineResult,\n} from './track-pipeline-setup.js'\n\n// Audio Init Data Parser (spec-compliant frame samples from initData)\nexport {\n parseAacFrameSamples,\n parseAacSampleRate,\n parseOpusFrameSamples,\n frameSamplesFromInit,\n} from './audio-init-parser.js'\n\n// Transport Pool (ref-counted subscription lifecycle, PIM)\nexport {\n TransportPool,\n type SubscriptionMode,\n type DirectSocketHealth,\n type Subscription,\n type SubscriptionStats,\n type AcquireOptions,\n type TransportPoolOptions,\n} from './transport-pool.js'\n\n// Track Session + Session Manager (per-track state machine, Patent Claim 9)\nexport {\n TrackSession,\n SessionManager,\n MAX_TAKEOVER_DEADLINE_MS,\n JOIN_DEFER_WARN_MS,\n computeFecDeliveryWindowMs,\n computeFecDeliveryWindowMediaUnits,\n computeFecLossWindowMs,\n type FecDeliveryWindowConfig,\n type TrackState,\n type TrackSessionConfig,\n type SessionManagerCallbacks,\n type MmtpTrackEvent,\n type MmtpSessionCallbacks,\n} from './track-session.js'\n\n// FEC starvation detector (post-cutover repair-only/no-progress detection,\n// drives TrackSession lossDetected/lossRecovered \u2014 BLO-9413/D4)\nexport {\n FecStarvationDetector,\n type FecStarvationSnapshot,\n type FecStarvationDetectorConfig,\n} from './fec-starvation-detector.js'\n\n// CMCD v2 Event-mode producer (CTA-5004-B, com.blockcast-* custom keys)\nexport {\n CmcdProducer,\n encodeCmcdRecord,\n type CmcdRecord,\n type CmcdToken,\n type CmcdValue,\n type CmcdProducerOptions,\n type SnapshotData,\n type TransportSnapshot,\n type TransportTransitionEvent,\n} from './cmcd-producer.js'\n\nexport {\n\tcatalogFecInterleaveMs,\n\tresolveCatalogTrackFec,\n\ttype CatalogTrackRef,\n\ttype FecInterleaveCatalog,\n\ttype GroupDurationCatalog,\n\ttype KeyframeCadenceCatalog,\n\ttype TrackFecParams,\n\ttype TrackFecUnavailable,\n\tcatalogTrackFecUnavailable,\n\tcatalogTrackDeliveryMode,\n\tcatalogGroupDurationMs,\n\tcatalogKeyframeCadenceMs,\n\tcatalogFecMediaUnitsPerSecond,\n\ttype GroupDurationRendition,\n\tresolveCatalogTrackGroupDurationMs,\n\tjoinedRepairSymbolCount,\n\tFEC_BLOCK_PROFILES,\n\tisFecBlockProfile,\n\tparseFecBlockProfile,\n\ttype FecBlockProfile,\n\tresolveRepairLayers,\n\tcatalogRepairTarget,\n\tDEFAULT_REPAIR_PRIORITY,\n\tMAX_ENCODING_SYMBOL_ID,\n\tMAX_RAPTORQ_SOURCE_SYMBOLS,\n\tMAX_REPAIR_SYMBOLS,\n\tREPAIR_PRIORITY_MAX,\n\tREPAIR_PRIORITY_MIN,\n\ttype RepairLayerCatalog,\n\ttype RepairLayerParams,\n\ttype RepairLayersResolution,\n\ttype RepairOverlayParams,\n\t// FEC catalog binding, draft-ramadan-moq-fec-catalog-00 array shape (BLO-50171).\n\tvalidateFecCatalog,\n\ttype FecCatalogCode,\n\ttype FecCatalogInstance,\n\ttype FecCatalogIssue,\n\ttype FecCatalogOutcome,\n\ttype FecCatalogReceiver,\n\ttype FecCatalogReport,\n} from \"./catalog-fec-params.js\";\n\n// Typed FEC state (active with counters, or inactive with a reason) shared by\n// every player, resolved from catalog, transport policy, bridge and\n// subscription state rather than from counters.\nexport {\n\tFEC_INACTIVE_REASONS,\n\tcatalogDeclaresFec,\n\tresolveFecState,\n\ttype FecActiveState,\n\ttype FecInactiveReason,\n\ttype FecInactiveState,\n\ttype FecState,\n\ttype FecStateEvidence,\n\ttype FecTransportPolicy,\n\ttype NoFecCounters,\n} from \"./fec-state.js\";\n\n// In-band AL-FEC for one MMTP asset over a MoQT subscription, for a player\n// that owns its own parser (the Shaka MSF MMTP packaging).\nexport {\n\tMmtpFecSession,\n\ttype MmtpFecSessionCatalogFec,\n\ttype MmtpFecSessionConfig,\n\ttype MmtpFecSessionDecoder,\n\ttype MmtpFecSessionDecoderConstructor,\n\ttype MmtpFecSessionMessageConfig,\n\ttype MmtpFecSessionMessageUpdate,\n\ttype MmtpFecSessionMixedPathStats,\n\ttype MmtpFecSessionPath,\n\ttype MmtpFecSessionPathCounts,\n\ttype MmtpFecSessionStats,\n} from \"./mmtp-fec-session.js\";\n// MoQ repair-layer subscriptions by measured loss (BLO-35456)\nexport {\n\tRepairLayerSubscriptions,\n\ttype MoqRepairDelivery,\n\ttype RepairLayerSource,\n\ttype RepairLayerSubscriptionsOptions,\n\ttype RepairLayerSubscriptionsSnapshot,\n\ttype RepairTrackSubscription,\n} from \"./repair-layer-subscriptions.js\";\n\nexport {\n\tcatalogAmtNetworkSource,\n\tcatalogAtsc3NetworkSource,\n\tDEFAULT_AMT_RELAY_PORT,\n\ttype AmtNetworkSource,\n\ttype Atsc3NetworkSource,\n\ttype CatalogNetworkSource,\n} from \"./catalog-network-source.js\";\n\n// D-28 shared repair-fetch shell (per-SBN on-demand MoQ FEC repair backfill)\nexport {\n wireRepairFetch,\n repairFetchSubscriberPriority,\n SOURCE_MEDIA_PRIORITY_MAX,\n type ResolveRepairTarget,\n type RepairTarget,\n type RepairFetchHost,\n type RepairFetchPriority,\n type RepairFetchRequest,\n type RepairFetchTransport,\n type RepairRangeFetchRequest,\n type RepairRangeFetchTransport,\n type RepairDeadlineBound,\n type RepairPriorityReason,\n type RepairSendMeasurement,\n type RepairSkipReason,\n type RepairStopReason,\n type RepairSubscribeCallback,\n type WireRepairFetchOptions,\n} from './repair-fetch.js'\n// MoQ repair group ids for iso-ssbg1-v1 blocks (BLO-35597): the 62-bit\n// wrap-epoch-extended SS_Start and the repair FETCH range for a lost SS_ID.\nexport {\n extSsStart,\n extendSsId,\n repairFetchRange,\n type RepairFetchRange,\n} from '@blockcast/mmt-fec'\nexport { DeliveryGapEstimator } from './delivery-gap.js'\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -32,16 +32,28 @@ export type IsoRepairPlacement<T> = {
|
|
|
32
32
|
readonly lostSsId: number;
|
|
33
33
|
};
|
|
34
34
|
}
|
|
35
|
-
/**
|
|
35
|
+
/**
|
|
36
|
+
* Not a block this stream can use; the repair symbol is dropped. `ofSpan` is
|
|
37
|
+
* set when the repair stated only the first block of that repair-less span:
|
|
38
|
+
* the span holds more than one block, so no single repair group completes it.
|
|
39
|
+
*/
|
|
36
40
|
| {
|
|
37
41
|
readonly status: 'conflict' | 'overlap' | 'stale' | 'ahead';
|
|
38
42
|
readonly reason: string;
|
|
43
|
+
readonly ofSpan?: IsoBlockRange;
|
|
39
44
|
};
|
|
40
45
|
/**
|
|
41
46
|
* Retention: the locator is never without one. Every call that can grow it
|
|
42
47
|
* (`hold`, `placeRepair`) retires, behind the position it just saw, every
|
|
43
48
|
* block, span and held source more than `retentionBlocks` blocks back, by the
|
|
44
|
-
* one ISO horizon metric (`isoBlocksBehindLowerBound`). A
|
|
49
|
+
* one ISO horizon metric (`isoBlocksBehindLowerBound`). A held source stays
|
|
50
|
+
* while a pending hole holding it does: the hole's repair FETCH may still
|
|
51
|
+
* state its block, and closing the hole places it, so the span it leaves
|
|
52
|
+
* counts every source it received (BLO-52085). A pending hole the horizon
|
|
53
|
+
* passes stops being pending (its blocks can no longer be stated, and the
|
|
54
|
+
* release gate no longer waits for it), but keeps its sources until its
|
|
55
|
+
* owner closes it (`takeExpiredHoles`), so it still fails as the span it
|
|
56
|
+
* is. A block is measured
|
|
45
57
|
* from its last SS_ID, so it stays while any SS_ID of it is inside the
|
|
46
58
|
* horizon: a repair-less span has no length bound, and one measured from its
|
|
47
59
|
* start could be retired the moment it is created, before the sources it
|
|
@@ -82,6 +94,15 @@ export declare class IsoBlockLocator<T> {
|
|
|
82
94
|
get newest(): number | undefined;
|
|
83
95
|
/** Advance `newest` to `position` if it is newer; retires nothing. */
|
|
84
96
|
observe(position: number): void;
|
|
97
|
+
/**
|
|
98
|
+
* The newest source SS_ID noted with `noteSource` (RFC 1982 order). Unlike
|
|
99
|
+
* `newest`, a repair never moves it: a repair can run ahead of its sources,
|
|
100
|
+
* a source cannot run ahead of the sources sent before it except by
|
|
101
|
+
* reordering.
|
|
102
|
+
*/
|
|
103
|
+
get newestSource(): number | undefined;
|
|
104
|
+
/** Note a received source's SS_ID; true when it is the newest one yet. */
|
|
105
|
+
noteSource(ssId: number): boolean;
|
|
85
106
|
/** Held sources evicted by `heldCapacity` (never by the horizon itself). */
|
|
86
107
|
get heldEvicted(): number;
|
|
87
108
|
/** Number of known blocks and spans. */
|
|
@@ -95,8 +116,16 @@ export declare class IsoBlockLocator<T> {
|
|
|
95
116
|
block: IsoBlockRange;
|
|
96
117
|
esi: number;
|
|
97
118
|
} | null;
|
|
98
|
-
/** Number of pending
|
|
119
|
+
/** Number of holes not closed yet, pending or past the horizon. */
|
|
99
120
|
get holeCount(): number;
|
|
121
|
+
/**
|
|
122
|
+
* The pending holes the horizon has passed since the last call, in the
|
|
123
|
+
* order it passed them. Each is no longer pending: no repair states a block
|
|
124
|
+
* in it (that repair is `stale`, as for a span the horizon retired) and the
|
|
125
|
+
* release gate does not wait for it. Its owner must close it
|
|
126
|
+
* (`closeHolesWithin`), which turns it into a span that is not kept here.
|
|
127
|
+
*/
|
|
128
|
+
takeExpiredHoles(): IsoBlockRange[];
|
|
100
129
|
/** The stated block (never a span) ending exactly at `end`. */
|
|
101
130
|
blockEndingAt(end: number): IsoBlockRange | undefined;
|
|
102
131
|
/** The known block or span starting exactly at `start`. */
|
|
@@ -119,9 +148,11 @@ export declare class IsoBlockLocator<T> {
|
|
|
119
148
|
/**
|
|
120
149
|
* Apply one repair symbol's `(SS_Start, SSB_length)`. The first repair of a
|
|
121
150
|
* block states its range and places every held source in it; later repair
|
|
122
|
-
* symbols of the same block change nothing. A range
|
|
123
|
-
*
|
|
124
|
-
*
|
|
151
|
+
* symbols of the same block change nothing. A repair whose range is exactly
|
|
152
|
+
* a repair-less span states that span's one block. A range that contradicts
|
|
153
|
+
* a known block (a different length, or an overlap with another block or
|
|
154
|
+
* with part of a span) fails closed: the repair symbol is dropped and no
|
|
155
|
+
* block changes.
|
|
125
156
|
* A newly stated block retires behind its SS_Start (see the class note).
|
|
126
157
|
* A block so far past `newest` that stating it would retire the position
|
|
127
158
|
* `newest` is refused as `ahead`. When `newest` is a placed block's SS_Start
|
|
@@ -135,19 +166,23 @@ export declare class IsoBlockLocator<T> {
|
|
|
135
166
|
*/
|
|
136
167
|
placeRepair(start: number, length: number): IsoRepairPlacement<T>;
|
|
137
168
|
/**
|
|
138
|
-
* Turn every
|
|
139
|
-
*
|
|
140
|
-
*
|
|
169
|
+
* Turn every hole inside `[start, start + length)` into a repair-less span,
|
|
170
|
+
* claiming its held sources: its range FETCH ended, so nothing more will
|
|
171
|
+
* state its blocks. A hole the horizon passed (`takeExpiredHoles`) leaves a
|
|
172
|
+
* span that is not kept among the blocks, as the horizon would retire it at
|
|
173
|
+
* once; only `locate` finds it, until the next retirement, so its sources
|
|
174
|
+
* can be fed. Returns the spans, in SS_ID order.
|
|
141
175
|
*/
|
|
142
176
|
closeHolesWithin(start: number, length: number): {
|
|
143
177
|
block: IsoBlockRange;
|
|
144
178
|
placed: IsoPlacedSource<T>[];
|
|
145
179
|
}[];
|
|
146
180
|
/**
|
|
147
|
-
* Retire every block and span whose last SS_ID, and every held source
|
|
148
|
-
* lies more than `retentionBlocks` blocks behind
|
|
149
|
-
* lower-bound metric (`isoBlocksBehindLowerBound`)
|
|
150
|
-
* horizon uses
|
|
181
|
+
* Retire every block and span whose last SS_ID, and every held source
|
|
182
|
+
* outside a hole, lies more than `retentionBlocks` blocks behind
|
|
183
|
+
* `position`, with the shared lower-bound metric (`isoBlocksBehindLowerBound`)
|
|
184
|
+
* every ISO interleave horizon uses; a pending hole so far behind expires
|
|
185
|
+
* (`takeExpiredHoles`). Returns the retired block starts.
|
|
151
186
|
*/
|
|
152
187
|
retireBehind(position: number): number[];
|
|
153
188
|
/** Forget everything (publisher restart, track reset). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iso-block-locator.d.ts","sourceRoot":"","sources":["../src/iso-block-locator.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"iso-block-locator.d.ts","sourceRoot":"","sources":["../src/iso-block-locator.ts"],"names":[],"mappings":"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"}
|
|
@@ -71,6 +71,15 @@ var IsoBlockLocator = class _IsoBlockLocator {
|
|
|
71
71
|
this.#heldEvicted = 0;
|
|
72
72
|
/** Pending holes (see `deferIncompleteGaps`): unstated, sources still held. */
|
|
73
73
|
this.#holes = [];
|
|
74
|
+
/** Holes the horizon passed while pending: sources held until closed. */
|
|
75
|
+
this.#expired = [];
|
|
76
|
+
/** Of `#expired`, those `takeExpiredHoles` has not handed out yet. */
|
|
77
|
+
this.#newlyExpired = [];
|
|
78
|
+
/**
|
|
79
|
+
* Spans closed from expired holes: behind the horizon, so kept only for
|
|
80
|
+
* `locate` while their sources are fed, until the next retirement.
|
|
81
|
+
*/
|
|
82
|
+
this.#closedBehind = [];
|
|
74
83
|
/**
|
|
75
84
|
* Keep a gap that is missing a source as a pending hole rather than a span,
|
|
76
85
|
* so a repair FETCHed for it (draft-ramadan-moq-fec §7.5) can still state
|
|
@@ -92,7 +101,11 @@ var IsoBlockLocator = class _IsoBlockLocator {
|
|
|
92
101
|
#retentionBlocks;
|
|
93
102
|
#heldEvicted;
|
|
94
103
|
#newest;
|
|
104
|
+
#newestSource;
|
|
95
105
|
#holes;
|
|
106
|
+
#expired;
|
|
107
|
+
#newlyExpired;
|
|
108
|
+
#closedBehind;
|
|
96
109
|
static #checkedRetention(retentionBlocks) {
|
|
97
110
|
if (!Number.isSafeInteger(retentionBlocks) || retentionBlocks <= 0) {
|
|
98
111
|
throw new Error(
|
|
@@ -129,6 +142,21 @@ var IsoBlockLocator = class _IsoBlockLocator {
|
|
|
129
142
|
observe(position) {
|
|
130
143
|
if (this.#newest === void 0 || serial32Precedes(this.#newest, position)) this.#newest = position;
|
|
131
144
|
}
|
|
145
|
+
/**
|
|
146
|
+
* The newest source SS_ID noted with `noteSource` (RFC 1982 order). Unlike
|
|
147
|
+
* `newest`, a repair never moves it: a repair can run ahead of its sources,
|
|
148
|
+
* a source cannot run ahead of the sources sent before it except by
|
|
149
|
+
* reordering.
|
|
150
|
+
*/
|
|
151
|
+
get newestSource() {
|
|
152
|
+
return this.#newestSource;
|
|
153
|
+
}
|
|
154
|
+
/** Note a received source's SS_ID; true when it is the newest one yet. */
|
|
155
|
+
noteSource(ssId) {
|
|
156
|
+
if (this.#newestSource !== void 0 && !serial32Precedes(this.#newestSource, ssId)) return false;
|
|
157
|
+
this.#newestSource = ssId;
|
|
158
|
+
return true;
|
|
159
|
+
}
|
|
132
160
|
/** Held sources evicted by `heldCapacity` (never by the horizon itself). */
|
|
133
161
|
get heldEvicted() {
|
|
134
162
|
return this.#heldEvicted;
|
|
@@ -147,17 +175,29 @@ var IsoBlockLocator = class _IsoBlockLocator {
|
|
|
147
175
|
}
|
|
148
176
|
/** The known block or span containing `ssId`, with its ESI. */
|
|
149
177
|
locate(ssId) {
|
|
150
|
-
for (
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
178
|
+
for (const blocks of [this.#blocks, this.#closedBehind]) {
|
|
179
|
+
for (let i = blocks.length - 1; i >= 0; i--) {
|
|
180
|
+
const block = blocks[i];
|
|
181
|
+
if (isoBlockContains(block.start, block.length, ssId)) {
|
|
182
|
+
return { block, esi: serial32Distance(block.start, ssId) };
|
|
183
|
+
}
|
|
154
184
|
}
|
|
155
185
|
}
|
|
156
186
|
return null;
|
|
157
187
|
}
|
|
158
|
-
/** Number of pending
|
|
188
|
+
/** Number of holes not closed yet, pending or past the horizon. */
|
|
159
189
|
get holeCount() {
|
|
160
|
-
return this.#holes.length;
|
|
190
|
+
return this.#holes.length + this.#expired.length;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* The pending holes the horizon has passed since the last call, in the
|
|
194
|
+
* order it passed them. Each is no longer pending: no repair states a block
|
|
195
|
+
* in it (that repair is `stale`, as for a span the horizon retired) and the
|
|
196
|
+
* release gate does not wait for it. Its owner must close it
|
|
197
|
+
* (`closeHolesWithin`), which turns it into a span that is not kept here.
|
|
198
|
+
*/
|
|
199
|
+
takeExpiredHoles() {
|
|
200
|
+
return this.#newlyExpired.splice(0);
|
|
161
201
|
}
|
|
162
202
|
/** The stated block (never a span) ending exactly at `end`. */
|
|
163
203
|
blockEndingAt(end) {
|
|
@@ -213,9 +253,11 @@ var IsoBlockLocator = class _IsoBlockLocator {
|
|
|
213
253
|
/**
|
|
214
254
|
* Apply one repair symbol's `(SS_Start, SSB_length)`. The first repair of a
|
|
215
255
|
* block states its range and places every held source in it; later repair
|
|
216
|
-
* symbols of the same block change nothing. A range
|
|
217
|
-
*
|
|
218
|
-
*
|
|
256
|
+
* symbols of the same block change nothing. A repair whose range is exactly
|
|
257
|
+
* a repair-less span states that span's one block. A range that contradicts
|
|
258
|
+
* a known block (a different length, or an overlap with another block or
|
|
259
|
+
* with part of a span) fails closed: the repair symbol is dropped and no
|
|
260
|
+
* block changes.
|
|
219
261
|
* A newly stated block retires behind its SS_Start (see the class note).
|
|
220
262
|
* A block so far past `newest` that stating it would retire the position
|
|
221
263
|
* `newest` is refused as `ahead`. When `newest` is a placed block's SS_Start
|
|
@@ -234,7 +276,16 @@ var IsoBlockLocator = class _IsoBlockLocator {
|
|
|
234
276
|
const known = this.blockAt(start);
|
|
235
277
|
if (known !== void 0) {
|
|
236
278
|
if (known.span) {
|
|
237
|
-
|
|
279
|
+
if (known.length === length) {
|
|
280
|
+
const block2 = { start, length, span: false };
|
|
281
|
+
this.#blocks[this.#blocks.indexOf(known)] = block2;
|
|
282
|
+
return { status: "placed", block: block2, placed: [] };
|
|
283
|
+
}
|
|
284
|
+
return length < known.length ? {
|
|
285
|
+
status: "overlap",
|
|
286
|
+
reason: `repair block ${start}+${length} is only the first block of repair-less span ${known.start}+${known.length}`,
|
|
287
|
+
ofSpan: known
|
|
288
|
+
} : { status: "overlap", reason: `repair block ${start}+${length} runs past repair-less span ${known.start}+${known.length}` };
|
|
238
289
|
}
|
|
239
290
|
if (known.length !== length) {
|
|
240
291
|
return {
|
|
@@ -302,18 +353,28 @@ var IsoBlockLocator = class _IsoBlockLocator {
|
|
|
302
353
|
return span === void 0 ? { status: "placed", block, placed } : { status: "placed", block, placed, span };
|
|
303
354
|
}
|
|
304
355
|
/**
|
|
305
|
-
* Turn every
|
|
306
|
-
*
|
|
307
|
-
*
|
|
356
|
+
* Turn every hole inside `[start, start + length)` into a repair-less span,
|
|
357
|
+
* claiming its held sources: its range FETCH ended, so nothing more will
|
|
358
|
+
* state its blocks. A hole the horizon passed (`takeExpiredHoles`) leaves a
|
|
359
|
+
* span that is not kept among the blocks, as the horizon would retire it at
|
|
360
|
+
* once; only `locate` finds it, until the next retirement, so its sources
|
|
361
|
+
* can be fed. Returns the spans, in SS_ID order.
|
|
308
362
|
*/
|
|
309
363
|
closeHolesWithin(start, length) {
|
|
310
364
|
const closed = [];
|
|
311
|
-
for (const
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
365
|
+
for (const holes of [this.#holes, this.#expired]) {
|
|
366
|
+
for (const hole of [...holes]) {
|
|
367
|
+
if (!isoBlockContains(start, length, hole.start)) continue;
|
|
368
|
+
holes.splice(holes.indexOf(hole), 1);
|
|
369
|
+
const spanBlock = { start: hole.start, length: hole.length, span: true };
|
|
370
|
+
closed.push({ block: spanBlock, placed: this.#claim(spanBlock) });
|
|
371
|
+
if (holes === this.#holes) {
|
|
372
|
+
this.#blocks.push(spanBlock);
|
|
373
|
+
} else {
|
|
374
|
+
this.#closedBehind.push(spanBlock);
|
|
375
|
+
if (this.#newlyExpired.includes(hole)) this.#newlyExpired.splice(this.#newlyExpired.indexOf(hole), 1);
|
|
376
|
+
}
|
|
377
|
+
}
|
|
317
378
|
}
|
|
318
379
|
return closed.sort((x, y) => serial32Distance(start, x.block.start) - serial32Distance(start, y.block.start));
|
|
319
380
|
}
|
|
@@ -327,15 +388,17 @@ var IsoBlockLocator = class _IsoBlockLocator {
|
|
|
327
388
|
return void 0;
|
|
328
389
|
}
|
|
329
390
|
/**
|
|
330
|
-
* Retire every block and span whose last SS_ID, and every held source
|
|
331
|
-
* lies more than `retentionBlocks` blocks behind
|
|
332
|
-
* lower-bound metric (`isoBlocksBehindLowerBound`)
|
|
333
|
-
* horizon uses
|
|
391
|
+
* Retire every block and span whose last SS_ID, and every held source
|
|
392
|
+
* outside a hole, lies more than `retentionBlocks` blocks behind
|
|
393
|
+
* `position`, with the shared lower-bound metric (`isoBlocksBehindLowerBound`)
|
|
394
|
+
* every ISO interleave horizon uses; a pending hole so far behind expires
|
|
395
|
+
* (`takeExpiredHoles`). Returns the retired block starts.
|
|
334
396
|
*/
|
|
335
397
|
retireBehind(position) {
|
|
336
398
|
this.observe(position);
|
|
337
399
|
const horizon = this.#retentionBlocks;
|
|
338
400
|
const retired = [];
|
|
401
|
+
this.#closedBehind.length = 0;
|
|
339
402
|
for (let i = this.#blocks.length - 1; i >= 0; i--) {
|
|
340
403
|
const block = this.#blocks[i];
|
|
341
404
|
const last = serial32Add(block.start, block.length - 1);
|
|
@@ -347,10 +410,15 @@ var IsoBlockLocator = class _IsoBlockLocator {
|
|
|
347
410
|
for (let i = this.#holes.length - 1; i >= 0; i--) {
|
|
348
411
|
const hole = this.#holes[i];
|
|
349
412
|
const last = serial32Add(hole.start, hole.length - 1);
|
|
350
|
-
if (isoBlocksBehindLowerBound(last, position, this.#kMax)
|
|
413
|
+
if (isoBlocksBehindLowerBound(last, position, this.#kMax) <= horizon) continue;
|
|
414
|
+
this.#holes.splice(i, 1);
|
|
415
|
+
this.#expired.push(hole);
|
|
416
|
+
this.#newlyExpired.push(hole);
|
|
351
417
|
}
|
|
352
418
|
for (const ssId of [...this.#held.keys()]) {
|
|
353
|
-
if (isoBlocksBehindLowerBound(ssId, position, this.#kMax) > horizon) this.#
|
|
419
|
+
if (isoBlocksBehindLowerBound(ssId, position, this.#kMax) > horizon && !this.#holes.some((hole) => isoBlockContains(hole.start, hole.length, ssId)) && !this.#expired.some((hole) => isoBlockContains(hole.start, hole.length, ssId))) {
|
|
420
|
+
this.#held.delete(ssId);
|
|
421
|
+
}
|
|
354
422
|
}
|
|
355
423
|
return retired;
|
|
356
424
|
}
|
|
@@ -358,9 +426,13 @@ var IsoBlockLocator = class _IsoBlockLocator {
|
|
|
358
426
|
reset() {
|
|
359
427
|
this.#blocks.length = 0;
|
|
360
428
|
this.#holes.length = 0;
|
|
429
|
+
this.#expired.length = 0;
|
|
430
|
+
this.#newlyExpired.length = 0;
|
|
431
|
+
this.#closedBehind.length = 0;
|
|
361
432
|
this.#held.clear();
|
|
362
433
|
this.#coverageEnd = void 0;
|
|
363
434
|
this.#newest = void 0;
|
|
435
|
+
this.#newestSource = void 0;
|
|
364
436
|
}
|
|
365
437
|
#claim(block) {
|
|
366
438
|
const placed = [];
|