hls.js 1.5.7 → 1.5.8-0.canary.10046
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 +2 -1
- package/dist/hls-demo.js +10 -0
- package/dist/hls-demo.js.map +1 -1
- package/dist/hls.js +2314 -1298
- package/dist/hls.js.d.ts +97 -84
- package/dist/hls.js.map +1 -1
- package/dist/hls.light.js +1486 -1075
- 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 +1195 -789
- 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 +1979 -982
- 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 +22 -22
- 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 +20 -8
- package/src/controller/base-stream-controller.ts +157 -36
- package/src/controller/buffer-controller.ts +203 -67
- package/src/controller/buffer-operation-queue.ts +16 -19
- package/src/controller/cap-level-controller.ts +2 -2
- package/src/controller/cmcd-controller.ts +27 -6
- package/src/controller/content-steering-controller.ts +8 -6
- package/src/controller/eme-controller.ts +9 -22
- package/src/controller/error-controller.ts +6 -8
- package/src/controller/fps-controller.ts +2 -3
- package/src/controller/fragment-tracker.ts +15 -11
- package/src/controller/gap-controller.ts +43 -16
- package/src/controller/latency-controller.ts +9 -11
- package/src/controller/level-controller.ts +12 -18
- package/src/controller/stream-controller.ts +36 -31
- package/src/controller/subtitle-stream-controller.ts +28 -40
- package/src/controller/subtitle-track-controller.ts +5 -3
- package/src/controller/timeline-controller.ts +23 -30
- package/src/crypt/aes-crypto.ts +21 -2
- package/src/crypt/decrypter-aes-mode.ts +4 -0
- package/src/crypt/decrypter.ts +32 -18
- package/src/crypt/fast-aes-key.ts +24 -5
- package/src/demux/audio/adts.ts +9 -4
- 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 +134 -2
- package/src/demux/video/exp-golomb.ts +0 -208
- package/src/demux/video/hevc-video-parser.ts +746 -0
- package/src/events.ts +7 -0
- package/src/hls.ts +49 -37
- package/src/loader/fragment-loader.ts +9 -2
- package/src/loader/key-loader.ts +2 -0
- 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 +23 -7
- package/src/task-loop.ts +5 -2
- package/src/types/component-api.ts +2 -0
- package/src/types/demuxer.ts +3 -0
- package/src/types/events.ts +4 -0
- package/src/utils/buffer-helper.ts +12 -31
- package/src/utils/codecs.ts +34 -5
- package/src/utils/encryption-methods-util.ts +21 -0
- package/src/utils/logger.ts +54 -24
- package/src/utils/mp4-tools.ts +4 -2
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,7 @@ export declare class CMCDController implements ComponentAPI {
|
|
602
606
|
* Apply CMCD data to a segment request
|
603
607
|
*/
|
604
608
|
private applyFragmentData;
|
609
|
+
private getNextFrag;
|
605
610
|
/**
|
606
611
|
* The CMCD object type.
|
607
612
|
*/
|
@@ -635,9 +640,8 @@ export declare interface ComponentAPI {
|
|
635
640
|
destroy(): void;
|
636
641
|
}
|
637
642
|
|
638
|
-
export declare class ContentSteeringController implements NetworkComponentAPI {
|
643
|
+
export declare class ContentSteeringController extends Logger implements NetworkComponentAPI {
|
639
644
|
private readonly hls;
|
640
|
-
private log;
|
641
645
|
private loader;
|
642
646
|
private uri;
|
643
647
|
private pathwayId;
|
@@ -727,6 +731,7 @@ declare class Decrypter {
|
|
727
731
|
private currentIV;
|
728
732
|
private currentResult;
|
729
733
|
private useSoftware;
|
734
|
+
private enableSoftwareAES;
|
730
735
|
constructor(config: HlsConfig, { removePKCS7Padding }?: {
|
731
736
|
removePKCS7Padding?: boolean | undefined;
|
732
737
|
});
|
@@ -734,14 +739,19 @@ declare class Decrypter {
|
|
734
739
|
isSync(): boolean;
|
735
740
|
flush(): Uint8Array | null;
|
736
741
|
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>;
|
742
|
+
decrypt(data: Uint8Array | ArrayBuffer, key: ArrayBuffer, iv: ArrayBuffer, aesMode: DecrypterAesMode): Promise<ArrayBuffer>;
|
743
|
+
softwareDecrypt(data: Uint8Array, key: ArrayBuffer, iv: ArrayBuffer, aesMode: DecrypterAesMode): ArrayBuffer | null;
|
744
|
+
webCryptoDecrypt(data: Uint8Array, key: ArrayBuffer, iv: ArrayBuffer, aesMode: DecrypterAesMode): Promise<ArrayBuffer>;
|
740
745
|
private onWebCryptoError;
|
741
746
|
private getValidChunk;
|
742
747
|
private logOnce;
|
743
748
|
}
|
744
749
|
|
750
|
+
declare const enum DecrypterAesMode {
|
751
|
+
cbc = 0,
|
752
|
+
ctr = 1
|
753
|
+
}
|
754
|
+
|
745
755
|
declare type DRMSystemConfiguration = {
|
746
756
|
licenseUrl: string;
|
747
757
|
serverCertificateUrl?: string;
|
@@ -787,7 +797,7 @@ export declare const enum ElementaryStreamTypes {
|
|
787
797
|
* @class
|
788
798
|
* @constructor
|
789
799
|
*/
|
790
|
-
export declare class EMEController implements ComponentAPI {
|
800
|
+
export declare class EMEController extends Logger implements ComponentAPI {
|
791
801
|
static CDMCleanupPromise: Promise<void> | void;
|
792
802
|
private readonly hls;
|
793
803
|
private readonly config;
|
@@ -798,12 +808,6 @@ export declare class EMEController implements ComponentAPI {
|
|
798
808
|
private mediaKeySessions;
|
799
809
|
private keyIdToKeySessionPromise;
|
800
810
|
private setMediaKeysQueue;
|
801
|
-
private onMediaEncrypted;
|
802
|
-
private onWaitingForKey;
|
803
|
-
private debug;
|
804
|
-
private log;
|
805
|
-
private warn;
|
806
|
-
private error;
|
807
811
|
constructor(hls: Hls);
|
808
812
|
destroy(): void;
|
809
813
|
private registerListeners;
|
@@ -824,8 +828,8 @@ export declare class EMEController implements ComponentAPI {
|
|
824
828
|
private handleError;
|
825
829
|
private getKeySystemForKeyPromise;
|
826
830
|
private getKeySystemSelectionPromise;
|
827
|
-
private
|
828
|
-
private
|
831
|
+
private onMediaEncrypted;
|
832
|
+
private onWaitingForKey;
|
829
833
|
private attemptSetMediaKeys;
|
830
834
|
private generateRequestWithPreferredKeySession;
|
831
835
|
private onKeyStatusChange;
|
@@ -859,13 +863,10 @@ export declare const enum ErrorActionFlags {
|
|
859
863
|
SwitchToSDR = 4
|
860
864
|
}
|
861
865
|
|
862
|
-
export declare class ErrorController implements NetworkComponentAPI {
|
866
|
+
export declare class ErrorController extends Logger implements NetworkComponentAPI {
|
863
867
|
private readonly hls;
|
864
868
|
private playlistError;
|
865
869
|
private penalizedRenditions;
|
866
|
-
private log;
|
867
|
-
private warn;
|
868
|
-
private error;
|
869
870
|
constructor(hls: Hls);
|
870
871
|
private registerListeners;
|
871
872
|
private unregisterListeners;
|
@@ -975,6 +976,7 @@ export declare enum Events {
|
|
975
976
|
MEDIA_ATTACHED = "hlsMediaAttached",
|
976
977
|
MEDIA_DETACHING = "hlsMediaDetaching",
|
977
978
|
MEDIA_DETACHED = "hlsMediaDetached",
|
979
|
+
MEDIA_ENDED = "hlsMediaEnded",
|
978
980
|
BUFFER_RESET = "hlsBufferReset",
|
979
981
|
BUFFER_CODECS = "hlsBufferCodecs",
|
980
982
|
BUFFER_CREATED = "hlsBufferCreated",
|
@@ -1250,6 +1252,7 @@ declare class FragmentTracker implements ComponentAPI {
|
|
1250
1252
|
* If not found any Fragment, return null
|
1251
1253
|
*/
|
1252
1254
|
getBufferedFrag(position: number, levelType: PlaylistLevelType): Fragment | null;
|
1255
|
+
getFragAtPos(position: number, levelType: PlaylistLevelType, buffered?: boolean): Fragment | null;
|
1253
1256
|
/**
|
1254
1257
|
* Partial fragments effected by coded frame eviction will be removed
|
1255
1258
|
* The browser will unload parts of the buffer to free up memory for new buffer data
|
@@ -1321,9 +1324,12 @@ declare class Hls implements HlsEventEmitter {
|
|
1321
1324
|
* The configuration object provided on player instantiation.
|
1322
1325
|
*/
|
1323
1326
|
readonly userConfig: Partial<HlsConfig>;
|
1327
|
+
/**
|
1328
|
+
* The logger functions used by this player instance, configured on player instantiation.
|
1329
|
+
*/
|
1330
|
+
readonly logger: ILogger;
|
1324
1331
|
private coreComponents;
|
1325
1332
|
private networkControllers;
|
1326
|
-
private started;
|
1327
1333
|
private _emitter;
|
1328
1334
|
private _autoLevelCapping;
|
1329
1335
|
private _maxHdcpLevel;
|
@@ -1410,11 +1416,11 @@ declare class Hls implements HlsEventEmitter {
|
|
1410
1416
|
*/
|
1411
1417
|
stopLoad(): void;
|
1412
1418
|
/**
|
1413
|
-
* Resumes stream controller segment loading
|
1419
|
+
* Resumes stream controller segment loading after `pauseBuffering` has been called.
|
1414
1420
|
*/
|
1415
1421
|
resumeBuffering(): void;
|
1416
1422
|
/**
|
1417
|
-
*
|
1423
|
+
* Prevents stream controller from loading new segments until `resumeBuffering` is called.
|
1418
1424
|
* This allows for media buffering to be paused without interupting playlist loading.
|
1419
1425
|
*/
|
1420
1426
|
pauseBuffering(): void;
|
@@ -1559,6 +1565,7 @@ declare class Hls implements HlsEventEmitter {
|
|
1559
1565
|
*/
|
1560
1566
|
get playingDate(): Date | null;
|
1561
1567
|
get mainForwardBufferInfo(): BufferInfo | null;
|
1568
|
+
get maxBufferLength(): number;
|
1562
1569
|
/**
|
1563
1570
|
* Find and select the best matching audio track, making a level switch when a Group change is necessary.
|
1564
1571
|
* Updates `hls.config.audioPreference`. Returns the selected track, or null when no matching track is found.
|
@@ -1706,6 +1713,7 @@ export declare interface HlsListeners {
|
|
1706
1713
|
[Events.MEDIA_ATTACHED]: (event: Events.MEDIA_ATTACHED, data: MediaAttachedData) => void;
|
1707
1714
|
[Events.MEDIA_DETACHING]: (event: Events.MEDIA_DETACHING) => void;
|
1708
1715
|
[Events.MEDIA_DETACHED]: (event: Events.MEDIA_DETACHED) => void;
|
1716
|
+
[Events.MEDIA_ENDED]: (event: Events.MEDIA_ENDED, data: MediaEndedData) => void;
|
1709
1717
|
[Events.BUFFER_RESET]: (event: Events.BUFFER_RESET) => void;
|
1710
1718
|
[Events.BUFFER_CODECS]: (event: Events.BUFFER_CODECS, data: BufferCodecsData) => void;
|
1711
1719
|
[Events.BUFFER_CREATED]: (event: Events.BUFFER_CREATED, data: BufferCreatedData) => void;
|
@@ -2257,6 +2265,16 @@ export declare class LoadStats implements LoaderStats {
|
|
2257
2265
|
buffering: HlsProgressivePerformanceTiming;
|
2258
2266
|
}
|
2259
2267
|
|
2268
|
+
export declare class Logger implements ILogger {
|
2269
|
+
trace: ILogFunction;
|
2270
|
+
debug: ILogFunction;
|
2271
|
+
log: ILogFunction;
|
2272
|
+
warn: ILogFunction;
|
2273
|
+
info: ILogFunction;
|
2274
|
+
error: ILogFunction;
|
2275
|
+
constructor(label: string, logger: ILogger);
|
2276
|
+
}
|
2277
|
+
|
2260
2278
|
export declare type MainPlaylistType = AudioPlaylistType | 'VIDEO';
|
2261
2279
|
|
2262
2280
|
export declare interface ManifestLoadedData {
|
@@ -2332,6 +2350,10 @@ export declare type MediaDecodingInfo = {
|
|
2332
2350
|
error?: Error;
|
2333
2351
|
};
|
2334
2352
|
|
2353
|
+
export declare interface MediaEndedData {
|
2354
|
+
stalled: boolean;
|
2355
|
+
}
|
2356
|
+
|
2335
2357
|
export declare type MediaKeyFunc = (keySystem: KeySystems, supportedConfigurations: MediaKeySystemConfiguration[]) => Promise<MediaKeySystemAccess>;
|
2336
2358
|
|
2337
2359
|
export declare interface MediaKeySessionContext {
|
@@ -2401,6 +2423,8 @@ export declare type MP4RemuxerConfig = {
|
|
2401
2423
|
export declare interface NetworkComponentAPI extends ComponentAPI {
|
2402
2424
|
startLoad(startPosition: number): void;
|
2403
2425
|
stopLoad(): void;
|
2426
|
+
pauseBuffering?(): void;
|
2427
|
+
resumeBuffering?(): void;
|
2404
2428
|
}
|
2405
2429
|
|
2406
2430
|
export declare const enum NetworkErrorAction {
|
@@ -2640,16 +2664,14 @@ declare class StreamController extends BaseStreamController implements NetworkCo
|
|
2640
2664
|
private altAudio;
|
2641
2665
|
private audioOnly;
|
2642
2666
|
private fragPlaying;
|
2643
|
-
private onvplaying;
|
2644
|
-
private onvseeked;
|
2645
2667
|
private fragLastKbps;
|
2646
2668
|
private couldBacktrack;
|
2647
2669
|
private backtrackFragment;
|
2648
2670
|
private audioCodecSwitch;
|
2649
2671
|
private videoBuffer;
|
2650
2672
|
constructor(hls: Hls, fragmentTracker: FragmentTracker, keyLoader: KeyLoader);
|
2651
|
-
|
2652
|
-
protected
|
2673
|
+
protected registerListeners(): void;
|
2674
|
+
protected unregisterListeners(): void;
|
2653
2675
|
protected onHandlerDestroying(): void;
|
2654
2676
|
startLoad(startPosition: number): void;
|
2655
2677
|
stopLoad(): void;
|
@@ -2673,7 +2695,7 @@ declare class StreamController extends BaseStreamController implements NetworkCo
|
|
2673
2695
|
protected onMediaDetaching(): void;
|
2674
2696
|
private onMediaPlaying;
|
2675
2697
|
private onMediaSeeked;
|
2676
|
-
|
2698
|
+
protected onManifestLoading(): void;
|
2677
2699
|
private onManifestParsed;
|
2678
2700
|
private onLevelLoading;
|
2679
2701
|
private onLevelLoaded;
|
@@ -2682,7 +2704,7 @@ declare class StreamController extends BaseStreamController implements NetworkCo
|
|
2682
2704
|
private onAudioTrackSwitched;
|
2683
2705
|
private onBufferCreated;
|
2684
2706
|
private onFragBuffered;
|
2685
|
-
|
2707
|
+
protected onError(event: Events.ERROR, data: ErrorData): void;
|
2686
2708
|
private checkBuffer;
|
2687
2709
|
private onFragLoadEmergencyAborted;
|
2688
2710
|
private onBufferFlushed;
|
@@ -2697,6 +2719,7 @@ declare class StreamController extends BaseStreamController implements NetworkCo
|
|
2697
2719
|
private _handleTransmuxComplete;
|
2698
2720
|
private _bufferInitSegment;
|
2699
2721
|
getMainFwdBufferInfo(): BufferInfo | null;
|
2722
|
+
get maxBufferLength(): number;
|
2700
2723
|
private backtrack;
|
2701
2724
|
private checkFragmentChanged;
|
2702
2725
|
get nextLevel(): number;
|
@@ -2739,11 +2762,6 @@ declare class StyledUnicodeChar {
|
|
2739
2762
|
isEmpty(): boolean;
|
2740
2763
|
}
|
2741
2764
|
|
2742
|
-
declare interface SubtitleFragProcessed {
|
2743
|
-
success: boolean;
|
2744
|
-
frag: Fragment;
|
2745
|
-
}
|
2746
|
-
|
2747
2765
|
export declare interface SubtitleFragProcessedData {
|
2748
2766
|
success: boolean;
|
2749
2767
|
frag: Fragment;
|
@@ -2768,22 +2786,21 @@ export declare class SubtitleStreamController extends BaseStreamController imple
|
|
2768
2786
|
private mainDetails;
|
2769
2787
|
constructor(hls: Hls, fragmentTracker: FragmentTracker, keyLoader: KeyLoader);
|
2770
2788
|
protected onHandlerDestroying(): void;
|
2771
|
-
|
2772
|
-
|
2789
|
+
protected registerListeners(): void;
|
2790
|
+
protected unregisterListeners(): void;
|
2773
2791
|
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
|
2792
|
+
protected onManifestLoading(): void;
|
2793
|
+
protected onMediaDetaching(): void;
|
2794
|
+
private onLevelLoaded;
|
2795
|
+
private onSubtitleFragProcessed;
|
2796
|
+
private onBufferFlushing;
|
2797
|
+
private onFragBuffered;
|
2798
|
+
protected onError(event: Events.ERROR, data: ErrorData): void;
|
2799
|
+
private onSubtitleTracksUpdated;
|
2800
|
+
private onSubtitleTrackSwitch;
|
2801
|
+
private onSubtitleTrackLoaded;
|
2784
2802
|
_handleFragmentLoadComplete(fragLoadedData: FragLoadedData): void;
|
2785
2803
|
doTick(): void;
|
2786
|
-
protected getMaxBufferLength(mainBufferLength?: number): number;
|
2787
2804
|
protected loadFragment(frag: Fragment, level: Level, targetBufferTime: number): void;
|
2788
2805
|
get mediaBufferTimeRanges(): Bufferable;
|
2789
2806
|
}
|
@@ -2797,10 +2814,10 @@ export declare class SubtitleTrackController extends BasePlaylistController {
|
|
2797
2814
|
private currentTrack;
|
2798
2815
|
private selectDefaultTrack;
|
2799
2816
|
private queuedDefaultTrack;
|
2800
|
-
private asyncPollTrackChange;
|
2801
2817
|
private useTextTrackPolling;
|
2802
2818
|
private subtitlePollingInterval;
|
2803
2819
|
private _subtitleDisplay;
|
2820
|
+
private asyncPollTrackChange;
|
2804
2821
|
constructor(hls: Hls);
|
2805
2822
|
destroy(): void;
|
2806
2823
|
get subtitleDisplay(): boolean;
|
@@ -2885,12 +2902,12 @@ export declare interface SubtitleTrackSwitchData {
|
|
2885
2902
|
* we are limiting the task execution per call stack to exactly one, but scheduling/post-poning further
|
2886
2903
|
* task processing on the next main loop iteration (also known as "next tick" in the Node/JS runtime lingo).
|
2887
2904
|
*/
|
2888
|
-
declare class TaskLoop {
|
2905
|
+
declare class TaskLoop extends Logger {
|
2889
2906
|
private readonly _boundTick;
|
2890
2907
|
private _tickTimer;
|
2891
2908
|
private _tickInterval;
|
2892
2909
|
private _tickCallCount;
|
2893
|
-
constructor();
|
2910
|
+
constructor(label: string, logger: ILogger);
|
2894
2911
|
destroy(): void;
|
2895
2912
|
protected onHandlerDestroying(): void;
|
2896
2913
|
protected onHandlerDestroyed(): void;
|
@@ -3021,10 +3038,6 @@ export declare interface TrackSet {
|
|
3021
3038
|
audiovideo?: Track;
|
3022
3039
|
}
|
3023
3040
|
|
3024
|
-
declare interface TrackSwitchedData {
|
3025
|
-
id: number;
|
3026
|
-
}
|
3027
|
-
|
3028
3041
|
declare class TransmuxerInterface {
|
3029
3042
|
error: Error | null;
|
3030
3043
|
private hls;
|