rx-player 4.2.0-dev.2024100200 → 4.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (77) hide show
  1. package/.vscode/settings.json +9 -0
  2. package/CHANGELOG.md +8 -1
  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/core/segment_sinks/segment_buffers_store.d.ts.map +1 -1
  7. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.d.ts.map +1 -1
  8. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.js +85 -8
  9. package/dist/commonjs/main_thread/api/debug/modules/general_info.js +1 -1
  10. package/dist/commonjs/main_thread/api/public_api.js +2 -2
  11. package/dist/commonjs/main_thread/decrypt/create_or_load_session.d.ts.map +1 -1
  12. package/dist/commonjs/main_thread/decrypt/create_or_load_session.js +4 -1
  13. package/dist/commonjs/main_thread/decrypt/find_key_system.d.ts.map +1 -1
  14. package/dist/commonjs/main_thread/decrypt/find_key_system.js +3 -0
  15. package/dist/commonjs/main_thread/decrypt/get_media_keys.d.ts.map +1 -1
  16. package/dist/commonjs/main_thread/decrypt/get_media_keys.js +2 -1
  17. package/dist/commonjs/main_thread/init/media_source_content_initializer.d.ts +11 -1
  18. package/dist/commonjs/main_thread/init/media_source_content_initializer.d.ts.map +1 -1
  19. package/dist/commonjs/main_thread/init/media_source_content_initializer.js +23 -11
  20. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.d.ts +2 -1
  21. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.d.ts.map +1 -1
  22. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.js +9 -5
  23. package/dist/commonjs/main_thread/init/utils/initial_seek_and_play.d.ts.map +1 -1
  24. package/dist/commonjs/main_thread/init/utils/initial_seek_and_play.js +3 -7
  25. package/dist/commonjs/main_thread/text_displayer/native/native_text_displayer.d.ts +1 -0
  26. package/dist/commonjs/main_thread/text_displayer/native/native_text_displayer.d.ts.map +1 -1
  27. package/dist/commonjs/main_thread/text_displayer/native/native_text_displayer.js +19 -16
  28. package/dist/commonjs/public_types.d.ts +54 -2
  29. package/dist/commonjs/public_types.d.ts.map +1 -1
  30. package/dist/commonjs/utils/sync_or_async.d.ts.map +1 -1
  31. package/dist/commonjs/utils/sync_or_async.js +3 -1
  32. package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.d.ts.map +1 -1
  33. package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.js +1 -1
  34. package/dist/es2017/core/segment_sinks/segment_buffers_store.d.ts.map +1 -1
  35. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.d.ts.map +1 -1
  36. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.js +36 -7
  37. package/dist/es2017/main_thread/api/debug/modules/general_info.js +1 -1
  38. package/dist/es2017/main_thread/api/public_api.js +2 -2
  39. package/dist/es2017/main_thread/decrypt/create_or_load_session.d.ts.map +1 -1
  40. package/dist/es2017/main_thread/decrypt/create_or_load_session.js +4 -1
  41. package/dist/es2017/main_thread/decrypt/find_key_system.d.ts.map +1 -1
  42. package/dist/es2017/main_thread/decrypt/find_key_system.js +3 -0
  43. package/dist/es2017/main_thread/decrypt/get_media_keys.d.ts.map +1 -1
  44. package/dist/es2017/main_thread/decrypt/get_media_keys.js +2 -1
  45. package/dist/es2017/main_thread/init/media_source_content_initializer.d.ts +11 -1
  46. package/dist/es2017/main_thread/init/media_source_content_initializer.d.ts.map +1 -1
  47. package/dist/es2017/main_thread/init/media_source_content_initializer.js +23 -11
  48. package/dist/es2017/main_thread/init/multi_thread_content_initializer.d.ts +2 -1
  49. package/dist/es2017/main_thread/init/multi_thread_content_initializer.d.ts.map +1 -1
  50. package/dist/es2017/main_thread/init/multi_thread_content_initializer.js +9 -5
  51. package/dist/es2017/main_thread/init/utils/initial_seek_and_play.d.ts.map +1 -1
  52. package/dist/es2017/main_thread/init/utils/initial_seek_and_play.js +3 -7
  53. package/dist/es2017/main_thread/text_displayer/native/native_text_displayer.d.ts +1 -0
  54. package/dist/es2017/main_thread/text_displayer/native/native_text_displayer.d.ts.map +1 -1
  55. package/dist/es2017/main_thread/text_displayer/native/native_text_displayer.js +19 -16
  56. package/dist/es2017/public_types.d.ts +54 -2
  57. package/dist/es2017/public_types.d.ts.map +1 -1
  58. package/dist/es2017/utils/sync_or_async.d.ts.map +1 -1
  59. package/dist/es2017/utils/sync_or_async.js +3 -1
  60. package/dist/mpd-parser.wasm +0 -0
  61. package/dist/rx-player.js +60 -31
  62. package/dist/rx-player.min.js +17 -17
  63. package/package.json +1 -1
  64. package/src/__GENERATED_CODE/embedded_dash_wasm.ts +1 -1
  65. package/src/core/segment_sinks/segment_buffers_store.ts +6 -2
  66. package/src/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.ts +39 -7
  67. package/src/main_thread/api/debug/modules/general_info.ts +1 -1
  68. package/src/main_thread/api/public_api.ts +2 -2
  69. package/src/main_thread/decrypt/create_or_load_session.ts +6 -1
  70. package/src/main_thread/decrypt/find_key_system.ts +3 -0
  71. package/src/main_thread/decrypt/get_media_keys.ts +1 -0
  72. package/src/main_thread/init/media_source_content_initializer.ts +50 -17
  73. package/src/main_thread/init/multi_thread_content_initializer.ts +15 -7
  74. package/src/main_thread/init/utils/initial_seek_and_play.ts +3 -7
  75. package/src/main_thread/text_displayer/native/native_text_displayer.ts +22 -18
  76. package/src/public_types.ts +54 -3
  77. package/src/utils/sync_or_async.ts +5 -3
