rx-player 4.2.0-dev.2024092400 → 4.2.0-dev.2024100200

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 (63) hide show
  1. package/CHANGELOG.md +10 -3
  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/core/main/worker/worker_main.d.ts.map +1 -1
  6. package/dist/commonjs/core/main/worker/worker_main.js +3 -0
  7. package/dist/commonjs/core/stream/adaptation/adaptation_stream.d.ts.map +1 -1
  8. package/dist/commonjs/core/stream/adaptation/adaptation_stream.js +15 -0
  9. package/dist/commonjs/core/stream/representation/representation_stream.d.ts.map +1 -1
  10. package/dist/commonjs/core/stream/representation/representation_stream.js +2 -0
  11. package/dist/commonjs/main_thread/api/public_api.js +2 -2
  12. package/dist/commonjs/main_thread/init/directfile_content_initializer.d.ts.map +1 -1
  13. package/dist/commonjs/main_thread/init/directfile_content_initializer.js +14 -6
  14. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.d.ts +13 -0
  15. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.d.ts.map +1 -1
  16. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.js +94 -45
  17. package/dist/commonjs/main_thread/init/utils/initial_seek_and_play.d.ts +1 -1
  18. package/dist/commonjs/main_thread/init/utils/initial_seek_and_play.d.ts.map +1 -1
  19. package/dist/commonjs/main_thread/init/utils/initial_seek_and_play.js +21 -5
  20. package/dist/commonjs/mse/main_media_source_interface.d.ts.map +1 -1
  21. package/dist/commonjs/mse/main_media_source_interface.js +21 -2
  22. package/dist/commonjs/transports/smooth/pipelines.d.ts.map +1 -1
  23. package/dist/commonjs/transports/smooth/pipelines.js +1 -0
  24. package/dist/commonjs/transports/utils/parse_text_track.d.ts.map +1 -1
  25. package/dist/commonjs/transports/utils/parse_text_track.js +1 -0
  26. package/dist/es2017/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
  27. package/dist/es2017/__GENERATED_CODE/embedded_worker.js +1 -1
  28. package/dist/es2017/core/main/worker/worker_main.d.ts.map +1 -1
  29. package/dist/es2017/core/main/worker/worker_main.js +3 -0
  30. package/dist/es2017/core/stream/adaptation/adaptation_stream.d.ts.map +1 -1
  31. package/dist/es2017/core/stream/adaptation/adaptation_stream.js +15 -0
  32. package/dist/es2017/core/stream/representation/representation_stream.d.ts.map +1 -1
  33. package/dist/es2017/core/stream/representation/representation_stream.js +2 -0
  34. package/dist/es2017/main_thread/api/public_api.js +2 -2
  35. package/dist/es2017/main_thread/init/directfile_content_initializer.d.ts.map +1 -1
  36. package/dist/es2017/main_thread/init/directfile_content_initializer.js +14 -6
  37. package/dist/es2017/main_thread/init/multi_thread_content_initializer.d.ts +13 -0
  38. package/dist/es2017/main_thread/init/multi_thread_content_initializer.d.ts.map +1 -1
  39. package/dist/es2017/main_thread/init/multi_thread_content_initializer.js +78 -41
  40. package/dist/es2017/main_thread/init/utils/initial_seek_and_play.d.ts +1 -1
  41. package/dist/es2017/main_thread/init/utils/initial_seek_and_play.d.ts.map +1 -1
  42. package/dist/es2017/main_thread/init/utils/initial_seek_and_play.js +19 -3
  43. package/dist/es2017/mse/main_media_source_interface.d.ts.map +1 -1
  44. package/dist/es2017/mse/main_media_source_interface.js +19 -0
  45. package/dist/es2017/transports/smooth/pipelines.d.ts.map +1 -1
  46. package/dist/es2017/transports/smooth/pipelines.js +1 -0
  47. package/dist/es2017/transports/utils/parse_text_track.d.ts.map +1 -1
  48. package/dist/es2017/transports/utils/parse_text_track.js +1 -0
  49. package/dist/rx-player.js +53 -14
  50. package/dist/rx-player.min.js +8 -8
  51. package/dist/worker.js +5 -5
  52. package/package.json +19 -7
  53. package/src/__GENERATED_CODE/embedded_worker.ts +1 -1
  54. package/src/core/main/worker/worker_main.ts +3 -0
  55. package/src/core/stream/adaptation/adaptation_stream.ts +23 -1
  56. package/src/core/stream/representation/representation_stream.ts +11 -0
  57. package/src/main_thread/api/public_api.ts +2 -2
  58. package/src/main_thread/init/directfile_content_initializer.ts +20 -10
  59. package/src/main_thread/init/multi_thread_content_initializer.ts +94 -43
  60. package/src/main_thread/init/utils/initial_seek_and_play.ts +24 -5
  61. package/src/mse/main_media_source_interface.ts +20 -0
  62. package/src/transports/smooth/pipelines.ts +1 -0
  63. package/src/transports/utils/parse_text_track.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"worker_main.d.ts","sourceRoot":"","sources":["../../../../../src/core/main/worker/worker_main.ts"],"names":[],"mappings":"AA+CA,MAAM,CAAC,OAAO,UAAU,oBAAoB,SA6W3C"}
