UNPKG

npaw-plugin-nwf

Version:
55 lines (54 loc) 1.95 kB
import { SegmentIndex, SegmentMatchInfo } from './ManifestModel'; export interface DashTimelineEntry { t?: number; d: number; r: number; } /** * Template-based DASH segment index aligned with Android DashSegmentIndex. * Supports $Number$, $Time$, $Bandwidth$, $RepresentationID$ with format tags. */ export default class DashSegmentIndex implements SegmentIndex { readonly startNumber: number; readonly isLive: boolean; readonly hasUniqueSegmentUris = true; readonly resolvedMediaTemplate: string; readonly resolvedInitUri: string | undefined; private readonly mediaTemplate; private readonly timescale; private readonly bandwidth; private readonly representationId; private readonly timeline; private readonly presentationTimeOffset; private readonly fixedSegmentDuration; private readonly manifestDurationMs; private readonly usesFixedDuration; private readonly usesTimeTemplate; private templateRegex; private initRegex; constructor(opts: { mediaTemplate: string; initTemplate?: string; timescale?: number; startNumber?: number; bandwidth?: number; representationId?: string; timeline?: DashTimelineEntry[]; isLive?: boolean; presentationTimeOffset?: number; fixedSegmentDuration?: number; manifestDurationMs?: number; }); get segmentCount(): number; get targetDurationSecs(): number; get totalDurationSecs(): number; getSegmentUri(segmentNumber: number): string | undefined; getSegmentInfoForUri(chunkUri: string, byteRangeOffset?: number): SegmentMatchInfo | undefined; matchesInitUri(chunkUri: string): boolean; getSegmentInfoByNumber(segmentNumber: number): SegmentMatchInfo | undefined; private buildMatchInfo; private resolveSegment; private findSegmentByTime; private getTemplateRegex; private getInitRegex; }