rx-player 4.2.0-dev.2024100200 → 4.2.0-dev.2024101500
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.vscode/settings.json +9 -0
- package/CHANGELOG.md +13 -1
- package/VERSION +1 -1
- package/dist/commonjs/__GENERATED_CODE/embedded_dash_wasm.d.ts.map +1 -1
- package/dist/commonjs/__GENERATED_CODE/embedded_dash_wasm.js +1 -1
- package/dist/commonjs/core/segment_sinks/segment_buffers_store.d.ts.map +1 -1
- package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.d.ts.map +1 -1
- package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.js +85 -8
- package/dist/commonjs/main_thread/api/debug/modules/general_info.js +1 -1
- package/dist/commonjs/main_thread/api/public_api.js +2 -2
- package/dist/commonjs/main_thread/decrypt/find_key_system.d.ts.map +1 -1
- package/dist/commonjs/main_thread/decrypt/find_key_system.js +3 -0
- package/dist/commonjs/main_thread/init/media_source_content_initializer.d.ts +11 -1
- package/dist/commonjs/main_thread/init/media_source_content_initializer.d.ts.map +1 -1
- package/dist/commonjs/main_thread/init/media_source_content_initializer.js +23 -11
- package/dist/commonjs/main_thread/init/multi_thread_content_initializer.d.ts +2 -1
- package/dist/commonjs/main_thread/init/multi_thread_content_initializer.d.ts.map +1 -1
- package/dist/commonjs/main_thread/init/multi_thread_content_initializer.js +9 -5
- package/dist/commonjs/main_thread/text_displayer/native/native_text_displayer.d.ts +1 -0
- package/dist/commonjs/main_thread/text_displayer/native/native_text_displayer.d.ts.map +1 -1
- package/dist/commonjs/main_thread/text_displayer/native/native_text_displayer.js +19 -16
- package/dist/commonjs/utils/sync_or_async.d.ts.map +1 -1
- package/dist/commonjs/utils/sync_or_async.js +3 -1
- package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.d.ts.map +1 -1
- package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.js +1 -1
- package/dist/es2017/core/segment_sinks/segment_buffers_store.d.ts.map +1 -1
- package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.d.ts.map +1 -1
- package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.js +36 -7
- package/dist/es2017/main_thread/api/debug/modules/general_info.js +1 -1
- package/dist/es2017/main_thread/api/public_api.js +2 -2
- package/dist/es2017/main_thread/decrypt/find_key_system.d.ts.map +1 -1
- package/dist/es2017/main_thread/decrypt/find_key_system.js +3 -0
- package/dist/es2017/main_thread/init/media_source_content_initializer.d.ts +11 -1
- package/dist/es2017/main_thread/init/media_source_content_initializer.d.ts.map +1 -1
- package/dist/es2017/main_thread/init/media_source_content_initializer.js +23 -11
- package/dist/es2017/main_thread/init/multi_thread_content_initializer.d.ts +2 -1
- package/dist/es2017/main_thread/init/multi_thread_content_initializer.d.ts.map +1 -1
- package/dist/es2017/main_thread/init/multi_thread_content_initializer.js +9 -5
- package/dist/es2017/main_thread/text_displayer/native/native_text_displayer.d.ts +1 -0
- package/dist/es2017/main_thread/text_displayer/native/native_text_displayer.d.ts.map +1 -1
- package/dist/es2017/main_thread/text_displayer/native/native_text_displayer.js +19 -16
- package/dist/es2017/utils/sync_or_async.d.ts.map +1 -1
- package/dist/es2017/utils/sync_or_async.js +3 -1
- package/dist/mpd-parser.wasm +0 -0
- package/dist/rx-player.js +53 -29
- package/dist/rx-player.min.js +17 -17
- package/package.json +1 -1
- package/src/__GENERATED_CODE/embedded_dash_wasm.ts +1 -1
- package/src/core/segment_sinks/segment_buffers_store.ts +6 -2
- package/src/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.ts +39 -7
- package/src/main_thread/api/debug/modules/general_info.ts +1 -1
- package/src/main_thread/api/public_api.ts +2 -2
- package/src/main_thread/decrypt/find_key_system.ts +3 -0
- package/src/main_thread/init/media_source_content_initializer.ts +50 -17
- package/src/main_thread/init/multi_thread_content_initializer.ts +15 -7
- package/src/main_thread/text_displayer/native/native_text_displayer.ts +22 -18
- package/src/utils/sync_or_async.ts +5 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"segment_buffers_store.d.ts","sourceRoot":"","sources":["../../../../src/core/segment_sinks/segment_buffers_store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAMvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAiB,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAI9E,0EAA0E;AAC1E,KAAK,sBAAsB,GAAG,OAAO,GAAG,OAAO,CAAC;AAEhD;;;;GAIG;AACH,MAAM,WAAW,sBAAuB,SAAQ,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC;IAC3E,KAAK,EAAE,qBAAqB,CAAC;CAC9B;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC,OAAO,GAAG,OAAO,GAAG,MAAM,EAAE,yBAAyB,CAAC,CAAC;CAC7E;AAED,UAAU,yBAAyB;IACjC,UAAU,EAAE,WAAW,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,gBAAgB,EAAE,sBAAsB,EAAE,GAAG,SAAS,CAAC;CACxD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC;;;;;;;;OAQG;IACH,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,IAAI,sBAAsB;IAIzE,kEAAkE;IAClE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IAErD;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB,
|
|
1
|
+
{"version":3,"file":"segment_buffers_store.d.ts","sourceRoot":"","sources":["../../../../src/core/segment_sinks/segment_buffers_store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAMvD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAElE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAEtE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AACpE,OAAO,KAAK,EAAiB,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAI9E,0EAA0E;AAC1E,KAAK,sBAAsB,GAAG,OAAO,GAAG,OAAO,CAAC;AAEhD;;;;GAIG;AACH,MAAM,WAAW,sBAAuB,SAAQ,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC;IAC3E,KAAK,EAAE,qBAAqB,CAAC;CAC9B;AAED;;;;GAIG;AACH,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC,OAAO,GAAG,OAAO,GAAG,MAAM,EAAE,yBAAyB,CAAC,CAAC;CAC7E;AAED,UAAU,yBAAyB;IACjC,UAAU,EAAE,WAAW,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,gBAAgB,EAAE,sBAAsB,EAAE,GAAG,SAAS,CAAC;CACxD;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,CAAC,OAAO,OAAO,iBAAiB;IACpC;;;;;;;;OAQG;IACH,MAAM,CAAC,QAAQ,CAAC,UAAU,EAAE,MAAM,GAAG,UAAU,IAAI,sBAAsB;IAIzE,kEAAkE;IAClE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAwB;IAErD;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB,CAI9B;IAEF;;;;OAIG;IACH,OAAO,CAAC,8BAA8B,CAAoB;IAE1D,OAAO,CAAC,cAAc,CAAiC;IAEvD,OAAO,CAAC,SAAS,CAAU;IAE3B;;;OAGG;gBAED,WAAW,EAAE,qBAAqB,EAClC,QAAQ,EAAE,OAAO,EACjB,sBAAsB,EAAE,uBAAuB,GAAG,IAAI;IASxD;;;;OAIG;IACI,cAAc,IAAI,WAAW,EAAE;IAQtC;;;;OAIG;IACI,oBAAoB,IAAI,WAAW,EAAE;IAI5C;;;;;;;;;;;;;;;;;;;;;OAqBG;IACI,SAAS,CACd,UAAU,EAAE,WAAW,GAErB;QAAE,IAAI,EAAE,aAAa,CAAC;QAAC,KAAK,EAAE,WAAW,CAAA;KAAE,GAC3C;QAAE,IAAI,EAAE,eAAe,CAAA;KAAE,GACzB;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE;IAWxB;;;;;;;;;;;;;;;OAeG;IACI,oBAAoB,CAAC,gBAAgB,EAAE,kBAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IA2BhF;;;;;;OAMG;IACI,kBAAkB,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI;IAgBxD;;;;;;;;;;;OAWG;IACI,iBAAiB,CAAC,UAAU,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW;IAwD7E;;;OAGG;IACI,kBAAkB,CAAC,UAAU,EAAE,WAAW,GAAG,IAAI;IAYxD;;OAEG;IACI,UAAU,IAAI,IAAI;IAQzB;;;OAGG;IACH,OAAO,CAAC,uBAAuB;IAqB/B,OAAO,CAAC,+BAA+B;IAehC,sBAAsB,IAAI,mBAAmB;CASrD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DRMInfos.d.ts","sourceRoot":"","sources":["../../../../../../src/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;
|
|
1
|
+
{"version":3,"file":"DRMInfos.d.ts","sourceRoot":"","sources":["../../../../../../src/experimental/tools/mediaCapabilitiesProber/probers/DRMInfos.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAUH,OAAO,KAAK,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,2BAA2B,EAAE,CAAC;CAC9C;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,UAAU,aAAa,CACnC,WAAW,EAAE,mBAAmB,GAC/B,OAAO,CAAC,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC,CAAC,CAgEhD"}
|
|
@@ -13,7 +13,9 @@
|
|
|
13
13
|
* See the License for the specific language governing permissions and
|
|
14
14
|
* limitations under the License.
|
|
15
15
|
*/
|
|
16
|
+
import { canRelyOnRequestMediaKeySystemAccess } from "../../../../compat/can_rely_on_request_media_key_system_access";
|
|
16
17
|
import eme from "../../../../compat/eme";
|
|
18
|
+
import { DUMMY_PLAY_READY_HEADER, generatePlayReadyInitData, } from "../../../../compat/generate_init_data";
|
|
17
19
|
import isNullOrUndefined from "../../../../utils/is_null_or_undefined";
|
|
18
20
|
import log from "../log";
|
|
19
21
|
import { ProberStatus } from "../types";
|
|
@@ -39,13 +41,40 @@ export default function probeDRMInfos(mediaConfig) {
|
|
|
39
41
|
}
|
|
40
42
|
return eme
|
|
41
43
|
.requestMediaKeySystemAccess(type, [configuration])
|
|
42
|
-
.then((keySystemAccess) => {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
44
|
+
.then(async (keySystemAccess) => {
|
|
45
|
+
if (!canRelyOnRequestMediaKeySystemAccess(type)) {
|
|
46
|
+
try {
|
|
47
|
+
const mediaKeys = await keySystemAccess.createMediaKeys();
|
|
48
|
+
const session = mediaKeys.createSession();
|
|
49
|
+
const initData = generatePlayReadyInitData(DUMMY_PLAY_READY_HEADER);
|
|
50
|
+
await session.generateRequest("cenc", initData);
|
|
51
|
+
session.close().catch(() => {
|
|
52
|
+
log.warn("DRM: Failed to close the dummy session");
|
|
53
|
+
});
|
|
54
|
+
result.compatibleConfiguration = keySystemAccess.getConfiguration();
|
|
55
|
+
const status = [
|
|
56
|
+
ProberStatus.Supported,
|
|
57
|
+
result,
|
|
58
|
+
];
|
|
59
|
+
return status;
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
log.debug("DRM: KeySystemAccess was granted but it is not usable");
|
|
63
|
+
const statusError = [
|
|
64
|
+
ProberStatus.NotSupported,
|
|
65
|
+
result,
|
|
66
|
+
];
|
|
67
|
+
return statusError;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
else {
|
|
71
|
+
result.compatibleConfiguration = keySystemAccess.getConfiguration();
|
|
72
|
+
const status = [
|
|
73
|
+
ProberStatus.Supported,
|
|
74
|
+
result,
|
|
75
|
+
];
|
|
76
|
+
return status;
|
|
77
|
+
}
|
|
49
78
|
})
|
|
50
79
|
.catch(() => {
|
|
51
80
|
return [ProberStatus.NotSupported, result];
|
|
@@ -55,7 +55,7 @@ export default function constructDebugGeneralInfo(instance, parentElt, cancelSig
|
|
|
55
55
|
else {
|
|
56
56
|
valuesLine1.push(["wo", "0"]);
|
|
57
57
|
}
|
|
58
|
-
const valuesLine2 = [];
|
|
58
|
+
const valuesLine2 = [["v", instance.version]];
|
|
59
59
|
const ks = instance.getKeySystemConfiguration();
|
|
60
60
|
if (ks !== null) {
|
|
61
61
|
valuesLine2.push(["ks", ks.keySystem]);
|
|
@@ -143,7 +143,7 @@ class Player extends EventEmitter {
|
|
|
143
143
|
// Workaround to support Firefox autoplay on FF 42.
|
|
144
144
|
// See: https://bugzilla.mozilla.org/show_bug.cgi?id=1194624
|
|
145
145
|
videoElement.preload = "auto";
|
|
146
|
-
this.version = /* PLAYER_VERSION */ "4.2.0-dev.
|
|
146
|
+
this.version = /* PLAYER_VERSION */ "4.2.0-dev.2024101500";
|
|
147
147
|
this.log = log;
|
|
148
148
|
this.state = "STOPPED";
|
|
149
149
|
this.videoElement = videoElement;
|
|
@@ -2471,5 +2471,5 @@ class Player extends EventEmitter {
|
|
|
2471
2471
|
* Use of a WeakSet ensure the object is garbage collected if it's not used anymore.
|
|
2472
2472
|
*/
|
|
2473
2473
|
Player._priv_currentlyUsedVideoElements = new WeakSet();
|
|
2474
|
-
Player.version = /* PLAYER_VERSION */ "4.2.0-dev.
|
|
2474
|
+
Player.version = /* PLAYER_VERSION */ "4.2.0-dev.2024101500";
|
|
2475
2475
|
export default Player;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"find_key_system.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/decrypt/find_key_system.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAE9E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAUpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAK3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAKrE,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC,CAAC;AAEH,MAAM,WAAW,0BAA0B;IACzC,qEAAqE;IACrE,oBAAoB,EAAE,oBAAoB,GAAG,2BAA2B,CAAC;IACzE;;;OAGG;IACH,kBAAkB,EAAE,2BAA2B,CAAC;IAChD;;;OAGG;IACH,OAAO,EAAE,gBAAgB,CAAC;IAC1B,oFAAoF;IACpF,YAAY,EAAE,iBAAiB,CAAC;CACjC;AAED,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE,+BAA+B,CAAC;IACtC,KAAK,EAAE,0BAA0B,CAAC;CACnC;AAED,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE,gCAAgC,CAAC;IACvC,KAAK,EAAE,0BAA0B,CAAC;CACnC;AAED,MAAM,MAAM,+BAA+B,GACvC,+BAA+B,GAC/B,gCAAgC,CAAC;AAkPrC;;;;;;;GAOG;AACH,wBAAgB,wCAAwC,CACtD,oBAAoB,EAAE,2BAA2B,EACjD,gBAAgB,EAAE,2BAA2B,GAC5C,iBAAiB,CA2CnB;AACD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAC7C,YAAY,EAAE,aAAa,EAC3B,iBAAiB,EAAE,gBAAgB,EAAE,EACrC,YAAY,EAAE,kBAAkB,GAC/B,OAAO,CAAC,+BAA+B,CAAC,CA+H1C;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,uBAAuB,EAAE,2BAA2B,EAAE,+
|
|
1
|
+
{"version":3,"file":"find_key_system.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/decrypt/find_key_system.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAE9E,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAUpE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAK3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAKrE,MAAM,MAAM,iBAAiB,GAAG,KAAK,CAAC;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;CACjB,CAAC,CAAC;AAEH,MAAM,WAAW,0BAA0B;IACzC,qEAAqE;IACrE,oBAAoB,EAAE,oBAAoB,GAAG,2BAA2B,CAAC;IACzE;;;OAGG;IACH,kBAAkB,EAAE,2BAA2B,CAAC;IAChD;;;OAGG;IACH,OAAO,EAAE,gBAAgB,CAAC;IAC1B,oFAAoF;IACpF,YAAY,EAAE,iBAAiB,CAAC;CACjC;AAED,MAAM,WAAW,+BAA+B;IAC9C,IAAI,EAAE,+BAA+B,CAAC;IACtC,KAAK,EAAE,0BAA0B,CAAC;CACnC;AAED,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE,gCAAgC,CAAC;IACvC,KAAK,EAAE,0BAA0B,CAAC;CACnC;AAED,MAAM,MAAM,+BAA+B,GACvC,+BAA+B,GAC/B,gCAAgC,CAAC;AAkPrC;;;;;;;GAOG;AACH,wBAAgB,wCAAwC,CACtD,oBAAoB,EAAE,2BAA2B,EACjD,gBAAgB,EAAE,2BAA2B,GAC5C,iBAAiB,CA2CnB;AACD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAC7C,YAAY,EAAE,aAAa,EAC3B,iBAAiB,EAAE,gBAAgB,EAAE,EACrC,YAAY,EAAE,kBAAkB,GAC/B,OAAO,CAAC,+BAA+B,CAAC,CA+H1C;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,uBAAuB,EAAE,2BAA2B,EAAE,+FAsBvD"}
|
|
@@ -376,6 +376,9 @@ export async function testKeySystem(keyType, keySystemConfigurations) {
|
|
|
376
376
|
const session = mediaKeys.createSession();
|
|
377
377
|
const initData = generatePlayReadyInitData(DUMMY_PLAY_READY_HEADER);
|
|
378
378
|
await session.generateRequest("cenc", initData);
|
|
379
|
+
session.close().catch(() => {
|
|
380
|
+
log.warn("DRM: Failed to close the dummy session");
|
|
381
|
+
});
|
|
379
382
|
}
|
|
380
383
|
catch (err) {
|
|
381
384
|
log.debug("DRM: KeySystemAccess was granted but it is not usable");
|
|
@@ -35,7 +35,7 @@ import type { IInitialTimeOptions } from "./utils/get_initial_time";
|
|
|
35
35
|
*/
|
|
36
36
|
export default class MediaSourceContentInitializer extends ContentInitializer {
|
|
37
37
|
/** Constructor settings associated to this `MediaSourceContentInitializer`. */
|
|
38
|
-
private
|
|
38
|
+
private _initSettings;
|
|
39
39
|
/**
|
|
40
40
|
* `TaskCanceller` allowing to abort everything that the
|
|
41
41
|
* `MediaSourceContentInitializer` is doing.
|
|
@@ -91,7 +91,17 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
|
|
|
91
91
|
*/
|
|
92
92
|
updateContentUrls(urls: string[] | undefined, refreshNow: boolean): void;
|
|
93
93
|
dispose(): void;
|
|
94
|
+
/**
|
|
95
|
+
* Callback called when an error interrupting playback arised.
|
|
96
|
+
* @param {*} err
|
|
97
|
+
*/
|
|
94
98
|
private _onFatalError;
|
|
99
|
+
/**
|
|
100
|
+
* Initialize decryption mechanisms if needed and begin creating and relying
|
|
101
|
+
* on the initial `MediaSourceInterface` for this content.
|
|
102
|
+
* @param {HTMLMediaElement|null} mediaElement
|
|
103
|
+
* @returns {Promise.<Object>}
|
|
104
|
+
*/
|
|
95
105
|
private _initializeMediaSourceAndDecryption;
|
|
96
106
|
private _onInitialMediaSourceReady;
|
|
97
107
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media_source_content_initializer.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/init/media_source_content_initializer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAK9E,OAAO,KAAK,EACV,wCAAwC,EAEzC,MAAM,qBAAqB,CAAC;AAoB7B,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAEjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAO5D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAStE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAG7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAUpE;;;;;;;;;;GAUG;AACH,MAAM,CAAC,OAAO,OAAO,6BAA8B,SAAQ,kBAAkB;IAC3E,+EAA+E;IAC/E,OAAO,CAAC,
|
|
1
|
+
{"version":3,"file":"media_source_content_initializer.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/init/media_source_content_initializer.ts"],"names":[],"mappings":"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"}
|
|
@@ -66,7 +66,7 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
|
|
|
66
66
|
*/
|
|
67
67
|
constructor(settings) {
|
|
68
68
|
super();
|
|
69
|
-
this.
|
|
69
|
+
this._initSettings = settings;
|
|
70
70
|
this._initCanceller = new TaskCanceller();
|
|
71
71
|
this._manifest = null;
|
|
72
72
|
this._decryptionCapabilities = { status: "uninitialized", value: null };
|
|
@@ -125,6 +125,10 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
|
|
|
125
125
|
dispose() {
|
|
126
126
|
this._initCanceller.cancel();
|
|
127
127
|
}
|
|
128
|
+
/**
|
|
129
|
+
* Callback called when an error interrupting playback arised.
|
|
130
|
+
* @param {*} err
|
|
131
|
+
*/
|
|
128
132
|
_onFatalError(err) {
|
|
129
133
|
if (this._initCanceller.isUsed()) {
|
|
130
134
|
return;
|
|
@@ -132,10 +136,16 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
|
|
|
132
136
|
this._initCanceller.cancel();
|
|
133
137
|
this.trigger("error", err);
|
|
134
138
|
}
|
|
139
|
+
/**
|
|
140
|
+
* Initialize decryption mechanisms if needed and begin creating and relying
|
|
141
|
+
* on the initial `MediaSourceInterface` for this content.
|
|
142
|
+
* @param {HTMLMediaElement|null} mediaElement
|
|
143
|
+
* @returns {Promise.<Object>}
|
|
144
|
+
*/
|
|
135
145
|
_initializeMediaSourceAndDecryption(mediaElement) {
|
|
136
146
|
const initCanceller = this._initCanceller;
|
|
137
147
|
return createCancellablePromise(initCanceller.signal, (resolve) => {
|
|
138
|
-
const { keySystems } = this.
|
|
148
|
+
const { keySystems } = this._initSettings;
|
|
139
149
|
/** Initialize decryption capabilities. */
|
|
140
150
|
const { statusRef: drmInitRef, contentDecryptor } = initializeContentDecryption(mediaElement, keySystems, {
|
|
141
151
|
onWarning: (err) => this.trigger("warning", err),
|
|
@@ -236,7 +246,7 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
|
|
|
236
246
|
}
|
|
237
247
|
async _onInitialMediaSourceReady(mediaElement, initialMediaSource, playbackObserver, drmSystemId, initialMediaSourceCanceller) {
|
|
238
248
|
var _a;
|
|
239
|
-
const { adaptiveOptions, autoPlay, bufferOptions, lowLatencyMode, segmentRequestOptions, speed, startAt, textTrackOptions, transport, } = this.
|
|
249
|
+
const { adaptiveOptions, autoPlay, bufferOptions, lowLatencyMode, segmentRequestOptions, speed, startAt, textTrackOptions, transport, } = this._initSettings;
|
|
240
250
|
const initCanceller = this._initCanceller;
|
|
241
251
|
assert(this._manifest !== null);
|
|
242
252
|
let manifest;
|
|
@@ -336,14 +346,7 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
|
|
|
336
346
|
return this._onFatalError(error);
|
|
337
347
|
}
|
|
338
348
|
let textDisplayerInterface = null;
|
|
339
|
-
|
|
340
|
-
if (this._settings.textTrackOptions.textTrackMode === "html" &&
|
|
341
|
-
features.htmlTextDisplayer !== null) {
|
|
342
|
-
textDisplayer = new features.htmlTextDisplayer(mediaElement, this._settings.textTrackOptions.textTrackElement);
|
|
343
|
-
}
|
|
344
|
-
else if (features.nativeTextDisplayer !== null) {
|
|
345
|
-
textDisplayer = new features.nativeTextDisplayer(mediaElement);
|
|
346
|
-
}
|
|
349
|
+
const textDisplayer = createTextDisplayer(mediaElement, this._initSettings.textTrackOptions);
|
|
347
350
|
if (textDisplayer !== null) {
|
|
348
351
|
const sender = new MainThreadTextDisplayerInterface(textDisplayer);
|
|
349
352
|
textDisplayerInterface = sender;
|
|
@@ -757,6 +760,15 @@ export default class MediaSourceContentInitializer extends ContentInitializer {
|
|
|
757
760
|
}
|
|
758
761
|
}
|
|
759
762
|
}
|
|
763
|
+
function createTextDisplayer(mediaElement, textTrackOptions) {
|
|
764
|
+
if (textTrackOptions.textTrackMode === "html" && features.htmlTextDisplayer !== null) {
|
|
765
|
+
return new features.htmlTextDisplayer(mediaElement, textTrackOptions.textTrackElement);
|
|
766
|
+
}
|
|
767
|
+
else if (features.nativeTextDisplayer !== null) {
|
|
768
|
+
return new features.nativeTextDisplayer(mediaElement);
|
|
769
|
+
}
|
|
770
|
+
return null;
|
|
771
|
+
}
|
|
760
772
|
/**
|
|
761
773
|
* Change the decipherability of Representations which have their key id in one
|
|
762
774
|
* of the given Arrays:
|
|
@@ -51,7 +51,8 @@ export default class MultiThreadContentInitializer extends ContentInitializer {
|
|
|
51
51
|
*/
|
|
52
52
|
private _currentMediaSourceCanceller;
|
|
53
53
|
/**
|
|
54
|
-
* Stores the resolvers and the current messageId that is sent to the web worker to
|
|
54
|
+
* Stores the resolvers and the current messageId that is sent to the web worker to
|
|
55
|
+
* receive segment sink metrics.
|
|
55
56
|
* The purpose of collecting metrics is for monitoring and debugging.
|
|
56
57
|
*/
|
|
57
58
|
private _segmentMetrics;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"multi_thread_content_initializer.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/init/multi_thread_content_initializer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAI9E,OAAO,KAAK,EACV,wCAAwC,EAGzC,MAAM,kBAAkB,CAAC;AAU1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAMxD,OAAO,wBAAwB,MAAM,uCAAuC,CAAC;AAO7E,OAAO,KAAK,EAEV,6BAA6B,EAC9B,MAAM,yBAAyB,CAAC;AAEjC,OAAO,KAAK,EACV,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAEjB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAM1D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAMtE,OAAO,KAAK,iBAAiB,MAAM,YAAY,CAAC;AAIhD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAG7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAIpE,OAAO,qBAAqB,MAAM,gCAAgC,CAAC;AACnE,OAAO,mBAAmB,MAAM,qDAAqD,CAAC;AAMtF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,6BAA8B,SAAQ,kBAAkB;IAC3E,+EAA+E;IAC/E,OAAO,CAAC,SAAS,CAAuB;IAExC;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,qBAAqB,CAAwB;IAErD;;;;OAIG;IACH,OAAO,CAAC,mBAAmB,CAAoD;IAC/E;;;OAGG;IACH,OAAO,CAAC,cAAc,CAAgB;IACtC;;;;;;OAMG;IACH,OAAO,CAAC,4BAA4B,CAAgB;IAEpD
|
|
1
|
+
{"version":3,"file":"multi_thread_content_initializer.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/init/multi_thread_content_initializer.ts"],"names":[],"mappings":"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"}
|
|
@@ -44,7 +44,7 @@ export default class MultiThreadContentInitializer extends ContentInitializer {
|
|
|
44
44
|
this._currentContentInfo = null;
|
|
45
45
|
this._segmentMetrics = {
|
|
46
46
|
lastMessageId: 0,
|
|
47
|
-
resolvers:
|
|
47
|
+
resolvers: new Map(),
|
|
48
48
|
};
|
|
49
49
|
this._queuedWorkerMessages = null;
|
|
50
50
|
}
|
|
@@ -825,10 +825,9 @@ export default class MultiThreadContentInitializer extends ContentInitializer {
|
|
|
825
825
|
if (((_27 = this._currentContentInfo) === null || _27 === void 0 ? void 0 : _27.contentId) !== msgData.contentId) {
|
|
826
826
|
return;
|
|
827
827
|
}
|
|
828
|
-
const resolveFn = this._segmentMetrics.resolvers
|
|
828
|
+
const resolveFn = this._segmentMetrics.resolvers.get(msgData.value.messageId);
|
|
829
829
|
if (resolveFn !== undefined) {
|
|
830
830
|
resolveFn(msgData.value.segmentSinkMetrics);
|
|
831
|
-
delete this._segmentMetrics.resolvers[msgData.value.messageId];
|
|
832
831
|
}
|
|
833
832
|
else {
|
|
834
833
|
log.error("MTCI: Failed to send segment sink store update");
|
|
@@ -1171,11 +1170,16 @@ export default class MultiThreadContentInitializer extends ContentInitializer {
|
|
|
1171
1170
|
value: { messageId },
|
|
1172
1171
|
});
|
|
1173
1172
|
return new Promise((resolve, reject) => {
|
|
1174
|
-
this._segmentMetrics.resolvers[messageId] = resolve;
|
|
1175
1173
|
const rejectFn = (err) => {
|
|
1176
|
-
|
|
1174
|
+
cancelSignal.deregister(rejectFn);
|
|
1175
|
+
this._segmentMetrics.resolvers.delete(messageId);
|
|
1177
1176
|
return reject(err);
|
|
1178
1177
|
};
|
|
1178
|
+
this._segmentMetrics.resolvers.set(messageId, (value) => {
|
|
1179
|
+
cancelSignal.deregister(rejectFn);
|
|
1180
|
+
this._segmentMetrics.resolvers.delete(messageId);
|
|
1181
|
+
resolve(value);
|
|
1182
|
+
});
|
|
1179
1183
|
cancelSignal.register(rejectFn);
|
|
1180
1184
|
});
|
|
1181
1185
|
};
|
|
@@ -37,6 +37,7 @@ export default class NativeTextDisplayer implements ITextDisplayer {
|
|
|
37
37
|
reset(): void;
|
|
38
38
|
stop(): void;
|
|
39
39
|
private _removeData;
|
|
40
|
+
private _clearTrackElement;
|
|
40
41
|
}
|
|
41
42
|
/** Data of chunks that should be pushed to the NativeTextDisplayer. */
|
|
42
43
|
export interface INativeTextTracksBufferSegmentData {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"native_text_displayer.d.ts","sourceRoot":"","sources":["../../../../../src/main_thread/text_displayer/native/native_text_displayer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,aAAa,EACd,MAAM,6CAA6C,CAAC;AAIrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGpD,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAGnE;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,mBAAoB,YAAW,cAAc;IAChE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA+B;IAE7D,OAAO,CAAC,SAAS,CAAmB;IAEpC;;OAEG;gBACS,YAAY,EAAE,aAAa;IASvC;;;;OAIG;IACI,YAAY,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,EAAE;IA8FxD;;;;;OAKG;IACI,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE;IAKzD;;;OAGG;IACI,iBAAiB,IAAI,MAAM,EAAE;IAI7B,KAAK,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"native_text_displayer.d.ts","sourceRoot":"","sources":["../../../../../src/main_thread/text_displayer/native/native_text_displayer.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,aAAa,EACd,MAAM,6CAA6C,CAAC;AAIrD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGpD,OAAO,KAAK,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAGnE;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,mBAAoB,YAAW,cAAc;IAChE,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmB;IAC1C,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA+B;IAE7D,OAAO,CAAC,SAAS,CAAmB;IAEpC;;OAEG;gBACS,YAAY,EAAE,aAAa;IASvC;;;;OAIG;IACI,YAAY,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,EAAE;IA8FxD;;;;;OAKG;IACI,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE;IAKzD;;;OAGG;IACI,iBAAiB,IAAI,MAAM,EAAE;IAI7B,KAAK,IAAI,IAAI;IAMb,IAAI,IAAI,IAAI;IAoBnB,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,kBAAkB;CAoB3B;AAED,uEAAuE;AACvE,MAAM,WAAW,kCAAkC;IACjD,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,IAAI,EAAE,MAAM,CAAC;IACb;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,2DAA2D;IAC3D,KAAK,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,0DAA0D;IAC1D,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B"}
|
|
@@ -129,22 +129,7 @@ export default class NativeTextDisplayer {
|
|
|
129
129
|
reset() {
|
|
130
130
|
log.debug("NTD: Aborting NativeTextDisplayer");
|
|
131
131
|
this._removeData(0, Infinity);
|
|
132
|
-
|
|
133
|
-
if (_trackElement !== undefined && _videoElement.hasChildNodes()) {
|
|
134
|
-
try {
|
|
135
|
-
_videoElement.removeChild(_trackElement);
|
|
136
|
-
}
|
|
137
|
-
catch (_e) {
|
|
138
|
-
log.warn("NTD: Can't remove track element from the video");
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
// Ugly trick to work-around browser bugs by refreshing its mode
|
|
142
|
-
const oldMode = this._track.mode;
|
|
143
|
-
this._track.mode = "disabled";
|
|
144
|
-
this._track.mode = oldMode;
|
|
145
|
-
if (this._trackElement !== undefined) {
|
|
146
|
-
this._trackElement.innerHTML = "";
|
|
147
|
-
}
|
|
132
|
+
this._clearTrackElement();
|
|
148
133
|
}
|
|
149
134
|
stop() {
|
|
150
135
|
log.debug("NTD: Aborting NativeTextDisplayer");
|
|
@@ -178,6 +163,24 @@ export default class NativeTextDisplayer {
|
|
|
178
163
|
}
|
|
179
164
|
this._buffered.remove(start, end);
|
|
180
165
|
}
|
|
166
|
+
_clearTrackElement() {
|
|
167
|
+
const { _trackElement, _videoElement } = this;
|
|
168
|
+
if (_trackElement !== undefined && _videoElement.hasChildNodes()) {
|
|
169
|
+
try {
|
|
170
|
+
_videoElement.removeChild(_trackElement);
|
|
171
|
+
}
|
|
172
|
+
catch (_e) {
|
|
173
|
+
log.warn("NTD: Can't remove track element from the video");
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
// Ugly trick to work-around browser bugs by refreshing its mode
|
|
177
|
+
const oldMode = this._track.mode;
|
|
178
|
+
this._track.mode = "disabled";
|
|
179
|
+
this._track.mode = oldMode;
|
|
180
|
+
if (this._trackElement !== undefined) {
|
|
181
|
+
this._trackElement.innerHTML = "";
|
|
182
|
+
}
|
|
183
|
+
}
|
|
181
184
|
}
|
|
182
185
|
/*
|
|
183
186
|
* The following ugly code is here to provide a compile-time check that an
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync_or_async.d.ts","sourceRoot":"","sources":["../../../src/utils/sync_or_async.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC;;;OAGG;IACH,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC;IACpB;;;;OAIG;IACH,eAAe,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;CAC/B;AAED,QAAA,MAAM,WAAW;IACf;;;;OAIG;eACQ,CAAC,OAAO,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;IAS3C;;;;OAIG;gBACS,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"sync_or_async.d.ts","sourceRoot":"","sources":["../../../src/utils/sync_or_async.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC;;;OAGG;IACH,SAAS,EAAE,CAAC,GAAG,IAAI,CAAC;IACpB;;;;OAIG;IACH,eAAe,IAAI,OAAO,CAAC,CAAC,CAAC,CAAC;CAC/B;AAED,QAAA,MAAM,WAAW;IACf;;;;OAIG;eACQ,CAAC,OAAO,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;IAS3C;;;;OAIG;gBACS,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC;CActD,CAAC;AAEF,eAAe,WAAW,CAAC"}
|
package/dist/mpd-parser.wasm
CHANGED
|
Binary file
|
package/dist/rx-player.js
CHANGED
|
@@ -8762,6 +8762,9 @@
|
|
|
8762
8762
|
const session = mediaKeys.createSession();
|
|
8763
8763
|
const initData = generatePlayReadyInitData(DUMMY_PLAY_READY_HEADER);
|
|
8764
8764
|
await session.generateRequest("cenc", initData);
|
|
8765
|
+
session.close().catch(() => {
|
|
8766
|
+
log_default.warn("DRM: Failed to close the dummy session");
|
|
8767
|
+
});
|
|
8765
8768
|
} catch (err) {
|
|
8766
8769
|
log_default.debug("DRM: KeySystemAccess was granted but it is not usable");
|
|
8767
8770
|
throw err;
|
|
@@ -18714,7 +18717,9 @@
|
|
|
18714
18717
|
ret = resolved;
|
|
18715
18718
|
}, noop_default);
|
|
18716
18719
|
return {
|
|
18717
|
-
syncValue
|
|
18720
|
+
get syncValue() {
|
|
18721
|
+
return ret;
|
|
18722
|
+
},
|
|
18718
18723
|
getValueAsAsync() {
|
|
18719
18724
|
return val;
|
|
18720
18725
|
}
|
|
@@ -20751,7 +20756,7 @@
|
|
|
20751
20756
|
*/
|
|
20752
20757
|
constructor(settings) {
|
|
20753
20758
|
super();
|
|
20754
|
-
this.
|
|
20759
|
+
this._initSettings = settings;
|
|
20755
20760
|
this._initCanceller = new TaskCanceller();
|
|
20756
20761
|
this._manifest = null;
|
|
20757
20762
|
this._decryptionCapabilities = { status: "uninitialized", value: null };
|
|
@@ -20826,6 +20831,10 @@
|
|
|
20826
20831
|
dispose() {
|
|
20827
20832
|
this._initCanceller.cancel();
|
|
20828
20833
|
}
|
|
20834
|
+
/**
|
|
20835
|
+
* Callback called when an error interrupting playback arised.
|
|
20836
|
+
* @param {*} err
|
|
20837
|
+
*/
|
|
20829
20838
|
_onFatalError(err) {
|
|
20830
20839
|
if (this._initCanceller.isUsed()) {
|
|
20831
20840
|
return;
|
|
@@ -20833,10 +20842,16 @@
|
|
|
20833
20842
|
this._initCanceller.cancel();
|
|
20834
20843
|
this.trigger("error", err);
|
|
20835
20844
|
}
|
|
20845
|
+
/**
|
|
20846
|
+
* Initialize decryption mechanisms if needed and begin creating and relying
|
|
20847
|
+
* on the initial `MediaSourceInterface` for this content.
|
|
20848
|
+
* @param {HTMLMediaElement|null} mediaElement
|
|
20849
|
+
* @returns {Promise.<Object>}
|
|
20850
|
+
*/
|
|
20836
20851
|
_initializeMediaSourceAndDecryption(mediaElement) {
|
|
20837
20852
|
const initCanceller = this._initCanceller;
|
|
20838
20853
|
return createCancellablePromise(initCanceller.signal, (resolve) => {
|
|
20839
|
-
const { keySystems } = this.
|
|
20854
|
+
const { keySystems } = this._initSettings;
|
|
20840
20855
|
const { statusRef: drmInitRef, contentDecryptor } = initializeContentDecryption(
|
|
20841
20856
|
mediaElement,
|
|
20842
20857
|
keySystems,
|
|
@@ -20953,7 +20968,7 @@
|
|
|
20953
20968
|
startAt,
|
|
20954
20969
|
textTrackOptions,
|
|
20955
20970
|
transport
|
|
20956
|
-
} = this.
|
|
20971
|
+
} = this._initSettings;
|
|
20957
20972
|
const initCanceller = this._initCanceller;
|
|
20958
20973
|
assert(this._manifest !== null);
|
|
20959
20974
|
let manifest;
|
|
@@ -21082,15 +21097,10 @@
|
|
|
21082
21097
|
return this._onFatalError(error);
|
|
21083
21098
|
}
|
|
21084
21099
|
let textDisplayerInterface = null;
|
|
21085
|
-
|
|
21086
|
-
|
|
21087
|
-
|
|
21088
|
-
|
|
21089
|
-
this._settings.textTrackOptions.textTrackElement
|
|
21090
|
-
);
|
|
21091
|
-
} else if (features_default.nativeTextDisplayer !== null) {
|
|
21092
|
-
textDisplayer = new features_default.nativeTextDisplayer(mediaElement);
|
|
21093
|
-
}
|
|
21100
|
+
const textDisplayer = createTextDisplayer(
|
|
21101
|
+
mediaElement,
|
|
21102
|
+
this._initSettings.textTrackOptions
|
|
21103
|
+
);
|
|
21094
21104
|
if (textDisplayer !== null) {
|
|
21095
21105
|
const sender = new MainThreadTextDisplayerInterface(textDisplayer);
|
|
21096
21106
|
textDisplayerInterface = sender;
|
|
@@ -21529,6 +21539,17 @@
|
|
|
21529
21539
|
}
|
|
21530
21540
|
}
|
|
21531
21541
|
};
|
|
21542
|
+
function createTextDisplayer(mediaElement, textTrackOptions) {
|
|
21543
|
+
if (textTrackOptions.textTrackMode === "html" && features_default.htmlTextDisplayer !== null) {
|
|
21544
|
+
return new features_default.htmlTextDisplayer(
|
|
21545
|
+
mediaElement,
|
|
21546
|
+
textTrackOptions.textTrackElement
|
|
21547
|
+
);
|
|
21548
|
+
} else if (features_default.nativeTextDisplayer !== null) {
|
|
21549
|
+
return new features_default.nativeTextDisplayer(mediaElement);
|
|
21550
|
+
}
|
|
21551
|
+
return null;
|
|
21552
|
+
}
|
|
21532
21553
|
function updateKeyIdsDecipherabilityOnManifest(manifest, whitelistedKeyIds, blacklistedKeyIds, delistedKeyIds) {
|
|
21533
21554
|
manifest.updateRepresentationsDeciperability((ctx) => {
|
|
21534
21555
|
const { representation } = ctx;
|
|
@@ -31875,20 +31896,7 @@
|
|
|
31875
31896
|
reset() {
|
|
31876
31897
|
log_default.debug("NTD: Aborting NativeTextDisplayer");
|
|
31877
31898
|
this._removeData(0, Infinity);
|
|
31878
|
-
|
|
31879
|
-
if (_trackElement !== void 0 && _videoElement.hasChildNodes()) {
|
|
31880
|
-
try {
|
|
31881
|
-
_videoElement.removeChild(_trackElement);
|
|
31882
|
-
} catch (_e) {
|
|
31883
|
-
log_default.warn("NTD: Can't remove track element from the video");
|
|
31884
|
-
}
|
|
31885
|
-
}
|
|
31886
|
-
const oldMode = this._track.mode;
|
|
31887
|
-
this._track.mode = "disabled";
|
|
31888
|
-
this._track.mode = oldMode;
|
|
31889
|
-
if (this._trackElement !== void 0) {
|
|
31890
|
-
this._trackElement.innerHTML = "";
|
|
31891
|
-
}
|
|
31899
|
+
this._clearTrackElement();
|
|
31892
31900
|
}
|
|
31893
31901
|
stop() {
|
|
31894
31902
|
log_default.debug("NTD: Aborting NativeTextDisplayer");
|
|
@@ -31921,6 +31929,22 @@
|
|
|
31921
31929
|
}
|
|
31922
31930
|
this._buffered.remove(start, end);
|
|
31923
31931
|
}
|
|
31932
|
+
_clearTrackElement() {
|
|
31933
|
+
const { _trackElement, _videoElement } = this;
|
|
31934
|
+
if (_trackElement !== void 0 && _videoElement.hasChildNodes()) {
|
|
31935
|
+
try {
|
|
31936
|
+
_videoElement.removeChild(_trackElement);
|
|
31937
|
+
} catch (_e) {
|
|
31938
|
+
log_default.warn("NTD: Can't remove track element from the video");
|
|
31939
|
+
}
|
|
31940
|
+
}
|
|
31941
|
+
const oldMode = this._track.mode;
|
|
31942
|
+
this._track.mode = "disabled";
|
|
31943
|
+
this._track.mode = oldMode;
|
|
31944
|
+
if (this._trackElement !== void 0) {
|
|
31945
|
+
this._trackElement.innerHTML = "";
|
|
31946
|
+
}
|
|
31947
|
+
}
|
|
31924
31948
|
};
|
|
31925
31949
|
if (define_ENVIRONMENT_default.CURRENT_ENV === define_ENVIRONMENT_default.DEV) {
|
|
31926
31950
|
let _checkType = function(input) {
|
|
@@ -36911,7 +36935,7 @@ ${event}`
|
|
|
36911
36935
|
} = parseConstructorOptions(options);
|
|
36912
36936
|
videoElement.preload = "auto";
|
|
36913
36937
|
this.version = /* PLAYER_VERSION */
|
|
36914
|
-
"4.2.0-dev.
|
|
36938
|
+
"4.2.0-dev.2024101500";
|
|
36915
36939
|
this.log = log_default;
|
|
36916
36940
|
this.state = "STOPPED";
|
|
36917
36941
|
this.videoElement = videoElement;
|
|
@@ -39452,7 +39476,7 @@ ${event}`
|
|
|
39452
39476
|
_Player._priv_currentlyUsedVideoElements = /* @__PURE__ */ new WeakSet();
|
|
39453
39477
|
var Player = _Player;
|
|
39454
39478
|
Player.version = /* PLAYER_VERSION */
|
|
39455
|
-
"4.2.0-dev.
|
|
39479
|
+
"4.2.0-dev.2024101500";
|
|
39456
39480
|
var public_api_default = Player;
|
|
39457
39481
|
|
|
39458
39482
|
// src/main_thread/api/index.ts
|