@@ -1 +1 @@
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,CAAmD;IAEnF;;;;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
+ {"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 +1 @@
1
- {"version":3,"file":"DRMInfos.d.ts","sourceRoot":"","sources":["../../../../../../src/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,2BAA2B,EAAE,CAAC;CAC9C;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CACnC,WAAW,EAAE,mBAAmB,GAC/B,OAAO,CAAC,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAqChD"}
1
+ {"version":3,"file":"DRMInfos.d.ts","sourceRoot":"","sources":["../../../../../../src/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAUH,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,2BAA2B,EAAE,CAAC;CAC9C;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CACnC,WAAW,EAAE,mBAAmB,GAC/B,OAAO,CAAC,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAgEhD"}
@@ -14,9 +14,47 @@
14
14
  * See the License for the specific language governing permissions and
15
15
  * limitations under the License.
16
16
  */
17
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
18
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
19
+ return new (P || (P = Promise))(function (resolve, reject) {
20
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
21
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
22
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
23
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
24
+ });
25
+ };
26
+ var __generator = (this && this.__generator) || function (thisArg, body) {
27
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
28
+ return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
29
+ function verb(n) { return function (v) { return step([n, v]); }; }
30
+ function step(op) {
31
+ if (f) throw new TypeError("Generator is already executing.");
32
+ while (g && (g = 0, op[0] && (_ = 0)), _) try {
33
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
34
+ if (y = 0, t) op = [op[0] & 2, t.value];
35
+ switch (op[0]) {
36
+ case 0: case 1: t = op; break;
37
+ case 4: _.label++; return { value: op[1], done: false };
38
+ case 5: _.label++; y = op[1]; op = [0]; continue;
39
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
40
+ default:
41
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
42
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
43
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
44
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
45
+ if (t[2]) _.ops.pop();
46
+ _.trys.pop(); continue;
47
+ }
48
+ op = body.call(thisArg, _);
49
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
50
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
51
+ }
52
+ };
17
53
  Object.defineProperty(exports, "__esModule", { value: true });
18
54
  exports.default = probeDRMInfos;
55
+ var can_rely_on_request_media_key_system_access_1 = require("../../../../compat/can_rely_on_request_media_key_system_access");
19
56
  var eme_1 = require("../../../../compat/eme");
57
+ var generate_init_data_1 = require("../../../../compat/generate_init_data");
20
58
  var is_null_or_undefined_1 = require("../../../../utils/is_null_or_undefined");
21
59
  var log_1 = require("../log");
22
60
  var types_1 = require("../types");
@@ -25,6 +63,7 @@ var types_1 = require("../types");
25
63
  * @returns {Promise}
26
64
  */
27
65
  function probeDRMInfos(mediaConfig) {
66
+ var _this = this;
28
67
  var keySystem = mediaConfig.keySystem;
29
68
  if ((0, is_null_or_undefined_1.default)(keySystem) || (0, is_null_or_undefined_1.default)(keySystem.type)) {
30
69
  return Promise.reject("MediaCapabilitiesProber >>> API_CALL: " +
@@ -42,14 +81,52 @@ function probeDRMInfos(mediaConfig) {
42
81
  }
43
82
  return eme_1.default
44
83
  .requestMediaKeySystemAccess(type, [configuration])
45
- .then(function (keySystemAccess) {
46
- result.compatibleConfiguration = keySystemAccess.getConfiguration();
47
- var status = [
48
- types_1.ProberStatus.Supported,
49
- result,
50
- ];
51
- return status;
52
- })
84
+ .then(function (keySystemAccess) { return __awaiter(_this, void 0, void 0, function () {
85
+ var mediaKeys, session, initData, status_1, err_1, statusError, status_2;
86
+ return __generator(this, function (_a) {
87
+ switch (_a.label) {
88
+ case 0:
89
+ if (!!(0, can_rely_on_request_media_key_system_access_1.canRelyOnRequestMediaKeySystemAccess)(type)) return [3 /*break*/, 6];
90
+ _a.label = 1;
91
+ case 1:
92
+ _a.trys.push([1, 4, , 5]);
93
+ return [4 /*yield*/, keySystemAccess.createMediaKeys()];
94
+ case 2:
95
+ mediaKeys = _a.sent();
96
+ session = mediaKeys.createSession();
97
+ initData = (0, generate_init_data_1.generatePlayReadyInitData)(generate_init_data_1.DUMMY_PLAY_READY_HEADER);
98
+ return [4 /*yield*/, session.generateRequest("cenc", initData)];
99
+ case 3:
100
+ _a.sent();
101
+ session.close().catch(function () {
102
+ log_1.default.warn("DRM: Failed to close the dummy session");
103
+ });
104
+ result.compatibleConfiguration = keySystemAccess.getConfiguration();
105
+ status_1 = [
106
+ types_1.ProberStatus.Supported,
107
+ result,
108
+ ];
109
+ return [2 /*return*/, status_1];
110
+ case 4:
111
+ err_1 = _a.sent();
112
+ log_1.default.debug("DRM: KeySystemAccess was granted but it is not usable");
113
+ statusError = [
114
+ types_1.ProberStatus.NotSupported,
115
+ result,
116
+ ];
117
+ return [2 /*return*/, statusError];
118
+ case 5: return [3 /*break*/, 7];
119
+ case 6:
120
+ result.compatibleConfiguration = keySystemAccess.getConfiguration();
121
+ status_2 = [
122
+ types_1.ProberStatus.Supported,
123
+ result,
124
+ ];
125
+ return [2 /*return*/, status_2];
126
+ case 7: return [2 /*return*/];
127
+ }
128
+ });
129
+ }); })
53
130
  .catch(function () {
54
131
  return [types_1.ProberStatus.NotSupported, result];
55
132
  });
@@ -70,7 +70,7 @@ function constructDebugGeneralInfo(instance, parentElt, cancelSignal) {
70
70
  else {
71
71
  valuesLine1.push(["wo", "0"]);
72
72
  }
73
- var valuesLine2 = [];
73
+ var valuesLine2 = [["v", instance.version]];
74
74
  var ks = instance.getKeySystemConfiguration();
75
75
  if (ks !== null) {
76
76
  valuesLine2.push(["ks", ks.keySystem]);
@@ -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.2024100200";
164
+ _this.version = /* PLAYER_VERSION */ "4.2.0";
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.2024100200";
2692
+ Player.version = /* PLAYER_VERSION */ "4.2.0";
2693
2693
  exports.default = Player;
@@ -1 +1 @@
1
- {"version":3,"file":"create_or_load_session.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/decrypt/create_or_load_session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,KAAK,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAChF,OAAO,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAGrD,OAAO,KAAK,gBAAgB,MAAM,4BAA4B,CAAC;AAE/D;;;;;;;;;;;;;;;;GAgBG;AACH,wBAA8B,mBAAmB,CAC/C,kBAAkB,EAAE,wBAAwB,EAC5C,MAAM,EAAE,sBAAsB,EAC9B,iBAAiB,EAAE,mBAAmB,EACtC,mBAAmB,EAAE,MAAM,EAC3B,YAAY,EAAE,kBAAkB,GAC/B,OAAO,CAAC,0BAA0B,CAAC,CAsDrC;AAED,gDAAgD;AAChD,MAAM,WAAW,uBAAuB;IACtC,kCAAkC;IAClC,eAAe,EAAE,eAAe,GAAG,sBAAsB,CAAC;IAC1D,sDAAsD;IACtD,WAAW,EAAE,mBAAmB,CAAC;IACjC,8DAA8D;IAC9D,gBAAgB,EAAE,gBAAgB,CAAC;CACpC;AAED,iEAAiE;AACjE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,0BAA0B,CAAC,OAAO,CAAC;IACzC,KAAK,EAAE,uBAAuB,CAAC;CAChC;AAED,oEAAoE;AACpE,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,0BAA0B,CAAC,iBAAiB,CAAC;IACnD,KAAK,EAAE,uBAAuB,CAAC;CAChC;AAED,uEAAuE;AACvE,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,0BAA0B,CAAC,uBAAuB,CAAC;IACzD,KAAK,EAAE,uBAAuB,CAAC;CAChC;AAED,+DAA+D;AAC/D,MAAM,MAAM,0BAA0B,GAClC,eAAe,GACf,kBAAkB,GAClB,6BAA6B,CAAC"}
1
+ {"version":3,"file":"create_or_load_session.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/decrypt/create_or_load_session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE/D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,KAAK,EAAE,wBAAwB,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAChF,OAAO,EAAE,0BAA0B,EAAE,MAAM,SAAS,CAAC;AAGrD,OAAO,KAAK,gBAAgB,MAAM,4BAA4B,CAAC;AAE/D;;;;;;;;;;;;;;;;GAgBG;AACH,wBAA8B,mBAAmB,CAC/C,kBAAkB,EAAE,wBAAwB,EAC5C,MAAM,EAAE,sBAAsB,EAC9B,iBAAiB,EAAE,mBAAmB,EACtC,mBAAmB,EAAE,MAAM,EAC3B,YAAY,EAAE,kBAAkB,GAC/B,OAAO,CAAC,0BAA0B,CAAC,CA2DrC;AAED,gDAAgD;AAChD,MAAM,WAAW,uBAAuB;IACtC,kCAAkC;IAClC,eAAe,EAAE,eAAe,GAAG,sBAAsB,CAAC;IAC1D,sDAAsD;IACtD,WAAW,EAAE,mBAAmB,CAAC;IACjC,8DAA8D;IAC9D,gBAAgB,EAAE,gBAAgB,CAAC;CACpC;AAED,iEAAiE;AACjE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,0BAA0B,CAAC,OAAO,CAAC;IACzC,KAAK,EAAE,uBAAuB,CAAC;CAChC;AAED,oEAAoE;AACpE,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,0BAA0B,CAAC,iBAAiB,CAAC;IACnD,KAAK,EAAE,uBAAuB,CAAC;CAChC;AAED,uEAAuE;AACvE,MAAM,WAAW,6BAA6B;IAC5C,IAAI,EAAE,0BAA0B,CAAC,uBAAuB,CAAC;IACzD,KAAK,EAAE,uBAAuB,CAAC;CAChC;AAED,+DAA+D;AAC/D,MAAM,MAAM,0BAA0B,GAClC,eAAe,GACf,kBAAkB,GAClB,6BAA6B,CAAC"}
@@ -112,7 +112,10 @@ function createOrLoadSession(initializationData, stores, wantedSessionType, maxS
112
112
  throw cancelSignal.cancellationError; // stop here if cancelled since
113
113
  }
114
114
  _a.label = 2;
115
- case 2: return [4 /*yield*/, (0, clean_old_loaded_sessions_1.default)(loadedSessionsStore, maxSessionCacheSize)];
115
+ case 2: return [4 /*yield*/, (0, clean_old_loaded_sessions_1.default)(loadedSessionsStore,
116
+ // Account for the next session we will be creating
117
+ // Note that `maxSessionCacheSize < 0 has special semantic (no limit)`
118
+ maxSessionCacheSize <= 0 ? maxSessionCacheSize : maxSessionCacheSize - 1)];
116
119
  case 3:
117
120
  _a.sent();
118
121
  if (cancelSignal.cancellationError !== null) {
@@ -1 +1 @@
1
- {"version":3,"file":"find_key_system.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/decrypt/find_key_system.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAE9E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAUpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAK3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAKrE,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC,CAAC;AAEH,MAAM,WAAW,0BAA0B;IACzC,qEAAqE;IACrE,oBAAoB,EAAE,oBAAoB,GAAG,2BAA2B,CAAC;IACzE;;;OAGG;IACH,kBAAkB,EAAE,2BAA2B,CAAC;IAChD;;;OAGG;IACH,OAAO,EAAE,gBAAgB,CAAC;IAC1B,oFAAoF;IACpF,YAAY,EAAE,iBAAiB,CAAC;CACjC;AAED,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE,+BAA+B,CAAC;IACtC,KAAK,EAAE,0BAA0B,CAAC;CACnC;AAED,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE,gCAAgC,CAAC;IACvC,KAAK,EAAE,0BAA0B,CAAC;CACnC;AAED,MAAM,MAAM,+BAA+B,GACvC,+BAA+B,GAC/B,gCAAgC,CAAC;AAkPrC;;;;;;;GAOG;AACH,wBAAgB,wCAAwC,CACtD,oBAAoB,EAAE,2BAA2B,EACjD,gBAAgB,EAAE,2BAA2B,GAC5C,iBAAiB,CA2CnB;AACD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAC7C,YAAY,EAAE,aAAa,EAC3B,iBAAiB,EAAE,gBAAgB,EAAE,EACrC,YAAY,EAAE,kBAAkB,GAC/B,OAAO,CAAC,+BAA+B,CAAC,CA+H1C;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,uBAAuB,EAAE,2BAA2B,EAAE,+FAmBvD"}
1
+ {"version":3,"file":"find_key_system.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/decrypt/find_key_system.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAE9E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAUpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAK3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAKrE,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC,CAAC;AAEH,MAAM,WAAW,0BAA0B;IACzC,qEAAqE;IACrE,oBAAoB,EAAE,oBAAoB,GAAG,2BAA2B,CAAC;IACzE;;;OAGG;IACH,kBAAkB,EAAE,2BAA2B,CAAC;IAChD;;;OAGG;IACH,OAAO,EAAE,gBAAgB,CAAC;IAC1B,oFAAoF;IACpF,YAAY,EAAE,iBAAiB,CAAC;CACjC;AAED,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE,+BAA+B,CAAC;IACtC,KAAK,EAAE,0BAA0B,CAAC;CACnC;AAED,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE,gCAAgC,CAAC;IACvC,KAAK,EAAE,0BAA0B,CAAC;CACnC;AAED,MAAM,MAAM,+BAA+B,GACvC,+BAA+B,GAC/B,gCAAgC,CAAC;AAkPrC;;;;;;;GAOG;AACH,wBAAgB,wCAAwC,CACtD,oBAAoB,EAAE,2BAA2B,EACjD,gBAAgB,EAAE,2BAA2B,GAC5C,iBAAiB,CA2CnB;AACD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAC7C,YAAY,EAAE,aAAa,EAC3B,iBAAiB,EAAE,gBAAgB,EAAE,EACrC,YAAY,EAAE,kBAAkB,GAC/B,OAAO,CAAC,+BAA+B,CAAC,CA+H1C;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,uBAAuB,EAAE,2BAA2B,EAAE,+FAsBvD"}
@@ -504,6 +504,9 @@ function testKeySystem(keyType, keySystemConfigurations) {
504
504
  return [4 /*yield*/, session.generateRequest("cenc", initData)];
505
505
  case 4:
506
506
  _a.sent();
507
+ session.close().catch(function () {
508
+ log_1.default.warn("DRM: Failed to close the dummy session");
509
+ });
507
510
  return [3 /*break*/, 6];
508
511
  case 5:
509
512
  err_1 = _a.sent();
@@ -1 +1 @@
1
- {"version":3,"file":"get_media_keys.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/decrypt/get_media_keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAE9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAGtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAuBtD,8CAA8C;AAC9C,MAAM,WAAW,eAAe;IAC9B,+EAA+E;IAC/E,oBAAoB,EAAE,oBAAoB,GAAG,2BAA2B,CAAC;IACzE;;;OAGG;IACH,kBAAkB,EAAE,2BAA2B,CAAC;IAChD,8BAA8B;IAC9B,SAAS,EAAE,SAAS,GAAG,gBAAgB,CAAC;IACxC,+DAA+D;IAC/D,MAAM,EAAE,sBAAsB,CAAC;IAC/B,qEAAqE;IACrE,OAAO,EAAE,gBAAgB,CAAC;IAC1B,yBAAyB;IACzB,YAAY,EAAE,iBAAiB,CAAC;CACjC;AAED;;;;;;;;;;;;GAYG;AACH,wBAA8B,iBAAiB,CAC7C,YAAY,EAAE,aAAa,EAC3B,iBAAiB,EAAE,gBAAgB,EAAE,EACrC,YAAY,EAAE,kBAAkB,GAC/B,OAAO,CAAC,eAAe,CAAC,CAoD1B"}
1
+ {"version":3,"file":"get_media_keys.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/decrypt/get_media_keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAE9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAGtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAuBtD,8CAA8C;AAC9C,MAAM,WAAW,eAAe;IAC9B,+EAA+E;IAC/E,oBAAoB,EAAE,oBAAoB,GAAG,2BAA2B,CAAC;IACzE;;;OAGG;IACH,kBAAkB,EAAE,2BAA2B,CAAC;IAChD,8BAA8B;IAC9B,SAAS,EAAE,SAAS,GAAG,gBAAgB,CAAC;IACxC,+DAA+D;IAC/D,MAAM,EAAE,sBAAsB,CAAC;IAC/B,qEAAqE;IACrE,OAAO,EAAE,gBAAgB,CAAC;IAC1B,yBAAyB;IACzB,YAAY,EAAE,iBAAiB,CAAC;CACjC;AAED;;;;;;;;;;;;GAYG;AACH,wBAA8B,iBAAiB,CAC7C,YAAY,EAAE,aAAa,EAC3B,iBAAiB,EAAE,gBAAgB,EAAE,EACrC,YAAY,EAAE,kBAAkB,GAC/B,OAAO,CAAC,eAAe,CAAC,CAqD1B"}
@@ -101,7 +101,8 @@ function getMediaKeysInfos(mediaElement, keySystemsConfigs, cancelSignal) {
101
101
  _a = evt.value, options = _a.options, mediaKeySystemAccess = _a.mediaKeySystemAccess, askedConfiguration = _a.askedConfiguration, codecSupport = _a.codecSupport;
102
102
  currentState = media_keys_infos_store_1.default.getState(mediaElement);
103
103
  persistentSessionsStore = createPersistentSessionsStorage(options);
104
- if ((0, can_reuse_media_keys_1.default)() &&
104
+ if (evt.value.options.reuseMediaKeys !== false &&
105
+ (0, can_reuse_media_keys_1.default)() &&
105
106
  currentState !== null &&
106
107
  evt.type === "reuse-media-key-system-access") {
107
108
  log_1.default.debug("DRM: Reusing already created MediaKeys");
@@ -35,7 +35,7 @@ import type { IInitialTimeOptions } from "./utils/get_initial_time";
35
35
  */
36
36
  export default class MediaSourceContentInitializer extends ContentInitializer {
37
37
  /** Constructor settings associated to this `MediaSourceContentInitializer`. */
38
- private _settings;
38
+ private _initSettings;
39
39
  /**
40
40
  * `TaskCanceller` allowing to abort everything that the
41
41
  * `MediaSourceContentInitializer` is doing.
@@ -91,7 +91,17 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
91
91
  */
92
92
  updateContentUrls(urls: string[] | undefined, refreshNow: boolean): void;
93
93
  dispose(): void;
94
+ /**
95
+ * Callback called when an error interrupting playback arised.
96
+ * @param {*} err
97
+ */
94
98
  private _onFatalError;
99
+ /**
100
+ * Initialize decryption mechanisms if needed and begin creating and relying
101
+ * on the initial `MediaSourceInterface` for this content.
102
+ * @param {HTMLMediaElement|null} mediaElement
103
+ * @returns {Promise.<Object>}
104
+ */
95
105
  private _initializeMediaSourceAndDecryption;
96
106
  private _onInitialMediaSourceReady;
97
107
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"media_source_content_initializer.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/init/media_source_content_initializer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"media_source_content_initializer.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/init/media_source_content_initializer.ts"],"names":[],"mappings":"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"}
@@ -142,7 +142,7 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
142
142
  */
143
143
  function MediaSourceContentInitializer(settings) {
144
144
  var _this = _super.call(this) || this;
145
- _this._settings = settings;
145
+ _this._initSettings = settings;
146
146
  _this._initCanceller = new task_canceller_1.default();
147
147
  _this._manifest = null;
148
148
  _this._decryptionCapabilities = { status: "uninitialized", value: null };
@@ -208,6 +208,10 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
208
208
  MediaSourceContentInitializer.prototype.dispose = function () {
209
209
  this._initCanceller.cancel();
210
210
  };
211
+ /**
212
+ * Callback called when an error interrupting playback arised.
213
+ * @param {*} err
214
+ */
211
215
  MediaSourceContentInitializer.prototype._onFatalError = function (err) {
212
216
  if (this._initCanceller.isUsed()) {
213
217
  return;
@@ -215,11 +219,17 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
215
219
  this._initCanceller.cancel();
216
220
  this.trigger("error", err);
217
221
  };
222
+ /**
223
+ * Initialize decryption mechanisms if needed and begin creating and relying
224
+ * on the initial `MediaSourceInterface` for this content.
225
+ * @param {HTMLMediaElement|null} mediaElement
226
+ * @returns {Promise.<Object>}
227
+ */
218
228
  MediaSourceContentInitializer.prototype._initializeMediaSourceAndDecryption = function (mediaElement) {
219
229
  var _this = this;
220
230
  var initCanceller = this._initCanceller;
221
231
  return (0, create_cancellable_promise_1.default)(initCanceller.signal, function (resolve) {
222
- var keySystems = _this._settings.keySystems;
232
+ var keySystems = _this._initSettings.keySystems;
223
233
  /** Initialize decryption capabilities. */
224
234
  var _a = (0, initialize_content_decryption_1.default)(mediaElement, keySystems, {
225
235
  onWarning: function (err) { return _this.trigger("warning", err); },
@@ -403,7 +413,7 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
403
413
  return __generator(this, function (_d) {
404
414
  switch (_d.label) {
405
415
  case 0:
406
- _a = this._settings, adaptiveOptions = _a.adaptiveOptions, autoPlay = _a.autoPlay, bufferOptions = _a.bufferOptions, lowLatencyMode = _a.lowLatencyMode, segmentRequestOptions = _a.segmentRequestOptions, speed = _a.speed, startAt = _a.startAt, textTrackOptions = _a.textTrackOptions, transport = _a.transport;
416
+ _a = this._initSettings, adaptiveOptions = _a.adaptiveOptions, autoPlay = _a.autoPlay, bufferOptions = _a.bufferOptions, lowLatencyMode = _a.lowLatencyMode, segmentRequestOptions = _a.segmentRequestOptions, speed = _a.speed, startAt = _a.startAt, textTrackOptions = _a.textTrackOptions, transport = _a.transport;
407
417
  initCanceller = this._initCanceller;
408
418
  (0, assert_1.default)(this._manifest !== null);
409
419
  _d.label = 1;
@@ -470,14 +480,7 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
470
480
  return this._onFatalError(error);
471
481
  }
472
482
  var textDisplayerInterface = null;
473
- var textDisplayer = null;
474
- if (this._settings.textTrackOptions.textTrackMode === "html" &&
475
- features_1.default.htmlTextDisplayer !== null) {
476
- textDisplayer = new features_1.default.htmlTextDisplayer(mediaElement, this._settings.textTrackOptions.textTrackElement);
477
- }
478
- else if (features_1.default.nativeTextDisplayer !== null) {
479
- textDisplayer = new features_1.default.nativeTextDisplayer(mediaElement);
480
- }
483
+ var textDisplayer = createTextDisplayer(mediaElement, this._initSettings.textTrackOptions);
481
484
  if (textDisplayer !== null) {
482
485
  var sender_1 = new main_thread_text_displayer_interface_1.default(textDisplayer);
483
486
  textDisplayerInterface = sender_1;
@@ -922,6 +925,15 @@ var MediaSourceContentInitializer = /** @class */ (function (_super) {
922
925
  return MediaSourceContentInitializer;
923
926
  }(types_1.ContentInitializer));
924
927
  exports.default = MediaSourceContentInitializer;
928
+ function createTextDisplayer(mediaElement, textTrackOptions) {
929
+ if (textTrackOptions.textTrackMode === "html" && features_1.default.htmlTextDisplayer !== null) {
930
+ return new features_1.default.htmlTextDisplayer(mediaElement, textTrackOptions.textTrackElement);
931
+ }
932
+ else if (features_1.default.nativeTextDisplayer !== null) {
933
+ return new features_1.default.nativeTextDisplayer(mediaElement);
934
+ }
935
+ return null;
936
+ }
925
937
  /**
926
938
  * Change the decipherability of Representations which have their key id in one
927
939
  * of the given Arrays:
@@ -51,7 +51,8 @@ export default class MultiThreadContentInitializer extends ContentInitializer {
51
51
  */
52
52
  private _currentMediaSourceCanceller;
53
53
  /**
54
- * Stores the resolvers and the current messageId that is sent to the web worker to receive segment sink metrics.
54
+ * Stores the resolvers and the current messageId that is sent to the web worker to
55
+ * receive segment sink metrics.
55
56
  * The purpose of collecting metrics is for monitoring and debugging.
56
57
  */
57
58
  private _segmentMetrics;
@@ -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":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAI9E,OAAO,KAAK,EACV,wCAAwC,EAGzC,MAAM,kBAAkB,CAAC;AAU1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAMxD,OAAO,wBAAwB,MAAM,uCAAuC,CAAC;AAO7E,OAAO,KAAK,EAEV,6BAA6B,EAC9B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAEjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAM1D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAMtE,OAAO,KAAK,iBAAiB,MAAM,YAAY,CAAC;AAIhD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAG7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAIpE,OAAO,qBAAqB,MAAM,gCAAgC,CAAC;AACnE,OAAO,mBAAmB,MAAM,qDAAqD,CAAC;AAMtF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,6BAA8B,SAAQ,kBAAkB;IAC3E,+EAA+E;IAC/E,OAAO,CAAC,SAAS,CAAuB;IAExC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,qBAAqB,CAAwB;IAErD;;;;OAIG;IACH,OAAO,CAAC,mBAAmB,CAAoD;IAC/E;;;OAGG;IACH,OAAO,CAAC,cAAc,CAAgB;IACtC;;;;;;OAMG;IACH,OAAO,CAAC,4BAA4B,CAAgB;IAEpD;;;OAGG;IACH,OAAO,CAAC,eAAe,CAGrB;IAEF;;;;OAIG;gBACS,QAAQ,EAAE,oBAAoB;IAc1C;;OAEG;IACI,OAAO,IAAI,IAAI;IA6ItB;;;;;;OAMG;IACI,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,UAAU,EAAE,OAAO,GAAG,IAAI;IAW/E;;;OAGG;IACI,KAAK,CACV,YAAY,EAAE,aAAa,EAC3B,gBAAgB,EAAE,6BAA6B,GAC9C,IAAI;IAm1BA,OAAO,IAAI,IAAI;IAQtB,OAAO,CAAC,aAAa;IAQrB,OAAO,CAAC,4BAA4B;IAkLpC;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;IAoB3B,OAAO,CAAC,qBAAqB;IAQ7B,OAAO,CAAC,OAAO;IA6Df;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,6BAA6B;IAmKrC;;;;;;;;;;;;;;;OAeG;IACH,OAAO,CAAC,qBAAqB;IA2E7B;;;;;;;OAOG;IACH,OAAO,CAAC,2BAA2B;CAsEpC;AAED,MAAM,WAAW,0CAA0C;IACzD;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,QAAQ,EAAE,iBAAiB,GAAG,IAAI,CAAC;IACnC;;;;OAIG;IACH,qBAAqB,EAAE,wBAAwB,GAAG,IAAI,CAAC;IACvD;;;;;OAKG;IACH,qBAAqB,EAAE,qBAAqB,GAAG,IAAI,CAAC;IACpD;;;;;OAKG;IACH,mBAAmB,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAChD;;;OAGG;IACH,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC;;;OAGG;IACH,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B;;;;;;OAMG;IACH,oBAAoB,EAAE,wBAAwB,CAAC,OAAO,CAAC,GAAG,IAAI,CAAC;IAC/D;;;;OAIG;IACH,gBAAgB,EAAE,iBAAiB,GAAG,IAAI,CAAC;CAC5C;AAED,mEAAmE;AACnE,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,eAAe,EAAE,wCAAwC,CAAC;IAC1D,4CAA4C;IAC5C,QAAQ,EAAE,OAAO,CAAC;IAClB,4CAA4C;IAC5C,aAAa,EAAE;QACb,+DAA+D;QAC/D,iBAAiB,EAAE,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACpD,oEAAoE;QACpE,kBAAkB,EAAE,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACrD,iFAAiF;QACjF,cAAc,EAAE,wBAAwB,CAAC,MAAM,CAAC,CAAC;QACjD,oFAAoF;QACpF,eAAe,EAAE,wBAAwB,CAAC,MAAM,CAAC,CAAC;QAClD;;;WAGG;QACH,mBAAmB,EAAE,OAAO,CAAC;QAC7B,mEAAmE;QACnE,aAAa,EAAE,UAAU,GAAG,QAAQ,CAAC;KACtC,CAAC;IACF;;OAEG;IACH,IAAI,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IAChC,0CAA0C;IAC1C,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,qDAAqD;IACrD,cAAc,EAAE,OAAO,CAAC;IACxB,kDAAkD;IAClD,gBAAgB,EAAE,IAAI,CACpB,iBAAiB,EACjB,gBAAgB,GAAG,eAAe,GAAG,sBAAsB,CAC5D,GAAG;QAGF,cAAc,EAAE,SAAS,CAAC;QAC1B,aAAa,EAAE,SAAS,CAAC;QAGzB,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;KAC1C,CAAC;IACF,4CAA4C;IAC5C,uBAAuB,EAAE;QACvB,iEAAiE;QACjE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;QAC7B;;;;;WAKG;QACH,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;QACnC;;;;WAIG;QACH,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;QACtC,+CAA+C;QAC/C,6BAA6B,EAAE,MAAM,CAAC;QACtC;;;WAGG;QACH,eAAe,EAAE,gBAAgB,GAAG,SAAS,CAAC;KAC/C,CAAC;IACF,sDAAsD;IACtD,qBAAqB,EAAE;QACrB,cAAc,EAAE,OAAO,CAAC;QACxB;;;;WAIG;QACH,cAAc,EAAE,MAAM,GAAG,SAAS,CAAC;QACnC;;;;WAIG;QACH,iBAAiB,EAAE,MAAM,GAAG,SAAS,CAAC;QACtC,iEAAiE;QACjE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;KAC9B,CAAC;IACF,sDAAsD;IACtD,KAAK,EAAE,wBAAwB,CAAC,MAAM,CAAC,CAAC;IACxC,wCAAwC;IACxC,OAAO,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAC1C,gDAAgD;IAChD,gBAAgB,EAAE,qBAAqB,CAAC;IACxC,oEAAoE;IACpE,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;CACzB"}
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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"}
@@ -145,7 +145,7 @@ 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
150
  _this._queuedWorkerMessages = null;
151
151
  return _this;
@@ -930,10 +930,9 @@ var MultiThreadContentInitializer = /** @class */ (function (_super) {
930
930
  if (((_27 = _this._currentContentInfo) === null || _27 === void 0 ? void 0 : _27.contentId) !== msgData.contentId) {
931
931
  return;
932
932
  }
933
- var resolveFn = _this._segmentMetrics.resolvers[msgData.value.messageId];
933
+ var resolveFn = _this._segmentMetrics.resolvers.get(msgData.value.messageId);
934
934
  if (resolveFn !== undefined) {
935
935
  resolveFn(msgData.value.segmentSinkMetrics);
936
- delete _this._segmentMetrics.resolvers[msgData.value.messageId];
937
936
  }
938
937
  else {
939
938
  log_1.default.error("MTCI: Failed to send segment sink store update");
@@ -1298,11 +1297,16 @@ var MultiThreadContentInitializer = /** @class */ (function (_super) {
1298
1297
  value: { messageId: messageId },
1299
1298
  });
1300
1299
  return [2 /*return*/, new Promise(function (resolve, reject) {
1301
- _this._segmentMetrics.resolvers[messageId] = resolve;
1302
1300
  var rejectFn = function (err) {
1303
- delete _this._segmentMetrics.resolvers[messageId];
1301
+ cancelSignal.deregister(rejectFn);
1302
+ _this._segmentMetrics.resolvers.delete(messageId);
1304
1303
  return reject(err);
1305
1304
  };
1305
+ _this._segmentMetrics.resolvers.set(messageId, function (value) {
1306
+ cancelSignal.deregister(rejectFn);
1307
+ _this._segmentMetrics.resolvers.delete(messageId);
1308
+ resolve(value);
1309
+ });
1306
1310
  cancelSignal.register(rejectFn);
1307
1311
  })];
1308
1312
  });
@@ -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,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"}
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,CA+N3B"}
@@ -64,13 +64,9 @@ function performInitialSeekAndPlay(_a, cancelSignal) {
64
64
  if (initiallySeekedTime === undefined &&
65
65
  obs.readyState < HTMLMediaElement.HAVE_CURRENT_DATA) {
66
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.
67
+ * The starting position may not be known yet.
68
+ * Postpone the seek to a moment where the starting position should be known,
69
+ * assumely it's when readyState is greater or equal to HAVE_CURRENT_DATA (2).
74
70
  * If the initiallySeekedTime is still `undefined` when the readyState is >= 2,
75
71
  * let assume that the initiallySeekedTime will never be known and continue
76
72
  * the logic without seeking.
@@ -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;
@@ -473,10 +473,62 @@ export interface IKeySystemOption {
473
473
  */
474
474
  distinctiveIdentifier?: MediaKeysRequirement | undefined;
475
475
  /**
476
- * If true, all open MediaKeySession (used to decrypt the content) will be
477
- * closed when the current playback stops.
476
+ * If true, all open `MediaKeySession` (JavaScript Objects linked to the keys
477
+ * used to decrypt the content) will be closed when the current playback
478
+ * stops.
479
+ *
480
+ * By default, we keep `MediaKeySession` from previous contents (up to
481
+ * `maxSessionCacheSize` `MediaKeySession`) to speed-up playback and avoid
482
+ * round-trips to the license server if the user ever decide to go back to
483
+ * those contents or to other contents relying to the same keys.
484
+ *
485
+ * However we found that some devices poorly handle that optimization.
486
+ *
487
+ * Note that if setting that property to `true` fixes your issue, it may be
488
+ * that it's just the `maxSessionCacheSize` which is for now too high.
489
+ *
490
+ * However if your problem doesn't disappear after setting
491
+ * `closeSessionsOnStop` to `true`, you may try `reuseMediaKeys` next.
478
492
  */
479
493
  closeSessionsOnStop?: boolean;
494
+ /**
495
+ * If set to `true` or if not set, we might rely on the previous `MediaKeys`
496
+ * if a compatible one is already set on the media element, allowing to
497
+ * potentially speed-up content playback.
498
+ *
499
+ * If set to `false`, we will create a new `MediaKeys` instance (a
500
+ * JavaScript object needed to decrypt contents) if needed for that content.
501
+ *
502
+ * We noticed that reusing a previous MediaKeys had led to errors on a few
503
+ * devices. For example some smart TVs had shown errors after playing several
504
+ * encrypted contents, errors which disappeared if we renewed the
505
+ * `MediaKeys` for each content.
506
+ *
507
+ * We should already be able to detect most of those cases in the RxPlayer
508
+ * logic. However, it is still possible that we don't know yet of a device
509
+ * which also has problem with that optimization.
510
+ *
511
+ * If you have issues appearing only after playing multiple encrypted
512
+ * contents:
513
+ *
514
+ * - First, try setting the `closeSessionsOnStop` option which is less
515
+ * destructive.
516
+ *
517
+ * If it fixes your issue, it may be that it's just the number of
518
+ * `MediaKeySession` cached by the RxPlayer that is here too high.
519
+ *
520
+ * In that case you can instead update the `maxSessionCacheSize` option
521
+ * to still profit from a `MediaKeySession` cache (which avoid making
522
+ * license requests for already-played contents).
523
+ *
524
+ * If that second option doesn't seem to have an effect, you can just set
525
+ * `closeSessionsOnStop`.
526
+ *
527
+ * - If none of the precedent work-arounds work however, you can try setting
528
+ * `reuseMediaKeys` to `false`. If it fixes your problem, please open an
529
+ * RxPlayer issue so we can add your device to our list.
530
+ */
531
+ reuseMediaKeys?: boolean | undefined;
480
532
  singleLicensePer?: "content" | "periods" | "init-data";
481
533
  /**
482
534
  * Maximum number of `MediaKeySession` that should be created on the same