hls.js 1.5.9-0.canary.10310 → 1.5.9

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 (89) 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 +2191 -3474
  5. package/dist/hls.js.d.ts +85 -108
  6. package/dist/hls.js.map +1 -1
  7. package/dist/hls.light.js +3136 -3783
  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 +1260 -1934
  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 +4182 -5488
  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 +35 -35
  20. package/src/config.ts +2 -3
  21. package/src/controller/abr-controller.ts +20 -24
  22. package/src/controller/audio-stream-controller.ts +74 -68
  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 +38 -160
  26. package/src/controller/buffer-controller.ts +92 -230
  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 +8 -6
  33. package/src/controller/fps-controller.ts +3 -8
  34. package/src/controller/fragment-tracker.ts +11 -15
  35. package/src/controller/gap-controller.ts +16 -43
  36. package/src/controller/id3-track-controller.ts +7 -7
  37. package/src/controller/latency-controller.ts +11 -9
  38. package/src/controller/level-controller.ts +19 -37
  39. package/src/controller/stream-controller.ts +32 -37
  40. package/src/controller/subtitle-stream-controller.ts +40 -28
  41. package/src/controller/subtitle-track-controller.ts +3 -5
  42. package/src/controller/timeline-controller.ts +21 -19
  43. package/src/crypt/aes-crypto.ts +2 -21
  44. package/src/crypt/decrypter.ts +16 -32
  45. package/src/crypt/fast-aes-key.ts +5 -24
  46. package/src/demux/audio/aacdemuxer.ts +2 -2
  47. package/src/demux/audio/ac3-demuxer.ts +3 -4
  48. package/src/demux/audio/adts.ts +4 -9
  49. package/src/demux/audio/base-audio-demuxer.ts +14 -16
  50. package/src/demux/audio/mp3demuxer.ts +3 -4
  51. package/src/demux/audio/mpegaudio.ts +1 -1
  52. package/src/demux/id3.ts +411 -0
  53. package/src/demux/mp4demuxer.ts +7 -7
  54. package/src/demux/sample-aes.ts +0 -2
  55. package/src/demux/transmuxer-interface.ts +12 -4
  56. package/src/demux/transmuxer-worker.ts +4 -4
  57. package/src/demux/transmuxer.ts +3 -16
  58. package/src/demux/tsdemuxer.ts +37 -71
  59. package/src/demux/video/avc-video-parser.ts +119 -208
  60. package/src/demux/video/base-video-parser.ts +18 -147
  61. package/src/demux/video/exp-golomb.ts +208 -0
  62. package/src/events.ts +1 -8
  63. package/src/exports-named.ts +1 -1
  64. package/src/hls.ts +38 -61
  65. package/src/loader/fragment-loader.ts +3 -10
  66. package/src/loader/key-loader.ts +1 -3
  67. package/src/loader/level-key.ts +9 -10
  68. package/src/loader/playlist-loader.ts +5 -4
  69. package/src/remux/mp4-generator.ts +1 -196
  70. package/src/remux/mp4-remuxer.ts +8 -24
  71. package/src/task-loop.ts +2 -5
  72. package/src/types/component-api.ts +1 -3
  73. package/src/types/demuxer.ts +0 -4
  74. package/src/types/events.ts +0 -4
  75. package/src/types/remuxer.ts +1 -1
  76. package/src/utils/buffer-helper.ts +31 -12
  77. package/src/utils/cea-608-parser.ts +3 -1
  78. package/src/utils/codecs.ts +5 -34
  79. package/src/utils/fetch-loader.ts +1 -1
  80. package/src/utils/imsc1-ttml-parser.ts +1 -1
  81. package/src/utils/keysystem-util.ts +6 -1
  82. package/src/utils/logger.ts +23 -58
  83. package/src/utils/mp4-tools.ts +3 -5
  84. package/src/utils/webvtt-parser.ts +1 -1
  85. package/src/crypt/decrypter-aes-mode.ts +0 -4
  86. package/src/demux/video/hevc-video-parser.ts +0 -749
  87. package/src/empty-es.js +0 -5
  88. package/src/utils/encryption-methods-util.ts +0 -21
  89. package/src/utils/utf8-utils.ts +0 -18
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;
@@ -112,8 +112,8 @@ export declare class AudioStreamController extends BaseStreamController implemen
112
112
  private cachedTrackLoadedData;
