hls.js 1.6.0-beta.2.0.canary.10924 → 1.6.0-beta.2.0.canary.10926
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.d.mts +68 -30
- package/dist/hls.d.ts +68 -30
- package/dist/hls.js +684 -496
- package/dist/hls.js.d.ts +68 -30
- package/dist/hls.js.map +1 -1
- package/dist/hls.light.js +3882 -3693
- 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 +1140 -954
- 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 +684 -499
- package/dist/hls.mjs.map +1 -1
- package/dist/hls.worker.js +1 -1
- package/package.json +1 -1
- package/src/config.ts +15 -9
- package/src/controller/abr-controller.ts +2 -2
- package/src/controller/base-stream-controller.ts +16 -12
- package/src/controller/buffer-controller.ts +19 -22
- package/src/controller/error-controller.ts +2 -2
- package/src/controller/fragment-tracker.ts +1 -1
- package/src/controller/gap-controller.ts +273 -38
- package/src/controller/interstitials-controller.ts +14 -11
- package/src/controller/level-controller.ts +4 -0
- package/src/controller/stream-controller.ts +26 -73
- package/src/hls.ts +57 -3
- package/src/utils/buffer-helper.ts +35 -13
- package/src/utils/event-listener-helper.ts +16 -0
- package/src/utils/rendition-helper.ts +1 -1
package/dist/hls.js.d.ts
CHANGED
@@ -283,7 +283,7 @@ export declare class BaseStreamController extends TaskLoop implements NetworkCom
|
|
283
283
|
protected fragCurrent: Fragment | null;
|
284
284
|
protected fragmentTracker: FragmentTracker;
|
285
285
|
protected transmuxer: TransmuxerInterface | null;
|
286
|
-
protected _state:
|
286
|
+
protected _state: (typeof State)[keyof typeof State];
|
287
287
|
protected playlistType: PlaylistLevelType;
|
288
288
|
protected media: HTMLMediaElement | null;
|
289
289
|
protected mediaBuffer: Bufferable | null;
|
@@ -315,6 +315,7 @@ export declare class BaseStreamController extends TaskLoop implements NetworkCom
|
|
315
315
|
get bufferingEnabled(): boolean;
|
316
316
|
pauseBuffering(): void;
|
317
317
|
resumeBuffering(): void;
|
318
|
+
get inFlightFrag(): InFlightData;
|
318
319
|
protected _streamEnded(bufferInfo: BufferInfo, levelDetails: LevelDetails): boolean;
|
319
320
|
getLevelDetails(): LevelDetails | undefined;
|
320
321
|
protected onMediaAttached(event: Events.MEDIA_ATTACHED, data: MediaAttachedData): void;
|
@@ -323,7 +324,6 @@ export declare class BaseStreamController extends TaskLoop implements NetworkCom
|
|
323
324
|
protected onError(event: Events.ERROR, data: ErrorData): void;
|
324
325
|
protected onMediaSeeking: () => void;
|
325
326
|
protected onMediaEnded: () => void;
|
326
|
-
protected triggerEnded(): void;
|
327
327
|
protected onManifestLoaded(event: Events.MANIFEST_LOADED, data: ManifestLoadedData): void;
|
328
328
|
protected onHandlerDestroying(): void;
|
329
329
|
protected onHandlerDestroyed(): void;
|
@@ -384,8 +384,8 @@ export declare class BaseStreamController extends TaskLoop implements NetworkCom
|
|
384
384
|
private treatAsGap;
|
385
385
|
protected resetTransmuxer(): void;
|
386
386
|
protected recoverWorkerError(data: ErrorData): void;
|
387
|
-
set state(nextState:
|
388
|
-
get state():
|
387
|
+
set state(nextState: (typeof State)[keyof typeof State]);
|
388
|
+
get state(): (typeof State)[keyof typeof State];
|
389
389
|
}
|
390
390
|
|
391
391
|
export declare interface BaseTrack {
|
@@ -439,8 +439,8 @@ export declare class BufferController extends Logger implements ComponentAPI {
|
|
439
439
|
private _objectUrl;
|
440
440
|
private operationQueue;
|
441
441
|
private bufferCodecEventsTotal;
|
442
|
-
media
|
443
|
-
mediaSource
|
442
|
+
private media;
|
443
|
+
private mediaSource;
|
444
444
|
private lastMpegAudioChunk;
|
445
445
|
private blockedAudioAppend;
|
446
446
|
private lastVideoAppendEnd;
|
@@ -453,36 +453,36 @@ export declare class BufferController extends Logger implements ComponentAPI {
|
|
453
453
|
constructor(hls: Hls, fragmentTracker: FragmentTracker);
|
454
454
|
hasSourceTypes(): boolean;
|
455
455
|
destroy(): void;
|
456
|
-
|
457
|
-
|
456
|
+
private registerListeners;
|
457
|
+
private unregisterListeners;
|
458
458
|
transferMedia(): AttachMediaSourceData | null;
|
459
459
|
private initTracks;
|
460
460
|
private onManifestLoading;
|
461
|
-
|
462
|
-
|
461
|
+
private onManifestParsed;
|
462
|
+
private onMediaAttaching;
|
463
463
|
private assignMediaSource;
|
464
464
|
private attachTransferred;
|
465
465
|
private get mediaSourceOpenOrEnded();
|
466
466
|
private _onEndStreaming;
|
467
467
|
private _onStartStreaming;
|
468
|
-
|
469
|
-
|
468
|
+
private onMediaDetaching;
|
469
|
+
private onBufferReset;
|
470
470
|
private resetBuffer;
|
471
471
|
private removeBuffer;
|
472
472
|
private resetQueue;
|
473
|
-
|
473
|
+
private onBufferCodecs;
|
474
474
|
get sourceBufferTracks(): BaseTrackSet;
|
475
|
-
|
475
|
+
private appendChangeType;
|
476
476
|
private blockAudio;
|
477
477
|
private unblockAudio;
|
478
|
-
|
478
|
+
private onBufferAppending;
|
479
479
|
private getFlushOp;
|
480
|
-
|
481
|
-
|
480
|
+
private onBufferFlushing;
|
481
|
+
private onFragParsed;
|
482
482
|
private onFragChanged;
|
483
483
|
get bufferedToEnd(): boolean;
|
484
|
-
|
485
|
-
|
484
|
+
private onBufferEos;
|
485
|
+
private onLevelUpdated;
|
486
486
|
private updateDuration;
|
487
487
|
private onError;
|
488
488
|
private resetAppendErrors;
|
@@ -497,7 +497,7 @@ export declare class BufferController extends Logger implements ComponentAPI {
|
|
497
497
|
private getDurationAndRange;
|
498
498
|
private updateMediaSource;
|
499
499
|
private get tracksReady();
|
500
|
-
|
500
|
+
private checkPendingTracks;
|
501
501
|
private bufferCreated;
|
502
502
|
private createSourceBuffers;
|
503
503
|
private getTrackCodec;
|
@@ -572,6 +572,7 @@ export declare type BufferInfo = {
|
|
572
572
|
end: number;
|
573
573
|
nextStart?: number;
|
574
574
|
buffered?: BufferTimeRange[];
|
575
|
+
bufferedIndex: number;
|
575
576
|
};
|
576
577
|
|
577
578
|
/**
|
@@ -1448,7 +1449,7 @@ export declare class FragmentTracker implements ComponentAPI {
|
|
1448
1449
|
/**
|
1449
1450
|
* Gets the partial fragment for a certain time
|
1450
1451
|
*/
|
1451
|
-
getPartialFragment(time: number):
|
1452
|
+
getPartialFragment(time: number): MediaFragment | null;
|
1452
1453
|
isEndListAppended(type: PlaylistLevelType): boolean;
|
1453
1454
|
getState(fragment: Fragment): FragmentState;
|
1454
1455
|
private isTimeBuffered;
|
@@ -1486,6 +1487,14 @@ export declare interface FragParsingUserdataData {
|
|
1486
1487
|
samples: UserdataSample[];
|
1487
1488
|
}
|
1488
1489
|
|
1490
|
+
export declare type GapControllerConfig = {
|
1491
|
+
detectStallWithCurrentTimeMs: number;
|
1492
|
+
highBufferWatchdogPeriod: number;
|
1493
|
+
nudgeOffset: number;
|
1494
|
+
nudgeMaxRetry: number;
|
1495
|
+
nudgeOnVideoHole: boolean;
|
1496
|
+
};
|
1497
|
+
|
1489
1498
|
export declare type HdcpLevel = (typeof HdcpLevels)[number];
|
1490
1499
|
|
1491
1500
|
export declare const HdcpLevels: readonly ["NONE", "TYPE-0", "TYPE-1", null];
|
@@ -1519,9 +1528,12 @@ declare class Hls implements HlsEventEmitter {
|
|
1519
1528
|
private latencyController;
|
1520
1529
|
private levelController;
|
1521
1530
|
private streamController;
|
1531
|
+
private audioStreamController?;
|
1532
|
+
private subtititleStreamController?;
|
1522
1533
|
private audioTrackController?;
|
1523
1534
|
private subtitleTrackController?;
|
1524
1535
|
private interstitialsController?;
|
1536
|
+
private gapController;
|
1525
1537
|
private emeController?;
|
1526
1538
|
private cmcdController?;
|
1527
1539
|
private _media;
|
@@ -1632,6 +1644,7 @@ declare class Hls implements HlsEventEmitter {
|
|
1632
1644
|
* This allows for media buffering to be paused without interupting playlist loading.
|
1633
1645
|
*/
|
1634
1646
|
pauseBuffering(): void;
|
1647
|
+
get inFlightFragments(): InFlightFragments;
|
1635
1648
|
/**
|
1636
1649
|
* Swap through possible audio codecs in the stream (for example to switch from stereo to 5.1)
|
1637
1650
|
*/
|
@@ -1652,7 +1665,14 @@ declare class Hls implements HlsEventEmitter {
|
|
1652
1665
|
* @returns an array of levels (variants) sorted by HDCP-LEVEL, RESOLUTION (height), FRAME-RATE, CODECS, VIDEO-RANGE, and BANDWIDTH
|
1653
1666
|
*/
|
1654
1667
|
get levels(): Level[];
|
1668
|
+
/**
|
1669
|
+
* @returns LevelDetails of last loaded level (variant) or `null` prior to loading a media playlist.
|
1670
|
+
*/
|
1655
1671
|
get latestLevelDetails(): LevelDetails | null;
|
1672
|
+
/**
|
1673
|
+
* @returns Level object of selected level (variant) or `null` prior to selecting a level or once the level is removed.
|
1674
|
+
*/
|
1675
|
+
get loadLevelObj(): Level | null;
|
1656
1676
|
/**
|
1657
1677
|
* Index of quality level (variant) currently played
|
1658
1678
|
*/
|
@@ -1967,8 +1987,7 @@ export declare type HlsConfig = {
|
|
1967
1987
|
progressive: boolean;
|
1968
1988
|
lowLatencyMode: boolean;
|
1969
1989
|
primarySessionId?: string;
|
1970
|
-
|
1971
|
-
} & ABRControllerConfig & BufferControllerConfig & CapLevelControllerConfig & EMEControllerConfig & FPSControllerConfig & LevelControllerConfig & MP4RemuxerConfig & StreamControllerConfig & SelectionPreferences & LatencyControllerConfig & MetadataControllerConfig & TimelineControllerConfig & TSDemuxerConfig & HlsLoadPolicies & FragmentLoaderConfig & PlaylistLoaderConfig;
|
1990
|
+
} & ABRControllerConfig & BufferControllerConfig & CapLevelControllerConfig & EMEControllerConfig & FPSControllerConfig & GapControllerConfig & LevelControllerConfig & MP4RemuxerConfig & StreamControllerConfig & SelectionPreferences & LatencyControllerConfig & MetadataControllerConfig & TimelineControllerConfig & TSDemuxerConfig & HlsLoadPolicies & FragmentLoaderConfig & PlaylistLoaderConfig;
|
1972
1991
|
|
1973
1992
|
export declare interface HlsEventEmitter {
|
1974
1993
|
on<E extends keyof HlsListeners, Context = undefined>(event: E, listener: HlsListeners[E], context?: Context): void;
|
@@ -2116,6 +2135,17 @@ export declare interface ILogger {
|
|
2116
2135
|
error: ILogFunction;
|
2117
2136
|
}
|
2118
2137
|
|
2138
|
+
export declare type InFlightData = {
|
2139
|
+
frag: Fragment | null;
|
2140
|
+
state: (typeof State)[keyof typeof State];
|
2141
|
+
};
|
2142
|
+
|
2143
|
+
export declare type InFlightFragments = {
|
2144
|
+
[PlaylistLevelType.MAIN]: InFlightData;
|
2145
|
+
[PlaylistLevelType.AUDIO]?: InFlightData;
|
2146
|
+
[PlaylistLevelType.SUBTITLE]?: InFlightData;
|
2147
|
+
};
|
2148
|
+
|
2119
2149
|
export declare interface InitPTSFoundData {
|
2120
2150
|
id: PlaylistLevelType;
|
2121
2151
|
frag: MediaFragment;
|
@@ -3309,6 +3339,21 @@ export declare interface SourceBufferTrack extends BaseTrack {
|
|
3309
3339
|
|
3310
3340
|
export declare type SourceBufferTrackSet = Partial<Record<SourceBufferName, SourceBufferTrack>>;
|
3311
3341
|
|
3342
|
+
export declare const State: {
|
3343
|
+
STOPPED: string;
|
3344
|
+
IDLE: string;
|
3345
|
+
KEY_LOADING: string;
|
3346
|
+
FRAG_LOADING: string;
|
3347
|
+
FRAG_LOADING_WAITING_RETRY: string;
|
3348
|
+
WAITING_TRACK: string;
|
3349
|
+
PARSING: string;
|
3350
|
+
PARSED: string;
|
3351
|
+
ENDED: string;
|
3352
|
+
ERROR: string;
|
3353
|
+
WAITING_INIT_PTS: string;
|
3354
|
+
WAITING_LEVEL: string;
|
3355
|
+
};
|
3356
|
+
|
3312
3357
|
export declare type SteeringManifest = {
|
3313
3358
|
VERSION: 1;
|
3314
3359
|
TTL: number;
|
@@ -3324,7 +3369,6 @@ export declare interface SteeringManifestLoadedData {
|
|
3324
3369
|
|
3325
3370
|
export declare class StreamController extends BaseStreamController implements NetworkComponentAPI {
|
3326
3371
|
private audioCodecSwap;
|
3327
|
-
private gapController;
|
3328
3372
|
private level;
|
3329
3373
|
private _forceStartLoad;
|
3330
3374
|
private _hasEnoughToStart;
|
@@ -3360,10 +3404,8 @@ export declare class StreamController extends BaseStreamController implements Ne
|
|
3360
3404
|
protected flushMainBuffer(startOffset: number, endOffset: number): void;
|
3361
3405
|
protected onMediaAttached(event: Events.MEDIA_ATTACHED, data: MediaAttachedData): void;
|
3362
3406
|
protected onMediaDetaching(event: Events.MEDIA_DETACHING, data: MediaDetachingData): void;
|
3363
|
-
private onMediaWaiting;
|
3364
3407
|
private onMediaPlaying;
|
3365
3408
|
private onMediaSeeked;
|
3366
|
-
protected triggerEnded(): void;
|
3367
3409
|
protected onManifestLoading(): void;
|
3368
3410
|
private onManifestParsed;
|
3369
3411
|
private onLevelLoading;
|
@@ -3376,7 +3418,6 @@ export declare class StreamController extends BaseStreamController implements Ne
|
|
3376
3418
|
private onFragBuffered;
|
3377
3419
|
get hasEnoughToStart(): boolean;
|
3378
3420
|
protected onError(event: Events.ERROR, data: ErrorData): void;
|
3379
|
-
private checkBuffer;
|
3380
3421
|
private onFragLoadEmergencyAborted;
|
3381
3422
|
private onBufferFlushed;
|
3382
3423
|
private onLevelsUpdated;
|
@@ -3409,9 +3450,6 @@ export declare type StreamControllerConfig = {
|
|
3409
3450
|
maxBufferLength: number;
|
3410
3451
|
maxBufferSize: number;
|
3411
3452
|
maxBufferHole: number;
|
3412
|
-
highBufferWatchdogPeriod: number;
|
3413
|
-
nudgeOffset: number;
|
3414
|
-
nudgeMaxRetry: number;
|
3415
3453
|
maxFragLookUpTolerance: number;
|
3416
3454
|
maxMaxBufferLength: number;
|
3417
3455
|
startFragPrefetch: boolean;
|