hls.js 1.5.9 → 1.5.10-0.canary.10320
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 +3477 -2194
- package/dist/hls.js.d.ts +108 -85
- package/dist/hls.js.map +1 -1
- package/dist/hls.light.js +2401 -1754
- 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 +1989 -1315
- 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 +2863 -1557
- 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 +35 -35
- package/src/config.ts +3 -2
- package/src/controller/abr-controller.ts +24 -20
- package/src/controller/audio-stream-controller.ts +68 -74
- 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 +160 -38
- package/src/controller/buffer-controller.ts +230 -92
- 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 +6 -8
- package/src/controller/fps-controller.ts +8 -3
- package/src/controller/fragment-tracker.ts +15 -11
- package/src/controller/gap-controller.ts +43 -16
- package/src/controller/id3-track-controller.ts +7 -7
- package/src/controller/latency-controller.ts +9 -11
- package/src/controller/level-controller.ts +37 -19
- package/src/controller/stream-controller.ts +37 -32
- package/src/controller/subtitle-stream-controller.ts +28 -40
- package/src/controller/subtitle-track-controller.ts +5 -3
- package/src/controller/timeline-controller.ts +19 -21
- 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 +4 -12
- package/src/demux/transmuxer-worker.ts +4 -4
- package/src/demux/transmuxer.ts +16 -3
- package/src/demux/tsdemuxer.ts +71 -37
- package/src/demux/video/avc-video-parser.ts +208 -119
- package/src/demux/video/base-video-parser.ts +147 -18
- package/src/demux/video/exp-golomb.ts +0 -208
- package/src/demux/video/hevc-video-parser.ts +749 -0
- package/src/empty-es.js +5 -0
- package/src/events.ts +8 -1
- package/src/exports-named.ts +1 -1
- package/src/hls.ts +61 -38
- package/src/loader/fragment-loader.ts +10 -3
- package/src/loader/key-loader.ts +3 -1
- package/src/loader/level-key.ts +10 -9
- package/src/loader/playlist-loader.ts +4 -5
- package/src/remux/mp4-generator.ts +196 -1
- package/src/remux/mp4-remuxer.ts +24 -8
- package/src/task-loop.ts +5 -2
- package/src/types/component-api.ts +3 -1
- package/src/types/demuxer.ts +4 -0
- package/src/types/events.ts +4 -0
- package/src/types/remuxer.ts +1 -1
- 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/imsc1-ttml-parser.ts +1 -1
- package/src/utils/keysystem-util.ts +1 -6
- package/src/utils/logger.ts +58 -23
- package/src/utils/mp4-tools.ts +5 -3
- package/src/utils/utf8-utils.ts +18 -0
- package/src/utils/webvtt-parser.ts +1 -1
- package/src/demux/id3.ts +0 -411
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;
|
@@ -112,8 +112,8 @@ export declare class AudioStreamController extends BaseStreamController implemen
|
|
112
112
|
private cachedTrackLoadedData;
|
113
113
|
constructor(hls: Hls, fragmentTracker: FragmentTracker, keyLoader: KeyLoader);
|
114
114
|
protected onHandlerDestroying(): void;
|
115
|
-
|
116
|
-
|
115
|
+
protected registerListeners(): void;
|
116
|
+
protected unregisterListeners(): void;
|
117
117
|
onInitPtsFound(event: Events.INIT_PTS_FOUND, { frag, id, initPTS, timescale }: InitPTSFoundData): void;
|
118
118
|
startLoad(startPosition: number): void;
|
119
119
|
doTick(): void;
|
@@ -121,19 +121,18 @@ export declare class AudioStreamController extends BaseStreamController implemen
|
|
121
121
|
protected resetLoadingState(): void;
|
122
122
|
protected onTickEnd(): void;
|
123
123
|
private doTickIdle;
|
124
|
-
protected
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
onAudioTrackLoaded(event: Events.AUDIO_TRACK_LOADED, data: TrackLoadedData): void;
|
124
|
+
protected onMediaDetaching(): void;
|
125
|
+
private onAudioTracksUpdated;
|
126
|
+
private onAudioTrackSwitching;
|
127
|
+
protected onManifestLoading(): void;
|
128
|
+
private onLevelLoaded;
|
129
|
+
private onAudioTrackLoaded;
|
131
130
|
_handleFragmentLoadProgress(data: FragLoadedData): void;
|
132
131
|
protected _handleFragmentLoadComplete(fragLoadedData: FragLoadedData): void;
|
133
|
-
onBufferReset
|
134
|
-
onBufferCreated
|
135
|
-
onFragBuffered
|
136
|
-
|
132
|
+
private onBufferReset;
|
133
|
+
private onBufferCreated;
|
134
|
+
private onFragBuffered;
|
135
|
+
protected onError(event: Events.ERROR, data: ErrorData): void;
|
137
136
|
private onBufferFlushing;
|
138
137
|
private onBufferFlushed;
|
139
138
|
private _handleTransmuxComplete;
|
@@ -188,13 +187,11 @@ export declare interface BackBufferData {
|
|
188
187
|
bufferEnd: number;
|
189
188
|
}
|
190
189
|
|
191
|
-
export declare class BasePlaylistController implements NetworkComponentAPI {
|
190
|
+
export declare class BasePlaylistController extends Logger implements NetworkComponentAPI {
|
192
191
|
protected hls: Hls;
|
193
192
|
protected timer: number;
|
194
193
|
protected requestScheduled: number;
|
195
194
|
protected canLoad: boolean;
|
196
|
-
protected log: (msg: any) => void;
|
197
|
-
protected warn: (msg: any) => void;
|
198
195
|
constructor(hls: Hls, logPrefix: string);
|
199
196
|
destroy(): void;
|
200
197
|
protected clearTimer(): void;
|
@@ -249,22 +246,25 @@ export declare class BaseStreamController extends TaskLoop implements NetworkCom
|
|
249
246
|
protected startFragRequested: boolean;
|
250
247
|
protected decrypter: Decrypter;
|
251
248
|
protected initPTS: RationalTimestamp[];
|
252
|
-
protected
|
253
|
-
|
254
|
-
private readonly logPrefix;
|
255
|
-
protected log: (msg: any) => void;
|
256
|
-
protected warn: (msg: any) => void;
|
249
|
+
protected buffering: boolean;
|
250
|
+
private loadingParts;
|
257
251
|
constructor(hls: Hls, fragmentTracker: FragmentTracker, keyLoader: KeyLoader, logPrefix: string, playlistType: PlaylistLevelType);
|
252
|
+
protected registerListeners(): void;
|
253
|
+
protected unregisterListeners(): void;
|
258
254
|
protected doTick(): void;
|
259
255
|
protected onTickEnd(): void;
|
260
256
|
startLoad(startPosition: number): void;
|
261
257
|
stopLoad(): void;
|
258
|
+
pauseBuffering(): void;
|
259
|
+
resumeBuffering(): void;
|
262
260
|
protected _streamEnded(bufferInfo: BufferInfo, levelDetails: LevelDetails): boolean;
|
263
261
|
protected getLevelDetails(): LevelDetails | undefined;
|
264
262
|
protected onMediaAttached(event: Events.MEDIA_ATTACHED, data: MediaAttachedData): void;
|
265
263
|
protected onMediaDetaching(): void;
|
266
|
-
protected
|
267
|
-
protected
|
264
|
+
protected onManifestLoading(): void;
|
265
|
+
protected onError(event: Events.ERROR, data: ErrorData): void;
|
266
|
+
protected onMediaSeeking: () => void;
|
267
|
+
protected onMediaEnded: () => void;
|
268
268
|
protected onManifestLoaded(event: Events.MANIFEST_LOADED, data: ManifestLoadedData): void;
|
269
269
|
protected onHandlerDestroying(): void;
|
270
270
|
protected onHandlerDestroyed(): void;
|
@@ -284,6 +284,7 @@ export declare class BaseStreamController extends TaskLoop implements NetworkCom
|
|
284
284
|
private doFragPartsLoad;
|
285
285
|
private handleFragLoadError;
|
286
286
|
protected _handleTransmuxerFlush(chunkMeta: ChunkMetadata): void;
|
287
|
+
private shouldLoadParts;
|
287
288
|
protected getCurrentContext(chunkMeta: ChunkMetadata): {
|
288
289
|
frag: Fragment;
|
289
290
|
part: Part | null;
|
@@ -353,17 +354,20 @@ export declare interface BufferCodecsData {
|
|
353
354
|
audio?: Track;
|
354
355
|
}
|
355
356
|
|
356
|
-
export declare class BufferController implements ComponentAPI {
|
357
|
+
export declare class BufferController extends Logger implements ComponentAPI {
|
357
358
|
private details;
|
358
359
|
private _objectUrl;
|
359
360
|
private operationQueue;
|
360
361
|
private listeners;
|
361
362
|
private hls;
|
363
|
+
private fragmentTracker;
|
362
364
|
bufferCodecEventsExpected: number;
|
363
365
|
private _bufferCodecEventsTotal;
|
364
366
|
media: HTMLMediaElement | null;
|
365
367
|
mediaSource: MediaSource | null;
|
366
368
|
private lastMpegAudioChunk;
|
369
|
+
private blockedAudioAppend;
|
370
|
+
private lastVideoAppendEnd;
|
367
371
|
private appendSource;
|
368
372
|
appendErrors: {
|
369
373
|
audio: number;
|
@@ -373,10 +377,7 @@ export declare class BufferController implements ComponentAPI {
|
|
373
377
|
tracks: TrackSet;
|
374
378
|
pendingTracks: TrackSet;
|
375
379
|
sourceBuffer: SourceBuffers;
|
376
|
-
|
377
|
-
protected warn: (msg: any, obj?: any) => void;
|
378
|
-
protected error: (msg: any, obj?: any) => void;
|
379
|
-
constructor(hls: Hls);
|
380
|
+
constructor(hls: Hls, fragmentTracker: FragmentTracker);
|
380
381
|
hasSourceTypes(): boolean;
|
381
382
|
destroy(): void;
|
382
383
|
protected registerListeners(): void;
|
@@ -391,8 +392,11 @@ export declare class BufferController implements ComponentAPI {
|
|
391
392
|
protected onBufferReset(): void;
|
392
393
|
private resetBuffer;
|
393
394
|
protected onBufferCodecs(event: Events.BUFFER_CODECS, data: BufferCodecsData): void;
|
394
|
-
protected appendChangeType(type:
|
395
|
+
protected appendChangeType(type: SourceBufferName, mimeType: string): void;
|
396
|
+
private blockAudio;
|
397
|
+
private unblockAudio;
|
395
398
|
protected onBufferAppending(event: Events.BUFFER_APPENDING, eventData: BufferAppendingData): void;
|
399
|
+
private getFlushOp;
|
396
400
|
protected onBufferFlushing(event: Events.BUFFER_FLUSHING, data: BufferFlushingData): void;
|
397
401
|
protected onFragParsed(event: Events.FRAG_PARSED, data: FragParsedData): void;
|
398
402
|
private onFragChanged;
|
@@ -406,8 +410,8 @@ export declare class BufferController implements ComponentAPI {
|
|
406
410
|
* 'liveDurationInfinity` is set to `true`
|
407
411
|
* More details: https://github.com/video-dev/hls.js/issues/355
|
408
412
|
*/
|
409
|
-
private
|
410
|
-
|
413
|
+
private getDurationAndRange;
|
414
|
+
private updateMediaSource;
|
411
415
|
protected checkPendingTracks(): void;
|
412
416
|
protected createSourceBuffers(tracks: TrackSet): void;
|
413
417
|
private _onMediaSourceOpen;
|
@@ -602,6 +606,8 @@ export declare class CMCDController implements ComponentAPI {
|
|
602
606
|
* Apply CMCD data to a segment request
|
603
607
|
*/
|
604
608
|
private applyFragmentData;
|
609
|
+
private getNextFrag;
|
610
|
+
private getNextPart;
|
605
611
|
/**
|
606
612
|
* The CMCD object type.
|
607
613
|
*/
|
@@ -635,13 +641,12 @@ export declare interface ComponentAPI {
|
|
635
641
|
destroy(): void;
|
636
642
|
}
|
637
643
|
|
638
|
-
export declare class ContentSteeringController implements NetworkComponentAPI {
|
644
|
+
export declare class ContentSteeringController extends Logger implements NetworkComponentAPI {
|
639
645
|
private readonly hls;
|
640
|
-
private log;
|
641
646
|
private loader;
|
642
647
|
private uri;
|
643
648
|
private pathwayId;
|
644
|
-
private
|
649
|
+
private _pathwayPriority;
|
645
650
|
private timeToLoad;
|
646
651
|
private reloadTimer;
|
647
652
|
private updated;
|
@@ -654,6 +659,9 @@ export declare class ContentSteeringController implements NetworkComponentAPI {
|
|
654
659
|
constructor(hls: Hls);
|
655
660
|
private registerListeners;
|
656
661
|
private unregisterListeners;
|
662
|
+
pathways(): string[];
|
663
|
+
get pathwayPriority(): string[] | null;
|
664
|
+
set pathwayPriority(pathwayPriority: string[]);
|
657
665
|
startLoad(): void;
|
658
666
|
stopLoad(): void;
|
659
667
|
clearTimeout(): void;
|
@@ -727,6 +735,7 @@ declare class Decrypter {
|
|
727
735
|
private currentIV;
|
728
736
|
private currentResult;
|
729
737
|
private useSoftware;
|
738
|
+
private enableSoftwareAES;
|
730
739
|
constructor(config: HlsConfig, { removePKCS7Padding }?: {
|
731
740
|
removePKCS7Padding?: boolean | undefined;
|
732
741
|
});
|
@@ -734,14 +743,19 @@ declare class Decrypter {
|
|
734
743
|
isSync(): boolean;
|
735
744
|
flush(): Uint8Array | null;
|
736
745
|
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>;
|
746
|
+
decrypt(data: Uint8Array | ArrayBuffer, key: ArrayBuffer, iv: ArrayBuffer, aesMode: DecrypterAesMode): Promise<ArrayBuffer>;
|
747
|
+
softwareDecrypt(data: Uint8Array, key: ArrayBuffer, iv: ArrayBuffer, aesMode: DecrypterAesMode): ArrayBuffer | null;
|
748
|
+
webCryptoDecrypt(data: Uint8Array, key: ArrayBuffer, iv: ArrayBuffer, aesMode: DecrypterAesMode): Promise<ArrayBuffer>;
|
740
749
|
private onWebCryptoError;
|
741
750
|
private getValidChunk;
|
742
751
|
private logOnce;
|
743
752
|
}
|
744
753
|
|
754
|
+
declare const enum DecrypterAesMode {
|
755
|
+
cbc = 0,
|
756
|
+
ctr = 1
|
757
|
+
}
|
758
|
+
|
745
759
|
declare type DRMSystemConfiguration = {
|
746
760
|
licenseUrl: string;
|
747
761
|
serverCertificateUrl?: string;
|
@@ -787,7 +801,7 @@ export declare const enum ElementaryStreamTypes {
|
|
787
801
|
* @class
|
788
802
|
* @constructor
|
789
803
|
*/
|
790
|
-
export declare class EMEController implements ComponentAPI {
|
804
|
+
export declare class EMEController extends Logger implements ComponentAPI {
|
791
805
|
static CDMCleanupPromise: Promise<void> | void;
|
792
806
|
private readonly hls;
|
793
807
|
private readonly config;
|
@@ -798,12 +812,6 @@ export declare class EMEController implements ComponentAPI {
|
|
798
812
|
private mediaKeySessions;
|
799
813
|
private keyIdToKeySessionPromise;
|
800
814
|
private setMediaKeysQueue;
|
801
|
-
private onMediaEncrypted;
|
802
|
-
private onWaitingForKey;
|
803
|
-
private debug;
|
804
|
-
private log;
|
805
|
-
private warn;
|
806
|
-
private error;
|
807
815
|
constructor(hls: Hls);
|
808
816
|
destroy(): void;
|
809
817
|
private registerListeners;
|
@@ -824,8 +832,8 @@ export declare class EMEController implements ComponentAPI {
|
|
824
832
|
private handleError;
|
825
833
|
private getKeySystemForKeyPromise;
|
826
834
|
private getKeySystemSelectionPromise;
|
827
|
-
private
|
828
|
-
private
|
835
|
+
private onMediaEncrypted;
|
836
|
+
private onWaitingForKey;
|
829
837
|
private attemptSetMediaKeys;
|
830
838
|
private generateRequestWithPreferredKeySession;
|
831
839
|
private onKeyStatusChange;
|
@@ -859,13 +867,10 @@ export declare const enum ErrorActionFlags {
|
|
859
867
|
SwitchToSDR = 4
|
860
868
|
}
|
861
869
|
|
862
|
-
export declare class ErrorController implements NetworkComponentAPI {
|
870
|
+
export declare class ErrorController extends Logger implements NetworkComponentAPI {
|
863
871
|
private readonly hls;
|
864
872
|
private playlistError;
|
865
873
|
private penalizedRenditions;
|
866
|
-
private log;
|
867
|
-
private warn;
|
868
|
-
private error;
|
869
874
|
constructor(hls: Hls);
|
870
875
|
private registerListeners;
|
871
876
|
private unregisterListeners;
|
@@ -975,6 +980,7 @@ export declare enum Events {
|
|
975
980
|
MEDIA_ATTACHED = "hlsMediaAttached",
|
976
981
|
MEDIA_DETACHING = "hlsMediaDetaching",
|
977
982
|
MEDIA_DETACHED = "hlsMediaDetached",
|
983
|
+
MEDIA_ENDED = "hlsMediaEnded",
|
978
984
|
BUFFER_RESET = "hlsBufferReset",
|
979
985
|
BUFFER_CODECS = "hlsBufferCodecs",
|
980
986
|
BUFFER_CREATED = "hlsBufferCreated",
|
@@ -1068,6 +1074,7 @@ export declare class FPSController implements ComponentAPI {
|
|
1068
1074
|
protected unregisterListeners(): void;
|
1069
1075
|
destroy(): void;
|
1070
1076
|
protected onMediaAttaching(event: Events.MEDIA_ATTACHING, data: MediaAttachingData): void;
|
1077
|
+
private onMediaDetaching;
|
1071
1078
|
checkFPS(video: HTMLVideoElement, decodedFrames: number, droppedFrames: number): void;
|
1072
1079
|
checkFPSInterval(): void;
|
1073
1080
|
}
|
@@ -1250,6 +1257,7 @@ declare class FragmentTracker implements ComponentAPI {
|
|
1250
1257
|
* If not found any Fragment, return null
|
1251
1258
|
*/
|
1252
1259
|
getBufferedFrag(position: number, levelType: PlaylistLevelType): Fragment | null;
|
1260
|
+
getFragAtPos(position: number, levelType: PlaylistLevelType, buffered?: boolean): Fragment | null;
|
1253
1261
|
/**
|
1254
1262
|
* Partial fragments effected by coded frame eviction will be removed
|
1255
1263
|
* The browser will unload parts of the buffer to free up memory for new buffer data
|
@@ -1321,9 +1329,12 @@ declare class Hls implements HlsEventEmitter {
|
|
1321
1329
|
* The configuration object provided on player instantiation.
|
1322
1330
|
*/
|
1323
1331
|
readonly userConfig: Partial<HlsConfig>;
|
1332
|
+
/**
|
1333
|
+
* The logger functions used by this player instance, configured on player instantiation.
|
1334
|
+
*/
|
1335
|
+
readonly logger: ILogger;
|
1324
1336
|
private coreComponents;
|
1325
1337
|
private networkControllers;
|
1326
|
-
private started;
|
1327
1338
|
private _emitter;
|
1328
1339
|
private _autoLevelCapping;
|
1329
1340
|
private _maxHdcpLevel;
|
@@ -1410,11 +1421,11 @@ declare class Hls implements HlsEventEmitter {
|
|
1410
1421
|
*/
|
1411
1422
|
stopLoad(): void;
|
1412
1423
|
/**
|
1413
|
-
* Resumes stream controller segment loading
|
1424
|
+
* Resumes stream controller segment loading after `pauseBuffering` has been called.
|
1414
1425
|
*/
|
1415
1426
|
resumeBuffering(): void;
|
1416
1427
|
/**
|
1417
|
-
*
|
1428
|
+
* Prevents stream controller from loading new segments until `resumeBuffering` is called.
|
1418
1429
|
* This allows for media buffering to be paused without interupting playlist loading.
|
1419
1430
|
*/
|
1420
1431
|
pauseBuffering(): void;
|
@@ -1559,6 +1570,7 @@ declare class Hls implements HlsEventEmitter {
|
|
1559
1570
|
*/
|
1560
1571
|
get playingDate(): Date | null;
|
1561
1572
|
get mainForwardBufferInfo(): BufferInfo | null;
|
1573
|
+
get maxBufferLength(): number;
|
1562
1574
|
/**
|
1563
1575
|
* Find and select the best matching audio track, making a level switch when a Group change is necessary.
|
1564
1576
|
* Updates `hls.config.audioPreference`. Returns the selected track, or null when no matching track is found.
|
@@ -1646,6 +1658,11 @@ declare class Hls implements HlsEventEmitter {
|
|
1646
1658
|
* set to true when startLoad is called before MANIFEST_PARSED event
|
1647
1659
|
*/
|
1648
1660
|
get forceStartLoad(): boolean;
|
1661
|
+
/**
|
1662
|
+
* ContentSteering pathwayPriority getter/setter
|
1663
|
+
*/
|
1664
|
+
get pathwayPriority(): string[] | null;
|
1665
|
+
set pathwayPriority(pathwayPriority: string[]);
|
1649
1666
|
}
|
1650
1667
|
export default Hls;
|
1651
1668
|
|
@@ -1706,6 +1723,7 @@ export declare interface HlsListeners {
|
|
1706
1723
|
[Events.MEDIA_ATTACHED]: (event: Events.MEDIA_ATTACHED, data: MediaAttachedData) => void;
|
1707
1724
|
[Events.MEDIA_DETACHING]: (event: Events.MEDIA_DETACHING) => void;
|
1708
1725
|
[Events.MEDIA_DETACHED]: (event: Events.MEDIA_DETACHED) => void;
|
1726
|
+
[Events.MEDIA_ENDED]: (event: Events.MEDIA_ENDED, data: MediaEndedData) => void;
|
1709
1727
|
[Events.BUFFER_RESET]: (event: Events.BUFFER_RESET) => void;
|
1710
1728
|
[Events.BUFFER_CODECS]: (event: Events.BUFFER_CODECS, data: BufferCodecsData) => void;
|
1711
1729
|
[Events.BUFFER_CREATED]: (event: Events.BUFFER_CREATED, data: BufferCreatedData) => void;
|
@@ -2257,6 +2275,16 @@ export declare class LoadStats implements LoaderStats {
|
|
2257
2275
|
buffering: HlsProgressivePerformanceTiming;
|
2258
2276
|
}
|
2259
2277
|
|
2278
|
+
export declare class Logger implements ILogger {
|
2279
|
+
trace: ILogFunction;
|
2280
|
+
debug: ILogFunction;
|
2281
|
+
log: ILogFunction;
|
2282
|
+
warn: ILogFunction;
|
2283
|
+
info: ILogFunction;
|
2284
|
+
error: ILogFunction;
|
2285
|
+
constructor(label: string, logger: ILogger);
|
2286
|
+
}
|
2287
|
+
|
2260
2288
|
export declare type MainPlaylistType = AudioPlaylistType | 'VIDEO';
|
2261
2289
|
|
2262
2290
|
export declare interface ManifestLoadedData {
|
@@ -2332,6 +2360,10 @@ export declare type MediaDecodingInfo = {
|
|
2332
2360
|
error?: Error;
|
2333
2361
|
};
|
2334
2362
|
|
2363
|
+
export declare interface MediaEndedData {
|
2364
|
+
stalled: boolean;
|
2365
|
+
}
|
2366
|
+
|
2335
2367
|
export declare type MediaKeyFunc = (keySystem: KeySystems, supportedConfigurations: MediaKeySystemConfiguration[]) => Promise<MediaKeySystemAccess>;
|
2336
2368
|
|
2337
2369
|
export declare interface MediaKeySessionContext {
|
@@ -2401,6 +2433,8 @@ export declare type MP4RemuxerConfig = {
|
|
2401
2433
|
export declare interface NetworkComponentAPI extends ComponentAPI {
|
2402
2434
|
startLoad(startPosition: number): void;
|
2403
2435
|
stopLoad(): void;
|
2436
|
+
pauseBuffering?(): void;
|
2437
|
+
resumeBuffering?(): void;
|
2404
2438
|
}
|
2405
2439
|
|
2406
2440
|
export declare const enum NetworkErrorAction {
|
@@ -2640,16 +2674,14 @@ declare class StreamController extends BaseStreamController implements NetworkCo
|
|
2640
2674
|
private altAudio;
|
2641
2675
|
private audioOnly;
|
2642
2676
|
private fragPlaying;
|
2643
|
-
private onvplaying;
|
2644
|
-
private onvseeked;
|
2645
2677
|
private fragLastKbps;
|
2646
2678
|
private couldBacktrack;
|
2647
2679
|
private backtrackFragment;
|
2648
2680
|
private audioCodecSwitch;
|
2649
2681
|
private videoBuffer;
|
2650
2682
|
constructor(hls: Hls, fragmentTracker: FragmentTracker, keyLoader: KeyLoader);
|
2651
|
-
|
2652
|
-
protected
|
2683
|
+
protected registerListeners(): void;
|
2684
|
+
protected unregisterListeners(): void;
|
2653
2685
|
protected onHandlerDestroying(): void;
|
2654
2686
|
startLoad(startPosition: number): void;
|
2655
2687
|
stopLoad(): void;
|
@@ -2673,7 +2705,7 @@ declare class StreamController extends BaseStreamController implements NetworkCo
|
|
2673
2705
|
protected onMediaDetaching(): void;
|
2674
2706
|
private onMediaPlaying;
|
2675
2707
|
private onMediaSeeked;
|
2676
|
-
|
2708
|
+
protected onManifestLoading(): void;
|
2677
2709
|
private onManifestParsed;
|
2678
2710
|
private onLevelLoading;
|
2679
2711
|
private onLevelLoaded;
|
@@ -2682,7 +2714,7 @@ declare class StreamController extends BaseStreamController implements NetworkCo
|
|
2682
2714
|
private onAudioTrackSwitched;
|
2683
2715
|
private onBufferCreated;
|
2684
2716
|
private onFragBuffered;
|
2685
|
-
|
2717
|
+
protected onError(event: Events.ERROR, data: ErrorData): void;
|
2686
2718
|
private checkBuffer;
|
2687
2719
|
private onFragLoadEmergencyAborted;
|
2688
2720
|
private onBufferFlushed;
|
@@ -2697,6 +2729,7 @@ declare class StreamController extends BaseStreamController implements NetworkCo
|
|
2697
2729
|
private _handleTransmuxComplete;
|
2698
2730
|
private _bufferInitSegment;
|
2699
2731
|
getMainFwdBufferInfo(): BufferInfo | null;
|
2732
|
+
get maxBufferLength(): number;
|
2700
2733
|
private backtrack;
|
2701
2734
|
private checkFragmentChanged;
|
2702
2735
|
get nextLevel(): number;
|
@@ -2739,11 +2772,6 @@ declare class StyledUnicodeChar {
|
|
2739
2772
|
isEmpty(): boolean;
|
2740
2773
|
}
|
2741
2774
|
|
2742
|
-
declare interface SubtitleFragProcessed {
|
2743
|
-
success: boolean;
|
2744
|
-
frag: Fragment;
|
2745
|
-
}
|
2746
|
-
|
2747
2775
|
export declare interface SubtitleFragProcessedData {
|
2748
2776
|
success: boolean;
|
2749
2777
|
frag: Fragment;
|
@@ -2768,22 +2796,21 @@ export declare class SubtitleStreamController extends BaseStreamController imple
|
|
2768
2796
|
private mainDetails;
|
2769
2797
|
constructor(hls: Hls, fragmentTracker: FragmentTracker, keyLoader: KeyLoader);
|
2770
2798
|
protected onHandlerDestroying(): void;
|
2771
|
-
|
2772
|
-
|
2799
|
+
protected registerListeners(): void;
|
2800
|
+
protected unregisterListeners(): void;
|
2773
2801
|
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
|
2802
|
+
protected onManifestLoading(): void;
|
2803
|
+
protected onMediaDetaching(): void;
|
2804
|
+
private onLevelLoaded;
|
2805
|
+
private onSubtitleFragProcessed;
|
2806
|
+
private onBufferFlushing;
|
2807
|
+
private onFragBuffered;
|
2808
|
+
protected onError(event: Events.ERROR, data: ErrorData): void;
|
2809
|
+
private onSubtitleTracksUpdated;
|
2810
|
+
private onSubtitleTrackSwitch;
|
2811
|
+
private onSubtitleTrackLoaded;
|
2784
2812
|
_handleFragmentLoadComplete(fragLoadedData: FragLoadedData): void;
|
2785
2813
|
doTick(): void;
|
2786
|
-
protected getMaxBufferLength(mainBufferLength?: number): number;
|
2787
2814
|
protected loadFragment(frag: Fragment, level: Level, targetBufferTime: number): void;
|
2788
2815
|
get mediaBufferTimeRanges(): Bufferable;
|
2789
2816
|
}
|
@@ -2797,10 +2824,10 @@ export declare class SubtitleTrackController extends BasePlaylistController {
|
|
2797
2824
|
private currentTrack;
|
2798
2825
|
private selectDefaultTrack;
|
2799
2826
|
private queuedDefaultTrack;
|
2800
|
-
private asyncPollTrackChange;
|
2801
2827
|
private useTextTrackPolling;
|
2802
2828
|
private subtitlePollingInterval;
|
2803
2829
|
private _subtitleDisplay;
|
2830
|
+
private asyncPollTrackChange;
|
2804
2831
|
constructor(hls: Hls);
|
2805
2832
|
destroy(): void;
|
2806
2833
|
get subtitleDisplay(): boolean;
|
@@ -2885,12 +2912,12 @@ export declare interface SubtitleTrackSwitchData {
|
|
2885
2912
|
* we are limiting the task execution per call stack to exactly one, but scheduling/post-poning further
|
2886
2913
|
* task processing on the next main loop iteration (also known as "next tick" in the Node/JS runtime lingo).
|
2887
2914
|
*/
|
2888
|
-
declare class TaskLoop {
|
2915
|
+
declare class TaskLoop extends Logger {
|
2889
2916
|
private readonly _boundTick;
|
2890
2917
|
private _tickTimer;
|
2891
2918
|
private _tickInterval;
|
2892
2919
|
private _tickCallCount;
|
2893
|
-
constructor();
|
2920
|
+
constructor(label: string, logger: ILogger);
|
2894
2921
|
destroy(): void;
|
2895
2922
|
protected onHandlerDestroying(): void;
|
2896
2923
|
protected onHandlerDestroyed(): void;
|
@@ -3021,10 +3048,6 @@ export declare interface TrackSet {
|
|
3021
3048
|
audiovideo?: Track;
|
3022
3049
|
}
|
3023
3050
|
|
3024
|
-
declare interface TrackSwitchedData {
|
3025
|
-
id: number;
|
3026
|
-
}
|
3027
|
-
|
3028
3051
|
declare class TransmuxerInterface {
|
3029
3052
|
error: Error | null;
|
3030
3053
|
private hls;
|