rx-player 4.3.0-dev.2025012900 → 4.3.0-dev.2025021300

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 (87) hide show
  1. package/CHANGELOG.md +4 -1
  2. package/VERSION +1 -1
  3. package/dist/commonjs/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
  4. package/dist/commonjs/__GENERATED_CODE/embedded_worker.js +1 -1
  5. package/dist/commonjs/compat/remove_cue.d.ts +2 -1
  6. package/dist/commonjs/compat/remove_cue.d.ts.map +1 -1
  7. package/dist/commonjs/core/main/worker/content_preparer.d.ts +72 -1
  8. package/dist/commonjs/core/main/worker/content_preparer.d.ts.map +1 -1
  9. package/dist/commonjs/core/main/worker/content_preparer.js +72 -14
  10. package/dist/commonjs/main_thread/api/public_api.d.ts.map +1 -1
  11. package/dist/commonjs/main_thread/api/public_api.js +11 -11
  12. package/dist/commonjs/main_thread/api/utils.d.ts +1 -2
  13. package/dist/commonjs/main_thread/api/utils.d.ts.map +1 -1
  14. package/dist/commonjs/main_thread/api/utils.js +2 -3
  15. package/dist/commonjs/main_thread/init/directfile_content_initializer.js +1 -1
  16. package/dist/commonjs/main_thread/init/media_source_content_initializer.d.ts.map +1 -1
  17. package/dist/commonjs/main_thread/init/media_source_content_initializer.js +6 -3
  18. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.d.ts.map +1 -1
  19. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.js +3 -7
  20. package/dist/commonjs/main_thread/init/types.d.ts +3 -2
  21. package/dist/commonjs/main_thread/init/types.d.ts.map +1 -1
  22. package/dist/commonjs/main_thread/init/utils/get_loaded_reference.d.ts +1 -3
  23. package/dist/commonjs/main_thread/init/utils/get_loaded_reference.d.ts.map +1 -1
  24. package/dist/commonjs/main_thread/init/utils/get_loaded_reference.js +4 -5
  25. package/dist/commonjs/main_thread/init/utils/stream_events_emitter/stream_events_emitter.d.ts +1 -4
  26. package/dist/commonjs/main_thread/init/utils/stream_events_emitter/stream_events_emitter.d.ts.map +1 -1
  27. package/dist/commonjs/main_thread/init/utils/stream_events_emitter/stream_events_emitter.js +3 -5
  28. package/dist/commonjs/main_thread/tracks_store/tracks_store.d.ts +2 -2
  29. package/dist/commonjs/main_thread/tracks_store/tracks_store.d.ts.map +1 -1
  30. package/dist/commonjs/main_thread/tracks_store/tracks_store.js +16 -22
  31. package/dist/commonjs/manifest/utils.js +1 -1
  32. package/dist/commonjs/parsers/manifest/dash/common/parse_adaptation_sets.js +1 -1
  33. package/dist/es2017/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
  34. package/dist/es2017/__GENERATED_CODE/embedded_worker.js +1 -1
  35. package/dist/es2017/compat/remove_cue.d.ts +2 -1
  36. package/dist/es2017/compat/remove_cue.d.ts.map +1 -1
  37. package/dist/es2017/core/main/worker/content_preparer.d.ts +72 -1
  38. package/dist/es2017/core/main/worker/content_preparer.d.ts.map +1 -1
  39. package/dist/es2017/core/main/worker/content_preparer.js +71 -13
  40. package/dist/es2017/main_thread/api/public_api.d.ts.map +1 -1
  41. package/dist/es2017/main_thread/api/public_api.js +11 -11
  42. package/dist/es2017/main_thread/api/utils.d.ts +1 -2
  43. package/dist/es2017/main_thread/api/utils.d.ts.map +1 -1
  44. package/dist/es2017/main_thread/api/utils.js +2 -3
  45. package/dist/es2017/main_thread/init/directfile_content_initializer.js +1 -1
  46. package/dist/es2017/main_thread/init/media_source_content_initializer.d.ts.map +1 -1
  47. package/dist/es2017/main_thread/init/media_source_content_initializer.js +6 -3
  48. package/dist/es2017/main_thread/init/multi_thread_content_initializer.d.ts.map +1 -1
  49. package/dist/es2017/main_thread/init/multi_thread_content_initializer.js +3 -7
  50. package/dist/es2017/main_thread/init/types.d.ts +3 -2
  51. package/dist/es2017/main_thread/init/types.d.ts.map +1 -1
  52. package/dist/es2017/main_thread/init/utils/get_loaded_reference.d.ts +1 -3
  53. package/dist/es2017/main_thread/init/utils/get_loaded_reference.d.ts.map +1 -1
  54. package/dist/es2017/main_thread/init/utils/get_loaded_reference.js +4 -5
  55. package/dist/es2017/main_thread/init/utils/stream_events_emitter/stream_events_emitter.d.ts +1 -4
  56. package/dist/es2017/main_thread/init/utils/stream_events_emitter/stream_events_emitter.d.ts.map +1 -1
  57. package/dist/es2017/main_thread/init/utils/stream_events_emitter/stream_events_emitter.js +3 -5
  58. package/dist/es2017/main_thread/tracks_store/tracks_store.d.ts +2 -2
  59. package/dist/es2017/main_thread/tracks_store/tracks_store.d.ts.map +1 -1
  60. package/dist/es2017/main_thread/tracks_store/tracks_store.js +16 -22
  61. package/dist/es2017/manifest/utils.js +1 -1
  62. package/dist/es2017/parsers/manifest/dash/common/parse_adaptation_sets.js +1 -1
  63. package/dist/rx-player.js +45 -47
  64. package/dist/rx-player.min.js +6 -6
  65. package/dist/worker.js +2 -2
  66. package/package.json +18 -18
  67. package/src/__GENERATED_CODE/embedded_worker.ts +1 -1
  68. package/src/compat/remove_cue.ts +11 -4
  69. package/src/core/main/worker/content_preparer.ts +91 -15
  70. package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/DRMInfos.test.ts +3 -3
  71. package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/HDCPPolicy.test.ts +2 -2
  72. package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/decodingInfos.test.ts +4 -4
  73. package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/mediaContentType.test.ts +2 -2
  74. package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/mediaDisplayInfos.test.ts +1 -1
  75. package/src/main_thread/api/public_api.ts +11 -12
  76. package/src/main_thread/api/utils.ts +1 -3
  77. package/src/main_thread/init/directfile_content_initializer.ts +1 -1
  78. package/src/main_thread/init/media_source_content_initializer.ts +6 -7
  79. package/src/main_thread/init/multi_thread_content_initializer.ts +3 -14
  80. package/src/main_thread/init/types.ts +3 -2
  81. package/src/main_thread/init/utils/get_loaded_reference.ts +3 -6
  82. package/src/main_thread/init/utils/stream_events_emitter/stream_events_emitter.ts +3 -7
  83. package/src/main_thread/tracks_store/tracks_store.ts +16 -26
  84. package/src/manifest/classes/__tests__/representation.test.ts +16 -0
  85. package/src/manifest/utils.ts +1 -1
  86. package/src/parsers/manifest/dash/common/parse_adaptation_sets.ts +1 -1
  87. package/src/utils/__tests__/logger.test.ts +44 -60
