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