rx-player 4.2.0 → 4.2.1-dev.2024102300

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 (113) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/VERSION +1 -1
  3. package/dist/commonjs/__GENERATED_CODE/embedded_dash_wasm.d.ts.map +1 -1
  4. package/dist/commonjs/__GENERATED_CODE/embedded_dash_wasm.js +1 -1
  5. package/dist/commonjs/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
  6. package/dist/commonjs/__GENERATED_CODE/embedded_worker.js +1 -1
  7. package/dist/commonjs/core/main/worker/worker_main.d.ts.map +1 -1
  8. package/dist/commonjs/core/main/worker/worker_main.js +2 -1
  9. package/dist/commonjs/core/segment_sinks/implementations/audio_video/{audio_video_segment_buffer.d.ts → audio_video_segment_sink.d.ts} +1 -1
  10. package/dist/commonjs/core/segment_sinks/implementations/audio_video/audio_video_segment_sink.d.ts.map +1 -0
  11. package/dist/commonjs/core/segment_sinks/implementations/audio_video/index.d.ts +1 -1
  12. package/dist/commonjs/core/segment_sinks/implementations/audio_video/index.d.ts.map +1 -1
  13. package/dist/commonjs/core/segment_sinks/implementations/audio_video/index.js +2 -2
  14. package/dist/commonjs/core/segment_sinks/implementations/text/index.d.ts +2 -2
  15. package/dist/commonjs/core/segment_sinks/implementations/text/index.d.ts.map +1 -1
  16. package/dist/commonjs/core/segment_sinks/implementations/text/index.js +2 -2
  17. package/dist/commonjs/core/segment_sinks/implementations/text/{text_segment_buffer.d.ts → text_segment_sink.d.ts} +1 -1
  18. package/dist/commonjs/core/segment_sinks/implementations/text/text_segment_sink.d.ts.map +1 -0
  19. package/dist/commonjs/core/segment_sinks/index.d.ts +1 -1
  20. package/dist/commonjs/core/segment_sinks/index.d.ts.map +1 -1
  21. package/dist/commonjs/core/segment_sinks/index.js +2 -2
  22. package/dist/{es2017/core/segment_sinks/segment_buffers_store.d.ts → commonjs/core/segment_sinks/segment_sinks_store.d.ts} +4 -3
  23. package/dist/commonjs/core/segment_sinks/segment_sinks_store.d.ts.map +1 -0
  24. package/dist/commonjs/core/segment_sinks/{segment_buffers_store.js → segment_sinks_store.js} +38 -3
  25. package/dist/commonjs/main_thread/api/debug/buffer_graph.d.ts +1 -1
  26. package/dist/commonjs/main_thread/api/debug/buffer_graph.d.ts.map +1 -1
  27. package/dist/commonjs/main_thread/api/debug/modules/segment_buffer_content.d.ts.map +1 -1
  28. package/dist/commonjs/main_thread/api/debug/modules/segment_buffer_content.js +28 -2
  29. package/dist/commonjs/main_thread/api/public_api.d.ts +1 -1
  30. package/dist/commonjs/main_thread/api/public_api.d.ts.map +1 -1
  31. package/dist/commonjs/main_thread/api/public_api.js +2 -2
  32. package/dist/commonjs/main_thread/init/media_source_content_initializer.d.ts +21 -2
  33. package/dist/commonjs/main_thread/init/media_source_content_initializer.d.ts.map +1 -1
  34. package/dist/commonjs/main_thread/init/media_source_content_initializer.js +62 -55
  35. package/dist/commonjs/main_thread/init/types.d.ts +1 -1
  36. package/dist/commonjs/main_thread/init/types.d.ts.map +1 -1
  37. package/dist/commonjs/mse/main_media_source_interface.d.ts +2 -0
  38. package/dist/commonjs/mse/main_media_source_interface.d.ts.map +1 -1
  39. package/dist/commonjs/mse/main_media_source_interface.js +80 -79
  40. package/dist/commonjs/multithread_types.d.ts +1 -1
  41. package/dist/commonjs/multithread_types.d.ts.map +1 -1
  42. package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.d.ts.map +1 -1
  43. package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.js +1 -1
  44. package/dist/es2017/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
  45. package/dist/es2017/__GENERATED_CODE/embedded_worker.js +1 -1
  46. package/dist/es2017/core/main/worker/worker_main.d.ts.map +1 -1
  47. package/dist/es2017/core/main/worker/worker_main.js +2 -1
  48. package/dist/es2017/core/segment_sinks/implementations/audio_video/{audio_video_segment_buffer.d.ts → audio_video_segment_sink.d.ts} +1 -1
  49. package/dist/es2017/core/segment_sinks/implementations/audio_video/audio_video_segment_sink.d.ts.map +1 -0
  50. package/dist/es2017/core/segment_sinks/implementations/audio_video/index.d.ts +1 -1
  51. package/dist/es2017/core/segment_sinks/implementations/audio_video/index.d.ts.map +1 -1
  52. package/dist/es2017/core/segment_sinks/implementations/audio_video/index.js +1 -1
  53. package/dist/es2017/core/segment_sinks/implementations/text/index.d.ts +2 -2
  54. package/dist/es2017/core/segment_sinks/implementations/text/index.d.ts.map +1 -1
  55. package/dist/es2017/core/segment_sinks/implementations/text/index.js +1 -1
  56. package/dist/es2017/core/segment_sinks/implementations/text/{text_segment_buffer.d.ts → text_segment_sink.d.ts} +1 -1
  57. package/dist/es2017/core/segment_sinks/implementations/text/text_segment_sink.d.ts.map +1 -0
  58. package/dist/es2017/core/segment_sinks/index.d.ts +1 -1
  59. package/dist/es2017/core/segment_sinks/index.d.ts.map +1 -1
  60. package/dist/es2017/core/segment_sinks/index.js +1 -1
  61. package/dist/{commonjs/core/segment_sinks/segment_buffers_store.d.ts → es2017/core/segment_sinks/segment_sinks_store.d.ts} +4 -3
  62. package/dist/es2017/core/segment_sinks/segment_sinks_store.d.ts.map +1 -0
  63. package/dist/es2017/core/segment_sinks/{segment_buffers_store.js → segment_sinks_store.js} +15 -2
  64. package/dist/es2017/main_thread/api/debug/buffer_graph.d.ts +1 -1
  65. package/dist/es2017/main_thread/api/debug/buffer_graph.d.ts.map +1 -1
  66. package/dist/es2017/main_thread/api/debug/modules/segment_buffer_content.d.ts.map +1 -1
  67. package/dist/es2017/main_thread/api/debug/modules/segment_buffer_content.js +28 -2
  68. package/dist/es2017/main_thread/api/public_api.d.ts +1 -1
  69. package/dist/es2017/main_thread/api/public_api.d.ts.map +1 -1
  70. package/dist/es2017/main_thread/api/public_api.js +2 -2
  71. package/dist/es2017/main_thread/init/media_source_content_initializer.d.ts +21 -2
  72. package/dist/es2017/main_thread/init/media_source_content_initializer.d.ts.map +1 -1
  73. package/dist/es2017/main_thread/init/media_source_content_initializer.js +58 -52
  74. package/dist/es2017/main_thread/init/types.d.ts +1 -1
  75. package/dist/es2017/main_thread/init/types.d.ts.map +1 -1
  76. package/dist/es2017/mse/main_media_source_interface.d.ts +2 -0
  77. package/dist/es2017/mse/main_media_source_interface.d.ts.map +1 -1
  78. package/dist/es2017/mse/main_media_source_interface.js +48 -46
  79. package/dist/es2017/multithread_types.d.ts +1 -1
  80. package/dist/es2017/multithread_types.d.ts.map +1 -1
  81. package/dist/mpd-parser.wasm +0 -0
  82. package/dist/rx-player.js +127 -92
  83. package/dist/rx-player.min.js +8 -8
  84. package/dist/worker.js +4 -4
  85. package/package.json +1 -1
  86. package/src/__GENERATED_CODE/embedded_dash_wasm.ts +1 -1
  87. package/src/__GENERATED_CODE/embedded_worker.ts +1 -1
  88. package/src/core/main/worker/worker_main.ts +2 -1
  89. package/src/core/segment_sinks/implementations/audio_video/index.ts +1 -1
  90. package/src/core/segment_sinks/implementations/text/index.ts +2 -2
  91. package/src/core/segment_sinks/index.ts +1 -1
  92. package/src/core/segment_sinks/{segment_buffers_store.ts → segment_sinks_store.ts} +20 -8
  93. package/src/main_thread/api/debug/buffer_graph.ts +1 -1
  94. package/src/main_thread/api/debug/modules/segment_buffer_content.ts +26 -3
  95. package/src/main_thread/api/public_api.ts +3 -3
  96. package/src/main_thread/init/media_source_content_initializer.ts +75 -67
  97. package/src/main_thread/init/multi_thread_content_initializer.ts +1 -1
  98. package/src/main_thread/init/types.ts +1 -1
  99. package/src/mse/main_media_source_interface.ts +49 -46
  100. package/src/multithread_types.ts +1 -1
  101. package/.vscode/settings.json +0 -9
  102. package/dist/commonjs/core/segment_sinks/implementations/audio_video/audio_video_segment_buffer.d.ts.map +0 -1
  103. package/dist/commonjs/core/segment_sinks/implementations/text/text_segment_buffer.d.ts.map +0 -1
  104. package/dist/commonjs/core/segment_sinks/segment_buffers_store.d.ts.map +0 -1
  105. package/dist/es2017/core/segment_sinks/implementations/audio_video/audio_video_segment_buffer.d.ts.map +0 -1
  106. package/dist/es2017/core/segment_sinks/implementations/text/text_segment_buffer.d.ts.map +0 -1
  107. package/dist/es2017/core/segment_sinks/segment_buffers_store.d.ts.map +0 -1
  108. /package/dist/commonjs/core/segment_sinks/implementations/audio_video/{audio_video_segment_buffer.js → audio_video_segment_sink.js} +0 -0
  109. /package/dist/commonjs/core/segment_sinks/implementations/text/{text_segment_buffer.js → text_segment_sink.js} +0 -0
  110. /package/dist/es2017/core/segment_sinks/implementations/audio_video/{audio_video_segment_buffer.js → audio_video_segment_sink.js} +0 -0
  111. /package/dist/es2017/core/segment_sinks/implementations/text/{text_segment_buffer.js → text_segment_sink.js} +0 -0
  112. /package/src/core/segment_sinks/implementations/audio_video/{audio_video_segment_buffer.ts → audio_video_segment_sink.ts} +0 -0
  113. /package/src/core/segment_sinks/implementations/text/{text_segment_buffer.ts → text_segment_sink.ts} +0 -0