1
+ {"version":3,"file":"worker_main.d.ts","sourceRoot":"","sources":["../../../../../src/core/main/worker/worker_main.ts"],"names":[],"mappings":"AA+CA,MAAM,CAAC,OAAO,UAAU,oBAAoB,SAgX3C"}
@@ -101,6 +101,9 @@ function initializeWorkerMain() {
101
101
  * When set, emit playback observation made on the main thread.
102
102
  */
103
103
  var playbackObservationRef = null;
104
+ onmessageerror = function (_msg) {
105
+ log_1.default.error("MTCI: Error when receiving message from main thread.");
106
+ };
104
107
  onmessage = function (e) {
105
108
  var _a, _b;
106
109
  log_1.default.debug("Worker: received message", e.data.type);
@@ -1 +1 @@
1
- {"version":3,"file":"adaptation_stream.d.ts","sourceRoot":"","sources":["../../../../../src/core/stream/adaptation/adaptation_stream.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AASxE,OAAO,KAAK,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAEtF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CACtC,EACE,gBAAgB,EAChB,OAAO,EACP,OAAO,EACP,uBAAuB,EACvB,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,GACnB,EAAE,0BAA0B,EAC7B,SAAS,EAAE,0BAA0B,EACrC,kBAAkB,EAAE,kBAAkB,GACrC,IAAI,CAubN"}
1
+ {"version":3,"file":"adaptation_stream.d.ts","sourceRoot":"","sources":["../../../../../src/core/stream/adaptation/adaptation_stream.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AASxE,OAAO,KAAK,EAAE,0BAA0B,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAEtF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,MAAM,CAAC,OAAO,UAAU,gBAAgB,CACtC,EACE,gBAAgB,EAChB,OAAO,EACP,OAAO,EACP,uBAAuB,EACvB,WAAW,EACX,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,GACnB,EAAE,0BAA0B,EAC7B,SAAS,EAAE,0BAA0B,EACrC,kBAAkB,EAAE,kBAAkB,GACrC,IAAI,CA6cN"}
@@ -363,8 +363,11 @@ function AdaptationStream(_a, callbacks, parentCancelSignal) {
363
363
  * anything this function is doing and free allocated resources.
364
364
  */
365
365
  function createRepresentationStream(representation, terminateCurrentStream, representationStreamCallbacks, fnCancelSignal) {
366
+ /** Set to `true` if we've encountered an error with this `RepresentationStream` */
367
+ var hasEncounteredError = false;
366
368
  var bufferGoalCanceller = new task_canceller_1.default();
367
369
  bufferGoalCanceller.linkToSignal(fnCancelSignal);
370
+ /** Actually built buffer size, in seconds. */
368
371
  var bufferGoal = (0, reference_1.createMappedReference)(wantedBufferAhead, function (prev) {
369
372
  return getBufferGoal(representation, prev);
370
373
  }, bufferGoalCanceller.signal);
@@ -373,6 +376,17 @@ function AdaptationStream(_a, callbacks, parentCancelSignal) {
373
376
  var updatedCallbacks = (0, object_assign_1.default)({}, representationStreamCallbacks, {
374
377
  error: function (err) {
375
378
  var _a;
379
+ if (hasEncounteredError) {
380
+ // A RepresentationStream might trigger multiple Errors (for example
381
+ // multiple segments it tried to push at once led to errors).
382
+ // In that case, we'll only consider the first Error.
383
+ //
384
+ // That could mean that we're hiding legitimate issues but handling
385
+ // multiple of those errors at once is too hard a task for now.
386
+ log_1.default.warn("Stream: Ignoring RepresentationStream error", err);
387
+ return;
388
+ }
389
+ hasEncounteredError = true;
376
390
  var formattedError = (0, errors_1.formatError)(err, {
377
391
  defaultCode: "NONE",
378
392
  defaultReason: "Unknown `RepresentationStream` error",
@@ -381,6 +395,7 @@ function AdaptationStream(_a, callbacks, parentCancelSignal) {
381
395
  representationStreamCallbacks.error(err);
382
396
  }
383
397
  else {
398
+ log_1.default.warn("Stream: received BUFFER_FULL_ERROR", adaptation.type, representation.bitrate);
384
399
  var wba = wantedBufferAhead.getValue();
385
400
  var lastBufferGoalRatio = (_a = bufferGoalRatioMap.get(representation.id)) !== null && _a !== void 0 ? _a : 1;
386
401
  // 70%, 49%, 34.3%, 24%, 16.81%, 11.76%, 8.24% and 5.76%
@@ -1 +1 @@
1
- {"version":3,"file":"representation_stream.d.ts","sourceRoot":"","sources":["../../../../../src/core/stream/representation/representation_stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAeH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAMxE,OAAO,KAAK,EAEV,8BAA8B,EAC9B,8BAA8B,EAC/B,MAAM,SAAS,CAAC;AAMjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,gBAAgB,EAC3D,EACE,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,SAAS,GACV,EAAE,8BAA8B,CAAC,gBAAgB,CAAC,EACnD,SAAS,EAAE,8BAA8B,EACzC,kBAAkB,EAAE,kBAAkB,GACrC,IAAI,CAkZN"}
1
+ {"version":3,"file":"representation_stream.d.ts","sourceRoot":"","sources":["../../../../../src/core/stream/representation/representation_stream.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAeH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAMxE,OAAO,KAAK,EAEV,8BAA8B,EAC9B,8BAA8B,EAC/B,MAAM,SAAS,CAAC;AAMjB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,MAAM,CAAC,OAAO,UAAU,oBAAoB,CAAC,gBAAgB,EAC3D,EACE,OAAO,EACP,OAAO,EACP,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,SAAS,GACV,EAAE,8BAA8B,CAAC,gBAAgB,CAAC,EACnD,SAAS,EAAE,8BAA8B,EACzC,kBAAkB,EAAE,kBAAkB,GACrC,IAAI,CA6ZN"}
@@ -80,6 +80,7 @@ var push_media_segment_1 = require("./utils/push_media_segment");
80
80
  */
81
81
  function RepresentationStream(_a, callbacks, parentCancelSignal) {
82
82
  var content = _a.content, options = _a.options, playbackObserver = _a.playbackObserver, segmentSink = _a.segmentSink, segmentQueue = _a.segmentQueue, terminate = _a.terminate;
83
+ log_1.default.debug("Stream: Creating RepresentationStream", content.adaptation.type, content.representation.bitrate);
83
84
  var period = content.period, adaptation = content.adaptation, representation = content.representation;
84
85
  var bufferGoal = options.bufferGoal, maxBufferSize = options.maxBufferSize, drmSystemId = options.drmSystemId, fastSwitchThreshold = options.fastSwitchThreshold;
85
86
  var bufferType = adaptation.type;
@@ -409,6 +410,7 @@ function RepresentationStream(_a, callbacks, parentCancelSignal) {
409
410
  // We can thus ignore it, it is very unlikely to lead to true buffer issues.
410
411
  return;
411
412
  }
413
+ log_1.default.warn("Stream: Received fatal buffer error", adaptation.type, representation.bitrate, err instanceof Error ? err : null);
412
414
  globalCanceller.cancel();
413
415
  callbacks.error(err);
414
416
  }
@@ -161,7 +161,7 @@ var Player = /** @class */ (function (_super) {
161
161
  // Workaround to support Firefox autoplay on FF 42.
162
162
  // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1194624
163
163
  videoElement.preload = "auto";
164
- _this.version = /* PLAYER_VERSION */ "4.2.0-dev.2024092400";
164
+ _this.version = /* PLAYER_VERSION */ "4.2.0-dev.2024100200";
165
165
  _this.log = log_1.default;
166
166
  _this.state = "STOPPED";
167
167
  _this.videoElement = videoElement;
@@ -2689,5 +2689,5 @@ var Player = /** @class */ (function (_super) {
2689
2689
  Player._priv_currentlyUsedVideoElements = new WeakSet();
2690
2690
  return Player;
2691
2691
  }(event_emitter_1.default));
2692
- Player.version = /* PLAYER_VERSION */ "4.2.0-dev.2024092400";
2692
+ Player.version = /* PLAYER_VERSION */ "4.2.0-dev.2024100200";
2693
2693
  exports.default = Player;
@@ -1 +1 @@
1
- {"version":3,"file":"directfile_content_initializer.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/init/directfile_content_initializer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAI9E,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAgB,MAAM,oBAAoB,CAAC;AAIzE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAOpE;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,OAAO,4BAA6B,SAAQ,kBAAkB;IAC1E;;OAEG;IACH,OAAO,CAAC,SAAS,CAAqB;IACtC;;;OAGG;IACH,OAAO,CAAC,cAAc,CAAgB;IAEtC;;;OAGG;gBACS,QAAQ,EAAE,kBAAkB;IAMxC;;OAEG;IACI,OAAO,IAAI,IAAI;IAItB;;;;;;;OAOG;IACI,KAAK,CACV,YAAY,EAAE,aAAa,EAC3B,gBAAgB,EAAE,6BAA6B,GAC9C,IAAI;IAmFP;;;;OAIG;IACI,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,WAAW,EAAE,OAAO,GAAG,IAAI;IAIjF;;OAEG;IACI,OAAO,IAAI,IAAI;IAItB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAKrB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;CA0CrB;AA8DD,yDAAyD;AACzD,MAAM,WAAW,kBAAkB;IACjC,6EAA6E;IAC7E,QAAQ,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,wDAAwD;IACxD,KAAK,EAAE,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACxC,6CAA6C;IAC7C,OAAO,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAC1C,iCAAiC;IACjC,GAAG,EAAE,MAAM,CAAC;CACb"}
1
+ {"version":3,"file":"directfile_content_initializer.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/init/directfile_content_initializer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;GAGG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAI9E,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,KAAK,EAAE,gBAAgB,EAAgB,MAAM,oBAAoB,CAAC;AAIzE,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAOpE;;;;;;;;;GASG;AACH,MAAM,CAAC,OAAO,OAAO,4BAA6B,SAAQ,kBAAkB;IAC1E;;OAEG;IACH,OAAO,CAAC,SAAS,CAAqB;IACtC;;;OAGG;IACH,OAAO,CAAC,cAAc,CAAgB;IAEtC;;;OAGG;gBACS,QAAQ,EAAE,kBAAkB;IAMxC;;OAEG;IACI,OAAO,IAAI,IAAI;IAItB;;;;;;;OAOG;IACI,KAAK,CACV,YAAY,EAAE,aAAa,EAC3B,gBAAgB,EAAE,6BAA6B,GAC9C,IAAI;IAmFP;;;;OAIG;IACI,iBAAiB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,WAAW,EAAE,OAAO,GAAG,IAAI;IAIjF;;OAEG;IACI,OAAO,IAAI,IAAI;IAItB;;;OAGG;IACH,OAAO,CAAC,aAAa;IAKrB;;;;;OAKG;IACH,OAAO,CAAC,YAAY;CA0CrB;AAwED,yDAAyD;AACzD,MAAM,WAAW,kBAAkB;IACjC,6EAA6E;IAC7E,QAAQ,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,wDAAwD;IACxD,KAAK,EAAE,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACxC,6CAA6C;IAC7C,OAAO,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAC1C,iCAAiC;IACjC,GAAG,EAAE,MAAM,CAAC;CACb"}
@@ -222,23 +222,31 @@ function getDirectFileInitialTime(mediaElement, startAt) {
222
222
  }
223
223
  var duration = mediaElement.duration;
224
224
  if (typeof startAt.fromLastPosition === "number") {
225
- if ((0, is_null_or_undefined_1.default)(duration) || !isFinite(duration)) {
226
- log_1.default.warn("startAt.fromLastPosition set but no known duration, " + "beginning at 0.");
227
- return 0;
225
+ if (!(0, is_null_or_undefined_1.default)(duration) && isFinite(duration)) {
226
+ return Math.max(0, duration + startAt.fromLastPosition);
227
+ }
228
+ if (mediaElement.seekable.length > 0) {
229
+ var lastSegmentEnd = mediaElement.seekable.end(mediaElement.seekable.length - 1);
230
+ if (isFinite(lastSegmentEnd)) {
231
+ return Math.max(0, lastSegmentEnd + startAt.fromLastPosition);
232
+ }
228
233
  }
229
- return Math.max(0, duration + startAt.fromLastPosition);
234
+ log_1.default.warn("Init: startAt.fromLastPosition set but no known duration, " +
235
+ "it may be too soon to seek");
236
+ return undefined;
230
237
  }
231
238
  else if (typeof startAt.fromLivePosition === "number") {
232
239
  var livePosition = mediaElement.seekable.length > 0 ? mediaElement.seekable.end(0) : duration;
233
240
  if ((0, is_null_or_undefined_1.default)(livePosition)) {
234
- log_1.default.warn("startAt.fromLivePosition set but no known live position, " + "beginning at 0.");
241
+ log_1.default.warn("Init: startAt.fromLivePosition set but no known live position, " +
242
+ "beginning at 0.");
235
243
  return 0;
236
244
  }
237
245
  return Math.max(0, livePosition + startAt.fromLivePosition);
238
246
  }
239
247
  else if (!(0, is_null_or_undefined_1.default)(startAt.percentage)) {
240
248
  if ((0, is_null_or_undefined_1.default)(duration) || !isFinite(duration)) {
241
- log_1.default.warn("startAt.percentage set but no known duration, " + "beginning at 0.");
249
+ log_1.default.warn("Init: startAt.percentage set but no known duration, " + "beginning at 0.");
242
250
  return 0;
243
251
  }
244
252
  var percentage = startAt.percentage;
@@ -18,6 +18,19 @@ import StreamEventsEmitter from "./utils/stream_events_emitter/stream_events_emi
18
18
  export default class MultiThreadContentInitializer extends ContentInitializer {
19
19
  /** Constructor settings associated to this `MultiThreadContentInitializer`. */
20
20
  private _settings;
21
+ /**
22
+ * The WebWorker may be sending messages as soon as we're preparing the
23
+ * content but the `MultiThreadContentInitializer` is only able to handle all of
24
+ * them only once `start`ed.
25
+ *
26
+ * As such `_queuedWorkerMessages` is set to an Array when `prepare` has been
27
+ * called but not `start` yet, and contains all worker messages that have to
28
+ * be processed when `start` is called.
29
+ *
30
+ * It is set to `null` when there's no need to rely on that queue (either not
31
+ * yet `prepare`d or already `start`ed).
32
+ */
33
+ private _queuedWorkerMessages;
21
34
  /**
22
35
  * Information relative to the current loaded content.
23
36
  *
@@ -1 +1 @@
1
- {"version":3,"file":"multi_thread_content_initializer.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/init/multi_thread_content_initializer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"multi_thread_content_initializer.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/init/multi_thread_content_initializer.ts"],"names":[],"mappings":"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"}
@@ -147,12 +147,14 @@ var MultiThreadContentInitializer = /** @class */ (function (_super) {
147
147
  lastMessageId: 0,
148
148
  resolvers: {},
149
149
  };
150
+ _this._queuedWorkerMessages = null;
150
151
  return _this;
151
152
  }
152
153
  /**
153
154
  * Perform non-destructive preparation steps, to prepare a future content.
154
155
  */
155
156
  MultiThreadContentInitializer.prototype.prepare = function () {
157
+ var _this = this;
156
158
  var _a, _b;
157
159
  if (this._currentContentInfo !== null || this._initCanceller.isUsed()) {
158
160
  return;
@@ -197,6 +199,66 @@ var MultiThreadContentInitializer = /** @class */ (function (_super) {
197
199
  if (this._initCanceller.isUsed()) {
198
200
  return;
199
201
  }
202
+ this._queuedWorkerMessages = [];
203
+ log_1.default.debug("MTCI: addEventListener prepare buffering worker messages");
204
+ var onmessage = function (evt) {
205
+ var msgData = evt.data;
206
+ var type = msgData.type;
207
+ switch (type) {
208
+ case "log" /* WorkerMessageType.LogMessage */: {
209
+ var formatted = msgData.value.logs.map(function (l) {
210
+ switch (typeof l) {
211
+ case "string":
212
+ case "number":
213
+ case "boolean":
214
+ case "undefined":
215
+ return l;
216
+ case "object":
217
+ if (l === null) {
218
+ return null;
219
+ }
220
+ return formatWorkerError(l);
221
+ default:
222
+ (0, assert_1.assertUnreachable)(l);
223
+ }
224
+ });
225
+ switch (msgData.value.logLevel) {
226
+ case "NONE":
227
+ break;
228
+ case "ERROR":
229
+ log_1.default.error.apply(log_1.default, __spreadArray([], __read(formatted), false));
230
+ break;
231
+ case "WARNING":
232
+ log_1.default.warn.apply(log_1.default, __spreadArray([], __read(formatted), false));
233
+ break;
234
+ case "INFO":
235
+ log_1.default.info.apply(log_1.default, __spreadArray([], __read(formatted), false));
236
+ break;
237
+ case "DEBUG":
238
+ log_1.default.debug.apply(log_1.default, __spreadArray([], __read(formatted), false));
239
+ break;
240
+ default:
241
+ (0, assert_1.assertUnreachable)(msgData.value.logLevel);
242
+ }
243
+ break;
244
+ }
245
+ default:
246
+ if (_this._queuedWorkerMessages !== null) {
247
+ _this._queuedWorkerMessages.push(evt);
248
+ }
249
+ break;
250
+ }
251
+ };
252
+ this._settings.worker.addEventListener("message", onmessage);
253
+ var onmessageerror = function (_msg) {
254
+ log_1.default.error("MTCI: Error when receiving message from worker.");
255
+ };
256
+ this._settings.worker.addEventListener("messageerror", onmessageerror);
257
+ this._initCanceller.signal.register(function () {
258
+ log_1.default.debug("MTCI: removeEventListener prepare for worker message");
259
+ _this._settings.worker.removeEventListener("message", onmessage);
260
+ _this._settings.worker.removeEventListener("messageerror", onmessageerror);
261
+ });
200
262
  // Also bind all `SharedReference` objects:
201
263
  var throttleVideoBitrate = (_a = adaptiveOptions.throttlers.throttleBitrate.video) !== null && _a !== void 0 ? _a : new reference_1.default(Infinity);
202
264
  bindNumberReferencesToWorker(worker, this._initCanceller.signal, [wantedBufferAhead, "wantedBufferAhead"], [maxVideoBufferSize, "maxVideoBufferSize"], [maxBufferAhead, "maxBufferAhead"], [maxBufferBehind, "maxBufferBehind"], [throttleVideoBitrate, "throttleVideoBitrate"]);
@@ -234,6 +296,7 @@ var MultiThreadContentInitializer = /** @class */ (function (_super) {
234
296
  * @param {Object} playbackObserver
235
297
  */
236
298
  MultiThreadContentInitializer.prototype.start = function (mediaElement, playbackObserver) {
299
+ var e_1, _a;
237
300
  var _this = this;
238
301
  this.prepare(); // Load Manifest if not already done
239
302
  if (this._initCanceller.isUsed()) {
@@ -263,7 +326,7 @@ var MultiThreadContentInitializer = /** @class */ (function (_super) {
263
326
  */
264
327
  var lastContentProtection = new reference_1.default(null);
265
328
  var mediaSourceStatus = new reference_1.default(0 /* MediaSourceInitializationStatus.Nothing */);
266
- var _a = this._initializeContentDecryption(mediaElement, lastContentProtection, mediaSourceStatus, function () { return reloadMediaSource(0, undefined, undefined); }, this._initCanceller.signal), drmInitializationStatus = _a.statusRef, contentDecryptor = _a.contentDecryptor;
329
+ var _b = this._initializeContentDecryption(mediaElement, lastContentProtection, mediaSourceStatus, function () { return reloadMediaSource(0, undefined, undefined); }, this._initCanceller.signal), drmInitializationStatus = _b.statusRef, contentDecryptor = _b.contentDecryptor;
267
330
  var contentInfo = this._currentContentInfo;
268
331
  if (contentInfo !== null) {
269
332
  contentInfo.contentDecryptor = contentDecryptor;
@@ -863,47 +926,6 @@ var MultiThreadContentInitializer = /** @class */ (function (_super) {
863
926
  }
864
927
  }
865
928
  break;
866
- case "log" /* WorkerMessageType.LogMessage */: {
867
- var formatted = msgData.value.logs.map(function (l) {
868
- switch (typeof l) {
869
- case "string":
870
- case "number":
871
- case "boolean":
872
- case "undefined":
873
- return l;
874
- case "object":
875
- if (l === null) {
876
- return null;
877
- }
878
- return formatWorkerError(l);
879
- default:
880
- (0, assert_1.assertUnreachable)(l);
881
- }
882
- });
883
- switch (msgData.value.logLevel) {
884
- case "NONE":
885
- break;
886
- case "ERROR":
887
- log_1.default.error.apply(log_1.default, __spreadArray([], __read(formatted), false));
888
- break;
889
- case "WARNING":
890
- log_1.default.warn.apply(log_1.default, __spreadArray([], __read(formatted), false));
891
- break;
892
- case "INFO":
893
- log_1.default.info.apply(log_1.default, __spreadArray([], __read(formatted), false));
894
- break;
895
- case "DEBUG":
896
- log_1.default.debug.apply(log_1.default, __spreadArray([], __read(formatted), false));
897
- break;
898
- default:
899
- (0, assert_1.assertUnreachable)(msgData.value.logLevel);
900
- }
901
- break;
902
- }
903
- case "init-success" /* WorkerMessageType.InitSuccess */:
904
- case "init-error" /* WorkerMessageType.InitError */:
905
- // Should already be handled by the API
906
- break;
907
929
  case "segment-sink-store-update" /* WorkerMessageType.SegmentSinkStoreUpdate */: {
908
930
  if (((_27 = _this._currentContentInfo) === null || _27 === void 0 ? void 0 : _27.contentId) !== msgData.contentId) {
909
931
  return;
@@ -918,12 +940,39 @@ var MultiThreadContentInitializer = /** @class */ (function (_super) {
918
940
  }
919
941
  break;
920
942
  }
943
+ case "init-success" /* WorkerMessageType.InitSuccess */:
944
+ case "init-error" /* WorkerMessageType.InitError */:
945
+ // Should already be handled by the API
946
+ break;
947
+ case "log" /* WorkerMessageType.LogMessage */:
948
+ // Already handled by prepare's handler
949
+ break;
921
950
  default:
922
951
  (0, assert_1.assertUnreachable)(msgData);
923
952
  }
924
953
  };
954
+ log_1.default.debug("MTCI: addEventListener for worker message");
955
+ if (this._queuedWorkerMessages !== null) {
956
+ var bufferedMessages = this._queuedWorkerMessages.slice();
957
+ log_1.default.debug("MTCI: Processing buffered messages", bufferedMessages.length);
958
+ try {
959
+ for (var bufferedMessages_1 = __values(bufferedMessages), bufferedMessages_1_1 = bufferedMessages_1.next(); !bufferedMessages_1_1.done; bufferedMessages_1_1 = bufferedMessages_1.next()) {
960
+ var message = bufferedMessages_1_1.value;
961
+ onmessage(message);
962
+ }
963
+ }
964
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
965
+ finally {
966
+ try {
967
+ if (bufferedMessages_1_1 && !bufferedMessages_1_1.done && (_a = bufferedMessages_1.return)) _a.call(bufferedMessages_1);
968
+ }
969
+ finally { if (e_1) throw e_1.error; }
970
+ }
971
+ this._queuedWorkerMessages = null;
972
+ }
925
973
  this._settings.worker.addEventListener("message", onmessage);
926
974
  this._initCanceller.signal.register(function () {
975
+ log_1.default.debug("MTCI: removeEventListener for worker message");
927
976
  _this._settings.worker.removeEventListener("message", onmessage);
928
977
  });
929
978
  };
@@ -1430,7 +1479,7 @@ var MultiThreadContentInitializer = /** @class */ (function (_super) {
1430
1479
  }(types_1.ContentInitializer));
1431
1480
  exports.default = MultiThreadContentInitializer;
1432
1481
  function bindNumberReferencesToWorker(worker, cancellationSignal) {
1433
- var e_1, _a;
1482
+ var e_2, _a;
1434
1483
  var refs = [];
1435
1484
  for (var _i = 2; _i < arguments.length; _i++) {
1436
1485
  refs[_i - 2] = arguments[_i];
@@ -1452,12 +1501,12 @@ function bindNumberReferencesToWorker(worker, cancellationSignal) {
1452
1501
  _loop_1(ref);
1453
1502
  }
1454
1503
  }
1455
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
1504
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
1456
1505
  finally {
1457
1506
  try {
1458
1507
  if (refs_1_1 && !refs_1_1.done && (_a = refs_1.return)) _a.call(refs_1);
1459
1508
  }
1460
- finally { if (e_1) throw e_1.error; }
1509
+ finally { if (e_2) throw e_2.error; }
1461
1510
  }
1462
1511
  }
1463
1512
  function formatWorkerError(sentError) {
@@ -55,7 +55,7 @@ export interface IInitialSeekAndPlayObject {
55
55
  export default function performInitialSeekAndPlay({ mediaElement, playbackObserver, startTime, mustAutoPlay, isDirectfile, onWarning, }: {
56
56
  mediaElement: IMediaElement;
57
57
  playbackObserver: IMediaElementPlaybackObserver;
58
- startTime: number | (() => number);
58
+ startTime: number | (() => number | undefined);
59
59
  mustAutoPlay: boolean;
60
60
  isDirectfile: boolean;
61
61
  onWarning: (err: IPlayerError) => void;
@@ -1 +1 @@
1
- {"version":3,"file":"initial_seek_and_play.d.ts","sourceRoot":"","sources":["../../../../../src/main_thread/init/utils/initial_seek_and_play.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAKjF,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAEhF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEzE,OAAO,KAAK,EAEV,kBAAkB,EACnB,MAAM,+BAA+B,CAAC;AAEvC,+DAA+D;AAC/D,MAAM,MAAM,iBAAiB;AAC3B,0EAA0E;AACxE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE;AACrB;;;GAGG;GACD;IAAE,IAAI,EAAE,kBAAkB,CAAA;CAAE;AAC9B,sCAAsC;GACpC;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;AAEzB,+CAA+C;AAC/C,MAAM,WAAW,yBAAyB;IACxC,kEAAkE;IAClE,cAAc,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAE3C;;;OAGG;IACH,oBAAoB,EAAE,wBAAwB,CAAC,OAAO,CAAC,CAAC;CACzD;AAED;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAC/C,EACE,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,SAAS,GACV,EAAE;IACD,YAAY,EAAE,aAAa,CAAC;IAC5B,gBAAgB,EAAE,6BAA6B,CAAC;IAChD,SAAS,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IACnC,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,CAAC;CACxC,EACD,YAAY,EAAE,kBAAkB,GAC/B,yBAAyB,CAgN3B"}
1
+ {"version":3,"file":"initial_seek_and_play.d.ts","sourceRoot":"","sources":["../../../../../src/main_thread/init/utils/initial_seek_and_play.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAKjF,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,4BAA4B,CAAC;AAEhF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAEzE,OAAO,KAAK,EAEV,kBAAkB,EACnB,MAAM,+BAA+B,CAAC;AAEvC,+DAA+D;AAC/D,MAAM,MAAM,iBAAiB;AAC3B,0EAA0E;AACxE;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE;AACrB;;;GAGG;GACD;IAAE,IAAI,EAAE,kBAAkB,CAAA;CAAE;AAC9B,sCAAsC;GACpC;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC;AAEzB,+CAA+C;AAC/C,MAAM,WAAW,yBAAyB;IACxC,kEAAkE;IAClE,cAAc,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IAE3C;;;OAGG;IACH,oBAAoB,EAAE,wBAAwB,CAAC,OAAO,CAAC,CAAC;CACzD;AAED;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAC/C,EACE,YAAY,EACZ,gBAAgB,EAChB,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,SAAS,GACV,EAAE;IACD,YAAY,EAAE,aAAa,CAAC;IAC5B,gBAAgB,EAAE,6BAA6B,CAAC;IAChD,SAAS,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,GAAG,SAAS,CAAC,CAAC;IAC/C,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;IACtB,SAAS,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,CAAC;CACxC,EACD,YAAY,EAAE,kBAAkB,GAC/B,yBAAyB,CAmO3B"}
@@ -53,23 +53,39 @@ function performInitialSeekAndPlay(_a, cancelSignal) {
53
53
  // So let's divide the two possibilities here.
54
54
  if (!isDirectfile || typeof startTime === "number") {
55
55
  var initiallySeekedTime = typeof startTime === "number" ? startTime : startTime();
56
- if (initiallySeekedTime !== 0) {
56
+ if (initiallySeekedTime !== 0 && initiallySeekedTime !== undefined) {
57
57
  performInitialSeek(initiallySeekedTime);
58
58
  }
59
59
  waitForSeekable();
60
60
  }
61
61
  else {
62
62
  playbackObserver.listen(function (obs, stopListening) {
63
+ var initiallySeekedTime = typeof startTime === "number" ? startTime : startTime();
64
+ if (initiallySeekedTime === undefined &&
65
+ obs.readyState < HTMLMediaElement.HAVE_CURRENT_DATA) {
66
+ /**
67
+ * On browser, such as Safari, the HTMLMediaElement.duration
68
+ * and HTMLMediaElement.buffered may not be initialized at readyState 1, leading
69
+ * to cases where it can be equal to `Infinity`.
70
+ * If so, the range in which it is possible to seek is not yet known.
71
+ * To solve this, the seek should be done after readyState HAVE_CURRENT_DATA (2),
72
+ * at that time the previously mentioned attributes are correctly initialized and
73
+ * the range in which it is possible to seek is correctly known.
74
+ * If the initiallySeekedTime is still `undefined` when the readyState is >= 2,
75
+ * let assume that the initiallySeekedTime will never be known and continue
76
+ * the logic without seeking.
77
+ */
78
+ return;
79
+ }
63
80
  if (obs.readyState >= 1) {
64
81
  stopListening();
65
- var initiallySeekedTime_1 = typeof startTime === "number" ? startTime : startTime();
66
- if (initiallySeekedTime_1 !== 0) {
82
+ if (initiallySeekedTime !== 0 && initiallySeekedTime !== undefined) {
67
83
  if (can_seek_directly_after_loaded_metadata_1.default) {
68
- performInitialSeek(initiallySeekedTime_1);
84
+ performInitialSeek(initiallySeekedTime);
69
85
  }
70
86
  else {
71
87
  setTimeout(function () {
72
- performInitialSeek(initiallySeekedTime_1);
88
+ performInitialSeek(initiallySeekedTime);
73
89
  }, 0);
74
90
  }
75
91
  }
@@ -1 +1 @@
1
- {"version":3,"file":"main_media_source_interface.d.ts","sourceRoot":"","sources":["../../../src/mse/main_media_source_interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAOzF,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAGlD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAG9C,OAAO,KAAK,EACV,kBAAkB,EAClB,qBAAqB,EACrB,2BAA2B,EAC3B,sBAAsB,EAEtB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAIjB;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,wBACnB,SAAQ,YAAY,CAAC,2BAA2B,CAChD,YAAW,qBAAqB;IAEhC,iCAAiC;IAC1B,EAAE,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACI,MAAM,EAAE,kBAAkB,CAAC;IAClC,iCAAiC;IAC1B,aAAa,EAAE,yBAAyB,EAAE,CAAC;IAClD,iCAAiC;IAC1B,UAAU,EAAE,UAAU,CAAC;IAC9B,6EAA6E;IAC7E,OAAO,CAAC,YAAY,CAAe;IACnC;;OAEG;IACH,OAAO,CAAC,gBAAgB,CAA6B;IACrD;;;;OAIG;IACH,OAAO,CAAC,qBAAqB,CAAuB;IACpD;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAgB;IAElC;;;;;;OAMG;gBACS,EAAE,EAAE,MAAM;IAkDtB,iCAAiC;IAC1B,eAAe,CACpB,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,MAAM,GACZ,yBAAyB;IAO5B,iCAAiC;IAC1B,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,GAAG,IAAI;IAItE,iCAAiC;IAC1B,wBAAwB;IAI/B,iCAAiC;IAC1B,mBAAmB;IAS1B,iCAAiC;IAC1B,eAAe;IAQtB,iCAAiC;IAC1B,OAAO;CAKf;AAED;;;;GAIG;AACH,qBAAa,yBAA0B,YAAW,sBAAsB;IACtE,kCAAkC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAC3B,IAAI,EAAE,gBAAgB,CAAC;IAC9B;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAgB;IAClC,+EAA+E;IAC/E,OAAO,CAAC,aAAa,CAAgB;IACrC;;;OAGG;IACH,OAAO,CAAC,eAAe,CAAwB;IAC/C;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB,CAA6C;IAEvE;;;;;;OAMG;gBACS,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa;IA8DhF,kCAAkC;IAC3B,YAAY,CACjB,GAAG,IAAI,EAAE,UAAU,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC,GAC1D,OAAO,CAAC,MAAM,EAAE,CAAC;IAQpB,kCAAkC;IAC3B,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAa5D,kCAAkC;IAC3B,WAAW,IAAI,MAAM,EAAE;IAa9B,kCAAkC;IAC3B,KAAK,IAAI,IAAI;IASpB,kCAAkC;IAC3B,OAAO,IAAI,IAAI;IAStB,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,qBAAqB;IAiI7B,OAAO,CAAC,gBAAgB;CAyDzB"}
1
+ {"version":3,"file":"main_media_source_interface.d.ts","sourceRoot":"","sources":["../../../src/mse/main_media_source_interface.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgB,aAAa,EAAE,MAAM,uCAAuC,CAAC;AAOzF,OAAO,YAAY,MAAM,wBAAwB,CAAC;AAGlD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAG9C,OAAO,KAAK,EACV,kBAAkB,EAClB,qBAAqB,EACrB,2BAA2B,EAC3B,sBAAsB,EAEtB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAIjB;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,wBACnB,SAAQ,YAAY,CAAC,2BAA2B,CAChD,YAAW,qBAAqB;IAEhC,iCAAiC;IAC1B,EAAE,EAAE,MAAM,CAAC;IAClB;;;;;OAKG;IACI,MAAM,EAAE,kBAAkB,CAAC;IAClC,iCAAiC;IAC1B,aAAa,EAAE,yBAAyB,EAAE,CAAC;IAClD,iCAAiC;IAC1B,UAAU,EAAE,UAAU,CAAC;IAC9B,6EAA6E;IAC7E,OAAO,CAAC,YAAY,CAAe;IACnC;;OAEG;IACH,OAAO,CAAC,gBAAgB,CAA6B;IACrD;;;;OAIG;IACH,OAAO,CAAC,qBAAqB,CAAuB;IACpD;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAgB;IAElC;;;;;;OAMG;gBACS,EAAE,EAAE,MAAM;IAkDtB,iCAAiC;IAC1B,eAAe,CACpB,MAAM,EAAE,gBAAgB,EACxB,KAAK,EAAE,MAAM,GACZ,yBAAyB;IAO5B,iCAAiC;IAC1B,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,GAAG,IAAI;IAItE,iCAAiC;IAC1B,wBAAwB;IAI/B,iCAAiC;IAC1B,mBAAmB;IAS1B,iCAAiC;IAC1B,eAAe;IAQtB,iCAAiC;IAC1B,OAAO;CAKf;AAED;;;;GAIG;AACH,qBAAa,yBAA0B,YAAW,sBAAsB;IACtE,kCAAkC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACrB,kCAAkC;IAC3B,IAAI,EAAE,gBAAgB,CAAC;IAC9B;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAgB;IAClC,+EAA+E;IAC/E,OAAO,CAAC,aAAa,CAAgB;IACrC;;;OAGG;IACH,OAAO,CAAC,eAAe,CAAwB;IAC/C;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB,CAA6C;IAEvE;;;;;;OAMG;gBACS,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa;IA8DhF,kCAAkC;IAC3B,YAAY,CACjB,GAAG,IAAI,EAAE,UAAU,CAAC,sBAAsB,CAAC,cAAc,CAAC,CAAC,GAC1D,OAAO,CAAC,MAAM,EAAE,CAAC;IAQpB,kCAAkC;IAC3B,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAa5D,kCAAkC;IAC3B,WAAW,IAAI,MAAM,EAAE;IAa9B,kCAAkC;IAC3B,KAAK,IAAI,IAAI;IASpB,kCAAkC;IAC3B,OAAO,IAAI,IAAI;IAStB,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,WAAW;IAiBnB,OAAO,CAAC,qBAAqB;IAqJ7B,OAAO,CAAC,gBAAgB;CAyDzB"}
@@ -432,6 +432,19 @@ var MainSourceBufferInterface = /** @class */ (function () {
432
432
  op.reject(error_1);
433
433
  });
434
434
  this._currentOperations = [];
435
+ // A synchronous error probably will not lead to updateend event, so we need to
436
+ // go to next queue element manually
437
+ //
438
+ // FIXME: This here is needed to ensure that we're not left with a
439
+ // dangling queue of operations.
440
+ // However it can potentially be counter-productive if e.g. the `appendBuffer`
441
+ // error was due to a full buffer and if there are pushing operations awaiting in
442
+ // the queue.
443
+ //
444
+ // A better solution might just be to reject all push operations right away here?
445
+ // Only for a `QuotaExceededError` (to check MSE)?
446
+ // However this is too disruptive for what is now a hotfix
447
+ this._performNextOperation();
435
448
  }
436
449
  }
437
450
  else {
@@ -443,11 +456,17 @@ var MainSourceBufferInterface = /** @class */ (function () {
443
456
  this._sourceBuffer.remove(start, end);
444
457
  }
445
458
  catch (err) {
446
- var error = err instanceof Error
459
+ var error_2 = err instanceof Error
447
460
  ? new errors_1.SourceBufferError(err.name, err.message, false)
448
461
  : new errors_1.SourceBufferError("Error", "Unknown SourceBuffer Error during remove", false);
449
- nextElem.reject(error);
462
+ nextElem.reject(error_2);
463
+ this._currentOperations.forEach(function (op) {
464
+ op.reject(error_2);
465
+ });
450
466
  this._currentOperations = [];
467
+ // A synchronous error probably will not lead to updateend event, so we need to
468
+ // go to next queue element manually
469
+ this._performNextOperation();
451
470
  }
452
471
  }
453
472
  };
@@ -1 +1 @@
1
- {"version":3,"file":"pipelines.d.ts","sourceRoot":"","sources":["../../../../src/transports/smooth/pipelines.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAWH,OAAO,KAAK,EAeV,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,UAAU,CAAC;AAUlB,MAAM,CAAC,OAAO,WAAW,gBAAgB,EAAE,iBAAiB,GAAG,mBAAmB,CA2XjF"}
1
+ {"version":3,"file":"pipelines.d.ts","sourceRoot":"","sources":["../../../../src/transports/smooth/pipelines.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAWH,OAAO,KAAK,EAeV,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,UAAU,CAAC;AAUlB,MAAM,CAAC,OAAO,WAAW,gBAAgB,EAAE,iBAAiB,GAAG,mBAAmB,CA4XjF"}
@@ -265,6 +265,7 @@ function default_1(transportOptions) {
265
265
  var lcCodec = codecs.toLowerCase();
266
266
  if (mimeType === "application/ttml+xml+mp4" ||
267
267
  lcCodec === "stpp" ||
268
+ lcCodec === "stpp.ttml" ||
268
269
  lcCodec === "stpp.ttml.im1t") {
269
270
  _sdType = "ttml";
270
271
  }
@@ -1 +1 @@
1
- {"version":3,"file":"parse_text_track.d.ts","sourceRoot":"","sources":["../../../../src/transports/utils/parse_text_track.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEvF;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAG1E;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,KAAK,CAcpF;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAkBjC;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAC7C,EACE,OAAO,EACP,QAAQ,EACR,MAAM,GACP,EAAE;IACD,OAAO,EAAE,QAAQ,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B,EACD,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,cAAc,GAAG,IAAI,EACjC,SAAS,EAAE,OAAO,GACjB,qBAAqB,GAAG,IAAI,CAyB9B;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,eAAe,EACxB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,OAAO,GACjB,qBAAqB,GAAG,IAAI,CAmB9B"}
1
+ {"version":3,"file":"parse_text_track.d.ts","sourceRoot":"","sources":["../../../../src/transports/utils/parse_text_track.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAGH,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG/C,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AAEvF;;;;GAIG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,CAG1E;AAED;;;;;GAKG;AACH,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,KAAK,CAepF;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,QAAQ,EAAE,MAAM,GAAG,SAAS,GAC3B,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAkBjC;AAED;;;;;;GAMG;AACH,wBAAgB,+BAA+B,CAC7C,EACE,OAAO,EACP,QAAQ,EACR,MAAM,GACP,EAAE;IACD,OAAO,EAAE,QAAQ,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B,EACD,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,cAAc,GAAG,IAAI,EACjC,SAAS,EAAE,OAAO,GACjB,qBAAqB,GAAG,IAAI,CAyB9B;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,eAAe,EACxB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,OAAO,GACjB,qBAAqB,GAAG,IAAI,CAmB9B"}
@@ -44,6 +44,7 @@ function getISOBMFFTextTrackFormat(codecs) {
44
44
  }
45
45
  switch (codecs.toLowerCase()) {
46
46
  case "stpp": // stpp === TTML in MP4
47
+ case "stpp.ttml":
47
48
  case "stpp.ttml.im1t":
48
49
  return "ttml";
49
50
  case "wvtt": // wvtt === WebVTT in MP4
@@ -1 +1 @@
1
- {"version":3,"file":"embedded_worker.d.ts","sourceRoot":"","sources":["../../../src/__GENERATED_CODE/embedded_worker.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,IAAI,MAAowqT,CAAC;AAC/wqT,OAAO,EAAE,IAAI,IAAI,eAAe,EAAE,CAAC;AACnC,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"embedded_worker.d.ts","sourceRoot":"","sources":["../../../src/__GENERATED_CODE/embedded_worker.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,IAAI,MAAkyrT,CAAC;AAC7yrT,OAAO,EAAE,IAAI,IAAI,eAAe,EAAE,CAAC;AACnC,eAAe,IAAI,CAAC"}