rx-player 3.27.0-dev.20220317 → 3.27.0-dev.2022032800
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.
- package/.eslintrc.js +0 -4
- package/CHANGELOG.md +5 -2
- package/VERSION +1 -1
- package/dist/_esm5.processed/compat/eme/close_session.js +1 -2
- package/dist/_esm5.processed/compat/eme/custom_key_system_access.d.ts +15 -0
- package/dist/_esm5.processed/compat/eme/custom_key_system_access.js +1 -17
- package/dist/_esm5.processed/compat/eme/custom_media_keys/ie11_media_keys.js +6 -7
- package/dist/_esm5.processed/compat/eme/custom_media_keys/index.js +3 -4
- package/dist/_esm5.processed/compat/eme/custom_media_keys/old_webkit_media_keys.js +20 -17
- package/dist/_esm5.processed/compat/eme/custom_media_keys/webkit_media_keys.js +29 -14
- package/dist/_esm5.processed/compat/eme/generate_key_request.d.ts +4 -6
- package/dist/_esm5.processed/compat/eme/generate_key_request.js +4 -6
- package/dist/_esm5.processed/compat/eme/load_session.js +1 -2
- package/dist/_esm5.processed/config.d.ts +0 -3
- package/dist/_esm5.processed/core/api/option_utils.d.ts +3 -2
- package/dist/_esm5.processed/core/api/option_utils.js +2 -1
- package/dist/_esm5.processed/core/api/public_api.js +3 -4
- package/dist/_esm5.processed/core/decrypt/attach_media_keys.js +1 -2
- package/dist/_esm5.processed/core/decrypt/clear_on_stop.js +1 -2
- package/dist/_esm5.processed/core/decrypt/content_decryptor.js +12 -5
- package/dist/_esm5.processed/core/decrypt/create_or_load_session.js +1 -1
- package/dist/_esm5.processed/core/decrypt/create_session.d.ts +3 -1
- package/dist/_esm5.processed/core/decrypt/create_session.js +16 -7
- package/dist/_esm5.processed/core/decrypt/find_key_system.js +1 -2
- package/dist/_esm5.processed/core/decrypt/utils/clean_old_loaded_sessions.js +1 -2
- package/dist/_esm5.processed/core/decrypt/utils/loaded_sessions_store.d.ts +94 -1
- package/dist/_esm5.processed/core/decrypt/utils/loaded_sessions_store.js +238 -98
- package/dist/_esm5.processed/core/fetchers/manifest/manifest_fetcher.js +1 -3
- package/dist/_esm5.processed/core/fetchers/utils/try_urls_with_backoff.js +2 -3
- package/dist/_esm5.processed/core/init/initialize_media_source.d.ts +2 -1
- package/dist/_esm5.processed/core/stream/index.d.ts +1 -0
- package/dist/_esm5.processed/core/stream/period/get_adaptation_switch_strategy.d.ts +15 -11
- package/dist/_esm5.processed/core/stream/period/get_adaptation_switch_strategy.js +5 -2
- package/dist/_esm5.processed/core/stream/period/index.d.ts +1 -0
- package/dist/_esm5.processed/core/stream/period/period_stream.d.ts +3 -11
- package/dist/_esm5.processed/core/stream/representation/append_segment_to_buffer.js +4 -3
- package/dist/_esm5.processed/default_config.d.ts +0 -27
- package/dist/_esm5.processed/default_config.js +0 -27
- package/dist/_esm5.processed/experimental/tools/VideoThumbnailLoader/thumbnail_loader.js +5 -6
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/index.js +2 -3
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.d.ts +15 -0
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.js +1 -2
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.js +2 -3
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.js +2 -3
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/decodingInfo.js +1 -2
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.js +1 -2
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.js +1 -2
- package/dist/_esm5.processed/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.js +1 -2
- package/dist/_esm5.processed/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.js +4 -5
- package/dist/_esm5.processed/public_types.d.ts +1 -0
- package/dist/_esm5.processed/transports/dash/add_segment_integrity_checks_to_loader.js +1 -2
- package/dist/_esm5.processed/transports/dash/image_pipelines.d.ts +4 -3
- package/dist/_esm5.processed/transports/dash/image_pipelines.js +57 -11
- package/dist/_esm5.processed/transports/dash/init_segment_loader.js +1 -2
- package/dist/_esm5.processed/transports/dash/manifest_parser.js +2 -3
- package/dist/_esm5.processed/transports/dash/segment_loader.d.ts +1 -1
- package/dist/_esm5.processed/transports/dash/segment_loader.js +3 -4
- package/dist/_esm5.processed/transports/dash/text_loader.js +1 -2
- package/dist/_esm5.processed/transports/local/segment_loader.js +2 -3
- package/dist/_esm5.processed/transports/metaplaylist/pipelines.js +2 -3
- package/dist/_esm5.processed/transports/smooth/pipelines.js +3 -4
- package/dist/_esm5.processed/transports/smooth/segment_loader.js +3 -4
- package/dist/_esm5.processed/transports/utils/call_custom_manifest_loader.js +1 -2
- package/dist/_esm5.processed/utils/cancellable_sleep.js +1 -2
- package/dist/_esm5.processed/utils/cast_to_observable.js +1 -3
- package/dist/_esm5.processed/utils/request/xhr.js +1 -2
- package/dist/rx-player.js +851 -937
- package/dist/rx-player.min.js +1 -1
- package/package.json +1 -2
- package/scripts/update-version +2 -2
- package/sonar-project.properties +1 -1
- package/src/compat/__tests__/play.test.ts +2 -4
- package/src/compat/eme/close_session.ts +1 -2
- package/src/compat/eme/custom_key_system_access.ts +1 -2
- package/src/compat/eme/custom_media_keys/ie11_media_keys.ts +6 -7
- package/src/compat/eme/custom_media_keys/index.ts +3 -4
- package/src/compat/eme/custom_media_keys/old_webkit_media_keys.ts +21 -18
- package/src/compat/eme/custom_media_keys/webkit_media_keys.ts +28 -16
- package/src/compat/eme/generate_key_request.ts +4 -6
- package/src/compat/eme/load_session.ts +1 -2
- package/src/core/api/__tests__/option_utils.test.ts +12 -0
- package/src/core/api/option_utils.ts +5 -3
- package/src/core/api/public_api.ts +3 -4
- package/src/core/decrypt/attach_media_keys.ts +1 -2
- package/src/core/decrypt/clear_on_stop.ts +1 -2
- package/src/core/decrypt/content_decryptor.ts +16 -6
- package/src/core/decrypt/create_or_load_session.ts +4 -1
- package/src/core/decrypt/create_session.ts +25 -12
- package/src/core/decrypt/find_key_system.ts +1 -2
- package/src/core/decrypt/utils/clean_old_loaded_sessions.ts +1 -2
- package/src/core/decrypt/utils/loaded_sessions_store.ts +256 -105
- package/src/core/fetchers/manifest/manifest_fetcher.ts +1 -3
- package/src/core/fetchers/utils/try_urls_with_backoff.ts +2 -3
- package/src/core/init/initialize_media_source.ts +2 -1
- package/src/core/stream/index.ts +1 -0
- package/src/core/stream/period/get_adaptation_switch_strategy.ts +24 -14
- package/src/core/stream/period/index.ts +1 -0
- package/src/core/stream/period/period_stream.ts +5 -14
- package/src/core/stream/representation/append_segment_to_buffer.ts +17 -13
- package/src/default_config.ts +0 -30
- package/src/experimental/tools/VideoThumbnailLoader/thumbnail_loader.ts +5 -6
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/HDCPPolicy.test.ts +5 -6
- package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/decodingInfos.test.ts +2 -4
- package/src/experimental/tools/mediaCapabilitiesProber/api/index.ts +2 -3
- package/src/experimental/tools/mediaCapabilitiesProber/api/probeMediaConfiguration.ts +1 -2
- package/src/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.ts +2 -3
- package/src/experimental/tools/mediaCapabilitiesProber/probers/HDCPPolicy.ts +2 -3
- package/src/experimental/tools/mediaCapabilitiesProber/probers/decodingInfo.ts +1 -2
- package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.ts +1 -2
- package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaContentTypeWithFeatures/index.ts +1 -2
- package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.ts +1 -2
- package/src/parsers/manifest/dash/wasm-parser/ts/dash-wasm-parser.ts +4 -5
- package/src/public_types.ts +1 -0
- package/src/transports/dash/add_segment_integrity_checks_to_loader.ts +1 -2
- package/src/transports/dash/image_pipelines.ts +12 -14
- package/src/transports/dash/init_segment_loader.ts +1 -2
- package/src/transports/dash/manifest_parser.ts +2 -3
- package/src/transports/dash/segment_loader.ts +4 -5
- package/src/transports/dash/text_loader.ts +2 -3
- package/src/transports/local/segment_loader.ts +2 -3
- package/src/transports/metaplaylist/pipelines.ts +2 -3
- package/src/transports/smooth/pipelines.ts +4 -5
- package/src/transports/smooth/segment_loader.ts +5 -6
- package/src/transports/utils/call_custom_manifest_loader.ts +1 -2
- package/src/utils/cancellable_sleep.ts +1 -2
- package/src/utils/cast_to_observable.ts +0 -2
- package/src/utils/request/xhr.ts +1 -2
- package/tsconfig.json +0 -1
- package/tsconfig.modules.json +0 -1
- package/dist/_esm5.processed/utils/promise.d.ts +0 -17
- package/dist/_esm5.processed/utils/promise.js +0 -18
- package/src/typings/pinkie.d.ts +0 -19
- package/src/utils/__tests__/promise.test.ts +0 -23
- package/src/utils/promise.ts +0 -20
package/dist/rx-player.js
CHANGED
|
@@ -195,9 +195,6 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
195
195
|
"Y": function() { return /* binding */ setMediaKeys; }
|
|
196
196
|
});
|
|
197
197
|
|
|
198
|
-
// EXTERNAL MODULE: ./node_modules/pinkie/index.js
|
|
199
|
-
var pinkie = __webpack_require__(8555);
|
|
200
|
-
var pinkie_default = /*#__PURE__*/__webpack_require__.n(pinkie);
|
|
201
198
|
// EXTERNAL MODULE: ./src/errors/media_error.ts
|
|
202
199
|
var media_error = __webpack_require__(3714);
|
|
203
200
|
// EXTERNAL MODULE: ./src/utils/assert.ts
|
|
@@ -210,34 +207,15 @@ var is_node = __webpack_require__(2203);
|
|
|
210
207
|
var should_favour_custom_safari_EME = __webpack_require__(5059);
|
|
211
208
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js
|
|
212
209
|
var createClass = __webpack_require__(3144);
|
|
213
|
-
// EXTERNAL MODULE: ./src/utils/promise.ts
|
|
214
|
-
var promise = __webpack_require__(9589);
|
|
215
210
|
;// CONCATENATED MODULE: ./src/compat/eme/custom_key_system_access.ts
|
|
216
211
|
|
|
217
212
|
|
|
218
|
-
/**
|
|
219
|
-
* Copyright 2015 CANAL+ Group
|
|
220
|
-
*
|
|
221
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
222
|
-
* you may not use this file except in compliance with the License.
|
|
223
|
-
* You may obtain a copy of the License at
|
|
224
|
-
*
|
|
225
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
226
|
-
*
|
|
227
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
228
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
229
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
230
|
-
* See the License for the specific language governing permissions and
|
|
231
|
-
* limitations under the License.
|
|
232
|
-
*/
|
|
233
|
-
|
|
234
213
|
/**
|
|
235
214
|
* Simple implementation of the MediaKeySystemAccess EME API.
|
|
236
215
|
*
|
|
237
216
|
* All needed arguments are given to the constructor
|
|
238
217
|
* @class CustomMediaKeySystemAccess
|
|
239
218
|
*/
|
|
240
|
-
|
|
241
219
|
var CustomMediaKeySystemAccess = /*#__PURE__*/function () {
|
|
242
220
|
/**
|
|
243
221
|
* @param {string} _keyType - type of key system (e.g. "widevine" or
|
|
@@ -266,7 +244,7 @@ var CustomMediaKeySystemAccess = /*#__PURE__*/function () {
|
|
|
266
244
|
_proto.createMediaKeys = function createMediaKeys() {
|
|
267
245
|
var _this = this;
|
|
268
246
|
|
|
269
|
-
return new
|
|
247
|
+
return new Promise(function (res) {
|
|
270
248
|
return res(_this._mediaKeys);
|
|
271
249
|
});
|
|
272
250
|
}
|
|
@@ -359,7 +337,6 @@ if (!is_node/* default */.Z) {
|
|
|
359
337
|
|
|
360
338
|
|
|
361
339
|
|
|
362
|
-
|
|
363
340
|
var IE11MediaKeySession = /*#__PURE__*/function (_EventEmitter) {
|
|
364
341
|
(0,inheritsLoose/* default */.Z)(IE11MediaKeySession, _EventEmitter);
|
|
365
342
|
|
|
@@ -371,12 +348,12 @@ var IE11MediaKeySession = /*#__PURE__*/function (_EventEmitter) {
|
|
|
371
348
|
_this.keyStatuses = new Map();
|
|
372
349
|
_this._mk = mk;
|
|
373
350
|
_this._closeSession$ = new Subject/* Subject */.x();
|
|
374
|
-
_this.closed = new
|
|
351
|
+
_this.closed = new Promise(function (resolve) {
|
|
375
352
|
_this._closeSession$.subscribe(resolve);
|
|
376
353
|
});
|
|
377
354
|
|
|
378
355
|
_this.update = function (license) {
|
|
379
|
-
return new
|
|
356
|
+
return new Promise(function (resolve, reject) {
|
|
380
357
|
if (_this._ss === undefined) {
|
|
381
358
|
return reject("MediaKeySession not set.");
|
|
382
359
|
}
|
|
@@ -397,7 +374,7 @@ var IE11MediaKeySession = /*#__PURE__*/function (_EventEmitter) {
|
|
|
397
374
|
_proto.generateRequest = function generateRequest(_initDataType, initData) {
|
|
398
375
|
var _this2 = this;
|
|
399
376
|
|
|
400
|
-
return new
|
|
377
|
+
return new Promise(function (resolve) {
|
|
401
378
|
var initDataU8 = initData instanceof Uint8Array ? initData : initData instanceof ArrayBuffer ? new Uint8Array(initData) : new Uint8Array(initData.buffer);
|
|
402
379
|
_this2._ss = _this2._mk.createSession("video/mp4", initDataU8);
|
|
403
380
|
(0,merge/* merge */.T)(event_listeners/* onKeyMessage$ */.GJ(_this2._ss), event_listeners/* onKeyAdded$ */.GV(_this2._ss), event_listeners/* onKeyError$ */.Xe(_this2._ss)).pipe((0,takeUntil/* takeUntil */.R)(_this2._closeSession$)).subscribe(function (evt) {
|
|
@@ -410,7 +387,7 @@ var IE11MediaKeySession = /*#__PURE__*/function (_EventEmitter) {
|
|
|
410
387
|
_proto.close = function close() {
|
|
411
388
|
var _this3 = this;
|
|
412
389
|
|
|
413
|
-
return new
|
|
390
|
+
return new Promise(function (resolve) {
|
|
414
391
|
if (_this3._ss != null) {
|
|
415
392
|
_this3._ss.close();
|
|
416
393
|
|
|
@@ -426,11 +403,11 @@ var IE11MediaKeySession = /*#__PURE__*/function (_EventEmitter) {
|
|
|
426
403
|
};
|
|
427
404
|
|
|
428
405
|
_proto.load = function load() {
|
|
429
|
-
return
|
|
406
|
+
return Promise.resolve(false);
|
|
430
407
|
};
|
|
431
408
|
|
|
432
409
|
_proto.remove = function remove() {
|
|
433
|
-
return
|
|
410
|
+
return Promise.resolve();
|
|
434
411
|
};
|
|
435
412
|
|
|
436
413
|
(0,createClass/* default */.Z)(IE11MediaKeySession, [{
|
|
@@ -618,7 +595,6 @@ var string_parsing = __webpack_require__(3635);
|
|
|
618
595
|
|
|
619
596
|
|
|
620
597
|
|
|
621
|
-
|
|
622
598
|
/**
|
|
623
599
|
* Returns true if the given media element has old webkit methods
|
|
624
600
|
* corresponding to the IOldWebkitHTMLMediaElement interface.
|
|
@@ -648,18 +624,25 @@ var OldWebkitMediaKeySession = /*#__PURE__*/function (_EventEmitter) {
|
|
|
648
624
|
_this.sessionId = "";
|
|
649
625
|
_this._closeSession = noop/* default */.Z; // Just here to make TypeScript happy
|
|
650
626
|
|
|
651
|
-
_this.closed = new promise/* default */.Z(function (resolve) {
|
|
652
|
-
_this._closeSession = resolve;
|
|
653
|
-
});
|
|
654
627
|
_this.keyStatuses = new Map();
|
|
655
628
|
_this.expiration = NaN;
|
|
656
629
|
|
|
657
|
-
|
|
630
|
+
var onSessionRelatedEvent = function onSessionRelatedEvent(evt) {
|
|
658
631
|
_this.trigger(evt.type, evt);
|
|
659
632
|
};
|
|
660
633
|
|
|
634
|
+
_this.closed = new Promise(function (resolve) {
|
|
635
|
+
_this._closeSession = function () {
|
|
636
|
+
["keymessage", "message", "keyadded", "ready", "keyerror", "error"].forEach(function (evt) {
|
|
637
|
+
mediaElement.removeEventListener(evt, onSessionRelatedEvent);
|
|
638
|
+
mediaElement.removeEventListener("webkit" + evt, onSessionRelatedEvent);
|
|
639
|
+
});
|
|
640
|
+
resolve();
|
|
641
|
+
};
|
|
642
|
+
});
|
|
661
643
|
["keymessage", "message", "keyadded", "ready", "keyerror", "error"].forEach(function (evt) {
|
|
662
|
-
|
|
644
|
+
mediaElement.addEventListener(evt, onSessionRelatedEvent);
|
|
645
|
+
mediaElement.addEventListener("webkit" + evt, onSessionRelatedEvent);
|
|
663
646
|
});
|
|
664
647
|
return _this;
|
|
665
648
|
}
|
|
@@ -669,7 +652,7 @@ var OldWebkitMediaKeySession = /*#__PURE__*/function (_EventEmitter) {
|
|
|
669
652
|
_proto.update = function update(license) {
|
|
670
653
|
var _this2 = this;
|
|
671
654
|
|
|
672
|
-
return new
|
|
655
|
+
return new Promise(function (resolve, reject) {
|
|
673
656
|
try {
|
|
674
657
|
if (_this2._key.indexOf("clearkey") >= 0) {
|
|
675
658
|
var licenseTypedArray = license instanceof ArrayBuffer ? new Uint8Array(license) : license;
|
|
@@ -705,7 +688,7 @@ var OldWebkitMediaKeySession = /*#__PURE__*/function (_EventEmitter) {
|
|
|
705
688
|
_proto.generateRequest = function generateRequest(_initDataType, initData) {
|
|
706
689
|
var _this3 = this;
|
|
707
690
|
|
|
708
|
-
return new
|
|
691
|
+
return new Promise(function (resolve) {
|
|
709
692
|
_this3._vid.webkitGenerateKeyRequest(_this3._key, initData);
|
|
710
693
|
|
|
711
694
|
resolve();
|
|
@@ -715,9 +698,7 @@ var OldWebkitMediaKeySession = /*#__PURE__*/function (_EventEmitter) {
|
|
|
715
698
|
_proto.close = function close() {
|
|
716
699
|
var _this4 = this;
|
|
717
700
|
|
|
718
|
-
return new
|
|
719
|
-
_this4._unbindSession();
|
|
720
|
-
|
|
701
|
+
return new Promise(function (resolve) {
|
|
721
702
|
_this4._closeSession();
|
|
722
703
|
|
|
723
704
|
resolve();
|
|
@@ -732,19 +713,11 @@ var OldWebkitMediaKeySession = /*#__PURE__*/function (_EventEmitter) {
|
|
|
732
713
|
|
|
733
714
|
_proto.load = function load() {
|
|
734
715
|
// Not implemented. Always return false as in "no session with that id".
|
|
735
|
-
return
|
|
716
|
+
return Promise.resolve(false);
|
|
736
717
|
};
|
|
737
718
|
|
|
738
719
|
_proto.remove = function remove() {
|
|
739
|
-
return
|
|
740
|
-
};
|
|
741
|
-
|
|
742
|
-
_proto._unbindSession = function _unbindSession() {
|
|
743
|
-
var _this5 = this;
|
|
744
|
-
|
|
745
|
-
["keymessage", "message", "keyadded", "ready", "keyerror", "error"].forEach(function (evt) {
|
|
746
|
-
return _this5._vid.removeEventListener(evt, _this5._onSessionRelatedEvent);
|
|
747
|
-
});
|
|
720
|
+
return Promise.resolve();
|
|
748
721
|
};
|
|
749
722
|
|
|
750
723
|
return OldWebkitMediaKeySession;
|
|
@@ -906,7 +879,6 @@ var webkit_media_keys_constructor = __webpack_require__(158);
|
|
|
906
879
|
|
|
907
880
|
|
|
908
881
|
|
|
909
|
-
|
|
910
882
|
/**
|
|
911
883
|
* Check if keyType is for fairplay DRM
|
|
912
884
|
* @param {string} keyType
|
|
@@ -961,16 +933,11 @@ var WebkitMediaKeySession = /*#__PURE__*/function (_EventEmitter) {
|
|
|
961
933
|
_this._unbindSession = noop/* default */.Z;
|
|
962
934
|
_this._closeSession = noop/* default */.Z; // Just here to make TypeScript happy
|
|
963
935
|
|
|
964
|
-
_this.closed = new
|
|
936
|
+
_this.closed = new Promise(function (resolve) {
|
|
965
937
|
_this._closeSession = resolve;
|
|
966
938
|
});
|
|
967
939
|
_this.keyStatuses = new Map();
|
|
968
940
|
_this.expiration = NaN;
|
|
969
|
-
|
|
970
|
-
_this._onEvent = function (evt) {
|
|
971
|
-
_this.trigger(evt.type, evt);
|
|
972
|
-
};
|
|
973
|
-
|
|
974
941
|
return _this;
|
|
975
942
|
}
|
|
976
943
|
|
|
@@ -979,16 +946,27 @@ var WebkitMediaKeySession = /*#__PURE__*/function (_EventEmitter) {
|
|
|
979
946
|
_proto.update = function update(license) {
|
|
980
947
|
var _this2 = this;
|
|
981
948
|
|
|
982
|
-
return new
|
|
949
|
+
return new Promise(function (resolve, reject) {
|
|
983
950
|
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
|
984
951
|
if (_this2._nativeSession === undefined || _this2._nativeSession.update === undefined || typeof _this2._nativeSession.update !== "function") {
|
|
985
952
|
return reject("Unavailable WebKit key session.");
|
|
986
953
|
}
|
|
987
954
|
|
|
988
955
|
try {
|
|
956
|
+
var uInt8Arraylicense;
|
|
957
|
+
|
|
958
|
+
if (license instanceof ArrayBuffer) {
|
|
959
|
+
uInt8Arraylicense = new Uint8Array(license);
|
|
960
|
+
} else if (license instanceof Uint8Array) {
|
|
961
|
+
uInt8Arraylicense = license;
|
|
962
|
+
} else {
|
|
963
|
+
uInt8Arraylicense = new Uint8Array(license.buffer);
|
|
964
|
+
}
|
|
989
965
|
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
|
990
966
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-call
|
|
991
|
-
|
|
967
|
+
|
|
968
|
+
|
|
969
|
+
resolve(_this2._nativeSession.update(uInt8Arraylicense));
|
|
992
970
|
/* eslint-enable @typescript-eslint/no-unsafe-member-access */
|
|
993
971
|
} catch (err) {
|
|
994
972
|
reject(err);
|
|
@@ -1001,7 +979,7 @@ var WebkitMediaKeySession = /*#__PURE__*/function (_EventEmitter) {
|
|
|
1001
979
|
_proto.generateRequest = function generateRequest(_initDataType, initData) {
|
|
1002
980
|
var _this3 = this;
|
|
1003
981
|
|
|
1004
|
-
return new
|
|
982
|
+
return new Promise(function (resolve) {
|
|
1005
983
|
var _a;
|
|
1006
984
|
|
|
1007
985
|
var elt = _this3._videoElement;
|
|
@@ -1039,7 +1017,7 @@ var WebkitMediaKeySession = /*#__PURE__*/function (_EventEmitter) {
|
|
|
1039
1017
|
_proto.close = function close() {
|
|
1040
1018
|
var _this4 = this;
|
|
1041
1019
|
|
|
1042
|
-
return new
|
|
1020
|
+
return new Promise(function (resolve, reject) {
|
|
1043
1021
|
_this4._unbindSession();
|
|
1044
1022
|
|
|
1045
1023
|
_this4._closeSession();
|
|
@@ -1060,11 +1038,11 @@ var WebkitMediaKeySession = /*#__PURE__*/function (_EventEmitter) {
|
|
|
1060
1038
|
};
|
|
1061
1039
|
|
|
1062
1040
|
_proto.load = function load() {
|
|
1063
|
-
return
|
|
1041
|
+
return Promise.resolve(false);
|
|
1064
1042
|
};
|
|
1065
1043
|
|
|
1066
1044
|
_proto.remove = function remove() {
|
|
1067
|
-
return
|
|
1045
|
+
return Promise.resolve();
|
|
1068
1046
|
};
|
|
1069
1047
|
|
|
1070
1048
|
_proto._listenEvent = function _listenEvent(session) {
|
|
@@ -1072,6 +1050,10 @@ var WebkitMediaKeySession = /*#__PURE__*/function (_EventEmitter) {
|
|
|
1072
1050
|
|
|
1073
1051
|
this._unbindSession(); // If previous session was linked
|
|
1074
1052
|
|
|
1053
|
+
|
|
1054
|
+
var onEvent = function onEvent(evt) {
|
|
1055
|
+
_this5.trigger(evt.type, evt);
|
|
1056
|
+
};
|
|
1075
1057
|
/* eslint-disable @typescript-eslint/no-unsafe-call */
|
|
1076
1058
|
|
|
1077
1059
|
/* eslint-disable @typescript-eslint/no-unsafe-member-access */
|
|
@@ -1080,12 +1062,14 @@ var WebkitMediaKeySession = /*#__PURE__*/function (_EventEmitter) {
|
|
|
1080
1062
|
|
|
1081
1063
|
|
|
1082
1064
|
["keymessage", "message", "keyadded", "ready", "keyerror", "error"].forEach(function (evt) {
|
|
1083
|
-
|
|
1065
|
+
session.addEventListener(evt, onEvent);
|
|
1066
|
+
session.addEventListener("webkit" + evt, onEvent);
|
|
1084
1067
|
});
|
|
1085
1068
|
|
|
1086
1069
|
this._unbindSession = function () {
|
|
1087
1070
|
["keymessage", "message", "keyadded", "ready", "keyerror", "error"].forEach(function (evt) {
|
|
1088
|
-
|
|
1071
|
+
session.removeEventListener(evt, onEvent);
|
|
1072
|
+
session.removeEventListener("webkit" + evt, onEvent);
|
|
1089
1073
|
});
|
|
1090
1074
|
};
|
|
1091
1075
|
/* eslint-disable @typescript-eslint/no-unsafe-return */
|
|
@@ -1149,7 +1133,7 @@ var WebKitCustomMediaKeys = /*#__PURE__*/function () {
|
|
|
1149
1133
|
|
|
1150
1134
|
_proto2.setServerCertificate = function setServerCertificate(serverCertificate) {
|
|
1151
1135
|
this._serverCertificate = serverCertificate;
|
|
1152
|
-
return
|
|
1136
|
+
return Promise.resolve();
|
|
1153
1137
|
};
|
|
1154
1138
|
|
|
1155
1139
|
return WebKitCustomMediaKeys;
|
|
@@ -1211,7 +1195,6 @@ function getWebKitMediaKeysCallbacks() {
|
|
|
1211
1195
|
|
|
1212
1196
|
|
|
1213
1197
|
|
|
1214
|
-
|
|
1215
1198
|
var requestMediaKeySystemAccess = null;
|
|
1216
1199
|
/**
|
|
1217
1200
|
* Set the given MediaKeys on the given HTMLMediaElement.
|
|
@@ -1317,7 +1300,7 @@ if (is_node/* default */.Z || navigator.requestMediaKeySystemAccess != null && !
|
|
|
1317
1300
|
|
|
1318
1301
|
requestMediaKeySystemAccess = function requestMediaKeySystemAccess(keyType, keySystemConfigurations) {
|
|
1319
1302
|
if (!isTypeSupported(keyType)) {
|
|
1320
|
-
return
|
|
1303
|
+
return Promise.reject(new Error("Unsupported key type"));
|
|
1321
1304
|
}
|
|
1322
1305
|
|
|
1323
1306
|
for (var i = 0; i < keySystemConfigurations.length; i++) {
|
|
@@ -1350,11 +1333,11 @@ if (is_node/* default */.Z || navigator.requestMediaKeySystemAccess != null && !
|
|
|
1350
1333
|
|
|
1351
1334
|
|
|
1352
1335
|
var customMediaKeys = createCustomMediaKeys(keyType);
|
|
1353
|
-
return
|
|
1336
|
+
return Promise.resolve(new CustomMediaKeySystemAccess(keyType, customMediaKeys, keySystemConfigurationResponse));
|
|
1354
1337
|
}
|
|
1355
1338
|
}
|
|
1356
1339
|
|
|
1357
|
-
return
|
|
1340
|
+
return Promise.reject(new Error("Unsupported configuration"));
|
|
1358
1341
|
};
|
|
1359
1342
|
}
|
|
1360
1343
|
|
|
@@ -3242,36 +3225,6 @@ var DEFAULT_CONFIG = {
|
|
|
3242
3225
|
*/
|
|
3243
3226
|
EME_MAX_STORED_PERSISTENT_SESSION_INFORMATION: 1000,
|
|
3244
3227
|
|
|
3245
|
-
/**
|
|
3246
|
-
* Attempts to closing a MediaKeySession can fail, most likely because the
|
|
3247
|
-
* MediaKeySession was not initialized yet.
|
|
3248
|
-
* When we consider that we're in one of these case, we will retry to close it.
|
|
3249
|
-
*
|
|
3250
|
-
* To avoid going into an infinite loop of retry, this number indicates a
|
|
3251
|
-
* maximum number of attemps we're going to make (`0` meaning no retry at all,
|
|
3252
|
-
* `1` only one retry and so on).
|
|
3253
|
-
*/
|
|
3254
|
-
EME_SESSION_CLOSING_MAX_RETRY: 5,
|
|
3255
|
-
|
|
3256
|
-
/**
|
|
3257
|
-
* When closing a MediaKeySession failed due to the reasons explained for the
|
|
3258
|
-
* `EME_SESSION_CLOSING_MAX_RETRY` config property, we may (among other
|
|
3259
|
-
* triggers) choose to wait a delay raising exponentially at each retry before
|
|
3260
|
-
* that new attempt.
|
|
3261
|
-
* This value indicates the initial value for this delay, in milliseconds.
|
|
3262
|
-
*/
|
|
3263
|
-
EME_SESSION_CLOSING_INITIAL_DELAY: 100,
|
|
3264
|
-
|
|
3265
|
-
/**
|
|
3266
|
-
* When closing a MediaKeySession failed due to the reasons explained for the
|
|
3267
|
-
* `EME_SESSION_CLOSING_MAX_RETRY` config property, we may (among other
|
|
3268
|
-
* triggers) choose to wait a delay raising exponentially at each retry before
|
|
3269
|
-
* that new attempt.
|
|
3270
|
-
* This value indicates the maximum possible value for this delay, in
|
|
3271
|
-
* milliseconds.
|
|
3272
|
-
*/
|
|
3273
|
-
EME_SESSION_CLOSING_MAX_DELAY: 1000,
|
|
3274
|
-
|
|
3275
3228
|
/**
|
|
3276
3229
|
* After loading a persistent MediaKeySession, the RxPlayer needs to ensure
|
|
3277
3230
|
* that its keys still allow to decrypt a content.
|
|
@@ -4579,9 +4532,6 @@ var inheritsLoose = __webpack_require__(4578);
|
|
|
4579
4532
|
// EXTERNAL MODULE: ./node_modules/@babel/runtime/regenerator/index.js
|
|
4580
4533
|
var regenerator = __webpack_require__(7757);
|
|
4581
4534
|
var regenerator_default = /*#__PURE__*/__webpack_require__.n(regenerator);
|
|
4582
|
-
// EXTERNAL MODULE: ./node_modules/pinkie/index.js
|
|
4583
|
-
var pinkie = __webpack_require__(8555);
|
|
4584
|
-
var pinkie_default = /*#__PURE__*/__webpack_require__.n(pinkie);
|
|
4585
4535
|
// EXTERNAL MODULE: ./src/log.ts + 1 modules
|
|
4586
4536
|
var log = __webpack_require__(3887);
|
|
4587
4537
|
// EXTERNAL MODULE: ./src/parsers/containers/isobmff/take_pssh_out.ts + 1 modules
|
|
@@ -4751,146 +4701,6 @@ function getInitData(encryptedEvent) {
|
|
|
4751
4701
|
values: values
|
|
4752
4702
|
};
|
|
4753
4703
|
}
|
|
4754
|
-
// EXTERNAL MODULE: ./src/parsers/containers/isobmff/get_box.ts
|
|
4755
|
-
var get_box = __webpack_require__(2297);
|
|
4756
|
-
;// CONCATENATED MODULE: ./src/compat/eme/generate_key_request.ts
|
|
4757
|
-
/**
|
|
4758
|
-
* Copyright 2015 CANAL+ Group
|
|
4759
|
-
*
|
|
4760
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
4761
|
-
* you may not use this file except in compliance with the License.
|
|
4762
|
-
* You may obtain a copy of the License at
|
|
4763
|
-
*
|
|
4764
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
4765
|
-
*
|
|
4766
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
4767
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
4768
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
4769
|
-
* See the License for the specific language governing permissions and
|
|
4770
|
-
* limitations under the License.
|
|
4771
|
-
*/
|
|
4772
|
-
|
|
4773
|
-
|
|
4774
|
-
|
|
4775
|
-
|
|
4776
|
-
/**
|
|
4777
|
-
* Modify "initialization data" sent to a `generateKeyRequest` EME call to
|
|
4778
|
-
* improve the player's browser compatibility:
|
|
4779
|
-
*
|
|
4780
|
-
* 1. some browsers/CDM have problems when the CENC PSSH box is the first
|
|
4781
|
-
* encountered PSSH box in the initialization data (for the moment just
|
|
4782
|
-
* Edge was noted with this behavior).
|
|
4783
|
-
* We found however that it works on every browser when the CENC pssh
|
|
4784
|
-
* box(es) is/are the last box(es) encountered.
|
|
4785
|
-
*
|
|
4786
|
-
* To that end, we move CENC pssh boxes at the end of the initialization
|
|
4787
|
-
* data in this function.
|
|
4788
|
-
*
|
|
4789
|
-
* 2. Some poorly encoded/packaged contents communicate both a CENC with a
|
|
4790
|
-
* pssh version of 0 and one with a version of 1. We found out that this is
|
|
4791
|
-
* not always well handled on some devices/browsers (on Edge and some other
|
|
4792
|
-
* embedded devices that shall remain nameless for now!).
|
|
4793
|
-
*
|
|
4794
|
-
* Here this function will filter out CENC pssh with a version different to
|
|
4795
|
-
* 1 when one(s) with a version of 1 is/are already present.
|
|
4796
|
-
*
|
|
4797
|
-
* If the initData is unrecognized or if a CENC PSSH is not found, this function
|
|
4798
|
-
* throws.
|
|
4799
|
-
* @param {Uint8Array} initData - Initialization data you want to patch
|
|
4800
|
-
* @returns {Uint8Array} - Initialization data, patched
|
|
4801
|
-
*/
|
|
4802
|
-
|
|
4803
|
-
function patchInitData(initData) {
|
|
4804
|
-
log/* default.info */.Z.info("Compat: Trying to move CENC PSSH from init data at the end of it.");
|
|
4805
|
-
var foundCencV1 = false;
|
|
4806
|
-
var concatenatedCencs = new Uint8Array();
|
|
4807
|
-
var resInitData = new Uint8Array();
|
|
4808
|
-
var offset = 0;
|
|
4809
|
-
|
|
4810
|
-
while (offset < initData.length) {
|
|
4811
|
-
if (initData.length < offset + 8 || (0,byte_parsing/* be4toi */.pX)(initData, offset + 4) !== PSSH_TO_INTEGER) {
|
|
4812
|
-
log/* default.warn */.Z.warn("Compat: unrecognized initialization data. Cannot patch it.");
|
|
4813
|
-
throw new Error("Compat: unrecognized initialization data. Cannot patch it.");
|
|
4814
|
-
}
|
|
4815
|
-
|
|
4816
|
-
var len = (0,byte_parsing/* be4toi */.pX)(new Uint8Array(initData), offset);
|
|
4817
|
-
|
|
4818
|
-
if (offset + len > initData.length) {
|
|
4819
|
-
log/* default.warn */.Z.warn("Compat: unrecognized initialization data. Cannot patch it.");
|
|
4820
|
-
throw new Error("Compat: unrecognized initialization data. Cannot patch it.");
|
|
4821
|
-
}
|
|
4822
|
-
|
|
4823
|
-
var currentPSSH = initData.subarray(offset, offset + len); // yep
|
|
4824
|
-
|
|
4825
|
-
if (initData[offset + 12] === 0x10 && initData[offset + 13] === 0x77 && initData[offset + 14] === 0xEF && initData[offset + 15] === 0xEC && initData[offset + 16] === 0xC0 && initData[offset + 17] === 0xB2 && initData[offset + 18] === 0x4D && initData[offset + 19] === 0x02 && initData[offset + 20] === 0xAC && initData[offset + 21] === 0xE3 && initData[offset + 22] === 0x3C && initData[offset + 23] === 0x1E && initData[offset + 24] === 0x52 && initData[offset + 25] === 0xE2 && initData[offset + 26] === 0xFB && initData[offset + 27] === 0x4B) {
|
|
4826
|
-
var cencOffsets = (0,get_box/* getNextBoxOffsets */.Xj)(currentPSSH);
|
|
4827
|
-
var version = cencOffsets === null ? undefined : currentPSSH[cencOffsets[1]];
|
|
4828
|
-
log/* default.info */.Z.info("Compat: CENC PSSH found with version", version);
|
|
4829
|
-
|
|
4830
|
-
if (version === undefined) {
|
|
4831
|
-
log/* default.warn */.Z.warn("Compat: could not read version of CENC PSSH");
|
|
4832
|
-
} else if (foundCencV1 === (version === 1)) {
|
|
4833
|
-
// Either `concatenatedCencs` only contains v1 or does not contain any
|
|
4834
|
-
concatenatedCencs = (0,byte_parsing/* concat */.zo)(concatenatedCencs, currentPSSH);
|
|
4835
|
-
} else if (version === 1) {
|
|
4836
|
-
log/* default.warn */.Z.warn("Compat: cenc version 1 encountered, " + "removing every other cenc pssh box.");
|
|
4837
|
-
concatenatedCencs = currentPSSH;
|
|
4838
|
-
foundCencV1 = true;
|
|
4839
|
-
} else {
|
|
4840
|
-
log/* default.warn */.Z.warn("Compat: filtering out cenc pssh box with wrong version", version);
|
|
4841
|
-
}
|
|
4842
|
-
} else {
|
|
4843
|
-
resInitData = (0,byte_parsing/* concat */.zo)(resInitData, currentPSSH);
|
|
4844
|
-
}
|
|
4845
|
-
|
|
4846
|
-
offset += len;
|
|
4847
|
-
}
|
|
4848
|
-
|
|
4849
|
-
if (offset !== initData.length) {
|
|
4850
|
-
log/* default.warn */.Z.warn("Compat: unrecognized initialization data. Cannot patch it.");
|
|
4851
|
-
throw new Error("Compat: unrecognized initialization data. Cannot patch it.");
|
|
4852
|
-
}
|
|
4853
|
-
|
|
4854
|
-
return (0,byte_parsing/* concat */.zo)(resInitData, concatenatedCencs);
|
|
4855
|
-
}
|
|
4856
|
-
/**
|
|
4857
|
-
* Generate a request from session.
|
|
4858
|
-
* @param {MediaKeySession} session - MediaKeySession on which the request will
|
|
4859
|
-
* be done.
|
|
4860
|
-
* @param {Uint8Array} initData - Initialization data given e.g. by the
|
|
4861
|
-
* "encrypted" event for the corresponding request.
|
|
4862
|
-
* @param {string} initDataType - Initialization data type given e.g. by the
|
|
4863
|
-
* "encrypted" event for the corresponding request.
|
|
4864
|
-
* @param {string} sessionType - Type of session you want to generate. Consult
|
|
4865
|
-
* EME Specification for more information on session types.
|
|
4866
|
-
* @returns {Promise} - Emit when done. Errors if fails.
|
|
4867
|
-
*/
|
|
4868
|
-
|
|
4869
|
-
function generateKeyRequest(session, initializationDataType, initializationData) {
|
|
4870
|
-
log/* default.debug */.Z.debug("Compat: Calling generateRequest on the MediaKeySession");
|
|
4871
|
-
var patchedInit;
|
|
4872
|
-
|
|
4873
|
-
try {
|
|
4874
|
-
patchedInit = patchInitData(initializationData);
|
|
4875
|
-
} catch (_e) {
|
|
4876
|
-
patchedInit = initializationData;
|
|
4877
|
-
}
|
|
4878
|
-
|
|
4879
|
-
var initDataType = initializationDataType !== null && initializationDataType !== void 0 ? initializationDataType : "";
|
|
4880
|
-
return session.generateRequest(initDataType, patchedInit)["catch"](function (error) {
|
|
4881
|
-
if (initDataType !== "" || !(error instanceof TypeError)) {
|
|
4882
|
-
throw error;
|
|
4883
|
-
} // On newer EME versions of the specification, the initialization data
|
|
4884
|
-
// type given to generateRequest cannot be an empty string (it returns
|
|
4885
|
-
// a rejected promise with a TypeError in that case).
|
|
4886
|
-
// Retry with a default "cenc" value for initialization data type if
|
|
4887
|
-
// we're in that condition.
|
|
4888
|
-
|
|
4889
|
-
|
|
4890
|
-
log/* default.warn */.Z.warn("Compat: error while calling `generateRequest` with an empty " + "initialization data type. Retrying with a default \"cenc\" value.", error);
|
|
4891
|
-
return session.generateRequest("cenc", patchedInit);
|
|
4892
|
-
});
|
|
4893
|
-
}
|
|
4894
4704
|
// EXTERNAL MODULE: ./src/compat/event_listeners.ts + 6 modules
|
|
4895
4705
|
var event_listeners = __webpack_require__(4804);
|
|
4896
4706
|
// EXTERNAL MODULE: ./src/config.ts + 2 modules
|
|
@@ -4911,8 +4721,6 @@ var is_null_or_undefined = __webpack_require__(1946);
|
|
|
4911
4721
|
var task_canceller = __webpack_require__(288);
|
|
4912
4722
|
// EXTERNAL MODULE: ./src/compat/eme/custom_media_keys/index.ts + 7 modules
|
|
4913
4723
|
var custom_media_keys = __webpack_require__(6139);
|
|
4914
|
-
// EXTERNAL MODULE: ./src/utils/promise.ts
|
|
4915
|
-
var promise = __webpack_require__(9589);
|
|
4916
4724
|
// EXTERNAL MODULE: ./src/core/decrypt/utils/media_keys_infos_store.ts
|
|
4917
4725
|
var media_keys_infos_store = __webpack_require__(770);
|
|
4918
4726
|
;// CONCATENATED MODULE: ./src/core/decrypt/attach_media_keys.ts
|
|
@@ -4937,7 +4745,6 @@ var media_keys_infos_store = __webpack_require__(770);
|
|
|
4937
4745
|
|
|
4938
4746
|
|
|
4939
4747
|
|
|
4940
|
-
|
|
4941
4748
|
/**
|
|
4942
4749
|
* Dispose of the MediaKeys instance attached to the given media element, if
|
|
4943
4750
|
* one.
|
|
@@ -4970,7 +4777,7 @@ function _attachMediaKeys() {
|
|
|
4970
4777
|
case 0:
|
|
4971
4778
|
keySystemOptions = _ref.keySystemOptions, loadedSessionsStore = _ref.loadedSessionsStore, mediaKeySystemAccess = _ref.mediaKeySystemAccess, mediaKeys = _ref.mediaKeys;
|
|
4972
4779
|
previousState = media_keys_infos_store/* default.getState */.Z.getState(mediaElement);
|
|
4973
|
-
closeAllSessions = previousState !== null && previousState.loadedSessionsStore !== loadedSessionsStore ? previousState.loadedSessionsStore.closeAllSessions() :
|
|
4780
|
+
closeAllSessions = previousState !== null && previousState.loadedSessionsStore !== loadedSessionsStore ? previousState.loadedSessionsStore.closeAllSessions() : Promise.resolve();
|
|
4974
4781
|
_context.next = 5;
|
|
4975
4782
|
return closeAllSessions;
|
|
4976
4783
|
|
|
@@ -5011,93 +4818,6 @@ function _attachMediaKeys() {
|
|
|
5011
4818
|
}));
|
|
5012
4819
|
return _attachMediaKeys.apply(this, arguments);
|
|
5013
4820
|
}
|
|
5014
|
-
;// CONCATENATED MODULE: ./src/compat/eme/load_session.ts
|
|
5015
|
-
|
|
5016
|
-
|
|
5017
|
-
|
|
5018
|
-
/**
|
|
5019
|
-
* Copyright 2015 CANAL+ Group
|
|
5020
|
-
*
|
|
5021
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5022
|
-
* you may not use this file except in compliance with the License.
|
|
5023
|
-
* You may obtain a copy of the License at
|
|
5024
|
-
*
|
|
5025
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
5026
|
-
*
|
|
5027
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
5028
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
5029
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
5030
|
-
* See the License for the specific language governing permissions and
|
|
5031
|
-
* limitations under the License.
|
|
5032
|
-
*/
|
|
5033
|
-
|
|
5034
|
-
|
|
5035
|
-
var EME_WAITING_DELAY_LOADED_SESSION_EMPTY_KEYSTATUSES = 100;
|
|
5036
|
-
/**
|
|
5037
|
-
* Load a persistent session, based on its `sessionId`, on the given
|
|
5038
|
-
* MediaKeySession.
|
|
5039
|
-
*
|
|
5040
|
-
* Returns an Observable which emits:
|
|
5041
|
-
* - true if the persistent MediaKeySession was found and loaded
|
|
5042
|
-
* - false if no persistent MediaKeySession was found with that `sessionId`.
|
|
5043
|
-
* Then completes.
|
|
5044
|
-
*
|
|
5045
|
-
* The Observable throws if anything goes wrong in the process.
|
|
5046
|
-
* @param {MediaKeySession} session
|
|
5047
|
-
* @param {string} sessionId
|
|
5048
|
-
* @returns {Observable}
|
|
5049
|
-
*/
|
|
5050
|
-
|
|
5051
|
-
function loadSession(_x, _x2) {
|
|
5052
|
-
return _loadSession.apply(this, arguments);
|
|
5053
|
-
}
|
|
5054
|
-
|
|
5055
|
-
function _loadSession() {
|
|
5056
|
-
_loadSession = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee(session, sessionId) {
|
|
5057
|
-
var isLoaded;
|
|
5058
|
-
return regenerator_default().wrap(function _callee$(_context) {
|
|
5059
|
-
while (1) {
|
|
5060
|
-
switch (_context.prev = _context.next) {
|
|
5061
|
-
case 0:
|
|
5062
|
-
log/* default.info */.Z.info("Compat/DRM: Load persisted session", sessionId);
|
|
5063
|
-
_context.next = 3;
|
|
5064
|
-
return session.load(sessionId);
|
|
5065
|
-
|
|
5066
|
-
case 3:
|
|
5067
|
-
isLoaded = _context.sent;
|
|
5068
|
-
|
|
5069
|
-
if (!(!isLoaded || session.keyStatuses.size > 0)) {
|
|
5070
|
-
_context.next = 6;
|
|
5071
|
-
break;
|
|
5072
|
-
}
|
|
5073
|
-
|
|
5074
|
-
return _context.abrupt("return", isLoaded);
|
|
5075
|
-
|
|
5076
|
-
case 6:
|
|
5077
|
-
return _context.abrupt("return", new (pinkie_default())(function (resolve) {
|
|
5078
|
-
session.addEventListener("keystatuseschange", resolveWithLoadedStatus);
|
|
5079
|
-
var timeout = setTimeout(resolveWithLoadedStatus, EME_WAITING_DELAY_LOADED_SESSION_EMPTY_KEYSTATUSES);
|
|
5080
|
-
|
|
5081
|
-
function resolveWithLoadedStatus() {
|
|
5082
|
-
cleanUp();
|
|
5083
|
-
resolve(isLoaded);
|
|
5084
|
-
}
|
|
5085
|
-
|
|
5086
|
-
function cleanUp() {
|
|
5087
|
-
clearTimeout(timeout);
|
|
5088
|
-
session.removeEventListener("keystatuseschange", resolveWithLoadedStatus);
|
|
5089
|
-
}
|
|
5090
|
-
}));
|
|
5091
|
-
|
|
5092
|
-
case 7:
|
|
5093
|
-
case "end":
|
|
5094
|
-
return _context.stop();
|
|
5095
|
-
}
|
|
5096
|
-
}
|
|
5097
|
-
}, _callee);
|
|
5098
|
-
}));
|
|
5099
|
-
return _loadSession.apply(this, arguments);
|
|
5100
|
-
}
|
|
5101
4821
|
;// CONCATENATED MODULE: ./src/core/decrypt/utils/is_session_usable.ts
|
|
5102
4822
|
/**
|
|
5103
4823
|
* Copyright 2015 CANAL+ Group
|
|
@@ -5174,8 +4894,6 @@ function isSessionUsable(loadedSession) {
|
|
|
5174
4894
|
*/
|
|
5175
4895
|
|
|
5176
4896
|
|
|
5177
|
-
|
|
5178
|
-
|
|
5179
4897
|
/**
|
|
5180
4898
|
* Create a new Session or load a persistent one on the given MediaKeys,
|
|
5181
4899
|
* according to wanted settings and what is currently stored.
|
|
@@ -5189,10 +4907,11 @@ function isSessionUsable(loadedSession) {
|
|
|
5189
4907
|
* @param {Object} stores
|
|
5190
4908
|
* @param {Object} initData
|
|
5191
4909
|
* @param {string} wantedSessionType
|
|
4910
|
+
* @param {Object} cancelSignal
|
|
5192
4911
|
* @returns {Promise}
|
|
5193
4912
|
*/
|
|
5194
4913
|
|
|
5195
|
-
function createSession(stores, initData, wantedSessionType) {
|
|
4914
|
+
function createSession(stores, initData, wantedSessionType, cancelSignal) {
|
|
5196
4915
|
var loadedSessionsStore = stores.loadedSessionsStore,
|
|
5197
4916
|
persistentSessionsStore = stores.persistentSessionsStore;
|
|
5198
4917
|
|
|
@@ -5203,7 +4922,7 @@ function createSession(stores, initData, wantedSessionType) {
|
|
|
5203
4922
|
return createTemporarySession(loadedSessionsStore, initData);
|
|
5204
4923
|
}
|
|
5205
4924
|
|
|
5206
|
-
return createAndTryToRetrievePersistentSession(loadedSessionsStore, persistentSessionsStore, initData);
|
|
4925
|
+
return createAndTryToRetrievePersistentSession(loadedSessionsStore, persistentSessionsStore, initData, cancelSignal);
|
|
5207
4926
|
}
|
|
5208
4927
|
/**
|
|
5209
4928
|
* Create a new temporary MediaKeySession linked to the given initData and
|
|
@@ -5216,7 +4935,7 @@ function createSession(stores, initData, wantedSessionType) {
|
|
|
5216
4935
|
function createTemporarySession(loadedSessionsStore, initData) {
|
|
5217
4936
|
log/* default.info */.Z.info("DRM: Creating a new temporary session");
|
|
5218
4937
|
var entry = loadedSessionsStore.createSession(initData, "temporary");
|
|
5219
|
-
return
|
|
4938
|
+
return Promise.resolve({
|
|
5220
4939
|
type: "created-session"
|
|
5221
4940
|
/* Created */
|
|
5222
4941
|
,
|
|
@@ -5229,16 +4948,17 @@ function createTemporarySession(loadedSessionsStore, initData) {
|
|
|
5229
4948
|
* @param {Object} loadedSessionsStore
|
|
5230
4949
|
* @param {Object} persistentSessionsStore
|
|
5231
4950
|
* @param {Object} initData
|
|
4951
|
+
* @param {Object} cancelSignal
|
|
5232
4952
|
* @returns {Promise}
|
|
5233
4953
|
*/
|
|
5234
4954
|
|
|
5235
4955
|
|
|
5236
|
-
function createAndTryToRetrievePersistentSession(_x, _x2, _x3) {
|
|
4956
|
+
function createAndTryToRetrievePersistentSession(_x, _x2, _x3, _x4) {
|
|
5237
4957
|
return _createAndTryToRetrievePersistentSession.apply(this, arguments);
|
|
5238
4958
|
}
|
|
5239
4959
|
|
|
5240
4960
|
function _createAndTryToRetrievePersistentSession() {
|
|
5241
|
-
_createAndTryToRetrievePersistentSession = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee2(loadedSessionsStore, persistentSessionsStore, initData) {
|
|
4961
|
+
_createAndTryToRetrievePersistentSession = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee2(loadedSessionsStore, persistentSessionsStore, initData, cancelSignal) {
|
|
5242
4962
|
var entry, storedEntry, hasLoadedSession, recreatePersistentSession, _recreatePersistentSession;
|
|
5243
4963
|
|
|
5244
4964
|
return regenerator_default().wrap(function _callee2$(_context2) {
|
|
@@ -5252,6 +4972,14 @@ function _createAndTryToRetrievePersistentSession() {
|
|
|
5252
4972
|
while (1) {
|
|
5253
4973
|
switch (_context.prev = _context.next) {
|
|
5254
4974
|
case 0:
|
|
4975
|
+
if (!(cancelSignal.cancellationError !== null)) {
|
|
4976
|
+
_context.next = 2;
|
|
4977
|
+
break;
|
|
4978
|
+
}
|
|
4979
|
+
|
|
4980
|
+
throw cancelSignal.cancellationError;
|
|
4981
|
+
|
|
4982
|
+
case 2:
|
|
5255
4983
|
log/* default.info */.Z.info("DRM: Removing previous persistent session.");
|
|
5256
4984
|
persistentEntry = persistentSessionsStore.get(initData);
|
|
5257
4985
|
|
|
@@ -5259,10 +4987,18 @@ function _createAndTryToRetrievePersistentSession() {
|
|
|
5259
4987
|
persistentSessionsStore["delete"](persistentEntry.sessionId);
|
|
5260
4988
|
}
|
|
5261
4989
|
|
|
5262
|
-
_context.next =
|
|
4990
|
+
_context.next = 7;
|
|
5263
4991
|
return loadedSessionsStore.closeSession(entry.mediaKeySession);
|
|
5264
4992
|
|
|
5265
|
-
case
|
|
4993
|
+
case 7:
|
|
4994
|
+
if (!(cancelSignal.cancellationError !== null)) {
|
|
4995
|
+
_context.next = 9;
|
|
4996
|
+
break;
|
|
4997
|
+
}
|
|
4998
|
+
|
|
4999
|
+
throw cancelSignal.cancellationError;
|
|
5000
|
+
|
|
5001
|
+
case 9:
|
|
5266
5002
|
newEntry = loadedSessionsStore.createSession(initData, "persistent-license");
|
|
5267
5003
|
return _context.abrupt("return", {
|
|
5268
5004
|
type: "created-session"
|
|
@@ -5271,7 +5007,7 @@ function _createAndTryToRetrievePersistentSession() {
|
|
|
5271
5007
|
value: newEntry
|
|
5272
5008
|
});
|
|
5273
5009
|
|
|
5274
|
-
case
|
|
5010
|
+
case 11:
|
|
5275
5011
|
case "end":
|
|
5276
5012
|
return _context.stop();
|
|
5277
5013
|
}
|
|
@@ -5285,12 +5021,20 @@ function _createAndTryToRetrievePersistentSession() {
|
|
|
5285
5021
|
return _recreatePersistentSession.apply(this, arguments);
|
|
5286
5022
|
};
|
|
5287
5023
|
|
|
5024
|
+
if (!(cancelSignal.cancellationError !== null)) {
|
|
5025
|
+
_context2.next = 4;
|
|
5026
|
+
break;
|
|
5027
|
+
}
|
|
5028
|
+
|
|
5029
|
+
throw cancelSignal.cancellationError;
|
|
5030
|
+
|
|
5031
|
+
case 4:
|
|
5288
5032
|
log/* default.info */.Z.info("DRM: Creating persistent MediaKeySession");
|
|
5289
5033
|
entry = loadedSessionsStore.createSession(initData, "persistent-license");
|
|
5290
5034
|
storedEntry = persistentSessionsStore.getAndReuse(initData);
|
|
5291
5035
|
|
|
5292
5036
|
if (!(storedEntry === null)) {
|
|
5293
|
-
_context2.next =
|
|
5037
|
+
_context2.next = 9;
|
|
5294
5038
|
break;
|
|
5295
5039
|
}
|
|
5296
5040
|
|
|
@@ -5301,16 +5045,16 @@ function _createAndTryToRetrievePersistentSession() {
|
|
|
5301
5045
|
value: entry
|
|
5302
5046
|
});
|
|
5303
5047
|
|
|
5304
|
-
case
|
|
5305
|
-
_context2.prev =
|
|
5306
|
-
_context2.next =
|
|
5307
|
-
return
|
|
5048
|
+
case 9:
|
|
5049
|
+
_context2.prev = 9;
|
|
5050
|
+
_context2.next = 12;
|
|
5051
|
+
return loadedSessionsStore.loadPersistentSession(entry.mediaKeySession, storedEntry.sessionId);
|
|
5308
5052
|
|
|
5309
|
-
case
|
|
5053
|
+
case 12:
|
|
5310
5054
|
hasLoadedSession = _context2.sent;
|
|
5311
5055
|
|
|
5312
5056
|
if (hasLoadedSession) {
|
|
5313
|
-
_context2.next =
|
|
5057
|
+
_context2.next = 17;
|
|
5314
5058
|
break;
|
|
5315
5059
|
}
|
|
5316
5060
|
|
|
@@ -5323,9 +5067,9 @@ function _createAndTryToRetrievePersistentSession() {
|
|
|
5323
5067
|
value: entry
|
|
5324
5068
|
});
|
|
5325
5069
|
|
|
5326
|
-
case
|
|
5070
|
+
case 17:
|
|
5327
5071
|
if (!(hasLoadedSession && isSessionUsable(entry.mediaKeySession))) {
|
|
5328
|
-
_context2.next =
|
|
5072
|
+
_context2.next = 21;
|
|
5329
5073
|
break;
|
|
5330
5074
|
}
|
|
5331
5075
|
|
|
@@ -5338,23 +5082,23 @@ function _createAndTryToRetrievePersistentSession() {
|
|
|
5338
5082
|
value: entry
|
|
5339
5083
|
});
|
|
5340
5084
|
|
|
5341
|
-
case
|
|
5085
|
+
case 21:
|
|
5342
5086
|
// Unusable persistent session: recreate a new session from scratch.
|
|
5343
5087
|
log/* default.warn */.Z.warn("DRM: Previous persistent session not usable anymore.");
|
|
5344
5088
|
return _context2.abrupt("return", recreatePersistentSession());
|
|
5345
5089
|
|
|
5346
|
-
case
|
|
5347
|
-
_context2.prev =
|
|
5348
|
-
_context2.t0 = _context2["catch"](
|
|
5090
|
+
case 25:
|
|
5091
|
+
_context2.prev = 25;
|
|
5092
|
+
_context2.t0 = _context2["catch"](9);
|
|
5349
5093
|
log/* default.warn */.Z.warn("DRM: Unable to load persistent session: " + (_context2.t0 instanceof Error ? _context2.t0.toString() : "Unknown Error"));
|
|
5350
5094
|
return _context2.abrupt("return", recreatePersistentSession());
|
|
5351
5095
|
|
|
5352
|
-
case
|
|
5096
|
+
case 29:
|
|
5353
5097
|
case "end":
|
|
5354
5098
|
return _context2.stop();
|
|
5355
5099
|
}
|
|
5356
5100
|
}
|
|
5357
|
-
}, _callee2, null, [[
|
|
5101
|
+
}, _callee2, null, [[9, 25]]);
|
|
5358
5102
|
}));
|
|
5359
5103
|
return _createAndTryToRetrievePersistentSession.apply(this, arguments);
|
|
5360
5104
|
}
|
|
@@ -5387,7 +5131,6 @@ function _createAndTryToRetrievePersistentSession() {
|
|
|
5387
5131
|
* @param {Object} loadedSessionsStore
|
|
5388
5132
|
* @returns {Observable}
|
|
5389
5133
|
*/
|
|
5390
|
-
|
|
5391
5134
|
function cleanOldLoadedSessions(_x, _x2) {
|
|
5392
5135
|
return _cleanOldLoadedSessions.apply(this, arguments);
|
|
5393
5136
|
}
|
|
@@ -5418,7 +5161,7 @@ function _cleanOldLoadedSessions() {
|
|
|
5418
5161
|
}
|
|
5419
5162
|
|
|
5420
5163
|
_context.next = 8;
|
|
5421
|
-
return
|
|
5164
|
+
return Promise.all(proms);
|
|
5422
5165
|
|
|
5423
5166
|
case 8:
|
|
5424
5167
|
case "end":
|
|
@@ -5551,7 +5294,7 @@ function _createOrLoadSession() {
|
|
|
5551
5294
|
|
|
5552
5295
|
case 20:
|
|
5553
5296
|
_context.next = 22;
|
|
5554
|
-
return createSession(stores, initializationData, wantedSessionType);
|
|
5297
|
+
return createSession(stores, initializationData, wantedSessionType, cancelSignal);
|
|
5555
5298
|
|
|
5556
5299
|
case 22:
|
|
5557
5300
|
evt = _context.sent;
|
|
@@ -5629,7 +5372,6 @@ var flat_map = __webpack_require__(9592);
|
|
|
5629
5372
|
|
|
5630
5373
|
|
|
5631
5374
|
|
|
5632
|
-
|
|
5633
5375
|
/**
|
|
5634
5376
|
* @param {Array.<Object>} keySystems
|
|
5635
5377
|
* @param {MediaKeySystemAccess} currentKeySystemAccess
|
|
@@ -5821,7 +5563,7 @@ function getMediaKeySystemAccess(mediaElement, keySystemsConfigs, cancelSignal)
|
|
|
5821
5563
|
|
|
5822
5564
|
if (cachedKeySystemAccess !== null) {
|
|
5823
5565
|
log/* default.info */.Z.info("DRM: Found cached compatible keySystem");
|
|
5824
|
-
return
|
|
5566
|
+
return Promise.resolve({
|
|
5825
5567
|
type: "reuse-media-key-system-access",
|
|
5826
5568
|
value: {
|
|
5827
5569
|
mediaKeySystemAccess: cachedKeySystemAccess.keySystemAccess,
|
|
@@ -5951,6 +5693,230 @@ function getMediaKeySystemAccess(mediaElement, keySystemsConfigs, cancelSignal)
|
|
|
5951
5693
|
return _recursivelyTestKeySystems.apply(this, arguments);
|
|
5952
5694
|
}
|
|
5953
5695
|
}
|
|
5696
|
+
// EXTERNAL MODULE: ./src/parsers/containers/isobmff/get_box.ts
|
|
5697
|
+
var get_box = __webpack_require__(2297);
|
|
5698
|
+
;// CONCATENATED MODULE: ./src/compat/eme/generate_key_request.ts
|
|
5699
|
+
/**
|
|
5700
|
+
* Copyright 2015 CANAL+ Group
|
|
5701
|
+
*
|
|
5702
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5703
|
+
* you may not use this file except in compliance with the License.
|
|
5704
|
+
* You may obtain a copy of the License at
|
|
5705
|
+
*
|
|
5706
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
5707
|
+
*
|
|
5708
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
5709
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
5710
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
5711
|
+
* See the License for the specific language governing permissions and
|
|
5712
|
+
* limitations under the License.
|
|
5713
|
+
*/
|
|
5714
|
+
|
|
5715
|
+
|
|
5716
|
+
|
|
5717
|
+
|
|
5718
|
+
/**
|
|
5719
|
+
* Modify "initialization data" sent to a `generateKeyRequest` EME call to
|
|
5720
|
+
* improve the player's browser compatibility:
|
|
5721
|
+
*
|
|
5722
|
+
* 1. some browsers/CDM have problems when the CENC PSSH box is the first
|
|
5723
|
+
* encountered PSSH box in the initialization data (for the moment just
|
|
5724
|
+
* Edge was noted with this behavior).
|
|
5725
|
+
* We found however that it works on every browser when the CENC pssh
|
|
5726
|
+
* box(es) is/are the last box(es) encountered.
|
|
5727
|
+
*
|
|
5728
|
+
* To that end, we move CENC pssh boxes at the end of the initialization
|
|
5729
|
+
* data in this function.
|
|
5730
|
+
*
|
|
5731
|
+
* 2. Some poorly encoded/packaged contents communicate both a CENC with a
|
|
5732
|
+
* pssh version of 0 and one with a version of 1. We found out that this is
|
|
5733
|
+
* not always well handled on some devices/browsers (on Edge and some other
|
|
5734
|
+
* embedded devices that shall remain nameless for now!).
|
|
5735
|
+
*
|
|
5736
|
+
* Here this function will filter out CENC pssh with a version different to
|
|
5737
|
+
* 1 when one(s) with a version of 1 is/are already present.
|
|
5738
|
+
*
|
|
5739
|
+
* If the initData is unrecognized or if a CENC PSSH is not found, this function
|
|
5740
|
+
* throws.
|
|
5741
|
+
* @param {Uint8Array} initData - Initialization data you want to patch
|
|
5742
|
+
* @returns {Uint8Array} - Initialization data, patched
|
|
5743
|
+
*/
|
|
5744
|
+
|
|
5745
|
+
function patchInitData(initData) {
|
|
5746
|
+
log/* default.info */.Z.info("Compat: Trying to move CENC PSSH from init data at the end of it.");
|
|
5747
|
+
var foundCencV1 = false;
|
|
5748
|
+
var concatenatedCencs = new Uint8Array();
|
|
5749
|
+
var resInitData = new Uint8Array();
|
|
5750
|
+
var offset = 0;
|
|
5751
|
+
|
|
5752
|
+
while (offset < initData.length) {
|
|
5753
|
+
if (initData.length < offset + 8 || (0,byte_parsing/* be4toi */.pX)(initData, offset + 4) !== PSSH_TO_INTEGER) {
|
|
5754
|
+
log/* default.warn */.Z.warn("Compat: unrecognized initialization data. Cannot patch it.");
|
|
5755
|
+
throw new Error("Compat: unrecognized initialization data. Cannot patch it.");
|
|
5756
|
+
}
|
|
5757
|
+
|
|
5758
|
+
var len = (0,byte_parsing/* be4toi */.pX)(new Uint8Array(initData), offset);
|
|
5759
|
+
|
|
5760
|
+
if (offset + len > initData.length) {
|
|
5761
|
+
log/* default.warn */.Z.warn("Compat: unrecognized initialization data. Cannot patch it.");
|
|
5762
|
+
throw new Error("Compat: unrecognized initialization data. Cannot patch it.");
|
|
5763
|
+
}
|
|
5764
|
+
|
|
5765
|
+
var currentPSSH = initData.subarray(offset, offset + len); // yep
|
|
5766
|
+
|
|
5767
|
+
if (initData[offset + 12] === 0x10 && initData[offset + 13] === 0x77 && initData[offset + 14] === 0xEF && initData[offset + 15] === 0xEC && initData[offset + 16] === 0xC0 && initData[offset + 17] === 0xB2 && initData[offset + 18] === 0x4D && initData[offset + 19] === 0x02 && initData[offset + 20] === 0xAC && initData[offset + 21] === 0xE3 && initData[offset + 22] === 0x3C && initData[offset + 23] === 0x1E && initData[offset + 24] === 0x52 && initData[offset + 25] === 0xE2 && initData[offset + 26] === 0xFB && initData[offset + 27] === 0x4B) {
|
|
5768
|
+
var cencOffsets = (0,get_box/* getNextBoxOffsets */.Xj)(currentPSSH);
|
|
5769
|
+
var version = cencOffsets === null ? undefined : currentPSSH[cencOffsets[1]];
|
|
5770
|
+
log/* default.info */.Z.info("Compat: CENC PSSH found with version", version);
|
|
5771
|
+
|
|
5772
|
+
if (version === undefined) {
|
|
5773
|
+
log/* default.warn */.Z.warn("Compat: could not read version of CENC PSSH");
|
|
5774
|
+
} else if (foundCencV1 === (version === 1)) {
|
|
5775
|
+
// Either `concatenatedCencs` only contains v1 or does not contain any
|
|
5776
|
+
concatenatedCencs = (0,byte_parsing/* concat */.zo)(concatenatedCencs, currentPSSH);
|
|
5777
|
+
} else if (version === 1) {
|
|
5778
|
+
log/* default.warn */.Z.warn("Compat: cenc version 1 encountered, " + "removing every other cenc pssh box.");
|
|
5779
|
+
concatenatedCencs = currentPSSH;
|
|
5780
|
+
foundCencV1 = true;
|
|
5781
|
+
} else {
|
|
5782
|
+
log/* default.warn */.Z.warn("Compat: filtering out cenc pssh box with wrong version", version);
|
|
5783
|
+
}
|
|
5784
|
+
} else {
|
|
5785
|
+
resInitData = (0,byte_parsing/* concat */.zo)(resInitData, currentPSSH);
|
|
5786
|
+
}
|
|
5787
|
+
|
|
5788
|
+
offset += len;
|
|
5789
|
+
}
|
|
5790
|
+
|
|
5791
|
+
if (offset !== initData.length) {
|
|
5792
|
+
log/* default.warn */.Z.warn("Compat: unrecognized initialization data. Cannot patch it.");
|
|
5793
|
+
throw new Error("Compat: unrecognized initialization data. Cannot patch it.");
|
|
5794
|
+
}
|
|
5795
|
+
|
|
5796
|
+
return (0,byte_parsing/* concat */.zo)(resInitData, concatenatedCencs);
|
|
5797
|
+
}
|
|
5798
|
+
/**
|
|
5799
|
+
* Generate a request from session.
|
|
5800
|
+
* @param {MediaKeySession} session - MediaKeySession on which the request will
|
|
5801
|
+
* be done.
|
|
5802
|
+
* @param {string} initializationDataType - Initialization data type given e.g.
|
|
5803
|
+
* by the "encrypted" event for the corresponding request.
|
|
5804
|
+
* @param {Uint8Array} initializationData - Initialization data given e.g. by
|
|
5805
|
+
* the "encrypted" event for the corresponding request.
|
|
5806
|
+
* @returns {Promise} - Emit when done. Errors if fails.
|
|
5807
|
+
*/
|
|
5808
|
+
|
|
5809
|
+
function generateKeyRequest(session, initializationDataType, initializationData) {
|
|
5810
|
+
log/* default.debug */.Z.debug("Compat: Calling generateRequest on the MediaKeySession");
|
|
5811
|
+
var patchedInit;
|
|
5812
|
+
|
|
5813
|
+
try {
|
|
5814
|
+
patchedInit = patchInitData(initializationData);
|
|
5815
|
+
} catch (_e) {
|
|
5816
|
+
patchedInit = initializationData;
|
|
5817
|
+
}
|
|
5818
|
+
|
|
5819
|
+
var initDataType = initializationDataType !== null && initializationDataType !== void 0 ? initializationDataType : "";
|
|
5820
|
+
return session.generateRequest(initDataType, patchedInit)["catch"](function (error) {
|
|
5821
|
+
if (initDataType !== "" || !(error instanceof TypeError)) {
|
|
5822
|
+
throw error;
|
|
5823
|
+
} // On newer EME versions of the specification, the initialization data
|
|
5824
|
+
// type given to generateRequest cannot be an empty string (it returns
|
|
5825
|
+
// a rejected promise with a TypeError in that case).
|
|
5826
|
+
// Retry with a default "cenc" value for initialization data type if
|
|
5827
|
+
// we're in that condition.
|
|
5828
|
+
|
|
5829
|
+
|
|
5830
|
+
log/* default.warn */.Z.warn("Compat: error while calling `generateRequest` with an empty " + "initialization data type. Retrying with a default \"cenc\" value.", error);
|
|
5831
|
+
return session.generateRequest("cenc", patchedInit);
|
|
5832
|
+
});
|
|
5833
|
+
}
|
|
5834
|
+
;// CONCATENATED MODULE: ./src/compat/eme/load_session.ts
|
|
5835
|
+
|
|
5836
|
+
|
|
5837
|
+
|
|
5838
|
+
/**
|
|
5839
|
+
* Copyright 2015 CANAL+ Group
|
|
5840
|
+
*
|
|
5841
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5842
|
+
* you may not use this file except in compliance with the License.
|
|
5843
|
+
* You may obtain a copy of the License at
|
|
5844
|
+
*
|
|
5845
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
5846
|
+
*
|
|
5847
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
5848
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
5849
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
5850
|
+
* See the License for the specific language governing permissions and
|
|
5851
|
+
* limitations under the License.
|
|
5852
|
+
*/
|
|
5853
|
+
|
|
5854
|
+
var EME_WAITING_DELAY_LOADED_SESSION_EMPTY_KEYSTATUSES = 100;
|
|
5855
|
+
/**
|
|
5856
|
+
* Load a persistent session, based on its `sessionId`, on the given
|
|
5857
|
+
* MediaKeySession.
|
|
5858
|
+
*
|
|
5859
|
+
* Returns an Observable which emits:
|
|
5860
|
+
* - true if the persistent MediaKeySession was found and loaded
|
|
5861
|
+
* - false if no persistent MediaKeySession was found with that `sessionId`.
|
|
5862
|
+
* Then completes.
|
|
5863
|
+
*
|
|
5864
|
+
* The Observable throws if anything goes wrong in the process.
|
|
5865
|
+
* @param {MediaKeySession} session
|
|
5866
|
+
* @param {string} sessionId
|
|
5867
|
+
* @returns {Observable}
|
|
5868
|
+
*/
|
|
5869
|
+
|
|
5870
|
+
function loadSession(_x, _x2) {
|
|
5871
|
+
return _loadSession.apply(this, arguments);
|
|
5872
|
+
}
|
|
5873
|
+
|
|
5874
|
+
function _loadSession() {
|
|
5875
|
+
_loadSession = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee(session, sessionId) {
|
|
5876
|
+
var isLoaded;
|
|
5877
|
+
return regenerator_default().wrap(function _callee$(_context) {
|
|
5878
|
+
while (1) {
|
|
5879
|
+
switch (_context.prev = _context.next) {
|
|
5880
|
+
case 0:
|
|
5881
|
+
log/* default.info */.Z.info("Compat/DRM: Load persisted session", sessionId);
|
|
5882
|
+
_context.next = 3;
|
|
5883
|
+
return session.load(sessionId);
|
|
5884
|
+
|
|
5885
|
+
case 3:
|
|
5886
|
+
isLoaded = _context.sent;
|
|
5887
|
+
|
|
5888
|
+
if (!(!isLoaded || session.keyStatuses.size > 0)) {
|
|
5889
|
+
_context.next = 6;
|
|
5890
|
+
break;
|
|
5891
|
+
}
|
|
5892
|
+
|
|
5893
|
+
return _context.abrupt("return", isLoaded);
|
|
5894
|
+
|
|
5895
|
+
case 6:
|
|
5896
|
+
return _context.abrupt("return", new Promise(function (resolve) {
|
|
5897
|
+
session.addEventListener("keystatuseschange", resolveWithLoadedStatus);
|
|
5898
|
+
var timeout = setTimeout(resolveWithLoadedStatus, EME_WAITING_DELAY_LOADED_SESSION_EMPTY_KEYSTATUSES);
|
|
5899
|
+
|
|
5900
|
+
function resolveWithLoadedStatus() {
|
|
5901
|
+
cleanUp();
|
|
5902
|
+
resolve(isLoaded);
|
|
5903
|
+
}
|
|
5904
|
+
|
|
5905
|
+
function cleanUp() {
|
|
5906
|
+
clearTimeout(timeout);
|
|
5907
|
+
session.removeEventListener("keystatuseschange", resolveWithLoadedStatus);
|
|
5908
|
+
}
|
|
5909
|
+
}));
|
|
5910
|
+
|
|
5911
|
+
case 7:
|
|
5912
|
+
case "end":
|
|
5913
|
+
return _context.stop();
|
|
5914
|
+
}
|
|
5915
|
+
}
|
|
5916
|
+
}, _callee);
|
|
5917
|
+
}));
|
|
5918
|
+
return _loadSession.apply(this, arguments);
|
|
5919
|
+
}
|
|
5954
5920
|
// EXTERNAL MODULE: ./src/utils/cancellable_sleep.ts
|
|
5955
5921
|
var cancellable_sleep = __webpack_require__(7864);
|
|
5956
5922
|
;// CONCATENATED MODULE: ./src/compat/eme/close_session.ts
|
|
@@ -5975,7 +5941,6 @@ var cancellable_sleep = __webpack_require__(7864);
|
|
|
5975
5941
|
|
|
5976
5942
|
|
|
5977
5943
|
|
|
5978
|
-
|
|
5979
5944
|
/**
|
|
5980
5945
|
* Close the given `MediaKeySession` and returns a Promise resolving when the
|
|
5981
5946
|
* session is closed.
|
|
@@ -5992,7 +5957,7 @@ var cancellable_sleep = __webpack_require__(7864);
|
|
|
5992
5957
|
|
|
5993
5958
|
function closeSession(session) {
|
|
5994
5959
|
var timeoutCanceller = new task_canceller/* default */.ZP();
|
|
5995
|
-
return
|
|
5960
|
+
return Promise.race([session.close().then(function () {
|
|
5996
5961
|
timeoutCanceller.cancel();
|
|
5997
5962
|
}), // The `closed` promise may resolve, even if `close()` result has not
|
|
5998
5963
|
// (seen at some point on Firefox).
|
|
@@ -6448,9 +6413,6 @@ function loaded_sessions_store_arrayLikeToArray(arr, len) { if (len == null || l
|
|
|
6448
6413
|
|
|
6449
6414
|
|
|
6450
6415
|
|
|
6451
|
-
|
|
6452
|
-
|
|
6453
|
-
|
|
6454
6416
|
/**
|
|
6455
6417
|
* Create and store MediaKeySessions linked to a single MediaKeys
|
|
6456
6418
|
* instance.
|
|
@@ -6472,7 +6434,7 @@ var LoadedSessionsStore = /*#__PURE__*/function () {
|
|
|
6472
6434
|
}
|
|
6473
6435
|
/**
|
|
6474
6436
|
* Create a new MediaKeySession and store it in this store.
|
|
6475
|
-
* @param {Object}
|
|
6437
|
+
* @param {Object} initData
|
|
6476
6438
|
* @param {string} sessionType
|
|
6477
6439
|
* @returns {Object}
|
|
6478
6440
|
*/
|
|
@@ -6490,7 +6452,12 @@ var LoadedSessionsStore = /*#__PURE__*/function () {
|
|
|
6490
6452
|
var entry = {
|
|
6491
6453
|
mediaKeySession: mediaKeySession,
|
|
6492
6454
|
sessionType: sessionType,
|
|
6493
|
-
keySessionRecord: keySessionRecord
|
|
6455
|
+
keySessionRecord: keySessionRecord,
|
|
6456
|
+
isGeneratingRequest: false,
|
|
6457
|
+
isLoadingPersistentSession: false,
|
|
6458
|
+
closingStatus: {
|
|
6459
|
+
type: "none"
|
|
6460
|
+
}
|
|
6494
6461
|
};
|
|
6495
6462
|
|
|
6496
6463
|
if (!(0,is_null_or_undefined/* default */.Z)(mediaKeySession.closed)) {
|
|
@@ -6508,11 +6475,7 @@ var LoadedSessionsStore = /*#__PURE__*/function () {
|
|
|
6508
6475
|
|
|
6509
6476
|
log/* default.debug */.Z.debug("DRM-LSS: Add MediaKeySession", entry.sessionType);
|
|
6510
6477
|
|
|
6511
|
-
this._storage.push({
|
|
6512
|
-
keySessionRecord: keySessionRecord,
|
|
6513
|
-
mediaKeySession: mediaKeySession,
|
|
6514
|
-
sessionType: sessionType
|
|
6515
|
-
});
|
|
6478
|
+
this._storage.push(Object.assign({}, entry));
|
|
6516
6479
|
|
|
6517
6480
|
return entry;
|
|
6518
6481
|
}
|
|
@@ -6539,29 +6502,49 @@ var LoadedSessionsStore = /*#__PURE__*/function () {
|
|
|
6539
6502
|
|
|
6540
6503
|
this._storage.push(stored);
|
|
6541
6504
|
|
|
6542
|
-
return {
|
|
6543
|
-
keySessionRecord: stored.keySessionRecord,
|
|
6544
|
-
mediaKeySession: stored.mediaKeySession,
|
|
6545
|
-
sessionType: stored.sessionType
|
|
6546
|
-
};
|
|
6505
|
+
return Object.assign({}, stored);
|
|
6547
6506
|
}
|
|
6548
6507
|
}
|
|
6549
6508
|
|
|
6550
6509
|
return null;
|
|
6551
6510
|
}
|
|
6552
6511
|
/**
|
|
6553
|
-
*
|
|
6512
|
+
* Get `LoadedSessionsStore`'s entry for a given MediaKeySession.
|
|
6513
|
+
* Returns `null` if the given MediaKeySession is not stored in the
|
|
6554
6514
|
* `LoadedSessionsStore`.
|
|
6555
|
-
*
|
|
6515
|
+
* @param {MediaKeySession} mediaKeySession
|
|
6516
|
+
* @returns {Object|null}
|
|
6517
|
+
*/
|
|
6518
|
+
;
|
|
6519
|
+
|
|
6520
|
+
_proto.getEntryForSession = function getEntryForSession(mediaKeySession) {
|
|
6521
|
+
for (var i = this._storage.length - 1; i >= 0; i--) {
|
|
6522
|
+
var stored = this._storage[i];
|
|
6523
|
+
|
|
6524
|
+
if (stored.mediaKeySession === mediaKeySession) {
|
|
6525
|
+
return Object.assign({}, stored);
|
|
6526
|
+
}
|
|
6527
|
+
}
|
|
6528
|
+
|
|
6529
|
+
return null;
|
|
6530
|
+
}
|
|
6531
|
+
/**
|
|
6532
|
+
* Generate a license request on the given MediaKeySession, while indicating
|
|
6533
|
+
* to the LoadedSessionsStore that a license-request is pending so
|
|
6534
|
+
* session-closing orders are properly scheduled after it is done.
|
|
6556
6535
|
* @param {Object} mediaKeySession
|
|
6536
|
+
* @param {string} initializationDataType - Initialization data type given
|
|
6537
|
+
* e.g. by the "encrypted" event for the corresponding request.
|
|
6538
|
+
* @param {Uint8Array} initializationData - Initialization data given e.g. by
|
|
6539
|
+
* the "encrypted" event for the corresponding request.
|
|
6557
6540
|
* @returns {Promise}
|
|
6558
6541
|
*/
|
|
6559
6542
|
;
|
|
6560
6543
|
|
|
6561
|
-
_proto.
|
|
6544
|
+
_proto.generateLicenseRequest =
|
|
6562
6545
|
/*#__PURE__*/
|
|
6563
6546
|
function () {
|
|
6564
|
-
var
|
|
6547
|
+
var _generateLicenseRequest = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee(mediaKeySession, initializationDataType, initializationData) {
|
|
6565
6548
|
var entry, _iterator, _step, stored;
|
|
6566
6549
|
|
|
6567
6550
|
return regenerator_default().wrap(function _callee$(_context) {
|
|
@@ -6596,25 +6579,260 @@ var LoadedSessionsStore = /*#__PURE__*/function () {
|
|
|
6596
6579
|
break;
|
|
6597
6580
|
}
|
|
6598
6581
|
|
|
6599
|
-
log/* default.
|
|
6600
|
-
return _context.abrupt("return",
|
|
6582
|
+
log/* default.error */.Z.error("DRM-LSS: generateRequest error. No MediaKeySession found with " + "the given initData and initDataType");
|
|
6583
|
+
return _context.abrupt("return", generateKeyRequest(mediaKeySession, initializationDataType, initializationData));
|
|
6601
6584
|
|
|
6602
6585
|
case 11:
|
|
6603
|
-
|
|
6604
|
-
|
|
6586
|
+
entry.isGeneratingRequest = true; // Note the `as string` is needed due to TypeScript not understanding that
|
|
6587
|
+
// the `closingStatus` might change in the next checks
|
|
6605
6588
|
|
|
6606
|
-
|
|
6607
|
-
|
|
6589
|
+
if (!(entry.closingStatus.type !== "none")) {
|
|
6590
|
+
_context.next = 14;
|
|
6591
|
+
break;
|
|
6592
|
+
}
|
|
6593
|
+
|
|
6594
|
+
throw new Error("The `MediaKeySession` is being closed.");
|
|
6608
6595
|
|
|
6609
6596
|
case 14:
|
|
6597
|
+
_context.prev = 14;
|
|
6598
|
+
_context.next = 17;
|
|
6599
|
+
return generateKeyRequest(mediaKeySession, initializationDataType, initializationData);
|
|
6600
|
+
|
|
6601
|
+
case 17:
|
|
6602
|
+
_context.next = 26;
|
|
6603
|
+
break;
|
|
6604
|
+
|
|
6605
|
+
case 19:
|
|
6606
|
+
_context.prev = 19;
|
|
6607
|
+
_context.t0 = _context["catch"](14);
|
|
6608
|
+
|
|
6609
|
+
if (!(entry === undefined)) {
|
|
6610
|
+
_context.next = 23;
|
|
6611
|
+
break;
|
|
6612
|
+
}
|
|
6613
|
+
|
|
6614
|
+
throw _context.t0;
|
|
6615
|
+
|
|
6616
|
+
case 23:
|
|
6617
|
+
entry.isGeneratingRequest = false;
|
|
6618
|
+
|
|
6619
|
+
if (entry.closingStatus.type === "awaiting") {
|
|
6620
|
+
entry.closingStatus.start();
|
|
6621
|
+
}
|
|
6622
|
+
|
|
6623
|
+
throw _context.t0;
|
|
6624
|
+
|
|
6625
|
+
case 26:
|
|
6626
|
+
if (!(entry === undefined)) {
|
|
6627
|
+
_context.next = 28;
|
|
6628
|
+
break;
|
|
6629
|
+
}
|
|
6630
|
+
|
|
6631
|
+
return _context.abrupt("return", undefined);
|
|
6632
|
+
|
|
6633
|
+
case 28:
|
|
6634
|
+
entry.isGeneratingRequest = false;
|
|
6635
|
+
|
|
6636
|
+
if (entry.closingStatus.type === "awaiting") {
|
|
6637
|
+
entry.closingStatus.start();
|
|
6638
|
+
}
|
|
6639
|
+
|
|
6640
|
+
case 30:
|
|
6610
6641
|
case "end":
|
|
6611
6642
|
return _context.stop();
|
|
6612
6643
|
}
|
|
6613
6644
|
}
|
|
6614
|
-
}, _callee, this);
|
|
6645
|
+
}, _callee, this, [[14, 19]]);
|
|
6646
|
+
}));
|
|
6647
|
+
|
|
6648
|
+
function generateLicenseRequest(_x, _x2, _x3) {
|
|
6649
|
+
return _generateLicenseRequest.apply(this, arguments);
|
|
6650
|
+
}
|
|
6651
|
+
|
|
6652
|
+
return generateLicenseRequest;
|
|
6653
|
+
}()
|
|
6654
|
+
/**
|
|
6655
|
+
* @param {Object} mediaKeySession
|
|
6656
|
+
* @param {string} sessionId
|
|
6657
|
+
* @returns {Promise}
|
|
6658
|
+
*/
|
|
6659
|
+
;
|
|
6660
|
+
|
|
6661
|
+
_proto.loadPersistentSession =
|
|
6662
|
+
/*#__PURE__*/
|
|
6663
|
+
function () {
|
|
6664
|
+
var _loadPersistentSession = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee2(mediaKeySession, sessionId) {
|
|
6665
|
+
var entry, _iterator2, _step2, stored, ret;
|
|
6666
|
+
|
|
6667
|
+
return regenerator_default().wrap(function _callee2$(_context2) {
|
|
6668
|
+
while (1) {
|
|
6669
|
+
switch (_context2.prev = _context2.next) {
|
|
6670
|
+
case 0:
|
|
6671
|
+
_iterator2 = loaded_sessions_store_createForOfIteratorHelperLoose(this._storage);
|
|
6672
|
+
|
|
6673
|
+
case 1:
|
|
6674
|
+
if ((_step2 = _iterator2()).done) {
|
|
6675
|
+
_context2.next = 8;
|
|
6676
|
+
break;
|
|
6677
|
+
}
|
|
6678
|
+
|
|
6679
|
+
stored = _step2.value;
|
|
6680
|
+
|
|
6681
|
+
if (!(stored.mediaKeySession === mediaKeySession)) {
|
|
6682
|
+
_context2.next = 6;
|
|
6683
|
+
break;
|
|
6684
|
+
}
|
|
6685
|
+
|
|
6686
|
+
entry = stored;
|
|
6687
|
+
return _context2.abrupt("break", 8);
|
|
6688
|
+
|
|
6689
|
+
case 6:
|
|
6690
|
+
_context2.next = 1;
|
|
6691
|
+
break;
|
|
6692
|
+
|
|
6693
|
+
case 8:
|
|
6694
|
+
if (!(entry === undefined)) {
|
|
6695
|
+
_context2.next = 11;
|
|
6696
|
+
break;
|
|
6697
|
+
}
|
|
6698
|
+
|
|
6699
|
+
log/* default.error */.Z.error("DRM-LSS: loadPersistentSession error. No MediaKeySession found with " + "the given initData and initDataType");
|
|
6700
|
+
return _context2.abrupt("return", loadSession(mediaKeySession, sessionId));
|
|
6701
|
+
|
|
6702
|
+
case 11:
|
|
6703
|
+
entry.isLoadingPersistentSession = true; // Note the `as string` is needed due to TypeScript not understanding that
|
|
6704
|
+
// the `closingStatus` might change in the next checks
|
|
6705
|
+
|
|
6706
|
+
if (!(entry.closingStatus.type !== "none")) {
|
|
6707
|
+
_context2.next = 14;
|
|
6708
|
+
break;
|
|
6709
|
+
}
|
|
6710
|
+
|
|
6711
|
+
throw new Error("The `MediaKeySession` is being closed.");
|
|
6712
|
+
|
|
6713
|
+
case 14:
|
|
6714
|
+
_context2.prev = 14;
|
|
6715
|
+
_context2.next = 17;
|
|
6716
|
+
return loadSession(mediaKeySession, sessionId);
|
|
6717
|
+
|
|
6718
|
+
case 17:
|
|
6719
|
+
ret = _context2.sent;
|
|
6720
|
+
_context2.next = 27;
|
|
6721
|
+
break;
|
|
6722
|
+
|
|
6723
|
+
case 20:
|
|
6724
|
+
_context2.prev = 20;
|
|
6725
|
+
_context2.t0 = _context2["catch"](14);
|
|
6726
|
+
|
|
6727
|
+
if (!(entry === undefined)) {
|
|
6728
|
+
_context2.next = 24;
|
|
6729
|
+
break;
|
|
6730
|
+
}
|
|
6731
|
+
|
|
6732
|
+
throw _context2.t0;
|
|
6733
|
+
|
|
6734
|
+
case 24:
|
|
6735
|
+
entry.isLoadingPersistentSession = false;
|
|
6736
|
+
|
|
6737
|
+
if (entry.closingStatus.type === "awaiting") {
|
|
6738
|
+
entry.closingStatus.start();
|
|
6739
|
+
}
|
|
6740
|
+
|
|
6741
|
+
throw _context2.t0;
|
|
6742
|
+
|
|
6743
|
+
case 27:
|
|
6744
|
+
if (!(entry === undefined)) {
|
|
6745
|
+
_context2.next = 29;
|
|
6746
|
+
break;
|
|
6747
|
+
}
|
|
6748
|
+
|
|
6749
|
+
return _context2.abrupt("return", ret);
|
|
6750
|
+
|
|
6751
|
+
case 29:
|
|
6752
|
+
entry.isLoadingPersistentSession = false;
|
|
6753
|
+
|
|
6754
|
+
if (entry.closingStatus.type === "awaiting") {
|
|
6755
|
+
entry.closingStatus.start();
|
|
6756
|
+
}
|
|
6757
|
+
|
|
6758
|
+
return _context2.abrupt("return", ret);
|
|
6759
|
+
|
|
6760
|
+
case 32:
|
|
6761
|
+
case "end":
|
|
6762
|
+
return _context2.stop();
|
|
6763
|
+
}
|
|
6764
|
+
}
|
|
6765
|
+
}, _callee2, this, [[14, 20]]);
|
|
6766
|
+
}));
|
|
6767
|
+
|
|
6768
|
+
function loadPersistentSession(_x4, _x5) {
|
|
6769
|
+
return _loadPersistentSession.apply(this, arguments);
|
|
6770
|
+
}
|
|
6771
|
+
|
|
6772
|
+
return loadPersistentSession;
|
|
6773
|
+
}()
|
|
6774
|
+
/**
|
|
6775
|
+
* Close a MediaKeySession and remove its related stored information from the
|
|
6776
|
+
* `LoadedSessionsStore`.
|
|
6777
|
+
* Emit when done.
|
|
6778
|
+
* @param {Object} mediaKeySession
|
|
6779
|
+
* @returns {Promise}
|
|
6780
|
+
*/
|
|
6781
|
+
;
|
|
6782
|
+
|
|
6783
|
+
_proto.closeSession =
|
|
6784
|
+
/*#__PURE__*/
|
|
6785
|
+
function () {
|
|
6786
|
+
var _closeSession = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee3(mediaKeySession) {
|
|
6787
|
+
var entry, _iterator3, _step3, stored;
|
|
6788
|
+
|
|
6789
|
+
return regenerator_default().wrap(function _callee3$(_context3) {
|
|
6790
|
+
while (1) {
|
|
6791
|
+
switch (_context3.prev = _context3.next) {
|
|
6792
|
+
case 0:
|
|
6793
|
+
_iterator3 = loaded_sessions_store_createForOfIteratorHelperLoose(this._storage);
|
|
6794
|
+
|
|
6795
|
+
case 1:
|
|
6796
|
+
if ((_step3 = _iterator3()).done) {
|
|
6797
|
+
_context3.next = 8;
|
|
6798
|
+
break;
|
|
6799
|
+
}
|
|
6800
|
+
|
|
6801
|
+
stored = _step3.value;
|
|
6802
|
+
|
|
6803
|
+
if (!(stored.mediaKeySession === mediaKeySession)) {
|
|
6804
|
+
_context3.next = 6;
|
|
6805
|
+
break;
|
|
6806
|
+
}
|
|
6807
|
+
|
|
6808
|
+
entry = stored;
|
|
6809
|
+
return _context3.abrupt("break", 8);
|
|
6810
|
+
|
|
6811
|
+
case 6:
|
|
6812
|
+
_context3.next = 1;
|
|
6813
|
+
break;
|
|
6814
|
+
|
|
6815
|
+
case 8:
|
|
6816
|
+
if (!(entry === undefined)) {
|
|
6817
|
+
_context3.next = 11;
|
|
6818
|
+
break;
|
|
6819
|
+
}
|
|
6820
|
+
|
|
6821
|
+
log/* default.warn */.Z.warn("DRM-LSS: No MediaKeySession found with " + "the given initData and initDataType");
|
|
6822
|
+
return _context3.abrupt("return", Promise.resolve(false));
|
|
6823
|
+
|
|
6824
|
+
case 11:
|
|
6825
|
+
return _context3.abrupt("return", this._closeEntry(entry));
|
|
6826
|
+
|
|
6827
|
+
case 12:
|
|
6828
|
+
case "end":
|
|
6829
|
+
return _context3.stop();
|
|
6830
|
+
}
|
|
6831
|
+
}
|
|
6832
|
+
}, _callee3, this);
|
|
6615
6833
|
}));
|
|
6616
6834
|
|
|
6617
|
-
function closeSession(
|
|
6835
|
+
function closeSession(_x6) {
|
|
6618
6836
|
return _closeSession.apply(this, arguments);
|
|
6619
6837
|
}
|
|
6620
6838
|
|
|
@@ -6649,11 +6867,13 @@ var LoadedSessionsStore = /*#__PURE__*/function () {
|
|
|
6649
6867
|
_proto.closeAllSessions =
|
|
6650
6868
|
/*#__PURE__*/
|
|
6651
6869
|
function () {
|
|
6652
|
-
var _closeAllSessions = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function
|
|
6870
|
+
var _closeAllSessions = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee4() {
|
|
6871
|
+
var _this2 = this;
|
|
6872
|
+
|
|
6653
6873
|
var allEntries, closingProms;
|
|
6654
|
-
return regenerator_default().wrap(function
|
|
6874
|
+
return regenerator_default().wrap(function _callee4$(_context4) {
|
|
6655
6875
|
while (1) {
|
|
6656
|
-
switch (
|
|
6876
|
+
switch (_context4.prev = _context4.next) {
|
|
6657
6877
|
case 0:
|
|
6658
6878
|
allEntries = this._storage;
|
|
6659
6879
|
log/* default.debug */.Z.debug("DRM-LSS: Closing all current MediaKeySessions", allEntries.length); // re-initialize the storage, so that new interactions with the
|
|
@@ -6662,17 +6882,17 @@ var LoadedSessionsStore = /*#__PURE__*/function () {
|
|
|
6662
6882
|
|
|
6663
6883
|
this._storage = [];
|
|
6664
6884
|
closingProms = allEntries.map(function (entry) {
|
|
6665
|
-
return
|
|
6885
|
+
return _this2._closeEntry(entry);
|
|
6666
6886
|
});
|
|
6667
|
-
|
|
6668
|
-
return
|
|
6887
|
+
_context4.next = 6;
|
|
6888
|
+
return Promise.all(closingProms);
|
|
6669
6889
|
|
|
6670
6890
|
case 6:
|
|
6671
6891
|
case "end":
|
|
6672
|
-
return
|
|
6892
|
+
return _context4.stop();
|
|
6673
6893
|
}
|
|
6674
6894
|
}
|
|
6675
|
-
},
|
|
6895
|
+
}, _callee4, this);
|
|
6676
6896
|
}));
|
|
6677
6897
|
|
|
6678
6898
|
function closeAllSessions() {
|
|
@@ -6680,7 +6900,15 @@ var LoadedSessionsStore = /*#__PURE__*/function () {
|
|
|
6680
6900
|
}
|
|
6681
6901
|
|
|
6682
6902
|
return closeAllSessions;
|
|
6683
|
-
}()
|
|
6903
|
+
}()
|
|
6904
|
+
/**
|
|
6905
|
+
* Get the index of a stored MediaKeySession entry based on its
|
|
6906
|
+
* `KeySessionRecord`.
|
|
6907
|
+
* Returns -1 if not found.
|
|
6908
|
+
* @param {Object} record
|
|
6909
|
+
* @returns {number}
|
|
6910
|
+
*/
|
|
6911
|
+
;
|
|
6684
6912
|
|
|
6685
6913
|
_proto.getIndex = function getIndex(record) {
|
|
6686
6914
|
for (var i = 0; i < this._storage.length; i++) {
|
|
@@ -6692,122 +6920,124 @@ var LoadedSessionsStore = /*#__PURE__*/function () {
|
|
|
6692
6920
|
}
|
|
6693
6921
|
|
|
6694
6922
|
return -1;
|
|
6695
|
-
};
|
|
6696
|
-
|
|
6697
|
-
return LoadedSessionsStore;
|
|
6698
|
-
}();
|
|
6699
|
-
/**
|
|
6700
|
-
* Close a MediaKeySession with multiple attempts if needed and do not throw if
|
|
6701
|
-
* this action throws an error.
|
|
6702
|
-
* Emits then complete when done.
|
|
6703
|
-
* @param {MediaKeySession} mediaKeySession
|
|
6704
|
-
* @returns {Observable}
|
|
6705
|
-
*/
|
|
6706
|
-
|
|
6707
|
-
|
|
6708
|
-
|
|
6709
|
-
|
|
6710
|
-
function safelyCloseMediaKeySession(mediaKeySession) {
|
|
6711
|
-
return recursivelyTryToCloseMediaKeySession(0);
|
|
6712
|
-
/**
|
|
6713
|
-
* Perform a new attempt at closing the MediaKeySession.
|
|
6714
|
-
* If this operation fails due to a not-"callable" (an EME term)
|
|
6715
|
-
* MediaKeySession, retry based on either a timer or on MediaKeySession
|
|
6716
|
-
* events, whichever comes first.
|
|
6717
|
-
* Emits then complete when done.
|
|
6718
|
-
* @param {number} retryNb - The attempt number starting at 0.
|
|
6719
|
-
* @returns {Observable}
|
|
6720
|
-
*/
|
|
6721
|
-
|
|
6722
|
-
function recursivelyTryToCloseMediaKeySession(_x2) {
|
|
6723
|
-
return _recursivelyTryToCloseMediaKeySession.apply(this, arguments);
|
|
6724
6923
|
}
|
|
6725
6924
|
/**
|
|
6726
|
-
*
|
|
6727
|
-
*
|
|
6728
|
-
*
|
|
6729
|
-
*
|
|
6925
|
+
* Prepare the closure of a `MediaKeySession` stored as an entry of the
|
|
6926
|
+
* `LoadedSessionsStore`.
|
|
6927
|
+
* Allows to postpone the closure action if another MediaKeySession action
|
|
6928
|
+
* is already pending.
|
|
6929
|
+
* @param {Object} entry
|
|
6930
|
+
* @returns {Promise.<boolean>}
|
|
6730
6931
|
*/
|
|
6932
|
+
;
|
|
6731
6933
|
|
|
6732
|
-
|
|
6733
|
-
|
|
6734
|
-
|
|
6735
|
-
|
|
6736
|
-
|
|
6737
|
-
return regenerator_default().wrap(function
|
|
6934
|
+
_proto._closeEntry =
|
|
6935
|
+
/*#__PURE__*/
|
|
6936
|
+
function () {
|
|
6937
|
+
var _closeEntry2 = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee5(entry) {
|
|
6938
|
+
var mediaKeySession;
|
|
6939
|
+
return regenerator_default().wrap(function _callee5$(_context5) {
|
|
6738
6940
|
while (1) {
|
|
6739
|
-
switch (
|
|
6941
|
+
switch (_context5.prev = _context5.next) {
|
|
6740
6942
|
case 0:
|
|
6741
|
-
|
|
6742
|
-
|
|
6743
|
-
|
|
6744
|
-
|
|
6943
|
+
mediaKeySession = entry.mediaKeySession;
|
|
6944
|
+
return _context5.abrupt("return", new Promise(function (resolve, reject) {
|
|
6945
|
+
if (entry !== undefined && (entry.isLoadingPersistentSession || entry.isGeneratingRequest)) {
|
|
6946
|
+
entry.closingStatus = {
|
|
6947
|
+
type: "awaiting",
|
|
6948
|
+
start: tryClosingEntryAndResolve
|
|
6949
|
+
};
|
|
6950
|
+
} else {
|
|
6951
|
+
tryClosingEntryAndResolve();
|
|
6952
|
+
}
|
|
6745
6953
|
|
|
6746
|
-
|
|
6747
|
-
|
|
6748
|
-
|
|
6954
|
+
function tryClosingEntryAndResolve() {
|
|
6955
|
+
if (entry !== undefined) {
|
|
6956
|
+
entry.closingStatus = {
|
|
6957
|
+
type: "pending"
|
|
6958
|
+
};
|
|
6959
|
+
}
|
|
6749
6960
|
|
|
6750
|
-
|
|
6751
|
-
|
|
6752
|
-
|
|
6961
|
+
safelyCloseMediaKeySession(mediaKeySession).then(function () {
|
|
6962
|
+
if (entry !== undefined) {
|
|
6963
|
+
entry.closingStatus = {
|
|
6964
|
+
type: "done"
|
|
6965
|
+
};
|
|
6966
|
+
}
|
|
6753
6967
|
|
|
6754
|
-
|
|
6755
|
-
|
|
6756
|
-
|
|
6757
|
-
|
|
6968
|
+
resolve(true);
|
|
6969
|
+
})["catch"](function (err) {
|
|
6970
|
+
if (entry !== undefined) {
|
|
6971
|
+
entry.closingStatus = {
|
|
6972
|
+
type: "failed"
|
|
6973
|
+
};
|
|
6974
|
+
}
|
|
6758
6975
|
|
|
6759
|
-
|
|
6976
|
+
reject(err);
|
|
6977
|
+
});
|
|
6978
|
+
}
|
|
6979
|
+
}));
|
|
6760
6980
|
|
|
6761
|
-
case
|
|
6762
|
-
|
|
6763
|
-
|
|
6764
|
-
|
|
6765
|
-
|
|
6981
|
+
case 2:
|
|
6982
|
+
case "end":
|
|
6983
|
+
return _context5.stop();
|
|
6984
|
+
}
|
|
6985
|
+
}
|
|
6986
|
+
}, _callee5);
|
|
6987
|
+
}));
|
|
6766
6988
|
|
|
6767
|
-
|
|
6989
|
+
function _closeEntry(_x7) {
|
|
6990
|
+
return _closeEntry2.apply(this, arguments);
|
|
6991
|
+
}
|
|
6768
6992
|
|
|
6769
|
-
|
|
6770
|
-
|
|
6771
|
-
break;
|
|
6772
|
-
}
|
|
6993
|
+
return _closeEntry;
|
|
6994
|
+
}();
|
|
6773
6995
|
|
|
6774
|
-
|
|
6996
|
+
return LoadedSessionsStore;
|
|
6997
|
+
}();
|
|
6998
|
+
/**
|
|
6999
|
+
* Close a MediaKeySession and just log an error if it fails (while resolving).
|
|
7000
|
+
* Emits then complete when done.
|
|
7001
|
+
* @param {MediaKeySession} mediaKeySession
|
|
7002
|
+
* @returns {Observable}
|
|
7003
|
+
*/
|
|
6775
7004
|
|
|
6776
|
-
case 16:
|
|
6777
|
-
delay = Math.min(Math.pow(2, retryNb) * EME_SESSION_CLOSING_INITIAL_DELAY, EME_SESSION_CLOSING_MAX_DELAY);
|
|
6778
|
-
log/* default.warn */.Z.warn("DRM: attempt to close a mediaKeySession failed, " + "scheduling retry...", delay);
|
|
6779
|
-
ksChangeProm = new Promise(function (res) {
|
|
6780
|
-
ksChangeSub = (0,event_listeners/* onKeyStatusesChange$ */.eX)(mediaKeySession).subscribe(res);
|
|
6781
|
-
});
|
|
6782
|
-
ksMsgProm = new Promise(function (res) {
|
|
6783
|
-
ksMsgSub = (0,event_listeners/* onKeyMessage$ */.GJ)(mediaKeySession).subscribe(res);
|
|
6784
|
-
});
|
|
6785
|
-
sleepProm = new Promise(function (res) {
|
|
6786
|
-
sleepTimer = window.setTimeout(res, delay);
|
|
6787
|
-
});
|
|
6788
|
-
_context3.next = 23;
|
|
6789
|
-
return pinkie_default().race([ksChangeProm, ksMsgProm, sleepProm]);
|
|
6790
7005
|
|
|
6791
|
-
case 23:
|
|
6792
|
-
ksChangeSub === null || ksChangeSub === void 0 ? void 0 : ksChangeSub.unsubscribe();
|
|
6793
|
-
ksMsgSub === null || ksMsgSub === void 0 ? void 0 : ksMsgSub.unsubscribe();
|
|
6794
|
-
clearTimeout(sleepTimer);
|
|
6795
|
-
return _context3.abrupt("return", recursivelyTryToCloseMediaKeySession(nextRetryNb));
|
|
6796
7006
|
|
|
6797
|
-
case 27:
|
|
6798
|
-
case "end":
|
|
6799
|
-
return _context3.stop();
|
|
6800
|
-
}
|
|
6801
|
-
}
|
|
6802
|
-
}, _callee3, null, [[1, 8]]);
|
|
6803
|
-
}));
|
|
6804
|
-
return _recursivelyTryToCloseMediaKeySession.apply(this, arguments);
|
|
6805
|
-
}
|
|
6806
7007
|
|
|
6807
|
-
|
|
6808
|
-
|
|
6809
|
-
|
|
6810
|
-
|
|
7008
|
+
function safelyCloseMediaKeySession(_x8) {
|
|
7009
|
+
return _safelyCloseMediaKeySession.apply(this, arguments);
|
|
7010
|
+
}
|
|
7011
|
+
|
|
7012
|
+
function _safelyCloseMediaKeySession() {
|
|
7013
|
+
_safelyCloseMediaKeySession = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee6(mediaKeySession) {
|
|
7014
|
+
return regenerator_default().wrap(function _callee6$(_context6) {
|
|
7015
|
+
while (1) {
|
|
7016
|
+
switch (_context6.prev = _context6.next) {
|
|
7017
|
+
case 0:
|
|
7018
|
+
log/* default.debug */.Z.debug("DRM: Trying to close a MediaKeySession", mediaKeySession.sessionId);
|
|
7019
|
+
_context6.prev = 1;
|
|
7020
|
+
_context6.next = 4;
|
|
7021
|
+
return closeSession(mediaKeySession);
|
|
7022
|
+
|
|
7023
|
+
case 4:
|
|
7024
|
+
log/* default.debug */.Z.debug("DRM: Succeeded to close MediaKeySession");
|
|
7025
|
+
return _context6.abrupt("return");
|
|
7026
|
+
|
|
7027
|
+
case 8:
|
|
7028
|
+
_context6.prev = 8;
|
|
7029
|
+
_context6.t0 = _context6["catch"](1);
|
|
7030
|
+
log/* default.error */.Z.error("DRM: Could not close MediaKeySession: " + (_context6.t0 instanceof Error ? _context6.t0.toString() : "Unknown error"));
|
|
7031
|
+
return _context6.abrupt("return");
|
|
7032
|
+
|
|
7033
|
+
case 12:
|
|
7034
|
+
case "end":
|
|
7035
|
+
return _context6.stop();
|
|
7036
|
+
}
|
|
7037
|
+
}
|
|
7038
|
+
}, _callee6, null, [[1, 8]]);
|
|
7039
|
+
}));
|
|
7040
|
+
return _safelyCloseMediaKeySession.apply(this, arguments);
|
|
6811
7041
|
}
|
|
6812
7042
|
// EXTERNAL MODULE: ./src/utils/assert.ts
|
|
6813
7043
|
var assert = __webpack_require__(811);
|
|
@@ -8830,7 +9060,6 @@ function content_decryptor_arrayLikeToArray(arr, len) { if (len == null || len >
|
|
|
8830
9060
|
|
|
8831
9061
|
|
|
8832
9062
|
|
|
8833
|
-
|
|
8834
9063
|
|
|
8835
9064
|
var onEncrypted$ = event_listeners/* onEncrypted$ */.Oh;
|
|
8836
9065
|
/**
|
|
@@ -9127,7 +9356,7 @@ var ContentDecryptor = /*#__PURE__*/function (_EventEmitter) {
|
|
|
9127
9356
|
var _processInitializationData2 = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee2(initializationData, mediaKeysData) {
|
|
9128
9357
|
var _this4 = this;
|
|
9129
9358
|
|
|
9130
|
-
var mediaKeySystemAccess, stores, options, firstCreatedSession, keyIds, hexKids, period, createdSessions, periodKeys, _iterator, _step, createdSess, periodKeysArr, _i, _periodKeysArr, kid, _iterator2, _step2, innerKid, wantedSessionType, _config$getCurrent, EME_DEFAULT_MAX_SIMULTANEOUS_MEDIA_KEY_SESSIONS, EME_MAX_STORED_PERSISTENT_SESSION_INFORMATION, maxSessionCacheSize, sessionRes, sessionInfo, _sessionRes$value, mediaKeySession, sessionType, isSessionPersisted, sub, requestData;
|
|
9359
|
+
var mediaKeySystemAccess, stores, options, firstCreatedSession, keyIds, hexKids, period, createdSessions, periodKeys, _iterator, _step, createdSess, periodKeysArr, _i, _periodKeysArr, kid, _iterator2, _step2, innerKid, wantedSessionType, _config$getCurrent, EME_DEFAULT_MAX_SIMULTANEOUS_MEDIA_KEY_SESSIONS, EME_MAX_STORED_PERSISTENT_SESSION_INFORMATION, maxSessionCacheSize, sessionRes, sessionInfo, _sessionRes$value, mediaKeySession, sessionType, isSessionPersisted, sub, requestData, entry, indexInCurrent;
|
|
9131
9360
|
|
|
9132
9361
|
return regenerator_default().wrap(function _callee2$(_context2) {
|
|
9133
9362
|
while (1) {
|
|
@@ -9389,28 +9618,47 @@ var ContentDecryptor = /*#__PURE__*/function (_EventEmitter) {
|
|
|
9389
9618
|
if (!(sessionRes.type === "created-session"
|
|
9390
9619
|
/* Created */
|
|
9391
9620
|
)) {
|
|
9392
|
-
_context2.next =
|
|
9621
|
+
_context2.next = 68;
|
|
9393
9622
|
break;
|
|
9394
9623
|
}
|
|
9395
9624
|
|
|
9396
9625
|
requestData = initializationData.values.constructRequestData();
|
|
9397
9626
|
_context2.prev = 55;
|
|
9398
9627
|
_context2.next = 58;
|
|
9399
|
-
return
|
|
9628
|
+
return stores.loadedSessionsStore.generateLicenseRequest(mediaKeySession, initializationData.type, requestData);
|
|
9400
9629
|
|
|
9401
9630
|
case 58:
|
|
9402
|
-
_context2.next =
|
|
9631
|
+
_context2.next = 68;
|
|
9403
9632
|
break;
|
|
9404
9633
|
|
|
9405
9634
|
case 60:
|
|
9406
9635
|
_context2.prev = 60;
|
|
9407
9636
|
_context2.t0 = _context2["catch"](55);
|
|
9637
|
+
// First check that the error was not due to the MediaKeySession closing
|
|
9638
|
+
// or being closed
|
|
9639
|
+
entry = stores.loadedSessionsStore.getEntryForSession(mediaKeySession);
|
|
9640
|
+
|
|
9641
|
+
if (!(entry === null || entry.closingStatus.type !== "none")) {
|
|
9642
|
+
_context2.next = 67;
|
|
9643
|
+
break;
|
|
9644
|
+
}
|
|
9645
|
+
|
|
9646
|
+
// MediaKeySession closing/closed: Just remove from handled list and abort.
|
|
9647
|
+
indexInCurrent = this._currentSessions.indexOf(sessionInfo);
|
|
9648
|
+
|
|
9649
|
+
if (indexInCurrent >= 0) {
|
|
9650
|
+
this._currentSessions.splice(indexInCurrent, 1);
|
|
9651
|
+
}
|
|
9652
|
+
|
|
9653
|
+
return _context2.abrupt("return", Promise.resolve());
|
|
9654
|
+
|
|
9655
|
+
case 67:
|
|
9408
9656
|
throw new encrypted_media_error/* default */.Z("KEY_GENERATE_REQUEST_ERROR", _context2.t0 instanceof Error ? _context2.t0.toString() : "Unknown error");
|
|
9409
9657
|
|
|
9410
|
-
case
|
|
9411
|
-
return _context2.abrupt("return",
|
|
9658
|
+
case 68:
|
|
9659
|
+
return _context2.abrupt("return", Promise.resolve());
|
|
9412
9660
|
|
|
9413
|
-
case
|
|
9661
|
+
case 69:
|
|
9414
9662
|
case "end":
|
|
9415
9663
|
return _context2.stop();
|
|
9416
9664
|
}
|
|
@@ -30909,13 +31157,19 @@ __webpack_require__.d(__webpack_exports__, {
|
|
|
30909
31157
|
var features = __webpack_require__(7874);
|
|
30910
31158
|
// EXTERNAL MODULE: ./src/transports/utils/generate_manifest_loader.ts + 1 modules
|
|
30911
31159
|
var generate_manifest_loader = __webpack_require__(8791);
|
|
30912
|
-
// EXTERNAL MODULE: ./
|
|
30913
|
-
var
|
|
31160
|
+
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js
|
|
31161
|
+
var asyncToGenerator = __webpack_require__(5861);
|
|
31162
|
+
// EXTERNAL MODULE: ./node_modules/@babel/runtime/regenerator/index.js
|
|
31163
|
+
var regenerator = __webpack_require__(7757);
|
|
31164
|
+
var regenerator_default = /*#__PURE__*/__webpack_require__.n(regenerator);
|
|
30914
31165
|
// EXTERNAL MODULE: ./src/utils/request/index.ts + 1 modules
|
|
30915
31166
|
var request = __webpack_require__(4597);
|
|
30916
31167
|
// EXTERNAL MODULE: ./src/utils/take_first_set.ts
|
|
30917
31168
|
var take_first_set = __webpack_require__(5278);
|
|
30918
31169
|
;// CONCATENATED MODULE: ./src/transports/dash/image_pipelines.ts
|
|
31170
|
+
|
|
31171
|
+
|
|
31172
|
+
|
|
30919
31173
|
/**
|
|
30920
31174
|
* Copyright 2015 CANAL+ Group
|
|
30921
31175
|
*
|
|
@@ -30934,7 +31188,6 @@ var take_first_set = __webpack_require__(5278);
|
|
|
30934
31188
|
|
|
30935
31189
|
|
|
30936
31190
|
|
|
30937
|
-
|
|
30938
31191
|
/**
|
|
30939
31192
|
* Loads an image segment.
|
|
30940
31193
|
* @param {string|null} url
|
|
@@ -30944,34 +31197,61 @@ var take_first_set = __webpack_require__(5278);
|
|
|
30944
31197
|
* @returns {Promise}
|
|
30945
31198
|
*/
|
|
30946
31199
|
|
|
30947
|
-
function imageLoader(
|
|
30948
|
-
|
|
30949
|
-
|
|
30950
|
-
if (segment.isInit || url === null) {
|
|
30951
|
-
return promise/* default.resolve */.Z.resolve({
|
|
30952
|
-
resultType: "segment-created",
|
|
30953
|
-
resultData: null
|
|
30954
|
-
});
|
|
30955
|
-
}
|
|
30956
|
-
|
|
30957
|
-
return (0,request/* default */.ZP)({
|
|
30958
|
-
url: url,
|
|
30959
|
-
responseType: "arraybuffer",
|
|
30960
|
-
onProgress: callbacks.onProgress,
|
|
30961
|
-
cancelSignal: cancelSignal
|
|
30962
|
-
}).then(function (data) {
|
|
30963
|
-
return {
|
|
30964
|
-
resultType: "segment-loaded",
|
|
30965
|
-
resultData: data
|
|
30966
|
-
};
|
|
30967
|
-
});
|
|
31200
|
+
function imageLoader(_x, _x2, _x3, _x4) {
|
|
31201
|
+
return _imageLoader.apply(this, arguments);
|
|
30968
31202
|
}
|
|
30969
31203
|
/**
|
|
30970
31204
|
* Parses an image segment.
|
|
30971
|
-
* @param {Object}
|
|
31205
|
+
* @param {Object} loadedSegment
|
|
31206
|
+
* @param {Object} content
|
|
30972
31207
|
* @returns {Object}
|
|
30973
31208
|
*/
|
|
30974
31209
|
|
|
31210
|
+
function _imageLoader() {
|
|
31211
|
+
_imageLoader = (0,asyncToGenerator/* default */.Z)( /*#__PURE__*/regenerator_default().mark(function _callee(url, content, cancelSignal, callbacks) {
|
|
31212
|
+
var segment, data;
|
|
31213
|
+
return regenerator_default().wrap(function _callee$(_context) {
|
|
31214
|
+
while (1) {
|
|
31215
|
+
switch (_context.prev = _context.next) {
|
|
31216
|
+
case 0:
|
|
31217
|
+
segment = content.segment;
|
|
31218
|
+
|
|
31219
|
+
if (!(segment.isInit || url === null)) {
|
|
31220
|
+
_context.next = 3;
|
|
31221
|
+
break;
|
|
31222
|
+
}
|
|
31223
|
+
|
|
31224
|
+
return _context.abrupt("return", {
|
|
31225
|
+
resultType: "segment-created",
|
|
31226
|
+
resultData: null
|
|
31227
|
+
});
|
|
31228
|
+
|
|
31229
|
+
case 3:
|
|
31230
|
+
_context.next = 5;
|
|
31231
|
+
return (0,request/* default */.ZP)({
|
|
31232
|
+
url: url,
|
|
31233
|
+
responseType: "arraybuffer",
|
|
31234
|
+
onProgress: callbacks.onProgress,
|
|
31235
|
+
cancelSignal: cancelSignal
|
|
31236
|
+
});
|
|
31237
|
+
|
|
31238
|
+
case 5:
|
|
31239
|
+
data = _context.sent;
|
|
31240
|
+
return _context.abrupt("return", {
|
|
31241
|
+
resultType: "segment-loaded",
|
|
31242
|
+
resultData: data
|
|
31243
|
+
});
|
|
31244
|
+
|
|
31245
|
+
case 7:
|
|
31246
|
+
case "end":
|
|
31247
|
+
return _context.stop();
|
|
31248
|
+
}
|
|
31249
|
+
}
|
|
31250
|
+
}, _callee);
|
|
31251
|
+
}));
|
|
31252
|
+
return _imageLoader.apply(this, arguments);
|
|
31253
|
+
}
|
|
31254
|
+
|
|
30975
31255
|
function imageParser(loadedSegment, content) {
|
|
30976
31256
|
var segment = content.segment,
|
|
30977
31257
|
period = content.period;
|
|
@@ -31064,7 +31344,6 @@ var string_parsing = __webpack_require__(3635);
|
|
|
31064
31344
|
|
|
31065
31345
|
|
|
31066
31346
|
|
|
31067
|
-
|
|
31068
31347
|
function generateManifestParser(options) {
|
|
31069
31348
|
var aggressiveMode = options.aggressiveMode,
|
|
31070
31349
|
referenceDateTime = options.referenceDateTime;
|
|
@@ -31149,7 +31428,7 @@ function generateManifestParser(options) {
|
|
|
31149
31428
|
}
|
|
31150
31429
|
|
|
31151
31430
|
if (cancelSignal.isCancelled) {
|
|
31152
|
-
return
|
|
31431
|
+
return Promise.reject(cancelSignal.cancellationError);
|
|
31153
31432
|
}
|
|
31154
31433
|
|
|
31155
31434
|
var manifest = new src_manifest/* default */.ZP(parserResponse.value.parsed, options);
|
|
@@ -31210,7 +31489,7 @@ function generateManifestParser(options) {
|
|
|
31210
31489
|
});
|
|
31211
31490
|
});
|
|
31212
31491
|
});
|
|
31213
|
-
return
|
|
31492
|
+
return Promise.all(externalResources).then(function (loadedResources) {
|
|
31214
31493
|
if (value.format === "string") {
|
|
31215
31494
|
assertLoadedResourcesFormatString(loadedResources);
|
|
31216
31495
|
return processMpdParserResponse(value["continue"](loadedResources));
|
|
@@ -31342,11 +31621,6 @@ function doesXmlSeemsUtf8Encoded(xmlData) {
|
|
|
31342
31621
|
}
|
|
31343
31622
|
// EXTERNAL MODULE: ./src/errors/custom_loader_error.ts
|
|
31344
31623
|
var custom_loader_error = __webpack_require__(7839);
|
|
31345
|
-
// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js
|
|
31346
|
-
var asyncToGenerator = __webpack_require__(5861);
|
|
31347
|
-
// EXTERNAL MODULE: ./node_modules/@babel/runtime/regenerator/index.js
|
|
31348
|
-
var regenerator = __webpack_require__(7757);
|
|
31349
|
-
var regenerator_default = /*#__PURE__*/__webpack_require__.n(regenerator);
|
|
31350
31624
|
// EXTERNAL MODULE: ./src/config.ts + 2 modules
|
|
31351
31625
|
var config = __webpack_require__(6872);
|
|
31352
31626
|
// EXTERNAL MODULE: ./src/errors/request_error.ts
|
|
@@ -31623,7 +31897,6 @@ var check_isobmff_integrity = __webpack_require__(4460);
|
|
|
31623
31897
|
|
|
31624
31898
|
|
|
31625
31899
|
|
|
31626
|
-
|
|
31627
31900
|
/**
|
|
31628
31901
|
* Add multiple checks on the response given by the `segmentLoader` in argument.
|
|
31629
31902
|
* If the response appear to be corrupted, the returned Promise will reject with
|
|
@@ -31634,7 +31907,7 @@ var check_isobmff_integrity = __webpack_require__(4460);
|
|
|
31634
31907
|
|
|
31635
31908
|
function addSegmentIntegrityChecks(segmentLoader) {
|
|
31636
31909
|
return function (url, content, initialCancelSignal, callbacks) {
|
|
31637
|
-
return new
|
|
31910
|
+
return new Promise(function (res, rej) {
|
|
31638
31911
|
var canceller = new task_canceller/* default */.ZP();
|
|
31639
31912
|
var unregisterCancelLstnr = initialCancelSignal.register(function onCheckCancellation(err) {
|
|
31640
31913
|
canceller.cancel();
|
|
@@ -31711,7 +31984,6 @@ var byte_parsing = __webpack_require__(6968);
|
|
|
31711
31984
|
|
|
31712
31985
|
|
|
31713
31986
|
|
|
31714
|
-
|
|
31715
31987
|
/**
|
|
31716
31988
|
* Perform a request for an initialization segment, agnostic to the container.
|
|
31717
31989
|
* @param {string} url
|
|
@@ -31789,7 +32061,7 @@ function initSegmentLoader(url, segment, cancelSignal, callbacks) {
|
|
|
31789
32061
|
cancelSignal: cancelSignal,
|
|
31790
32062
|
onProgress: callbacks.onProgress
|
|
31791
32063
|
});
|
|
31792
|
-
return
|
|
32064
|
+
return Promise.all([rangeRequest$, indexRequest$]).then(function (_ref) {
|
|
31793
32065
|
var initData = _ref[0],
|
|
31794
32066
|
indexData = _ref[1];
|
|
31795
32067
|
var data = (0,byte_parsing/* concat */.zo)(new Uint8Array(initData.responseData), new Uint8Array(indexData.responseData));
|
|
@@ -31990,10 +32262,9 @@ function lowLatencySegmentLoader(url, content, callbacks, cancelSignal) {
|
|
|
31990
32262
|
|
|
31991
32263
|
|
|
31992
32264
|
|
|
31993
|
-
|
|
31994
32265
|
/**
|
|
31995
32266
|
* Segment loader triggered if there was no custom-defined one in the API.
|
|
31996
|
-
* @param {string}
|
|
32267
|
+
* @param {string} url
|
|
31997
32268
|
* @param {Object} content
|
|
31998
32269
|
* @param {boolean} lowLatencyMode
|
|
31999
32270
|
* @param {Object} callbacks
|
|
@@ -32049,7 +32320,7 @@ function generateSegmentLoader(_ref) {
|
|
|
32049
32320
|
|
|
32050
32321
|
function segmentLoader(url, content, cancelSignal, callbacks) {
|
|
32051
32322
|
if (url == null) {
|
|
32052
|
-
return
|
|
32323
|
+
return Promise.resolve({
|
|
32053
32324
|
resultType: "segment-created",
|
|
32054
32325
|
resultData: null
|
|
32055
32326
|
});
|
|
@@ -32068,7 +32339,7 @@ function generateSegmentLoader(_ref) {
|
|
|
32068
32339
|
transport: "dash",
|
|
32069
32340
|
url: url
|
|
32070
32341
|
};
|
|
32071
|
-
return new
|
|
32342
|
+
return new Promise(function (res, rej) {
|
|
32072
32343
|
/** `true` when the custom segmentLoader should not be active anymore. */
|
|
32073
32344
|
var hasFinished = false;
|
|
32074
32345
|
/**
|
|
@@ -32844,7 +33115,6 @@ function generateAudioVideoSegmentParser(_ref) {
|
|
|
32844
33115
|
|
|
32845
33116
|
|
|
32846
33117
|
|
|
32847
|
-
|
|
32848
33118
|
/**
|
|
32849
33119
|
* Perform requests for "text" segments
|
|
32850
33120
|
* @param {boolean} lowLatencyMode
|
|
@@ -32870,7 +33140,7 @@ function generateTextTrackLoader(_ref) {
|
|
|
32870
33140
|
var range = segment.range;
|
|
32871
33141
|
|
|
32872
33142
|
if (url === null) {
|
|
32873
|
-
return
|
|
33143
|
+
return Promise.resolve({
|
|
32874
33144
|
resultType: "segment-created",
|
|
32875
33145
|
resultData: null
|
|
32876
33146
|
});
|
|
@@ -35143,8 +35413,6 @@ function createPSSHBox(systemId, privateData) {
|
|
|
35143
35413
|
|
|
35144
35414
|
/* harmony default export */ var smooth = (create_parser);
|
|
35145
35415
|
|
|
35146
|
-
// EXTERNAL MODULE: ./src/utils/promise.ts
|
|
35147
|
-
var promise = __webpack_require__(9589);
|
|
35148
35416
|
// EXTERNAL MODULE: ./src/utils/request/index.ts + 1 modules
|
|
35149
35417
|
var request = __webpack_require__(4597);
|
|
35150
35418
|
// EXTERNAL MODULE: ./src/utils/warn_once.ts
|
|
@@ -36294,7 +36562,6 @@ function isMP4EmbeddedTrack(representation) {
|
|
|
36294
36562
|
|
|
36295
36563
|
|
|
36296
36564
|
|
|
36297
|
-
|
|
36298
36565
|
/**
|
|
36299
36566
|
* Segment loader triggered if there was no custom-defined one in the API.
|
|
36300
36567
|
* @param {string} uri
|
|
@@ -36408,12 +36675,12 @@ var generateSegmentLoader = function generateSegmentLoader(_ref) {
|
|
|
36408
36675
|
responseData = new Uint8Array(0);
|
|
36409
36676
|
}
|
|
36410
36677
|
|
|
36411
|
-
return
|
|
36678
|
+
return Promise.resolve({
|
|
36412
36679
|
resultType: "segment-created",
|
|
36413
36680
|
resultData: responseData
|
|
36414
36681
|
});
|
|
36415
36682
|
} else if (url === null) {
|
|
36416
|
-
return
|
|
36683
|
+
return Promise.resolve({
|
|
36417
36684
|
resultType: "segment-created",
|
|
36418
36685
|
resultData: null
|
|
36419
36686
|
});
|
|
@@ -36432,7 +36699,7 @@ var generateSegmentLoader = function generateSegmentLoader(_ref) {
|
|
|
36432
36699
|
return regularSegmentLoader(url, content, callbacks, cancelSignal, checkMediaSegmentIntegrity);
|
|
36433
36700
|
}
|
|
36434
36701
|
|
|
36435
|
-
return new
|
|
36702
|
+
return new Promise(function (res, rej) {
|
|
36436
36703
|
/** `true` when the custom segmentLoader should not be active anymore. */
|
|
36437
36704
|
var hasFinished = false;
|
|
36438
36705
|
/**
|
|
@@ -36580,7 +36847,6 @@ var generateSegmentLoader = function generateSegmentLoader(_ref) {
|
|
|
36580
36847
|
|
|
36581
36848
|
|
|
36582
36849
|
|
|
36583
|
-
|
|
36584
36850
|
var WSX_REG = /\.wsx?(\?token=\S+)?/;
|
|
36585
36851
|
/**
|
|
36586
36852
|
* @param {Object} adaptation
|
|
@@ -36616,7 +36882,7 @@ function addNextSegments(adaptation, nextSegments, dlSegment) {
|
|
|
36616
36882
|
// TODO (v4.x.x) Remove that function
|
|
36617
36883
|
resolveManifestUrl: function resolveManifestUrl(url, cancelSignal) {
|
|
36618
36884
|
if (url === undefined) {
|
|
36619
|
-
return
|
|
36885
|
+
return Promise.resolve(undefined);
|
|
36620
36886
|
}
|
|
36621
36887
|
|
|
36622
36888
|
var resolving;
|
|
@@ -36637,7 +36903,7 @@ function addNextSegments(adaptation, nextSegments, dlSegment) {
|
|
|
36637
36903
|
return extractedURL;
|
|
36638
36904
|
});
|
|
36639
36905
|
} else {
|
|
36640
|
-
resolving =
|
|
36906
|
+
resolving = Promise.resolve(url);
|
|
36641
36907
|
}
|
|
36642
36908
|
|
|
36643
36909
|
var token = extractToken(url);
|
|
@@ -36761,7 +37027,7 @@ function addNextSegments(adaptation, nextSegments, dlSegment) {
|
|
|
36761
37027
|
representation = content.representation;
|
|
36762
37028
|
|
|
36763
37029
|
if (segment.isInit || url === null) {
|
|
36764
|
-
return
|
|
37030
|
+
return Promise.resolve({
|
|
36765
37031
|
resultType: "segment-created",
|
|
36766
37032
|
resultData: null
|
|
36767
37033
|
});
|
|
@@ -37286,8 +37552,6 @@ var assert_unreachable = __webpack_require__(7904);
|
|
|
37286
37552
|
var request = __webpack_require__(4597);
|
|
37287
37553
|
// EXTERNAL MODULE: ./src/errors/custom_loader_error.ts
|
|
37288
37554
|
var custom_loader_error = __webpack_require__(7839);
|
|
37289
|
-
// EXTERNAL MODULE: ./src/utils/promise.ts
|
|
37290
|
-
var promise = __webpack_require__(9589);
|
|
37291
37555
|
;// CONCATENATED MODULE: ./src/transports/utils/call_custom_manifest_loader.ts
|
|
37292
37556
|
/**
|
|
37293
37557
|
* Copyright 2015 CANAL+ Group
|
|
@@ -37305,10 +37569,9 @@ var promise = __webpack_require__(9589);
|
|
|
37305
37569
|
* limitations under the License.
|
|
37306
37570
|
*/
|
|
37307
37571
|
|
|
37308
|
-
|
|
37309
37572
|
function callCustomManifestLoader(customManifestLoader, fallbackManifestLoader) {
|
|
37310
37573
|
return function (url, cancelSignal) {
|
|
37311
|
-
return new
|
|
37574
|
+
return new Promise(function (res, rej) {
|
|
37312
37575
|
var timeAPIsDelta = Date.now() - performance.now();
|
|
37313
37576
|
/** `true` when the custom segmentLoader should not be active anymore. */
|
|
37314
37577
|
|
|
@@ -38315,7 +38578,6 @@ function toUint8Array(input) {
|
|
|
38315
38578
|
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
|
|
38316
38579
|
/* harmony export */ "Z": function() { return /* binding */ cancellableSleep; }
|
|
38317
38580
|
/* harmony export */ });
|
|
38318
|
-
/* harmony import */ var _promise__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(9589);
|
|
38319
38581
|
/**
|
|
38320
38582
|
* Copyright 2015 CANAL+ Group
|
|
38321
38583
|
*
|
|
@@ -38345,9 +38607,8 @@ function toUint8Array(input) {
|
|
|
38345
38607
|
* @returns {Promise} - Resolve on timeout completion, rejects on timeout
|
|
38346
38608
|
* cancellation with the corresponding `CancellationError`.
|
|
38347
38609
|
*/
|
|
38348
|
-
|
|
38349
38610
|
function cancellableSleep(delay, cancellationSignal) {
|
|
38350
|
-
return new
|
|
38611
|
+
return new Promise(function (res, rej) {
|
|
38351
38612
|
var timeout = setTimeout(function () {
|
|
38352
38613
|
unregisterCancelSignal();
|
|
38353
38614
|
res();
|
|
@@ -38366,10 +38627,9 @@ function cancellableSleep(delay, cancellationSignal) {
|
|
|
38366
38627
|
|
|
38367
38628
|
"use strict";
|
|
38368
38629
|
/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(1480);
|
|
38369
|
-
/* harmony import */ var
|
|
38370
|
-
/* harmony import */ var
|
|
38371
|
-
/* harmony import */ var
|
|
38372
|
-
/* harmony import */ var _promise__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(9589);
|
|
38630
|
+
/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(3102);
|
|
38631
|
+
/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(2817);
|
|
38632
|
+
/* harmony import */ var _is_null_or_undefined__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(1946);
|
|
38373
38633
|
/**
|
|
38374
38634
|
* Copyright 2015 CANAL+ Group
|
|
38375
38635
|
*
|
|
@@ -38387,7 +38647,6 @@ function cancellableSleep(delay, cancellationSignal) {
|
|
|
38387
38647
|
*/
|
|
38388
38648
|
|
|
38389
38649
|
|
|
38390
|
-
|
|
38391
38650
|
/**
|
|
38392
38651
|
* Try to cast the given value into an observable.
|
|
38393
38652
|
* StraightForward - test first for an Observable then for a Promise.
|
|
@@ -38398,11 +38657,11 @@ function cancellableSleep(delay, cancellationSignal) {
|
|
|
38398
38657
|
function castToObservable(value) {
|
|
38399
38658
|
if (value instanceof rxjs__WEBPACK_IMPORTED_MODULE_0__/* .Observable */ .y) {
|
|
38400
38659
|
return value;
|
|
38401
|
-
} else if (value instanceof
|
|
38402
|
-
return (0,
|
|
38660
|
+
} else if (value instanceof Promise || !(0,_is_null_or_undefined__WEBPACK_IMPORTED_MODULE_1__/* ["default"] */ .Z)(value) && typeof value.then === "function") {
|
|
38661
|
+
return (0,rxjs__WEBPACK_IMPORTED_MODULE_2__/* .from */ .D)(value);
|
|
38403
38662
|
}
|
|
38404
38663
|
|
|
38405
|
-
return (0,
|
|
38664
|
+
return (0,rxjs__WEBPACK_IMPORTED_MODULE_3__.of)(value);
|
|
38406
38665
|
}
|
|
38407
38666
|
|
|
38408
38667
|
/* harmony default export */ __webpack_exports__["Z"] = (castToObservable);
|
|
@@ -39669,32 +39928,6 @@ function objectValues(o) {
|
|
|
39669
39928
|
/* harmony default export */ __webpack_exports__["Z"] = (typeof Object.values === "function" ? Object.values : objectValues);
|
|
39670
39929
|
|
|
39671
39930
|
|
|
39672
|
-
/***/ }),
|
|
39673
|
-
|
|
39674
|
-
/***/ 9589:
|
|
39675
|
-
/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
|
|
39676
|
-
|
|
39677
|
-
"use strict";
|
|
39678
|
-
/* harmony import */ var pinkie__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(8555);
|
|
39679
|
-
/* harmony import */ var pinkie__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(pinkie__WEBPACK_IMPORTED_MODULE_0__);
|
|
39680
|
-
/**
|
|
39681
|
-
* Copyright 2015 CANAL+ Group
|
|
39682
|
-
*
|
|
39683
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
39684
|
-
* you may not use this file except in compliance with the License.
|
|
39685
|
-
* You may obtain a copy of the License at
|
|
39686
|
-
*
|
|
39687
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
39688
|
-
*
|
|
39689
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
39690
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
39691
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
39692
|
-
* See the License for the specific language governing permissions and
|
|
39693
|
-
* limitations under the License.
|
|
39694
|
-
*/
|
|
39695
|
-
|
|
39696
|
-
/* harmony default export */ __webpack_exports__["Z"] = (typeof Promise === "function" ? Promise : (pinkie__WEBPACK_IMPORTED_MODULE_0___default()));
|
|
39697
|
-
|
|
39698
39931
|
/***/ }),
|
|
39699
39932
|
|
|
39700
39933
|
/***/ 2829:
|
|
@@ -40481,8 +40714,6 @@ var request_error = __webpack_require__(9105);
|
|
|
40481
40714
|
var is_non_empty_string = __webpack_require__(6923);
|
|
40482
40715
|
// EXTERNAL MODULE: ./src/utils/is_null_or_undefined.ts
|
|
40483
40716
|
var is_null_or_undefined = __webpack_require__(1946);
|
|
40484
|
-
// EXTERNAL MODULE: ./src/utils/promise.ts
|
|
40485
|
-
var promise = __webpack_require__(9589);
|
|
40486
40717
|
;// CONCATENATED MODULE: ./src/utils/request/xhr.ts
|
|
40487
40718
|
/**
|
|
40488
40719
|
* Copyright 2015 CANAL+ Group
|
|
@@ -40503,7 +40734,6 @@ var promise = __webpack_require__(9589);
|
|
|
40503
40734
|
|
|
40504
40735
|
|
|
40505
40736
|
|
|
40506
|
-
|
|
40507
40737
|
var DEFAULT_RESPONSE_TYPE = "json";
|
|
40508
40738
|
function request(options) {
|
|
40509
40739
|
var _config$getCurrent = config/* default.getCurrent */.Z.getCurrent(),
|
|
@@ -40515,7 +40745,7 @@ function request(options) {
|
|
|
40515
40745
|
responseType: (0,is_null_or_undefined/* default */.Z)(options.responseType) ? DEFAULT_RESPONSE_TYPE : options.responseType,
|
|
40516
40746
|
timeout: (0,is_null_or_undefined/* default */.Z)(options.timeout) ? DEFAULT_REQUEST_TIMEOUT : options.timeout
|
|
40517
40747
|
};
|
|
40518
|
-
return new
|
|
40748
|
+
return new Promise(function (resolve, reject) {
|
|
40519
40749
|
var onProgress = options.onProgress,
|
|
40520
40750
|
cancelSignal = options.cancelSignal;
|
|
40521
40751
|
var url = requestOptions.url,
|
|
@@ -41834,306 +42064,6 @@ module.exports = (function () {
|
|
|
41834
42064
|
}());
|
|
41835
42065
|
|
|
41836
42066
|
|
|
41837
|
-
/***/ }),
|
|
41838
|
-
|
|
41839
|
-
/***/ 8555:
|
|
41840
|
-
/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
|
|
41841
|
-
|
|
41842
|
-
"use strict";
|
|
41843
|
-
|
|
41844
|
-
|
|
41845
|
-
var PENDING = 'pending';
|
|
41846
|
-
var SETTLED = 'settled';
|
|
41847
|
-
var FULFILLED = 'fulfilled';
|
|
41848
|
-
var REJECTED = 'rejected';
|
|
41849
|
-
var NOOP = function () {};
|
|
41850
|
-
var isNode = typeof __webpack_require__.g !== 'undefined' && typeof __webpack_require__.g.process !== 'undefined' && typeof __webpack_require__.g.process.emit === 'function';
|
|
41851
|
-
|
|
41852
|
-
var asyncSetTimer = typeof setImmediate === 'undefined' ? setTimeout : setImmediate;
|
|
41853
|
-
var asyncQueue = [];
|
|
41854
|
-
var asyncTimer;
|
|
41855
|
-
|
|
41856
|
-
function asyncFlush() {
|
|
41857
|
-
// run promise callbacks
|
|
41858
|
-
for (var i = 0; i < asyncQueue.length; i++) {
|
|
41859
|
-
asyncQueue[i][0](asyncQueue[i][1]);
|
|
41860
|
-
}
|
|
41861
|
-
|
|
41862
|
-
// reset async asyncQueue
|
|
41863
|
-
asyncQueue = [];
|
|
41864
|
-
asyncTimer = false;
|
|
41865
|
-
}
|
|
41866
|
-
|
|
41867
|
-
function asyncCall(callback, arg) {
|
|
41868
|
-
asyncQueue.push([callback, arg]);
|
|
41869
|
-
|
|
41870
|
-
if (!asyncTimer) {
|
|
41871
|
-
asyncTimer = true;
|
|
41872
|
-
asyncSetTimer(asyncFlush, 0);
|
|
41873
|
-
}
|
|
41874
|
-
}
|
|
41875
|
-
|
|
41876
|
-
function invokeResolver(resolver, promise) {
|
|
41877
|
-
function resolvePromise(value) {
|
|
41878
|
-
resolve(promise, value);
|
|
41879
|
-
}
|
|
41880
|
-
|
|
41881
|
-
function rejectPromise(reason) {
|
|
41882
|
-
reject(promise, reason);
|
|
41883
|
-
}
|
|
41884
|
-
|
|
41885
|
-
try {
|
|
41886
|
-
resolver(resolvePromise, rejectPromise);
|
|
41887
|
-
} catch (e) {
|
|
41888
|
-
rejectPromise(e);
|
|
41889
|
-
}
|
|
41890
|
-
}
|
|
41891
|
-
|
|
41892
|
-
function invokeCallback(subscriber) {
|
|
41893
|
-
var owner = subscriber.owner;
|
|
41894
|
-
var settled = owner._state;
|
|
41895
|
-
var value = owner._data;
|
|
41896
|
-
var callback = subscriber[settled];
|
|
41897
|
-
var promise = subscriber.then;
|
|
41898
|
-
|
|
41899
|
-
if (typeof callback === 'function') {
|
|
41900
|
-
settled = FULFILLED;
|
|
41901
|
-
try {
|
|
41902
|
-
value = callback(value);
|
|
41903
|
-
} catch (e) {
|
|
41904
|
-
reject(promise, e);
|
|
41905
|
-
}
|
|
41906
|
-
}
|
|
41907
|
-
|
|
41908
|
-
if (!handleThenable(promise, value)) {
|
|
41909
|
-
if (settled === FULFILLED) {
|
|
41910
|
-
resolve(promise, value);
|
|
41911
|
-
}
|
|
41912
|
-
|
|
41913
|
-
if (settled === REJECTED) {
|
|
41914
|
-
reject(promise, value);
|
|
41915
|
-
}
|
|
41916
|
-
}
|
|
41917
|
-
}
|
|
41918
|
-
|
|
41919
|
-
function handleThenable(promise, value) {
|
|
41920
|
-
var resolved;
|
|
41921
|
-
|
|
41922
|
-
try {
|
|
41923
|
-
if (promise === value) {
|
|
41924
|
-
throw new TypeError('A promises callback cannot return that same promise.');
|
|
41925
|
-
}
|
|
41926
|
-
|
|
41927
|
-
if (value && (typeof value === 'function' || typeof value === 'object')) {
|
|
41928
|
-
// then should be retrieved only once
|
|
41929
|
-
var then = value.then;
|
|
41930
|
-
|
|
41931
|
-
if (typeof then === 'function') {
|
|
41932
|
-
then.call(value, function (val) {
|
|
41933
|
-
if (!resolved) {
|
|
41934
|
-
resolved = true;
|
|
41935
|
-
|
|
41936
|
-
if (value === val) {
|
|
41937
|
-
fulfill(promise, val);
|
|
41938
|
-
} else {
|
|
41939
|
-
resolve(promise, val);
|
|
41940
|
-
}
|
|
41941
|
-
}
|
|
41942
|
-
}, function (reason) {
|
|
41943
|
-
if (!resolved) {
|
|
41944
|
-
resolved = true;
|
|
41945
|
-
|
|
41946
|
-
reject(promise, reason);
|
|
41947
|
-
}
|
|
41948
|
-
});
|
|
41949
|
-
|
|
41950
|
-
return true;
|
|
41951
|
-
}
|
|
41952
|
-
}
|
|
41953
|
-
} catch (e) {
|
|
41954
|
-
if (!resolved) {
|
|
41955
|
-
reject(promise, e);
|
|
41956
|
-
}
|
|
41957
|
-
|
|
41958
|
-
return true;
|
|
41959
|
-
}
|
|
41960
|
-
|
|
41961
|
-
return false;
|
|
41962
|
-
}
|
|
41963
|
-
|
|
41964
|
-
function resolve(promise, value) {
|
|
41965
|
-
if (promise === value || !handleThenable(promise, value)) {
|
|
41966
|
-
fulfill(promise, value);
|
|
41967
|
-
}
|
|
41968
|
-
}
|
|
41969
|
-
|
|
41970
|
-
function fulfill(promise, value) {
|
|
41971
|
-
if (promise._state === PENDING) {
|
|
41972
|
-
promise._state = SETTLED;
|
|
41973
|
-
promise._data = value;
|
|
41974
|
-
|
|
41975
|
-
asyncCall(publishFulfillment, promise);
|
|
41976
|
-
}
|
|
41977
|
-
}
|
|
41978
|
-
|
|
41979
|
-
function reject(promise, reason) {
|
|
41980
|
-
if (promise._state === PENDING) {
|
|
41981
|
-
promise._state = SETTLED;
|
|
41982
|
-
promise._data = reason;
|
|
41983
|
-
|
|
41984
|
-
asyncCall(publishRejection, promise);
|
|
41985
|
-
}
|
|
41986
|
-
}
|
|
41987
|
-
|
|
41988
|
-
function publish(promise) {
|
|
41989
|
-
promise._then = promise._then.forEach(invokeCallback);
|
|
41990
|
-
}
|
|
41991
|
-
|
|
41992
|
-
function publishFulfillment(promise) {
|
|
41993
|
-
promise._state = FULFILLED;
|
|
41994
|
-
publish(promise);
|
|
41995
|
-
}
|
|
41996
|
-
|
|
41997
|
-
function publishRejection(promise) {
|
|
41998
|
-
promise._state = REJECTED;
|
|
41999
|
-
publish(promise);
|
|
42000
|
-
if (!promise._handled && isNode) {
|
|
42001
|
-
__webpack_require__.g.process.emit('unhandledRejection', promise._data, promise);
|
|
42002
|
-
}
|
|
42003
|
-
}
|
|
42004
|
-
|
|
42005
|
-
function notifyRejectionHandled(promise) {
|
|
42006
|
-
__webpack_require__.g.process.emit('rejectionHandled', promise);
|
|
42007
|
-
}
|
|
42008
|
-
|
|
42009
|
-
/**
|
|
42010
|
-
* @class
|
|
42011
|
-
*/
|
|
42012
|
-
function Promise(resolver) {
|
|
42013
|
-
if (typeof resolver !== 'function') {
|
|
42014
|
-
throw new TypeError('Promise resolver ' + resolver + ' is not a function');
|
|
42015
|
-
}
|
|
42016
|
-
|
|
42017
|
-
if (this instanceof Promise === false) {
|
|
42018
|
-
throw new TypeError('Failed to construct \'Promise\': Please use the \'new\' operator, this object constructor cannot be called as a function.');
|
|
42019
|
-
}
|
|
42020
|
-
|
|
42021
|
-
this._then = [];
|
|
42022
|
-
|
|
42023
|
-
invokeResolver(resolver, this);
|
|
42024
|
-
}
|
|
42025
|
-
|
|
42026
|
-
Promise.prototype = {
|
|
42027
|
-
constructor: Promise,
|
|
42028
|
-
|
|
42029
|
-
_state: PENDING,
|
|
42030
|
-
_then: null,
|
|
42031
|
-
_data: undefined,
|
|
42032
|
-
_handled: false,
|
|
42033
|
-
|
|
42034
|
-
then: function (onFulfillment, onRejection) {
|
|
42035
|
-
var subscriber = {
|
|
42036
|
-
owner: this,
|
|
42037
|
-
then: new this.constructor(NOOP),
|
|
42038
|
-
fulfilled: onFulfillment,
|
|
42039
|
-
rejected: onRejection
|
|
42040
|
-
};
|
|
42041
|
-
|
|
42042
|
-
if ((onRejection || onFulfillment) && !this._handled) {
|
|
42043
|
-
this._handled = true;
|
|
42044
|
-
if (this._state === REJECTED && isNode) {
|
|
42045
|
-
asyncCall(notifyRejectionHandled, this);
|
|
42046
|
-
}
|
|
42047
|
-
}
|
|
42048
|
-
|
|
42049
|
-
if (this._state === FULFILLED || this._state === REJECTED) {
|
|
42050
|
-
// already resolved, call callback async
|
|
42051
|
-
asyncCall(invokeCallback, subscriber);
|
|
42052
|
-
} else {
|
|
42053
|
-
// subscribe
|
|
42054
|
-
this._then.push(subscriber);
|
|
42055
|
-
}
|
|
42056
|
-
|
|
42057
|
-
return subscriber.then;
|
|
42058
|
-
},
|
|
42059
|
-
|
|
42060
|
-
catch: function (onRejection) {
|
|
42061
|
-
return this.then(null, onRejection);
|
|
42062
|
-
}
|
|
42063
|
-
};
|
|
42064
|
-
|
|
42065
|
-
Promise.all = function (promises) {
|
|
42066
|
-
if (!Array.isArray(promises)) {
|
|
42067
|
-
throw new TypeError('You must pass an array to Promise.all().');
|
|
42068
|
-
}
|
|
42069
|
-
|
|
42070
|
-
return new Promise(function (resolve, reject) {
|
|
42071
|
-
var results = [];
|
|
42072
|
-
var remaining = 0;
|
|
42073
|
-
|
|
42074
|
-
function resolver(index) {
|
|
42075
|
-
remaining++;
|
|
42076
|
-
return function (value) {
|
|
42077
|
-
results[index] = value;
|
|
42078
|
-
if (!--remaining) {
|
|
42079
|
-
resolve(results);
|
|
42080
|
-
}
|
|
42081
|
-
};
|
|
42082
|
-
}
|
|
42083
|
-
|
|
42084
|
-
for (var i = 0, promise; i < promises.length; i++) {
|
|
42085
|
-
promise = promises[i];
|
|
42086
|
-
|
|
42087
|
-
if (promise && typeof promise.then === 'function') {
|
|
42088
|
-
promise.then(resolver(i), reject);
|
|
42089
|
-
} else {
|
|
42090
|
-
results[i] = promise;
|
|
42091
|
-
}
|
|
42092
|
-
}
|
|
42093
|
-
|
|
42094
|
-
if (!remaining) {
|
|
42095
|
-
resolve(results);
|
|
42096
|
-
}
|
|
42097
|
-
});
|
|
42098
|
-
};
|
|
42099
|
-
|
|
42100
|
-
Promise.race = function (promises) {
|
|
42101
|
-
if (!Array.isArray(promises)) {
|
|
42102
|
-
throw new TypeError('You must pass an array to Promise.race().');
|
|
42103
|
-
}
|
|
42104
|
-
|
|
42105
|
-
return new Promise(function (resolve, reject) {
|
|
42106
|
-
for (var i = 0, promise; i < promises.length; i++) {
|
|
42107
|
-
promise = promises[i];
|
|
42108
|
-
|
|
42109
|
-
if (promise && typeof promise.then === 'function') {
|
|
42110
|
-
promise.then(resolve, reject);
|
|
42111
|
-
} else {
|
|
42112
|
-
resolve(promise);
|
|
42113
|
-
}
|
|
42114
|
-
}
|
|
42115
|
-
});
|
|
42116
|
-
};
|
|
42117
|
-
|
|
42118
|
-
Promise.resolve = function (value) {
|
|
42119
|
-
if (value && typeof value === 'object' && value.constructor === Promise) {
|
|
42120
|
-
return value;
|
|
42121
|
-
}
|
|
42122
|
-
|
|
42123
|
-
return new Promise(function (resolve) {
|
|
42124
|
-
resolve(value);
|
|
42125
|
-
});
|
|
42126
|
-
};
|
|
42127
|
-
|
|
42128
|
-
Promise.reject = function (reason) {
|
|
42129
|
-
return new Promise(function (resolve, reject) {
|
|
42130
|
-
reject(reason);
|
|
42131
|
-
});
|
|
42132
|
-
};
|
|
42133
|
-
|
|
42134
|
-
module.exports = Promise;
|
|
42135
|
-
|
|
42136
|
-
|
|
42137
42067
|
/***/ }),
|
|
42138
42068
|
|
|
42139
42069
|
/***/ 5666:
|
|
@@ -46531,18 +46461,6 @@ function _wrapNativeSuper(Class) {
|
|
|
46531
46461
|
/******/ };
|
|
46532
46462
|
/******/ }();
|
|
46533
46463
|
/******/
|
|
46534
|
-
/******/ /* webpack/runtime/global */
|
|
46535
|
-
/******/ !function() {
|
|
46536
|
-
/******/ __webpack_require__.g = (function() {
|
|
46537
|
-
/******/ if (typeof globalThis === 'object') return globalThis;
|
|
46538
|
-
/******/ try {
|
|
46539
|
-
/******/ return this || new Function('return this')();
|
|
46540
|
-
/******/ } catch (e) {
|
|
46541
|
-
/******/ if (typeof window === 'object') return window;
|
|
46542
|
-
/******/ }
|
|
46543
|
-
/******/ })();
|
|
46544
|
-
/******/ }();
|
|
46545
|
-
/******/
|
|
46546
46464
|
/******/ /* webpack/runtime/hasOwnProperty shorthand */
|
|
46547
46465
|
/******/ !function() {
|
|
46548
46466
|
/******/ __webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }
|
|
@@ -46853,8 +46771,6 @@ var event_emitter = __webpack_require__(1959);
|
|
|
46853
46771
|
var is_null_or_undefined = __webpack_require__(1946);
|
|
46854
46772
|
// EXTERNAL MODULE: ./src/utils/object_assign.ts
|
|
46855
46773
|
var object_assign = __webpack_require__(8026);
|
|
46856
|
-
// EXTERNAL MODULE: ./src/utils/promise.ts
|
|
46857
|
-
var promise = __webpack_require__(9589);
|
|
46858
46774
|
// EXTERNAL MODULE: ./src/utils/ranges.ts
|
|
46859
46775
|
var ranges = __webpack_require__(2829);
|
|
46860
46776
|
// EXTERNAL MODULE: ./src/utils/reference.ts
|
|
@@ -47011,7 +46927,6 @@ function shouldUnsetMediaKeys() {
|
|
|
47011
46927
|
|
|
47012
46928
|
|
|
47013
46929
|
|
|
47014
|
-
|
|
47015
46930
|
/**
|
|
47016
46931
|
* Clear DRM-related resources that should be cleared when the current content
|
|
47017
46932
|
* stops its playback.
|
|
@@ -47035,7 +46950,7 @@ function clearOnStop(mediaElement) {
|
|
|
47035
46950
|
}
|
|
47036
46951
|
|
|
47037
46952
|
log/* default.info */.Z.info("DRM: Nothing to clear. Returning right away. No state =", currentState === null);
|
|
47038
|
-
return
|
|
46953
|
+
return Promise.resolve();
|
|
47039
46954
|
}
|
|
47040
46955
|
// EXTERNAL MODULE: ./src/utils/assert.ts
|
|
47041
46956
|
var assert = __webpack_require__(811);
|
|
@@ -47157,7 +47072,6 @@ var get_fuzzed_delay = __webpack_require__(2572);
|
|
|
47157
47072
|
|
|
47158
47073
|
|
|
47159
47074
|
|
|
47160
|
-
|
|
47161
47075
|
/**
|
|
47162
47076
|
* Called on a loader error.
|
|
47163
47077
|
* Returns whether the loader request should be retried.
|
|
@@ -47268,7 +47182,7 @@ function getRequestErrorType(error) {
|
|
|
47268
47182
|
|
|
47269
47183
|
function tryURLsWithBackoff(urls, performRequest, options, cancellationSignal) {
|
|
47270
47184
|
if (cancellationSignal.isCancelled) {
|
|
47271
|
-
return
|
|
47185
|
+
return Promise.reject(cancellationSignal.cancellationError);
|
|
47272
47186
|
}
|
|
47273
47187
|
|
|
47274
47188
|
var baseDelay = options.baseDelay,
|
|
@@ -47284,7 +47198,7 @@ function tryURLsWithBackoff(urls, performRequest, options, cancellationSignal) {
|
|
|
47284
47198
|
|
|
47285
47199
|
if (urlsToTry.length === 0) {
|
|
47286
47200
|
log/* default.warn */.Z.warn("Fetchers: no URL given to `tryURLsWithBackoff`.");
|
|
47287
|
-
return
|
|
47201
|
+
return Promise.reject(new Error("No URL to request"));
|
|
47288
47202
|
}
|
|
47289
47203
|
|
|
47290
47204
|
return tryURLsRecursively(urlsToTry[0], 0);
|
|
@@ -47479,7 +47393,6 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
|
|
|
47479
47393
|
|
|
47480
47394
|
|
|
47481
47395
|
|
|
47482
|
-
|
|
47483
47396
|
/**
|
|
47484
47397
|
* Class allowing to facilitate the task of loading and parsing a Manifest.
|
|
47485
47398
|
* @class ManifestFetcher
|
|
@@ -47845,7 +47758,7 @@ var ManifestFetcher = /*#__PURE__*/function () {
|
|
|
47845
47758
|
|
|
47846
47759
|
|
|
47847
47760
|
function isPromise(val) {
|
|
47848
|
-
return val instanceof
|
|
47761
|
+
return val instanceof Promise;
|
|
47849
47762
|
}
|
|
47850
47763
|
;// CONCATENATED MODULE: ./src/core/fetchers/manifest/index.ts
|
|
47851
47764
|
/**
|
|
@@ -54256,7 +54169,7 @@ function appendSegmentToBuffer(playbackObserver, segmentBuffer, dataInfos) {
|
|
|
54256
54169
|
throw new media_error/* default */.Z("BUFFER_APPEND_ERROR", reason);
|
|
54257
54170
|
}
|
|
54258
54171
|
|
|
54259
|
-
return playbackObserver.observe(true).pipe((0,mergeMap/* mergeMap */.z)(function (observation) {
|
|
54172
|
+
return playbackObserver.observe(true).pipe((0,take/* take */.q)(1), (0,mergeMap/* mergeMap */.z)(function (observation) {
|
|
54260
54173
|
var currentPos = observation.position + observation.wantedTimeOffset;
|
|
54261
54174
|
return (0,concat/* concat */.z)(forceGarbageCollection(currentPos, segmentBuffer).pipe((0,ignoreElements/* ignoreElements */.l)()), append$).pipe((0,catchError/* catchError */.K)(function (forcedGCError) {
|
|
54262
54175
|
var reason = forcedGCError instanceof Error ? forcedGCError.toString() : "Could not clean the buffer";
|
|
@@ -55339,8 +55252,10 @@ function getAdaptationSwitchStrategy(segmentBuffer, period, adaptation, playback
|
|
|
55339
55252
|
}
|
|
55340
55253
|
|
|
55341
55254
|
var currentTime = playbackInfo.currentTime;
|
|
55255
|
+
var audioTrackSwitchingMode = options.audioTrackSwitchingMode;
|
|
55256
|
+
var hasReloadSwitchingMode = adaptation.type === "video" || adaptation.type === "audio" && audioTrackSwitchingMode === "reload";
|
|
55342
55257
|
|
|
55343
|
-
if (
|
|
55258
|
+
if (hasReloadSwitchingMode && // We're playing the current Period
|
|
55344
55259
|
(0,ranges/* isTimeInRange */.Ti)({
|
|
55345
55260
|
start: start,
|
|
55346
55261
|
end: end
|
|
@@ -55358,7 +55273,7 @@ function getAdaptationSwitchStrategy(segmentBuffer, period, adaptation, playback
|
|
|
55358
55273
|
} // From here, clean-up data from the previous Adaptation, if one
|
|
55359
55274
|
|
|
55360
55275
|
|
|
55361
|
-
var shouldFlush = adaptation.type === "audio" &&
|
|
55276
|
+
var shouldFlush = adaptation.type === "audio" && audioTrackSwitchingMode === "direct";
|
|
55362
55277
|
var rangesToExclude = []; // First, we don't want to accidentally remove some segments from the previous
|
|
55363
55278
|
// Period (which overlap a little with this one)
|
|
55364
55279
|
|
|
@@ -58421,8 +58336,8 @@ function parseLoadVideoOptions(options) {
|
|
|
58421
58336
|
var minimumManifestUpdateInterval = (_e = (_d = options.transportOptions) === null || _d === void 0 ? void 0 : _d.minimumManifestUpdateInterval) !== null && _e !== void 0 ? _e : 0;
|
|
58422
58337
|
var audioTrackSwitchingMode = (0,is_null_or_undefined/* default */.Z)(options.audioTrackSwitchingMode) ? DEFAULT_AUDIO_TRACK_SWITCHING_MODE : options.audioTrackSwitchingMode;
|
|
58423
58338
|
|
|
58424
|
-
if (!(0,array_includes/* default */.Z)(["seamless", "direct"], audioTrackSwitchingMode)) {
|
|
58425
|
-
log/* default.warn */.Z.warn("The `audioTrackSwitchingMode` loadVideo option must match one of " + "the following strategy name:\n" + "- `seamless`\n" + "- `direct`\n" + "If badly set, " + DEFAULT_AUDIO_TRACK_SWITCHING_MODE + " strategy will be used as default");
|
|
58339
|
+
if (!(0,array_includes/* default */.Z)(["seamless", "direct", "reload"], audioTrackSwitchingMode)) {
|
|
58340
|
+
log/* default.warn */.Z.warn("The `audioTrackSwitchingMode` loadVideo option must match one of " + "the following strategy name:\n" + "- `seamless`\n" + "- `direct`\n" + "- `reload`\n" + "If badly set, " + DEFAULT_AUDIO_TRACK_SWITCHING_MODE + " strategy will be used as default");
|
|
58426
58341
|
audioTrackSwitchingMode = DEFAULT_AUDIO_TRACK_SWITCHING_MODE;
|
|
58427
58342
|
}
|
|
58428
58343
|
|
|
@@ -60463,7 +60378,6 @@ function getRightVideoTrack(adaptation, isTrickModeEnabled) {
|
|
|
60463
60378
|
|
|
60464
60379
|
|
|
60465
60380
|
|
|
60466
|
-
|
|
60467
60381
|
|
|
60468
60382
|
|
|
60469
60383
|
/* eslint-disable @typescript-eslint/naming-convention */
|
|
@@ -60526,7 +60440,7 @@ var Player = /*#__PURE__*/function (_EventEmitter) {
|
|
|
60526
60440
|
videoElement.preload = "auto";
|
|
60527
60441
|
_this.version =
|
|
60528
60442
|
/* PLAYER_VERSION */
|
|
60529
|
-
"3.27.0-dev.
|
|
60443
|
+
"3.27.0-dev.2022032800";
|
|
60530
60444
|
_this.log = log/* default */.Z;
|
|
60531
60445
|
_this.state = "STOPPED";
|
|
60532
60446
|
_this.videoElement = videoElement;
|
|
@@ -61711,7 +61625,7 @@ var Player = /*#__PURE__*/function (_EventEmitter) {
|
|
|
61711
61625
|
|
|
61712
61626
|
if ((0,is_null_or_undefined/* default */.Z)(playPromise) || typeof playPromise["catch"] !== "function") {
|
|
61713
61627
|
/* eslint-enable @typescript-eslint/unbound-method */
|
|
61714
|
-
return
|
|
61628
|
+
return Promise.resolve();
|
|
61715
61629
|
}
|
|
61716
61630
|
|
|
61717
61631
|
return playPromise["catch"](function (error) {
|
|
@@ -63355,7 +63269,7 @@ var Player = /*#__PURE__*/function (_EventEmitter) {
|
|
|
63355
63269
|
|
|
63356
63270
|
Player.version =
|
|
63357
63271
|
/* PLAYER_VERSION */
|
|
63358
|
-
"3.27.0-dev.
|
|
63272
|
+
"3.27.0-dev.2022032800";
|
|
63359
63273
|
/* harmony default export */ var public_api = (Player);
|
|
63360
63274
|
;// CONCATENATED MODULE: ./src/core/api/index.ts
|
|
63361
63275
|
/**
|