hls.js 1.5.14-0.canary.10559 → 1.5.15

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.
Files changed (109) hide show
  1. package/README.md +3 -4
  2. package/dist/hls-demo.js +38 -41
  3. package/dist/hls-demo.js.map +1 -1
  4. package/dist/hls.js +2911 -4558
  5. package/dist/hls.js.d.ts +112 -186
  6. package/dist/hls.js.map +1 -1
  7. package/dist/hls.light.js +2291 -3311
  8. package/dist/hls.light.js.map +1 -1
  9. package/dist/hls.light.min.js +1 -1
  10. package/dist/hls.light.min.js.map +1 -1
  11. package/dist/hls.light.mjs +1813 -2835
  12. package/dist/hls.light.mjs.map +1 -1
  13. package/dist/hls.min.js +1 -1
  14. package/dist/hls.min.js.map +1 -1
  15. package/dist/hls.mjs +4707 -6356
  16. package/dist/hls.mjs.map +1 -1
  17. package/dist/hls.worker.js +1 -1
  18. package/dist/hls.worker.js.map +1 -1
  19. package/package.json +42 -42
  20. package/src/config.ts +2 -5
  21. package/src/controller/abr-controller.ts +25 -39
  22. package/src/controller/audio-stream-controller.ts +136 -156
  23. package/src/controller/audio-track-controller.ts +1 -1
  24. package/src/controller/base-playlist-controller.ts +10 -27
  25. package/src/controller/base-stream-controller.ts +107 -263
  26. package/src/controller/buffer-controller.ts +97 -250
  27. package/src/controller/buffer-operation-queue.ts +19 -16
  28. package/src/controller/cap-level-controller.ts +2 -3
  29. package/src/controller/cmcd-controller.ts +14 -51
  30. package/src/controller/content-steering-controller.ts +15 -29
  31. package/src/controller/eme-controller.ts +23 -10
  32. package/src/controller/error-controller.ts +22 -28
  33. package/src/controller/fps-controller.ts +3 -8
  34. package/src/controller/fragment-finders.ts +16 -44
  35. package/src/controller/fragment-tracker.ts +25 -58
  36. package/src/controller/gap-controller.ts +16 -43
  37. package/src/controller/id3-track-controller.ts +35 -45
  38. package/src/controller/latency-controller.ts +13 -18
  39. package/src/controller/level-controller.ts +19 -37
  40. package/src/controller/stream-controller.ts +83 -100
  41. package/src/controller/subtitle-stream-controller.ts +47 -35
  42. package/src/controller/subtitle-track-controller.ts +3 -5
  43. package/src/controller/timeline-controller.ts +22 -20
  44. package/src/crypt/aes-crypto.ts +2 -21
  45. package/src/crypt/decrypter.ts +16 -32
  46. package/src/crypt/fast-aes-key.ts +5 -28
  47. package/src/demux/audio/aacdemuxer.ts +5 -5
  48. package/src/demux/audio/ac3-demuxer.ts +4 -5
  49. package/src/demux/audio/adts.ts +4 -9
  50. package/src/demux/audio/base-audio-demuxer.ts +15 -21
  51. package/src/demux/audio/mp3demuxer.ts +3 -4
  52. package/src/demux/audio/mpegaudio.ts +1 -1
  53. package/src/demux/id3.ts +411 -0
  54. package/src/demux/inject-worker.ts +4 -38
  55. package/src/demux/mp4demuxer.ts +8 -17
  56. package/src/demux/sample-aes.ts +0 -2
  57. package/src/demux/transmuxer-interface.ts +83 -106
  58. package/src/demux/transmuxer-worker.ts +77 -111
  59. package/src/demux/transmuxer.ts +22 -46
  60. package/src/demux/tsdemuxer.ts +65 -131
  61. package/src/demux/video/avc-video-parser.ts +156 -219
  62. package/src/demux/video/base-video-parser.ts +9 -133
  63. package/src/demux/video/exp-golomb.ts +208 -0
  64. package/src/errors.ts +0 -2
  65. package/src/events.ts +1 -8
  66. package/src/exports-named.ts +1 -1
  67. package/src/hls.ts +48 -97
  68. package/src/loader/date-range.ts +5 -71
  69. package/src/loader/fragment-loader.ts +21 -23
  70. package/src/loader/fragment.ts +4 -8
  71. package/src/loader/key-loader.ts +1 -3
  72. package/src/loader/level-details.ts +6 -6
  73. package/src/loader/level-key.ts +9 -10
  74. package/src/loader/m3u8-parser.ts +144 -138
  75. package/src/loader/playlist-loader.ts +7 -5
  76. package/src/remux/mp4-generator.ts +1 -196
  77. package/src/remux/mp4-remuxer.ts +84 -55
  78. package/src/remux/passthrough-remuxer.ts +8 -23
  79. package/src/task-loop.ts +2 -5
  80. package/src/types/component-api.ts +1 -3
  81. package/src/types/demuxer.ts +1 -3
  82. package/src/types/events.ts +6 -19
  83. package/src/types/fragment-tracker.ts +2 -2
  84. package/src/types/general.ts +6 -0
  85. package/src/types/media-playlist.ts +1 -9
  86. package/src/types/remuxer.ts +1 -1
  87. package/src/utils/attr-list.ts +9 -96
  88. package/src/utils/buffer-helper.ts +31 -12
  89. package/src/utils/cea-608-parser.ts +3 -1
  90. package/src/utils/codecs.ts +5 -34
  91. package/src/utils/discontinuities.ts +47 -21
  92. package/src/utils/fetch-loader.ts +1 -1
  93. package/src/utils/hdr.ts +7 -4
  94. package/src/utils/imsc1-ttml-parser.ts +1 -1
  95. package/src/utils/keysystem-util.ts +6 -1
  96. package/src/utils/level-helper.ts +44 -71
  97. package/src/utils/logger.ts +23 -58
  98. package/src/utils/mp4-tools.ts +3 -5
  99. package/src/utils/rendition-helper.ts +74 -100
  100. package/src/utils/variable-substitution.ts +19 -0
  101. package/src/utils/webvtt-parser.ts +12 -2
  102. package/dist/hls.d.mts +0 -3179
  103. package/dist/hls.d.ts +0 -3179
  104. package/src/crypt/decrypter-aes-mode.ts +0 -4
  105. package/src/demux/video/hevc-video-parser.ts +0 -718
  106. package/src/utils/encryption-methods-util.ts +0 -21
  107. package/src/utils/hash.ts +0 -10
  108. package/src/utils/utf8-utils.ts +0 -18
  109. package/src/version.ts +0 -1
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 extends Logger implements AbrComponentAPI {
9
+ export declare class AbrController 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>, parsed?: Pick<ParsedMultivariantPlaylist | LevelDetails, 'variableList' | 'hasVariableRefs' | 'playlistParsingError'>);
72
+ constructor(attrs: string | Record<string, any>);
73
73
  get clientAttrs(): string[];
