hls.js 1.5.12 → 1.5.13-0.canary.10403
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 +4174 -2625
- package/dist/hls.js.d.ts +173 -108
- package/dist/hls.js.map +1 -1
- package/dist/hls.light.js +2851 -1914
- 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 +2560 -1608
- 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 +3546 -1982
- 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 +5 -2
- package/src/controller/abr-controller.ts +39 -25
- package/src/controller/audio-stream-controller.ts +141 -137
- 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 +215 -82
- package/src/controller/buffer-controller.ts +250 -97
- 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 +28 -22
- package/src/controller/fps-controller.ts +8 -3
- package/src/controller/fragment-finders.ts +44 -16
- package/src/controller/fragment-tracker.ts +58 -25
- package/src/controller/gap-controller.ts +43 -16
- package/src/controller/id3-track-controller.ts +45 -35
- package/src/controller/latency-controller.ts +18 -13
- package/src/controller/level-controller.ts +37 -19
- package/src/controller/stream-controller.ts +100 -83
- package/src/controller/subtitle-stream-controller.ts +35 -47
- package/src/controller/subtitle-track-controller.ts +5 -3
- package/src/controller/timeline-controller.ts +20 -22
- 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 +8 -16
- package/src/demux/transmuxer-worker.ts +4 -4
- package/src/demux/transmuxer.ts +16 -3
- package/src/demux/tsdemuxer.ts +75 -38
- package/src/demux/video/avc-video-parser.ts +210 -121
- package/src/demux/video/base-video-parser.ts +135 -2
- package/src/demux/video/exp-golomb.ts +0 -208
- package/src/demux/video/hevc-video-parser.ts +749 -0
- package/src/events.ts +8 -1
- package/src/exports-named.ts +1 -1
- package/src/hls.ts +73 -43
- package/src/loader/date-range.ts +71 -5
- package/src/loader/fragment-loader.ts +23 -21
- package/src/loader/fragment.ts +8 -4
- package/src/loader/key-loader.ts +3 -1
- package/src/loader/level-details.ts +6 -6
- package/src/loader/level-key.ts +10 -9
- package/src/loader/m3u8-parser.ts +138 -144
- package/src/loader/playlist-loader.ts +5 -7
- package/src/remux/mp4-generator.ts +196 -1
- package/src/remux/mp4-remuxer.ts +36 -16
- package/src/remux/passthrough-remuxer.ts +1 -1
- package/src/task-loop.ts +5 -2
- package/src/types/component-api.ts +3 -1
- package/src/types/demuxer.ts +3 -0
- package/src/types/events.ts +19 -6
- package/src/types/fragment-tracker.ts +2 -2
- package/src/types/media-playlist.ts +9 -1
- package/src/types/remuxer.ts +1 -1
- package/src/utils/attr-list.ts +96 -9
- 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/hash.ts +10 -0
- package/src/utils/hdr.ts +4 -7
- package/src/utils/imsc1-ttml-parser.ts +1 -1
- package/src/utils/keysystem-util.ts +1 -6
- package/src/utils/level-helper.ts +71 -44
- package/src/utils/logger.ts +58 -23
- package/src/utils/mp4-tools.ts +5 -3
- package/src/utils/rendition-helper.ts +100 -74
- package/src/utils/utf8-utils.ts +18 -0
- package/src/utils/variable-substitution.ts +0 -19
- package/src/utils/webvtt-parser.ts +2 -12
- package/src/demux/id3.ts +0 -411
- package/src/types/general.ts +0 -6
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;
|
@@ -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>, parsed?: Pick<ParsedMultivariantPlaylist | LevelDetails, 'variableList' | 'hasVariableRefs' | 'playlistParsingError'>);
|
73
73
|
get clientAttrs(): string[];
|
74
74
|
decimalInteger(attrName: string): number;
|
75
75
|
hexadecimalInteger(attrName: string): Uint8Array | null;
|
@@ -77,12 +77,17 @@ 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
|
+
};
|
80
85
|
bool(attrName: string): boolean;
|
81
86
|
decimalResolution(attrName: string): {
|
82
87
|
width: number;
|
83
88
|
height: number;
|
84
89
|
} | undefined;
|
85
|
-
static parseAttrList(input: string): Record<string,
|
90
|
+
static parseAttrList(input: string, parsed?: Pick<ParsedMultivariantPlaylist | LevelDetails, 'variableList' | 'hasVariableRefs' | 'playlistParsingError'>): Record<string, string>;
|
86
91
|
}
|
87
92
|
|
88
93
|
export declare type AudioPlaylistType = 'AUDIO';
|
@@ -99,9 +104,8 @@ export declare type AudioSelectionOption = {
|
|
99
104
|
};
|
100
105
|
|
101
106
|
export declare class AudioStreamController extends BaseStreamController implements NetworkComponentAPI {
|
102
|
-
private
|
103
|
-
private
|
104
|
-
private waitingVideoCC;
|
107
|
+
private videoAnchor;
|
108
|
+
private mainFragLoading;
|
105
109
|
private bufferedTrack;
|
106
110
|
private switchingTrack;
|
107
111
|
private trackId;
|
@@ -112,28 +116,29 @@ export declare class AudioStreamController extends BaseStreamController implemen
|
|
112
116
|
private cachedTrackLoadedData;
|
113
117
|
constructor(hls: Hls, fragmentTracker: FragmentTracker, keyLoader: KeyLoader);
|
114
118
|
protected onHandlerDestroying(): void;
|
115
|
-
|
116
|
-
|
119
|
+
protected registerListeners(): void;
|
120
|
+
protected unregisterListeners(): void;
|
117
121
|
onInitPtsFound(event: Events.INIT_PTS_FOUND, { frag, id, initPTS, timescale }: InitPTSFoundData): void;
|
122
|
+
private findSyncFrag;
|
118
123
|
startLoad(startPosition: number): void;
|
119
124
|
doTick(): void;
|
120
125
|
clearWaitingFragment(): void;
|
121
126
|
protected resetLoadingState(): void;
|
122
127
|
protected onTickEnd(): void;
|
123
128
|
private doTickIdle;
|
124
|
-
protected
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
onAudioTrackLoaded(event: Events.AUDIO_TRACK_LOADED, data: TrackLoadedData): void;
|
129
|
+
protected onMediaDetaching(): void;
|
130
|
+
private onAudioTracksUpdated;
|
131
|
+
private onAudioTrackSwitching;
|
132
|
+
protected onManifestLoading(): void;
|
133
|
+
private onLevelLoaded;
|
134
|
+
private onAudioTrackLoaded;
|
131
135
|
_handleFragmentLoadProgress(data: FragLoadedData): void;
|
132
136
|
protected _handleFragmentLoadComplete(fragLoadedData: FragLoadedData): void;
|
133
|
-
onBufferReset
|
134
|
-
onBufferCreated
|
135
|
-
|
136
|
-
private
|
137
|
+
private onBufferReset;
|
138
|
+
private onBufferCreated;
|
139
|
+
private onFragLoading;
|
140
|
+
private onFragBuffered;
|
141
|
+
protected onError(event: Events.ERROR, data: ErrorData): void;
|
137
142
|
private onBufferFlushing;
|
138
143
|
private onBufferFlushed;
|
139
144
|
private _handleTransmuxComplete;
|
@@ -188,13 +193,11 @@ export declare interface BackBufferData {
|
|
188
193
|
bufferEnd: number;
|
189
194
|
}
|
190
195
|
|
191
|
-
export declare class BasePlaylistController implements NetworkComponentAPI {
|
196
|
+
export declare class BasePlaylistController extends Logger implements NetworkComponentAPI {
|
192
197
|
protected hls: Hls;
|
193
198
|
protected timer: number;
|
194
199
|
protected requestScheduled: number;
|
195
200
|
protected canLoad: boolean;
|
196
|
-
protected log: (msg: any) => void;
|
197
|
-
protected warn: (msg: any) => void;
|
198
201
|
constructor(hls: Hls, logPrefix: string);
|
199
202
|
destroy(): void;
|
200
203
|
protected clearTimer(): void;
|
@@ -226,7 +229,7 @@ export declare class BaseSegment {
|
|
226
229
|
|
227
230
|
export declare class BaseStreamController extends TaskLoop implements NetworkComponentAPI {
|
228
231
|
protected hls: Hls;
|
229
|
-
protected fragPrevious:
|
232
|
+
protected fragPrevious: MediaFragment | null;
|
230
233
|
protected fragCurrent: Fragment | null;
|
231
234
|
protected fragmentTracker: FragmentTracker;
|
232
235
|
protected transmuxer: TransmuxerInterface | null;
|
@@ -249,22 +252,26 @@ export declare class BaseStreamController extends TaskLoop implements NetworkCom
|
|
249
252
|
protected startFragRequested: boolean;
|
250
253
|
protected decrypter: Decrypter;
|
251
254
|
protected initPTS: RationalTimestamp[];
|
252
|
-
protected
|
253
|
-
|
254
|
-
private
|
255
|
-
protected log: (msg: any) => void;
|
256
|
-
protected warn: (msg: any) => void;
|
255
|
+
protected buffering: boolean;
|
256
|
+
private loadingParts;
|
257
|
+
private loopSn?;
|
257
258
|
constructor(hls: Hls, fragmentTracker: FragmentTracker, keyLoader: KeyLoader, logPrefix: string, playlistType: PlaylistLevelType);
|
259
|
+
protected registerListeners(): void;
|
260
|
+
protected unregisterListeners(): void;
|
258
261
|
protected doTick(): void;
|
259
262
|
protected onTickEnd(): void;
|
260
263
|
startLoad(startPosition: number): void;
|
261
264
|
stopLoad(): void;
|
265
|
+
pauseBuffering(): void;
|
266
|
+
resumeBuffering(): void;
|
262
267
|
protected _streamEnded(bufferInfo: BufferInfo, levelDetails: LevelDetails): boolean;
|
263
268
|
protected getLevelDetails(): LevelDetails | undefined;
|
264
269
|
protected onMediaAttached(event: Events.MEDIA_ATTACHED, data: MediaAttachedData): void;
|
265
270
|
protected onMediaDetaching(): void;
|
266
|
-
protected
|
267
|
-
protected
|
271
|
+
protected onManifestLoading(): void;
|
272
|
+
protected onError(event: Events.ERROR, data: ErrorData): void;
|
273
|
+
protected onMediaSeeking: () => void;
|
274
|
+
protected onMediaEnded: () => void;
|
268
275
|
protected onManifestLoaded(event: Events.MANIFEST_LOADED, data: ManifestLoadedData): void;
|
269
276
|
protected onHandlerDestroying(): void;
|
270
277
|
protected onHandlerDestroyed(): void;
|
@@ -284,8 +291,9 @@ export declare class BaseStreamController extends TaskLoop implements NetworkCom
|
|
284
291
|
private doFragPartsLoad;
|
285
292
|
private handleFragLoadError;
|
286
293
|
protected _handleTransmuxerFlush(chunkMeta: ChunkMetadata): void;
|
294
|
+
private shouldLoadParts;
|
287
295
|
protected getCurrentContext(chunkMeta: ChunkMetadata): {
|
288
|
-
frag:
|
296
|
+
frag: MediaFragment;
|
289
297
|
part: Part | null;
|
290
298
|
level: Level;
|
291
299
|
} | null;
|
@@ -302,8 +310,8 @@ export declare class BaseStreamController extends TaskLoop implements NetworkCom
|
|
302
310
|
mapToInitFragWhenRequired(frag: Fragment | null): typeof frag;
|
303
311
|
getNextPart(partList: Part[], frag: Fragment, targetBufferTime: number): number;
|
304
312
|
private loadedEndOfParts;
|
305
|
-
protected getInitialLiveFragment(levelDetails: LevelDetails, fragments:
|
306
|
-
protected getFragmentAtPosition(bufferEnd: number, end: number, levelDetails: LevelDetails):
|
313
|
+
protected getInitialLiveFragment(levelDetails: LevelDetails, fragments: MediaFragment[]): MediaFragment | null;
|
314
|
+
protected getFragmentAtPosition(bufferEnd: number, end: number, levelDetails: LevelDetails): MediaFragment | null;
|
307
315
|
protected synchronizeToLiveEdge(levelDetails: LevelDetails): void;
|
308
316
|
protected alignPlaylists(details: LevelDetails, previousDetails: LevelDetails | undefined, switchDetails: LevelDetails | undefined): number;
|
309
317
|
protected waitForCdnTuneIn(details: LevelDetails): boolean | 0;
|
@@ -353,17 +361,20 @@ export declare interface BufferCodecsData {
|
|
353
361
|
audio?: Track;
|
354
362
|
}
|
355
363
|
|
356
|
-
export declare class BufferController implements ComponentAPI {
|
364
|
+
export declare class BufferController extends Logger implements ComponentAPI {
|
357
365
|
private details;
|
358
366
|
private _objectUrl;
|
359
367
|
private operationQueue;
|
360
368
|
private listeners;
|
361
369
|
private hls;
|
370
|
+
private fragmentTracker;
|
362
371
|
bufferCodecEventsExpected: number;
|
363
372
|
private _bufferCodecEventsTotal;
|
364
373
|
media: HTMLMediaElement | null;
|
365
374
|
mediaSource: MediaSource | null;
|
366
375
|
private lastMpegAudioChunk;
|
376
|
+
private blockedAudioAppend;
|
377
|
+
private lastVideoAppendEnd;
|
367
378
|
private appendSource;
|
368
379
|
appendErrors: {
|
369
380
|
audio: number;
|
@@ -373,10 +384,7 @@ export declare class BufferController implements ComponentAPI {
|
|
373
384
|
tracks: TrackSet;
|
374
385
|
pendingTracks: TrackSet;
|
375
386
|
sourceBuffer: SourceBuffers;
|
376
|
-
|
377
|
-
protected warn: (msg: any, obj?: any) => void;
|
378
|
-
protected error: (msg: any, obj?: any) => void;
|
379
|
-
constructor(hls: Hls);
|
387
|
+
constructor(hls: Hls, fragmentTracker: FragmentTracker);
|
380
388
|
hasSourceTypes(): boolean;
|
381
389
|
destroy(): void;
|
382
390
|
protected registerListeners(): void;
|
@@ -391,13 +399,18 @@ export declare class BufferController implements ComponentAPI {
|
|
391
399
|
protected onBufferReset(): void;
|
392
400
|
private resetBuffer;
|
393
401
|
protected onBufferCodecs(event: Events.BUFFER_CODECS, data: BufferCodecsData): void;
|
394
|
-
protected appendChangeType(type:
|
402
|
+
protected appendChangeType(type: SourceBufferName, mimeType: string): void;
|
403
|
+
private blockAudio;
|
404
|
+
private unblockAudio;
|
395
405
|
protected onBufferAppending(event: Events.BUFFER_APPENDING, eventData: BufferAppendingData): void;
|
406
|
+
private getFlushOp;
|
396
407
|
protected onBufferFlushing(event: Events.BUFFER_FLUSHING, data: BufferFlushingData): void;
|
397
408
|
protected onFragParsed(event: Events.FRAG_PARSED, data: FragParsedData): void;
|
398
409
|
private onFragChanged;
|
399
410
|
protected onBufferEos(event: Events.BUFFER_EOS, data: BufferEOSData): void;
|
400
411
|
protected onLevelUpdated(event: Events.LEVEL_UPDATED, { details }: LevelUpdatedData): void;
|
412
|
+
private onError;
|
413
|
+
private resetAppendErrors;
|
401
414
|
trimBuffers(): void;
|
402
415
|
flushBackBuffer(currentTime: number, targetDuration: number, targetBackBufferPosition: number): void;
|
403
416
|
flushFrontBuffer(currentTime: number, targetDuration: number, targetFrontBufferPosition: number): void;
|
@@ -406,8 +419,8 @@ export declare class BufferController implements ComponentAPI {
|
|
406
419
|
* 'liveDurationInfinity` is set to `true`
|
407
420
|
* More details: https://github.com/video-dev/hls.js/issues/355
|
408
421
|
*/
|
409
|
-
private
|
410
|
-
|
422
|
+
private getDurationAndRange;
|
423
|
+
private updateMediaSource;
|
411
424
|
protected checkPendingTracks(): void;
|
412
425
|
protected createSourceBuffers(tracks: TrackSet): void;
|
413
426
|
private _onMediaSourceOpen;
|
@@ -602,6 +615,8 @@ export declare class CMCDController implements ComponentAPI {
|
|
602
615
|
* Apply CMCD data to a segment request
|
603
616
|
*/
|
604
617
|
private applyFragmentData;
|
618
|
+
private getNextFrag;
|
619
|
+
private getNextPart;
|
605
620
|
/**
|
606
621
|
* The CMCD object type.
|
607
622
|
*/
|
@@ -635,13 +650,12 @@ export declare interface ComponentAPI {
|
|
635
650
|
destroy(): void;
|
636
651
|
}
|
637
652
|
|
638
|
-
export declare class ContentSteeringController implements NetworkComponentAPI {
|
653
|
+
export declare class ContentSteeringController extends Logger implements NetworkComponentAPI {
|
639
654
|
private readonly hls;
|
640
|
-
private log;
|
641
655
|
private loader;
|
642
656
|
private uri;
|
643
657
|
private pathwayId;
|
644
|
-
private
|
658
|
+
private _pathwayPriority;
|
645
659
|
private timeToLoad;
|
646
660
|
private reloadTimer;
|
647
661
|
private updated;
|
@@ -654,6 +668,9 @@ export declare class ContentSteeringController implements NetworkComponentAPI {
|
|
654
668
|
constructor(hls: Hls);
|
655
669
|
private registerListeners;
|
656
670
|
private unregisterListeners;
|
671
|
+
pathways(): string[];
|
672
|
+
get pathwayPriority(): string[] | null;
|
673
|
+
set pathwayPriority(pathwayPriority: string[]);
|
657
674
|
startLoad(): void;
|
658
675
|
stopLoad(): void;
|
659
676
|
clearTimeout(): void;
|
@@ -689,20 +706,32 @@ export declare interface CuesParsedData {
|
|
689
706
|
|
690
707
|
export declare class DateRange {
|
691
708
|
attr: AttrList;
|
709
|
+
tagAnchor: Fragment | null;
|
710
|
+
tagOrder: number;
|
692
711
|
private _startDate;
|
693
712
|
private _endDate?;
|
713
|
+
private _cue?;
|
694
714
|
private _badValueForSameId?;
|
695
|
-
constructor(dateRangeAttr: AttrList, dateRangeWithSameId?: DateRange);
|
715
|
+
constructor(dateRangeAttr: AttrList, dateRangeWithSameId?: DateRange | undefined, tagCount?: number);
|
696
716
|
get id(): string;
|
697
717
|
get class(): string;
|
718
|
+
get cue(): DateRangeCue;
|
719
|
+
get startTime(): number;
|
698
720
|
get startDate(): Date;
|
699
721
|
get endDate(): Date | null;
|
700
722
|
get duration(): number | null;
|
701
723
|
get plannedDuration(): number | null;
|
702
724
|
get endOnNext(): boolean;
|
725
|
+
get isInterstitial(): boolean;
|
703
726
|
get isValid(): boolean;
|
704
727
|
}
|
705
728
|
|
729
|
+
export declare type DateRangeCue = {
|
730
|
+
pre: boolean;
|
731
|
+
post: boolean;
|
732
|
+
once: boolean;
|
733
|
+
};
|
734
|
+
|
706
735
|
declare interface DecryptData {
|
707
736
|
uri: string;
|
708
737
|
method: string;
|
@@ -727,6 +756,7 @@ declare class Decrypter {
|
|
727
756
|
private currentIV;
|
728
757
|
private currentResult;
|
729
758
|
private useSoftware;
|
759
|
+
private enableSoftwareAES;
|
730
760
|
constructor(config: HlsConfig, { removePKCS7Padding }?: {
|
731
761
|
removePKCS7Padding?: boolean | undefined;
|
732
762
|
});
|
@@ -734,14 +764,19 @@ declare class Decrypter {
|
|
734
764
|
isSync(): boolean;
|
735
765
|
flush(): Uint8Array | null;
|
736
766
|
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>;
|
767
|
+
decrypt(data: Uint8Array | ArrayBuffer, key: ArrayBuffer, iv: ArrayBuffer, aesMode: DecrypterAesMode): Promise<ArrayBuffer>;
|
768
|
+
softwareDecrypt(data: Uint8Array, key: ArrayBuffer, iv: ArrayBuffer, aesMode: DecrypterAesMode): ArrayBuffer | null;
|
769
|
+
webCryptoDecrypt(data: Uint8Array, key: ArrayBuffer, iv: ArrayBuffer, aesMode: DecrypterAesMode): Promise<ArrayBuffer>;
|
740
770
|
private onWebCryptoError;
|
741
771
|
private getValidChunk;
|
742
772
|
private logOnce;
|
743
773
|
}
|
744
774
|
|
775
|
+
declare const enum DecrypterAesMode {
|
776
|
+
cbc = 0,
|
777
|
+
ctr = 1
|
778
|
+
}
|
779
|
+
|
745
780
|
declare type DRMSystemConfiguration = {
|
746
781
|
licenseUrl: string;
|
747
782
|
serverCertificateUrl?: string;
|
@@ -787,7 +822,7 @@ export declare const enum ElementaryStreamTypes {
|
|
787
822
|
* @class
|
788
823
|
* @constructor
|
789
824
|
*/
|
790
|
-
export declare class EMEController implements ComponentAPI {
|
825
|
+
export declare class EMEController extends Logger implements ComponentAPI {
|
791
826
|
static CDMCleanupPromise: Promise<void> | void;
|
792
827
|
private readonly hls;
|
793
828
|
private readonly config;
|
@@ -798,12 +833,6 @@ export declare class EMEController implements ComponentAPI {
|
|
798
833
|
private mediaKeySessions;
|
799
834
|
private keyIdToKeySessionPromise;
|
800
835
|
private setMediaKeysQueue;
|
801
|
-
private onMediaEncrypted;
|
802
|
-
private onWaitingForKey;
|
803
|
-
private debug;
|
804
|
-
private log;
|
805
|
-
private warn;
|
806
|
-
private error;
|
807
836
|
constructor(hls: Hls);
|
808
837
|
destroy(): void;
|
809
838
|
private registerListeners;
|
@@ -824,8 +853,8 @@ export declare class EMEController implements ComponentAPI {
|
|
824
853
|
private handleError;
|
825
854
|
private getKeySystemForKeyPromise;
|
826
855
|
private getKeySystemSelectionPromise;
|
827
|
-
private
|
828
|
-
private
|
856
|
+
private onMediaEncrypted;
|
857
|
+
private onWaitingForKey;
|
829
858
|
private attemptSetMediaKeys;
|
830
859
|
private generateRequestWithPreferredKeySession;
|
831
860
|
private onKeyStatusChange;
|
@@ -859,13 +888,10 @@ export declare const enum ErrorActionFlags {
|
|
859
888
|
SwitchToSDR = 4
|
860
889
|
}
|
861
890
|
|
862
|
-
export declare class ErrorController implements NetworkComponentAPI {
|
891
|
+
export declare class ErrorController extends Logger implements NetworkComponentAPI {
|
863
892
|
private readonly hls;
|
864
893
|
private playlistError;
|
865
894
|
private penalizedRenditions;
|
866
|
-
private log;
|
867
|
-
private warn;
|
868
|
-
private error;
|
869
895
|
constructor(hls: Hls);
|
870
896
|
private registerListeners;
|
871
897
|
private unregisterListeners;
|
@@ -975,6 +1001,7 @@ export declare enum Events {
|
|
975
1001
|
MEDIA_ATTACHED = "hlsMediaAttached",
|
976
1002
|
MEDIA_DETACHING = "hlsMediaDetaching",
|
977
1003
|
MEDIA_DETACHED = "hlsMediaDetached",
|
1004
|
+
MEDIA_ENDED = "hlsMediaEnded",
|
978
1005
|
BUFFER_RESET = "hlsBufferReset",
|
979
1006
|
BUFFER_CODECS = "hlsBufferCodecs",
|
980
1007
|
BUFFER_CREATED = "hlsBufferCreated",
|
@@ -1068,6 +1095,7 @@ export declare class FPSController implements ComponentAPI {
|
|
1068
1095
|
protected unregisterListeners(): void;
|
1069
1096
|
destroy(): void;
|
1070
1097
|
protected onMediaAttaching(event: Events.MEDIA_ATTACHING, data: MediaAttachingData): void;
|
1098
|
+
private onMediaDetaching;
|
1071
1099
|
checkFPS(video: HTMLVideoElement, decodedFrames: number, droppedFrames: number): void;
|
1072
1100
|
checkFPSInterval(): void;
|
1073
1101
|
}
|
@@ -1160,8 +1188,8 @@ export declare class Fragment extends BaseSegment {
|
|
1160
1188
|
cc: number;
|
1161
1189
|
startPTS?: number;
|
1162
1190
|
endPTS?: number;
|
1163
|
-
startDTS
|
1164
|
-
endDTS
|
1191
|
+
startDTS?: number;
|
1192
|
+
endDTS?: number;
|
1165
1193
|
start: number;
|
1166
1194
|
deltaPTS?: number;
|
1167
1195
|
maxStartPTS?: number;
|
@@ -1249,20 +1277,21 @@ declare class FragmentTracker implements ComponentAPI {
|
|
1249
1277
|
* A buffered Fragment is one whose loading, parsing and appending is done (completed or "partial" meaning aborted).
|
1250
1278
|
* If not found any Fragment, return null
|
1251
1279
|
*/
|
1252
|
-
getBufferedFrag(position: number, levelType: PlaylistLevelType):
|
1280
|
+
getBufferedFrag(position: number, levelType: PlaylistLevelType): MediaFragment | null;
|
1281
|
+
getFragAtPos(position: number, levelType: PlaylistLevelType, buffered?: boolean): MediaFragment | null;
|
1253
1282
|
/**
|
1254
1283
|
* Partial fragments effected by coded frame eviction will be removed
|
1255
1284
|
* The browser will unload parts of the buffer to free up memory for new buffer data
|
1256
1285
|
* 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)
|
1257
1286
|
*/
|
1258
|
-
detectEvictedFragments(elementaryStream: SourceBufferName, timeRange: TimeRanges, playlistType: PlaylistLevelType, appendedPart?: Part | null): void;
|
1287
|
+
detectEvictedFragments(elementaryStream: SourceBufferName, timeRange: TimeRanges, playlistType: PlaylistLevelType, appendedPart?: Part | null, removeAppending?: boolean): void;
|
1259
1288
|
/**
|
1260
1289
|
* Checks if the fragment passed in is loaded in the buffer properly
|
1261
1290
|
* Partially loaded fragments will be registered as a partial fragment
|
1262
1291
|
*/
|
1263
1292
|
detectPartialFragments(data: FragBufferedData): void;
|
1264
1293
|
private removeParts;
|
1265
|
-
fragBuffered(frag:
|
1294
|
+
fragBuffered(frag: MediaFragment, force?: true): void;
|
1266
1295
|
private getBufferedTimes;
|
1267
1296
|
/**
|
1268
1297
|
* Gets the partial fragment for a certain time
|
@@ -1271,10 +1300,12 @@ declare class FragmentTracker implements ComponentAPI {
|
|
1271
1300
|
isEndListAppended(type: PlaylistLevelType): boolean;
|
1272
1301
|
getState(fragment: Fragment): FragmentState;
|
1273
1302
|
private isTimeBuffered;
|
1303
|
+
private onManifestLoading;
|
1274
1304
|
private onFragLoaded;
|
1275
1305
|
private onBufferAppended;
|
1276
1306
|
private onFragBuffered;
|
1277
1307
|
private hasFragment;
|
1308
|
+
hasFragments(type?: PlaylistLevelType): boolean;
|
1278
1309
|
hasParts(type: PlaylistLevelType): boolean;
|
1279
1310
|
removeFragmentsInRange(start: number, end: number, playlistType: PlaylistLevelType, withGapOnly?: boolean, unbufferedOnly?: boolean): void;
|
1280
1311
|
removeFragment(fragment: Fragment): void;
|
@@ -1321,9 +1352,12 @@ declare class Hls implements HlsEventEmitter {
|
|
1321
1352
|
* The configuration object provided on player instantiation.
|
1322
1353
|
*/
|
1323
1354
|
readonly userConfig: Partial<HlsConfig>;
|
1355
|
+
/**
|
1356
|
+
* The logger functions used by this player instance, configured on player instantiation.
|
1357
|
+
*/
|
1358
|
+
readonly logger: ILogger;
|
1324
1359
|
private coreComponents;
|
1325
1360
|
private networkControllers;
|
1326
|
-
private started;
|
1327
1361
|
private _emitter;
|
1328
1362
|
private _autoLevelCapping;
|
1329
1363
|
private _maxHdcpLevel;
|
@@ -1410,11 +1444,11 @@ declare class Hls implements HlsEventEmitter {
|
|
1410
1444
|
*/
|
1411
1445
|
stopLoad(): void;
|
1412
1446
|
/**
|
1413
|
-
* Resumes stream controller segment loading
|
1447
|
+
* Resumes stream controller segment loading after `pauseBuffering` has been called.
|
1414
1448
|
*/
|
1415
1449
|
resumeBuffering(): void;
|
1416
1450
|
/**
|
1417
|
-
*
|
1451
|
+
* Prevents stream controller from loading new segments until `resumeBuffering` is called.
|
1418
1452
|
* This allows for media buffering to be paused without interupting playlist loading.
|
1419
1453
|
*/
|
1420
1454
|
pauseBuffering(): void;
|
@@ -1559,6 +1593,7 @@ declare class Hls implements HlsEventEmitter {
|
|
1559
1593
|
*/
|
1560
1594
|
get playingDate(): Date | null;
|
1561
1595
|
get mainForwardBufferInfo(): BufferInfo | null;
|
1596
|
+
get maxBufferLength(): number;
|
1562
1597
|
/**
|
1563
1598
|
* Find and select the best matching audio track, making a level switch when a Group change is necessary.
|
1564
1599
|
* Updates `hls.config.audioPreference`. Returns the selected track, or null when no matching track is found.
|
@@ -1638,6 +1673,7 @@ declare class Hls implements HlsEventEmitter {
|
|
1638
1673
|
* target distance from the edge as calculated by the latency controller
|
1639
1674
|
*/
|
1640
1675
|
get targetLatency(): number | null;
|
1676
|
+
set targetLatency(latency: number);
|
1641
1677
|
/**
|
1642
1678
|
* the rate at which the edge of the current live playlist is advancing or 1 if there is none
|
1643
1679
|
*/
|
@@ -1646,6 +1682,11 @@ declare class Hls implements HlsEventEmitter {
|
|
1646
1682
|
* set to true when startLoad is called before MANIFEST_PARSED event
|
1647
1683
|
*/
|
1648
1684
|
get forceStartLoad(): boolean;
|
1685
|
+
/**
|
1686
|
+
* ContentSteering pathwayPriority getter/setter
|
1687
|
+
*/
|
1688
|
+
get pathwayPriority(): string[] | null;
|
1689
|
+
set pathwayPriority(pathwayPriority: string[]);
|
1649
1690
|
}
|
1650
1691
|
export default Hls;
|
1651
1692
|
|
@@ -1706,6 +1747,7 @@ export declare interface HlsListeners {
|
|
1706
1747
|
[Events.MEDIA_ATTACHED]: (event: Events.MEDIA_ATTACHED, data: MediaAttachedData) => void;
|
1707
1748
|
[Events.MEDIA_DETACHING]: (event: Events.MEDIA_DETACHING) => void;
|
1708
1749
|
[Events.MEDIA_DETACHED]: (event: Events.MEDIA_DETACHED) => void;
|
1750
|
+
[Events.MEDIA_ENDED]: (event: Events.MEDIA_ENDED, data: MediaEndedData) => void;
|
1709
1751
|
[Events.BUFFER_RESET]: (event: Events.BUFFER_RESET) => void;
|
1710
1752
|
[Events.BUFFER_CODECS]: (event: Events.BUFFER_CODECS, data: BufferCodecsData) => void;
|
1711
1753
|
[Events.BUFFER_CREATED]: (event: Events.BUFFER_CREATED, data: BufferCreatedData) => void;
|
@@ -1816,8 +1858,8 @@ export declare interface ILogger {
|
|
1816
1858
|
}
|
1817
1859
|
|
1818
1860
|
export declare interface InitPTSFoundData {
|
1819
|
-
id:
|
1820
|
-
frag:
|
1861
|
+
id: PlaylistLevelType;
|
1862
|
+
frag: MediaFragment;
|
1821
1863
|
initPTS: number;
|
1822
1864
|
timescale: number;
|
1823
1865
|
}
|
@@ -1896,6 +1938,7 @@ export declare type LatencyControllerConfig = {
|
|
1896
1938
|
liveSyncDuration?: number;
|
1897
1939
|
liveMaxLatencyDuration?: number;
|
1898
1940
|
maxLiveSyncPlaybackRate: number;
|
1941
|
+
liveSyncOnStallIncrease: number;
|
1899
1942
|
};
|
1900
1943
|
|
1901
1944
|
export declare class Level {
|
@@ -1979,10 +2022,11 @@ export declare class LevelDetails {
|
|
1979
2022
|
averagetargetduration?: number;
|
1980
2023
|
endCC: number;
|
1981
2024
|
endSN: number;
|
1982
|
-
fragments:
|
1983
|
-
fragmentHint?:
|
2025
|
+
fragments: MediaFragment[];
|
2026
|
+
fragmentHint?: MediaFragment;
|
1984
2027
|
partList: Part[] | null;
|
1985
2028
|
dateRanges: Record<string, DateRange>;
|
2029
|
+
dateRangeTagCount: number;
|
1986
2030
|
live: boolean;
|
1987
2031
|
ageHeader: number;
|
1988
2032
|
advancedDateTime?: number;
|
@@ -2257,6 +2301,16 @@ export declare class LoadStats implements LoaderStats {
|
|
2257
2301
|
buffering: HlsProgressivePerformanceTiming;
|
2258
2302
|
}
|
2259
2303
|
|
2304
|
+
export declare class Logger implements ILogger {
|
2305
|
+
trace: ILogFunction;
|
2306
|
+
debug: ILogFunction;
|
2307
|
+
log: ILogFunction;
|
2308
|
+
warn: ILogFunction;
|
2309
|
+
info: ILogFunction;
|
2310
|
+
error: ILogFunction;
|
2311
|
+
constructor(label: string, logger: ILogger);
|
2312
|
+
}
|
2313
|
+
|
2260
2314
|
export declare type MainPlaylistType = AudioPlaylistType | 'VIDEO';
|
2261
2315
|
|
2262
2316
|
export declare interface ManifestLoadedData {
|
@@ -2332,6 +2386,14 @@ export declare type MediaDecodingInfo = {
|
|
2332
2386
|
error?: Error;
|
2333
2387
|
};
|
2334
2388
|
|
2389
|
+
export declare interface MediaEndedData {
|
2390
|
+
stalled: boolean;
|
2391
|
+
}
|
2392
|
+
|
2393
|
+
export declare interface MediaFragment extends Fragment {
|
2394
|
+
sn: number;
|
2395
|
+
}
|
2396
|
+
|
2335
2397
|
export declare type MediaKeyFunc = (keySystem: KeySystems, supportedConfigurations: MediaKeySystemConfiguration[]) => Promise<MediaKeySystemAccess>;
|
2336
2398
|
|
2337
2399
|
export declare interface MediaKeySessionContext {
|
@@ -2401,6 +2463,8 @@ export declare type MP4RemuxerConfig = {
|
|
2401
2463
|
export declare interface NetworkComponentAPI extends ComponentAPI {
|
2402
2464
|
startLoad(startPosition: number): void;
|
2403
2465
|
stopLoad(): void;
|
2466
|
+
pauseBuffering?(): void;
|
2467
|
+
resumeBuffering?(): void;
|
2404
2468
|
}
|
2405
2469
|
|
2406
2470
|
export declare const enum NetworkErrorAction {
|
@@ -2433,6 +2497,17 @@ declare interface PACData {
|
|
2433
2497
|
italics: boolean;
|
2434
2498
|
}
|
2435
2499
|
|
2500
|
+
export declare type ParsedMultivariantPlaylist = {
|
2501
|
+
contentSteering: ContentSteeringOptions | null;
|
2502
|
+
levels: LevelParsed[];
|
2503
|
+
playlistParsingError: Error | null;
|
2504
|
+
sessionData: Record<string, AttrList> | null;
|
2505
|
+
sessionKeys: LevelKey[] | null;
|
2506
|
+
startTimeOffset: number | null;
|
2507
|
+
variableList: VariableMap | null;
|
2508
|
+
hasVariableRefs: boolean;
|
2509
|
+
};
|
2510
|
+
|
2436
2511
|
/**
|
2437
2512
|
* Object representing parsed data from an HLS Partial Segment. Found in {@link hls.js#LevelDetails.partList}.
|
2438
2513
|
*/
|
@@ -2442,10 +2517,10 @@ export declare class Part extends BaseSegment {
|
|
2442
2517
|
readonly gap: boolean;
|
2443
2518
|
readonly independent: boolean;
|
2444
2519
|
readonly relurl: string;
|
2445
|
-
readonly fragment:
|
2520
|
+
readonly fragment: MediaFragment;
|
2446
2521
|
readonly index: number;
|
2447
2522
|
stats: LoadStats;
|
2448
|
-
constructor(partAttrs: AttrList, frag:
|
2523
|
+
constructor(partAttrs: AttrList, frag: MediaFragment, baseurl: string, index: number, previous?: Part);
|
2449
2524
|
get start(): number;
|
2450
2525
|
get end(): number;
|
2451
2526
|
get loaded(): boolean;
|
@@ -2640,16 +2715,14 @@ declare class StreamController extends BaseStreamController implements NetworkCo
|
|
2640
2715
|
private altAudio;
|
2641
2716
|
private audioOnly;
|
2642
2717
|
private fragPlaying;
|
2643
|
-
private onvplaying;
|
2644
|
-
private onvseeked;
|
2645
2718
|
private fragLastKbps;
|
2646
2719
|
private couldBacktrack;
|
2647
2720
|
private backtrackFragment;
|
2648
2721
|
private audioCodecSwitch;
|
2649
2722
|
private videoBuffer;
|
2650
2723
|
constructor(hls: Hls, fragmentTracker: FragmentTracker, keyLoader: KeyLoader);
|
2651
|
-
|
2652
|
-
protected
|
2724
|
+
protected registerListeners(): void;
|
2725
|
+
protected unregisterListeners(): void;
|
2653
2726
|
protected onHandlerDestroying(): void;
|
2654
2727
|
startLoad(startPosition: number): void;
|
2655
2728
|
stopLoad(): void;
|
@@ -2673,7 +2746,7 @@ declare class StreamController extends BaseStreamController implements NetworkCo
|
|
2673
2746
|
protected onMediaDetaching(): void;
|
2674
2747
|
private onMediaPlaying;
|
2675
2748
|
private onMediaSeeked;
|
2676
|
-
|
2749
|
+
protected onManifestLoading(): void;
|
2677
2750
|
private onManifestParsed;
|
2678
2751
|
private onLevelLoading;
|
2679
2752
|
private onLevelLoaded;
|
@@ -2682,7 +2755,7 @@ declare class StreamController extends BaseStreamController implements NetworkCo
|
|
2682
2755
|
private onAudioTrackSwitched;
|
2683
2756
|
private onBufferCreated;
|
2684
2757
|
private onFragBuffered;
|
2685
|
-
|
2758
|
+
protected onError(event: Events.ERROR, data: ErrorData): void;
|
2686
2759
|
private checkBuffer;
|
2687
2760
|
private onFragLoadEmergencyAborted;
|
2688
2761
|
private onBufferFlushed;
|
@@ -2697,13 +2770,14 @@ declare class StreamController extends BaseStreamController implements NetworkCo
|
|
2697
2770
|
private _handleTransmuxComplete;
|
2698
2771
|
private _bufferInitSegment;
|
2699
2772
|
getMainFwdBufferInfo(): BufferInfo | null;
|
2773
|
+
get maxBufferLength(): number;
|
2700
2774
|
private backtrack;
|
2701
2775
|
private checkFragmentChanged;
|
2702
2776
|
get nextLevel(): number;
|
2703
2777
|
get currentFrag(): Fragment | null;
|
2704
2778
|
get currentProgramDateTime(): Date | null;
|
2705
2779
|
get currentLevel(): number;
|
2706
|
-
get nextBufferedFrag():
|
2780
|
+
get nextBufferedFrag(): MediaFragment | null;
|
2707
2781
|
get forceStartLoad(): boolean;
|
2708
2782
|
}
|
2709
2783
|
|
@@ -2739,11 +2813,6 @@ declare class StyledUnicodeChar {
|
|
2739
2813
|
isEmpty(): boolean;
|
2740
2814
|
}
|
2741
2815
|
|
2742
|
-
declare interface SubtitleFragProcessed {
|
2743
|
-
success: boolean;
|
2744
|
-
frag: Fragment;
|
2745
|
-
}
|
2746
|
-
|
2747
2816
|
export declare interface SubtitleFragProcessedData {
|
2748
2817
|
success: boolean;
|
2749
2818
|
frag: Fragment;
|
@@ -2768,22 +2837,21 @@ export declare class SubtitleStreamController extends BaseStreamController imple
|
|
2768
2837
|
private mainDetails;
|
2769
2838
|
constructor(hls: Hls, fragmentTracker: FragmentTracker, keyLoader: KeyLoader);
|
2770
2839
|
protected onHandlerDestroying(): void;
|
2771
|
-
|
2772
|
-
|
2840
|
+
protected registerListeners(): void;
|
2841
|
+
protected unregisterListeners(): void;
|
2773
2842
|
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
|
2843
|
+
protected onManifestLoading(): void;
|
2844
|
+
protected onMediaDetaching(): void;
|
2845
|
+
private onLevelLoaded;
|
2846
|
+
private onSubtitleFragProcessed;
|
2847
|
+
private onBufferFlushing;
|
2848
|
+
private onFragBuffered;
|
2849
|
+
protected onError(event: Events.ERROR, data: ErrorData): void;
|
2850
|
+
private onSubtitleTracksUpdated;
|
2851
|
+
private onSubtitleTrackSwitch;
|
2852
|
+
private onSubtitleTrackLoaded;
|
2784
2853
|
_handleFragmentLoadComplete(fragLoadedData: FragLoadedData): void;
|
2785
2854
|
doTick(): void;
|
2786
|
-
protected getMaxBufferLength(mainBufferLength?: number): number;
|
2787
2855
|
protected loadFragment(frag: Fragment, level: Level, targetBufferTime: number): void;
|
2788
2856
|
get mediaBufferTimeRanges(): Bufferable;
|
2789
2857
|
}
|
@@ -2797,10 +2865,10 @@ export declare class SubtitleTrackController extends BasePlaylistController {
|
|
2797
2865
|
private currentTrack;
|
2798
2866
|
private selectDefaultTrack;
|
2799
2867
|
private queuedDefaultTrack;
|
2800
|
-
private asyncPollTrackChange;
|
2801
2868
|
private useTextTrackPolling;
|
2802
2869
|
private subtitlePollingInterval;
|
2803
2870
|
private _subtitleDisplay;
|
2871
|
+
private asyncPollTrackChange;
|
2804
2872
|
constructor(hls: Hls);
|
2805
2873
|
destroy(): void;
|
2806
2874
|
get subtitleDisplay(): boolean;
|
@@ -2885,12 +2953,12 @@ export declare interface SubtitleTrackSwitchData {
|
|
2885
2953
|
* we are limiting the task execution per call stack to exactly one, but scheduling/post-poning further
|
2886
2954
|
* task processing on the next main loop iteration (also known as "next tick" in the Node/JS runtime lingo).
|
2887
2955
|
*/
|
2888
|
-
declare class TaskLoop {
|
2956
|
+
declare class TaskLoop extends Logger {
|
2889
2957
|
private readonly _boundTick;
|
2890
2958
|
private _tickTimer;
|
2891
2959
|
private _tickInterval;
|
2892
2960
|
private _tickCallCount;
|
2893
|
-
constructor();
|
2961
|
+
constructor(label: string, logger: ILogger);
|
2894
2962
|
destroy(): void;
|
2895
2963
|
protected onHandlerDestroying(): void;
|
2896
2964
|
protected onHandlerDestroyed(): void;
|
@@ -3021,10 +3089,6 @@ export declare interface TrackSet {
|
|
3021
3089
|
audiovideo?: Track;
|
3022
3090
|
}
|
3023
3091
|
|
3024
|
-
declare interface TrackSwitchedData {
|
3025
|
-
id: number;
|
3026
|
-
}
|
3027
|
-
|
3028
3092
|
declare class TransmuxerInterface {
|
3029
3093
|
error: Error | null;
|
3030
3094
|
private hls;
|
@@ -3041,7 +3105,7 @@ declare class TransmuxerInterface {
|
|
3041
3105
|
constructor(hls: Hls, id: PlaylistLevelType, onTransmuxComplete: (transmuxResult: TransmuxerResult) => void, onFlush: (chunkMeta: ChunkMetadata) => void);
|
3042
3106
|
resetWorker(): void;
|
3043
3107
|
destroy(): void;
|
3044
|
-
push(data: ArrayBuffer, initSegmentData: Uint8Array | undefined, audioCodec: string | undefined, videoCodec: string | undefined, frag:
|
3108
|
+
push(data: ArrayBuffer, initSegmentData: Uint8Array | undefined, audioCodec: string | undefined, videoCodec: string | undefined, frag: MediaFragment, part: Part | null, duration: number, accurateTimeOffset: boolean, chunkMeta: ChunkMetadata, defaultInitPTS?: RationalTimestamp): void;
|
3045
3109
|
flush(chunkMeta: ChunkMetadata): void;
|
3046
3110
|
private transmuxerError;
|
3047
3111
|
private handleFlushResult;
|
@@ -3100,6 +3164,7 @@ declare const VideoRangeValues: readonly ["SDR", "PQ", "HLG"];
|
|
3100
3164
|
export declare type VideoSelectionOption = {
|
3101
3165
|
preferHDR?: boolean;
|
3102
3166
|
allowedVideoRanges?: Array<VideoRange>;
|
3167
|
+
videoCodec?: string;
|
3103
3168
|
};
|
3104
3169
|
|
3105
3170
|
export { }
|