@@ -22,12 +22,11 @@ import TaskCanceller from "../../../utils/task_canceller";
22
22
  * Returns an `IReadOnlySharedReference` that switches to `true` once the
23
23
  * content is considered loaded (i.e. once it can begin to be played).
24
24
  * @param {Object} playbackObserver
25
- * @param {HTMLMediaElement} mediaElement
26
25
  * @param {boolean} isDirectfile - `true` if this is a directfile content
27
26
  * @param {Object} cancelSignal
28
27
  * @returns {Object}
29
28
  */
30
- export default function getLoadedReference(playbackObserver, mediaElement, isDirectfile, cancelSignal) {
29
+ export default function getLoadedReference(playbackObserver, isDirectfile, cancelSignal) {
31
30
  const listenCanceller = new TaskCanceller();
32
31
  listenCanceller.linkToSignal(cancelSignal);
33
32
  const isLoaded = new SharedReference(false, listenCanceller.signal);
@@ -40,10 +39,10 @@ export default function getLoadedReference(playbackObserver, mediaElement, isDir
40
39
  if (!shouldWaitForDataBeforeLoaded(isDirectfile)) {
41
40
  // The duration is NaN if no media data is available,
42
41
  // which means media is not loaded yet.
43
- if (isNaN(mediaElement.duration)) {
42
+ if (isNaN(observation.duration)) {
44
43
  return;
45
44
  }
46
- if (mediaElement.duration > 0) {
45
+ if (observation.duration > 0) {
47
46
  isLoaded.setValue(true);
48
47
  listenCanceller.cancel();
49
48
  return;
@@ -52,7 +51,7 @@ export default function getLoadedReference(playbackObserver, mediaElement, isDir
52
51
  const minReadyState = shouldWaitForHaveEnoughData() ? 4 : 3;
53
52
  if (observation.readyState >= minReadyState) {
54
53
  if (observation.currentRange !== null || observation.ended) {
55
- if (!shouldValidateMetadata() || mediaElement.duration > 0) {
54
+ if (!shouldValidateMetadata() || observation.duration > 0) {
56
55
  isLoaded.setValue(true);
57
56
  listenCanceller.cancel();
58
57
  return;
@@ -13,7 +13,6 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import type { IMediaElement } from "../../../../compat/browser_compatibility_types";
17
16
  import type { IManifestMetadata } from "../../../../manifest";
18
17
  import type { IPlaybackObservation, IReadOnlyPlaybackObserver } from "../../../../playback_observer";
19
18
  import EventEmitter from "../../../../utils/event_emitter";
@@ -27,17 +26,15 @@ interface IStreamEventsEmitterEvent {
27
26
  */
28
27
  export default class StreamEventsEmitter extends EventEmitter<IStreamEventsEmitterEvent> {
29
28
  private _manifest;
30
- private _mediaElement;
31
29
  private _playbackObserver;
32
30
  private _scheduledEventsRef;
33
31
  private _eventsBeingPlayed;
34
32
  private _canceller;
35
33
  /**
36
34
  * @param {Object} manifest
37
- * @param {HTMLMediaElement} mediaElement
38
35
  * @param {Object} playbackObserver
39
36
  */
40
- constructor(manifest: IManifestMetadata, mediaElement: IMediaElement, playbackObserver: IReadOnlyPlaybackObserver<IPlaybackObservation>);
37
+ constructor(manifest: IManifestMetadata, playbackObserver: IReadOnlyPlaybackObserver<IPlaybackObservation>);
41
38
  start(): void;
42
39
  onManifestUpdate(man: IManifestMetadata): void;
43
40
  stop(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"stream_events_emitter.d.ts","sourceRoot":"","sources":["../../../../../../src/main_thread/init/utils/stream_events_emitter/stream_events_emitter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAEpF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,KAAK,EACV,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,+BAA+B,CAAC;AACvC,OAAO,YAAY,MAAM,iCAAiC,CAAC;AAK3D,OAAO,KAAK,EAEV,2BAA2B,EAC3B,kBAAkB,EAEnB,MAAM,SAAS,CAAC;AAEjB,UAAU,yBAAyB;IACjC,KAAK,EAAE,kBAAkB,GAAG,2BAA2B,CAAC;IACxD,SAAS,EAAE,kBAAkB,GAAG,2BAA2B,CAAC;CAC7D;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,YAAY,CAAC,yBAAyB,CAAC;IACtF,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,iBAAiB,CAAkD;IAC3E,OAAO,CAAC,mBAAmB,CAEzB;IACF,OAAO,CAAC,kBAAkB,CAGxB;IACF,OAAO,CAAC,UAAU,CAAuB;IAEzC;;;;OAIG;gBAED,QAAQ,EAAE,iBAAiB,EAC3B,YAAY,EAAE,aAAa,EAC3B,gBAAgB,EAAE,yBAAyB,CAAC,oBAAoB,CAAC;IAgB5D,KAAK,IAAI,IAAI;IAmEb,gBAAgB,CAAC,GAAG,EAAE,iBAAiB;IAKvC,IAAI,IAAI,IAAI;IAOnB;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB;CAiE1B"}
1
+ {"version":3,"file":"stream_events_emitter.d.ts","sourceRoot":"","sources":["../../../../../../src/main_thread/init/utils/stream_events_emitter/stream_events_emitter.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D,OAAO,KAAK,EACV,oBAAoB,EACpB,yBAAyB,EAC1B,MAAM,+BAA+B,CAAC;AACvC,OAAO,YAAY,MAAM,iCAAiC,CAAC;AAK3D,OAAO,KAAK,EAEV,2BAA2B,EAC3B,kBAAkB,EAEnB,MAAM,SAAS,CAAC;AAEjB,UAAU,yBAAyB;IACjC,KAAK,EAAE,kBAAkB,GAAG,2BAA2B,CAAC;IACxD,SAAS,EAAE,kBAAkB,GAAG,2BAA2B,CAAC;CAC7D;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,YAAY,CAAC,yBAAyB,CAAC;IACtF,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,iBAAiB,CAAkD;IAC3E,OAAO,CAAC,mBAAmB,CAEzB;IACF,OAAO,CAAC,kBAAkB,CAGxB;IACF,OAAO,CAAC,UAAU,CAAuB;IAEzC;;;OAGG;gBAED,QAAQ,EAAE,iBAAiB,EAC3B,gBAAgB,EAAE,yBAAyB,CAAC,oBAAoB,CAAC;IAe5D,KAAK,IAAI,IAAI;IAoEb,gBAAgB,CAAC,GAAG,EAAE,iBAAiB;IAKvC,IAAI,IAAI,IAAI;IAOnB;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB;CAiE1B"}
@@ -24,13 +24,11 @@ import refreshScheduledEventsList from "./refresh_scheduled_events_list";
24
24
  export default class StreamEventsEmitter extends EventEmitter {
25
25
  /**
26
26
  * @param {Object} manifest
27
- * @param {HTMLMediaElement} mediaElement
28
27
  * @param {Object} playbackObserver
29
28
  */
30
- constructor(manifest, mediaElement, playbackObserver) {
29
+ constructor(manifest, playbackObserver) {
31
30
  super();
32
31
  this._manifest = manifest;
33
- this._mediaElement = mediaElement;
34
32
  this._playbackObserver = playbackObserver;
35
33
  this._canceller = null;
36
34
  this._scheduledEventsRef = new SharedReference([]);
@@ -43,7 +41,6 @@ export default class StreamEventsEmitter extends EventEmitter {
43
41
  this._canceller = new TaskCanceller();
44
42
  const cancelSignal = this._canceller.signal;
45
43
  const playbackObserver = this._playbackObserver;
46
- const mediaElement = this._mediaElement;
47
44
  let isPollingEvents = false;
48
45
  let cancelCurrentPolling = new TaskCanceller();
49
46
  cancelCurrentPolling.linkToSignal(cancelSignal);
@@ -78,8 +75,9 @@ export default class StreamEventsEmitter extends EventEmitter {
78
75
  clearInterval(intervalId);
79
76
  });
80
77
  function constructObservation() {
78
+ var _a;
81
79
  const lastObservation = playbackObserver.getReference().getValue();
82
- const currentTime = mediaElement.currentTime;
80
+ const currentTime = (_a = playbackObserver.getCurrentTime()) !== null && _a !== void 0 ? _a : playbackObserver.getReference().getValue().position.getPolled();
83
81
  const isSeeking = lastObservation.seeking !== 0 /* SeekingState.None */;
84
82
  return { currentTime, isSeeking };
85
83
  }
@@ -94,9 +94,9 @@ export default class TracksStore extends EventEmitter<ITracksStoreEvents> {
94
94
  * Remove shared reference to choose an "audio", "video" or "text" Adaptation
95
95
  * for a Period.
96
96
  * @param {string} bufferType - The concerned buffer type
97
- * @param {Period} period - The concerned Period.
97
+ * @param {string} periodId - The concerned Period's `id`.
98
98
  */
99
- removeTrackReference(bufferType: "audio" | "text" | "video", period: IPeriodMetadata): void;
99
+ removeTrackReference(bufferType: "audio" | "text" | "video", periodId: string): void;
100
100
  /**
101
101
  * Allows to recuperate a "Period Object" - used in get/set methods of the
102
102
  * `TracksStore` - by giving the Period itself.
@@ -1 +1 @@
1
- {"version":3,"file":"tracks_store.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/tracks_store/tracks_store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tracks_store.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/tracks_store/tracks_store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAQH,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAGlF,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EAChB,MAAM,gBAAgB,CAAC;AAQxB,OAAO,KAAK,EACV,kCAAkC,EAClC,WAAW,EACX,wBAAwB,EACxB,wBAAwB,EACxB,oBAAoB,EACpB,mBAAmB,EACnB,oBAAoB,EACpB,iCAAiC,EACjC,OAAO,EACP,UAAU,EACV,kCAAkC,EAClC,WAAW,EACX,wBAAwB,EACxB,YAAY,EAEb,MAAM,oBAAoB,CAAC;AAG5B,OAAO,YAAY,MAAM,2BAA2B,CAAC;AAGrD,OAAO,eAAe,MAAM,uBAAuB,CAAC;AACpD,OAAO,eAAe,MAAM,oBAAoB,CAAC;AAEjD;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,YAAY,CAAC,kBAAkB,CAAC;IACvE;;;OAGG;IACH,OAAO,CAAC,iBAAiB,CAAoB;IAE7C;;;OAGG;IACH,OAAO,CAAC,WAAW,CAAU;IAE7B;;;;;;;OAOG;IACH,OAAO,CAAC,iBAAiB,CAA4C;IAErE,gEAAgE;IAChE,OAAO,CAAC,wBAAwB,CAAU;IAE1C;;;;OAIG;IACH,OAAO,CAAC,+BAA+B,CAA2B;gBAEtD,IAAI,EAAE;QAChB,qBAAqB,EAAE,OAAO,CAAC;QAC/B,8BAA8B,EAAE,wBAAwB,GAAG,SAAS,CAAC;KACtE;IAWD;;;;OAIG;IACI,mBAAmB,IAAI,OAAO,EAAE;IASvC;;;OAGG;IACI,4BAA4B,IAAI,IAAI;IAI3C;;;;OAIG;IACI,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB;IAoM5C,wBAAwB;IAQ/B;;;;;;;;;;OAUG;IACI,iBAAiB,CACtB,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,EACtC,MAAM,EAAE,eAAe,EACvB,aAAa,EAAE,eAAe,CAAC,iBAAiB,GAAG,IAAI,GAAG,SAAS,CAAC,GACnE,IAAI;IAmIP;;;;;OAKG;IACI,oBAAoB,CACzB,UAAU,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO,EACtC,QAAQ,EAAE,MAAM,GACf,IAAI;IAgCP;;;;;;;;;;;;;;;;;OAiBG;IACI,yBAAyB,CAAC,MAAM,EAAE,eAAe,GAAG,eAAe,GAAG,SAAS;IAQtF;;;;;;;;;;;;;OAaG;IACI,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAIpE,2BAA2B,IAAI,IAAI;IAQnC,0BAA0B,IAAI,IAAI;IAQzC;;;;;;OAMG;IACI,kBAAkB,IAAI,IAAI;IAgBjC;;OAEG;IACI,kBAAkB,IAAI,OAAO;IAIpC;;;;;;;;;;;OAWG;IACI,aAAa,CAAC,OAAO,EAAE;QAC5B,SAAS,EAAE,eAAe,CAAC;QAC3B,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,EAAE,wBAAwB,GAAG,SAAS,CAAC;QACpD,qBAAqB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACvC,wBAAwB,EAAE,MAAM,GAAG,SAAS,CAAC;KAC9C,GAAG,IAAI;IAkBR;;;;OAIG;IACI,YAAY,CAAC,SAAS,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI;IAWvE;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,oBAAoB;IA6E5B;;;;;;;;;;;OAWG;IACI,aAAa,CAAC,OAAO,EAAE;QAC5B,SAAS,EAAE,eAAe,CAAC;QAC3B,OAAO,EAAE,MAAM,CAAC;QAChB,aAAa,EAAE,wBAAwB,GAAG,SAAS,CAAC;QACpD,qBAAqB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;QACvC,wBAAwB,EAAE,MAAM,GAAG,SAAS,CAAC;KAC9C,GAAG,IAAI;IA0ER;;;;;;OAMG;IACI,YAAY,CACjB,SAAS,EAAE,eAAe,EAC1B,UAAU,EAAE,OAAO,GAAG,OAAO,GAAG,MAAM,GACrC,IAAI;IAmCP;;;;;;;;;;;;;;;;;OAiBG;IACI,mBAAmB,CACxB,SAAS,EAAE,eAAe,EAC1B,6BAA6B,EAAE,OAAO,GACrC,WAAW,GAAG,IAAI;IASrB;;;;;;;;;OASG;IACI,kBAAkB,CAAC,SAAS,EAAE,eAAe,GAAG,UAAU,GAAG,IAAI;IAMxE;;;;;;;;;OASG;IACI,mBAAmB,CACxB,SAAS,EAAE,eAAe,EAC1B,6BAA6B,EAAE,OAAO,GACrC,WAAW,GAAG,IAAI;IAWrB;;;;;;;;;;;;OAYG;IACI,uBAAuB,CAC5B,SAAS,EAAE,eAAe,EAC1B,6BAA6B,EAAE,OAAO,GACrC,oBAAoB,EAAE,GAAG,SAAS;IAcrC;;;;;;;;OAQG;IACI,sBAAsB,CAC3B,SAAS,EAAE,eAAe,GACzB,mBAAmB,EAAE,GAAG,SAAS;IAapC;;;;;;;;;;;;OAYG;IACI,uBAAuB,CAC5B,SAAS,EAAE,eAAe,EAC1B,6BAA6B,EAAE,OAAO,GACrC,oBAAoB,EAAE,GAAG,SAAS;IA0B9B,6BAA6B,CAAC,SAAS,EAAE,eAAe,GAAG,MAAM,EAAE,GAAG,IAAI;IAS1E,6BAA6B,CAAC,SAAS,EAAE,eAAe,GAAG,MAAM,EAAE,GAAG,IAAI;IAS1E,wBAAwB,CAC7B,SAAS,EAAE,eAAe,EAC1B,YAAY,EAAE,iCAAiC,GAC9C,IAAI;IAmBA,wBAAwB,CAC7B,SAAS,EAAE,eAAe,EAC1B,YAAY,EAAE,iCAAiC,GAC9C,IAAI;IAmBA,0BAA0B,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI;IAW5D,0BAA0B,CAAC,SAAS,EAAE,eAAe,GAAG,IAAI;IAW5D,OAAO,IAAI,IAAI;IAWtB,OAAO,CAAC,uBAAuB;IA+C/B,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,yBAAyB;IAyBjC;;;OAGG;IACH,OAAO,CAAC,2BAA2B;IA0HnC;;;;;OAKG;IACH,OAAO,CAAC,sBAAsB;CAQ/B;AAyED,oDAAoD;AACpD,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,MAAM,EAAE,eAAe,CAAC;IACxB;;;;;;OAMG;IACH,UAAU,EAAE,OAAO,CAAC;IACpB;;;;;;OAMG;IACH,kBAAkB,EAAE,OAAO,CAAC;IAC5B;;OAEG;IACH,KAAK,EAAE,gBAAgB,CAAC;IACxB;;OAEG;IACH,IAAI,EAAE,eAAe,CAAC;IACtB;;OAEG;IACH,KAAK,EAAE,gBAAgB,CAAC;IACxB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;CACpB;AAED;;;GAGG;AACH,UAAU,gBAAgB;IACxB;;;;OAIG;IACH,cAAc,EACV;QACE,yDAAyD;QACzD,UAAU,EAAE,mBAAmB,CAAC;QAChC,gEAAgE;QAChE,aAAa,EAAE,wBAAwB,CAAC;QACxC;;;;WAIG;QACH,qBAAqB,EAAE,eAAe,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;KACvE,GACD,IAAI,GACJ,SAAS,CAAC;IACd;;;;;;;;OAQG;IACH,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;CACpC;AAED;;;GAGG;AACH,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,cAAc,EACV;QACE,yDAAyD;QACzD,UAAU,EAAE,mBAAmB,CAAC;QAChC,gEAAgE;QAChE,aAAa,EAAE,QAAQ,CAAC;QACxB;;;;WAIG;QACH,qBAAqB,EAAE,eAAe,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;KACvE,GACD,IAAI,GACJ,SAAS,CAAC;IACd;;;;;;;;OAQG;IACH,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;CACpC;AAED;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,cAAc,EAAE,oBAAoB,GAAG,IAAI,GAAG,SAAS,CAAC;IACxD;;;;;;;;OAQG;IACH,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;CACpC;AAED,KAAK,oBAAoB,GAAG;IAC1B;;;;;OAKG;IACH,UAAU,EAAE,mBAAmB,CAAC;IAChC,gEAAgE;IAChE,aAAa,EAAE,wBAAwB,CAAC;IACxC;;;;OAIG;IACH,cAAc,EAAE,mBAAmB,CAAC;IACpC;;;;OAIG;IACH,qBAAqB,EAAE,eAAe,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAAC;CACvE,GAAG,IAAI,CAAC;AAET,yCAAyC;AACzC,UAAU,kBAAkB;IAC1B,mBAAmB,EAAE,OAAO,EAAE,CAAC;IAC/B,yBAAyB,EAAE,iCAAiC,CAAC;IAC7D,WAAW,EAAE,wBAAwB,CAAC;IACtC,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,YAAY,CAAC;CACvB;AAED,MAAM,WAAW,iCAAiC;IAChD,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,kCAAkC,GAAG,SAAS,CAAC;CAChE;AAED,MAAM,WAAW,iCAAiC;IAChD,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,aAAa,CAAC,EAAE,kCAAkC,GAAG,SAAS,CAAC;CAChE"}
@@ -255,6 +255,7 @@ export default class TracksStore extends EventEmitter {
255
255
  * the choice will be given.
256
256
  */
257
257
  addTrackReference(bufferType, period, adaptationRef) {
258
+ log.debug("TS: Adding Track Reference", bufferType, period.id);
258
259
  let periodObj = getPeriodItem(this._storedPeriodInfo, period.id);
259
260
  if (periodObj === undefined) {
260
261
  // The Period has not yet been added.
@@ -272,7 +273,7 @@ export default class TracksStore extends EventEmitter {
272
273
  }
273
274
  if (periodObj[bufferType].dispatcher !== null) {
274
275
  log.error(`TS: Subject already added for ${bufferType} ` + `and Period ${period.start}`);
275
- return;
276
+ periodObj[bufferType].dispatcher.dispose();
276
277
  }
277
278
  const dispatcher = new TrackDispatcher(adaptationRef);
278
279
  periodObj[bufferType].dispatcher = dispatcher;
@@ -365,19 +366,27 @@ export default class TracksStore extends EventEmitter {
365
366
  * Remove shared reference to choose an "audio", "video" or "text" Adaptation
366
367
  * for a Period.
367
368
  * @param {string} bufferType - The concerned buffer type
368
- * @param {Period} period - The concerned Period.
369
+ * @param {string} periodId - The concerned Period's `id`.
369
370
  */
370
- removeTrackReference(bufferType, period) {
371
- const periodIndex = findPeriodIndex(this._storedPeriodInfo, period);
371
+ removeTrackReference(bufferType, periodId) {
372
+ log.debug("TS: Removing Track Reference", bufferType, periodId);
373
+ let periodIndex;
374
+ for (let i = 0; i < this._storedPeriodInfo.length; i++) {
375
+ const periodI = this._storedPeriodInfo[i];
376
+ if (periodI.period.id === periodId) {
377
+ periodIndex = i;
378
+ break;
379
+ }
380
+ }
372
381
  if (periodIndex === undefined) {
373
- log.warn(`TS: ${bufferType} not found for period`, period.start);
382
+ log.warn(`TS: ${bufferType} not found for period`, periodId);
374
383
  return;
375
384
  }
376
385
  const periodObj = this._storedPeriodInfo[periodIndex];
377
386
  const choiceItem = periodObj[bufferType];
378
387
  if ((choiceItem === null || choiceItem === void 0 ? void 0 : choiceItem.dispatcher) === null) {
379
388
  log.warn(`TS: TrackDispatcher already removed for ${bufferType} ` +
380
- `and Period ${period.start}`);
389
+ `and Period ${periodId}`);
381
390
  return;
382
391
  }
383
392
  choiceItem.dispatcher.dispose();
@@ -451,6 +460,7 @@ export default class TracksStore extends EventEmitter {
451
460
  */
452
461
  resetPeriodObjects() {
453
462
  var _a, _b, _c;
463
+ log.debug("TS: Resetting Period Objects");
454
464
  for (let i = this._storedPeriodInfo.length - 1; i >= 0; i--) {
455
465
  const storedObj = this._storedPeriodInfo[i];
456
466
  (_a = storedObj.audio.dispatcher) === null || _a === void 0 ? void 0 : _a.dispose();
@@ -1056,22 +1066,6 @@ export default class TracksStore extends EventEmitter {
1056
1066
  periodObj.audio.dispatcher !== null);
1057
1067
  }
1058
1068
  }
1059
- /**
1060
- * Returns the index of the given `period` in the given `periods`
1061
- * Array.
1062
- * Returns `undefined` if that `period` is not found.
1063
- * @param {Object} periods
1064
- * @param {Object} period
1065
- * @returns {number|undefined}
1066
- */
1067
- function findPeriodIndex(periods, period) {
1068
- for (let i = 0; i < periods.length; i++) {
1069
- const periodI = periods[i];
1070
- if (periodI.period.id === period.id) {
1071
- return i;
1072
- }
1073
- }
1074
- }
1075
1069
  /**
1076
1070
  * Returns element in the given `periods` Array that corresponds to the
1077
1071
  * `period` given.
@@ -141,7 +141,7 @@ export function toAudioTrack(adaptation, filterPlayable) {
141
141
  audioDescription: adaptation.isAudioDescription === true,
142
142
  id: adaptation.id,
143
143
  representations: (filterPlayable
144
- ? adaptation.representations.filter((r) => isRepresentationPlayable(r))
144
+ ? adaptation.representations.filter((r) => isRepresentationPlayable(r) === true)
145
145
  : adaptation.representations).map(toAudioRepresentation),
146
146
  label: adaptation.label,
147
147
  };
@@ -138,7 +138,7 @@ function getAdaptationSetSwitchingIDs(adaptation) {
138
138
  return supplementalProperty.value
139
139
  .split(",")
140
140
  .map((id) => id.trim())
141
- .filter((id) => id);
141
+ .filter((id) => isNonEmptyString(id));
142
142
  }
143
143
  }
144
144
  }
package/dist/rx-player.js CHANGED
@@ -5069,7 +5069,7 @@
5069
5069
  normalized: (_b2 = adaptation.normalizedLanguage) != null ? _b2 : "",
5070
5070
  audioDescription: adaptation.isAudioDescription === true,
5071
5071
  id: adaptation.id,
5072
- representations: (filterPlayable ? adaptation.representations.filter((r) => isRepresentationPlayable(r)) : adaptation.representations).map(toAudioRepresentation),
5072
+ representations: (filterPlayable ? adaptation.representations.filter((r) => isRepresentationPlayable(r) === true) : adaptation.representations).map(toAudioRepresentation),
5073
5073
  label: adaptation.label
5074
5074
  };
5075
5075
  if (adaptation.isDub === true) {
@@ -19938,7 +19938,7 @@
19938
19938
  }
19939
19939
 
19940
19940
  // src/main_thread/init/utils/get_loaded_reference.ts
19941
- function getLoadedReference(playbackObserver, mediaElement, isDirectfile, cancelSignal) {
19941
+ function getLoadedReference(playbackObserver, isDirectfile, cancelSignal) {
19942
19942
  const listenCanceller = new TaskCanceller();
19943
19943
  listenCanceller.linkToSignal(cancelSignal);
19944
19944
  const isLoaded = new reference_default(false, listenCanceller.signal);
@@ -19948,10 +19948,10 @@
19948
19948
  return;
19949
19949
  }
19950
19950
  if (!shouldWaitForDataBeforeLoaded(isDirectfile)) {
19951
- if (isNaN(mediaElement.duration)) {
19951
+ if (isNaN(observation.duration)) {
19952
19952
  return;
19953
19953
  }
19954
- if (mediaElement.duration > 0) {
19954
+ if (observation.duration > 0) {
19955
19955
  isLoaded.setValue(true);
19956
19956
  listenCanceller.cancel();
19957
19957
  return;
@@ -19960,7 +19960,7 @@
19960
19960
  const minReadyState = shouldWaitForHaveEnoughData() ? 4 : 3;
19961
19961
  if (observation.readyState >= minReadyState) {
19962
19962
  if (observation.currentRange !== null || observation.ended) {
19963
- if (!shouldValidateMetadata() || mediaElement.duration > 0) {
19963
+ if (!shouldValidateMetadata() || observation.duration > 0) {
19964
19964
  isLoaded.setValue(true);
19965
19965
  listenCanceller.cancel();
19966
19966
  return;
@@ -20775,13 +20775,11 @@
20775
20775
  var StreamEventsEmitter = class extends EventEmitter {
20776
20776
  /**
20777
20777
  * @param {Object} manifest
20778
- * @param {HTMLMediaElement} mediaElement
20779
20778
  * @param {Object} playbackObserver
20780
20779
  */
20781
- constructor(manifest, mediaElement, playbackObserver) {
20780
+ constructor(manifest, playbackObserver) {
20782
20781
  super();
20783
20782
  this._manifest = manifest;
20784
- this._mediaElement = mediaElement;
20785
20783
  this._playbackObserver = playbackObserver;
20786
20784
  this._canceller = null;
20787
20785
  this._scheduledEventsRef = new reference_default([]);
@@ -20794,7 +20792,6 @@
20794
20792
  this._canceller = new TaskCanceller();
20795
20793
  const cancelSignal = this._canceller.signal;
20796
20794
  const playbackObserver = this._playbackObserver;
20797
- const mediaElement = this._mediaElement;
20798
20795
  let isPollingEvents = false;
20799
20796
  let cancelCurrentPolling = new TaskCanceller();
20800
20797
  cancelCurrentPolling.linkToSignal(cancelSignal);
@@ -20837,8 +20834,9 @@
20837
20834
  clearInterval(intervalId);
20838
20835
  });
20839
20836
  function constructObservation() {
20837
+ var _a2;
20840
20838
  const lastObservation = playbackObserver.getReference().getValue();
20841
- const currentTime = mediaElement.currentTime;
20839
+ const currentTime = (_a2 = playbackObserver.getCurrentTime()) != null ? _a2 : playbackObserver.getReference().getValue().position.getPolled();
20842
20840
  const isSeeking = lastObservation.seeking !== 0 /* None */;
20843
20841
  return { currentTime, isSeeking };
20844
20842
  }
@@ -21376,11 +21374,7 @@
21376
21374
  (isPerformed, stopListening) => {
21377
21375
  if (isPerformed) {
21378
21376
  stopListening();
21379
- const streamEventsEmitter = new stream_events_emitter_default(
21380
- manifest,
21381
- mediaElement,
21382
- playbackObserver
21383
- );
21377
+ const streamEventsEmitter = new stream_events_emitter_default(manifest, playbackObserver);
21384
21378
  manifest.addEventListener(
21385
21379
  "manifestUpdate",
21386
21380
  () => {
@@ -21489,7 +21483,7 @@
21489
21483
  cancelSignal
21490
21484
  );
21491
21485
  autoPlayResult.then(() => {
21492
- getLoadedReference(playbackObserver, mediaElement, false, cancelSignal).onUpdate(
21486
+ getLoadedReference(playbackObserver, false, cancelSignal).onUpdate(
21493
21487
  (isLoaded, stopListening) => {
21494
21488
  if (isLoaded) {
21495
21489
  stopListening();
@@ -21610,7 +21604,10 @@
21610
21604
  if (cancelSignal.isCancelled()) {
21611
21605
  return;
21612
21606
  }
21613
- self2.trigger("periodStreamCleared", value);
21607
+ self2.trigger("periodStreamCleared", {
21608
+ type: value.type,
21609
+ periodId: value.period.id
21610
+ });
21614
21611
  },
21615
21612
  bitrateEstimateChange: (value) => {
21616
21613
  var _a3;
@@ -24953,7 +24950,7 @@
24953
24950
  const { supplementalProperties } = adaptation.children;
24954
24951
  for (const supplementalProperty of supplementalProperties) {
24955
24952
  if (supplementalProperty.schemeIdUri === "urn:mpeg:dash:adaptation-set-switching:2016" && !isNullOrUndefined(supplementalProperty.value)) {
24956
- return supplementalProperty.value.split(",").map((id) => id.trim()).filter((id) => id);
24953
+ return supplementalProperty.value.split(",").map((id) => id.trim()).filter((id) => isNonEmptyString(id));
24957
24954
  }
24958
24955
  }
24959
24956
  }
@@ -28688,7 +28685,7 @@
28688
28685
  },
28689
28686
  cancelSignal
28690
28687
  ).autoPlayResult.then(
28691
- () => getLoadedReference(playbackObserver, mediaElement, true, cancelSignal).onUpdate(
28688
+ () => getLoadedReference(playbackObserver, true, cancelSignal).onUpdate(
28692
28689
  (isLoaded, stopListening) => {
28693
28690
  if (isLoaded) {
28694
28691
  stopListening();
@@ -35851,6 +35848,7 @@ ${event}`
35851
35848
  * the choice will be given.
35852
35849
  */
35853
35850
  addTrackReference(bufferType, period, adaptationRef) {
35851
+ log_default.debug("TS: Adding Track Reference", bufferType, period.id);
35854
35852
  let periodObj = getPeriodItem(this._storedPeriodInfo, period.id);
35855
35853
  if (periodObj === void 0) {
35856
35854
  periodObj = generatePeriodInfo(period, false);
@@ -35869,7 +35867,7 @@ ${event}`
35869
35867
  log_default.error(
35870
35868
  `TS: Subject already added for ${bufferType} and Period ${period.start}`
35871
35869
  );
35872
- return;
35870
+ periodObj[bufferType].dispatcher.dispose();
35873
35871
  }
35874
35872
  const dispatcher = new TrackDispatcher(adaptationRef);
35875
35873
  periodObj[bufferType].dispatcher = dispatcher;
@@ -35961,19 +35959,27 @@ ${event}`
35961
35959
  * Remove shared reference to choose an "audio", "video" or "text" Adaptation
35962
35960
  * for a Period.
35963
35961
  * @param {string} bufferType - The concerned buffer type
35964
- * @param {Period} period - The concerned Period.
35962
+ * @param {string} periodId - The concerned Period's `id`.
35965
35963
  */
35966
- removeTrackReference(bufferType, period) {
35967
- const periodIndex = findPeriodIndex(this._storedPeriodInfo, period);
35964
+ removeTrackReference(bufferType, periodId) {
35965
+ log_default.debug("TS: Removing Track Reference", bufferType, periodId);
35966
+ let periodIndex;
35967
+ for (let i = 0; i < this._storedPeriodInfo.length; i++) {
35968
+ const periodI = this._storedPeriodInfo[i];
35969
+ if (periodI.period.id === periodId) {
35970
+ periodIndex = i;
35971
+ break;
35972
+ }
35973
+ }
35968
35974
  if (periodIndex === void 0) {
35969
- log_default.warn(`TS: ${bufferType} not found for period`, period.start);
35975
+ log_default.warn(`TS: ${bufferType} not found for period`, periodId);
35970
35976
  return;
35971
35977
  }
35972
35978
  const periodObj = this._storedPeriodInfo[periodIndex];
35973
35979
  const choiceItem = periodObj[bufferType];
35974
35980
  if ((choiceItem == null ? void 0 : choiceItem.dispatcher) === null) {
35975
35981
  log_default.warn(
35976
- `TS: TrackDispatcher already removed for ${bufferType} and Period ${period.start}`
35982
+ `TS: TrackDispatcher already removed for ${bufferType} and Period ${periodId}`
35977
35983
  );
35978
35984
  return;
35979
35985
  }
@@ -36048,6 +36054,7 @@ ${event}`
36048
36054
  */
36049
36055
  resetPeriodObjects() {
36050
36056
  var _a2, _b2, _c2;
36057
+ log_default.debug("TS: Resetting Period Objects");
36051
36058
  for (let i = this._storedPeriodInfo.length - 1; i >= 0; i--) {
36052
36059
  const storedObj = this._storedPeriodInfo[i];
36053
36060
  (_a2 = storedObj.audio.dispatcher) == null ? void 0 : _a2.dispose();
@@ -36661,14 +36668,6 @@ ${event}`
36661
36668
  return !periodObj.isPeriodAdvertised && periodObj.text.dispatcher !== null && periodObj.video.dispatcher !== null && periodObj.audio.dispatcher !== null;
36662
36669
  }
36663
36670
  };
36664
- function findPeriodIndex(periods, period) {
36665
- for (let i = 0; i < periods.length; i++) {
36666
- const periodI = periods[i];
36667
- if (periodI.period.id === period.id) {
36668
- return i;
36669
- }
36670
- }
36671
- }
36672
36671
  function getPeriodItem(periods, periodId) {
36673
36672
  for (let i = 0; i < periods.length; i++) {
36674
36673
  const periodI = periods[i];
@@ -36939,8 +36938,8 @@ ${event}`
36939
36938
  }
36940
36939
 
36941
36940
  // src/main_thread/api/utils.ts
36942
- function emitSeekEvents(mediaElement, playbackObserver, onSeeking2, onSeeked2, cancelSignal) {
36943
- if (cancelSignal.isCancelled() || mediaElement === null) {
36941
+ function emitSeekEvents(playbackObserver, onSeeking2, onSeeked2, cancelSignal) {
36942
+ if (cancelSignal.isCancelled()) {
36944
36943
  return;
36945
36944
  }
36946
36945
  let wasSeeking = playbackObserver.getReference().getValue().seeking === 2 /* External */;
@@ -37166,7 +37165,7 @@ ${event}`
37166
37165
  } = parseConstructorOptions(options);
37167
37166
  videoElement.preload = "auto";
37168
37167
  this.version = /* PLAYER_VERSION */
37169
- "4.3.0-dev.2025012900";
37168
+ "4.3.0-dev.2025021300";
37170
37169
  this.log = log_default;
37171
37170
  this.state = "STOPPED";
37172
37171
  this.videoElement = videoElement;
@@ -37868,7 +37867,6 @@ ${event}`
37868
37867
  seekEventsCanceller = new TaskCanceller();
37869
37868
  seekEventsCanceller.linkToSignal(currentContentCanceller.signal);
37870
37869
  emitSeekEvents(
37871
- videoElement,
37872
37870
  playbackObserver,
37873
37871
  () => this.trigger("seeking", null),
37874
37872
  () => this.trigger("seeked", null),
@@ -39310,30 +39308,30 @@ ${event}`
39310
39308
  if (contentInfos.contentId !== ((_a2 = this._priv_contentInfos) == null ? void 0 : _a2.contentId)) {
39311
39309
  return;
39312
39310
  }
39313
- const { type, period } = value;
39311
+ const { type, periodId } = value;
39314
39312
  const tracksStore = contentInfos.tracksStore;
39315
39313
  switch (type) {
39316
39314
  case "audio":
39317
39315
  case "text":
39318
39316
  case "video":
39319
39317
  if (!isNullOrUndefined(tracksStore)) {
39320
- tracksStore.removeTrackReference(type, period);
39318
+ tracksStore.removeTrackReference(type, periodId);
39321
39319
  }
39322
39320
  break;
39323
39321
  }
39324
39322
  const { activeAdaptations, activeRepresentations } = contentInfos;
39325
- if (!isNullOrUndefined(activeAdaptations) && !isNullOrUndefined(activeAdaptations[period.id])) {
39326
- const activePeriodAdaptations = activeAdaptations[period.id];
39323
+ if (!isNullOrUndefined(activeAdaptations) && !isNullOrUndefined(activeAdaptations[periodId])) {
39324
+ const activePeriodAdaptations = activeAdaptations[periodId];
39327
39325
  delete activePeriodAdaptations[type];
39328
39326
  if (Object.keys(activePeriodAdaptations).length === 0) {
39329
- delete activeAdaptations[period.id];
39327
+ delete activeAdaptations[periodId];
39330
39328
  }
39331
39329
  }
39332
- if (!isNullOrUndefined(activeRepresentations) && !isNullOrUndefined(activeRepresentations[period.id])) {
39333
- const activePeriodRepresentations = activeRepresentations[period.id];
39330
+ if (!isNullOrUndefined(activeRepresentations) && !isNullOrUndefined(activeRepresentations[periodId])) {
39331
+ const activePeriodRepresentations = activeRepresentations[periodId];
39334
39332
  delete activePeriodRepresentations[type];
39335
39333
  if (Object.keys(activePeriodRepresentations).length === 0) {
39336
- delete activeRepresentations[period.id];
39334
+ delete activeRepresentations[periodId];
39337
39335
  }
39338
39336
  }
39339
39337
  }
@@ -39707,7 +39705,7 @@ ${event}`
39707
39705
  _Player._priv_currentlyUsedVideoElements = /* @__PURE__ */ new WeakSet();
39708
39706
  var Player = _Player;
39709
39707
  Player.version = /* PLAYER_VERSION */
39710
- "4.3.0-dev.2025012900";
39708
+ "4.3.0-dev.2025021300";
39711
39709
  var public_api_default = Player;
39712
39710
 
39713
39711
  // src/main_thread/api/index.ts
@@ -39734,7 +39732,7 @@ ${event}`
39734
39732
  } else if (define_ENVIRONMENT_default.CURRENT_ENV === define_ENVIRONMENT_default.DEV) {
39735
39733
  log_default.setLevel(define_LOGGER_LEVEL_default.CURRENT_LEVEL, "standard");
39736
39734
  }
39737
- var src_default = api_default;
39735
+ var index_default = api_default;
39738
39736
  if (true) {
39739
39737
  global_scope_default.RxPlayer = api_default;
39740
39738
  }