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

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 (105) hide show
  1. package/.vscode/settings.json +9 -0
  2. package/CHANGELOG.md +22 -3
  3. package/VERSION +1 -1
  4. package/dist/commonjs/__GENERATED_CODE/embedded_dash_wasm.d.ts.map +1 -1
  5. package/dist/commonjs/__GENERATED_CODE/embedded_dash_wasm.js +1 -1
  6. package/dist/commonjs/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
  7. package/dist/commonjs/__GENERATED_CODE/embedded_worker.js +1 -1
  8. package/dist/commonjs/core/main/worker/worker_main.d.ts.map +1 -1
  9. package/dist/commonjs/core/main/worker/worker_main.js +3 -0
  10. package/dist/commonjs/core/segment_sinks/segment_buffers_store.d.ts.map +1 -1
  11. package/dist/commonjs/core/stream/adaptation/adaptation_stream.d.ts.map +1 -1
  12. package/dist/commonjs/core/stream/adaptation/adaptation_stream.js +15 -0
  13. package/dist/commonjs/core/stream/representation/representation_stream.d.ts.map +1 -1
  14. package/dist/commonjs/core/stream/representation/representation_stream.js +2 -0
  15. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.d.ts.map +1 -1
  16. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.js +85 -8
  17. package/dist/commonjs/main_thread/api/debug/modules/general_info.js +1 -1
  18. package/dist/commonjs/main_thread/api/public_api.js +2 -2
  19. package/dist/commonjs/main_thread/decrypt/find_key_system.d.ts.map +1 -1
  20. package/dist/commonjs/main_thread/decrypt/find_key_system.js +3 -0
  21. package/dist/commonjs/main_thread/init/directfile_content_initializer.d.ts.map +1 -1
  22. package/dist/commonjs/main_thread/init/directfile_content_initializer.js +14 -6
  23. package/dist/commonjs/main_thread/init/media_source_content_initializer.d.ts +11 -1
  24. package/dist/commonjs/main_thread/init/media_source_content_initializer.d.ts.map +1 -1
  25. package/dist/commonjs/main_thread/init/media_source_content_initializer.js +23 -11
  26. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.d.ts +15 -1
  27. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.d.ts.map +1 -1
  28. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.js +103 -50
  29. package/dist/commonjs/main_thread/init/utils/initial_seek_and_play.d.ts +1 -1
  30. package/dist/commonjs/main_thread/init/utils/initial_seek_and_play.d.ts.map +1 -1
  31. package/dist/commonjs/main_thread/init/utils/initial_seek_and_play.js +21 -5
  32. package/dist/commonjs/main_thread/text_displayer/native/native_text_displayer.d.ts +1 -0
  33. package/dist/commonjs/main_thread/text_displayer/native/native_text_displayer.d.ts.map +1 -1
  34. package/dist/commonjs/main_thread/text_displayer/native/native_text_displayer.js +19 -16
  35. package/dist/commonjs/mse/main_media_source_interface.d.ts.map +1 -1
  36. package/dist/commonjs/mse/main_media_source_interface.js +21 -2
  37. package/dist/commonjs/transports/smooth/pipelines.d.ts.map +1 -1
  38. package/dist/commonjs/transports/smooth/pipelines.js +1 -0
  39. package/dist/commonjs/transports/utils/parse_text_track.d.ts.map +1 -1
  40. package/dist/commonjs/transports/utils/parse_text_track.js +1 -0
  41. package/dist/commonjs/utils/sync_or_async.d.ts.map +1 -1
  42. package/dist/commonjs/utils/sync_or_async.js +3 -1
  43. package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.d.ts.map +1 -1
  44. package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.js +1 -1
  45. package/dist/es2017/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
  46. package/dist/es2017/__GENERATED_CODE/embedded_worker.js +1 -1
  47. package/dist/es2017/core/main/worker/worker_main.d.ts.map +1 -1
  48. package/dist/es2017/core/main/worker/worker_main.js +3 -0
  49. package/dist/es2017/core/segment_sinks/segment_buffers_store.d.ts.map +1 -1
  50. package/dist/es2017/core/stream/adaptation/adaptation_stream.d.ts.map +1 -1
  51. package/dist/es2017/core/stream/adaptation/adaptation_stream.js +15 -0
  52. package/dist/es2017/core/stream/representation/representation_stream.d.ts.map +1 -1
  53. package/dist/es2017/core/stream/representation/representation_stream.js +2 -0
  54. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.d.ts.map +1 -1
  55. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.js +36 -7
  56. package/dist/es2017/main_thread/api/debug/modules/general_info.js +1 -1
  57. package/dist/es2017/main_thread/api/public_api.js +2 -2
  58. package/dist/es2017/main_thread/decrypt/find_key_system.d.ts.map +1 -1
  59. package/dist/es2017/main_thread/decrypt/find_key_system.js +3 -0
  60. package/dist/es2017/main_thread/init/directfile_content_initializer.d.ts.map +1 -1
  61. package/dist/es2017/main_thread/init/directfile_content_initializer.js +14 -6
  62. package/dist/es2017/main_thread/init/media_source_content_initializer.d.ts +11 -1
  63. package/dist/es2017/main_thread/init/media_source_content_initializer.d.ts.map +1 -1
  64. package/dist/es2017/main_thread/init/media_source_content_initializer.js +23 -11
  65. package/dist/es2017/main_thread/init/multi_thread_content_initializer.d.ts +15 -1
  66. package/dist/es2017/main_thread/init/multi_thread_content_initializer.d.ts.map +1 -1
  67. package/dist/es2017/main_thread/init/multi_thread_content_initializer.js +87 -46
  68. package/dist/es2017/main_thread/init/utils/initial_seek_and_play.d.ts +1 -1
  69. package/dist/es2017/main_thread/init/utils/initial_seek_and_play.d.ts.map +1 -1
  70. package/dist/es2017/main_thread/init/utils/initial_seek_and_play.js +19 -3
  71. package/dist/es2017/main_thread/text_displayer/native/native_text_displayer.d.ts +1 -0
  72. package/dist/es2017/main_thread/text_displayer/native/native_text_displayer.d.ts.map +1 -1
  73. package/dist/es2017/main_thread/text_displayer/native/native_text_displayer.js +19 -16
  74. package/dist/es2017/mse/main_media_source_interface.d.ts.map +1 -1
  75. package/dist/es2017/mse/main_media_source_interface.js +19 -0
  76. package/dist/es2017/transports/smooth/pipelines.d.ts.map +1 -1
  77. package/dist/es2017/transports/smooth/pipelines.js +1 -0
  78. package/dist/es2017/transports/utils/parse_text_track.d.ts.map +1 -1
  79. package/dist/es2017/transports/utils/parse_text_track.js +1 -0
  80. package/dist/es2017/utils/sync_or_async.d.ts.map +1 -1
  81. package/dist/es2017/utils/sync_or_async.js +3 -1
  82. package/dist/mpd-parser.wasm +0 -0
  83. package/dist/rx-player.js +104 -41
  84. package/dist/rx-player.min.js +17 -17
  85. package/dist/worker.js +5 -5
  86. package/package.json +19 -7
  87. package/src/__GENERATED_CODE/embedded_dash_wasm.ts +1 -1
  88. package/src/__GENERATED_CODE/embedded_worker.ts +1 -1
  89. package/src/core/main/worker/worker_main.ts +3 -0
  90. package/src/core/segment_sinks/segment_buffers_store.ts +6 -2
  91. package/src/core/stream/adaptation/adaptation_stream.ts +23 -1
  92. package/src/core/stream/representation/representation_stream.ts +11 -0
  93. package/src/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.ts +39 -7
  94. package/src/main_thread/api/debug/modules/general_info.ts +1 -1
  95. package/src/main_thread/api/public_api.ts +2 -2
  96. package/src/main_thread/decrypt/find_key_system.ts +3 -0
  97. package/src/main_thread/init/directfile_content_initializer.ts +20 -10
  98. package/src/main_thread/init/media_source_content_initializer.ts +50 -17
  99. package/src/main_thread/init/multi_thread_content_initializer.ts +109 -50
  100. package/src/main_thread/init/utils/initial_seek_and_play.ts +24 -5
  101. package/src/main_thread/text_displayer/native/native_text_displayer.ts +22 -18
  102. package/src/mse/main_media_source_interface.ts +20 -0
  103. package/src/transports/smooth/pipelines.ts +1 -0
  104. package/src/transports/utils/parse_text_track.ts +1 -0
  105. package/src/utils/sync_or_async.ts +5 -3