113
113
  constructor(hls: Hls, fragmentTracker: FragmentTracker, keyLoader: KeyLoader);
114
114
  protected onHandlerDestroying(): void;
115
- protected registerListeners(): void;
116
- protected unregisterListeners(): void;
115
+ private _registerListeners;
116
+ private _unregisterListeners;
117
117
  onInitPtsFound(event: Events.INIT_PTS_FOUND, { frag, id, initPTS, timescale }: InitPTSFoundData): void;
118
118
  startLoad(startPosition: number): void;
119
119
  doTick(): void;
@@ -121,18 +121,19 @@ export declare class AudioStreamController extends BaseStreamController implemen
121
121
  protected resetLoadingState(): void;
122
122
  protected onTickEnd(): void;
123
123
  private doTickIdle;
124
- protected onMediaDetaching(): void;
125
- private onAudioTracksUpdated;
126
- private onAudioTrackSwitching;
127
- protected onManifestLoading(): void;
128
- private onLevelLoaded;
129
- 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;
130
131
  _handleFragmentLoadProgress(data: FragLoadedData): void;
131
132
  protected _handleFragmentLoadComplete(fragLoadedData: FragLoadedData): void;
132
- private onBufferReset;
133
- private onBufferCreated;
134
- private onFragBuffered;
135
- 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;
136
137
  private onBufferFlushing;
137
138
  private onBufferFlushed;
138
139
  private _handleTransmuxComplete;
@@ -187,11 +188,13 @@ export declare interface BackBufferData {
187
188
  bufferEnd: number;
188
189
  }
189
190
 