74
74
  decimalInteger(attrName: string): number;
75
75
  hexadecimalInteger(attrName: string): Uint8Array | null;
@@ -77,17 +77,12 @@ 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
- };
85
80
  bool(attrName: string): boolean;
86
81
  decimalResolution(attrName: string): {
87
82
  width: number;
88
83
  height: number;
89
84
  } | undefined;
90
- static parseAttrList(input: string, parsed?: Pick<ParsedMultivariantPlaylist | LevelDetails, 'variableList' | 'hasVariableRefs' | 'playlistParsingError'>): Record<string, string>;
85
+ static parseAttrList(input: string): Record<string, any>;
91
86
  }
92
87
 
93
88
  export declare type AudioPlaylistType = 'AUDIO';
@@ -104,8 +99,9 @@ export declare type AudioSelectionOption = {
104
99
  };
105
100
 
106
101
  export declare class AudioStreamController extends BaseStreamController implements NetworkComponentAPI {
107
- private videoAnchor;
108
- private mainFragLoading;
102
+ private videoBuffer;
103
+ private videoTrackCC;
104
+ private waitingVideoCC;
109
105
  private bufferedTrack;
110
106
  private switchingTrack;
111
107
  private trackId;
@@ -116,29 +112,28 @@ export declare class AudioStreamController extends BaseStreamController implemen
116
112
  private cachedTrackLoadedData;
117
113
  constructor(hls: Hls, fragmentTracker: FragmentTracker, keyLoader: KeyLoader);
118
114
  protected onHandlerDestroying(): void;
119
- protected registerListeners(): void;
120
- protected unregisterListeners(): void;
115
+ private _registerListeners;
116
+ private _unregisterListeners;
121
117
  onInitPtsFound(event: Events.INIT_PTS_FOUND, { frag, id, initPTS, timescale }: InitPTSFoundData): void;
122
- private findSyncFrag;
123
118
  startLoad(startPosition: number): void;
124
119
  doTick(): void;
125
120
  clearWaitingFragment(): void;
126
121
  protected resetLoadingState(): void;
127
122
  protected onTickEnd(): void;
128
123
  private doTickIdle;
129
- protected onMediaDetaching(): void;
130
- private onAudioTracksUpdated;
131
- private onAudioTrackSwitching;
132
- protected onManifestLoading(): void;
133
- private onLevelLoaded;
134
- private onAudioTrackLoaded;
124
+ protected getMaxBufferLength(mainBufferLength?: number): number;
125
+ onMediaDetaching(): void;
126
+ onAudioTracksUpdated(event: Events.AUDIO_TRACKS_UPDATED, { audioTracks }: AudioTracksUpdatedData): void;
127
+ onAudioTrackSwitching(event: Events.AUDIO_TRACK_SWITCHING, data: AudioTrackSwitchingData): void;
128
+ onManifestLoading(): void;
129
+ onLevelLoaded(event: Events.LEVEL_LOADED, data: LevelLoadedData): void;
130
+ onAudioTrackLoaded(event: Events.AUDIO_TRACK_LOADED, data: TrackLoadedData): void;
135
131
  _handleFragmentLoadProgress(data: FragLoadedData): void;
136
132
  protected _handleFragmentLoadComplete(fragLoadedData: FragLoadedData): void;
137
- private onBufferReset;
138
- private onBufferCreated;
139
- private onFragLoading;
140
- private onFragBuffered;
141
- protected onError(event: Events.ERROR, data: ErrorData): void;
133
+ onBufferReset(): void;
134
+ onBufferCreated(event: Events.BUFFER_CREATED, data: BufferCreatedData): void;
135
+ onFragBuffered(event: Events.FRAG_BUFFERED, data: FragBufferedData): void;
136
+ private onError;
142
137
  private onBufferFlushing;
143
138
  private onBufferFlushed;
144
139
  private _handleTransmuxComplete;
@@ -193,11 +188,13 @@ export declare interface BackBufferData {
193
188
  bufferEnd: number;
194
189
  }
195
190
 
196
- export declare class BasePlaylistController extends Logger implements NetworkComponentAPI {
191
+ export declare class BasePlaylistController implements NetworkComponentAPI {
197
192
  protected hls: Hls;
198
193
  protected timer: number;
199
194
  protected requestScheduled: number;
200
195
  protected canLoad: boolean;
196
+ protected log: (msg: any) => void;
197
+ protected warn: (msg: any) => void;
201
198
  constructor(hls: Hls, logPrefix: string);
202
199
  destroy(): void;
203
200
  protected clearTimer(): void;
@@ -229,7 +226,7 @@ export declare class BaseSegment {
229
226
 
230
227
  export declare class BaseStreamController extends TaskLoop implements NetworkComponentAPI {
231
228
  protected hls: Hls;
232
- protected fragPrevious: MediaFragment | null;
229
+ protected fragPrevious: Fragment | null;
233
230
  protected fragCurrent: Fragment | null;
234
231
  protected fragmentTracker: FragmentTracker;
235
232
  protected transmuxer: TransmuxerInterface | null;
@@ -252,26 +249,22 @@ export declare class BaseStreamController extends TaskLoop implements NetworkCom
252
249
  protected startFragRequested: boolean;
253
250
  protected decrypter: Decrypter;
254
251
  protected initPTS: RationalTimestamp[];
255
- protected buffering: boolean;
256
- protected loadingParts: boolean;
257
- private loopSn?;
252
+ protected onvseeking: EventListener | null;
253
+ protected onvended: EventListener | null;
254
+ private readonly logPrefix;
255
+ protected log: (msg: any) => void;
256
+ protected warn: (msg: any) => void;
258
257
  constructor(hls: Hls, fragmentTracker: FragmentTracker, keyLoader: KeyLoader, logPrefix: string, playlistType: PlaylistLevelType);
259
- protected registerListeners(): void;
260
- protected unregisterListeners(): void;
261
258
  protected doTick(): void;
262
259
  protected onTickEnd(): void;
263
260
  startLoad(startPosition: number): void;
264
261
  stopLoad(): void;
265
- pauseBuffering(): void;
266
- resumeBuffering(): void;
267
262
  protected _streamEnded(bufferInfo: BufferInfo, levelDetails: LevelDetails): boolean;
268
263
  protected getLevelDetails(): LevelDetails | undefined;
269
264
  protected onMediaAttached(event: Events.MEDIA_ATTACHED, data: MediaAttachedData): void;
270
265
  protected onMediaDetaching(): void;
271
- protected onManifestLoading(): void;
272
- protected onError(event: Events.ERROR, data: ErrorData): void;
273
- protected onMediaSeeking: () => void;
274
- protected onMediaEnded: () => void;
266
+ protected onMediaSeeking(): void;
267
+ protected onMediaEnded(): void;
275
268
  protected onManifestLoaded(event: Events.MANIFEST_LOADED, data: ManifestLoadedData): void;
276
269
  protected onHandlerDestroying(): void;
277
270
  protected onHandlerDestroyed(): void;
@@ -291,16 +284,15 @@ export declare class BaseStreamController extends TaskLoop implements NetworkCom
291
284
  private doFragPartsLoad;
292
285
  private handleFragLoadError;
293
286
  protected _handleTransmuxerFlush(chunkMeta: ChunkMetadata): void;
294
- private shouldLoadParts;
295
287
  protected getCurrentContext(chunkMeta: ChunkMetadata): {
296
- frag: MediaFragment;
288
+ frag: Fragment;
297
289
  part: Part | null;
298
290
  level: Level;
299
291
  } | null;
300
292
  protected bufferFragmentData(data: RemuxedTrack, frag: Fragment, part: Part | null, chunkMeta: ChunkMetadata, noBacktracking?: boolean): void;
301
293
  protected flushBufferGap(frag: Fragment): void;
302
294
  protected getFwdBufferInfo(bufferable: Bufferable | null, type: PlaylistLevelType): BufferInfo | null;
303
- private getFwdBufferInfoAtPos;
295
+ protected getFwdBufferInfoAtPos(bufferable: Bufferable | null, pos: number, type: PlaylistLevelType): BufferInfo | null;
304
296
  protected getMaxBufferLength(levelBitrate?: number): number;
305
297
  protected reduceMaxBufferLength(threshold: number, fragDuration: number): boolean;
306
298
  protected getAppendedFrag(position: number, playlistType?: PlaylistLevelType): Fragment | null;
@@ -310,8 +302,8 @@ export declare class BaseStreamController extends TaskLoop implements NetworkCom
310
302
  mapToInitFragWhenRequired(frag: Fragment | null): typeof frag;
311
303
  getNextPart(partList: Part[], frag: Fragment, targetBufferTime: number): number;
312
304
  private loadedEndOfParts;
313
- protected getInitialLiveFragment(levelDetails: LevelDetails, fragments: MediaFragment[]): MediaFragment | null;
314
- protected getFragmentAtPosition(bufferEnd: number, end: number, levelDetails: LevelDetails): MediaFragment | null;
305
+ protected getInitialLiveFragment(levelDetails: LevelDetails, fragments: Array<Fragment>): Fragment | null;
306
+ protected getFragmentAtPosition(bufferEnd: number, end: number, levelDetails: LevelDetails): Fragment | null;
315
307
  protected synchronizeToLiveEdge(levelDetails: LevelDetails): void;
316
308
  protected alignPlaylists(details: LevelDetails, previousDetails: LevelDetails | undefined, switchDetails: LevelDetails | undefined): number;
317
309
  protected waitForCdnTuneIn(details: LevelDetails): boolean | 0;
@@ -328,8 +320,6 @@ export declare class BaseStreamController extends TaskLoop implements NetworkCom
328
320
  protected resetWhenMissingContext(chunkMeta: ChunkMetadata): void;
329
321
  protected removeUnbufferedFrags(start?: number): void;
330
322
  private updateLevelTiming;
331
- private playlistLabel;
332
- private fragInfo;
333
323
  protected resetTransmuxer(): void;
334
324
  protected recoverWorkerError(data: ErrorData): void;
335
325
  set state(nextState: string);
@@ -363,20 +353,17 @@ export declare interface BufferCodecsData {
363
353
  audio?: Track;
364
354
  }
365
355
 
366
- export declare class BufferController extends Logger implements ComponentAPI {
356
+ export declare class BufferController implements ComponentAPI {
367
357
  private details;
368
358
  private _objectUrl;
369
359
  private operationQueue;
370
360
  private listeners;
371
361
  private hls;
372
- private fragmentTracker;
373
362
  bufferCodecEventsExpected: number;
374
363
  private _bufferCodecEventsTotal;
375
364
  media: HTMLMediaElement | null;
376
365
  mediaSource: MediaSource | null;
377
366
  private lastMpegAudioChunk;
378
- private blockedAudioAppend;
379
- private lastVideoAppendEnd;
380
367
  private appendSource;
381
368
  appendErrors: {
382
369
  audio: number;
@@ -386,7 +373,10 @@ export declare class BufferController extends Logger implements ComponentAPI {
386
373
  tracks: TrackSet;
387
374
  pendingTracks: TrackSet;
388
375
  sourceBuffer: SourceBuffers;
389
- constructor(hls: Hls, fragmentTracker: FragmentTracker);
376
+ protected log: (msg: any) => void;
377
+ protected warn: (msg: any, obj?: any) => void;
378
+ protected error: (msg: any, obj?: any) => void;
379
+ constructor(hls: Hls);
390
380
  hasSourceTypes(): boolean;
391
381
  destroy(): void;
392
382
  protected registerListeners(): void;
@@ -401,18 +391,13 @@ export declare class BufferController extends Logger implements ComponentAPI {
401
391
  protected onBufferReset(): void;
402
392
  private resetBuffer;
403
393
  protected onBufferCodecs(event: Events.BUFFER_CODECS, data: BufferCodecsData): void;
404
- protected appendChangeType(type: SourceBufferName, mimeType: string): void;
405
- private blockAudio;
406
- private unblockAudio;
394
+ protected appendChangeType(type: any, mimeType: any): void;
407
395
  protected onBufferAppending(event: Events.BUFFER_APPENDING, eventData: BufferAppendingData): void;
408
- private getFlushOp;
409
396
  protected onBufferFlushing(event: Events.BUFFER_FLUSHING, data: BufferFlushingData): void;
410
397
  protected onFragParsed(event: Events.FRAG_PARSED, data: FragParsedData): void;
411
398
  private onFragChanged;
412
399
  protected onBufferEos(event: Events.BUFFER_EOS, data: BufferEOSData): void;
413
400
  protected onLevelUpdated(event: Events.LEVEL_UPDATED, { details }: LevelUpdatedData): void;
414
- private onError;
415
- private resetAppendErrors;
416
401
  trimBuffers(): void;
417
402
  flushBackBuffer(currentTime: number, targetDuration: number, targetBackBufferPosition: number): void;
418
403
  flushFrontBuffer(currentTime: number, targetDuration: number, targetFrontBufferPosition: number): void;
@@ -421,8 +406,8 @@ export declare class BufferController extends Logger implements ComponentAPI {
421
406
  * 'liveDurationInfinity` is set to `true`
422
407
  * More details: https://github.com/video-dev/hls.js/issues/355
423
408
  */
424
- private getDurationAndRange;
425
- private updateMediaSource;
409
+ private updateMediaElementDuration;
410
+ updateSeekableRange(levelDetails: any): void;
426
411
  protected checkPendingTracks(): void;
427
412
  protected createSourceBuffers(tracks: TrackSet): void;
428
413
  private _onMediaSourceOpen;
@@ -617,8 +602,6 @@ export declare class CMCDController implements ComponentAPI {
617
602
  * Apply CMCD data to a segment request
618
603
  */
619
604
  private applyFragmentData;
620
- private getNextFrag;
621
- private getNextPart;
622
605
  /**
623
606
  * The CMCD object type.
624
607
  */
@@ -652,12 +635,13 @@ export declare interface ComponentAPI {
652
635
  destroy(): void;
653
636
  }
654
637
 
655
- export declare class ContentSteeringController extends Logger implements NetworkComponentAPI {
638
+ export declare class ContentSteeringController implements NetworkComponentAPI {
656
639
  private readonly hls;
640
+ private log;
657
641
  private loader;
658
642
  private uri;
659
643
  private pathwayId;
660
- private _pathwayPriority;
644
+ private pathwayPriority;
661
645
  private timeToLoad;
662
646
  private reloadTimer;
663
647
  private updated;
@@ -670,9 +654,6 @@ export declare class ContentSteeringController extends Logger implements Network
670
654
  constructor(hls: Hls);
671
655
  private registerListeners;
672
656
  private unregisterListeners;
673
- pathways(): string[];
674
- get pathwayPriority(): string[] | null;
675
- set pathwayPriority(pathwayPriority: string[]);
676
657
  startLoad(): void;
677
658
  stopLoad(): void;
678
659
  clearTimeout(): void;
@@ -708,32 +689,20 @@ export declare interface CuesParsedData {
708
689
 
709
690
  export declare class DateRange {
710
691
  attr: AttrList;
711
- tagAnchor: Fragment | null;
712
- tagOrder: number;
713
692
  private _startDate;
714
693
  private _endDate?;
715
- private _cue?;
716
694
  private _badValueForSameId?;
717
- constructor(dateRangeAttr: AttrList, dateRangeWithSameId?: DateRange | undefined, tagCount?: number);
695
+ constructor(dateRangeAttr: AttrList, dateRangeWithSameId?: DateRange);
718
696
  get id(): string;
719
697
  get class(): string;
720
- get cue(): DateRangeCue;
721
- get startTime(): number;
722
698
  get startDate(): Date;
723
699
  get endDate(): Date | null;
724
700
  get duration(): number | null;
725
701
  get plannedDuration(): number | null;
726
702
  get endOnNext(): boolean;
727
- get isInterstitial(): boolean;
728
703
  get isValid(): boolean;
729
704
  }
730
705
 
731
- export declare type DateRangeCue = {
732
- pre: boolean;
733
- post: boolean;
734
- once: boolean;
735
- };
736
-
737
706
  declare interface DecryptData {
738
707
  uri: string;
739
708
  method: string;
@@ -758,7 +727,6 @@ declare class Decrypter {
758
727
  private currentIV;
759
728
  private currentResult;
760
729
  private useSoftware;
761
- private enableSoftwareAES;
762
730
  constructor(config: HlsConfig, { removePKCS7Padding }?: {
763
731
  removePKCS7Padding?: boolean | undefined;
764
732
  });
@@ -766,19 +734,14 @@ declare class Decrypter {
766
734
  isSync(): boolean;
767
735
  flush(): Uint8Array | null;
768
736
  reset(): void;
769
- decrypt(data: Uint8Array | ArrayBuffer, key: ArrayBuffer, iv: ArrayBuffer, aesMode: DecrypterAesMode): Promise<ArrayBuffer>;
770
- softwareDecrypt(data: Uint8Array, key: ArrayBuffer, iv: ArrayBuffer, aesMode: DecrypterAesMode): ArrayBuffer | null;
771
- webCryptoDecrypt(data: Uint8Array, key: ArrayBuffer, iv: ArrayBuffer, aesMode: DecrypterAesMode): Promise<ArrayBuffer>;
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>;
772
740
  private onWebCryptoError;
773
741
  private getValidChunk;
774
742
  private logOnce;
775
743
  }
776
744
 
777
- declare const enum DecrypterAesMode {
778
- cbc = 0,
779
- ctr = 1
780
- }
781
-
782
745
  declare type DRMSystemConfiguration = {
783
746
  licenseUrl: string;
784
747
  serverCertificateUrl?: string;
@@ -824,7 +787,7 @@ export declare const enum ElementaryStreamTypes {
824
787
  * @class
825
788
  * @constructor
826
789
  */
827
- export declare class EMEController extends Logger implements ComponentAPI {
790
+ export declare class EMEController implements ComponentAPI {
828
791
  static CDMCleanupPromise: Promise<void> | void;
829
792
  private readonly hls;
830
793
  private readonly config;
@@ -835,6 +798,12 @@ export declare class EMEController extends Logger implements ComponentAPI {
835
798
  private mediaKeySessions;
836
799
  private keyIdToKeySessionPromise;
837
800
  private setMediaKeysQueue;
801
+ private onMediaEncrypted;
802
+ private onWaitingForKey;
803
+ private debug;
804
+ private log;
805
+ private warn;
806
+ private error;
838
807
  constructor(hls: Hls);
839
808
  destroy(): void;
840
809
  private registerListeners;
@@ -855,8 +824,8 @@ export declare class EMEController extends Logger implements ComponentAPI {
855
824
  private handleError;
856
825
  private getKeySystemForKeyPromise;
857
826
  private getKeySystemSelectionPromise;
858
- private onMediaEncrypted;
859
- private onWaitingForKey;
827
+ private _onMediaEncrypted;
828
+ private _onWaitingForKey;
860
829
  private attemptSetMediaKeys;
861
830
  private generateRequestWithPreferredKeySession;
862
831
  private onKeyStatusChange;
@@ -890,10 +859,13 @@ export declare const enum ErrorActionFlags {
890
859
  SwitchToSDR = 4
891
860
  }
892
861
 
893
- export declare class ErrorController extends Logger implements NetworkComponentAPI {
862
+ export declare class ErrorController implements NetworkComponentAPI {
894
863
  private readonly hls;
895
864
  private playlistError;
896
865
  private penalizedRenditions;
866
+ private log;
867
+ private warn;
868
+ private error;
897
869
  constructor(hls: Hls);
898
870
  private registerListeners;
899
871
  private unregisterListeners;
@@ -987,7 +959,6 @@ export declare enum ErrorDetails {
987
959
  BUFFER_NUDGE_ON_STALL = "bufferNudgeOnStall",
988
960
  INTERNAL_EXCEPTION = "internalException",
989
961
  INTERNAL_ABORTED = "aborted",
990
- ATTACH_MEDIA_ERROR = "attachMediaError",
991
962
  UNKNOWN = "unknown"
992
963
  }
993
964
 
@@ -1004,7 +975,6 @@ export declare enum Events {
1004
975
  MEDIA_ATTACHED = "hlsMediaAttached",
1005
976
  MEDIA_DETACHING = "hlsMediaDetaching",
1006
977
  MEDIA_DETACHED = "hlsMediaDetached",
1007
- MEDIA_ENDED = "hlsMediaEnded",
1008
978
  BUFFER_RESET = "hlsBufferReset",
1009
979
  BUFFER_CODECS = "hlsBufferCodecs",
1010
980
  BUFFER_CREATED = "hlsBufferCreated",
@@ -1098,7 +1068,6 @@ export declare class FPSController implements ComponentAPI {
1098
1068
  protected unregisterListeners(): void;
1099
1069
  destroy(): void;
1100
1070
  protected onMediaAttaching(event: Events.MEDIA_ATTACHING, data: MediaAttachingData): void;
1101
- private onMediaDetaching;
1102
1071
  checkFPS(video: HTMLVideoElement, decodedFrames: number, droppedFrames: number): void;
1103
1072
  checkFPSInterval(): void;
1104
1073
  }
@@ -1191,8 +1160,8 @@ export declare class Fragment extends BaseSegment {
1191
1160
  cc: number;
1192
1161
  startPTS?: number;
1193
1162
  endPTS?: number;
1194
- startDTS?: number;
1195
- endDTS?: number;
1163
+ startDTS: number;
1164
+ endDTS: number;
1196
1165
  start: number;
1197
1166
  deltaPTS?: number;
1198
1167
  maxStartPTS?: number;
@@ -1280,21 +1249,20 @@ declare class FragmentTracker implements ComponentAPI {
1280
1249
  * A buffered Fragment is one whose loading, parsing and appending is done (completed or "partial" meaning aborted).
1281
1250
  * If not found any Fragment, return null
1282
1251
  */
1283
- getBufferedFrag(position: number, levelType: PlaylistLevelType): MediaFragment | null;
1284
- getFragAtPos(position: number, levelType: PlaylistLevelType, buffered?: boolean): MediaFragment | null;
1252
+ getBufferedFrag(position: number, levelType: PlaylistLevelType): Fragment | null;
1285
1253
  /**
1286
1254
  * Partial fragments effected by coded frame eviction will be removed
1287
1255
  * The browser will unload parts of the buffer to free up memory for new buffer data
1288
1256
  * 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)
1289
1257
  */
1290
- detectEvictedFragments(elementaryStream: SourceBufferName, timeRange: TimeRanges, playlistType: PlaylistLevelType, appendedPart?: Part | null, removeAppending?: boolean): void;
1258
+ detectEvictedFragments(elementaryStream: SourceBufferName, timeRange: TimeRanges, playlistType: PlaylistLevelType, appendedPart?: Part | null): void;
1291
1259
  /**
1292
1260
  * Checks if the fragment passed in is loaded in the buffer properly
1293
1261
  * Partially loaded fragments will be registered as a partial fragment
1294
1262
  */
1295
1263
  detectPartialFragments(data: FragBufferedData): void;
1296
1264
  private removeParts;
1297
- fragBuffered(frag: MediaFragment, force?: true): void;
1265
+ fragBuffered(frag: Fragment, force?: true): void;
1298
1266
  private getBufferedTimes;
1299
1267
  /**
1300
1268
  * Gets the partial fragment for a certain time
@@ -1303,12 +1271,10 @@ declare class FragmentTracker implements ComponentAPI {
1303
1271
  isEndListAppended(type: PlaylistLevelType): boolean;
1304
1272
  getState(fragment: Fragment): FragmentState;
1305
1273
  private isTimeBuffered;
1306
- private onManifestLoading;
1307
1274
  private onFragLoaded;
1308
1275
  private onBufferAppended;
1309
1276
  private onFragBuffered;
1310
1277
  private hasFragment;
1311
- hasFragments(type?: PlaylistLevelType): boolean;
1312
1278
  hasParts(type: PlaylistLevelType): boolean;
1313
1279
  removeFragmentsInRange(start: number, end: number, playlistType: PlaylistLevelType, withGapOnly?: boolean, unbufferedOnly?: boolean): void;
1314
1280
  removeFragment(fragment: Fragment): void;
@@ -1355,12 +1321,9 @@ declare class Hls implements HlsEventEmitter {
1355
1321
  * The configuration object provided on player instantiation.
1356
1322
  */
1357
1323
  readonly userConfig: Partial<HlsConfig>;
1358
- /**
1359
- * The logger functions used by this player instance, configured on player instantiation.
1360
- */
1361
- readonly logger: ILogger;
1362
1324
  private coreComponents;
1363
1325
  private networkControllers;
1326
+ private started;
1364
1327
  private _emitter;
1365
1328
  private _autoLevelCapping;
1366
1329
  private _maxHdcpLevel;
@@ -1375,7 +1338,7 @@ declare class Hls implements HlsEventEmitter {
1375
1338
  private emeController;
1376
1339
  private cmcdController;
1377
1340
  private _media;
1378
- private _url;
1341
+ private url;
1379
1342
  private triggeringException?;
1380
1343
  /**
1381
1344
  * Get the video-dev/hls.js package version.
@@ -1434,10 +1397,6 @@ declare class Hls implements HlsEventEmitter {
1434
1397
  * Set the source URL. Can be relative or absolute.
1435
1398
  */
1436
1399
  loadSource(url: string): void;
1437
- /**
1438
- * Gets the currently loaded URL
1439
- */
1440
- get url(): string | null;
1441
1400
  /**
1442
1401
  * Start loading data from the stream source.
1443
1402
  * Depending on default config, client starts loading automatically when a source is set.
@@ -1451,11 +1410,11 @@ declare class Hls implements HlsEventEmitter {
1451
1410
  */
1452
1411
  stopLoad(): void;
1453
1412
  /**
1454
- * Resumes stream controller segment loading after `pauseBuffering` has been called.
1413
+ * Resumes stream controller segment loading if previously started.
1455
1414
  */
1456
1415
  resumeBuffering(): void;
1457
1416
  /**
1458
- * Prevents stream controller from loading new segments until `resumeBuffering` is called.
1417
+ * Stops stream controller segment loading without changing 'started' state like stopLoad().
1459
1418
  * This allows for media buffering to be paused without interupting playlist loading.
1460
1419
  */
1461
1420
  pauseBuffering(): void;
@@ -1600,7 +1559,6 @@ declare class Hls implements HlsEventEmitter {
1600
1559
  */
1601
1560
  get playingDate(): Date | null;
1602
1561
  get mainForwardBufferInfo(): BufferInfo | null;
1603
- get maxBufferLength(): number;
1604
1562
  /**
1605
1563
  * Find and select the best matching audio track, making a level switch when a Group change is necessary.
1606
1564
  * Updates `hls.config.audioPreference`. Returns the selected track, or null when no matching track is found.
@@ -1680,7 +1638,6 @@ declare class Hls implements HlsEventEmitter {
1680
1638
  * target distance from the edge as calculated by the latency controller
1681
1639
  */
1682
1640
  get targetLatency(): number | null;
1683
- set targetLatency(latency: number);
1684
1641
  /**
1685
1642
  * the rate at which the edge of the current live playlist is advancing or 1 if there is none
1686
1643
  */
@@ -1689,11 +1646,6 @@ declare class Hls implements HlsEventEmitter {
1689
1646
  * set to true when startLoad is called before MANIFEST_PARSED event
1690
1647
  */
1691
1648
  get forceStartLoad(): boolean;
1692
- /**
1693
- * ContentSteering pathwayPriority getter/setter
1694
- */
1695
- get pathwayPriority(): string[] | null;
1696
- set pathwayPriority(pathwayPriority: string[]);
1697
1649
  }
1698
1650
  export default Hls;
1699
1651
 
@@ -1754,7 +1706,6 @@ export declare interface HlsListeners {
1754
1706
  [Events.MEDIA_ATTACHED]: (event: Events.MEDIA_ATTACHED, data: MediaAttachedData) => void;
1755
1707
  [Events.MEDIA_DETACHING]: (event: Events.MEDIA_DETACHING) => void;
1756
1708
  [Events.MEDIA_DETACHED]: (event: Events.MEDIA_DETACHED) => void;
1757
- [Events.MEDIA_ENDED]: (event: Events.MEDIA_ENDED, data: MediaEndedData) => void;
1758
1709
  [Events.BUFFER_RESET]: (event: Events.BUFFER_RESET) => void;
1759
1710
  [Events.BUFFER_CODECS]: (event: Events.BUFFER_CODECS, data: BufferCodecsData) => void;
1760
1711
  [Events.BUFFER_CREATED]: (event: Events.BUFFER_CREATED, data: BufferCreatedData) => void;
@@ -1865,8 +1816,8 @@ export declare interface ILogger {
1865
1816
  }
1866
1817
 
1867
1818
  export declare interface InitPTSFoundData {
1868
- id: PlaylistLevelType;
1869
- frag: MediaFragment;
1819
+ id: string;
1820
+ frag: Fragment;
1870
1821
  initPTS: number;
1871
1822
  timescale: number;
1872
1823
  }
@@ -1945,7 +1896,6 @@ export declare type LatencyControllerConfig = {
1945
1896
  liveSyncDuration?: number;
1946
1897
  liveMaxLatencyDuration?: number;
1947
1898
  maxLiveSyncPlaybackRate: number;
1948
- liveSyncOnStallIncrease: number;
1949
1899
  };
1950
1900
 
1951
1901
  export declare class Level {
@@ -2029,11 +1979,10 @@ export declare class LevelDetails {
2029
1979
  averagetargetduration?: number;
2030
1980
  endCC: number;
2031
1981
  endSN: number;
2032
- fragments: MediaFragment[];
2033
- fragmentHint?: MediaFragment;
1982
+ fragments: Fragment[];
1983
+ fragmentHint?: Fragment;
2034
1984
  partList: Part[] | null;
2035
1985
  dateRanges: Record<string, DateRange>;
2036
- dateRangeTagCount: number;
2037
1986
  live: boolean;
2038
1987
  ageHeader: number;
2039
1988
  advancedDateTime?: number;
@@ -2308,16 +2257,6 @@ export declare class LoadStats implements LoaderStats {
2308
2257
  buffering: HlsProgressivePerformanceTiming;
2309
2258
  }
2310
2259
 
2311
- export declare class Logger implements ILogger {
2312
- trace: ILogFunction;
2313
- debug: ILogFunction;
2314
- log: ILogFunction;
2315
- warn: ILogFunction;
2316
- info: ILogFunction;
2317
- error: ILogFunction;
2318
- constructor(label: string, logger: ILogger);
2319
- }
2320
-
2321
2260
  export declare type MainPlaylistType = AudioPlaylistType | 'VIDEO';
2322
2261
 
2323
2262
  export declare interface ManifestLoadedData {
@@ -2393,14 +2332,6 @@ export declare type MediaDecodingInfo = {
2393
2332
  error?: Error;
2394
2333
  };
2395
2334
 
2396
- export declare interface MediaEndedData {
2397
- stalled: boolean;
2398
- }
2399
-
2400
- export declare interface MediaFragment extends Fragment {
2401
- sn: number;
2402
- }
2403
-
2404
2335
  export declare type MediaKeyFunc = (keySystem: KeySystems, supportedConfigurations: MediaKeySystemConfiguration[]) => Promise<MediaKeySystemAccess>;
2405
2336
 
2406
2337
  export declare interface MediaKeySessionContext {
@@ -2470,8 +2401,6 @@ export declare type MP4RemuxerConfig = {
2470
2401
  export declare interface NetworkComponentAPI extends ComponentAPI {
2471
2402
  startLoad(startPosition: number): void;
2472
2403
  stopLoad(): void;
2473
- pauseBuffering?(): void;
2474
- resumeBuffering?(): void;
2475
2404
  }
2476
2405
 
2477
2406
  export declare const enum NetworkErrorAction {
@@ -2504,17 +2433,6 @@ declare interface PACData {
2504
2433
  italics: boolean;
2505
2434
  }
2506
2435
 
2507
- export declare type ParsedMultivariantPlaylist = {
2508
- contentSteering: ContentSteeringOptions | null;
2509
- levels: LevelParsed[];
2510
- playlistParsingError: Error | null;
2511
- sessionData: Record<string, AttrList> | null;
2512
- sessionKeys: LevelKey[] | null;
2513
- startTimeOffset: number | null;
2514
- variableList: VariableMap | null;
2515
- hasVariableRefs: boolean;
2516
- };
2517
-
2518
2436
  /**
2519
2437
  * Object representing parsed data from an HLS Partial Segment. Found in {@link hls.js#LevelDetails.partList}.
2520
2438
  */
@@ -2524,10 +2442,10 @@ export declare class Part extends BaseSegment {
2524
2442
  readonly gap: boolean;
2525
2443
  readonly independent: boolean;
2526
2444
  readonly relurl: string;
2527
- readonly fragment: MediaFragment;
2445
+ readonly fragment: Fragment;
2528
2446
  readonly index: number;
2529
2447
  stats: LoadStats;
2530
- constructor(partAttrs: AttrList, frag: MediaFragment, baseurl: string, index: number, previous?: Part);
2448
+ constructor(partAttrs: AttrList, frag: Fragment, baseurl: string, index: number, previous?: Part);
2531
2449
  get start(): number;
2532
2450
  get end(): number;
2533
2451
  get loaded(): boolean;
@@ -2722,14 +2640,16 @@ declare class StreamController extends BaseStreamController implements NetworkCo
2722
2640
  private altAudio;
2723
2641
  private audioOnly;
2724
2642
  private fragPlaying;
2643
+ private onvplaying;
2644
+ private onvseeked;
2725
2645
  private fragLastKbps;
2726
2646
  private couldBacktrack;
2727
2647
  private backtrackFragment;
2728
2648
  private audioCodecSwitch;
2729
2649
  private videoBuffer;
2730
2650
  constructor(hls: Hls, fragmentTracker: FragmentTracker, keyLoader: KeyLoader);
2731
- protected registerListeners(): void;
2732
- protected unregisterListeners(): void;
2651
+ private _registerListeners;
2652
+ protected _unregisterListeners(): void;
2733
2653
  protected onHandlerDestroying(): void;
2734
2654
  startLoad(startPosition: number): void;
2735
2655
  stopLoad(): void;
@@ -2753,7 +2673,7 @@ declare class StreamController extends BaseStreamController implements NetworkCo
2753
2673
  protected onMediaDetaching(): void;
2754
2674
  private onMediaPlaying;
2755
2675
  private onMediaSeeked;
2756
- protected onManifestLoading(): void;
2676
+ private onManifestLoading;
2757
2677
  private onManifestParsed;
2758
2678
  private onLevelLoading;
2759
2679
  private onLevelLoaded;
@@ -2762,7 +2682,7 @@ declare class StreamController extends BaseStreamController implements NetworkCo
2762
2682
  private onAudioTrackSwitched;
2763
2683
  private onBufferCreated;
2764
2684
  private onFragBuffered;
2765
- protected onError(event: Events.ERROR, data: ErrorData): void;
2685
+ private onError;
2766
2686
  private checkBuffer;
2767
2687
  private onFragLoadEmergencyAborted;
2768
2688
  private onBufferFlushed;
@@ -2777,14 +2697,13 @@ declare class StreamController extends BaseStreamController implements NetworkCo
2777
2697
  private _handleTransmuxComplete;
2778
2698
  private _bufferInitSegment;
2779
2699
  getMainFwdBufferInfo(): BufferInfo | null;
2780
- get maxBufferLength(): number;
2781
2700
  private backtrack;
2782
2701
  private checkFragmentChanged;
2783
2702
  get nextLevel(): number;
2784
2703
  get currentFrag(): Fragment | null;
2785
2704
  get currentProgramDateTime(): Date | null;
2786
2705
  get currentLevel(): number;
2787
- get nextBufferedFrag(): MediaFragment | null;
2706
+ get nextBufferedFrag(): Fragment | null;
2788
2707
  get forceStartLoad(): boolean;
2789
2708
  }
2790
2709
 
@@ -2820,6 +2739,11 @@ declare class StyledUnicodeChar {
2820
2739
  isEmpty(): boolean;
2821
2740
  }
2822
2741
 
2742
+ declare interface SubtitleFragProcessed {
2743
+ success: boolean;
2744
+ frag: Fragment;
2745
+ }
2746
+
2823
2747
  export declare interface SubtitleFragProcessedData {
2824
2748
  success: boolean;
2825
2749
  frag: Fragment;
@@ -2844,21 +2768,22 @@ export declare class SubtitleStreamController extends BaseStreamController imple
2844
2768
  private mainDetails;
2845
2769
  constructor(hls: Hls, fragmentTracker: FragmentTracker, keyLoader: KeyLoader);
2846
2770
  protected onHandlerDestroying(): void;
2847
- protected registerListeners(): void;
2848
- protected unregisterListeners(): void;
2771
+ private _registerListeners;
2772
+ private _unregisterListeners;
2849
2773
  startLoad(startPosition: number): void;
2850
- protected onManifestLoading(): void;
2851
- protected onMediaDetaching(): void;
2852
- private onLevelLoaded;
2853
- private onSubtitleFragProcessed;
2854
- private onBufferFlushing;
2855
- private onFragBuffered;
2856
- protected onError(event: Events.ERROR, data: ErrorData): void;
2857
- private onSubtitleTracksUpdated;
2858
- private onSubtitleTrackSwitch;
2859
- private onSubtitleTrackLoaded;
2774
+ onManifestLoading(): void;
2775
+ onMediaDetaching(): void;
2776
+ onLevelLoaded(event: Events.LEVEL_LOADED, data: LevelLoadedData): void;
2777
+ onSubtitleFragProcessed(event: Events.SUBTITLE_FRAG_PROCESSED, data: SubtitleFragProcessed): void;
2778
+ onBufferFlushing(event: Events.BUFFER_FLUSHING, data: BufferFlushingData): void;
2779
+ onFragBuffered(event: Events.FRAG_BUFFERED, data: FragBufferedData): void;
2780
+ onError(event: Events.ERROR, data: ErrorData): void;
2781
+ onSubtitleTracksUpdated(event: Events.SUBTITLE_TRACKS_UPDATED, { subtitleTracks }: SubtitleTracksUpdatedData): void;
2782
+ onSubtitleTrackSwitch(event: Events.SUBTITLE_TRACK_SWITCH, data: TrackSwitchedData): void;
2783
+ onSubtitleTrackLoaded(event: Events.SUBTITLE_TRACK_LOADED, data: TrackLoadedData): void;
2860
2784
  _handleFragmentLoadComplete(fragLoadedData: FragLoadedData): void;
2861
2785
  doTick(): void;
2786
+ protected getMaxBufferLength(mainBufferLength?: number): number;
2862
2787
  protected loadFragment(frag: Fragment, level: Level, targetBufferTime: number): void;
2863
2788
  get mediaBufferTimeRanges(): Bufferable;
2864
2789
  }
@@ -2872,10 +2797,10 @@ export declare class SubtitleTrackController extends BasePlaylistController {
2872
2797
  private currentTrack;
2873
2798
  private selectDefaultTrack;
2874
2799
  private queuedDefaultTrack;
2800
+ private asyncPollTrackChange;
2875
2801
  private useTextTrackPolling;
2876
2802
  private subtitlePollingInterval;
2877
2803
  private _subtitleDisplay;
2878
- private asyncPollTrackChange;
2879
2804
  constructor(hls: Hls);
2880
2805
  destroy(): void;
2881
2806
  get subtitleDisplay(): boolean;
@@ -2960,12 +2885,12 @@ export declare interface SubtitleTrackSwitchData {
2960
2885
  * we are limiting the task execution per call stack to exactly one, but scheduling/post-poning further
2961
2886
  * task processing on the next main loop iteration (also known as "next tick" in the Node/JS runtime lingo).
2962
2887
  */
2963
- declare class TaskLoop extends Logger {
2888
+ declare class TaskLoop {
2964
2889
  private readonly _boundTick;
2965
2890
  private _tickTimer;
2966
2891
  private _tickInterval;
2967
2892
  private _tickCallCount;
2968
- constructor(label: string, logger: ILogger);
2893
+ constructor();
2969
2894
  destroy(): void;
2970
2895
  protected onHandlerDestroying(): void;
2971
2896
  protected onHandlerDestroyed(): void;
@@ -3096,29 +3021,31 @@ export declare interface TrackSet {
3096
3021
  audiovideo?: Track;
3097
3022
  }
3098
3023
 
3024
+ declare interface TrackSwitchedData {
3025
+ id: number;
3026
+ }
3027
+
3099
3028
  declare class TransmuxerInterface {
3100
3029
  error: Error | null;
3101
3030
  private hls;
3102
3031
  private id;
3103
- private instanceNo;
3104
3032
  private observer;
3105
3033
  private frag;
3106
3034
  private part;
3107
3035
  private useWorker;
3108
3036
  private workerContext;
3037
+ private onwmsg?;
3109
3038
  private transmuxer;
3110
3039
  private onTransmuxComplete;
3111
3040
  private onFlush;
3112
3041
  constructor(hls: Hls, id: PlaylistLevelType, onTransmuxComplete: (transmuxResult: TransmuxerResult) => void, onFlush: (chunkMeta: ChunkMetadata) => void);
3113
- reset(): void;
3114
- private terminateWorker;
3042
+ resetWorker(): void;
3115
3043
  destroy(): void;
3116
- 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;
3044
+ push(data: ArrayBuffer, initSegmentData: Uint8Array | undefined, audioCodec: string | undefined, videoCodec: string | undefined, frag: Fragment, part: Part | null, duration: number, accurateTimeOffset: boolean, chunkMeta: ChunkMetadata, defaultInitPTS?: RationalTimestamp): void;
3117
3045
  flush(chunkMeta: ChunkMetadata): void;
3118
3046
  private transmuxerError;
3119
3047
  private handleFlushResult;
3120
3048
  private onWorkerMessage;
3121
- private onWorkerError;
3122
3049
  private configureTransmuxer;
3123
3050
  private handleTransmuxComplete;
3124
3051
  }
@@ -3173,7 +3100,6 @@ declare const VideoRangeValues: readonly ["SDR", "PQ", "HLG"];
3173
3100
  export declare type VideoSelectionOption = {
3174
3101
  preferHDR?: boolean;
3175
3102
  allowedVideoRanges?: Array<VideoRange>;
3176
- videoCodec?: string;
3177
3103
  };
3178
3104
 
3179
3105
  export { }