hls.js 1.5.13-0.canary.10411 → 1.5.13
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 +2702 -4247
- package/dist/hls.js.d.ts +110 -179
- package/dist/hls.js.map +1 -1
- package/dist/hls.light.js +1994 -2914
- 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 +3458 -4388
- 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 +4504 -6059
- 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 +91 -235
- package/src/controller/buffer-controller.ts +97 -250
- 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 +2 -2
- package/src/demux/audio/ac3-demuxer.ts +3 -4
- 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/mp4demuxer.ts +7 -7
- package/src/demux/sample-aes.ts +0 -2
- package/src/demux/transmuxer-interface.ts +16 -8
- package/src/demux/transmuxer-worker.ts +4 -4
- package/src/demux/transmuxer.ts +3 -16
- package/src/demux/tsdemuxer.ts +38 -75
- 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/events.ts +1 -8
- package/src/exports-named.ts +1 -1
- package/src/hls.ts +47 -84
- 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 +62 -32
- package/src/remux/passthrough-remuxer.ts +1 -1
- 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/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/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;
|
@@ -361,20 +353,17 @@ export declare interface BufferCodecsData {
|
|
361
353
|
audio?: Track;
|
362
354
|
}
|
363
355
|
|
364
|
-
export declare class BufferController
|
356
|
+
export declare class BufferController implements ComponentAPI {
|
365
357
|
private details;
|
366
358
|
private _objectUrl;
|
367
359
|
private operationQueue;
|
368
360
|
private listeners;
|
369
361
|
private hls;
|
370
|
-
private fragmentTracker;
|
371
362
|
bufferCodecEventsExpected: number;
|
372
363
|
private _bufferCodecEventsTotal;
|
373
364
|
media: HTMLMediaElement | null;
|
374
365
|
mediaSource: MediaSource | null;
|
375
366
|
private lastMpegAudioChunk;
|
376
|
-
private blockedAudioAppend;
|
377
|
-
private lastVideoAppendEnd;
|
378
367
|
private appendSource;
|
379
368
|
appendErrors: {
|
380
369
|
audio: number;
|
@@ -384,7 +373,10 @@ export declare class BufferController extends Logger implements ComponentAPI {
|
|
384
373
|
tracks: TrackSet;
|
385
374
|
pendingTracks: TrackSet;
|
386
375
|
sourceBuffer: SourceBuffers;
|
387
|
-
|
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);
|
388
380
|
hasSourceTypes(): boolean;
|
389
381
|
destroy(): void;
|
390
382
|
protected registerListeners(): void;
|
@@ -399,18 +391,13 @@ export declare class BufferController extends Logger implements ComponentAPI {
|
|
399
391
|
protected onBufferReset(): void;
|
400
392
|
private resetBuffer;
|
401
393
|
protected onBufferCodecs(event: Events.BUFFER_CODECS, data: BufferCodecsData): void;
|
402
|
-
protected appendChangeType(type:
|
403
|
-
private blockAudio;
|
404
|
-
private unblockAudio;
|
394
|
+
protected appendChangeType(type: any, mimeType: any): void;
|
405
395
|
protected onBufferAppending(event: Events.BUFFER_APPENDING, eventData: BufferAppendingData): void;
|
406
|
-
private getFlushOp;
|
407
396
|
protected onBufferFlushing(event: Events.BUFFER_FLUSHING, data: BufferFlushingData): void;
|
408
397
|
protected onFragParsed(event: Events.FRAG_PARSED, data: FragParsedData): void;
|
409
398
|
private onFragChanged;
|
410
399
|
protected onBufferEos(event: Events.BUFFER_EOS, data: BufferEOSData): void;
|
411
400
|
protected onLevelUpdated(event: Events.LEVEL_UPDATED, { details }: LevelUpdatedData): void;
|
412
|
-
private onError;
|
413
|
-
private resetAppendErrors;
|
414
401
|
trimBuffers(): void;
|
415
402
|
flushBackBuffer(currentTime: number, targetDuration: number, targetBackBufferPosition: number): void;
|
416
403
|
flushFrontBuffer(currentTime: number, targetDuration: number, targetFrontBufferPosition: number): void;
|
@@ -419,8 +406,8 @@ export declare class BufferController extends Logger implements ComponentAPI {
|
|
419
406
|
* 'liveDurationInfinity` is set to `true`
|
420
407
|
* More details: https://github.com/video-dev/hls.js/issues/355
|
421
408
|
*/
|
422
|
-
private
|
423
|
-
|
409
|
+
private updateMediaElementDuration;
|
410
|
+
updateSeekableRange(levelDetails: any): void;
|
424
411
|
protected checkPendingTracks(): void;
|
425
412
|
protected createSourceBuffers(tracks: TrackSet): void;
|
426
413
|
private _onMediaSourceOpen;
|
@@ -615,8 +602,6 @@ export declare class CMCDController implements ComponentAPI {
|
|
615
602
|
* Apply CMCD data to a segment request
|
616
603
|
*/
|
617
604
|
private applyFragmentData;
|
618
|
-
private getNextFrag;
|
619
|
-
private getNextPart;
|
620
605
|
/**
|
621
606
|
* The CMCD object type.
|
622
607
|
*/
|
@@ -650,12 +635,13 @@ export declare interface ComponentAPI {
|
|
650
635
|
destroy(): void;
|
651
636
|
}
|
652
637
|
|
653
|
-
export declare class ContentSteeringController
|
638
|
+
export declare class ContentSteeringController implements NetworkComponentAPI {
|
654
639
|
private readonly hls;
|
640
|
+
private log;
|
655
641
|
private loader;
|
656
642
|
private uri;
|
657
643
|
private pathwayId;
|
658
|
-
private
|
644
|
+
private pathwayPriority;
|
659
645
|
private timeToLoad;
|
660
646
|
private reloadTimer;
|
661
647
|
private updated;
|
@@ -668,9 +654,6 @@ export declare class ContentSteeringController extends Logger implements Network
|
|
668
654
|
constructor(hls: Hls);
|
669
655
|
private registerListeners;
|
670
656
|
private unregisterListeners;
|
671
|
-
pathways(): string[];
|
672
|
-
get pathwayPriority(): string[] | null;
|
673
|
-
set pathwayPriority(pathwayPriority: string[]);
|
674
657
|
startLoad(): void;
|
675
658
|
stopLoad(): void;
|
676
659
|
clearTimeout(): void;
|
@@ -706,32 +689,20 @@ export declare interface CuesParsedData {
|
|
706
689
|
|
707
690
|
export declare class DateRange {
|
708
691
|
attr: AttrList;
|
709
|
-
tagAnchor: Fragment | null;
|
710
|
-
tagOrder: number;
|
711
692
|
private _startDate;
|
712
693
|
private _endDate?;
|
713
|
-
private _cue?;
|
714
694
|
private _badValueForSameId?;
|
715
|
-
constructor(dateRangeAttr: AttrList, dateRangeWithSameId?: DateRange
|
695
|
+
constructor(dateRangeAttr: AttrList, dateRangeWithSameId?: DateRange);
|
716
696
|
get id(): string;
|
717
697
|
get class(): string;
|
718
|
-
get cue(): DateRangeCue;
|
719
|
-
get startTime(): number;
|
720
698
|
get startDate(): Date;
|
721
699
|
get endDate(): Date | null;
|
722
700
|
get duration(): number | null;
|
723
701
|
get plannedDuration(): number | null;
|
724
702
|
get endOnNext(): boolean;
|
725
|
-
get isInterstitial(): boolean;
|
726
703
|
get isValid(): boolean;
|
727
704
|
}
|
728
705
|
|
729
|
-
export declare type DateRangeCue = {
|
730
|
-
pre: boolean;
|
731
|
-
post: boolean;
|
732
|
-
once: boolean;
|
733
|
-
};
|
734
|
-
|
735
706
|
declare interface DecryptData {
|
736
707
|
uri: string;
|
737
708
|
method: string;
|
@@ -756,7 +727,6 @@ declare class Decrypter {
|
|
756
727
|
private currentIV;
|
757
728
|
private currentResult;
|
758
729
|
private useSoftware;
|
759
|
-
private enableSoftwareAES;
|
760
730
|
constructor(config: HlsConfig, { removePKCS7Padding }?: {
|
761
731
|
removePKCS7Padding?: boolean | undefined;
|
762
732
|
});
|
@@ -764,19 +734,14 @@ declare class Decrypter {
|
|
764
734
|
isSync(): boolean;
|
765
735
|
flush(): Uint8Array | null;
|
766
736
|
reset(): void;
|
767
|
-
decrypt(data: Uint8Array | ArrayBuffer, key: ArrayBuffer, iv: ArrayBuffer
|
768
|
-
softwareDecrypt(data: Uint8Array, key: ArrayBuffer, iv: ArrayBuffer
|
769
|
-
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>;
|
770
740
|
private onWebCryptoError;
|
771
741
|
private getValidChunk;
|
772
742
|
private logOnce;
|
773
743
|
}
|
774
744
|
|
775
|
-
declare const enum DecrypterAesMode {
|
776
|
-
cbc = 0,
|
777
|
-
ctr = 1
|
778
|
-
}
|
779
|
-
|
780
745
|
declare type DRMSystemConfiguration = {
|
781
746
|
licenseUrl: string;
|
782
747
|
serverCertificateUrl?: string;
|
@@ -822,7 +787,7 @@ export declare const enum ElementaryStreamTypes {
|
|
822
787
|
* @class
|
823
788
|
* @constructor
|
824
789
|
*/
|
825
|
-
export declare class EMEController
|
790
|
+
export declare class EMEController implements ComponentAPI {
|
826
791
|
static CDMCleanupPromise: Promise<void> | void;
|
827
792
|
private readonly hls;
|
828
793
|
private readonly config;
|
@@ -833,6 +798,12 @@ export declare class EMEController extends Logger implements ComponentAPI {
|
|
833
798
|
private mediaKeySessions;
|
834
799
|
private keyIdToKeySessionPromise;
|
835
800
|
private setMediaKeysQueue;
|
801
|
+
private onMediaEncrypted;
|
802
|
+
private onWaitingForKey;
|
803
|
+
private debug;
|
804
|
+
private log;
|
805
|
+
private warn;
|
806
|
+
private error;
|
836
807
|
constructor(hls: Hls);
|
837
808
|
destroy(): void;
|
838
809
|
private registerListeners;
|
@@ -853,8 +824,8 @@ export declare class EMEController extends Logger implements ComponentAPI {
|
|
853
824
|
private handleError;
|
854
825
|
private getKeySystemForKeyPromise;
|
855
826
|
private getKeySystemSelectionPromise;
|
856
|
-
private
|
857
|
-
private
|
827
|
+
private _onMediaEncrypted;
|
828
|
+
private _onWaitingForKey;
|
858
829
|
private attemptSetMediaKeys;
|
859
830
|
private generateRequestWithPreferredKeySession;
|
860
831
|
private onKeyStatusChange;
|
@@ -888,10 +859,13 @@ export declare const enum ErrorActionFlags {
|
|
888
859
|
SwitchToSDR = 4
|
889
860
|
}
|
890
861
|
|
891
|
-
export declare class ErrorController
|
862
|
+
export declare class ErrorController implements NetworkComponentAPI {
|
892
863
|
private readonly hls;
|
893
864
|
private playlistError;
|
894
865
|
private penalizedRenditions;
|
866
|
+
private log;
|
867
|
+
private warn;
|
868
|
+
private error;
|
895
869
|
constructor(hls: Hls);
|
896
870
|
private registerListeners;
|
897
871
|
private unregisterListeners;
|
@@ -1001,7 +975,6 @@ export declare enum Events {
|
|
1001
975
|
MEDIA_ATTACHED = "hlsMediaAttached",
|
1002
976
|
MEDIA_DETACHING = "hlsMediaDetaching",
|
1003
977
|
MEDIA_DETACHED = "hlsMediaDetached",
|
1004
|
-
MEDIA_ENDED = "hlsMediaEnded",
|
1005
978
|
BUFFER_RESET = "hlsBufferReset",
|
1006
979
|
BUFFER_CODECS = "hlsBufferCodecs",
|
1007
980
|
BUFFER_CREATED = "hlsBufferCreated",
|
@@ -1095,7 +1068,6 @@ export declare class FPSController implements ComponentAPI {
|
|
1095
1068
|
protected unregisterListeners(): void;
|
1096
1069
|
destroy(): void;
|
1097
1070
|
protected onMediaAttaching(event: Events.MEDIA_ATTACHING, data: MediaAttachingData): void;
|
1098
|
-
private onMediaDetaching;
|
1099
1071
|
checkFPS(video: HTMLVideoElement, decodedFrames: number, droppedFrames: number): void;
|
1100
1072
|
checkFPSInterval(): void;
|
1101
1073
|
}
|
@@ -1188,8 +1160,8 @@ export declare class Fragment extends BaseSegment {
|
|
1188
1160
|
cc: number;
|
1189
1161
|
startPTS?: number;
|
1190
1162
|
endPTS?: number;
|
1191
|
-
startDTS
|
1192
|
-
endDTS
|
1163
|
+
startDTS: number;
|
1164
|
+
endDTS: number;
|
1193
1165
|
start: number;
|
1194
1166
|
deltaPTS?: number;
|
1195
1167
|
maxStartPTS?: number;
|
@@ -1277,21 +1249,20 @@ declare class FragmentTracker implements ComponentAPI {
|
|
1277
1249
|
* A buffered Fragment is one whose loading, parsing and appending is done (completed or "partial" meaning aborted).
|
1278
1250
|
* If not found any Fragment, return null
|
1279
1251
|
*/
|
1280
|
-
getBufferedFrag(position: number, levelType: PlaylistLevelType):
|
1281
|
-
getFragAtPos(position: number, levelType: PlaylistLevelType, buffered?: boolean): MediaFragment | null;
|
1252
|
+
getBufferedFrag(position: number, levelType: PlaylistLevelType): Fragment | null;
|
1282
1253
|
/**
|
1283
1254
|
* Partial fragments effected by coded frame eviction will be removed
|
1284
1255
|
* The browser will unload parts of the buffer to free up memory for new buffer data
|
1285
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)
|
1286
1257
|
*/
|
1287
|
-
detectEvictedFragments(elementaryStream: SourceBufferName, timeRange: TimeRanges, playlistType: PlaylistLevelType, appendedPart?: Part | null
|
1258
|
+
detectEvictedFragments(elementaryStream: SourceBufferName, timeRange: TimeRanges, playlistType: PlaylistLevelType, appendedPart?: Part | null): void;
|
1288
1259
|
/**
|
1289
1260
|
* Checks if the fragment passed in is loaded in the buffer properly
|
1290
1261
|
* Partially loaded fragments will be registered as a partial fragment
|
1291
1262
|
*/
|
1292
1263
|
detectPartialFragments(data: FragBufferedData): void;
|
1293
1264
|
private removeParts;
|
1294
|
-
fragBuffered(frag:
|
1265
|
+
fragBuffered(frag: Fragment, force?: true): void;
|
1295
1266
|
private getBufferedTimes;
|
1296
1267
|
/**
|
1297
1268
|
* Gets the partial fragment for a certain time
|
@@ -1300,12 +1271,10 @@ declare class FragmentTracker implements ComponentAPI {
|
|
1300
1271
|
isEndListAppended(type: PlaylistLevelType): boolean;
|
1301
1272
|
getState(fragment: Fragment): FragmentState;
|
1302
1273
|
private isTimeBuffered;
|
1303
|
-
private onManifestLoading;
|
1304
1274
|
private onFragLoaded;
|
1305
1275
|
private onBufferAppended;
|
1306
1276
|
private onFragBuffered;
|
1307
1277
|
private hasFragment;
|
1308
|
-
hasFragments(type?: PlaylistLevelType): boolean;
|
1309
1278
|
hasParts(type: PlaylistLevelType): boolean;
|
1310
1279
|
removeFragmentsInRange(start: number, end: number, playlistType: PlaylistLevelType, withGapOnly?: boolean, unbufferedOnly?: boolean): void;
|
1311
1280
|
removeFragment(fragment: Fragment): void;
|
@@ -1352,12 +1321,9 @@ declare class Hls implements HlsEventEmitter {
|
|
1352
1321
|
* The configuration object provided on player instantiation.
|
1353
1322
|
*/
|
1354
1323
|
readonly userConfig: Partial<HlsConfig>;
|
1355
|
-
/**
|
1356
|
-
* The logger functions used by this player instance, configured on player instantiation.
|
1357
|
-
*/
|
1358
|
-
readonly logger: ILogger;
|
1359
1324
|
private coreComponents;
|
1360
1325
|
private networkControllers;
|
1326
|
+
private started;
|
1361
1327
|
private _emitter;
|
1362
1328
|
private _autoLevelCapping;
|
1363
1329
|
private _maxHdcpLevel;
|
@@ -1372,7 +1338,7 @@ declare class Hls implements HlsEventEmitter {
|
|
1372
1338
|
private emeController;
|
1373
1339
|
private cmcdController;
|
1374
1340
|
private _media;
|
1375
|
-
private
|
1341
|
+
private url;
|
1376
1342
|
private triggeringException?;
|
1377
1343
|
/**
|
1378
1344
|
* Get the video-dev/hls.js package version.
|
@@ -1431,10 +1397,6 @@ declare class Hls implements HlsEventEmitter {
|
|
1431
1397
|
* Set the source URL. Can be relative or absolute.
|
1432
1398
|
*/
|
1433
1399
|
loadSource(url: string): void;
|
1434
|
-
/**
|
1435
|
-
* Gets the currently loaded URL
|
1436
|
-
*/
|
1437
|
-
get url(): string | null;
|
1438
1400
|
/**
|
1439
1401
|
* Start loading data from the stream source.
|
1440
1402
|
* Depending on default config, client starts loading automatically when a source is set.
|
@@ -1448,11 +1410,11 @@ declare class Hls implements HlsEventEmitter {
|
|
1448
1410
|
*/
|
1449
1411
|
stopLoad(): void;
|
1450
1412
|
/**
|
1451
|
-
* Resumes stream controller segment loading
|
1413
|
+
* Resumes stream controller segment loading if previously started.
|
1452
1414
|
*/
|
1453
1415
|
resumeBuffering(): void;
|
1454
1416
|
/**
|
1455
|
-
*
|
1417
|
+
* Stops stream controller segment loading without changing 'started' state like stopLoad().
|
1456
1418
|
* This allows for media buffering to be paused without interupting playlist loading.
|
1457
1419
|
*/
|
1458
1420
|
pauseBuffering(): void;
|
@@ -1597,7 +1559,6 @@ declare class Hls implements HlsEventEmitter {
|
|
1597
1559
|
*/
|
1598
1560
|
get playingDate(): Date | null;
|
1599
1561
|
get mainForwardBufferInfo(): BufferInfo | null;
|
1600
|
-
get maxBufferLength(): number;
|
1601
1562
|
/**
|
1602
1563
|
* Find and select the best matching audio track, making a level switch when a Group change is necessary.
|
1603
1564
|
* Updates `hls.config.audioPreference`. Returns the selected track, or null when no matching track is found.
|
@@ -1677,7 +1638,6 @@ declare class Hls implements HlsEventEmitter {
|
|
1677
1638
|
* target distance from the edge as calculated by the latency controller
|
1678
1639
|
*/
|
1679
1640
|
get targetLatency(): number | null;
|
1680
|
-
set targetLatency(latency: number);
|
1681
1641
|
/**
|
1682
1642
|
* the rate at which the edge of the current live playlist is advancing or 1 if there is none
|
1683
1643
|
*/
|
@@ -1686,11 +1646,6 @@ declare class Hls implements HlsEventEmitter {
|
|
1686
1646
|
* set to true when startLoad is called before MANIFEST_PARSED event
|
1687
1647
|
*/
|
1688
1648
|
get forceStartLoad(): boolean;
|
1689
|
-
/**
|
1690
|
-
* ContentSteering pathwayPriority getter/setter
|
1691
|
-
*/
|
1692
|
-
get pathwayPriority(): string[] | null;
|
1693
|
-
set pathwayPriority(pathwayPriority: string[]);
|
1694
1649
|
}
|
1695
1650
|
export default Hls;
|
1696
1651
|
|
@@ -1751,7 +1706,6 @@ export declare interface HlsListeners {
|
|
1751
1706
|
[Events.MEDIA_ATTACHED]: (event: Events.MEDIA_ATTACHED, data: MediaAttachedData) => void;
|
1752
1707
|
[Events.MEDIA_DETACHING]: (event: Events.MEDIA_DETACHING) => void;
|
1753
1708
|
[Events.MEDIA_DETACHED]: (event: Events.MEDIA_DETACHED) => void;
|
1754
|
-
[Events.MEDIA_ENDED]: (event: Events.MEDIA_ENDED, data: MediaEndedData) => void;
|
1755
1709
|
[Events.BUFFER_RESET]: (event: Events.BUFFER_RESET) => void;
|
1756
1710
|
[Events.BUFFER_CODECS]: (event: Events.BUFFER_CODECS, data: BufferCodecsData) => void;
|
1757
1711
|
[Events.BUFFER_CREATED]: (event: Events.BUFFER_CREATED, data: BufferCreatedData) => void;
|
@@ -1862,8 +1816,8 @@ export declare interface ILogger {
|
|
1862
1816
|
}
|
1863
1817
|
|
1864
1818
|
export declare interface InitPTSFoundData {
|
1865
|
-
id:
|
1866
|
-
frag:
|
1819
|
+
id: string;
|
1820
|
+
frag: Fragment;
|
1867
1821
|
initPTS: number;
|
1868
1822
|
timescale: number;
|
1869
1823
|
}
|
@@ -1942,7 +1896,6 @@ export declare type LatencyControllerConfig = {
|
|
1942
1896
|
liveSyncDuration?: number;
|
1943
1897
|
liveMaxLatencyDuration?: number;
|
1944
1898
|
maxLiveSyncPlaybackRate: number;
|
1945
|
-
liveSyncOnStallIncrease: number;
|
1946
1899
|
};
|
1947
1900
|
|
1948
1901
|
export declare class Level {
|
@@ -2026,11 +1979,10 @@ export declare class LevelDetails {
|
|
2026
1979
|
averagetargetduration?: number;
|
2027
1980
|
endCC: number;
|
2028
1981
|
endSN: number;
|
2029
|
-
fragments:
|
2030
|
-
fragmentHint?:
|
1982
|
+
fragments: Fragment[];
|
1983
|
+
fragmentHint?: Fragment;
|
2031
1984
|
partList: Part[] | null;
|
2032
1985
|
dateRanges: Record<string, DateRange>;
|
2033
|
-
dateRangeTagCount: number;
|
2034
1986
|
live: boolean;
|
2035
1987
|
ageHeader: number;
|
2036
1988
|
advancedDateTime?: number;
|
@@ -2305,16 +2257,6 @@ export declare class LoadStats implements LoaderStats {
|
|
2305
2257
|
buffering: HlsProgressivePerformanceTiming;
|
2306
2258
|
}
|
2307
2259
|
|
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
|
-
|
2318
2260
|
export declare type MainPlaylistType = AudioPlaylistType | 'VIDEO';
|
2319
2261
|
|
2320
2262
|
export declare interface ManifestLoadedData {
|
@@ -2390,14 +2332,6 @@ export declare type MediaDecodingInfo = {
|
|
2390
2332
|
error?: Error;
|
2391
2333
|
};
|
2392
2334
|
|
2393
|
-
export declare interface MediaEndedData {
|
2394
|
-
stalled: boolean;
|
2395
|
-
}
|
2396
|
-
|
2397
|
-
export declare interface MediaFragment extends Fragment {
|
2398
|
-
sn: number;
|
2399
|
-
}
|
2400
|
-
|
2401
2335
|
export declare type MediaKeyFunc = (keySystem: KeySystems, supportedConfigurations: MediaKeySystemConfiguration[]) => Promise<MediaKeySystemAccess>;
|
2402
2336
|
|
2403
2337
|
export declare interface MediaKeySessionContext {
|
@@ -2467,8 +2401,6 @@ export declare type MP4RemuxerConfig = {
|
|
2467
2401
|
export declare interface NetworkComponentAPI extends ComponentAPI {
|
2468
2402
|
startLoad(startPosition: number): void;
|
2469
2403
|
stopLoad(): void;
|
2470
|
-
pauseBuffering?(): void;
|
2471
|
-
resumeBuffering?(): void;
|
2472
2404
|
}
|
2473
2405
|
|
2474
2406
|
export declare const enum NetworkErrorAction {
|
@@ -2501,17 +2433,6 @@ declare interface PACData {
|
|
2501
2433
|
italics: boolean;
|
2502
2434
|
}
|
2503
2435
|
|
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
|
-
|
2515
2436
|
/**
|
2516
2437
|
* Object representing parsed data from an HLS Partial Segment. Found in {@link hls.js#LevelDetails.partList}.
|
2517
2438
|
*/
|
@@ -2521,10 +2442,10 @@ export declare class Part extends BaseSegment {
|
|
2521
2442
|
readonly gap: boolean;
|
2522
2443
|
readonly independent: boolean;
|
2523
2444
|
readonly relurl: string;
|
2524
|
-
readonly fragment:
|
2445
|
+
readonly fragment: Fragment;
|
2525
2446
|
readonly index: number;
|
2526
2447
|
stats: LoadStats;
|
2527
|
-
constructor(partAttrs: AttrList, frag:
|
2448
|
+
constructor(partAttrs: AttrList, frag: Fragment, baseurl: string, index: number, previous?: Part);
|
2528
2449
|
get start(): number;
|
2529
2450
|
get end(): number;
|
2530
2451
|
get loaded(): boolean;
|
@@ -2719,14 +2640,16 @@ declare class StreamController extends BaseStreamController implements NetworkCo
|
|
2719
2640
|
private altAudio;
|
2720
2641
|
private audioOnly;
|
2721
2642
|
private fragPlaying;
|
2643
|
+
private onvplaying;
|
2644
|
+
private onvseeked;
|
2722
2645
|
private fragLastKbps;
|
2723
2646
|
private couldBacktrack;
|
2724
2647
|
private backtrackFragment;
|
2725
2648
|
private audioCodecSwitch;
|
2726
2649
|
private videoBuffer;
|
2727
2650
|
constructor(hls: Hls, fragmentTracker: FragmentTracker, keyLoader: KeyLoader);
|
2728
|
-
|
2729
|
-
protected
|
2651
|
+
private _registerListeners;
|
2652
|
+
protected _unregisterListeners(): void;
|
2730
2653
|
protected onHandlerDestroying(): void;
|
2731
2654
|
startLoad(startPosition: number): void;
|
2732
2655
|
stopLoad(): void;
|
@@ -2750,7 +2673,7 @@ declare class StreamController extends BaseStreamController implements NetworkCo
|
|
2750
2673
|
protected onMediaDetaching(): void;
|
2751
2674
|
private onMediaPlaying;
|
2752
2675
|
private onMediaSeeked;
|
2753
|
-
|
2676
|
+
private onManifestLoading;
|
2754
2677
|
private onManifestParsed;
|
2755
2678
|
private onLevelLoading;
|
2756
2679
|
private onLevelLoaded;
|
@@ -2759,7 +2682,7 @@ declare class StreamController extends BaseStreamController implements NetworkCo
|
|
2759
2682
|
private onAudioTrackSwitched;
|
2760
2683
|
private onBufferCreated;
|
2761
2684
|
private onFragBuffered;
|
2762
|
-
|
2685
|
+
private onError;
|
2763
2686
|
private checkBuffer;
|
2764
2687
|
private onFragLoadEmergencyAborted;
|
2765
2688
|
private onBufferFlushed;
|
@@ -2774,14 +2697,13 @@ declare class StreamController extends BaseStreamController implements NetworkCo
|
|
2774
2697
|
private _handleTransmuxComplete;
|
2775
2698
|
private _bufferInitSegment;
|
2776
2699
|
getMainFwdBufferInfo(): BufferInfo | null;
|
2777
|
-
get maxBufferLength(): number;
|
2778
2700
|
private backtrack;
|
2779
2701
|
private checkFragmentChanged;
|
2780
2702
|
get nextLevel(): number;
|
2781
2703
|
get currentFrag(): Fragment | null;
|
2782
2704
|
get currentProgramDateTime(): Date | null;
|
2783
2705
|
get currentLevel(): number;
|
2784
|
-
get nextBufferedFrag():
|
2706
|
+
get nextBufferedFrag(): Fragment | null;
|
2785
2707
|
get forceStartLoad(): boolean;
|
2786
2708
|
}
|
2787
2709
|
|
@@ -2817,6 +2739,11 @@ declare class StyledUnicodeChar {
|
|
2817
2739
|
isEmpty(): boolean;
|
2818
2740
|
}
|
2819
2741
|
|
2742
|
+
declare interface SubtitleFragProcessed {
|
2743
|
+
success: boolean;
|
2744
|
+
frag: Fragment;
|
2745
|
+
}
|
2746
|
+
|
2820
2747
|
export declare interface SubtitleFragProcessedData {
|
2821
2748
|
success: boolean;
|
2822
2749
|
frag: Fragment;
|
@@ -2841,21 +2768,22 @@ export declare class SubtitleStreamController extends BaseStreamController imple
|
|
2841
2768
|
private mainDetails;
|
2842
2769
|
constructor(hls: Hls, fragmentTracker: FragmentTracker, keyLoader: KeyLoader);
|
2843
2770
|
protected onHandlerDestroying(): void;
|
2844
|
-
|
2845
|
-
|
2771
|
+
private _registerListeners;
|
2772
|
+
private _unregisterListeners;
|
2846
2773
|
startLoad(startPosition: number): void;
|
2847
|
-
|
2848
|
-
|
2849
|
-
|
2850
|
-
|
2851
|
-
|
2852
|
-
|
2853
|
-
|
2854
|
-
|
2855
|
-
|
2856
|
-
|
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;
|
2857
2784
|
_handleFragmentLoadComplete(fragLoadedData: FragLoadedData): void;
|
2858
2785
|
doTick(): void;
|
2786
|
+
protected getMaxBufferLength(mainBufferLength?: number): number;
|
2859
2787
|
protected loadFragment(frag: Fragment, level: Level, targetBufferTime: number): void;
|
2860
2788
|
get mediaBufferTimeRanges(): Bufferable;
|
2861
2789
|
}
|
@@ -2869,10 +2797,10 @@ export declare class SubtitleTrackController extends BasePlaylistController {
|
|
2869
2797
|
private currentTrack;
|
2870
2798
|
private selectDefaultTrack;
|
2871
2799
|
private queuedDefaultTrack;
|
2800
|
+
private asyncPollTrackChange;
|
2872
2801
|
private useTextTrackPolling;
|
2873
2802
|
private subtitlePollingInterval;
|
2874
2803
|
private _subtitleDisplay;
|
2875
|
-
private asyncPollTrackChange;
|
2876
2804
|
constructor(hls: Hls);
|
2877
2805
|
destroy(): void;
|
2878
2806
|
get subtitleDisplay(): boolean;
|
@@ -2957,12 +2885,12 @@ export declare interface SubtitleTrackSwitchData {
|
|
2957
2885
|
* we are limiting the task execution per call stack to exactly one, but scheduling/post-poning further
|
2958
2886
|
* task processing on the next main loop iteration (also known as "next tick" in the Node/JS runtime lingo).
|
2959
2887
|
*/
|
2960
|
-
declare class TaskLoop
|
2888
|
+
declare class TaskLoop {
|
2961
2889
|
private readonly _boundTick;
|
2962
2890
|
private _tickTimer;
|
2963
2891
|
private _tickInterval;
|
2964
2892
|
private _tickCallCount;
|
2965
|
-
constructor(
|
2893
|
+
constructor();
|
2966
2894
|
destroy(): void;
|
2967
2895
|
protected onHandlerDestroying(): void;
|
2968
2896
|
protected onHandlerDestroyed(): void;
|
@@ -3093,6 +3021,10 @@ export declare interface TrackSet {
|
|
3093
3021
|
audiovideo?: Track;
|
3094
3022
|
}
|
3095
3023
|
|
3024
|
+
declare interface TrackSwitchedData {
|
3025
|
+
id: number;
|
3026
|
+
}
|
3027
|
+
|
3096
3028
|
declare class TransmuxerInterface {
|
3097
3029
|
error: Error | null;
|
3098
3030
|
private hls;
|
@@ -3109,7 +3041,7 @@ declare class TransmuxerInterface {
|
|
3109
3041
|
constructor(hls: Hls, id: PlaylistLevelType, onTransmuxComplete: (transmuxResult: TransmuxerResult) => void, onFlush: (chunkMeta: ChunkMetadata) => void);
|
3110
3042
|
resetWorker(): void;
|
3111
3043
|
destroy(): void;
|
3112
|
-
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;
|
3113
3045
|
flush(chunkMeta: ChunkMetadata): void;
|
3114
3046
|
private transmuxerError;
|
3115
3047
|
private handleFlushResult;
|
@@ -3168,7 +3100,6 @@ declare const VideoRangeValues: readonly ["SDR", "PQ", "HLG"];
|
|
3168
3100
|
export declare type VideoSelectionOption = {
|
3169
3101
|
preferHDR?: boolean;
|
3170
3102
|
allowedVideoRanges?: Array<VideoRange>;
|
3171
|
-
videoCodec?: string;
|
3172
3103
|
};
|
3173
3104
|
|
3174
3105
|
export { }
|