hls.js 1.6.0-beta.1.0.canary.10817 → 1.6.0-beta.1.0.canary.10819

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/hls.d.mts CHANGED
@@ -1175,7 +1175,8 @@ export declare enum Events {
1175
1175
  INTERSTITIAL_ASSET_ERROR = "hlsInterstitialAssetError",
1176
1176
  INTERSTITIAL_ENDED = "hlsInterstitialEnded",
1177
1177
  INTERSTITIALS_PRIMARY_RESUMED = "hlsInterstitialsPrimaryResumed",
1178
- PLAYOUT_LIMIT_REACHED = "hlsPlayoutLimitReached"
1178
+ PLAYOUT_LIMIT_REACHED = "hlsPlayoutLimitReached",
1179
+ EVENT_CUE_ENTER = "hlsEventCueEnter"
1179
1180
  }
1180
1181
 
1181
1182
  export declare class EwmaBandWidthEstimator {
@@ -2034,6 +2035,7 @@ export declare interface HlsListeners {
2034
2035
  [Events.INTERSTITIAL_ENDED]: (event: Events.INTERSTITIAL_ENDED, data: InterstitialEndedData) => void;
2035
2036
  [Events.INTERSTITIALS_PRIMARY_RESUMED]: (event: Events.INTERSTITIALS_PRIMARY_RESUMED, data: InterstitialsPrimaryResumed) => void;
2036
2037
  [Events.PLAYOUT_LIMIT_REACHED]: (event: Events.PLAYOUT_LIMIT_REACHED, data: {}) => void;
2038
+ [Events.EVENT_CUE_ENTER]: (event: Events.EVENT_CUE_ENTER, data: {}) => void;
2037
2039
  }
2038
2040
 
2039
2041
  export declare type HlsLoadPolicies = {
@@ -2299,6 +2301,7 @@ export declare class InterstitialsController extends Logger implements NetworkCo
2299
2301
  private transferMediaTo;
2300
2302
  private onPlay;
2301
2303
  private onSeeking;
2304
+ private onInterstitialCueEnter;
2302
2305
  private onTimeupdate;
2303
2306
  private checkStart;
2304
2307
  private advanceAfterAssetEnded;
package/dist/hls.d.ts CHANGED
@@ -1175,7 +1175,8 @@ export declare enum Events {
1175
1175
  INTERSTITIAL_ASSET_ERROR = "hlsInterstitialAssetError",
1176
1176
  INTERSTITIAL_ENDED = "hlsInterstitialEnded",
1177
1177
  INTERSTITIALS_PRIMARY_RESUMED = "hlsInterstitialsPrimaryResumed",
1178
- PLAYOUT_LIMIT_REACHED = "hlsPlayoutLimitReached"
1178
+ PLAYOUT_LIMIT_REACHED = "hlsPlayoutLimitReached",
1179
+ EVENT_CUE_ENTER = "hlsEventCueEnter"
1179
1180
  }
1180
1181
 
1181
1182
  export declare class EwmaBandWidthEstimator {
@@ -2034,6 +2035,7 @@ export declare interface HlsListeners {
2034
2035
  [Events.INTERSTITIAL_ENDED]: (event: Events.INTERSTITIAL_ENDED, data: InterstitialEndedData) => void;
2035
2036
  [Events.INTERSTITIALS_PRIMARY_RESUMED]: (event: Events.INTERSTITIALS_PRIMARY_RESUMED, data: InterstitialsPrimaryResumed) => void;
2036
2037
  [Events.PLAYOUT_LIMIT_REACHED]: (event: Events.PLAYOUT_LIMIT_REACHED, data: {}) => void;
2038
+ [Events.EVENT_CUE_ENTER]: (event: Events.EVENT_CUE_ENTER, data: {}) => void;
2037
2039
  }
2038
2040
 
2039
2041
  export declare type HlsLoadPolicies = {
@@ -2299,6 +2301,7 @@ export declare class InterstitialsController extends Logger implements NetworkCo
2299
2301
  private transferMediaTo;
2300
2302
  private onPlay;
2301
2303
  private onSeeking;
2304
+ private onInterstitialCueEnter;
2302
2305
  private onTimeupdate;
2303
2306
  private checkStart;
2304
2307
  private advanceAfterAssetEnded;
package/dist/hls.js CHANGED
@@ -852,6 +852,7 @@
852
852
  Events["INTERSTITIAL_ENDED"] = "hlsInterstitialEnded";
853
853
  Events["INTERSTITIALS_PRIMARY_RESUMED"] = "hlsInterstitialsPrimaryResumed";
854
854
  Events["PLAYOUT_LIMIT_REACHED"] = "hlsPlayoutLimitReached";
855
+ Events["EVENT_CUE_ENTER"] = "hlsEventCueEnter";
855
856
  return Events;
856
857
  }({});
857
858
 
@@ -1057,7 +1058,7 @@
1057
1058
  // Some browsers don't allow to use bind on console object anyway
1058
1059
  // fallback to default if needed
1059
1060
  try {
1060
- newLogger.log("Debug logs enabled for \"" + context + "\" in hls.js version " + "1.6.0-beta.1.0.canary.10817");
1061
+ newLogger.log("Debug logs enabled for \"" + context + "\" in hls.js version " + "1.6.0-beta.1.0.canary.10819");
1061
1062
  } catch (e) {
1062
1063
  /* log fn threw an exception. All logger methods are no-ops. */
1063
1064
  return createLogger();
@@ -9044,7 +9045,7 @@
9044
9045
  };
9045
9046
  _proto.loadFragment = function loadFragment(frag, level, targetBufferTime) {
9046
9047
  var config = this.hls.config;
9047
- if (config.interstitialsController && config.enableInterstitialPlayback !== false) {
9048
+ if (config.interstitialsController && config.enableInterstitialPlayback !== false && frag.type !== PlaylistLevelType.SUBTITLE) {
9048
9049
  // Do not load fragments outside the buffering schedule segment
9049
9050
  var interstitials = this.hls.interstitialsManager;
9050
9051
  var bufferingItem = interstitials == null ? void 0 : interstitials.bufferingItem;
@@ -16296,7 +16297,7 @@
16296
16297
  return !remuxResult.audio && !remuxResult.video && !remuxResult.text && !remuxResult.id3 && !remuxResult.initSegment;
16297
16298
  }
16298
16299
 
16299
- var version = "1.6.0-beta.1.0.canary.10817";
16300
+ var version = "1.6.0-beta.1.0.canary.10819";
16300
16301
 
16301
16302
  // ensure the worker ends up in the bundle
16302
16303
  // If the worker should not be included this gets aliased to empty.js
@@ -24005,6 +24006,7 @@
24005
24006
  hls.on(Events.AUDIO_TRACK_UPDATED, this.onAudioTrackUpdated, this);
24006
24007
  hls.on(Events.SUBTITLE_TRACK_SWITCH, this.onSubtitleTrackSwitch, this);
24007
24008
  hls.on(Events.SUBTITLE_TRACK_UPDATED, this.onSubtitleTrackUpdated, this);
24009
+ hls.on(Events.EVENT_CUE_ENTER, this.onInterstitialCueEnter, this);
24008
24010
  hls.on(Events.ASSET_LIST_LOADED, this.onAssetListLoaded, this);
24009
24011
  hls.on(Events.BUFFER_APPENDED, this.onBufferAppended, this);
24010
24012
  hls.on(Events.BUFFER_FLUSHED, this.onBufferFlushed, this);
@@ -24027,6 +24029,7 @@
24027
24029
  hls.off(Events.AUDIO_TRACK_UPDATED, this.onAudioTrackUpdated, this);
24028
24030
  hls.off(Events.SUBTITLE_TRACK_SWITCH, this.onSubtitleTrackSwitch, this);
24029
24031
  hls.off(Events.SUBTITLE_TRACK_UPDATED, this.onSubtitleTrackUpdated, this);
24032
+ hls.off(Events.EVENT_CUE_ENTER, this.onInterstitialCueEnter, this);
24030
24033
  hls.off(Events.ASSET_LIST_LOADED, this.onAssetListLoaded, this);
24031
24034
  hls.off(Events.BUFFER_CODECS, this.onBufferCodecs, this);
24032
24035
  hls.off(Events.BUFFER_APPENDED, this.onBufferAppended, this);
@@ -24212,6 +24215,9 @@
24212
24215
  }
24213
24216
  player.attachMedia(dataToAttach);
24214
24217
  };
24218
+ _proto.onInterstitialCueEnter = function onInterstitialCueEnter() {
24219
+ this.onTimeupdate();
24220
+ };
24215
24221
  // Scheduling methods
24216
24222
  _proto.checkStart = function checkStart() {
24217
24223
  var schedule = this.schedule;
@@ -26007,7 +26013,7 @@
26007
26013
  track.mode = mode;
26008
26014
  }
26009
26015
  }
26010
- function clearCurrentCues(track) {
26016
+ function clearCurrentCues(track, enterHandler) {
26011
26017
  // When track.mode is disabled, track.cues will be null.
26012
26018
  // To guarantee the removal of cues, we need to temporarily
26013
26019
  // change the mode to hidden
@@ -26017,6 +26023,9 @@
26017
26023
  }
26018
26024
  if (track.cues) {
26019
26025
  for (var i = track.cues.length; i--;) {
26026
+ if (enterHandler) {
26027
+ track.cues[i].removeEventListener('enter', enterHandler);
26028
+ }
26020
26029
  track.removeCue(track.cues[i]);
26021
26030
  }
26022
26031
  }
@@ -30553,11 +30562,18 @@
30553
30562
  }
30554
30563
  var ID3TrackController = /*#__PURE__*/function () {
30555
30564
  function ID3TrackController(hls) {
30565
+ var _this = this;
30556
30566
  this.hls = void 0;
30557
30567
  this.id3Track = null;
30558
30568
  this.media = null;
30559
30569
  this.dateRangeCuesAppended = {};
30560
30570
  this.removeCues = true;
30571
+ this.onEventCueEnter = function () {
30572
+ if (!_this.hls) {
30573
+ return;
30574
+ }
30575
+ _this.hls.trigger(Events.EVENT_CUE_ENTER, {});
30576
+ };
30561
30577
  this.hls = hls;
30562
30578
  this._registerListeners();
30563
30579
  }
@@ -30568,11 +30584,12 @@
30568
30584
  this.media = null;
30569
30585
  this.dateRangeCuesAppended = {};
30570
30586
  // @ts-ignore
30571
- this.hls = null;
30587
+ this.hls = this.onEventCueEnter = null;
30572
30588
  };
30573
30589
  _proto._registerListeners = function _registerListeners() {
30574
30590
  var hls = this.hls;
30575
30591
  hls.on(Events.MEDIA_ATTACHING, this.onMediaAttaching, this);
30592
+ hls.on(Events.MEDIA_ATTACHED, this.onMediaAttached, this);
30576
30593
  hls.on(Events.MEDIA_DETACHING, this.onMediaDetaching, this);
30577
30594
  hls.on(Events.MANIFEST_LOADING, this.onManifestLoading, this);
30578
30595
  hls.on(Events.FRAG_PARSING_METADATA, this.onFragParsingMetadata, this);
@@ -30583,16 +30600,15 @@
30583
30600
  _proto._unregisterListeners = function _unregisterListeners() {
30584
30601
  var hls = this.hls;
30585
30602
  hls.off(Events.MEDIA_ATTACHING, this.onMediaAttaching, this);
30603
+ hls.off(Events.MEDIA_ATTACHED, this.onMediaAttached, this);
30586
30604
  hls.off(Events.MEDIA_DETACHING, this.onMediaDetaching, this);
30587
30605
  hls.off(Events.MANIFEST_LOADING, this.onManifestLoading, this);
30588
30606
  hls.off(Events.FRAG_PARSING_METADATA, this.onFragParsingMetadata, this);
30589
30607
  hls.off(Events.BUFFER_FLUSHING, this.onBufferFlushing, this);
30590
30608
  hls.off(Events.LEVEL_UPDATED, this.onLevelUpdated, this);
30591
30609
  hls.off(Events.LEVEL_PTS_UPDATED, this.onLevelPtsUpdated, this);
30592
- }
30593
-
30610
+ };
30594
30611
  // Add ID3 metatadata text track.
30595
- ;
30596
30612
  _proto.onMediaAttaching = function onMediaAttaching(event, data) {
30597
30613
  var _data$overrides;
30598
30614
  this.media = data.media;
@@ -30600,6 +30616,12 @@
30600
30616
  this.removeCues = false;
30601
30617
  }
30602
30618
  };
30619
+ _proto.onMediaAttached = function onMediaAttached() {
30620
+ var details = this.hls.latestLevelDetails;
30621
+ if (details) {
30622
+ this.updateDateRangeCues(details);
30623
+ }
30624
+ };
30603
30625
  _proto.onMediaDetaching = function onMediaDetaching(event, data) {
30604
30626
  this.media = null;
30605
30627
  var transferringMedia = !!data.transferMedia;
@@ -30608,7 +30630,7 @@
30608
30630
  }
30609
30631
  if (this.id3Track) {
30610
30632
  if (this.removeCues) {
30611
- clearCurrentCues(this.id3Track);
30633
+ clearCurrentCues(this.id3Track, this.onEventCueEnter);
30612
30634
  }
30613
30635
  this.id3Track = null;
30614
30636
  }
@@ -30740,7 +30762,7 @@
30740
30762
  }