@@ -19,6 +19,7 @@ import type { IPlayerError, ITrackType } from "../../../public_types";
19
19
  import createDashPipelines from "../../../transports/dash";
20
20
  import arrayFind from "../../../utils/array_find";
21
21
  import assert, { assertUnreachable } from "../../../utils/assert";
22
+ import globalScope from "../../../utils/global_scope";
22
23
  import type { ILogFormat, ILoggerLevel } from "../../../utils/logger";
23
24
  import { scaleTimestamp } from "../../../utils/monotonic_timestamp";
24
25
  import objectAssign from "../../../utils/object_assign";
@@ -80,7 +81,7 @@ export default function initializeWorkerMain() {
80
81
  */
81
82
  let playbackObservationRef: SharedReference<IWorkerPlaybackObservation> | null = null;
82
83
 
83
- onmessageerror = (_msg: MessageEvent) => {
84
+ globalScope.onmessageerror = (_msg: MessageEvent) => {
84
85
  log.error("MTCI: Error when receiving message from main thread.");
85
86
  };
86
87
  onmessage = function (e: MessageEvent<IMainThreadMessage>) {
@@ -14,5 +14,5 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import AudioVideoSegmentSink from "./audio_video_segment_buffer";
17
+ import AudioVideoSegmentSink from "./audio_video_segment_sink";
18
18
  export default AudioVideoSegmentSink;
@@ -1,5 +1,5 @@
1
- import type { ITextDisplayerInterface } from "./text_segment_buffer";
2
- import TextSegmentSink from "./text_segment_buffer";
1
+ import type { ITextDisplayerInterface } from "./text_segment_sink";
2
+ import TextSegmentSink from "./text_segment_sink";
3
3
 
4
4
  export default TextSegmentSink;
5
5
  export type { ITextDisplayerInterface };
@@ -38,7 +38,7 @@ import {
38
38
  getFirstSegmentAfterPeriod,
39
39
  getLastSegmentBeforePeriod,
40
40
  } from "./inventory";
41
- import SegmentSinksStore from "./segment_buffers_store";
41
+ import SegmentSinksStore from "./segment_sinks_store";
42
42
 
43
43
  export default SegmentSinksStore;
44
44
  export type {
@@ -55,8 +55,9 @@ export interface ISegmentSinkMetrics {
55
55
 
56
56
  interface ISegmentSinkMetricForType {
57
57
  bufferType: IBufferType;
58
- codec: string | undefined;
59
- segmentInventory: IBufferedChunkSnapshot[] | undefined;
58
+ codec?: string | undefined;
59
+ sizeEstimate?: number | undefined;
60
+ segmentInventory?: IBufferedChunkSnapshot[] | undefined;
60
61
  }
61
62
 
62
63
  /**
@@ -385,15 +386,26 @@ export default class SegmentSinksStore {
385
386
  private createSegmentSinkMetricsForType(
386
387
  bufferType: IBufferType,
387
388
  ): ISegmentSinkMetricForType {
389
+ const inventory = this._initializedSegmentSinks[bufferType]?.getLastKnownInventory();
390
+ let sizeEstimate: number | undefined;
391
+ if (inventory !== undefined) {
392
+ sizeEstimate = 0;
393
+ for (const item of inventory) {
394
+ if (item.chunkSize === undefined || sizeEstimate === undefined) {
395
+ sizeEstimate = undefined;
396
+ break;
397
+ }
398
+ sizeEstimate += item.chunkSize;
399
+ }
400
+ }
388
401
  return {
389
402
  bufferType,
403
+ sizeEstimate,
390
404
  codec: this._initializedSegmentSinks[bufferType]?.codec,
391
- segmentInventory: this._initializedSegmentSinks[bufferType]
392
- ?.getLastKnownInventory()
393
- .map((chunk) => ({
394
- ...chunk,
395
- infos: getChunkContextSnapshot(chunk.infos),
396
- })),
405
+ segmentInventory: inventory?.map((chunk) => ({
406
+ ...chunk,
407
+ infos: getChunkContextSnapshot(chunk.infos),
408
+ })),
397
409
  };
398
410
  }
399
411
 
@@ -1,4 +1,4 @@
1
- import type { IBufferedChunkSnapshot } from "../../../core/segment_sinks/segment_buffers_store";
1
+ import type { IBufferedChunkSnapshot } from "../../../core/segment_sinks/segment_sinks_store";
2
2
  import type { IRepresentationMetadata } from "../../../manifest";
3
3
 
4
4
  const BUFFER_WIDTH_IN_SECONDS = 30 * 60;
@@ -1,4 +1,4 @@
1
- import type { ISegmentSinkMetrics } from "../../../../core/segment_sinks/segment_buffers_store";
1
+ import type { ISegmentSinkMetrics } from "../../../../core/segment_sinks/segment_sinks_store";
2
2
  import type { IBufferType } from "../../../../core/types";
3
3
  import type {
4
4
  IAdaptationMetadata,
@@ -28,6 +28,7 @@ export default function createSegmentSinkGraph(
28
28
  const bufferGraphWrapper = createElement("div");
29
29
  const bufferTitle = createMetricTitle(title);
30
30
  const canvasElt = createGraphCanvas();
31
+ const bufferSizeElt = document.createElement("span");
31
32
  const currentRangeRepInfoElt = createElement("div");
32
33
  const loadingRangeRepInfoElt = createElement("div");
33
34
  const bufferGraph = new SegmentSinkGraph(canvasElt);
@@ -48,8 +49,11 @@ export default function createSegmentSinkGraph(
48
49
 
49
50
  bufferGraphWrapper.appendChild(bufferTitle);
50
51
  bufferGraphWrapper.appendChild(canvasElt);
52
+ bufferGraphWrapper.appendChild(bufferSizeElt);
51
53
  bufferGraphWrapper.appendChild(currentRangeRepInfoElt);
52
54
  bufferGraphWrapper.appendChild(loadingRangeRepInfoElt);
55
+ bufferSizeElt.style.marginLeft = "5px";
56
+ bufferSizeElt.style.fontSize = "0.9em";
53
57
  bufferGraphWrapper.style.padding = "5px 0px";
54
58
  update();
55
59
  return bufferGraphWrapper;
@@ -75,13 +79,29 @@ export default function createSegmentSinkGraph(
75
79
 
76
80
  function updateBufferMetrics() {
77
81
  const showAllInfo = isExtendedMode(parentElt);
78
- const inventory = bufferMetrics?.segmentSinks[bufferType].segmentInventory;
82
+ const metricsForType = bufferMetrics?.segmentSinks[bufferType];
83
+ const inventory = metricsForType?.segmentInventory;
79
84
  if (bufferMetrics === null || inventory === undefined) {
80
85
  bufferGraphWrapper.style.display = "none";
86
+ bufferSizeElt.innerHTML = "";
81
87
  currentRangeRepInfoElt.innerHTML = "";
82
88
  loadingRangeRepInfoElt.innerHTML = "";
83
89
  } else {
84
90
  bufferGraphWrapper.style.display = "block";
91
+ if (metricsForType?.sizeEstimate !== undefined) {
92
+ const sizeEstimate = metricsForType.sizeEstimate;
93
+ let sizeStr: string;
94
+ if (sizeEstimate > 2e6) {
95
+ sizeStr = (sizeEstimate / 1e6).toFixed(2) + "MB";
96
+ } else if (sizeEstimate > 2e3) {
97
+ sizeStr = (sizeEstimate / 1e3).toFixed(2) + "kB";
98
+ } else {
99
+ sizeStr = sizeEstimate + "B";
100
+ }
101
+ bufferSizeElt.innerHTML = sizeStr;
102
+ } else {
103
+ bufferSizeElt.innerHTML = "";
104
+ }
85
105
  const currentTime = instance.getPosition();
86
106
  const width = Math.min(parentElt.clientWidth - 150, 600);
87
107
  bufferGraph.update({
@@ -155,7 +175,7 @@ function constructRepresentationInfo(content: {
155
175
  isSignInterpreted,
156
176
  type: bufferType,
157
177
  } = content.adaptation;
158
- const { id, height, width, bitrate, codecs } = content.representation;
178
+ const { id, height, width, bitrate, codecs, hdrInfo } = content.representation;
159
179
  let representationInfo = `"${id}" `;
160
180
  if (height !== undefined && width !== undefined) {
161
181
  representationInfo += `${width}x${height} `;
@@ -169,6 +189,9 @@ function constructRepresentationInfo(content: {
169
189
  if (language !== undefined) {
170
190
  representationInfo += `l:"${language}" `;
171
191
  }
192
+ if (bufferType === "video" && hdrInfo !== undefined) {
193
+ representationInfo += "hdr:1 ";
194
+ }
172
195
  if (bufferType === "video" && typeof isSignInterpreted === "boolean") {
173
196
  representationInfo += `si:${isSignInterpreted ? 1 : 0} `;
174
197
  }
@@ -33,7 +33,7 @@ import hasMseInWorker from "../../compat/has_mse_in_worker";
33
33
  import hasWorkerApi from "../../compat/has_worker_api";
34
34
  import isDebugModeEnabled from "../../compat/is_debug_mode_enabled";
35
35
  import config from "../../config";
36
- import type { ISegmentSinkMetrics } from "../../core/segment_sinks/segment_buffers_store";
36
+ import type { ISegmentSinkMetrics } from "../../core/segment_sinks/segment_sinks_store";
37
37
  import type {
38
38
  IAdaptationChoice,
39
39
  IInbandEvent,
@@ -411,7 +411,7 @@ class Player extends EventEmitter<IPublicAPIEvent> {
411
411
  // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1194624
412
412
  videoElement.preload = "auto";
413
413
 
414
- this.version = /* PLAYER_VERSION */ "4.2.0";
414
+ this.version = /* PLAYER_VERSION */ "4.2.1-dev.2024102300";
415
415
  this.log = log;
416
416
  this.state = "STOPPED";
417
417
  this.videoElement = videoElement;
@@ -3330,7 +3330,7 @@ class Player extends EventEmitter<IPublicAPIEvent> {
3330
3330
  }
3331
3331
  }
3332
3332
  }
3333
- Player.version = /* PLAYER_VERSION */ "4.2.0";
3333
+ Player.version = /* PLAYER_VERSION */ "4.2.1-dev.2024102300";
3334
3334
 
3335
3335
  /** Every events sent by the RxPlayer's public API. */
3336
3336
  interface IPublicAPIEvent {
@@ -204,7 +204,7 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
204
204
  this._initCanceller.signal,
205
205
  );
206
206
 
207
- this._initializeMediaSourceAndDecryption(mediaElement)
207
+ this._setupInitialMediaSourceAndDecryption(mediaElement)
208
208
  .then((initResult) =>
209
209
  this._onInitialMediaSourceReady(
210
210
  mediaElement,
@@ -230,6 +230,10 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
230
230
  this._manifestFetcher.updateContentUrls(urls, refreshNow);
231
231
  }
232
232
 
233
+ /**
234
+ * Stop content and free all resources linked to this
235
+ * `MediaSourceContentInitializer`.
236
+ */
233
237
  public dispose(): void {
234
238
  this._initCanceller.cancel();
235
239
  }
@@ -252,7 +256,7 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
252
256
  * @param {HTMLMediaElement|null} mediaElement
253
257
  * @returns {Promise.<Object>}
254
258
  */
255
- private _initializeMediaSourceAndDecryption(mediaElement: IMediaElement): Promise<{
259
+ private _setupInitialMediaSourceAndDecryption(mediaElement: IMediaElement): Promise<{
256
260
  mediaSource: MainMediaSourceInterface;
257
261
  drmSystemId: string | undefined;
258
262
  unlinkMediaSource: TaskCanceller;
@@ -452,80 +456,84 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
452
456
  return;
453
457
  }
454
458
 
455
- const bufferOnMediaSource = this._startBufferingOnMediaSource.bind(this);
456
- const triggerEvent = this.trigger.bind(this);
457
- const onFatalError = this._onFatalError.bind(this);
458
-
459
459
  // handle initial load and reloads
460
- recursivelyLoadOnMediaSource(
461
- initialMediaSource,
462
- initialTime,
463
- autoPlay,
464
- initialMediaSourceCanceller,
465
- );
466
-
467
- /**
468
- * Load the content defined by the Manifest in the mediaSource given at the
469
- * given position and playing status.
470
- * This function recursively re-call itself when a MediaSource reload is
471
- * wanted.
472
- * @param {MediaSource} mediaSource
473
- * @param {number} startingPos
474
- * @param {Object} currentCanceller
475
- * @param {boolean} shouldPlay
476
- */
477
- function recursivelyLoadOnMediaSource(
478
- mediaSource: MainMediaSourceInterface,
479
- startingPos: number,
480
- shouldPlay: boolean,
481
- currentCanceller: TaskCanceller,
482
- ): void {
483
- const opts = {
460
+ this._setupContentWithNewMediaSource(
461
+ {
484
462
  mediaElement,
485
463
  playbackObserver,
486
- mediaSource,
487
- initialTime: startingPos,
488
- autoPlay: shouldPlay,
464
+ mediaSource: initialMediaSource,
465
+ initialTime,
466
+ autoPlay,
489
467
  manifest,
490
468
  representationEstimator,
491
469
  segmentQueueCreator,
492
470
  speed,
493
471
  bufferOptions: subBufferOptions,
494
- };
495
- bufferOnMediaSource(opts, onReloadMediaSource, currentCanceller.signal);
496
-
497
- function onReloadMediaSource(reloadOrder: {
498
- position: number;
499
- autoPlay: boolean;
500
- }): void {
501
- currentCanceller.cancel();
502
- if (initCanceller.isUsed()) {
503
- return;
504
- }
505
- triggerEvent("reloadingMediaSource", reloadOrder);
506
- if (initCanceller.isUsed()) {
507
- return;
508
- }
472
+ },
473
+ initialMediaSourceCanceller,
474
+ );
475
+ }
509
476
 
510
- const newCanceller = new TaskCanceller();
511
- newCanceller.linkToSignal(initCanceller.signal);
512
- createMediaSource(mediaElement, newCanceller.signal)
513
- .then((newMediaSource) => {
514
- recursivelyLoadOnMediaSource(
515
- newMediaSource,
516
- reloadOrder.position,
517
- reloadOrder.autoPlay,
518
- newCanceller,
519
- );
520
- })
521
- .catch((err) => {
522
- if (newCanceller.isUsed()) {
523
- return;
524
- }
525
- onFatalError(err);
526
- });
477
+ /**
478
+ * Load the content defined by the Manifest in the mediaSource given at the
479
+ * given position and playing status.
480
+ * This function recursively re-call itself when a MediaSource reload is
481
+ * wanted.
482
+ * @param {Object} args
483
+ * @param {Object} currentCanceller
484
+ */
485
+ private _setupContentWithNewMediaSource(
486
+ args: IBufferingMediaSettings,
487
+ currentCanceller: TaskCanceller,
488
+ ): void {
489
+ this._startLoadingContentOnMediaSource(
490
+ args,
491
+ this._createReloadMediaSourceCallback(args, currentCanceller),
492
+ currentCanceller.signal,
493
+ );
494
+ }
495
+
496
+ /**
497
+ * Create `IReloadMediaSourceCallback` allowing to handle reload orders.
498
+ * @param {Object} args
499
+ * @param {Object} currentCanceller
500
+ */
501
+ private _createReloadMediaSourceCallback(
502
+ args: IBufferingMediaSettings,
503
+ currentCanceller: TaskCanceller,
504
+ ): IReloadMediaSourceCallback {
505
+ const initCanceller = this._initCanceller;
506
+ return (reloadOrder: { position: number; autoPlay: boolean }): void => {
507
+ currentCanceller.cancel();
508
+ if (initCanceller.isUsed()) {
509
+ return;
527
510
  }
528
- }
511
+ this.trigger("reloadingMediaSource", reloadOrder);
512
+ if (initCanceller.isUsed()) {
513
+ return;
514
+ }
515
+
516
+ const newCanceller = new TaskCanceller();
517
+ newCanceller.linkToSignal(initCanceller.signal);
518
+ createMediaSource(args.mediaElement, newCanceller.signal)
519
+ .then((newMediaSource) => {
520
+ this._setupContentWithNewMediaSource(
521
+ {
522
+ ...args,
523
+ mediaSource: newMediaSource,
524
+ initialTime: reloadOrder.position,
525
+ autoPlay: reloadOrder.autoPlay,
526
+ },
527
+ newCanceller,
528
+ );
529
+ })
530
+ .catch((err) => {
531
+ if (newCanceller.isUsed()) {
532
+ return;
533
+ }
534
+ this._onFatalError(err);
535
+ });
536
+ };
529
537
  }
530
538
 
531
539
  /**
@@ -534,7 +542,7 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
534
542
  * @param {function} onReloadOrder
535
543
  * @param {Object} cancelSignal
536
544
  */
537
- private _startBufferingOnMediaSource(
545
+ private _startLoadingContentOnMediaSource(
538
546
  args: IBufferingMediaSettings,
539
547
  onReloadOrder: IReloadMediaSourceCallback,
540
548
  cancelSignal: CancellationSignal,
@@ -1,7 +1,7 @@
1
1
  import type { IMediaElement } from "../../compat/browser_compatibility_types";
2
2
  import mayMediaElementFailOnUndecipherableData from "../../compat/may_media_element_fail_on_undecipherable_data";
3
3
  import shouldReloadMediaSourceOnDecipherabilityUpdate from "../../compat/should_reload_media_source_on_decipherability_update";
4
- import type { ISegmentSinkMetrics } from "../../core/segment_sinks/segment_buffers_store";
4
+ import type { ISegmentSinkMetrics } from "../../core/segment_sinks/segment_sinks_store";
5
5
  import type {
6
6
  IAdaptiveRepresentationSelectorArguments,
7
7
  IAdaptationChoice,
@@ -15,7 +15,7 @@
15
15
  */
16
16
 
17
17
  import type { IMediaElement } from "../../compat/browser_compatibility_types";
18
- import type { ISegmentSinkMetrics } from "../../core/segment_sinks/segment_buffers_store";
18
+ import type { ISegmentSinkMetrics } from "../../core/segment_sinks/segment_sinks_store";
19
19
  import type { IBufferType, IAdaptationChoice, IInbandEvent } from "../../core/types";
20
20
  import type {
21
21
  IPeriodsUpdateResult,
@@ -212,52 +212,8 @@ export class MainSourceBufferInterface implements ISourceBufferInterface {
212
212
  this._operationQueue = [];
213
213
  this._currentOperations = [];
214
214
 
215
- const onError = (evt: Event) => {
216
- let error: Error;
217
- if ((evt as unknown as Error) instanceof Error) {
218
- error = evt as unknown as Error;
219
- } else if ((evt as unknown as { error: Error }).error instanceof Error) {
220
- error = (evt as unknown as { error: Error }).error;
221
- } else {
222
- error = new Error("Unknown SourceBuffer Error");
223
- }
224
- const currentOps = this._currentOperations;
225
- this._currentOperations = [];
226
- if (currentOps.length === 0) {
227
- log.error("SBI: error for an unknown operation", error);
228
- } else {
229
- const rejected = new SourceBufferError(
230
- error.name,
231
- error.message,
232
- error.name === "QuotaExceededError",
233
- );
234
- for (const op of currentOps) {
235
- op.reject(rejected);
236
- }
237
- }
238
- };
239
- const onUpdateEnd = () => {
240
- const currentOps = this._currentOperations;
241
- this._currentOperations = [];
242
- try {
243
- for (const op of currentOps) {
244
- op.resolve(convertToRanges(this._sourceBuffer.buffered));
245
- }
246
- } catch (err) {
247
- for (const op of currentOps) {
248
- if (err instanceof Error && err.name === "InvalidStateError") {
249
- // Most likely the SourceBuffer just has been removed from the
250
- // `MediaSource`.
251
- // Just return an empty buffered range.
252
- op.resolve([]);
253
- } else {
254
- op.reject(err);
255
- }
256
- }
257
- }
258
- this._performNextOperation();
259
- };
260
-
215
+ const onError = this._onError.bind(this);
216
+ const onUpdateEnd = this._onUpdateEnd.bind(this);
261
217
  sourceBuffer.addEventListener("updateend", onUpdateEnd);
262
218
  sourceBuffer.addEventListener("error", onError);
263
219
  this._canceller.signal.register(() => {
@@ -325,6 +281,53 @@ export class MainSourceBufferInterface implements ISourceBufferInterface {
325
281
  this._emptyCurrentQueue();
326
282
  }
327
283
 
284
+ private _onError(evt: Event) {
285
+ let error: Error;
286
+ if ((evt as unknown as Error) instanceof Error) {
287
+ error = evt as unknown as Error;
288
+ } else if ((evt as unknown as { error: Error }).error instanceof Error) {
289
+ error = (evt as unknown as { error: Error }).error;
290
+ } else {
291
+ error = new Error("Unknown SourceBuffer Error");
292
+ }
293
+ const currentOps = this._currentOperations;
294
+ this._currentOperations = [];
295
+ if (currentOps.length === 0) {
296
+ log.error("SBI: error for an unknown operation", error);
297
+ } else {
298
+ const rejected = new SourceBufferError(
299
+ error.name,
300
+ error.message,
301
+ error.name === "QuotaExceededError",
302
+ );
303
+ for (const op of currentOps) {
304
+ op.reject(rejected);
305
+ }
306
+ }
307
+ }
308
+
309
+ private _onUpdateEnd() {
310
+ const currentOps = this._currentOperations;
311
+ this._currentOperations = [];
312
+ try {
313
+ for (const op of currentOps) {
314
+ op.resolve(convertToRanges(this._sourceBuffer.buffered));
315
+ }
316
+ } catch (err) {
317
+ for (const op of currentOps) {
318
+ if (err instanceof Error && err.name === "InvalidStateError") {
319
+ // Most likely the SourceBuffer just has been removed from the
320
+ // `MediaSource`.
321
+ // Just return an empty buffered range.
322
+ op.resolve([]);
323
+ } else {
324
+ op.reject(err);
325
+ }
326
+ }
327
+ }
328
+ this._performNextOperation();
329
+ }
330
+
328
331
  private _emptyCurrentQueue(): void {
329
332
  const error = new CancellationError();
330
333
  if (this._currentOperations.length > 0) {
@@ -4,7 +4,7 @@
4
4
  * multithread situation.
5
5
  */
6
6
 
7
- import type { ISegmentSinkMetrics } from "./core/segment_sinks/segment_buffers_store";
7
+ import type { ISegmentSinkMetrics } from "./core/segment_sinks/segment_sinks_store";
8
8
  import type {
9
9
  IResolutionInfo,
10
10
  IManifestFetcherSettings,
@@ -1,9 +0,0 @@
1
- {
2
- "files.watcherExclude": {
3
- "**/node_modules/**": true,
4
- "**/dist/**": true,
5
- "**/build/**": true
6
- },
7
- "editor.formatOnSave": true,
8
- "editor.defaultFormatter": "dbaeumer.vscode-eslint"
9
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"audio_video_segment_buffer.d.ts","sourceRoot":"","sources":["../../../../../../src/core/segment_sinks/implementations/audio_video/audio_video_segment_buffer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EACV,qBAAqB,EAErB,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EAEf,YAAY,EACb,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,WAAW,EAAwB,MAAM,UAAU,CAAC;AAE7D;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,WAAW;IAC5D,sCAAsC;IACtC,SAAgB,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC;IAE9C,mCAAmC;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyB;IAEvD;;;OAGG;IACH,OAAO,CAAC,kBAAkB,CAGvB;IAEH;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,wBAAwB,CAAgB;IAEhD;;;OAGG;IACH,OAAO,CAAC,gBAAgB,CAA4B;IAEpD;;;;;OAKG;gBAED,UAAU,EAAE,gBAAgB,EAC5B,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,qBAAqB;IAcpC,uBAAuB;IAChB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,GAAG,IAAI;IAK3E,uBAAuB;IAChB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI9C;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACU,SAAS,CAAC,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAwE1E,uBAAuB;IACV,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAiBxE;;;;;;;;OAQG;IACU,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB9E;;;;OAIG;IACI,oBAAoB,IAAI,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAI3D,uBAAuB;IAChB,OAAO,IAAI,IAAI;IAYtB;;;;;;;;;OASG;IACH,OAAO,CAAC,oBAAoB;IAmC5B;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,oBAAoB;CAc7B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"text_segment_buffer.d.ts","sourceRoot":"","sources":["../../../../../../src/core/segment_sinks/implementations/text/text_segment_buffer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAGpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACpF,OAAO,EAAE,WAAW,EAAwB,MAAM,UAAU,CAAC;AAE7D;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,WAAW;IACtD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,OAAO,CAAC,OAAO,CAA0B;IAEzC,OAAO,CAAC,kBAAkB,CAGvB;IAEH;;OAEG;gBACS,mBAAmB,EAAE,uBAAuB;IASxD;;OAEG;IACI,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIjD;;OAEG;IACI,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI9C;;;;OAIG;IACU,SAAS,CAAC,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAwB1E;;;;;OAKG;IACU,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAWxE;;;OAGG;IACU,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB9E;;OAEG;IACI,oBAAoB,IAAI,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAIpD,OAAO,IAAI,IAAI;IAKtB,OAAO,CAAC,oBAAoB;CAc7B;AAED,uEAAuE;AACvE,MAAM,WAAW,4BAA4B;IAC3C,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,0DAA0D;IAC1D,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B;AAgCD;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,YAAY,CACV,GAAG,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAClD,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IACvD;;OAEG;IACH,MAAM,CACJ,GAAG,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAClD,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IACvD;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;IACd;;OAEG;IACH,IAAI,IAAI,IAAI,CAAC;CACd"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"segment_buffers_store.d.ts","sourceRoot":"","sources":["../../../../src/core/segment_sinks/segment_buffers_store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAMvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAiB,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAI9E,0EAA0E;AAC1E,KAAK,sBAAsB,GAAG,OAAO,GAAG,OAAO,CAAC;AAEhD;;;;GAIG;AACH,MAAM,WAAW,sBAAuB,SAAQ,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC;IAC3E,KAAK,EAAE,qBAAqB,CAAC;CAC9B;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC,OAAO,GAAG,OAAO,GAAG,MAAM,EAAE,yBAAyB,CAAC,CAAC;CAC7E;AAED,UAAU,yBAAyB;IACjC,UAAU,EAAE,WAAW,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,gBAAgB,EAAE,sBAAsB,EAAE,GAAG,SAAS,CAAC;CACxD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC;;;;;;;;OAQG;IACH,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,IAAI,sBAAsB;IAIzE,kEAAkE;IAClE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IAErD;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB,CAI9B;IAEF;;;;OAIG;IACH,OAAO,CAAC,8BAA8B,CAAoB;IAE1D,OAAO,CAAC,cAAc,CAAiC;IAEvD,OAAO,CAAC,SAAS,CAAU;IAE3B;;;OAGG;gBAED,WAAW,EAAE,qBAAqB,EAClC,QAAQ,EAAE,OAAO,EACjB,sBAAsB,EAAE,uBAAuB,GAAG,IAAI;IASxD;;;;OAIG;IACI,cAAc,IAAI,WAAW,EAAE;IAQtC;;;;OAIG;IACI,oBAAoB,IAAI,WAAW,EAAE;IAI5C;;;;;;;;;;;;;;;;;;;;;OAqBG;IACI,SAAS,CACd,UAAU,EAAE,WAAW,GAErB;QAAE,IAAI,EAAE,aAAa,CAAC;QAAC,KAAK,EAAE,WAAW,CAAA;KAAE,GAC3C;QAAE,IAAI,EAAE,eAAe,CAAA;KAAE,GACzB;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE;IAWxB;;;;;;;;;;;;;;;OAeG;IACI,oBAAoB,CAAC,gBAAgB,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BhF;;;;;;OAMG;IACI,kBAAkB,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI;IAgBxD;;;;;;;;;;;OAWG;IACI,iBAAiB,CAAC,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW;IAwD7E;;;OAGG;IACI,kBAAkB,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI;IAYxD;;OAEG;IACI,UAAU,IAAI,IAAI;IAQzB;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAqB/B,OAAO,CAAC,+BAA+B;IAehC,sBAAsB,IAAI,mBAAmB;CASrD"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"audio_video_segment_buffer.d.ts","sourceRoot":"","sources":["../../../../../../src/core/segment_sinks/implementations/audio_video/audio_video_segment_buffer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EACV,qBAAqB,EAErB,gBAAgB,EACjB,MAAM,iBAAiB,CAAC;AAEzB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EACV,oBAAoB,EACpB,eAAe,EAEf,YAAY,EACb,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,WAAW,EAAwB,MAAM,UAAU,CAAC;AAE7D;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,WAAW;IAC5D,sCAAsC;IACtC,SAAgB,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC;IAE9C,mCAAmC;IACnC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAyB;IAEvD;;;OAGG;IACH,OAAO,CAAC,kBAAkB,CAGvB;IAEH;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,wBAAwB,CAAgB;IAEhD;;;OAGG;IACH,OAAO,CAAC,gBAAgB,CAA4B;IAEpD;;;;;OAKG;gBAED,UAAU,EAAE,gBAAgB,EAC5B,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,qBAAqB;IAcpC,uBAAuB;IAChB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,eAAe,EAAE,OAAO,GAAG,IAAI;IAK3E,uBAAuB;IAChB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI9C;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACU,SAAS,CAAC,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAwE1E,uBAAuB;IACV,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAiBxE;;;;;;;;OAQG;IACU,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB9E;;;;OAIG;IACI,oBAAoB,IAAI,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAI3D,uBAAuB;IAChB,OAAO,IAAI,IAAI;IAYtB;;;;;;;;;OASG;IACH,OAAO,CAAC,oBAAoB;IAmC5B;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,oBAAoB;CAc7B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"text_segment_buffer.d.ts","sourceRoot":"","sources":["../../../../../../src/core/segment_sinks/implementations/text/text_segment_buffer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAGpE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AACvD,OAAO,KAAK,EAAE,oBAAoB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACpF,OAAO,EAAE,WAAW,EAAwB,MAAM,UAAU,CAAC;AAE7D;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,eAAgB,SAAQ,WAAW;IACtD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,OAAO,CAAC,OAAO,CAA0B;IAEzC,OAAO,CAAC,kBAAkB,CAGvB;IAEH;;OAEG;gBACS,mBAAmB,EAAE,uBAAuB;IASxD;;OAEG;IACI,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAIjD;;OAEG;IACI,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAI9C;;;;OAIG;IACU,SAAS,CAAC,KAAK,EAAE,eAAe,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAwB1E;;;;;OAKG;IACU,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAWxE;;;OAGG;IACU,qBAAqB,CAAC,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAiB9E;;OAEG;IACI,oBAAoB,IAAI,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAIpD,OAAO,IAAI,IAAI;IAKtB,OAAO,CAAC,oBAAoB;CAc7B;AAED,uEAAuE;AACvE,MAAM,WAAW,4BAA4B;IAC3C,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,0DAA0D;IAC1D,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B;AAgCD;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC;;OAEG;IACH,YAAY,CACV,GAAG,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAClD,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IACvD;;OAEG;IACH,MAAM,CACJ,GAAG,IAAI,EAAE,UAAU,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,GAClD,OAAO,CAAC,UAAU,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IACvD;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;IACd;;OAEG;IACH,IAAI,IAAI,IAAI,CAAC;CACd"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"segment_buffers_store.d.ts","sourceRoot":"","sources":["../../../../src/core/segment_sinks/segment_buffers_store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAMvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAiB,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAI9E,0EAA0E;AAC1E,KAAK,sBAAsB,GAAG,OAAO,GAAG,OAAO,CAAC;AAEhD;;;;GAIG;AACH,MAAM,WAAW,sBAAuB,SAAQ,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC;IAC3E,KAAK,EAAE,qBAAqB,CAAC;CAC9B;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC,OAAO,GAAG,OAAO,GAAG,MAAM,EAAE,yBAAyB,CAAC,CAAC;CAC7E;AAED,UAAU,yBAAyB;IACjC,UAAU,EAAE,WAAW,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,gBAAgB,EAAE,sBAAsB,EAAE,GAAG,SAAS,CAAC;CACxD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC;;;;;;;;OAQG;IACH,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,IAAI,sBAAsB;IAIzE,kEAAkE;IAClE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IAErD;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB,CAI9B;IAEF;;;;OAIG;IACH,OAAO,CAAC,8BAA8B,CAAoB;IAE1D,OAAO,CAAC,cAAc,CAAiC;IAEvD,OAAO,CAAC,SAAS,CAAU;IAE3B;;;OAGG;gBAED,WAAW,EAAE,qBAAqB,EAClC,QAAQ,EAAE,OAAO,EACjB,sBAAsB,EAAE,uBAAuB,GAAG,IAAI;IASxD;;;;OAIG;IACI,cAAc,IAAI,WAAW,EAAE;IAQtC;;;;OAIG;IACI,oBAAoB,IAAI,WAAW,EAAE;IAI5C;;;;;;;;;;;;;;;;;;;;;OAqBG;IACI,SAAS,CACd,UAAU,EAAE,WAAW,GAErB;QAAE,IAAI,EAAE,aAAa,CAAC;QAAC,KAAK,EAAE,WAAW,CAAA;KAAE,GAC3C;QAAE,IAAI,EAAE,eAAe,CAAA;KAAE,GACzB;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE;IAWxB;;;;;;;;;;;;;;;OAeG;IACI,oBAAoB,CAAC,gBAAgB,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BhF;;;;;;OAMG;IACI,kBAAkB,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI;IAgBxD;;;;;;;;;;;OAWG;IACI,iBAAiB,CAAC,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW;IAwD7E;;;OAGG;IACI,kBAAkB,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI;IAYxD;;OAEG;IACI,UAAU,IAAI,IAAI;IAQzB;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAqB/B,OAAO,CAAC,+BAA+B;IAehC,sBAAsB,IAAI,mBAAmB;CASrD"}