@@ -145,14 +145,16 @@ var MultiThreadContentInitializer = /** @class */ (function (_super) {
145
145
  _this._currentContentInfo = null;
146
146
  _this._segmentMetrics = {
147
147
  lastMessageId: 0,
148
- resolvers: {},
148
+ resolvers: new Map(),
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,67 +926,52 @@ 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;
910
932
  }
911
- var resolveFn = _this._segmentMetrics.resolvers[msgData.value.messageId];
933
+ var resolveFn = _this._segmentMetrics.resolvers.get(msgData.value.messageId);
912
934
  if (resolveFn !== undefined) {
913
935
  resolveFn(msgData.value.segmentSinkMetrics);
914
- delete _this._segmentMetrics.resolvers[msgData.value.messageId];
915
936
  }
916
937
  else {
917
938
  log_1.default.error("MTCI: Failed to send segment sink store update");
918
939
  }
919
940
  break;
920
941
  }
942
+ case "init-success" /* WorkerMessageType.InitSuccess */:
943
+ case "init-error" /* WorkerMessageType.InitError */:
944
+ // Should already be handled by the API
945
+ break;
946
+ case "log" /* WorkerMessageType.LogMessage */:
947
+ // Already handled by prepare's handler
948
+ break;
921
949
  default:
922
950
  (0, assert_1.assertUnreachable)(msgData);
923
951
  }
