UNPKG

npaw-plugin-nwf

Version:
66 lines (65 loc) 2.16 kB
import { UrlMatch } from './ManifestModel'; import Resource from '../Resource/Resource'; interface ResolveStats { parseCount: number; resolveCount: number; resolveHits: number; resolveMisses: number; lookaheadHits: number; lastHitFastHits: number; lastHitForceHits: number; multiPassHits: number; subManifestAttachments: number; } /** * Manifest registry and URL resolver aligned with Android ResourceIdentifier. * Manages parsed manifests, sub-manifest attachment, lookahead cache, and multi-level resolution. */ export default class ResourceIdentifier { private readonly hlsParser; private readonly dashParser; private readonly resource; private readonly manifests; private readonly segmentLookahead; private readonly lookaheadEvictionQueue; private manifestOrder; private lastHitManifestKey; private lastHitTrackUri; private readonly manifestLastHitTime; private stats; constructor(resource: Resource); /** * Parse a manifest and register it. Returns parsed info for callers that need * isMasterManifest / targetDuration. */ onManifest(url: string, rawData: string): { isMasterManifest: boolean; targetDurationSeconds?: number; } | undefined; /** * Multi-level URL resolution aligned with Android ResourceIdentifier.resolveUrl(). * Priority: manifest cache → lookahead → last-hit manifest → ordered manifests. */ resolveUrl(url: string, byteRangeOffset?: number): UrlMatch | undefined; isTrackOfKnownMaster(url: string): boolean; clear(): void; getResolveStats(): ResolveStats & { manifestCount: number; lookaheadSize: number; }; private acceptMatch; private updateTrackAffinity; private triggerLookaheadIfNeeded; private populateLookahead; private evictLookaheadIfNeeded; private resolveFromLookahead; private findTrackByIdentity; private processManifest; private tryAttachSubManifest; private findTrackKey; private promoteManifest; private touchManifest; private evictIfNeeded; private logResolve; } export {};