npaw-plugin-nwf
Version:
NPAW's Plugin
66 lines (65 loc) • 2.16 kB
TypeScript
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 {};