924
952
  };
953
+ log_1.default.debug("MTCI: addEventListener for worker message");
954
+ if (this._queuedWorkerMessages !== null) {
955
+ var bufferedMessages = this._queuedWorkerMessages.slice();
956
+ log_1.default.debug("MTCI: Processing buffered messages", bufferedMessages.length);
957
+ try {
958
+ for (var bufferedMessages_1 = __values(bufferedMessages), bufferedMessages_1_1 = bufferedMessages_1.next(); !bufferedMessages_1_1.done; bufferedMessages_1_1 = bufferedMessages_1.next()) {
959
+ var message = bufferedMessages_1_1.value;
960
+ onmessage(message);
961
+ }
962
+ }
963
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
964
+ finally {
965
+ try {
966
+ if (bufferedMessages_1_1 && !bufferedMessages_1_1.done && (_a = bufferedMessages_1.return)) _a.call(bufferedMessages_1);
967
+ }
968
+ finally { if (e_1) throw e_1.error; }
969
+ }
970
+ this._queuedWorkerMessages = null;
971
+ }
925
972
  this._settings.worker.addEventListener("message", onmessage);
926
973
  this._initCanceller.signal.register(function () {
974
+ log_1.default.debug("MTCI: removeEventListener for worker message");
927
975
  _this._settings.worker.removeEventListener("message", onmessage);
928
976
  });
929
977
  };
@@ -1249,11 +1297,16 @@ var MultiThreadContentInitializer = /** @class */ (function (_super) {
1249
1297
  value: { messageId: messageId },
1250
1298
  });
1251
1299
  return [2 /*return*/, new Promise(function (resolve, reject) {
1252
- _this._segmentMetrics.resolvers[messageId] = resolve;
1253
1300
  var rejectFn = function (err) {
1254
- delete _this._segmentMetrics.resolvers[messageId];
1301
+ cancelSignal.deregister(rejectFn);
1302
+ _this._segmentMetrics.resolvers.delete(messageId);
1255
1303
  return reject(err);
1256
1304
  };
1305
+ _this._segmentMetrics.resolvers.set(messageId, function (value) {
1306
+ cancelSignal.deregister(rejectFn);
1307
+ _this._segmentMetrics.resolvers.delete(messageId);
1308
+ resolve(value);
1309
+ });
1257
1310
  cancelSignal.register(rejectFn);
1258
1311
  })];