30741
30763
  };
30742
30764
  _proto.updateDateRangeCues = function updateDateRangeCues(details, removeOldCues) {
30743
- var _this = this;
30765
+ var _this2 = this;
30744
30766
  if (!this.media || !details.hasProgramDateTime || !this.hls.config.enableDateRangeMetadataCues) {
30745
30767
  return;
30746
30768
  }
@@ -30761,7 +30783,9 @@
30761
30783
  delete dateRangeCuesAppended[id];
30762
30784
  Object.keys(cues).forEach(function (key) {
30763
30785
  try {
30764
- id3Track.removeCue(cues[key]);
30786
+ var cue = cues[key];
30787
+ cue.removeEventListener('enter', _this2.onEventCueEnter);
30788
+ id3Track.removeCue(cue);
30765
30789
  } catch (e) {
30766
30790
  /* no-op */
30767
30791
  }
@@ -30835,14 +30859,20 @@
30835
30859
  if (isSCTE35Attribute(key)) {
30836
30860
  data = hexToArrayBuffer(data);
30837
30861
  }
30838
- var _cue = createCueWithDataFields(Cue, startTime, endTime, {
30862
+ var payload = {
30839
30863
  key: key,
30840
30864
  data: data
30841
- }, MetadataSchema.dateRange);
30865
+ };
30866
+ var _cue = createCueWithDataFields(Cue, startTime, endTime, payload, MetadataSchema.dateRange);
30842
30867
  if (_cue) {
30843
30868
  _cue.id = id;
30844
- _this.id3Track.addCue(_cue);
30869
+ _this2.id3Track.addCue(_cue);
30845
30870
  cues[key] = _cue;
30871
+ if (_this2.hls.config.interstitialsController) {
30872
+ if (key === 'X-ASSET-LIST' || key === 'X-ASSET-URL') {
30873
+ _cue.addEventListener('enter', _this2.onEventCueEnter);
30874
+ }
30875
+ }
30846
30876
  }
30847
30877
  }
30848
30878
  }
package/dist/hls.js.d.ts CHANGED
@@ -1175,7 +1175,8 @@ export declare enum Events {
1175
1175
  INTERSTITIAL_ASSET_ERROR = "hlsInterstitialAssetError",
1176
1176
  INTERSTITIAL_ENDED = "hlsInterstitialEnded",
1177
1177
  INTERSTITIALS_PRIMARY_RESUMED = "hlsInterstitialsPrimaryResumed",
1178
- PLAYOUT_LIMIT_REACHED = "hlsPlayoutLimitReached"
1178
+ PLAYOUT_LIMIT_REACHED = "hlsPlayoutLimitReached",
1179
+ EVENT_CUE_ENTER = "hlsEventCueEnter"
1179
1180
  }
1180
1181
 
1181
1182
  export declare class EwmaBandWidthEstimator {
@@ -2034,6 +2035,7 @@ export declare interface HlsListeners {
2034
2035
  [Events.INTERSTITIAL_ENDED]: (event: Events.INTERSTITIAL_ENDED, data: InterstitialEndedData) => void;
2035
2036
  [Events.INTERSTITIALS_PRIMARY_RESUMED]: (event: Events.INTERSTITIALS_PRIMARY_RESUMED, data: InterstitialsPrimaryResumed) => void;
2036
2037
  [Events.PLAYOUT_LIMIT_REACHED]: (event: Events.PLAYOUT_LIMIT_REACHED, data: {}) => void;
2038
+ [Events.EVENT_CUE_ENTER]: (event: Events.EVENT_CUE_ENTER, data: {}) => void;
2037
2039
  }
2038
2040
 
2039
2041
  export declare type HlsLoadPolicies = {
@@ -2299,6 +2301,7 @@ export declare class InterstitialsController extends Logger implements NetworkCo
2299
2301
  private transferMediaTo;
2300
2302
  private onPlay;
2301
2303
  private onSeeking;
2304
+ private onInterstitialCueEnter;
2302
2305
  private onTimeupdate;
2303
2306
  private checkStart;
2304
2307
  private advanceAfterAssetEnded;