bigscreen-player 10.11.1 → 10.12.0

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.
@@ -1,5 +1,5 @@
1
1
  import { fromXML, generateISD, renderHTML } from 'smp-imsc';
2
- import { U as Utils, a as DebugTool, P as Plugins, D as DOMHelpers } from './main-18f937fd.js';
2
+ import { U as Utils, a as DebugTool, P as Plugins, D as DOMHelpers } from './main-52f08c0c.js';
3
3
  import 'tslib';
4
4
 
5
5
  function EmbeddedSubtitles(mediaPlayer, autoStart, parentElement, _mediaSources, defaultStyleOpts) {
@@ -1,5 +1,5 @@
1
1
  import { fromXML, generateISD, renderHTML } from 'smp-imsc';
2
- import { f as findSegmentTemplate, L as LoadUrl, a as DebugTool, P as Plugins, U as Utils, D as DOMHelpers } from './main-18f937fd.js';
2
+ import { f as findSegmentTemplate, L as LoadUrl, a as DebugTool, P as Plugins, U as Utils, D as DOMHelpers } from './main-52f08c0c.js';
3
3
  import 'tslib';
4
4
 
5
5
  const SEGMENTS_BUFFER_SIZE = 3;
@@ -1,4 +1,4 @@
1
- import { D as DOMHelpers, a as DebugTool, P as Plugins, L as LoadUrl, T as TransportControlPosition } from './main-18f937fd.js';
1
+ import { D as DOMHelpers, a as DebugTool, P as Plugins, L as LoadUrl, T as TransportControlPosition } from './main-52f08c0c.js';
2
2
  import 'tslib';
3
3
 
4
4
  /**
@@ -5710,7 +5710,7 @@ BasicStrategy.getLiveSupport = () => LiveSupport.SEEKABLE;
5710
5710
  function StrategyPicker() {
5711
5711
  return new Promise((resolve, reject) => {
5712
5712
  if (window.bigscreenPlayer.playbackStrategy === PlaybackStrategy.MSE) {
5713
- return import('./msestrategy-375cdc09.js')
5713
+ return import('./msestrategy-8d0d678c.js')
5714
5714
  .then(({ default: MSEStrategy }) => resolve(MSEStrategy))
5715
5715
  .catch((reason) => {
5716
5716
  const error = new Error(isError(reason) ? reason.message : undefined);
@@ -6020,6 +6020,12 @@ var Plugins = {
6020
6020
  },
6021
6021
  };
6022
6022
 
6023
+ const AbortStages = {
6024
+ DATA_LOADED: "bigscreen-player-data-loaded",
6025
+ PLAYER_COMPONENT: "bigscreen-player-player-component",
6026
+ STRATEGY: "bigscreen-player-strategy",
6027
+ };
6028
+
6023
6029
  /**
6024
6030
  * @import { InitData } from './types.d.ts'
6025
6031
  * @import { MediaSources } from './mediasources'
@@ -6051,7 +6057,8 @@ function PlayerComponent(
6051
6057
  mediaSources,
6052
6058
  stateUpdateCallback,
6053
6059
  errorCallback,
6054
- audioDescribedCallback
6060
+ audioDescribedCallback,
6061
+ abortSignal
6055
6062
  ) {
6056
6063
  let setSubtitlesState;
6057
6064
  let _stateUpdateCallback = stateUpdateCallback;
@@ -6067,10 +6074,13 @@ function PlayerComponent(
6067
6074
 
6068
6075
  StrategyPicker()
6069
6076
  .then((strategy) => {
6077
+ abortSignal.throwIfAborted(AbortStages.PLAYER_COMPONENT);
6078
+
6070
6079
  playbackStrategy = strategy(
6071
6080
  mediaSources,
6072
6081
  mediaKind,
6073
6082
  playbackElement,
6083
+ abortSignal,
6074
6084
  bigscreenPlayerData.media.isUHD,
6075
6085
  bigscreenPlayerData.media.playerSettings,
6076
6086
  {
@@ -6499,7 +6509,7 @@ const PauseTriggers = {
6499
6509
  DEVICE: 3,
6500
6510
  };
6501
6511
 
6502
- var Version = "10.11.1";
6512
+ var Version = "10.12.0";
6503
6513
 
6504
6514
  /* eslint-disable no-use-before-define */
6505
6515
 
@@ -7685,7 +7695,7 @@ function Subtitles(mediaPlayer, autoStart, playbackElement, defaultStyleOpts, me
7685
7695
 
7686
7696
  if (available()) {
7687
7697
  if (useLegacySubs) {
7688
- import('./legacysubtitles-e1a136df.js')
7698
+ import('./legacysubtitles-ed885f09.js')
7689
7699
  .then(({ default: LegacySubtitles }) => {
7690
7700
  subtitlesContainer = LegacySubtitles(mediaPlayer, autoStart, playbackElement, mediaSources, defaultStyleOpts);
7691
7701
  callback(subtitlesEnabled);
@@ -7694,7 +7704,7 @@ function Subtitles(mediaPlayer, autoStart, playbackElement, defaultStyleOpts, me
7694
7704
  Plugins.interface.onSubtitlesDynamicLoadError();
7695
7705
  });
7696
7706
  } else if (embeddedSubs) {
7697
- import('./embeddedsubtitles-7c8c8a36.js')
7707
+ import('./embeddedsubtitles-1e9ec72f.js')
7698
7708
  .then(({ default: EmbeddedSubtitles }) => {
7699
7709
  subtitlesContainer = EmbeddedSubtitles(
7700
7710
  mediaPlayer,
@@ -7709,7 +7719,7 @@ function Subtitles(mediaPlayer, autoStart, playbackElement, defaultStyleOpts, me
7709
7719
  Plugins.interface.onSubtitlesDynamicLoadError();
7710
7720
  });
7711
7721
  } else {
7712
- import('./imscsubtitles-f6c1960c.js')
7722
+ import('./imscsubtitles-eeba00ac.js')
7713
7723
  .then(({ default: IMSCSubtitles }) => {
7714
7724
  subtitlesContainer = IMSCSubtitles(mediaPlayer, autoStart, playbackElement, mediaSources, defaultStyleOpts);
7715
7725
  callback(subtitlesEnabled);
@@ -7812,6 +7822,26 @@ const Timeline = {
7812
7822
  PRESENTATION_TIME: "presentationTime",
7813
7823
  };
7814
7824
 
7825
+ class AbortError extends Error {
7826
+ constructor(abortStage) {
7827
+ super(`bigscreen-player aborted at ${abortStage}`);
7828
+ this.name = "AbortError";
7829
+ }
7830
+ }
7831
+ class AbortSignal {
7832
+ constructor() {
7833
+ this.aborted = false;
7834
+ }
7835
+ throwIfAborted(abortStage) {
7836
+ if (!this.aborted)
7837
+ return;
7838
+ throw new AbortError(abortStage);
7839
+ }
7840
+ abort() {
7841
+ this.aborted = true;
7842
+ }
7843
+ }
7844
+
7815
7845
  /**
7816
7846
  * @module bigscreenplayer/bigscreenplayer
7817
7847
  */
@@ -7846,6 +7876,8 @@ function BigscreenPlayer() {
7846
7876
 
7847
7877
  const END_OF_STREAM_TOLERANCE = 10;
7848
7878
 
7879
+ const abortSignal = new AbortSignal();
7880
+
7849
7881
  function mediaStateUpdateCallback(evt) {
7850
7882
  if (evt.timeUpdate) {
7851
7883
  CallCallbacks(_callbacks.timeUpdate, {
@@ -7899,6 +7931,8 @@ function BigscreenPlayer() {
7899
7931
  }
7900
7932
 
7901
7933
  function bigscreenPlayerDataLoaded({ media, enableSubtitles, enableAudioDescribed }) {
7934
+ abortSignal.throwIfAborted(AbortStages.DATA_LOADED);
7935
+
7902
7936
  const initialPresentationTime =
7903
7937
  initialPlaybackTime == null ? undefined : convertPlaybackTimeToPresentationTimeInSeconds(initialPlaybackTime);
7904
7938
 
@@ -7913,7 +7947,8 @@ function BigscreenPlayer() {
7913
7947
  mediaSources,
7914
7948
  mediaStateUpdateCallback,
7915
7949
  _callbacks.playerError,
7916
- callAudioDescribedCallbacks
7950
+ callAudioDescribedCallbacks,
7951
+ abortSignal
7917
7952
  );
7918
7953
 
7919
7954
  readyHelper = ReadyHelper(
@@ -8104,6 +8139,8 @@ function BigscreenPlayer() {
8104
8139
  * @name tearDown
8105
8140
  */
8106
8141
  tearDown() {
8142
+ abortSignal.abort();
8143
+
8107
8144
  if (subtitles) {
8108
8145
  subtitles.tearDown();
8109
8146
  subtitles = undefined;
package/dist/esm/main.js CHANGED
@@ -1,2 +1,2 @@
1
- export { B as BigscreenPlayer, a as DebugTool, E as EntryCategory, b as LiveSupport, c as ManifestType, M as MediaKinds, d as MediaState, g as MockBigscreenPlayer, h as PauseTriggers, i as PlaybackStrategy, k as Timeline, j as TransferFormat, T as TransportControlPosition, W as WindowTypes, l as isMessage, m as isMetric, n as isTrace } from './main-18f937fd.js';
1
+ export { B as BigscreenPlayer, a as DebugTool, E as EntryCategory, b as LiveSupport, c as ManifestType, M as MediaKinds, d as MediaState, g as MockBigscreenPlayer, h as PauseTriggers, i as PlaybackStrategy, k as Timeline, j as TransferFormat, T as TransportControlPosition, W as WindowTypes, l as isMessage, m as isMetric, n as isTrace } from './main-52f08c0c.js';
2
2
  import 'tslib';
@@ -1,5 +1,5 @@
1
1
  import { MediaPlayer } from 'dashjs/index';
2
- import { U as Utils, M as MediaKinds, b as LiveSupport, a as DebugTool, c as ManifestType, P as Plugins, d as MediaState, e as autoResumeAtStartOfRange, D as DOMHelpers } from './main-18f937fd.js';
2
+ import { U as Utils, M as MediaKinds, b as LiveSupport, a as DebugTool, c as ManifestType, P as Plugins, d as MediaState, e as autoResumeAtStartOfRange, D as DOMHelpers } from './main-52f08c0c.js';
3
3
  import 'tslib';
4
4
 
5
5
  function filter(manifest, representationOptions) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "bigscreen-player",
3
- "version": "10.11.1",
3
+ "version": "10.12.0",
4
4
  "type": "module",
5
5
  "description": "Simplified media playback for bigscreen devices.",
6
6
  "main": "dist/esm/main.js",