190
- export declare class BasePlaylistController extends Logger implements NetworkComponentAPI {
191
+ export declare class BasePlaylistController implements NetworkComponentAPI {
191
192
  protected hls: Hls;
192
193
  protected timer: number;
193
194
  protected requestScheduled: number;
194
195
  protected canLoad: boolean;
196
+ protected log: (msg: any) => void;
197
+ protected warn: (msg: any) => void;
195
198
  constructor(hls: Hls, logPrefix: string);
196
199
  destroy(): void;
197
200
  protected clearTimer(): void;
@@ -246,25 +249,22 @@ export declare class BaseStreamController extends TaskLoop implements NetworkCom
246
249
  protected startFragRequested: boolean;
247
250
  protected decrypter: Decrypter;
248
251
  protected initPTS: RationalTimestamp[];
249
- protected buffering: boolean;
250
- private loadingParts;
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;
251
257
  constructor(hls: Hls, fragmentTracker: FragmentTracker, keyLoader: KeyLoader, logPrefix: string, playlistType: PlaylistLevelType);
252
- protected registerListeners(): void;
253
- protected unregisterListeners(): void;
254
258
  protected doTick(): void;
255
259
  protected onTickEnd(): void;
256
260
  startLoad(startPosition: number): void;
257
261
  stopLoad(): void;
258
- pauseBuffering(): void;
259
- resumeBuffering(): void;
260
262
  protected _streamEnded(bufferInfo: BufferInfo, levelDetails: LevelDetails): boolean;
261
263
  protected getLevelDetails(): LevelDetails | undefined;
262
264
  protected onMediaAttached(event: Events.MEDIA_ATTACHED, data: MediaAttachedData): void;
263
265
  protected onMediaDetaching(): void;
264
- protected onManifestLoading(): void;
265
- protected onError(event: Events.ERROR, data: ErrorData): void;
266
- protected onMediaSeeking: () => void;
267
- protected onMediaEnded: () => void;
266
+ protected onMediaSeeking(): void;
267
+ protected onMediaEnded(): void;
268
268
  protected onManifestLoaded(event: Events.MANIFEST_LOADED, data: ManifestLoadedData): void;
269
269
  protected onHandlerDestroying(): void;
270
270
  protected onHandlerDestroyed(): void;
@@ -284,7 +284,6 @@ export declare class BaseStreamController extends TaskLoop implements NetworkCom
284
284
  private doFragPartsLoad;
285
285
  private handleFragLoadError;
286
286
  protected _handleTransmuxerFlush(chunkMeta: ChunkMetadata): void;
287
- private shouldLoadParts;
288
287
  protected getCurrentContext(chunkMeta: ChunkMetadata): {
289
288
  frag: Fragment;
290
289
  part: Part | null;
@@ -354,20 +353,17 @@ export declare interface BufferCodecsData {
354
353
  audio?: Track;
355
354
  }
356
355
 
357
- export declare class BufferController extends Logger implements ComponentAPI {
356
+ export declare class BufferController implements ComponentAPI {
358
357
  private details;
359
358
  private _objectUrl;
360
359
  private operationQueue;
361
360
  private listeners;
362
361
  private hls;
363
- private fragmentTracker;
364
362
  bufferCodecEventsExpected: number;
365
363
  private _bufferCodecEventsTotal;
366
364
  media: HTMLMediaElement | null;
367
365
  mediaSource: MediaSource | null;
368
366
  private lastMpegAudioChunk;
369
- private blockedAudioAppend;
370
- private lastVideoAppendEnd;
371
367
  private appendSource;
372
368
  appendErrors: {
373
369
  audio: number;
@@ -377,7 +373,10 @@ export declare class BufferController extends Logger implements ComponentAPI {
377
373
  tracks: TrackSet;
378
374
  pendingTracks: TrackSet;
379
375
  sourceBuffer: SourceBuffers;
380
- 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);
381
380
  hasSourceTypes(): boolean;
382
381
  destroy(): void;
383
382
  protected registerListeners(): void;
@@ -392,11 +391,8 @@ export declare class BufferController extends Logger implements ComponentAPI {
392
391
  protected onBufferReset(): void;
393
392
  private resetBuffer;
394
393
  protected onBufferCodecs(event: Events.BUFFER_CODECS, data: BufferCodecsData): void;
395
- protected appendChangeType(type: SourceBufferName, mimeType: string): void;
396
- private blockAudio;
397
- private unblockAudio;
394
+ protected appendChangeType(type: any, mimeType: any): void;
398
395
  protected onBufferAppending(event: Events.BUFFER_APPENDING, eventData: BufferAppendingData): void;
399
- private getFlushOp;
400
396
  protected onBufferFlushing(event: Events.BUFFER_FLUSHING, data: BufferFlushingData): void;
401
397
  protected onFragParsed(event: Events.FRAG_PARSED, data: FragParsedData): void;
402
398
  private onFragChanged;
@@ -410,8 +406,8 @@ export declare class BufferController extends Logger implements ComponentAPI {
410
406
  * 'liveDurationInfinity` is set to `true`
411
407
  * More details: https://github.com/video-dev/hls.js/issues/355
412
408
  */
413
- private getDurationAndRange;
414
- private updateMediaSource;
409
+ private updateMediaElementDuration;
410
+ updateSeekableRange(levelDetails: any): void;
415
411
  protected checkPendingTracks(): void;
416
412
  protected createSourceBuffers(tracks: TrackSet): void;
417
413
  private _onMediaSourceOpen;
@@ -606,8 +602,6 @@ export declare class CMCDController implements ComponentAPI {
606
602
  * Apply CMCD data to a segment request
607
603
  */
608
604
  private applyFragmentData;
609
- private getNextFrag;
610
- private getNextPart;
611
605
  /**
612
606
  * The CMCD object type.
613
607
  */
@@ -641,12 +635,13 @@ export declare interface ComponentAPI {
641
635
  destroy(): void;
642
636
  }
643
637
 
644
- export declare class ContentSteeringController extends Logger implements NetworkComponentAPI {
638
+ export declare class ContentSteeringController implements NetworkComponentAPI {
645
639
  private readonly hls;
640
+ private log;
646
641
  private loader;
647
642
  private uri;
648
643
  private pathwayId;
649
- private _pathwayPriority;
644
+ private pathwayPriority;
650
645
  private timeToLoad;
651
646
  private reloadTimer;
652
647
  private updated;
@@ -659,9 +654,6 @@ export declare class ContentSteeringController extends Logger implements Network
659
654
  constructor(hls: Hls);
660
655
  private registerListeners;
661
656
  private unregisterListeners;
662
- pathways(): string[];
663
- get pathwayPriority(): string[] | null;
664
- set pathwayPriority(pathwayPriority: string[]);
665
657
  startLoad(): void;
666
658
  stopLoad(): void;
667
659
  clearTimeout(): void;
@@ -735,7 +727,6 @@ declare class Decrypter {
735
727
  private currentIV;
736
728
  private currentResult;
737
729
  private useSoftware;
738
- private enableSoftwareAES;
739
730
  constructor(config: HlsConfig, { removePKCS7Padding }?: {
740
731
  removePKCS7Padding?: boolean | undefined;
741
732
  });
@@ -743,19 +734,14 @@ declare class Decrypter {
743
734
  isSync(): boolean;
744
735
  flush(): Uint8Array | null;
745
736
  reset(): void;
746
- decrypt(data: Uint8Array | ArrayBuffer, key: ArrayBuffer, iv: ArrayBuffer, aesMode: DecrypterAesMode): Promise<ArrayBuffer>;
747
- softwareDecrypt(data: Uint8Array, key: ArrayBuffer, iv: ArrayBuffer, aesMode: DecrypterAesMode): ArrayBuffer | null;
748
- 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>;
749
740
  private onWebCryptoError;
750
741
  private getValidChunk;
751
742
  private logOnce;
752
743
  }
753
744
 
754
- declare const enum DecrypterAesMode {
755
- cbc = 0,
756
- ctr = 1
757
- }
758
-
759
745
  declare type DRMSystemConfiguration = {
760
746
  licenseUrl: string;
761
747
  serverCertificateUrl?: string;
@@ -801,7 +787,7 @@ export declare const enum ElementaryStreamTypes {
801
787
  * @class
802
788
  * @constructor
803
789
  */
804
- export declare class EMEController extends Logger implements ComponentAPI {
790
+ export declare class EMEController implements ComponentAPI {
805
791
  static CDMCleanupPromise: Promise<void> | void;
806
792
  private readonly hls;
807
793
  private readonly config;
@@ -812,6 +798,12 @@ export declare class EMEController extends Logger implements ComponentAPI {
812
798
  private mediaKeySessions;
813
799
  private keyIdToKeySessionPromise;
814
800
  private setMediaKeysQueue;
801
+ private onMediaEncrypted;
802
+ private onWaitingForKey;
803
+ private debug;
804
+ private log;
805
+ private warn;
806
+ private error;
815
807
  constructor(hls: Hls);
816
808
  destroy(): void;
817
809
  private registerListeners;
@@ -832,8 +824,8 @@ export declare class EMEController extends Logger implements ComponentAPI {
832
824
  private handleError;
833
825
  private getKeySystemForKeyPromise;
834
826
  private getKeySystemSelectionPromise;
835
- private onMediaEncrypted;
836
- private onWaitingForKey;
827
+ private _onMediaEncrypted;
828
+ private _onWaitingForKey;
837
829
  private attemptSetMediaKeys;
838
830
  private generateRequestWithPreferredKeySession;
839
831
  private onKeyStatusChange;
@@ -867,10 +859,13 @@ export declare const enum ErrorActionFlags {
867
859
  SwitchToSDR = 4
868
860
  }
869
861
 
870
- export declare class ErrorController extends Logger implements NetworkComponentAPI {
862
+ export declare class ErrorController implements NetworkComponentAPI {
871
863
  private readonly hls;
872
864
  private playlistError;
873
865
  private penalizedRenditions;
866
+ private log;
867
+ private warn;
868
+ private error;
874
869
  constructor(hls: Hls);
875
870
  private registerListeners;
876
871
  private unregisterListeners;
@@ -980,7 +975,6 @@ export declare enum Events {
980
975
  MEDIA_ATTACHED = "hlsMediaAttached",
981
976
  MEDIA_DETACHING = "hlsMediaDetaching",
982
977
  MEDIA_DETACHED = "hlsMediaDetached",
983
- MEDIA_ENDED = "hlsMediaEnded",
984
978
  BUFFER_RESET = "hlsBufferReset",
985
979
  BUFFER_CODECS = "hlsBufferCodecs",
986
980
  BUFFER_CREATED = "hlsBufferCreated",
@@ -1074,7 +1068,6 @@ export declare class FPSController implements ComponentAPI {
1074
1068
  protected unregisterListeners(): void;
1075
1069
  destroy(): void;
1076
1070
  protected onMediaAttaching(event: Events.MEDIA_ATTACHING, data: MediaAttachingData): void;
1077
- private onMediaDetaching;
1078
1071
  checkFPS(video: HTMLVideoElement, decodedFrames: number, droppedFrames: number): void;
1079
1072
  checkFPSInterval(): void;
1080
1073
  }
@@ -1257,7 +1250,6 @@ declare class FragmentTracker implements ComponentAPI {
1257
1250
  * If not found any Fragment, return null
1258
1251
  */
1259
1252
  getBufferedFrag(position: number, levelType: PlaylistLevelType): Fragment | null;
1260
- getFragAtPos(position: number, levelType: PlaylistLevelType, buffered?: boolean): Fragment | null;
1261
1253
  /**
1262
1254
  * Partial fragments effected by coded frame eviction will be removed
1263
1255
  * The browser will unload parts of the buffer to free up memory for new buffer data
@@ -1329,12 +1321,9 @@ declare class Hls implements HlsEventEmitter {
1329
1321
  * The configuration object provided on player instantiation.
1330
1322
  */
1331
1323
  readonly userConfig: Partial<HlsConfig>;
1332
- /**
1333
- * The logger functions used by this player instance, configured on player instantiation.
1334
- */
1335
- readonly logger: ILogger;
1336
1324
  private coreComponents;
1337
1325
  private networkControllers;
1326
+ private started;
1338
1327
  private _emitter;
1339
1328
  private _autoLevelCapping;
1340
1329
  private _maxHdcpLevel;
@@ -1421,11 +1410,11 @@ declare class Hls implements HlsEventEmitter {
1421
1410
  */
1422
1411
  stopLoad(): void;
1423
1412
  /**
1424
- * Resumes stream controller segment loading after `pauseBuffering` has been called.
1413
+ * Resumes stream controller segment loading if previously started.
1425
1414
  */
1426
1415
  resumeBuffering(): void;
1427
1416
  /**
1428
- * Prevents stream controller from loading new segments until `resumeBuffering` is called.
1417
+ * Stops stream controller segment loading without changing 'started' state like stopLoad().
1429
1418
  * This allows for media buffering to be paused without interupting playlist loading.
1430
1419
  */
1431
1420
  pauseBuffering(): void;
@@ -1570,7 +1559,6 @@ declare class Hls implements HlsEventEmitter {
1570
1559
  */
1571
1560
  get playingDate(): Date | null;
1572
1561
  get mainForwardBufferInfo(): BufferInfo | null;
1573
- get maxBufferLength(): number;
1574
1562
  /**
1575
1563
  * Find and select the best matching audio track, making a level switch when a Group change is necessary.
1576
1564
  * Updates `hls.config.audioPreference`. Returns the selected track, or null when no matching track is found.
@@ -1658,11 +1646,6 @@ declare class Hls implements HlsEventEmitter {
1658
1646
  * set to true when startLoad is called before MANIFEST_PARSED event
1659
1647
  */
1660
1648
  get forceStartLoad(): boolean;
1661
- /**
1662
- * ContentSteering pathwayPriority getter/setter
1663
- */
1664
- get pathwayPriority(): string[] | null;
1665
- set pathwayPriority(pathwayPriority: string[]);
1666
1649
  }
1667
1650
  export default Hls;
1668
1651
 
@@ -1723,7 +1706,6 @@ export declare interface HlsListeners {
1723
1706
  [Events.MEDIA_ATTACHED]: (event: Events.MEDIA_ATTACHED, data: MediaAttachedData) => void;
1724
1707
  [Events.MEDIA_DETACHING]: (event: Events.MEDIA_DETACHING) => void;
1725
1708
  [Events.MEDIA_DETACHED]: (event: Events.MEDIA_DETACHED) => void;
1726
- [Events.MEDIA_ENDED]: (event: Events.MEDIA_ENDED, data: MediaEndedData) => void;
1727
1709
  [Events.BUFFER_RESET]: (event: Events.BUFFER_RESET) => void;
1728
1710
  [Events.BUFFER_CODECS]: (event: Events.BUFFER_CODECS, data: BufferCodecsData) => void;
1729
1711
  [Events.BUFFER_CREATED]: (event: Events.BUFFER_CREATED, data: BufferCreatedData) => void;
@@ -2275,16 +2257,6 @@ export declare class LoadStats implements LoaderStats {
2275
2257
  buffering: HlsProgressivePerformanceTiming;
2276
2258
  }
2277
2259
 
2278
- export declare class Logger implements ILogger {
2279
- trace: ILogFunction;
2280
- debug: ILogFunction;
2281
- log: ILogFunction;
2282
- warn: ILogFunction;
2283
- info: ILogFunction;
2284
- error: ILogFunction;
2285
- constructor(label: string, logger: ILogger);
2286
- }
2287
-
2288
2260
  export declare type MainPlaylistType = AudioPlaylistType | 'VIDEO';
2289
2261
 
2290
2262
  export declare interface ManifestLoadedData {
@@ -2360,10 +2332,6 @@ export declare type MediaDecodingInfo = {
2360
2332
  error?: Error;
2361
2333
  };
2362
2334
 
2363
- export declare interface MediaEndedData {
2364
- stalled: boolean;
2365
- }
2366
-
2367
2335
  export declare type MediaKeyFunc = (keySystem: KeySystems, supportedConfigurations: MediaKeySystemConfiguration[]) => Promise<MediaKeySystemAccess>;
2368
2336
 
2369
2337
  export declare interface MediaKeySessionContext {
@@ -2433,8 +2401,6 @@ export declare type MP4RemuxerConfig = {
2433
2401
  export declare interface NetworkComponentAPI extends ComponentAPI {
2434
2402
  startLoad(startPosition: number): void;
2435
2403
  stopLoad(): void;
2436
- pauseBuffering?(): void;
2437
- resumeBuffering?(): void;
2438
2404
  }
2439
2405
 
2440
2406
  export declare const enum NetworkErrorAction {
@@ -2674,14 +2640,16 @@ declare class StreamController extends BaseStreamController implements NetworkCo
2674
2640
  private altAudio;
2675
2641
  private audioOnly;
2676
2642
  private fragPlaying;
2643
+ private onvplaying;
2644
+ private onvseeked;
2677
2645
  private fragLastKbps;
2678
2646
  private couldBacktrack;
2679
2647
  private backtrackFragment;
2680
2648
  private audioCodecSwitch;
2681
2649
  private videoBuffer;
2682
2650
  constructor(hls: Hls, fragmentTracker: FragmentTracker, keyLoader: KeyLoader);
2683
- protected registerListeners(): void;
2684
- protected unregisterListeners(): void;
2651
+ private _registerListeners;
2652
+ protected _unregisterListeners(): void;
2685
2653
  protected onHandlerDestroying(): void;
2686
2654
  startLoad(startPosition: number): void;
2687
2655
  stopLoad(): void;
@@ -2705,7 +2673,7 @@ declare class StreamController extends BaseStreamController implements NetworkCo
2705
2673
  protected onMediaDetaching(): void;
2706
2674
  private onMediaPlaying;
2707
2675
  private onMediaSeeked;
2708
- protected onManifestLoading(): void;
2676
+ private onManifestLoading;
2709
2677
  private onManifestParsed;
2710
2678
  private onLevelLoading;
2711
2679
  private onLevelLoaded;
@@ -2714,7 +2682,7 @@ declare class StreamController extends BaseStreamController implements NetworkCo
2714
2682
  private onAudioTrackSwitched;
2715
2683
  private onBufferCreated;
2716
2684
  private onFragBuffered;
2717
- protected onError(event: Events.ERROR, data: ErrorData): void;
2685
+ private onError;
2718
2686
  private checkBuffer;
2719
2687
  private onFragLoadEmergencyAborted;
2720
2688
  private onBufferFlushed;
@@ -2729,7 +2697,6 @@ declare class StreamController extends BaseStreamController implements NetworkCo
2729
2697
  private _handleTransmuxComplete;
2730
2698
  private _bufferInitSegment;
2731
2699
  getMainFwdBufferInfo(): BufferInfo | null;
2732
- get maxBufferLength(): number;
2733
2700
  private backtrack;
2734
2701
  private checkFragmentChanged;
2735
2702
  get nextLevel(): number;
@@ -2772,6 +2739,11 @@ declare class StyledUnicodeChar {
2772
2739
  isEmpty(): boolean;
2773
2740
  }
2774
2741
 
2742
+ declare interface SubtitleFragProcessed {
2743
+ success: boolean;
2744
+ frag: Fragment;
2745
+ }
2746
+
2775
2747
  export declare interface SubtitleFragProcessedData {
2776
2748
  success: boolean;
2777
2749
  frag: Fragment;
@@ -2796,21 +2768,22 @@ export declare class SubtitleStreamController extends BaseStreamController imple
2796
2768
  private mainDetails;
2797
2769
  constructor(hls: Hls, fragmentTracker: FragmentTracker, keyLoader: KeyLoader);
2798
2770
  protected onHandlerDestroying(): void;
2799
- protected registerListeners(): void;
2800
- protected unregisterListeners(): void;
2771
+ private _registerListeners;
2772
+ private _unregisterListeners;
2801
2773
  startLoad(startPosition: number): void;
2802
- protected onManifestLoading(): void;
2803
- protected onMediaDetaching(): void;
2804
- private onLevelLoaded;
2805
- private onSubtitleFragProcessed;
2806
- private onBufferFlushing;
2807
- private onFragBuffered;
2808
- protected onError(event: Events.ERROR, data: ErrorData): void;
2809
- private onSubtitleTracksUpdated;
2810
- private onSubtitleTrackSwitch;
2811
- 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;
2812
2784
  _handleFragmentLoadComplete(fragLoadedData: FragLoadedData): void;
2813
2785
  doTick(): void;
2786
+ protected getMaxBufferLength(mainBufferLength?: number): number;
2814
2787
  protected loadFragment(frag: Fragment, level: Level, targetBufferTime: number): void;
2815
2788
  get mediaBufferTimeRanges(): Bufferable;
2816
2789
  }
@@ -2824,10 +2797,10 @@ export declare class SubtitleTrackController extends BasePlaylistController {
2824
2797
  private currentTrack;
2825
2798
  private selectDefaultTrack;
2826
2799
  private queuedDefaultTrack;
2800
+ private asyncPollTrackChange;
2827
2801
  private useTextTrackPolling;
2828
2802
  private subtitlePollingInterval;
2829
2803
  private _subtitleDisplay;
2830
- private asyncPollTrackChange;
2831
2804
  constructor(hls: Hls);
2832
2805
  destroy(): void;
2833
2806
  get subtitleDisplay(): boolean;
@@ -2912,12 +2885,12 @@ export declare interface SubtitleTrackSwitchData {
2912
2885
  * we are limiting the task execution per call stack to exactly one, but scheduling/post-poning further
2913
2886
  * task processing on the next main loop iteration (also known as "next tick" in the Node/JS runtime lingo).
2914
2887
  */
2915
- declare class TaskLoop extends Logger {
2888
+ declare class TaskLoop {
2916
2889
  private readonly _boundTick;
2917
2890
  private _tickTimer;
2918
2891
  private _tickInterval;
2919
2892
  private _tickCallCount;
2920
- constructor(label: string, logger: ILogger);
2893
+ constructor();
2921
2894
  destroy(): void;
2922
2895
  protected onHandlerDestroying(): void;
2923
2896
  protected onHandlerDestroyed(): void;
@@ -3048,6 +3021,10 @@ export declare interface TrackSet {
3048
3021
  audiovideo?: Track;
3049
3022
  }
3050
3023
 
3024
+ declare interface TrackSwitchedData {
3025
+ id: number;
3026
+ }
3027
+
3051
3028
  declare class TransmuxerInterface {
3052
3029
  error: Error | null;
3053
3030
  private hls;