1259
1312
  });
@@ -1430,7 +1483,7 @@ var MultiThreadContentInitializer = /** @class */ (function (_super) {
1430
1483
  }(types_1.ContentInitializer));
1431
1484
  exports.default = MultiThreadContentInitializer;
1432
1485
  function bindNumberReferencesToWorker(worker, cancellationSignal) {
1433
- var e_1, _a;
1486
+ var e_2, _a;
1434
1487
  var refs = [];
1435
1488
  for (var _i = 2; _i < arguments.length; _i++) {
1436
1489
  refs[_i - 2] = arguments[_i];
@@ -1452,12 +1505,12 @@ function bindNumberReferencesToWorker(worker, cancellationSignal) {
1452
1505
  _loop_1(ref);
1453
1506
  }
1454
1507
  }
1455
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
1508
+ catch (e_2_1) { e_2 = { error: e_2_1 }; }
1456
1509
  finally {
1457
1510
  try {
1458
1511
  if (refs_1_1 && !refs_1_1.done && (_a = refs_1.return)) _a.call(refs_1);
1459
1512
  }
1460
- finally { if (e_1) throw e_1.error; }
1513
+ finally { if (e_2) throw e_2.error; }
1461
1514
  }
1462
1515
  }
1463
1516
  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
  }
@@ -37,6 +37,7 @@ export default class NativeTextDisplayer implements ITextDisplayer {
37
37
  reset(): void;
38
38
  stop(): void;
39
39
  private _removeData;
40
+ private _clearTrackElement;
40
41
  }
41
42
  /** Data of chunks that should be pushed to the NativeTextDisplayer. */
