hls.js 1.5.13 → 1.5.14-0.canary.10417
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 +4 -3
- package/dist/hls-demo.js +41 -38
- package/dist/hls-demo.js.map +1 -1
- package/dist/hls.js +4211 -2666
- package/dist/hls.js.d.ts +179 -110
- package/dist/hls.js.map +1 -1
- package/dist/hls.light.js +2841 -1921
- package/dist/hls.light.js.map +1 -1
- package/dist/hls.light.min.js +1 -1
- package/dist/hls.light.min.js.map +1 -1
- package/dist/hls.light.mjs +2569 -1639
- package/dist/hls.light.mjs.map +1 -1
- package/dist/hls.min.js +1 -1
- package/dist/hls.min.js.map +1 -1
- package/dist/hls.mjs +3572 -2017
- package/dist/hls.mjs.map +1 -1
- package/dist/hls.worker.js +1 -1
- package/dist/hls.worker.js.map +1 -1
- package/package.json +38 -38
- package/src/config.ts +5 -2
- package/src/controller/abr-controller.ts +39 -25
- package/src/controller/audio-stream-controller.ts +156 -136
- package/src/controller/audio-track-controller.ts +1 -1
- package/src/controller/base-playlist-controller.ts +27 -10
- package/src/controller/base-stream-controller.ts +234 -89
- package/src/controller/buffer-controller.ts +250 -97
- package/src/controller/buffer-operation-queue.ts +16 -19
- package/src/controller/cap-level-controller.ts +3 -2
- package/src/controller/cmcd-controller.ts +51 -14
- package/src/controller/content-steering-controller.ts +29 -15
- package/src/controller/eme-controller.ts +10 -23
- package/src/controller/error-controller.ts +28 -22
- package/src/controller/fps-controller.ts +8 -3
- package/src/controller/fragment-finders.ts +44 -16
- package/src/controller/fragment-tracker.ts +58 -25
- package/src/controller/gap-controller.ts +43 -16
- package/src/controller/id3-track-controller.ts +45 -35
- package/src/controller/latency-controller.ts +18 -13
- package/src/controller/level-controller.ts +37 -19
- package/src/controller/stream-controller.ts +100 -83
- package/src/controller/subtitle-stream-controller.ts +35 -47
- package/src/controller/subtitle-track-controller.ts +5 -3
- package/src/controller/timeline-controller.ts +20 -22
- package/src/crypt/aes-crypto.ts +21 -2
- package/src/crypt/decrypter-aes-mode.ts +4 -0
- package/src/crypt/decrypter.ts +32 -16
- package/src/crypt/fast-aes-key.ts +28 -5
- package/src/demux/audio/aacdemuxer.ts +2 -2
- package/src/demux/audio/ac3-demuxer.ts +4 -3
- package/src/demux/audio/adts.ts +9 -4
- package/src/demux/audio/base-audio-demuxer.ts +16 -14
- package/src/demux/audio/mp3demuxer.ts +4 -3
- package/src/demux/audio/mpegaudio.ts +1 -1
- package/src/demux/mp4demuxer.ts +7 -7
- package/src/demux/sample-aes.ts +2 -0
- package/src/demux/transmuxer-interface.ts +8 -16
- package/src/demux/transmuxer-worker.ts +4 -4
- package/src/demux/transmuxer.ts +16 -3
- package/src/demux/tsdemuxer.ts +75 -38
- package/src/demux/video/avc-video-parser.ts +210 -121
- package/src/demux/video/base-video-parser.ts +135 -2
- package/src/demux/video/exp-golomb.ts +0 -208
- package/src/demux/video/hevc-video-parser.ts +749 -0
- package/src/events.ts +8 -1
- package/src/exports-named.ts +1 -1
- package/src/hls.ts +84 -47
- package/src/loader/date-range.ts +71 -5
- package/src/loader/fragment-loader.ts +23 -21
- package/src/loader/fragment.ts +8 -4
- package/src/loader/key-loader.ts +3 -1
- package/src/loader/level-details.ts +6 -6
- package/src/loader/level-key.ts +10 -9
- package/src/loader/m3u8-parser.ts +138 -144
- package/src/loader/playlist-loader.ts +5 -7
- package/src/remux/mp4-generator.ts +196 -1
- package/src/remux/mp4-remuxer.ts +32 -62
- package/src/remux/passthrough-remuxer.ts +1 -1
- package/src/task-loop.ts +5 -2
- package/src/types/component-api.ts +3 -1
- package/src/types/demuxer.ts +3 -0
- package/src/types/events.ts +19 -6
- package/src/types/fragment-tracker.ts +2 -2
- package/src/types/media-playlist.ts +9 -1
- package/src/types/remuxer.ts +1 -1
- package/src/utils/attr-list.ts +96 -9
- package/src/utils/buffer-helper.ts +12 -31
- package/src/utils/cea-608-parser.ts +1 -3
- package/src/utils/codecs.ts +34 -5
- package/src/utils/encryption-methods-util.ts +21 -0
- package/src/utils/fetch-loader.ts +1 -1
- package/src/utils/hash.ts +10 -0
- package/src/utils/hdr.ts +4 -7
- package/src/utils/imsc1-ttml-parser.ts +1 -1
- package/src/utils/keysystem-util.ts +1 -6
- package/src/utils/level-helper.ts +71 -44
- package/src/utils/logger.ts +58 -23
- package/src/utils/mp4-tools.ts +5 -3
- package/src/utils/rendition-helper.ts +100 -74
- package/src/utils/utf8-utils.ts +18 -0
- package/src/utils/variable-substitution.ts +0 -19
- package/src/utils/webvtt-parser.ts +2 -12
- package/src/demux/id3.ts +0 -411
- package/src/types/general.ts +0 -6
package/dist/hls.js.d.ts
CHANGED
@@ -6,7 +6,7 @@ export declare interface AbrComponentAPI extends ComponentAPI {
|
|
6
6
|
resetEstimator(abrEwmaDefaultEstimate: number): any;
|
7
7
|
}
|
8
8
|
|
9
|
-
export declare class AbrController implements AbrComponentAPI {
|
9
|
+
export declare class AbrController extends Logger implements AbrComponentAPI {
|
10
10
|
protected hls: Hls;
|
11
11
|
private lastLevelLoadSec;
|
12
12
|
private lastLoadedFragLevel;
|
@@ -69,7 +69,7 @@ export declare type ABRControllerConfig = {
|
|
69
69
|
|
70
70
|
export declare class AttrList {
|
71
71
|
[key: string]: any;
|
72
|
-
constructor(attrs: string | Record<string, any>);
|
72
|
+
constructor(attrs: string | Record<string, any>, parsed?: Pick<ParsedMultivariantPlaylist | LevelDetails, 'variableList' | 'hasVariableRefs' | 'playlistParsingError'>);
|
73
73
|
get clientAttrs(): string[];
|
74
74
|
decimalInteger(attrName: string): number;
|
75
75
|
hexadecimalInteger(attrName: string): Uint8Array | null;
|
@@ -77,12 +77,17 @@ export declare class AttrList {
|
|
77
77
|
decimalFloatingPoint(attrName: string): number;
|
78
78
|
optionalFloat(attrName: string, defaultValue: number): number;
|
79
79
|
enumeratedString(attrName: string): string | undefined;
|
80
|
+
enumeratedStringList<T extends {
|
81
|
+
[key: string]: boolean;
|
82
|
+
}>(attrName: string, dict: T): {
|
83
|
+
[key in keyof T]: boolean;
|
84
|
+
};
|
80
85
|
bool(attrName: string): boolean;
|
81
86
|
decimalResolution(attrName: string): {
|
82
87
|
width: number;
|
83
88
|
height: number;
|
84
89
|
} | undefined;
|
85
|
-
static parseAttrList(input: string): Record<string,
|
90
|
+
static parseAttrList(input: string, parsed?: Pick<ParsedMultivariantPlaylist | LevelDetails, 'variableList' | 'hasVariableRefs' | 'playlistParsingError'>): Record<string, string>;
|
86
91
|
}
|
87
92
|
|
88
93
|
export declare type AudioPlaylistType = 'AUDIO';
|
@@ -99,9 +104,8 @@ export declare type AudioSelectionOption = {
|
|
99
104
|
};
|
100
105
|
|
101
106
|
export declare class AudioStreamController extends BaseStreamController implements NetworkComponentAPI {
|
102
|
-
private
|
103
|
-
private
|
104
|
-
private waitingVideoCC;
|
107
|
+
private videoAnchor;
|
108
|
+
private mainFragLoading;
|
105
109
|
private bufferedTrack;
|
106
110
|
private switchingTrack;
|
107
111
|
private trackId;
|
@@ -112,28 +116,29 @@ export declare class AudioStreamController extends BaseStreamController implemen
|
|
112
116
|
private cachedTrackLoadedData;
|
113
117
|
constructor(hls: Hls, fragmentTracker: FragmentTracker, keyLoader: KeyLoader);
|
114
118
|
protected onHandlerDestroying(): void;
|
115
|
-
|
116
|
-
|
119
|
+
protected registerListeners(): void;
|
120
|
+
protected unregisterListeners(): void;
|
117
121
|
onInitPtsFound(event: Events.INIT_PTS_FOUND, { frag, id, initPTS, timescale }: InitPTSFoundData): void;
|
122
|
+
private findSyncFrag;
|
118
123
|
startLoad(startPosition: number): void;
|
119
124
|
doTick(): void;
|
120
125
|
clearWaitingFragment(): void;
|
121
126
|
protected resetLoadingState(): void;
|
122
127
|
protected onTickEnd(): void;
|
123
128
|
private doTickIdle;
|
124
|
-
protected
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
onAudioTrackLoaded(event: Events.AUDIO_TRACK_LOADED, data: TrackLoadedData): void;
|
129
|
+
protected onMediaDetaching(): void;
|
130
|
+
private onAudioTracksUpdated;
|
131
|
+
private onAudioTrackSwitching;
|
132
|
+
protected onManifestLoading(): void;
|
133
|
+
private onLevelLoaded;
|
134
|
+
private onAudioTrackLoaded;
|
131
135
|
_handleFragmentLoadProgress(data: FragLoadedData): void;
|
132
136
|
protected _handleFragmentLoadComplete(fragLoadedData: FragLoadedData): void;
|
133
|
-
onBufferReset
|
134
|
-
onBufferCreated
|
135
|
-
|
136
|
-
private
|
137
|
+
private onBufferReset;
|
138
|
+
private onBufferCreated;
|
139
|
+
private onFragLoading;
|
140
|
+
private onFragBuffered;
|
141
|
+
protected onError(event: Events.ERROR, data: ErrorData): void;
|
137
142
|
private onBufferFlushing;
|
138
143
|
private onBufferFlushed;
|
139
144
|
private _handleTransmuxComplete;
|
@@ -188,13 +193,11 @@ export declare interface BackBufferData {
|
|
188
193
|
bufferEnd: number;
|
189
194
|
}
|
190
195
|
|
191
|
-
export declare class BasePlaylistController implements NetworkComponentAPI {
|
196
|
+
export declare class BasePlaylistController extends Logger implements NetworkComponentAPI {
|
192
197
|
protected hls: Hls;
|
193
198
|
protected timer: number;
|
194
199
|
protected requestScheduled: number;
|
195
200
|
protected canLoad: boolean;
|
196
|
-
protected log: (msg: any) => void;
|
197
|
-
protected warn: (msg: any) => void;
|
198
201
|
constructor(hls: Hls, logPrefix: string);
|
199
202
|
destroy(): void;
|
200
203
|
protected clearTimer(): void;
|
@@ -226,7 +229,7 @@ export declare class BaseSegment {
|
|
226
229
|
|
227
230
|
export declare class BaseStreamController extends TaskLoop implements NetworkComponentAPI {
|
228
231
|
protected hls: Hls;
|
229
|
-
protected fragPrevious:
|
232
|
+
protected fragPrevious: MediaFragment | null;
|
230
233
|
protected fragCurrent: Fragment | null;
|
231
234
|
protected fragmentTracker: FragmentTracker;
|
232
235
|
protected transmuxer: TransmuxerInterface | null;
|
@@ -249,22 +252,26 @@ export declare class BaseStreamController extends TaskLoop implements NetworkCom
|
|
249
252
|
protected startFragRequested: boolean;
|
250
253
|
protected decrypter: Decrypter;
|
251
254
|
protected initPTS: RationalTimestamp[];
|
252
|
-
protected
|
253
|
-
protected
|
254
|
-
private
|
255
|
-
protected log: (msg: any) => void;
|
256
|
-
protected warn: (msg: any) => void;
|
255
|
+
protected buffering: boolean;
|
256
|
+
protected loadingParts: boolean;
|
257
|
+
private loopSn?;
|
257
258
|
constructor(hls: Hls, fragmentTracker: FragmentTracker, keyLoader: KeyLoader, logPrefix: string, playlistType: PlaylistLevelType);
|
259
|
+
protected registerListeners(): void;
|
260
|
+
protected unregisterListeners(): void;
|
258
261
|
protected doTick(): void;
|
259
262
|
protected onTickEnd(): void;
|
260
263
|
startLoad(startPosition: number): void;
|
261
264
|
stopLoad(): void;
|
265
|
+
pauseBuffering(): void;
|
266
|
+
resumeBuffering(): void;
|
262
267
|
protected _streamEnded(bufferInfo: BufferInfo, levelDetails: LevelDetails): boolean;
|
263
268
|
protected getLevelDetails(): LevelDetails | undefined;
|
264
269
|
protected onMediaAttached(event: Events.MEDIA_ATTACHED, data: MediaAttachedData): void;
|
265
270
|
protected onMediaDetaching(): void;
|
266
|
-
protected
|
267
|
-
protected
|
271
|
+
protected onManifestLoading(): void;
|
272
|
+
protected onError(event: Events.ERROR, data: ErrorData): void;
|
273
|
+
protected onMediaSeeking: () => void;
|
274
|
+
protected onMediaEnded: () => void;
|
268
275
|
protected onManifestLoaded(event: Events.MANIFEST_LOADED, data: ManifestLoadedData): void;
|
269
276
|
protected onHandlerDestroying(): void;
|
270
277
|
protected onHandlerDestroyed(): void;
|
@@ -284,15 +291,16 @@ export declare class BaseStreamController extends TaskLoop implements NetworkCom
|
|
284
291
|
private doFragPartsLoad;
|
285
292
|
private handleFragLoadError;
|
286
293
|
protected _handleTransmuxerFlush(chunkMeta: ChunkMetadata): void;
|
294
|
+
private shouldLoadParts;
|
287
295
|
protected getCurrentContext(chunkMeta: ChunkMetadata): {
|
288
|
-
frag:
|
296
|
+
frag: MediaFragment;
|
289
297
|
part: Part | null;
|
290
298
|
level: Level;
|
291
299
|
} | null;
|
292
300
|
protected bufferFragmentData(data: RemuxedTrack, frag: Fragment, part: Part | null, chunkMeta: ChunkMetadata, noBacktracking?: boolean): void;
|
293
301
|
protected flushBufferGap(frag: Fragment): void;
|
294
302
|
protected getFwdBufferInfo(bufferable: Bufferable | null, type: PlaylistLevelType): BufferInfo | null;
|
295
|
-
|
303
|
+
private getFwdBufferInfoAtPos;
|
296
304
|
protected getMaxBufferLength(levelBitrate?: number): number;
|
297
305
|
protected reduceMaxBufferLength(threshold: number, fragDuration: number): boolean;
|
298
306
|
protected getAppendedFrag(position: number, playlistType?: PlaylistLevelType): Fragment | null;
|
@@ -302,8 +310,8 @@ export declare class BaseStreamController extends TaskLoop implements NetworkCom
|
|
302
310
|
mapToInitFragWhenRequired(frag: Fragment | null): typeof frag;
|
303
311
|
getNextPart(partList: Part[], frag: Fragment, targetBufferTime: number): number;
|
304
312
|
private loadedEndOfParts;
|
305
|
-
protected getInitialLiveFragment(levelDetails: LevelDetails, fragments:
|
306
|
-
protected getFragmentAtPosition(bufferEnd: number, end: number, levelDetails: LevelDetails):
|
313
|
+
protected getInitialLiveFragment(levelDetails: LevelDetails, fragments: MediaFragment[]): MediaFragment | null;
|
314
|
+
protected getFragmentAtPosition(bufferEnd: number, end: number, levelDetails: LevelDetails): MediaFragment | null;
|
307
315
|
protected synchronizeToLiveEdge(levelDetails: LevelDetails): void;
|
308
316
|
protected alignPlaylists(details: LevelDetails, previousDetails: LevelDetails | undefined, switchDetails: LevelDetails | undefined): number;
|
309
317
|
protected waitForCdnTuneIn(details: LevelDetails): boolean | 0;
|
@@ -353,17 +361,20 @@ export declare interface BufferCodecsData {
|
|
353
361
|
audio?: Track;
|
354
362
|
}
|
355
363
|
|
356
|
-
export declare class BufferController implements ComponentAPI {
|
364
|
+
export declare class BufferController extends Logger implements ComponentAPI {
|
357
365
|
private details;
|
358
366
|
private _objectUrl;
|
359
367
|
private operationQueue;
|
360
368
|
private listeners;
|
361
369
|
private hls;
|
370
|
+
private fragmentTracker;
|
362
371
|
bufferCodecEventsExpected: number;
|
363
372
|
private _bufferCodecEventsTotal;
|
364
373
|
media: HTMLMediaElement | null;
|
365
374
|
mediaSource: MediaSource | null;
|
366
375
|
private lastMpegAudioChunk;
|
376
|
+
private blockedAudioAppend;
|
377
|
+
private lastVideoAppendEnd;
|
367
378
|
private appendSource;
|
368
379
|
appendErrors: {
|
369
380
|
audio: number;
|
@@ -373,10 +384,7 @@ export declare class BufferController implements ComponentAPI {
|
|
373
384
|
tracks: TrackSet;
|
374
385
|
pendingTracks: TrackSet;
|
375
386
|
sourceBuffer: SourceBuffers;
|
376
|
-
|
377
|
-
protected warn: (msg: any, obj?: any) => void;
|
378
|
-
protected error: (msg: any, obj?: any) => void;
|
379
|
-
constructor(hls: Hls);
|
387
|
+
constructor(hls: Hls, fragmentTracker: FragmentTracker);
|
380
388
|
hasSourceTypes(): boolean;
|
381
389
|
destroy(): void;
|
382
390
|
protected registerListeners(): void;
|
@@ -391,13 +399,18 @@ export declare class BufferController implements ComponentAPI {
|
|
391
399
|
protected onBufferReset(): void;
|
392
400
|
private resetBuffer;
|
393
401
|
protected onBufferCodecs(event: Events.BUFFER_CODECS, data: BufferCodecsData): void;
|
394
|
-
protected appendChangeType(type:
|
402
|
+
protected appendChangeType(type: SourceBufferName, mimeType: string): void;
|
403
|
+
private blockAudio;
|
404
|
+
private unblockAudio;
|
395
405
|
protected onBufferAppending(event: Events.BUFFER_APPENDING, eventData: BufferAppendingData): void;
|
406
|
+
private getFlushOp;
|
396
407
|
protected onBufferFlushing(event: Events.BUFFER_FLUSHING, data: BufferFlushingData): void;
|
397
408
|
protected onFragParsed(event: Events.FRAG_PARSED, data: FragParsedData): void;
|
398
409
|
private onFragChanged;
|
399
410
|
protected onBufferEos(event: Events.BUFFER_EOS, data: BufferEOSData): void;
|
400
411
|
protected onLevelUpdated(event: Events.LEVEL_UPDATED, { details }: LevelUpdatedData): void;
|
412
|
+
private onError;
|
413
|
+
private resetAppendErrors;
|
401
414
|
trimBuffers(): void;
|
402
415
|
flushBackBuffer(currentTime: number, targetDuration: number, targetBackBufferPosition: number): void;
|
403
416
|
flushFrontBuffer(currentTime: number, targetDuration: number, targetFrontBufferPosition: number): void;
|
@@ -406,8 +419,8 @@ export declare class BufferController implements ComponentAPI {
|
|
406
419
|
* 'liveDurationInfinity` is set to `true`
|
407
420
|
* More details: https://github.com/video-dev/hls.js/issues/355
|
408
421
|
*/
|
409
|
-
private
|
410
|
-
|
422
|
+
private getDurationAndRange;
|
423
|
+
private updateMediaSource;
|
411
424
|
protected checkPendingTracks(): void;
|
412
425
|
protected createSourceBuffers(tracks: TrackSet): void;
|
413
426
|
private _onMediaSourceOpen;
|
@@ -602,6 +615,8 @@ export declare class CMCDController implements ComponentAPI {
|
|
602
615
|
* Apply CMCD data to a segment request
|
603
616
|
*/
|
604
617
|
private applyFragmentData;
|
618
|
+
private getNextFrag;
|
619
|
+
private getNextPart;
|
605
620
|
/**
|
606
621
|
* The CMCD object type.
|
607
622
|
*/
|
@@ -635,13 +650,12 @@ export declare interface ComponentAPI {
|
|
635
650
|
destroy(): void;
|
636
651
|
}
|
637
652
|
|
638
|
-
export declare class ContentSteeringController implements NetworkComponentAPI {
|
653
|
+
export declare class ContentSteeringController extends Logger implements NetworkComponentAPI {
|
639
654
|
private readonly hls;
|
640
|
-
private log;
|
641
655
|
private loader;
|
642
656
|
private uri;
|
643
657
|
private pathwayId;
|
644
|
-
private
|
658
|
+
private _pathwayPriority;
|
645
659
|
private timeToLoad;
|
646
660
|
private reloadTimer;
|
647
661
|
private updated;
|
@@ -654,6 +668,9 @@ export declare class ContentSteeringController implements NetworkComponentAPI {
|
|
654
668
|
constructor(hls: Hls);
|
655
669
|
private registerListeners;
|
656
670
|
private unregisterListeners;
|
671
|
+
pathways(): string[];
|
672
|
+
get pathwayPriority(): string[] | null;
|
673
|
+
set pathwayPriority(pathwayPriority: string[]);
|
657
674
|
startLoad(): void;
|
658
675
|
stopLoad(): void;
|
659
676
|
clearTimeout(): void;
|
@@ -689,20 +706,32 @@ export declare interface CuesParsedData {
|
|
689
706
|
|
690
707
|
export declare class DateRange {
|
691
708
|
attr: AttrList;
|
709
|
+
tagAnchor: Fragment | null;
|
710
|
+
tagOrder: number;
|
692
711
|
private _startDate;
|
693
712
|
private _endDate?;
|
713
|
+
private _cue?;
|
694
714
|
private _badValueForSameId?;
|
695
|
-
constructor(dateRangeAttr: AttrList, dateRangeWithSameId?: DateRange);
|
715
|
+
constructor(dateRangeAttr: AttrList, dateRangeWithSameId?: DateRange | undefined, tagCount?: number);
|
696
716
|
get id(): string;
|
697
717
|
get class(): string;
|
718
|
+
get cue(): DateRangeCue;
|
719
|
+
get startTime(): number;
|
698
720
|
get startDate(): Date;
|
699
721
|
get endDate(): Date | null;
|
700
722
|
get duration(): number | null;
|
701
723
|
get plannedDuration(): number | null;
|
702
724
|
get endOnNext(): boolean;
|
725
|
+
get isInterstitial(): boolean;
|
703
726
|
get isValid(): boolean;
|
704
727
|
}
|
705
728
|
|
729
|
+
export declare type DateRangeCue = {
|
730
|
+
pre: boolean;
|
731
|
+
post: boolean;
|
732
|
+
once: boolean;
|
733
|
+
};
|
734
|
+
|
706
735
|
declare interface DecryptData {
|
707
736
|
uri: string;
|
708
737
|
method: string;
|
@@ -727,6 +756,7 @@ declare class Decrypter {
|
|
727
756
|
private currentIV;
|
728
757
|
private currentResult;
|
729
758
|
private useSoftware;
|
759
|
+
private enableSoftwareAES;
|
730
760
|
constructor(config: HlsConfig, { removePKCS7Padding }?: {
|
731
761
|
removePKCS7Padding?: boolean | undefined;
|
732
762
|
});
|
@@ -734,14 +764,19 @@ declare class Decrypter {
|
|
734
764
|
isSync(): boolean;
|
735
765
|
flush(): Uint8Array | null;
|
736
766
|
reset(): void;
|
737
|
-
decrypt(data: Uint8Array | ArrayBuffer, key: ArrayBuffer, iv: ArrayBuffer): Promise<ArrayBuffer>;
|
738
|
-
softwareDecrypt(data: Uint8Array, key: ArrayBuffer, iv: ArrayBuffer): ArrayBuffer | null;
|
739
|
-
webCryptoDecrypt(data: Uint8Array, key: ArrayBuffer, iv: ArrayBuffer): Promise<ArrayBuffer>;
|
767
|
+
decrypt(data: Uint8Array | ArrayBuffer, key: ArrayBuffer, iv: ArrayBuffer, aesMode: DecrypterAesMode): Promise<ArrayBuffer>;
|
768
|
+
softwareDecrypt(data: Uint8Array, key: ArrayBuffer, iv: ArrayBuffer, aesMode: DecrypterAesMode): ArrayBuffer | null;
|
769
|
+
webCryptoDecrypt(data: Uint8Array, key: ArrayBuffer, iv: ArrayBuffer, aesMode: DecrypterAesMode): Promise<ArrayBuffer>;
|
740
770
|
private onWebCryptoError;
|
741
771
|
private getValidChunk;
|
742
772
|
private logOnce;
|
743
773
|
}
|
744
774
|
|
775
|
+
declare const enum DecrypterAesMode {
|
776
|
+
cbc = 0,
|
777
|
+
ctr = 1
|
778
|
+
}
|
779
|
+
|
745
780
|
declare type DRMSystemConfiguration = {
|
746
781
|
licenseUrl: string;
|
747
782
|
serverCertificateUrl?: string;
|
@@ -787,7 +822,7 @@ export declare const enum ElementaryStreamTypes {
|
|
787
822
|
* @class
|
788
823
|
* @constructor
|
789
824
|
*/
|
790
|
-
export declare class EMEController implements ComponentAPI {
|
825
|
+
export declare class EMEController extends Logger implements ComponentAPI {
|
791
826
|
static CDMCleanupPromise: Promise<void> | void;
|
792
827
|
private readonly hls;
|
793
828
|
private readonly config;
|
@@ -798,12 +833,6 @@ export declare class EMEController implements ComponentAPI {
|
|
798
833
|
private mediaKeySessions;
|
799
834
|
private keyIdToKeySessionPromise;
|
800
835
|
private setMediaKeysQueue;
|
801
|
-
private onMediaEncrypted;
|
802
|
-
private onWaitingForKey;
|
803
|
-
private debug;
|
804
|
-
private log;
|
805
|
-
private warn;
|
806
|
-
private error;
|
807
836
|
constructor(hls: Hls);
|
808
837
|
destroy(): void;
|
809
838
|
private registerListeners;
|
@@ -824,8 +853,8 @@ export declare class EMEController implements ComponentAPI {
|
|
824
853
|
private handleError;
|
825
854
|
private getKeySystemForKeyPromise;
|
826
855
|
private getKeySystemSelectionPromise;
|
827
|
-
private
|
828
|
-
private
|
856
|
+
private onMediaEncrypted;
|
857
|
+
private onWaitingForKey;
|
829
858
|
private attemptSetMediaKeys;
|
830
859
|
private generateRequestWithPreferredKeySession;
|
831
860
|
private onKeyStatusChange;
|
@@ -859,13 +888,10 @@ export declare const enum ErrorActionFlags {
|
|
859
888
|
SwitchToSDR = 4
|
860
889
|
}
|
861
890
|
|
862
|
-
export declare class ErrorController implements NetworkComponentAPI {
|
891
|
+
export declare class ErrorController extends Logger implements NetworkComponentAPI {
|
863
892
|
private readonly hls;
|
864
893
|
private playlistError;
|
865
894
|
private penalizedRenditions;
|
866
|
-
private log;
|
867
|
-
private warn;
|
868
|
-
private error;
|
869
895
|
constructor(hls: Hls);
|
870
896
|
private registerListeners;
|
871
897
|
private unregisterListeners;
|
@@ -975,6 +1001,7 @@ export declare enum Events {
|
|
975
1001
|
MEDIA_ATTACHED = "hlsMediaAttached",
|
976
1002
|
MEDIA_DETACHING = "hlsMediaDetaching",
|
977
1003
|
MEDIA_DETACHED = "hlsMediaDetached",
|
1004
|
+
MEDIA_ENDED = "hlsMediaEnded",
|
978
1005
|
BUFFER_RESET = "hlsBufferReset",
|
979
1006
|
BUFFER_CODECS = "hlsBufferCodecs",
|
980
1007
|
BUFFER_CREATED = "hlsBufferCreated",
|
@@ -1068,6 +1095,7 @@ export declare class FPSController implements ComponentAPI {
|
|
1068
1095
|
protected unregisterListeners(): void;
|
1069
1096
|
destroy(): void;
|
1070
1097
|
protected onMediaAttaching(event: Events.MEDIA_ATTACHING, data: MediaAttachingData): void;
|
1098
|
+
private onMediaDetaching;
|
1071
1099
|
checkFPS(video: HTMLVideoElement, decodedFrames: number, droppedFrames: number): void;
|
1072
1100
|
checkFPSInterval(): void;
|
1073
1101
|
}
|
@@ -1160,8 +1188,8 @@ export declare class Fragment extends BaseSegment {
|
|
1160
1188
|
cc: number;
|
1161
1189
|
startPTS?: number;
|
1162
1190
|
endPTS?: number;
|
1163
|
-
startDTS
|
1164
|
-
endDTS
|
1191
|
+
startDTS?: number;
|
1192
|
+
endDTS?: number;
|
1165
1193
|
start: number;
|
1166
1194
|
deltaPTS?: number;
|
1167
1195
|
maxStartPTS?: number;
|
@@ -1249,20 +1277,21 @@ declare class FragmentTracker implements ComponentAPI {
|
|
1249
1277
|
* A buffered Fragment is one whose loading, parsing and appending is done (completed or "partial" meaning aborted).
|
1250
1278
|
* If not found any Fragment, return null
|
1251
1279
|
*/
|
1252
|
-
getBufferedFrag(position: number, levelType: PlaylistLevelType):
|
1280
|
+
getBufferedFrag(position: number, levelType: PlaylistLevelType): MediaFragment | null;
|
1281
|
+
getFragAtPos(position: number, levelType: PlaylistLevelType, buffered?: boolean): MediaFragment | null;
|
1253
1282
|
/**
|
1254
1283
|
* Partial fragments effected by coded frame eviction will be removed
|
1255
1284
|
* The browser will unload parts of the buffer to free up memory for new buffer data
|
1256
1285
|
* Fragments will need to be reloaded when the buffer is freed up, removing partial fragments will allow them to reload(since there might be parts that are still playable)
|
1257
1286
|
*/
|
1258
|
-
detectEvictedFragments(elementaryStream: SourceBufferName, timeRange: TimeRanges, playlistType: PlaylistLevelType, appendedPart?: Part | null): void;
|
1287
|
+
detectEvictedFragments(elementaryStream: SourceBufferName, timeRange: TimeRanges, playlistType: PlaylistLevelType, appendedPart?: Part | null, removeAppending?: boolean): void;
|
1259
1288
|
/**
|
1260
1289
|
* Checks if the fragment passed in is loaded in the buffer properly
|
1261
1290
|
* Partially loaded fragments will be registered as a partial fragment
|
1262
1291
|
*/
|
1263
1292
|
detectPartialFragments(data: FragBufferedData): void;
|
1264
1293
|
private removeParts;
|
1265
|
-
fragBuffered(frag:
|
1294
|
+
fragBuffered(frag: MediaFragment, force?: true): void;
|
1266
1295
|
private getBufferedTimes;
|
1267
1296
|
/**
|
1268
1297
|
* Gets the partial fragment for a certain time
|
@@ -1271,10 +1300,12 @@ declare class FragmentTracker implements ComponentAPI {
|
|
1271
1300
|
isEndListAppended(type: PlaylistLevelType): boolean;
|
1272
1301
|
getState(fragment: Fragment): FragmentState;
|
1273
1302
|
private isTimeBuffered;
|
1303
|
+
private onManifestLoading;
|
1274
1304
|
private onFragLoaded;
|
1275
1305
|
private onBufferAppended;
|
1276
1306
|
private onFragBuffered;
|
1277
1307
|
private hasFragment;
|
1308
|
+
hasFragments(type?: PlaylistLevelType): boolean;
|
1278
1309
|
hasParts(type: PlaylistLevelType): boolean;
|
1279
1310
|
removeFragmentsInRange(start: number, end: number, playlistType: PlaylistLevelType, withGapOnly?: boolean, unbufferedOnly?: boolean): void;
|
1280
1311
|
removeFragment(fragment: Fragment): void;
|
@@ -1321,9 +1352,12 @@ declare class Hls implements HlsEventEmitter {
|
|
1321
1352
|
* The configuration object provided on player instantiation.
|
1322
1353
|
*/
|
1323
1354
|
readonly userConfig: Partial<HlsConfig>;
|
1355
|
+
/**
|
1356
|
+
* The logger functions used by this player instance, configured on player instantiation.
|
1357
|
+
*/
|
1358
|
+
readonly logger: ILogger;
|
1324
1359
|
private coreComponents;
|
1325
1360
|
private networkControllers;
|
1326
|
-
private started;
|
1327
1361
|
private _emitter;
|
1328
1362
|
private _autoLevelCapping;
|
1329
1363
|
private _maxHdcpLevel;
|
@@ -1338,7 +1372,7 @@ declare class Hls implements HlsEventEmitter {
|
|
1338
1372
|
private emeController;
|
1339
1373
|
private cmcdController;
|
1340
1374
|
private _media;
|
1341
|
-
private
|
1375
|
+
private _url;
|
1342
1376
|
private triggeringException?;
|
1343
1377
|
/**
|
1344
1378
|
* Get the video-dev/hls.js package version.
|
@@ -1397,6 +1431,10 @@ declare class Hls implements HlsEventEmitter {
|
|
1397
1431
|
* Set the source URL. Can be relative or absolute.
|
1398
1432
|
*/
|
1399
1433
|
loadSource(url: string): void;
|
1434
|
+
/**
|
1435
|
+
* Gets the currently loaded URL
|
1436
|
+
*/
|
1437
|
+
get url(): string | null;
|
1400
1438
|
/**
|
1401
1439
|
* Start loading data from the stream source.
|
1402
1440
|
* Depending on default config, client starts loading automatically when a source is set.
|
@@ -1410,11 +1448,11 @@ declare class Hls implements HlsEventEmitter {
|
|
1410
1448
|
*/
|
1411
1449
|
stopLoad(): void;
|
1412
1450
|
/**
|
1413
|
-
* Resumes stream controller segment loading
|
1451
|
+
* Resumes stream controller segment loading after `pauseBuffering` has been called.
|
1414
1452
|
*/
|
1415
1453
|
resumeBuffering(): void;
|
1416
1454
|
/**
|
1417
|
-
*
|
1455
|
+
* Prevents stream controller from loading new segments until `resumeBuffering` is called.
|
1418
1456
|
* This allows for media buffering to be paused without interupting playlist loading.
|
1419
1457
|
*/
|
1420
1458
|
pauseBuffering(): void;
|
@@ -1559,6 +1597,7 @@ declare class Hls implements HlsEventEmitter {
|
|
1559
1597
|
*/
|
1560
1598
|
get playingDate(): Date | null;
|
1561
1599
|
get mainForwardBufferInfo(): BufferInfo | null;
|
1600
|
+
get maxBufferLength(): number;
|
1562
1601
|
/**
|
1563
1602
|
* Find and select the best matching audio track, making a level switch when a Group change is necessary.
|
1564
1603
|
* Updates `hls.config.audioPreference`. Returns the selected track, or null when no matching track is found.
|
@@ -1638,6 +1677,7 @@ declare class Hls implements HlsEventEmitter {
|
|
1638
1677
|
* target distance from the edge as calculated by the latency controller
|
1639
1678
|
*/
|
1640
1679
|
get targetLatency(): number | null;
|
1680
|
+
set targetLatency(latency: number);
|
1641
1681
|
/**
|
1642
1682
|
* the rate at which the edge of the current live playlist is advancing or 1 if there is none
|
1643
1683
|
*/
|
@@ -1646,6 +1686,11 @@ declare class Hls implements HlsEventEmitter {
|
|
1646
1686
|
* set to true when startLoad is called before MANIFEST_PARSED event
|
1647
1687
|
*/
|
1648
1688
|
get forceStartLoad(): boolean;
|
1689
|
+
/**
|
1690
|
+
* ContentSteering pathwayPriority getter/setter
|
1691
|
+
*/
|
1692
|
+
get pathwayPriority(): string[] | null;
|
1693
|
+
set pathwayPriority(pathwayPriority: string[]);
|
1649
1694
|
}
|
1650
1695
|
export default Hls;
|
1651
1696
|
|
@@ -1706,6 +1751,7 @@ export declare interface HlsListeners {
|
|
1706
1751
|
[Events.MEDIA_ATTACHED]: (event: Events.MEDIA_ATTACHED, data: MediaAttachedData) => void;
|
1707
1752
|
[Events.MEDIA_DETACHING]: (event: Events.MEDIA_DETACHING) => void;
|
1708
1753
|
[Events.MEDIA_DETACHED]: (event: Events.MEDIA_DETACHED) => void;
|
1754
|
+
[Events.MEDIA_ENDED]: (event: Events.MEDIA_ENDED, data: MediaEndedData) => void;
|
1709
1755
|
[Events.BUFFER_RESET]: (event: Events.BUFFER_RESET) => void;
|
1710
1756
|
[Events.BUFFER_CODECS]: (event: Events.BUFFER_CODECS, data: BufferCodecsData) => void;
|
1711
1757
|
[Events.BUFFER_CREATED]: (event: Events.BUFFER_CREATED, data: BufferCreatedData) => void;
|
@@ -1816,8 +1862,8 @@ export declare interface ILogger {
|
|
1816
1862
|
}
|
1817
1863
|
|
1818
1864
|
export declare interface InitPTSFoundData {
|
1819
|
-
id:
|
1820
|
-
frag:
|
1865
|
+
id: PlaylistLevelType;
|
1866
|
+
frag: MediaFragment;
|
1821
1867
|
initPTS: number;
|
1822
1868
|
timescale: number;
|
1823
1869
|
}
|
@@ -1896,6 +1942,7 @@ export declare type LatencyControllerConfig = {
|
|
1896
1942
|
liveSyncDuration?: number;
|
1897
1943
|
liveMaxLatencyDuration?: number;
|
1898
1944
|
maxLiveSyncPlaybackRate: number;
|
1945
|
+
liveSyncOnStallIncrease: number;
|
1899
1946
|
};
|
1900
1947
|
|
1901
1948
|
export declare class Level {
|
@@ -1979,10 +2026,11 @@ export declare class LevelDetails {
|
|
1979
2026
|
averagetargetduration?: number;
|
1980
2027
|
endCC: number;
|
1981
2028
|
endSN: number;
|
1982
|
-
fragments:
|
1983
|
-
fragmentHint?:
|
2029
|
+
fragments: MediaFragment[];
|
2030
|
+
fragmentHint?: MediaFragment;
|
1984
2031
|
partList: Part[] | null;
|
1985
2032
|
dateRanges: Record<string, DateRange>;
|
2033
|
+
dateRangeTagCount: number;
|
1986
2034
|
live: boolean;
|
1987
2035
|
ageHeader: number;
|
1988
2036
|
advancedDateTime?: number;
|
@@ -2257,6 +2305,16 @@ export declare class LoadStats implements LoaderStats {
|
|
2257
2305
|
buffering: HlsProgressivePerformanceTiming;
|
2258
2306
|
}
|
2259
2307
|
|
2308
|
+
export declare class Logger implements ILogger {
|
2309
|
+
trace: ILogFunction;
|
2310
|
+
debug: ILogFunction;
|
2311
|
+
log: ILogFunction;
|
2312
|
+
warn: ILogFunction;
|
2313
|
+
info: ILogFunction;
|
2314
|
+
error: ILogFunction;
|
2315
|
+
constructor(label: string, logger: ILogger);
|
2316
|
+
}
|
2317
|
+
|
2260
2318
|
export declare type MainPlaylistType = AudioPlaylistType | 'VIDEO';
|
2261
2319
|
|
2262
2320
|
export declare interface ManifestLoadedData {
|
@@ -2332,6 +2390,14 @@ export declare type MediaDecodingInfo = {
|
|
2332
2390
|
error?: Error;
|
2333
2391
|
};
|
2334
2392
|
|
2393
|
+
export declare interface MediaEndedData {
|
2394
|
+
stalled: boolean;
|
2395
|
+
}
|
2396
|
+
|
2397
|
+
export declare interface MediaFragment extends Fragment {
|
2398
|
+
sn: number;
|
2399
|
+
}
|
2400
|
+
|
2335
2401
|
export declare type MediaKeyFunc = (keySystem: KeySystems, supportedConfigurations: MediaKeySystemConfiguration[]) => Promise<MediaKeySystemAccess>;
|
2336
2402
|
|
2337
2403
|
export declare interface MediaKeySessionContext {
|
@@ -2401,6 +2467,8 @@ export declare type MP4RemuxerConfig = {
|
|
2401
2467
|
export declare interface NetworkComponentAPI extends ComponentAPI {
|
2402
2468
|
startLoad(startPosition: number): void;
|
2403
2469
|
stopLoad(): void;
|
2470
|
+
pauseBuffering?(): void;
|
2471
|
+
resumeBuffering?(): void;
|
2404
2472
|
}
|
2405
2473
|
|
2406
2474
|
export declare const enum NetworkErrorAction {
|
@@ -2433,6 +2501,17 @@ declare interface PACData {
|
|
2433
2501
|
italics: boolean;
|
2434
2502
|
}
|
2435
2503
|
|
2504
|
+
export declare type ParsedMultivariantPlaylist = {
|
2505
|
+
contentSteering: ContentSteeringOptions | null;
|
2506
|
+
levels: LevelParsed[];
|
2507
|
+
playlistParsingError: Error | null;
|
2508
|
+
sessionData: Record<string, AttrList> | null;
|
2509
|
+
sessionKeys: LevelKey[] | null;
|
2510
|
+
startTimeOffset: number | null;
|
2511
|
+
variableList: VariableMap | null;
|
2512
|
+
hasVariableRefs: boolean;
|
2513
|
+
};
|
2514
|
+
|
2436
2515
|
/**
|
2437
2516
|
* Object representing parsed data from an HLS Partial Segment. Found in {@link hls.js#LevelDetails.partList}.
|
2438
2517
|
*/
|
@@ -2442,10 +2521,10 @@ export declare class Part extends BaseSegment {
|
|
2442
2521
|
readonly gap: boolean;
|
2443
2522
|
readonly independent: boolean;
|
2444
2523
|
readonly relurl: string;
|
2445
|
-
readonly fragment:
|
2524
|
+
readonly fragment: MediaFragment;
|
2446
2525
|
readonly index: number;
|
2447
2526
|
stats: LoadStats;
|
2448
|
-
constructor(partAttrs: AttrList, frag:
|
2527
|
+
constructor(partAttrs: AttrList, frag: MediaFragment, baseurl: string, index: number, previous?: Part);
|
2449
2528
|
get start(): number;
|
2450
2529
|
get end(): number;
|
2451
2530
|
get loaded(): boolean;
|
@@ -2640,16 +2719,14 @@ declare class StreamController extends BaseStreamController implements NetworkCo
|
|
2640
2719
|
private altAudio;
|
2641
2720
|
private audioOnly;
|
2642
2721
|
private fragPlaying;
|
2643
|
-
private onvplaying;
|
2644
|
-
private onvseeked;
|
2645
2722
|
private fragLastKbps;
|
2646
2723
|
private couldBacktrack;
|
2647
2724
|
private backtrackFragment;
|
2648
2725
|
private audioCodecSwitch;
|
2649
2726
|
private videoBuffer;
|
2650
2727
|
constructor(hls: Hls, fragmentTracker: FragmentTracker, keyLoader: KeyLoader);
|
2651
|
-
|
2652
|
-
protected
|
2728
|
+
protected registerListeners(): void;
|
2729
|
+
protected unregisterListeners(): void;
|
2653
2730
|
protected onHandlerDestroying(): void;
|
2654
2731
|
startLoad(startPosition: number): void;
|
2655
2732
|
stopLoad(): void;
|
@@ -2673,7 +2750,7 @@ declare class StreamController extends BaseStreamController implements NetworkCo
|
|
2673
2750
|
protected onMediaDetaching(): void;
|
2674
2751
|
private onMediaPlaying;
|
2675
2752
|
private onMediaSeeked;
|
2676
|
-
|
2753
|
+
protected onManifestLoading(): void;
|
2677
2754
|
private onManifestParsed;
|
2678
2755
|
private onLevelLoading;
|
2679
2756
|
private onLevelLoaded;
|
@@ -2682,7 +2759,7 @@ declare class StreamController extends BaseStreamController implements NetworkCo
|
|
2682
2759
|
private onAudioTrackSwitched;
|
2683
2760
|
private onBufferCreated;
|
2684
2761
|
private onFragBuffered;
|
2685
|
-
|
2762
|
+
protected onError(event: Events.ERROR, data: ErrorData): void;
|
2686
2763
|
private checkBuffer;
|
2687
2764
|
private onFragLoadEmergencyAborted;
|
2688
2765
|
private onBufferFlushed;
|
@@ -2697,13 +2774,14 @@ declare class StreamController extends BaseStreamController implements NetworkCo
|
|
2697
2774
|
private _handleTransmuxComplete;
|
2698
2775
|
private _bufferInitSegment;
|
2699
2776
|
getMainFwdBufferInfo(): BufferInfo | null;
|
2777
|
+
get maxBufferLength(): number;
|
2700
2778
|
private backtrack;
|
2701
2779
|
private checkFragmentChanged;
|
2702
2780
|
get nextLevel(): number;
|
2703
2781
|
get currentFrag(): Fragment | null;
|
2704
2782
|
get currentProgramDateTime(): Date | null;
|
2705
2783
|
get currentLevel(): number;
|
2706
|
-
get nextBufferedFrag():
|
2784
|
+
get nextBufferedFrag(): MediaFragment | null;
|
2707
2785
|
get forceStartLoad(): boolean;
|
2708
2786
|
}
|
2709
2787
|
|
@@ -2739,11 +2817,6 @@ declare class StyledUnicodeChar {
|
|
2739
2817
|
isEmpty(): boolean;
|
2740
2818
|
}
|
2741
2819
|
|
2742
|
-
declare interface SubtitleFragProcessed {
|
2743
|
-
success: boolean;
|
2744
|
-
frag: Fragment;
|
2745
|
-
}
|
2746
|
-
|
2747
2820
|
export declare interface SubtitleFragProcessedData {
|
2748
2821
|
success: boolean;
|
2749
2822
|
frag: Fragment;
|
@@ -2768,22 +2841,21 @@ export declare class SubtitleStreamController extends BaseStreamController imple
|
|
2768
2841
|
private mainDetails;
|
2769
2842
|
constructor(hls: Hls, fragmentTracker: FragmentTracker, keyLoader: KeyLoader);
|
2770
2843
|
protected onHandlerDestroying(): void;
|
2771
|
-
|
2772
|
-
|
2844
|
+
protected registerListeners(): void;
|
2845
|
+
protected unregisterListeners(): void;
|
2773
2846
|
startLoad(startPosition: number): void;
|
2774
|
-
onManifestLoading(): void;
|
2775
|
-
onMediaDetaching(): void;
|
2776
|
-
onLevelLoaded
|
2777
|
-
onSubtitleFragProcessed
|
2778
|
-
onBufferFlushing
|
2779
|
-
onFragBuffered
|
2780
|
-
onError(event: Events.ERROR, data: ErrorData): void;
|
2781
|
-
onSubtitleTracksUpdated
|
2782
|
-
onSubtitleTrackSwitch
|
2783
|
-
onSubtitleTrackLoaded
|
2847
|
+
protected onManifestLoading(): void;
|
2848
|
+
protected onMediaDetaching(): void;
|
2849
|
+
private onLevelLoaded;
|
2850
|
+
private onSubtitleFragProcessed;
|
2851
|
+
private onBufferFlushing;
|
2852
|
+
private onFragBuffered;
|
2853
|
+
protected onError(event: Events.ERROR, data: ErrorData): void;
|
2854
|
+
private onSubtitleTracksUpdated;
|
2855
|
+
private onSubtitleTrackSwitch;
|
2856
|
+
private onSubtitleTrackLoaded;
|
2784
2857
|
_handleFragmentLoadComplete(fragLoadedData: FragLoadedData): void;
|
2785
2858
|
doTick(): void;
|
2786
|
-
protected getMaxBufferLength(mainBufferLength?: number): number;
|
2787
2859
|
protected loadFragment(frag: Fragment, level: Level, targetBufferTime: number): void;
|
2788
2860
|
get mediaBufferTimeRanges(): Bufferable;
|
2789
2861
|
}
|
@@ -2797,10 +2869,10 @@ export declare class SubtitleTrackController extends BasePlaylistController {
|
|
2797
2869
|
private currentTrack;
|
2798
2870
|
private selectDefaultTrack;
|
2799
2871
|
private queuedDefaultTrack;
|
2800
|
-
private asyncPollTrackChange;
|
2801
2872
|
private useTextTrackPolling;
|
2802
2873
|
private subtitlePollingInterval;
|
2803
2874
|
private _subtitleDisplay;
|
2875
|
+
private asyncPollTrackChange;
|
2804
2876
|
constructor(hls: Hls);
|
2805
2877
|
destroy(): void;
|
2806
2878
|
get subtitleDisplay(): boolean;
|
@@ -2885,12 +2957,12 @@ export declare interface SubtitleTrackSwitchData {
|
|
2885
2957
|
* we are limiting the task execution per call stack to exactly one, but scheduling/post-poning further
|
2886
2958
|
* task processing on the next main loop iteration (also known as "next tick" in the Node/JS runtime lingo).
|
2887
2959
|
*/
|
2888
|
-
declare class TaskLoop {
|
2960
|
+
declare class TaskLoop extends Logger {
|
2889
2961
|
private readonly _boundTick;
|
2890
2962
|
private _tickTimer;
|
2891
2963
|
private _tickInterval;
|
2892
2964
|
private _tickCallCount;
|
2893
|
-
constructor();
|
2965
|
+
constructor(label: string, logger: ILogger);
|
2894
2966
|
destroy(): void;
|
2895
2967
|
protected onHandlerDestroying(): void;
|
2896
2968
|
protected onHandlerDestroyed(): void;
|
@@ -3021,10 +3093,6 @@ export declare interface TrackSet {
|
|
3021
3093
|
audiovideo?: Track;
|
3022
3094
|
}
|
3023
3095
|
|
3024
|
-
declare interface TrackSwitchedData {
|
3025
|
-
id: number;
|
3026
|
-
}
|
3027
|
-
|
3028
3096
|
declare class TransmuxerInterface {
|
3029
3097
|
error: Error | null;
|
3030
3098
|
private hls;
|
@@ -3041,7 +3109,7 @@ declare class TransmuxerInterface {
|
|
3041
3109
|
constructor(hls: Hls, id: PlaylistLevelType, onTransmuxComplete: (transmuxResult: TransmuxerResult) => void, onFlush: (chunkMeta: ChunkMetadata) => void);
|
3042
3110
|
resetWorker(): void;
|
3043
3111
|
destroy(): void;
|
3044
|
-
push(data: ArrayBuffer, initSegmentData: Uint8Array | undefined, audioCodec: string | undefined, videoCodec: string | undefined, frag:
|
3112
|
+
push(data: ArrayBuffer, initSegmentData: Uint8Array | undefined, audioCodec: string | undefined, videoCodec: string | undefined, frag: MediaFragment, part: Part | null, duration: number, accurateTimeOffset: boolean, chunkMeta: ChunkMetadata, defaultInitPTS?: RationalTimestamp): void;
|
3045
3113
|
flush(chunkMeta: ChunkMetadata): void;
|
3046
3114
|
private transmuxerError;
|
3047
3115
|
private handleFlushResult;
|
@@ -3100,6 +3168,7 @@ declare const VideoRangeValues: readonly ["SDR", "PQ", "HLG"];
|
|
3100
3168
|
export declare type VideoSelectionOption = {
|
3101
3169
|
preferHDR?: boolean;
|
3102
3170
|
allowedVideoRanges?: Array<VideoRange>;
|
3171
|
+
videoCodec?: string;
|
3103
3172
|
};
|
3104
3173
|
|
3105
3174
|
export { }
|