hls.js 1.5.2-0.canary.9934 → 1.5.3
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/dist/hls-demo.js +0 -5
- package/dist/hls-demo.js.map +1 -1
- package/dist/hls.js +757 -883
- package/dist/hls.js.d.ts +47 -56
- package/dist/hls.js.map +1 -1
- package/dist/hls.light.js +477 -600
- 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 +335 -446
- 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 +572 -681
- 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 +11 -11
- package/src/config.ts +2 -3
- package/src/controller/abr-controller.ts +22 -22
- package/src/controller/audio-stream-controller.ts +14 -11
- package/src/controller/audio-track-controller.ts +1 -1
- package/src/controller/base-playlist-controller.ts +7 -7
- package/src/controller/base-stream-controller.ts +29 -47
- package/src/controller/buffer-controller.ts +11 -10
- package/src/controller/cap-level-controller.ts +2 -1
- package/src/controller/cmcd-controller.ts +3 -25
- package/src/controller/content-steering-controller.ts +6 -8
- package/src/controller/eme-controller.ts +22 -9
- package/src/controller/error-controller.ts +8 -6
- package/src/controller/fps-controller.ts +3 -2
- package/src/controller/gap-controller.ts +16 -43
- package/src/controller/latency-controller.ts +11 -9
- package/src/controller/level-controller.ts +17 -5
- package/src/controller/stream-controller.ts +31 -24
- package/src/controller/subtitle-stream-controller.ts +14 -13
- package/src/controller/subtitle-track-controller.ts +3 -5
- package/src/controller/timeline-controller.ts +30 -23
- package/src/crypt/aes-crypto.ts +2 -21
- package/src/crypt/decrypter.ts +18 -32
- package/src/crypt/fast-aes-key.ts +5 -24
- package/src/demux/audio/adts.ts +4 -9
- package/src/demux/sample-aes.ts +0 -2
- package/src/demux/transmuxer-interface.ts +12 -4
- package/src/demux/transmuxer-worker.ts +4 -4
- package/src/demux/transmuxer.ts +3 -16
- package/src/demux/tsdemuxer.ts +17 -12
- package/src/events.ts +0 -7
- package/src/hls.ts +20 -33
- package/src/loader/fragment-loader.ts +2 -9
- package/src/loader/key-loader.ts +0 -2
- package/src/loader/level-key.ts +9 -10
- package/src/remux/mp4-remuxer.ts +4 -20
- package/src/task-loop.ts +2 -5
- package/src/types/demuxer.ts +0 -1
- package/src/types/events.ts +0 -4
- package/src/utils/codecs.ts +4 -33
- package/src/utils/logger.ts +24 -53
- package/src/crypt/decrypter-aes-mode.ts +0 -4
- package/src/utils/encryption-methods-util.ts +0 -21
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;
|
@@ -111,8 +111,8 @@ export declare class AudioStreamController extends BaseStreamController implemen
|
|
111
111
|
private cachedTrackLoadedData;
|
112
112
|
constructor(hls: Hls, fragmentTracker: FragmentTracker, keyLoader: KeyLoader);
|
113
113
|
protected onHandlerDestroying(): void;
|
114
|
-
|
115
|
-
|
114
|
+
private _registerListeners;
|
115
|
+
private _unregisterListeners;
|
116
116
|
onInitPtsFound(event: Events.INIT_PTS_FOUND, { frag, id, initPTS, timescale }: InitPTSFoundData): void;
|
117
117
|
startLoad(startPosition: number): void;
|
118
118
|
doTick(): void;
|
@@ -132,7 +132,7 @@ export declare class AudioStreamController extends BaseStreamController implemen
|
|
132
132
|
onBufferReset(): void;
|
133
133
|
onBufferCreated(event: Events.BUFFER_CREATED, data: BufferCreatedData): void;
|
134
134
|
onFragBuffered(event: Events.FRAG_BUFFERED, data: FragBufferedData): void;
|
135
|
-
|
135
|
+
private onError;
|
136
136
|
private onBufferFlushing;
|
137
137
|
private onBufferFlushed;
|
138
138
|
private _handleTransmuxComplete;
|
@@ -187,11 +187,13 @@ export declare interface BackBufferData {
|
|
187
187
|
bufferEnd: number;
|
188
188
|
}
|
189
189
|
|
190
|
-
export declare class BasePlaylistController
|
190
|
+
export declare class BasePlaylistController implements NetworkComponentAPI {
|
191
191
|
protected hls: Hls;
|
192
192
|
protected timer: number;
|
193
193
|
protected requestScheduled: number;
|
194
194
|
protected canLoad: boolean;
|
195
|
+
protected log: (msg: any) => void;
|
196
|
+
protected warn: (msg: any) => void;
|
195
197
|
constructor(hls: Hls, logPrefix: string);
|
196
198
|
destroy(): void;
|
197
199
|
protected clearTimer(): void;
|
@@ -246,9 +248,12 @@ export declare class BaseStreamController extends TaskLoop implements NetworkCom
|
|
246
248
|
protected startFragRequested: boolean;
|
247
249
|
protected decrypter: Decrypter;
|
248
250
|
protected initPTS: RationalTimestamp[];
|
251
|
+
protected onvseeking: EventListener | null;
|
252
|
+
protected onvended: EventListener | null;
|
253
|
+
private readonly logPrefix;
|
254
|
+
protected log: (msg: any) => void;
|
255
|
+
protected warn: (msg: any) => void;
|
249
256
|
constructor(hls: Hls, fragmentTracker: FragmentTracker, keyLoader: KeyLoader, logPrefix: string, playlistType: PlaylistLevelType);
|
250
|
-
protected registerListeners(): void;
|
251
|
-
protected unregisterListeners(): void;
|
252
257
|
protected doTick(): void;
|
253
258
|
protected onTickEnd(): void;
|
254
259
|
startLoad(startPosition: number): void;
|
@@ -257,10 +262,8 @@ export declare class BaseStreamController extends TaskLoop implements NetworkCom
|
|
257
262
|
protected getLevelDetails(): LevelDetails | undefined;
|
258
263
|
protected onMediaAttached(event: Events.MEDIA_ATTACHED, data: MediaAttachedData): void;
|
259
264
|
protected onMediaDetaching(): void;
|
260
|
-
protected
|
261
|
-
protected
|
262
|
-
protected onMediaSeeking: () => void;
|
263
|
-
protected onMediaEnded: () => void;
|
265
|
+
protected onMediaSeeking(): void;
|
266
|
+
protected onMediaEnded(): void;
|
264
267
|
protected onManifestLoaded(event: Events.MANIFEST_LOADED, data: ManifestLoadedData): void;
|
265
268
|
protected onHandlerDestroying(): void;
|
266
269
|
protected onHandlerDestroyed(): void;
|
@@ -349,7 +352,7 @@ export declare interface BufferCodecsData {
|
|
349
352
|
audio?: Track;
|
350
353
|
}
|
351
354
|
|
352
|
-
export declare class BufferController
|
355
|
+
export declare class BufferController implements ComponentAPI {
|
353
356
|
private details;
|
354
357
|
private _objectUrl;
|
355
358
|
private operationQueue;
|
@@ -369,6 +372,9 @@ export declare class BufferController extends Logger implements ComponentAPI {
|
|
369
372
|
tracks: TrackSet;
|
370
373
|
pendingTracks: TrackSet;
|
371
374
|
sourceBuffer: SourceBuffers;
|
375
|
+
protected log: (msg: any) => void;
|
376
|
+
protected warn: (msg: any, obj?: any) => void;
|
377
|
+
protected error: (msg: any, obj?: any) => void;
|
372
378
|
constructor(hls: Hls);
|
373
379
|
hasSourceTypes(): boolean;
|
374
380
|
destroy(): void;
|
@@ -595,7 +601,6 @@ export declare class CMCDController implements ComponentAPI {
|
|
595
601
|
* Apply CMCD data to a segment request
|
596
602
|
*/
|
597
603
|
private applyFragmentData;
|
598
|
-
private getNextFrag;
|
599
604
|
/**
|
600
605
|
* The CMCD object type.
|
601
606
|
*/
|
@@ -629,8 +634,9 @@ export declare interface ComponentAPI {
|
|
629
634
|
destroy(): void;
|
630
635
|
}
|
631
636
|
|
632
|
-
export declare class ContentSteeringController
|
637
|
+
export declare class ContentSteeringController implements NetworkComponentAPI {
|
633
638
|
private readonly hls;
|
639
|
+
private log;
|
634
640
|
private loader;
|
635
641
|
private uri;
|
636
642
|
private pathwayId;
|
@@ -720,7 +726,6 @@ declare class Decrypter {
|
|
720
726
|
private currentIV;
|
721
727
|
private currentResult;
|
722
728
|
private useSoftware;
|
723
|
-
private enableSoftwareAES;
|
724
729
|
constructor(config: HlsConfig, { removePKCS7Padding }?: {
|
725
730
|
removePKCS7Padding?: boolean | undefined;
|
726
731
|
});
|
@@ -728,19 +733,14 @@ declare class Decrypter {
|
|
728
733
|
isSync(): boolean;
|
729
734
|
flush(): Uint8Array | null;
|
730
735
|
reset(): void;
|
731
|
-
decrypt(data: Uint8Array | ArrayBuffer, key: ArrayBuffer, iv: ArrayBuffer
|
732
|
-
softwareDecrypt(data: Uint8Array, key: ArrayBuffer, iv: ArrayBuffer
|
733
|
-
webCryptoDecrypt(data: Uint8Array, key: ArrayBuffer, iv: ArrayBuffer
|
736
|
+
decrypt(data: Uint8Array | ArrayBuffer, key: ArrayBuffer, iv: ArrayBuffer): Promise<ArrayBuffer>;
|
737
|
+
softwareDecrypt(data: Uint8Array, key: ArrayBuffer, iv: ArrayBuffer): ArrayBuffer | null;
|
738
|
+
webCryptoDecrypt(data: Uint8Array, key: ArrayBuffer, iv: ArrayBuffer): Promise<ArrayBuffer>;
|
734
739
|
private onWebCryptoError;
|
735
740
|
private getValidChunk;
|
736
741
|
private logOnce;
|
737
742
|
}
|
738
743
|
|
739
|
-
declare const enum DecrypterAesMode {
|
740
|
-
cbc = 0,
|
741
|
-
ctr = 1
|
742
|
-
}
|
743
|
-
|
744
744
|
declare type DRMSystemConfiguration = {
|
745
745
|
licenseUrl: string;
|
746
746
|
serverCertificateUrl?: string;
|
@@ -786,7 +786,7 @@ export declare const enum ElementaryStreamTypes {
|
|
786
786
|
* @class
|
787
787
|
* @constructor
|
788
788
|
*/
|
789
|
-
export declare class EMEController
|
789
|
+
export declare class EMEController implements ComponentAPI {
|
790
790
|
static CDMCleanupPromise: Promise<void> | void;
|
791
791
|
private readonly hls;
|
792
792
|
private readonly config;
|
@@ -797,6 +797,12 @@ export declare class EMEController extends Logger implements ComponentAPI {
|
|
797
797
|
private mediaKeySessions;
|
798
798
|
private keyIdToKeySessionPromise;
|
799
799
|
private setMediaKeysQueue;
|
800
|
+
private onMediaEncrypted;
|
801
|
+
private onWaitingForKey;
|
802
|
+
private debug;
|
803
|
+
private log;
|
804
|
+
private warn;
|
805
|
+
private error;
|
800
806
|
constructor(hls: Hls);
|
801
807
|
destroy(): void;
|
802
808
|
private registerListeners;
|
@@ -817,8 +823,8 @@ export declare class EMEController extends Logger implements ComponentAPI {
|
|
817
823
|
private handleError;
|
818
824
|
private getKeySystemForKeyPromise;
|
819
825
|
private getKeySystemSelectionPromise;
|
820
|
-
private
|
821
|
-
private
|
826
|
+
private _onMediaEncrypted;
|
827
|
+
private _onWaitingForKey;
|
822
828
|
private attemptSetMediaKeys;
|
823
829
|
private generateRequestWithPreferredKeySession;
|
824
830
|
private onKeyStatusChange;
|
@@ -852,10 +858,13 @@ export declare const enum ErrorActionFlags {
|
|
852
858
|
SwitchToSDR = 4
|
853
859
|
}
|
854
860
|
|
855
|
-
export declare class ErrorController
|
861
|
+
export declare class ErrorController implements NetworkComponentAPI {
|
856
862
|
private readonly hls;
|
857
863
|
private playlistError;
|
858
864
|
private penalizedRenditions;
|
865
|
+
private log;
|
866
|
+
private warn;
|
867
|
+
private error;
|
859
868
|
constructor(hls: Hls);
|
860
869
|
private registerListeners;
|
861
870
|
private unregisterListeners;
|
@@ -965,7 +974,6 @@ export declare enum Events {
|
|
965
974
|
MEDIA_ATTACHED = "hlsMediaAttached",
|
966
975
|
MEDIA_DETACHING = "hlsMediaDetaching",
|
967
976
|
MEDIA_DETACHED = "hlsMediaDetached",
|
968
|
-
MEDIA_ENDED = "hlsMediaEnded",
|
969
977
|
BUFFER_RESET = "hlsBufferReset",
|
970
978
|
BUFFER_CODECS = "hlsBufferCodecs",
|
971
979
|
BUFFER_CREATED = "hlsBufferCreated",
|
@@ -1312,10 +1320,6 @@ declare class Hls implements HlsEventEmitter {
|
|
1312
1320
|
* The configuration object provided on player instantiation.
|
1313
1321
|
*/
|
1314
1322
|
readonly userConfig: Partial<HlsConfig>;
|
1315
|
-
/**
|
1316
|
-
* The logger functions used by this player instance, configured on player instantiation.
|
1317
|
-
*/
|
1318
|
-
readonly logger: ILogger;
|
1319
1323
|
private coreComponents;
|
1320
1324
|
private networkControllers;
|
1321
1325
|
private started;
|
@@ -1701,7 +1705,6 @@ export declare interface HlsListeners {
|
|
1701
1705
|
[Events.MEDIA_ATTACHED]: (event: Events.MEDIA_ATTACHED, data: MediaAttachedData) => void;
|
1702
1706
|
[Events.MEDIA_DETACHING]: (event: Events.MEDIA_DETACHING) => void;
|
1703
1707
|
[Events.MEDIA_DETACHED]: (event: Events.MEDIA_DETACHED) => void;
|
1704
|
-
[Events.MEDIA_ENDED]: (event: Events.MEDIA_ENDED, data: MediaEndedData) => void;
|
1705
1708
|
[Events.BUFFER_RESET]: (event: Events.BUFFER_RESET) => void;
|
1706
1709
|
[Events.BUFFER_CODECS]: (event: Events.BUFFER_CODECS, data: BufferCodecsData) => void;
|
1707
1710
|
[Events.BUFFER_CREATED]: (event: Events.BUFFER_CREATED, data: BufferCreatedData) => void;
|
@@ -2253,16 +2256,6 @@ export declare class LoadStats implements LoaderStats {
|
|
2253
2256
|
buffering: HlsProgressivePerformanceTiming;
|
2254
2257
|
}
|
2255
2258
|
|
2256
|
-
export declare class Logger implements ILogger {
|
2257
|
-
trace: ILogFunction;
|
2258
|
-
debug: ILogFunction;
|
2259
|
-
log: ILogFunction;
|
2260
|
-
warn: ILogFunction;
|
2261
|
-
info: ILogFunction;
|
2262
|
-
error: ILogFunction;
|
2263
|
-
constructor(label: string, logger: ILogger);
|
2264
|
-
}
|
2265
|
-
|
2266
2259
|
export declare type MainPlaylistType = AudioPlaylistType | 'VIDEO';
|
2267
2260
|
|
2268
2261
|
export declare interface ManifestLoadedData {
|
@@ -2338,10 +2331,6 @@ export declare type MediaDecodingInfo = {
|
|
2338
2331
|
error?: Error;
|
2339
2332
|
};
|
2340
2333
|
|
2341
|
-
export declare interface MediaEndedData {
|
2342
|
-
stalled: boolean;
|
2343
|
-
}
|
2344
|
-
|
2345
2334
|
export declare type MediaKeyFunc = (keySystem: KeySystems, supportedConfigurations: MediaKeySystemConfiguration[]) => Promise<MediaKeySystemAccess>;
|
2346
2335
|
|
2347
2336
|
export declare interface MediaKeySessionContext {
|
@@ -2650,14 +2639,16 @@ declare class StreamController extends BaseStreamController implements NetworkCo
|
|
2650
2639
|
private altAudio;
|
2651
2640
|
private audioOnly;
|
2652
2641
|
private fragPlaying;
|
2642
|
+
private onvplaying;
|
2643
|
+
private onvseeked;
|
2653
2644
|
private fragLastKbps;
|
2654
2645
|
private couldBacktrack;
|
2655
2646
|
private backtrackFragment;
|
2656
2647
|
private audioCodecSwitch;
|
2657
2648
|
private videoBuffer;
|
2658
2649
|
constructor(hls: Hls, fragmentTracker: FragmentTracker, keyLoader: KeyLoader);
|
2659
|
-
|
2660
|
-
protected
|
2650
|
+
private _registerListeners;
|
2651
|
+
protected _unregisterListeners(): void;
|
2661
2652
|
protected onHandlerDestroying(): void;
|
2662
2653
|
startLoad(startPosition: number): void;
|
2663
2654
|
stopLoad(): void;
|
@@ -2681,7 +2672,7 @@ declare class StreamController extends BaseStreamController implements NetworkCo
|
|
2681
2672
|
protected onMediaDetaching(): void;
|
2682
2673
|
private onMediaPlaying;
|
2683
2674
|
private onMediaSeeked;
|
2684
|
-
|
2675
|
+
private onManifestLoading;
|
2685
2676
|
private onManifestParsed;
|
2686
2677
|
private onLevelLoading;
|
2687
2678
|
private onLevelLoaded;
|
@@ -2690,7 +2681,7 @@ declare class StreamController extends BaseStreamController implements NetworkCo
|
|
2690
2681
|
private onAudioTrackSwitched;
|
2691
2682
|
private onBufferCreated;
|
2692
2683
|
private onFragBuffered;
|
2693
|
-
|
2684
|
+
private onError;
|
2694
2685
|
private checkBuffer;
|
2695
2686
|
private onFragLoadEmergencyAborted;
|
2696
2687
|
private onBufferFlushed;
|
@@ -2776,8 +2767,8 @@ export declare class SubtitleStreamController extends BaseStreamController imple
|
|
2776
2767
|
private mainDetails;
|
2777
2768
|
constructor(hls: Hls, fragmentTracker: FragmentTracker, keyLoader: KeyLoader);
|
2778
2769
|
protected onHandlerDestroying(): void;
|
2779
|
-
|
2780
|
-
|
2770
|
+
private _registerListeners;
|
2771
|
+
private _unregisterListeners;
|
2781
2772
|
startLoad(startPosition: number): void;
|
2782
2773
|
onManifestLoading(): void;
|
2783
2774
|
onMediaDetaching(): void;
|
@@ -2805,10 +2796,10 @@ export declare class SubtitleTrackController extends BasePlaylistController {
|
|
2805
2796
|
private currentTrack;
|
2806
2797
|
private selectDefaultTrack;
|
2807
2798
|
private queuedDefaultTrack;
|
2799
|
+
private asyncPollTrackChange;
|
2808
2800
|
private useTextTrackPolling;
|
2809
2801
|
private subtitlePollingInterval;
|
2810
2802
|
private _subtitleDisplay;
|
2811
|
-
private asyncPollTrackChange;
|
2812
2803
|
constructor(hls: Hls);
|
2813
2804
|
destroy(): void;
|
2814
2805
|
get subtitleDisplay(): boolean;
|
@@ -2893,12 +2884,12 @@ export declare interface SubtitleTrackSwitchData {
|
|
2893
2884
|
* we are limiting the task execution per call stack to exactly one, but scheduling/post-poning further
|
2894
2885
|
* task processing on the next main loop iteration (also known as "next tick" in the Node/JS runtime lingo).
|
2895
2886
|
*/
|
2896
|
-
declare class TaskLoop
|
2887
|
+
declare class TaskLoop {
|
2897
2888
|
private readonly _boundTick;
|
2898
2889
|
private _tickTimer;
|
2899
2890
|
private _tickInterval;
|
2900
2891
|
private _tickCallCount;
|
2901
|
-
constructor(
|
2892
|
+
constructor();
|
2902
2893
|
destroy(): void;
|
2903
2894
|
protected onHandlerDestroying(): void;
|
2904
2895
|
protected onHandlerDestroyed(): void;
|