42
43
  export interface INativeTextTracksBufferSegmentData {
@@ -1 +1 @@
1
- {"version":3,"file":"native_text_displayer.d.ts","sourceRoot":"","sources":["../../../../../src/main_thread/text_displayer/native/native_text_displayer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,aAAa,EACd,MAAM,6CAA6C,CAAC;AAIrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGpD,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAGnE;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,mBAAoB,YAAW,cAAc;IAChE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA+B;IAE7D,OAAO,CAAC,SAAS,CAAmB;IAEpC;;OAEG;gBACS,YAAY,EAAE,aAAa;IASvC;;;;OAIG;IACI,YAAY,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,EAAE;IA8FxD;;;;;OAKG;IACI,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE;IAKzD;;;OAGG;IACI,iBAAiB,IAAI,MAAM,EAAE;IAI7B,KAAK,IAAI,IAAI;IAuBb,IAAI,IAAI,IAAI;IAoBnB,OAAO,CAAC,WAAW;CAepB;AAED,uEAAuE;AACvE,MAAM,WAAW,kCAAkC;IACjD,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"}
1
+ {"version":3,"file":"native_text_displayer.d.ts","sourceRoot":"","sources":["../../../../../src/main_thread/text_displayer/native/native_text_displayer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,aAAa,EACd,MAAM,6CAA6C,CAAC;AAIrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGpD,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAGnE;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,mBAAoB,YAAW,cAAc;IAChE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA+B;IAE7D,OAAO,CAAC,SAAS,CAAmB;IAEpC;;OAEG;gBACS,YAAY,EAAE,aAAa;IASvC;;;;OAIG;IACI,YAAY,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,EAAE;IA8FxD;;;;;OAKG;IACI,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE;IAKzD;;;OAGG;IACI,iBAAiB,IAAI,MAAM,EAAE;IAI7B,KAAK,IAAI,IAAI;IAMb,IAAI,IAAI,IAAI;IAoBnB,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,kBAAkB;CAoB3B;AAED,uEAAuE;AACvE,MAAM,WAAW,kCAAkC;IACjD,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"}
@@ -153,22 +153,7 @@ var NativeTextDisplayer = /** @class */ (function () {
153
153
  NativeTextDisplayer.prototype.reset = function () {
154
154
  log_1.default.debug("NTD: Aborting NativeTextDisplayer");
155
155
  this._removeData(0, Infinity);
156
- var _a = this, _trackElement = _a._trackElement, _videoElement = _a._videoElement;
157
- if (_trackElement !== undefined && _videoElement.hasChildNodes()) {
158
- try {
159
- _videoElement.removeChild(_trackElement);
160
- }
161
- catch (_e) {
162
- log_1.default.warn("NTD: Can't remove track element from the video");
163
- }
164
- }
165
- // Ugly trick to work-around browser bugs by refreshing its mode
166
- var oldMode = this._track.mode;
167
- this._track.mode = "disabled";
168
- this._track.mode = oldMode;
169
- if (this._trackElement !== undefined) {
170
- this._trackElement.innerHTML = "";
171
- }
156
+ this._clearTrackElement();
172
157
  };
173
158
  NativeTextDisplayer.prototype.stop = function () {
174
159
  log_1.default.debug("NTD: Aborting NativeTextDisplayer");
@@ -202,6 +187,24 @@ var NativeTextDisplayer = /** @class */ (function () {
202
187
  }
203
188
  this._buffered.remove(start, end);
204
189
  };
190
+ NativeTextDisplayer.prototype._clearTrackElement = function () {
191
+ var _a = this, _trackElement = _a._trackElement, _videoElement = _a._videoElement;
192
+ if (_trackElement !== undefined && _videoElement.hasChildNodes()) {
193
+ try {
194
+ _videoElement.removeChild(_trackElement);
195
+ }
196
+ catch (_e) {
197
+ log_1.default.warn("NTD: Can't remove track element from the video");
198
+ }
199
+ }
200
+ // Ugly trick to work-around browser bugs by refreshing its mode
201
+ var oldMode = this._track.mode;
202
+ this._track.mode = "disabled";
203
+ this._track.mode = oldMode;
204
+ if (this._trackElement !== undefined) {
205
+ this._trackElement.innerHTML = "";
206
+ }
207
+ };
205
208
  return NativeTextDisplayer;
206
209
  }());
207
210
  exports.default = NativeTextDisplayer;
@@ -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":"sync_or_async.d.ts","sourceRoot":"","sources":["../../../src/utils/sync_or_async.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC;;;OAGG;IACH,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC;IACpB;;;;OAIG;IACH,eAAe,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;CAC/B;AAED,QAAA,MAAM,WAAW;IACf;;;;OAIG;eACQ,CAAC,OAAO,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;IAS3C;;;;OAIG;gBACS,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;CAYtD,CAAC;AAEF,eAAe,WAAW,CAAC"}
1
+ {"version":3,"file":"sync_or_async.d.ts","sourceRoot":"","sources":["../../../src/utils/sync_or_async.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC;;;OAGG;IACH,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC;IACpB;;;;OAIG;IACH,eAAe,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;CAC/B;AAED,QAAA,MAAM,WAAW;IACf;;;;OAIG;eACQ,CAAC,OAAO,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;IAS3C;;;;OAIG;gBACS,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;CActD,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -41,7 +41,9 @@ var SyncOrAsync = {
41
41
  ret = resolved;
42
42
  }, noop_1.default);
43
43
  return {
44
- syncValue: ret,
44
+ get syncValue() {
45
+ return ret;
46
+ },
45
47
  getValueAsAsync: function () {
46
48
  return val;
47
49
  },
@@ -1 +1 @@
1
- {"version":3,"file":"embedded_dash_wasm.d.ts","sourceRoot":"","sources":["../../../src/__GENERATED_CODE/embedded_dash_wasm.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,eAAe,iBAAil0V,CAAC;AACvm0V,OAAO,EAAE,eAAe,IAAI,kBAAkB,EAAE,CAAC;AACjD,eAAe,eAAe,CAAC"}
1
+ {"version":3,"file":"embedded_dash_wasm.d.ts","sourceRoot":"","sources":["../../../src/__GENERATED_CODE/embedded_dash_wasm.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,eAAe,iBAAojkU,CAAC;AAC1kkU,OAAO,EAAE,eAAe,IAAI,kBAAkB,EAAE,CAAC;AACjD,eAAe,eAAe,CAAC"}