rx-player 4.2.0-dev.2024080600 → 4.2.0-dev.2024080900
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/VERSION +1 -1
- package/dist/commonjs/main_thread/api/public_api.js +2 -2
- package/dist/commonjs/main_thread/decrypt/attach_media_keys.d.ts +6 -1
- package/dist/commonjs/main_thread/decrypt/attach_media_keys.d.ts.map +1 -1
- package/dist/commonjs/main_thread/decrypt/attach_media_keys.js +2 -1
- package/dist/commonjs/main_thread/decrypt/content_decryptor.d.ts.map +1 -1
- package/dist/commonjs/main_thread/decrypt/content_decryptor.js +2 -1
- package/dist/commonjs/main_thread/decrypt/find_key_system.d.ts +17 -5
- package/dist/commonjs/main_thread/decrypt/find_key_system.d.ts.map +1 -1
- package/dist/commonjs/main_thread/decrypt/find_key_system.js +35 -26
- package/dist/commonjs/main_thread/decrypt/get_media_keys.d.ts +5 -0
- package/dist/commonjs/main_thread/decrypt/get_media_keys.d.ts.map +1 -1
- package/dist/commonjs/main_thread/decrypt/get_media_keys.js +4 -2
- package/dist/commonjs/main_thread/decrypt/utils/media_keys_infos_store.d.ts +5 -0
- package/dist/commonjs/main_thread/decrypt/utils/media_keys_infos_store.d.ts.map +1 -1
- package/dist/es2017/main_thread/api/public_api.js +2 -2
- package/dist/es2017/main_thread/decrypt/attach_media_keys.d.ts +6 -1
- package/dist/es2017/main_thread/decrypt/attach_media_keys.d.ts.map +1 -1
- package/dist/es2017/main_thread/decrypt/attach_media_keys.js +2 -1
- package/dist/es2017/main_thread/decrypt/content_decryptor.d.ts.map +1 -1
- package/dist/es2017/main_thread/decrypt/content_decryptor.js +2 -1
- package/dist/es2017/main_thread/decrypt/find_key_system.d.ts +17 -5
- package/dist/es2017/main_thread/decrypt/find_key_system.d.ts.map +1 -1
- package/dist/es2017/main_thread/decrypt/find_key_system.js +40 -35
- package/dist/es2017/main_thread/decrypt/get_media_keys.d.ts +5 -0
- package/dist/es2017/main_thread/decrypt/get_media_keys.d.ts.map +1 -1
- package/dist/es2017/main_thread/decrypt/get_media_keys.js +3 -1
- package/dist/es2017/main_thread/decrypt/utils/media_keys_infos_store.d.ts +5 -0
- package/dist/es2017/main_thread/decrypt/utils/media_keys_infos_store.d.ts.map +1 -1
- package/dist/rx-player.js +15 -15
- package/package.json +1 -1
- package/src/main_thread/api/public_api.ts +2 -2
- package/src/main_thread/decrypt/__tests__/__global__/media_key_system_access.test.ts +376 -102
- package/src/main_thread/decrypt/__tests__/__global__/utils.ts +4 -23
- package/src/main_thread/decrypt/attach_media_keys.ts +7 -0
- package/src/main_thread/decrypt/content_decryptor.ts +3 -1
- package/src/main_thread/decrypt/find_key_system.ts +53 -43
- package/src/main_thread/decrypt/get_media_keys.ts +8 -1
- package/src/main_thread/decrypt/utils/media_keys_infos_store.ts +6 -0
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
4.2.0-dev.
|
|
1
|
+
4.2.0-dev.2024080900
|
|
@@ -160,7 +160,7 @@ var Player = /** @class */ (function (_super) {
|
|
|
160
160
|
// Workaround to support Firefox autoplay on FF 42.
|
|
161
161
|
// See: https://bugzilla.mozilla.org/show_bug.cgi?id=1194624
|
|
162
162
|
videoElement.preload = "auto";
|
|
163
|
-
_this.version = /* PLAYER_VERSION */ "4.2.0-dev.
|
|
163
|
+
_this.version = /* PLAYER_VERSION */ "4.2.0-dev.2024080900";
|
|
164
164
|
_this.log = log_1.default;
|
|
165
165
|
_this.state = "STOPPED";
|
|
166
166
|
_this.videoElement = videoElement;
|
|
@@ -2628,5 +2628,5 @@ var Player = /** @class */ (function (_super) {
|
|
|
2628
2628
|
Player._priv_currentlyUsedVideoElements = new WeakSet();
|
|
2629
2629
|
return Player;
|
|
2630
2630
|
}(event_emitter_1.default));
|
|
2631
|
-
Player.version = /* PLAYER_VERSION */ "4.2.0-dev.
|
|
2631
|
+
Player.version = /* PLAYER_VERSION */ "4.2.0-dev.2024080900";
|
|
2632
2632
|
exports.default = Player;
|
|
@@ -34,7 +34,7 @@ export declare function disableMediaKeys(mediaElement: IMediaElement): Promise<u
|
|
|
34
34
|
* @param {Object} cancelSignal
|
|
35
35
|
* @returns {Promise}
|
|
36
36
|
*/
|
|
37
|
-
export default function attachMediaKeys(mediaElement: IMediaElement, { emeImplementation, keySystemOptions, loadedSessionsStore, mediaKeySystemAccess, mediaKeys, }: IMediaKeysState, cancelSignal: CancellationSignal): Promise<void>;
|
|
37
|
+
export default function attachMediaKeys(mediaElement: IMediaElement, { emeImplementation, keySystemOptions, askedConfiguration, loadedSessionsStore, mediaKeySystemAccess, mediaKeys, }: IMediaKeysState, cancelSignal: CancellationSignal): Promise<void>;
|
|
38
38
|
/** MediaKeys and associated state attached to a media element. */
|
|
39
39
|
export interface IMediaKeysState {
|
|
40
40
|
/** Options set when the MediaKeys has been attached. */
|
|
@@ -45,6 +45,11 @@ export interface IMediaKeysState {
|
|
|
45
45
|
mediaKeySystemAccess: MediaKeySystemAccess | ICustomMediaKeySystemAccess;
|
|
46
46
|
/** The MediaKeys instance to attach to the media element. */
|
|
47
47
|
mediaKeys: MediaKeys | ICustomMediaKeys;
|
|
48
|
+
/**
|
|
49
|
+
* The MediaKeySystemConfiguration that has been provided to the
|
|
50
|
+
* `requestMediaKeySystemAccess` API.
|
|
51
|
+
*/
|
|
52
|
+
askedConfiguration: MediaKeySystemConfiguration;
|
|
48
53
|
/**
|
|
49
54
|
* The chosen EME implementation abstraction linked to `mediaKeys`.
|
|
50
55
|
* Different EME implementation might for example be used while debugging or
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attach_media_keys.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/decrypt/attach_media_keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,KAAK,EACV,gBAAgB,EAChB,2BAA2B,EAC3B,qBAAqB,EACtB,MAAM,kBAAkB,CAAC;AAK1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,mBAAmB,MAAM,+BAA+B,CAAC;AAGrE;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAI9E;AAED;;;;;;;;GAQG;AACH,wBAA8B,eAAe,CAC3C,YAAY,EAAE,aAAa,EAC3B,EACE,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,SAAS,GACV,EAAE,eAAe,EAClB,YAAY,EAAE,kBAAkB,GAC/B,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"attach_media_keys.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/decrypt/attach_media_keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,KAAK,EACV,gBAAgB,EAChB,2BAA2B,EAC3B,qBAAqB,EACtB,MAAM,kBAAkB,CAAC;AAK1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,mBAAmB,MAAM,+BAA+B,CAAC;AAGrE;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAI9E;AAED;;;;;;;;GAQG;AACH,wBAA8B,eAAe,CAC3C,YAAY,EAAE,aAAa,EAC3B,EACE,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,SAAS,GACV,EAAE,eAAe,EAClB,YAAY,EAAE,kBAAkB,GAC/B,OAAO,CAAC,IAAI,CAAC,CAsCf;AAED,kEAAkE;AAClE,MAAM,WAAW,eAAe;IAC9B,wDAAwD;IACxD,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,gEAAgE;IAChE,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,uEAAuE;IACvE,oBAAoB,EAAE,oBAAoB,GAAG,2BAA2B,CAAC;IACzE,6DAA6D;IAC7D,SAAS,EAAE,SAAS,GAAG,gBAAgB,CAAC;IACxC;;;OAGG;IACH,kBAAkB,EAAE,2BAA2B,CAAC;IAChD;;;;OAIG;IACH,iBAAiB,EAAE,qBAAqB,CAAC;CAC1C"}
|
|
@@ -82,7 +82,7 @@ function disableMediaKeys(mediaElement) {
|
|
|
82
82
|
function attachMediaKeys(mediaElement_1, _a, cancelSignal_1) {
|
|
83
83
|
return __awaiter(this, arguments, void 0, function (mediaElement, _b, cancelSignal) {
|
|
84
84
|
var previousState, closeAllSessions;
|
|
85
|
-
var emeImplementation = _b.emeImplementation, keySystemOptions = _b.keySystemOptions, loadedSessionsStore = _b.loadedSessionsStore, mediaKeySystemAccess = _b.mediaKeySystemAccess, mediaKeys = _b.mediaKeys;
|
|
85
|
+
var emeImplementation = _b.emeImplementation, keySystemOptions = _b.keySystemOptions, askedConfiguration = _b.askedConfiguration, loadedSessionsStore = _b.loadedSessionsStore, mediaKeySystemAccess = _b.mediaKeySystemAccess, mediaKeys = _b.mediaKeys;
|
|
86
86
|
return __generator(this, function (_c) {
|
|
87
87
|
switch (_c.label) {
|
|
88
88
|
case 0:
|
|
@@ -104,6 +104,7 @@ function attachMediaKeys(mediaElement_1, _a, cancelSignal_1) {
|
|
|
104
104
|
mediaKeySystemAccess: mediaKeySystemAccess,
|
|
105
105
|
mediaKeys: mediaKeys,
|
|
106
106
|
loadedSessionsStore: loadedSessionsStore,
|
|
107
|
+
askedConfiguration: askedConfiguration,
|
|
107
108
|
});
|
|
108
109
|
if (mediaElement.mediaKeys === mediaKeys) {
|
|
109
110
|
return [2 /*return*/];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content_decryptor.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/decrypt/content_decryptor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAO9E,OAAO,KAAK,EAAE,gBAAgB,EAAgB,MAAM,oBAAoB,CAAC;AAIzE,OAAO,YAAY,MAAM,2BAA2B,CAAC;AAerD,OAAO,KAAK,EACV,eAAe,EAEf,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,SAAS,CAAC;AACjB,OAAO,EAA8B,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAU5E,OAAO,KAAK,gBAAgB,MAAM,4BAA4B,CAAC;AAE/D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,YAAY,CAAC,sBAAsB,CAAC;IAChF;;;;;;;;;;;;OAYG;IACI,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAEpC;;;OAGG;IACI,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAE3B;;;;;;;OAOG;IACH,OAAO,CAAC,UAAU,CAA6B;IAE/C;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB,CAAuB;IAE/C;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAgB;IAElC;;;;;;;OAOG;IACH,OAAO,CAAC,cAAc,CAAoB;IAE1C;;OAEG;IACH,OAAO,CAAC,4BAA4B,CAAoB;IAExD;;;;;OAKG;WACW,UAAU,IAAI,OAAO;IAInC;;;;;;;;;;;;;OAaG;gBACS,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,gBAAgB,EAAE;IAqEtE;;;;OAIG;IACI,QAAQ,IAAI,qBAAqB;IAIxC;;;;;;;;OAQG;IACI,MAAM,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"content_decryptor.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/decrypt/content_decryptor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAO9E,OAAO,KAAK,EAAE,gBAAgB,EAAgB,MAAM,oBAAoB,CAAC;AAIzE,OAAO,YAAY,MAAM,2BAA2B,CAAC;AAerD,OAAO,KAAK,EACV,eAAe,EAEf,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,SAAS,CAAC;AACjB,OAAO,EAA8B,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAU5E,OAAO,KAAK,gBAAgB,MAAM,4BAA4B,CAAC;AAE/D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,YAAY,CAAC,sBAAsB,CAAC;IAChF;;;;;;;;;;;;OAYG;IACI,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAEpC;;;OAGG;IACI,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAE3B;;;;;;;OAOG;IACH,OAAO,CAAC,UAAU,CAA6B;IAE/C;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB,CAAuB;IAE/C;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAgB;IAElC;;;;;;;OAOG;IACH,OAAO,CAAC,cAAc,CAAoB;IAE1C;;OAEG;IACH,OAAO,CAAC,4BAA4B,CAAoB;IAExD;;;;;OAKG;WACW,UAAU,IAAI,OAAO;IAInC;;;;;;;;;;;;;OAaG;gBACS,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,gBAAgB,EAAE;IAqEtE;;;;OAIG;IACI,QAAQ,IAAI,qBAAqB;IAIxC;;;;;;;;OAQG;IACI,MAAM,IAAI,IAAI;IAgFrB;;;;;;OAMG;IACI,OAAO;IAYd;;;;;;;;;;OAUG;IACI,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAgB7E;;;;;;;;OAQG;IACI,oBAAoB,CAAC,kBAAkB,EAAE,eAAe,GAAG,IAAI;IAqBtE;;;;;;;;OAQG;YACW,0BAA0B;IAiTxC,OAAO,CAAC,8BAA8B;IAyItC;;;;;;OAMG;IACH,OAAO,CAAC,wBAAwB;IAmChC;;;;;;;;;OASG;IACH,OAAO,CAAC,aAAa;IAuBrB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAOlB;;;OAGG;IACH,OAAO,CAAC,4BAA4B;IAUpC;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IAM1B;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;CAQ7B;AAeD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,cAAc,EAAE,UAAU,EAAE,EAC5B,YAAY,EAAE,UAAU,EAAE,GACzB,UAAU,EAAE,CAId;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,UAAU,EAAE,GACtB,UAAU,EAAE,CAUd;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,kBAAkB,EAAE,wBAAwB,EAC5C,SAAS,EAAE,UAAU,EAAE,GACtB,UAAU,EAAE,CAcd"}
|
|
@@ -260,7 +260,7 @@ var ContentDecryptor = /** @class */ (function (_super) {
|
|
|
260
260
|
return;
|
|
261
261
|
}
|
|
262
262
|
var _a = this._stateData.data, mediaElement = _a.mediaElement, mediaKeysInfo = _a.mediaKeysInfo;
|
|
263
|
-
var options = mediaKeysInfo.options, mediaKeys = mediaKeysInfo.mediaKeys, mediaKeySystemAccess = mediaKeysInfo.mediaKeySystemAccess, stores = mediaKeysInfo.stores;
|
|
263
|
+
var options = mediaKeysInfo.options, mediaKeys = mediaKeysInfo.mediaKeys, mediaKeySystemAccess = mediaKeysInfo.mediaKeySystemAccess, stores = mediaKeysInfo.stores, askedConfiguration = mediaKeysInfo.askedConfiguration;
|
|
264
264
|
var shouldDisableLock = options.disableMediaKeysAttachmentLock === true;
|
|
265
265
|
if (shouldDisableLock) {
|
|
266
266
|
this._stateData = {
|
|
@@ -281,6 +281,7 @@ var ContentDecryptor = /** @class */ (function (_super) {
|
|
|
281
281
|
loadedSessionsStore: stores.loadedSessionsStore,
|
|
282
282
|
mediaKeySystemAccess: mediaKeySystemAccess,
|
|
283
283
|
mediaKeys: mediaKeys,
|
|
284
|
+
askedConfiguration: askedConfiguration,
|
|
284
285
|
keySystemOptions: options,
|
|
285
286
|
};
|
|
286
287
|
log_1.default.debug("DRM: Attaching current MediaKeys");
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import type { IMediaElement } from "../../compat/browser_compatibility_types";
|
|
17
17
|
import type { ICustomMediaKeySystemAccess } from "../../compat/eme";
|
|
18
|
-
import type {
|
|
18
|
+
import type { IKeySystemOption } from "../../public_types";
|
|
19
19
|
import type { CancellationSignal } from "../../utils/task_canceller";
|
|
20
20
|
export type ICodecSupportList = Array<{
|
|
21
21
|
codec: string;
|
|
@@ -23,8 +23,19 @@ export type ICodecSupportList = Array<{
|
|
|
23
23
|
result: boolean;
|
|
24
24
|
}>;
|
|
25
25
|
export interface IMediaKeySystemAccessInfos {
|
|
26
|
+
/** `MediaKeySystemAccess` to use to create `MediaKeys` instances. */
|
|
26
27
|
mediaKeySystemAccess: MediaKeySystemAccess | ICustomMediaKeySystemAccess;
|
|
28
|
+
/**
|
|
29
|
+
* The MediaKeySystemConfiguration that has been provided to the
|
|
30
|
+
* `requestMediaKeySystemAccess` API.
|
|
31
|
+
*/
|
|
32
|
+
askedConfiguration: MediaKeySystemConfiguration;
|
|
33
|
+
/**
|
|
34
|
+
* Corresponding `keySystems` element that has led to the creation of the
|
|
35
|
+
* `MediaKeySystemAccess`.
|
|
36
|
+
*/
|
|
27
37
|
options: IKeySystemOption;
|
|
38
|
+
/** Information on supported or unsupported codec on that `MediaKeySystemAccess`. */
|
|
28
39
|
codecSupport: ICodecSupportList;
|
|
29
40
|
}
|
|
30
41
|
export interface IReuseMediaKeySystemAccessEvent {
|
|
@@ -38,12 +49,13 @@ export interface ICreateMediaKeySystemAccessEvent {
|
|
|
38
49
|
export type IFoundMediaKeySystemAccessEvent = IReuseMediaKeySystemAccessEvent | ICreateMediaKeySystemAccessEvent;
|
|
39
50
|
/**
|
|
40
51
|
* Extract from the current mediaKeys the supported Codecs.
|
|
41
|
-
* @param {Object
|
|
42
|
-
*
|
|
43
|
-
* @param {Object | undefined} mksConfiguration - The result of
|
|
52
|
+
* @param {Object} initialConfiguration - The MediaKeySystemConfiguration given
|
|
53
|
+
* to the `navigator.requestMediaKeySystemAccess` API.
|
|
54
|
+
* @param {Object | undefined} mksConfiguration - The result of
|
|
55
|
+
* getConfiguration() of the media keys.
|
|
44
56
|
* @return {Array} The list of supported codec by the CDM.
|
|
45
57
|
*/
|
|
46
|
-
export declare function extractCodecSupportListFromConfiguration(
|
|
58
|
+
export declare function extractCodecSupportListFromConfiguration(initialConfiguration: MediaKeySystemConfiguration, mksConfiguration: MediaKeySystemConfiguration): ICodecSupportList;
|
|
47
59
|
/**
|
|
48
60
|
* Try to find a compatible key system from the keySystems array given.
|
|
49
61
|
*
|
|
@@ -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,
|
|
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;AAyNrC;;;;;;;GAOG;AACH,wBAAgB,wCAAwC,CACtD,oBAAoB,EAAE,2BAA2B,EACjD,gBAAgB,EAAE,2BAA2B,GAC5C,iBAAiB,CA2CnB;AACD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAC7C,YAAY,EAAE,aAAa,EAC3B,iBAAiB,EAAE,gBAAgB,EAAE,EACrC,YAAY,EAAE,kBAAkB,GAC/B,OAAO,CAAC,+BAA+B,CAAC,CA+H1C;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,uBAAuB,EAAE,2BAA2B,EAAE,+FAmBvD"}
|
|
@@ -119,7 +119,7 @@ var media_keys_infos_store_1 = require("./utils/media_keys_infos_store");
|
|
|
119
119
|
* @param {Object} currentKeySystemOptions
|
|
120
120
|
* @returns {null|Object}
|
|
121
121
|
*/
|
|
122
|
-
function checkCachedMediaKeySystemAccess(keySystems, currentKeySystemAccess, currentKeySystemOptions) {
|
|
122
|
+
function checkCachedMediaKeySystemAccess(keySystems, askedConfiguration, currentKeySystemAccess, currentKeySystemOptions) {
|
|
123
123
|
var mksConfiguration = currentKeySystemAccess.getConfiguration();
|
|
124
124
|
if ((0, should_renew_media_key_system_access_1.default)() || (0, is_null_or_undefined_1.default)(mksConfiguration)) {
|
|
125
125
|
return null;
|
|
@@ -144,6 +144,7 @@ function checkCachedMediaKeySystemAccess(keySystems, currentKeySystemAccess, cur
|
|
|
144
144
|
return {
|
|
145
145
|
keySystemOptions: firstCompatibleOption,
|
|
146
146
|
keySystemAccess: currentKeySystemAccess,
|
|
147
|
+
askedConfiguration: askedConfiguration,
|
|
147
148
|
};
|
|
148
149
|
}
|
|
149
150
|
return null;
|
|
@@ -286,23 +287,21 @@ function buildKeySystemConfigurations(keySystemTypeInfo) {
|
|
|
286
287
|
}
|
|
287
288
|
/**
|
|
288
289
|
* Extract from the current mediaKeys the supported Codecs.
|
|
289
|
-
* @param {Object
|
|
290
|
-
*
|
|
291
|
-
* @param {Object | undefined} mksConfiguration - The result of
|
|
290
|
+
* @param {Object} initialConfiguration - The MediaKeySystemConfiguration given
|
|
291
|
+
* to the `navigator.requestMediaKeySystemAccess` API.
|
|
292
|
+
* @param {Object | undefined} mksConfiguration - The result of
|
|
293
|
+
* getConfiguration() of the media keys.
|
|
292
294
|
* @return {Array} The list of supported codec by the CDM.
|
|
293
295
|
*/
|
|
294
|
-
function extractCodecSupportListFromConfiguration(
|
|
295
|
-
var _a, _b;
|
|
296
|
-
var
|
|
297
|
-
var
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
var testedCodecs = testedAudioCodecs.concat(testedVideoCodecs);
|
|
304
|
-
var supportedVideoCodecs = (_a = mksConfiguration.videoCapabilities) === null || _a === void 0 ? void 0 : _a.map(function (entry) { return entry.contentType; });
|
|
305
|
-
var supportedAudioCodecs = (_b = mksConfiguration.audioCapabilities) === null || _b === void 0 ? void 0 : _b.map(function (entry) { return entry.contentType; });
|
|
296
|
+
function extractCodecSupportListFromConfiguration(initialConfiguration, mksConfiguration) {
|
|
297
|
+
var _a, _b, _c, _d, _e, _f;
|
|
298
|
+
var testedAudioCodecs = (_b = (_a = initialConfiguration.audioCapabilities) === null || _a === void 0 ? void 0 : _a.map(function (v) { return v.contentType; })) !== null && _b !== void 0 ? _b : [];
|
|
299
|
+
var testedVideoCodecs = (_d = (_c = initialConfiguration.videoCapabilities) === null || _c === void 0 ? void 0 : _c.map(function (v) { return v.contentType; })) !== null && _d !== void 0 ? _d : [];
|
|
300
|
+
var testedCodecs = testedAudioCodecs
|
|
301
|
+
.concat(testedVideoCodecs)
|
|
302
|
+
.filter(function (c) { return c !== undefined; });
|
|
303
|
+
var supportedVideoCodecs = (_e = mksConfiguration.videoCapabilities) === null || _e === void 0 ? void 0 : _e.map(function (entry) { return entry.contentType; });
|
|
304
|
+
var supportedAudioCodecs = (_f = mksConfiguration.audioCapabilities) === null || _f === void 0 ? void 0 : _f.map(function (entry) { return entry.contentType; });
|
|
306
305
|
var supportedCodecs = __spreadArray(__spreadArray([], __read((supportedVideoCodecs !== null && supportedVideoCodecs !== void 0 ? supportedVideoCodecs : [])), false), __read((supportedAudioCodecs !== null && supportedAudioCodecs !== void 0 ? supportedAudioCodecs : [])), false).filter(function (contentType) { return contentType !== undefined; });
|
|
307
306
|
if (supportedCodecs.length === 0) {
|
|
308
307
|
// Some legacy implementations have issues with `audioCapabilities` and
|
|
@@ -349,15 +348,16 @@ function getMediaKeySystemAccess(mediaElement, keySystemsConfigs, cancelSignal)
|
|
|
349
348
|
if (eme_1.default.implementation === currentState.emeImplementation.implementation) {
|
|
350
349
|
// Fast way to find a compatible keySystem if the currently loaded
|
|
351
350
|
// one as exactly the same compatibility options.
|
|
352
|
-
var cachedKeySystemAccess = checkCachedMediaKeySystemAccess(keySystemsConfigs, currentState.mediaKeySystemAccess, currentState.keySystemOptions);
|
|
351
|
+
var cachedKeySystemAccess = checkCachedMediaKeySystemAccess(keySystemsConfigs, currentState.askedConfiguration, currentState.mediaKeySystemAccess, currentState.keySystemOptions);
|
|
353
352
|
if (cachedKeySystemAccess !== null) {
|
|
354
353
|
log_1.default.info("DRM: Found cached compatible keySystem");
|
|
355
354
|
return Promise.resolve({
|
|
356
355
|
type: "reuse-media-key-system-access",
|
|
357
356
|
value: {
|
|
358
357
|
mediaKeySystemAccess: cachedKeySystemAccess.keySystemAccess,
|
|
358
|
+
askedConfiguration: cachedKeySystemAccess.askedConfiguration,
|
|
359
359
|
options: cachedKeySystemAccess.keySystemOptions,
|
|
360
|
-
codecSupport: extractCodecSupportListFromConfiguration(cachedKeySystemAccess.
|
|
360
|
+
codecSupport: extractCodecSupportListFromConfiguration(cachedKeySystemAccess.askedConfiguration, cachedKeySystemAccess.keySystemAccess.getConfiguration()),
|
|
361
361
|
},
|
|
362
362
|
});
|
|
363
363
|
}
|
|
@@ -401,7 +401,7 @@ function getMediaKeySystemAccess(mediaElement, keySystemsConfigs, cancelSignal)
|
|
|
401
401
|
*/
|
|
402
402
|
function recursivelyTestKeySystems(index) {
|
|
403
403
|
return __awaiter(this, void 0, void 0, function () {
|
|
404
|
-
var chosenType, keyType, keySystemOptions, keySystemConfigurations, keySystemAccess, _1;
|
|
404
|
+
var chosenType, keyType, keySystemOptions, keySystemConfigurations, keySystemAccess, configIdx, keySystemConfiguration, _1;
|
|
405
405
|
return __generator(this, function (_a) {
|
|
406
406
|
switch (_a.label) {
|
|
407
407
|
case 0:
|
|
@@ -419,11 +419,16 @@ function getMediaKeySystemAccess(mediaElement, keySystemsConfigs, cancelSignal)
|
|
|
419
419
|
keySystemConfigurations = buildKeySystemConfigurations(chosenType);
|
|
420
420
|
log_1.default.debug("DRM: Request keysystem access ".concat(keyType, ",") +
|
|
421
421
|
"".concat(index + 1, " of ").concat(keySystemsType.length));
|
|
422
|
+
configIdx = 0;
|
|
422
423
|
_a.label = 1;
|
|
423
424
|
case 1:
|
|
424
|
-
|
|
425
|
-
|
|
425
|
+
if (!(configIdx < keySystemConfigurations.length)) return [3 /*break*/, 6];
|
|
426
|
+
keySystemConfiguration = keySystemConfigurations[configIdx];
|
|
427
|
+
_a.label = 2;
|
|
426
428
|
case 2:
|
|
429
|
+
_a.trys.push([2, 4, , 5]);
|
|
430
|
+
return [4 /*yield*/, testKeySystem(keyType, [keySystemConfiguration])];
|
|
431
|
+
case 3:
|
|
427
432
|
keySystemAccess = _a.sent();
|
|
428
433
|
log_1.default.info("DRM: Found compatible keysystem", keyType, index + 1);
|
|
429
434
|
return [2 /*return*/, {
|
|
@@ -431,17 +436,21 @@ function getMediaKeySystemAccess(mediaElement, keySystemsConfigs, cancelSignal)
|
|
|
431
436
|
value: {
|
|
432
437
|
options: keySystemOptions,
|
|
433
438
|
mediaKeySystemAccess: keySystemAccess,
|
|
434
|
-
|
|
439
|
+
askedConfiguration: keySystemConfiguration,
|
|
440
|
+
codecSupport: extractCodecSupportListFromConfiguration(keySystemConfiguration, keySystemAccess.getConfiguration()),
|
|
435
441
|
},
|
|
436
442
|
}];
|
|
437
|
-
case
|
|
443
|
+
case 4:
|
|
438
444
|
_1 = _a.sent();
|
|
439
|
-
log_1.default.debug("DRM: Rejected access to keysystem", keyType, index + 1);
|
|
445
|
+
log_1.default.debug("DRM: Rejected access to keysystem", keyType, index + 1, configIdx);
|
|
440
446
|
if (cancelSignal.cancellationError !== null) {
|
|
441
447
|
throw cancelSignal.cancellationError;
|
|
442
448
|
}
|
|
443
|
-
return [
|
|
444
|
-
case
|
|
449
|
+
return [3 /*break*/, 5];
|
|
450
|
+
case 5:
|
|
451
|
+
configIdx++;
|
|
452
|
+
return [3 /*break*/, 1];
|
|
453
|
+
case 6: return [2 /*return*/, recursivelyTestKeySystems(index + 1)];
|
|
445
454
|
}
|
|
446
455
|
});
|
|
447
456
|
});
|
|
@@ -23,6 +23,11 @@ import type { IMediaKeySessionStores } from "./types";
|
|
|
23
23
|
export interface IMediaKeysInfos {
|
|
24
24
|
/** The MediaKeySystemAccess which allowed to create the MediaKeys instance. */
|
|
25
25
|
mediaKeySystemAccess: MediaKeySystemAccess | ICustomMediaKeySystemAccess;
|
|
26
|
+
/**
|
|
27
|
+
* The MediaKeySystemConfiguration that has been provided to the
|
|
28
|
+
* `requestMediaKeySystemAccess` API.
|
|
29
|
+
*/
|
|
30
|
+
askedConfiguration: MediaKeySystemConfiguration;
|
|
26
31
|
/** The MediaKeys instance. */
|
|
27
32
|
mediaKeys: MediaKeys | ICustomMediaKeys;
|
|
28
33
|
/** Stores allowing to create and retrieve MediaKeySessions. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get_media_keys.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/decrypt/get_media_keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAE9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAGtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAuBtD,8CAA8C;AAC9C,MAAM,WAAW,eAAe;IAC9B,+EAA+E;IAC/E,oBAAoB,EAAE,oBAAoB,GAAG,2BAA2B,CAAC;IACzE,8BAA8B;IAC9B,SAAS,EAAE,SAAS,GAAG,gBAAgB,CAAC;IACxC,+DAA+D;IAC/D,MAAM,EAAE,sBAAsB,CAAC;IAC/B,qEAAqE;IACrE,OAAO,EAAE,gBAAgB,CAAC;IAC1B,yBAAyB;IACzB,YAAY,EAAE,iBAAiB,CAAC;CACjC;AAED;;;;;;;;;;;;GAYG;AACH,wBAA8B,iBAAiB,CAC7C,YAAY,EAAE,aAAa,EAC3B,iBAAiB,EAAE,gBAAgB,EAAE,EACrC,YAAY,EAAE,kBAAkB,GAC/B,OAAO,CAAC,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"get_media_keys.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/decrypt/get_media_keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAE9E,OAAO,KAAK,EAAE,gBAAgB,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAGtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAE3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAErE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAuBtD,8CAA8C;AAC9C,MAAM,WAAW,eAAe;IAC9B,+EAA+E;IAC/E,oBAAoB,EAAE,oBAAoB,GAAG,2BAA2B,CAAC;IACzE;;;OAGG;IACH,kBAAkB,EAAE,2BAA2B,CAAC;IAChD,8BAA8B;IAC9B,SAAS,EAAE,SAAS,GAAG,gBAAgB,CAAC;IACxC,+DAA+D;IAC/D,MAAM,EAAE,sBAAsB,CAAC;IAC/B,qEAAqE;IACrE,OAAO,EAAE,gBAAgB,CAAC;IAC1B,yBAAyB;IACzB,YAAY,EAAE,iBAAiB,CAAC;CACjC;AAED;;;;;;;;;;;;GAYG;AACH,wBAA8B,iBAAiB,CAC7C,YAAY,EAAE,aAAa,EAC3B,iBAAiB,EAAE,gBAAgB,EAAE,EACrC,YAAY,EAAE,kBAAkB,GAC/B,OAAO,CAAC,eAAe,CAAC,CAmD1B"}
|
|
@@ -89,7 +89,7 @@ function createPersistentSessionsStorage(keySystemOptions) {
|
|
|
89
89
|
*/
|
|
90
90
|
function getMediaKeysInfos(mediaElement, keySystemsConfigs, cancelSignal) {
|
|
91
91
|
return __awaiter(this, void 0, void 0, function () {
|
|
92
|
-
var evt, _a, options, mediaKeySystemAccess, codecSupport, currentState, persistentSessionsStore, mediaKeys_1, loadedSessionsStore_1, mediaKeys, loadedSessionsStore;
|
|
92
|
+
var evt, _a, options, mediaKeySystemAccess, askedConfiguration, codecSupport, currentState, persistentSessionsStore, mediaKeys_1, loadedSessionsStore_1, mediaKeys, loadedSessionsStore;
|
|
93
93
|
return __generator(this, function (_b) {
|
|
94
94
|
switch (_b.label) {
|
|
95
95
|
case 0: return [4 /*yield*/, (0, find_key_system_1.default)(mediaElement, keySystemsConfigs, cancelSignal)];
|
|
@@ -98,7 +98,7 @@ function getMediaKeysInfos(mediaElement, keySystemsConfigs, cancelSignal) {
|
|
|
98
98
|
if (cancelSignal.cancellationError !== null) {
|
|
99
99
|
throw cancelSignal.cancellationError;
|
|
100
100
|
}
|
|
101
|
-
_a = evt.value, options = _a.options, mediaKeySystemAccess = _a.mediaKeySystemAccess, codecSupport = _a.codecSupport;
|
|
101
|
+
_a = evt.value, options = _a.options, mediaKeySystemAccess = _a.mediaKeySystemAccess, askedConfiguration = _a.askedConfiguration, codecSupport = _a.codecSupport;
|
|
102
102
|
currentState = media_keys_infos_store_1.default.getState(mediaElement);
|
|
103
103
|
persistentSessionsStore = createPersistentSessionsStorage(options);
|
|
104
104
|
if ((0, can_reuse_media_keys_1.default)() &&
|
|
@@ -114,6 +114,7 @@ function getMediaKeysInfos(mediaElement, keySystemsConfigs, cancelSignal) {
|
|
|
114
114
|
return [2 /*return*/, {
|
|
115
115
|
mediaKeys: mediaKeys_1,
|
|
116
116
|
mediaKeySystemAccess: mediaKeySystemAccess,
|
|
117
|
+
askedConfiguration: askedConfiguration,
|
|
117
118
|
stores: { loadedSessionsStore: loadedSessionsStore_1, persistentSessionsStore: persistentSessionsStore },
|
|
118
119
|
options: options,
|
|
119
120
|
codecSupport: codecSupport,
|
|
@@ -128,6 +129,7 @@ function getMediaKeysInfos(mediaElement, keySystemsConfigs, cancelSignal) {
|
|
|
128
129
|
return [2 /*return*/, {
|
|
129
130
|
mediaKeys: mediaKeys,
|
|
130
131
|
mediaKeySystemAccess: mediaKeySystemAccess,
|
|
132
|
+
askedConfiguration: askedConfiguration,
|
|
131
133
|
stores: { loadedSessionsStore: loadedSessionsStore, persistentSessionsStore: persistentSessionsStore },
|
|
132
134
|
options: options,
|
|
133
135
|
codecSupport: codecSupport,
|
|
@@ -22,6 +22,11 @@ export interface IMediaElementMediaKeysInfos {
|
|
|
22
22
|
emeImplementation: IEmeApiImplementation;
|
|
23
23
|
/** Last keySystemOptions used with that HTMLMediaElement. */
|
|
24
24
|
keySystemOptions: IKeySystemOption;
|
|
25
|
+
/**
|
|
26
|
+
* The actual MediaKeySystemConfiguration asked to the
|
|
27
|
+
* `requestMediaKeySystemAccess` API.
|
|
28
|
+
*/
|
|
29
|
+
askedConfiguration: MediaKeySystemConfiguration;
|
|
25
30
|
/**
|
|
26
31
|
* Last MediaKeySystemAccess used to create a MediaKeys bound to that
|
|
27
32
|
* HTMLMediaElement.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"media_keys_infos_store.d.ts","sourceRoot":"","sources":["../../../../../src/main_thread/decrypt/utils/media_keys_infos_store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AACjF,OAAO,KAAK,EACV,gBAAgB,EAChB,2BAA2B,EAC3B,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,mBAAmB,MAAM,yBAAyB,CAAC;AAE/D,6EAA6E;AAC7E,MAAM,WAAW,2BAA2B;IAC1C,iBAAiB,EAAE,qBAAqB,CAAC;IAEzC,6DAA6D;IAC7D,gBAAgB,EAAE,gBAAgB,CAAC;IAEnC;;;OAGG;IACH,oBAAoB,EAAE,2BAA2B,GAAG,oBAAoB,CAAC;IAEzE,8DAA8D;IAC9D,SAAS,EAAE,SAAS,GAAG,gBAAgB,CAAC;IAExC;;;OAGG;IACH,mBAAmB,EAAE,mBAAmB,CAAC;CAC1C;;IASC;;;;OAIG;2BACoB,aAAa,SAAS,2BAA2B,GAAG,IAAI,GAAG,IAAI;IAItF;;;;OAIG;2BACoB,aAAa,GAAG,2BAA2B,GAAG,IAAI;IAKzE;;;OAGG;6BACsB,aAAa,GAAG,IAAI;;AAxB/C,wBA2BE"}
|
|
1
|
+
{"version":3,"file":"media_keys_infos_store.d.ts","sourceRoot":"","sources":["../../../../../src/main_thread/decrypt/utils/media_keys_infos_store.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AACjF,OAAO,KAAK,EACV,gBAAgB,EAChB,2BAA2B,EAC3B,qBAAqB,EACtB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,KAAK,mBAAmB,MAAM,yBAAyB,CAAC;AAE/D,6EAA6E;AAC7E,MAAM,WAAW,2BAA2B;IAC1C,iBAAiB,EAAE,qBAAqB,CAAC;IAEzC,6DAA6D;IAC7D,gBAAgB,EAAE,gBAAgB,CAAC;IAEnC;;;OAGG;IACH,kBAAkB,EAAE,2BAA2B,CAAC;IAEhD;;;OAGG;IACH,oBAAoB,EAAE,2BAA2B,GAAG,oBAAoB,CAAC;IAEzE,8DAA8D;IAC9D,SAAS,EAAE,SAAS,GAAG,gBAAgB,CAAC;IAExC;;;OAGG;IACH,mBAAmB,EAAE,mBAAmB,CAAC;CAC1C;;IASC;;;;OAIG;2BACoB,aAAa,SAAS,2BAA2B,GAAG,IAAI,GAAG,IAAI;IAItF;;;;OAIG;2BACoB,aAAa,GAAG,2BAA2B,GAAG,IAAI;IAKzE;;;OAGG;6BACsB,aAAa,GAAG,IAAI;;AAxB/C,wBA2BE"}
|
|
@@ -142,7 +142,7 @@ class Player extends EventEmitter {
|
|
|
142
142
|
// Workaround to support Firefox autoplay on FF 42.
|
|
143
143
|
// See: https://bugzilla.mozilla.org/show_bug.cgi?id=1194624
|
|
144
144
|
videoElement.preload = "auto";
|
|
145
|
-
this.version = /* PLAYER_VERSION */ "4.2.0-dev.
|
|
145
|
+
this.version = /* PLAYER_VERSION */ "4.2.0-dev.2024080900";
|
|
146
146
|
this.log = log;
|
|
147
147
|
this.state = "STOPPED";
|
|
148
148
|
this.videoElement = videoElement;
|
|
@@ -2410,5 +2410,5 @@ class Player extends EventEmitter {
|
|
|
2410
2410
|
* Use of a WeakSet ensure the object is garbage collected if it's not used anymore.
|
|
2411
2411
|
*/
|
|
2412
2412
|
Player._priv_currentlyUsedVideoElements = new WeakSet();
|
|
2413
|
-
Player.version = /* PLAYER_VERSION */ "4.2.0-dev.
|
|
2413
|
+
Player.version = /* PLAYER_VERSION */ "4.2.0-dev.2024080900";
|
|
2414
2414
|
export default Player;
|
|
@@ -34,7 +34,7 @@ export declare function disableMediaKeys(mediaElement: IMediaElement): Promise<u
|
|
|
34
34
|
* @param {Object} cancelSignal
|
|
35
35
|
* @returns {Promise}
|
|
36
36
|
*/
|
|
37
|
-
export default function attachMediaKeys(mediaElement: IMediaElement, { emeImplementation, keySystemOptions, loadedSessionsStore, mediaKeySystemAccess, mediaKeys, }: IMediaKeysState, cancelSignal: CancellationSignal): Promise<void>;
|
|
37
|
+
export default function attachMediaKeys(mediaElement: IMediaElement, { emeImplementation, keySystemOptions, askedConfiguration, loadedSessionsStore, mediaKeySystemAccess, mediaKeys, }: IMediaKeysState, cancelSignal: CancellationSignal): Promise<void>;
|
|
38
38
|
/** MediaKeys and associated state attached to a media element. */
|
|
39
39
|
export interface IMediaKeysState {
|
|
40
40
|
/** Options set when the MediaKeys has been attached. */
|
|
@@ -45,6 +45,11 @@ export interface IMediaKeysState {
|
|
|
45
45
|
mediaKeySystemAccess: MediaKeySystemAccess | ICustomMediaKeySystemAccess;
|
|
46
46
|
/** The MediaKeys instance to attach to the media element. */
|
|
47
47
|
mediaKeys: MediaKeys | ICustomMediaKeys;
|
|
48
|
+
/**
|
|
49
|
+
* The MediaKeySystemConfiguration that has been provided to the
|
|
50
|
+
* `requestMediaKeySystemAccess` API.
|
|
51
|
+
*/
|
|
52
|
+
askedConfiguration: MediaKeySystemConfiguration;
|
|
48
53
|
/**
|
|
49
54
|
* The chosen EME implementation abstraction linked to `mediaKeys`.
|
|
50
55
|
* Different EME implementation might for example be used while debugging or
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attach_media_keys.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/decrypt/attach_media_keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,KAAK,EACV,gBAAgB,EAChB,2BAA2B,EAC3B,qBAAqB,EACtB,MAAM,kBAAkB,CAAC;AAK1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,mBAAmB,MAAM,+BAA+B,CAAC;AAGrE;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAI9E;AAED;;;;;;;;GAQG;AACH,wBAA8B,eAAe,CAC3C,YAAY,EAAE,aAAa,EAC3B,EACE,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,SAAS,GACV,EAAE,eAAe,EAClB,YAAY,EAAE,kBAAkB,GAC/B,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"attach_media_keys.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/decrypt/attach_media_keys.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,KAAK,EACV,gBAAgB,EAChB,2BAA2B,EAC3B,qBAAqB,EACtB,MAAM,kBAAkB,CAAC;AAK1B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,KAAK,mBAAmB,MAAM,+BAA+B,CAAC;AAGrE;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,YAAY,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,CAI9E;AAED;;;;;;;;GAQG;AACH,wBAA8B,eAAe,CAC3C,YAAY,EAAE,aAAa,EAC3B,EACE,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,EAClB,mBAAmB,EACnB,oBAAoB,EACpB,SAAS,GACV,EAAE,eAAe,EAClB,YAAY,EAAE,kBAAkB,GAC/B,OAAO,CAAC,IAAI,CAAC,CAsCf;AAED,kEAAkE;AAClE,MAAM,WAAW,eAAe;IAC9B,wDAAwD;IACxD,gBAAgB,EAAE,gBAAgB,CAAC;IACnC,gEAAgE;IAChE,mBAAmB,EAAE,mBAAmB,CAAC;IACzC,uEAAuE;IACvE,oBAAoB,EAAE,oBAAoB,GAAG,2BAA2B,CAAC;IACzE,6DAA6D;IAC7D,SAAS,EAAE,SAAS,GAAG,gBAAgB,CAAC;IACxC;;;OAGG;IACH,kBAAkB,EAAE,2BAA2B,CAAC;IAChD;;;;OAIG;IACH,iBAAiB,EAAE,qBAAqB,CAAC;CAC1C"}
|
|
@@ -39,7 +39,7 @@ export function disableMediaKeys(mediaElement) {
|
|
|
39
39
|
* @param {Object} cancelSignal
|
|
40
40
|
* @returns {Promise}
|
|
41
41
|
*/
|
|
42
|
-
export default async function attachMediaKeys(mediaElement, { emeImplementation, keySystemOptions, loadedSessionsStore, mediaKeySystemAccess, mediaKeys, }, cancelSignal) {
|
|
42
|
+
export default async function attachMediaKeys(mediaElement, { emeImplementation, keySystemOptions, askedConfiguration, loadedSessionsStore, mediaKeySystemAccess, mediaKeys, }, cancelSignal) {
|
|
43
43
|
const previousState = MediaKeysInfosStore.getState(mediaElement);
|
|
44
44
|
const closeAllSessions = previousState !== null && previousState.loadedSessionsStore !== loadedSessionsStore
|
|
45
45
|
? previousState.loadedSessionsStore.closeAllSessions()
|
|
@@ -56,6 +56,7 @@ export default async function attachMediaKeys(mediaElement, { emeImplementation,
|
|
|
56
56
|
mediaKeySystemAccess,
|
|
57
57
|
mediaKeys,
|
|
58
58
|
loadedSessionsStore,
|
|
59
|
+
askedConfiguration,
|
|
59
60
|
});
|
|
60
61
|
if (mediaElement.mediaKeys === mediaKeys) {
|
|
61
62
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"content_decryptor.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/decrypt/content_decryptor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAO9E,OAAO,KAAK,EAAE,gBAAgB,EAAgB,MAAM,oBAAoB,CAAC;AAIzE,OAAO,YAAY,MAAM,2BAA2B,CAAC;AAerD,OAAO,KAAK,EACV,eAAe,EAEf,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,SAAS,CAAC;AACjB,OAAO,EAA8B,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAU5E,OAAO,KAAK,gBAAgB,MAAM,4BAA4B,CAAC;AAE/D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,YAAY,CAAC,sBAAsB,CAAC;IAChF;;;;;;;;;;;;OAYG;IACI,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAEpC;;;OAGG;IACI,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAE3B;;;;;;;OAOG;IACH,OAAO,CAAC,UAAU,CAA6B;IAE/C;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB,CAAuB;IAE/C;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAgB;IAElC;;;;;;;OAOG;IACH,OAAO,CAAC,cAAc,CAAoB;IAE1C;;OAEG;IACH,OAAO,CAAC,4BAA4B,CAAoB;IAExD;;;;;OAKG;WACW,UAAU,IAAI,OAAO;IAInC;;;;;;;;;;;;;OAaG;gBACS,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,gBAAgB,EAAE;IAqEtE;;;;OAIG;IACI,QAAQ,IAAI,qBAAqB;IAIxC;;;;;;;;OAQG;IACI,MAAM,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"content_decryptor.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/decrypt/content_decryptor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0CAA0C,CAAC;AAO9E,OAAO,KAAK,EAAE,gBAAgB,EAAgB,MAAM,oBAAoB,CAAC;AAIzE,OAAO,YAAY,MAAM,2BAA2B,CAAC;AAerD,OAAO,KAAK,EACV,eAAe,EAEf,wBAAwB,EACxB,sBAAsB,EACvB,MAAM,SAAS,CAAC;AACjB,OAAO,EAA8B,qBAAqB,EAAE,MAAM,SAAS,CAAC;AAU5E,OAAO,KAAK,gBAAgB,MAAM,4BAA4B,CAAC;AAE/D;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,OAAO,OAAO,gBAAiB,SAAQ,YAAY,CAAC,sBAAsB,CAAC;IAChF;;;;;;;;;;;;OAYG;IACI,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAEpC;;;OAGG;IACI,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAE3B;;;;;;;OAOG;IACH,OAAO,CAAC,UAAU,CAA6B;IAE/C;;;;;OAKG;IACH,OAAO,CAAC,gBAAgB,CAAuB;IAE/C;;;OAGG;IACH,OAAO,CAAC,UAAU,CAAgB;IAElC;;;;;;;OAOG;IACH,OAAO,CAAC,cAAc,CAAoB;IAE1C;;OAEG;IACH,OAAO,CAAC,4BAA4B,CAAoB;IAExD;;;;;OAKG;WACW,UAAU,IAAI,OAAO;IAInC;;;;;;;;;;;;;OAaG;gBACS,YAAY,EAAE,aAAa,EAAE,SAAS,EAAE,gBAAgB,EAAE;IAqEtE;;;;OAIG;IACI,QAAQ,IAAI,qBAAqB;IAIxC;;;;;;;;OAQG;IACI,MAAM,IAAI,IAAI;IAgFrB;;;;;;OAMG;IACI,OAAO;IAYd;;;;;;;;;;OAUG;IACI,gBAAgB,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,SAAS;IAgB7E;;;;;;;;OAQG;IACI,oBAAoB,CAAC,kBAAkB,EAAE,eAAe,GAAG,IAAI;IAqBtE;;;;;;;;OAQG;YACW,0BAA0B;IAiTxC,OAAO,CAAC,8BAA8B;IAyItC;;;;;;OAMG;IACH,OAAO,CAAC,wBAAwB;IAmChC;;;;;;;;;OASG;IACH,OAAO,CAAC,aAAa;IAuBrB;;;;OAIG;IACH,OAAO,CAAC,UAAU;IAOlB;;;OAGG;IACH,OAAO,CAAC,4BAA4B;IAUpC;;;;;;OAMG;IACH,OAAO,CAAC,kBAAkB;IAM1B;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;CAQ7B;AAeD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,cAAc,EAAE,UAAU,EAAE,EAC5B,YAAY,EAAE,UAAU,EAAE,GACzB,UAAU,EAAE,CAId;AAED;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CACnC,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,UAAU,EAAE,GACtB,UAAU,EAAE,CAUd;AAED;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,kBAAkB,EAAE,wBAAwB,EAC5C,SAAS,EAAE,UAAU,EAAE,GACtB,UAAU,EAAE,CAcd"}
|
|
@@ -154,7 +154,7 @@ export default class ContentDecryptor extends EventEmitter {
|
|
|
154
154
|
return;
|
|
155
155
|
}
|
|
156
156
|
const { mediaElement, mediaKeysInfo } = this._stateData.data;
|
|
157
|
-
const { options, mediaKeys, mediaKeySystemAccess, stores } = mediaKeysInfo;
|
|
157
|
+
const { options, mediaKeys, mediaKeySystemAccess, stores, askedConfiguration } = mediaKeysInfo;
|
|
158
158
|
const shouldDisableLock = options.disableMediaKeysAttachmentLock === true;
|
|
159
159
|
if (shouldDisableLock) {
|
|
160
160
|
this._stateData = {
|
|
@@ -175,6 +175,7 @@ export default class ContentDecryptor extends EventEmitter {
|
|
|
175
175
|
loadedSessionsStore: stores.loadedSessionsStore,
|
|
176
176
|
mediaKeySystemAccess,
|
|
177
177
|
mediaKeys,
|
|
178
|
+
askedConfiguration,
|
|
178
179
|
keySystemOptions: options,
|
|
179
180
|
};
|
|
180
181
|
log.debug("DRM: Attaching current MediaKeys");
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import type { IMediaElement } from "../../compat/browser_compatibility_types";
|
|
17
17
|
import type { ICustomMediaKeySystemAccess } from "../../compat/eme";
|
|
18
|
-
import type {
|
|
18
|
+
import type { IKeySystemOption } from "../../public_types";
|
|
19
19
|
import type { CancellationSignal } from "../../utils/task_canceller";
|
|
20
20
|
export type ICodecSupportList = Array<{
|
|
21
21
|
codec: string;
|
|
@@ -23,8 +23,19 @@ export type ICodecSupportList = Array<{
|
|
|
23
23
|
result: boolean;
|
|
24
24
|
}>;
|
|
25
25
|
export interface IMediaKeySystemAccessInfos {
|
|
26
|
+
/** `MediaKeySystemAccess` to use to create `MediaKeys` instances. */
|
|
26
27
|
mediaKeySystemAccess: MediaKeySystemAccess | ICustomMediaKeySystemAccess;
|
|
28
|
+
/**
|
|
29
|
+
* The MediaKeySystemConfiguration that has been provided to the
|
|
30
|
+
* `requestMediaKeySystemAccess` API.
|
|
31
|
+
*/
|
|
32
|
+
askedConfiguration: MediaKeySystemConfiguration;
|
|
33
|
+
/**
|
|
34
|
+
* Corresponding `keySystems` element that has led to the creation of the
|
|
35
|
+
* `MediaKeySystemAccess`.
|
|
36
|
+
*/
|
|
27
37
|
options: IKeySystemOption;
|
|
38
|
+
/** Information on supported or unsupported codec on that `MediaKeySystemAccess`. */
|
|
28
39
|
codecSupport: ICodecSupportList;
|
|
29
40
|
}
|
|
30
41
|
export interface IReuseMediaKeySystemAccessEvent {
|
|
@@ -38,12 +49,13 @@ export interface ICreateMediaKeySystemAccessEvent {
|
|
|
38
49
|
export type IFoundMediaKeySystemAccessEvent = IReuseMediaKeySystemAccessEvent | ICreateMediaKeySystemAccessEvent;
|
|
39
50
|
/**
|
|
40
51
|
* Extract from the current mediaKeys the supported Codecs.
|
|
41
|
-
* @param {Object
|
|
42
|
-
*
|
|
43
|
-
* @param {Object | undefined} mksConfiguration - The result of
|
|
52
|
+
* @param {Object} initialConfiguration - The MediaKeySystemConfiguration given
|
|
53
|
+
* to the `navigator.requestMediaKeySystemAccess` API.
|
|
54
|
+
* @param {Object | undefined} mksConfiguration - The result of
|
|
55
|
+
* getConfiguration() of the media keys.
|
|
44
56
|
* @return {Array} The list of supported codec by the CDM.
|
|
45
57
|
*/
|
|
46
|
-
export declare function extractCodecSupportListFromConfiguration(
|
|
58
|
+
export declare function extractCodecSupportListFromConfiguration(initialConfiguration: MediaKeySystemConfiguration, mksConfiguration: MediaKeySystemConfiguration): ICodecSupportList;
|
|
47
59
|
/**
|
|
48
60
|
* Try to find a compatible key system from the keySystems array given.
|
|
49
61
|
*
|
|
@@ -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,
|
|
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;AAyNrC;;;;;;;GAOG;AACH,wBAAgB,wCAAwC,CACtD,oBAAoB,EAAE,2BAA2B,EACjD,gBAAgB,EAAE,2BAA2B,GAC5C,iBAAiB,CA2CnB;AACD;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,OAAO,UAAU,uBAAuB,CAC7C,YAAY,EAAE,aAAa,EAC3B,iBAAiB,EAAE,gBAAgB,EAAE,EACrC,YAAY,EAAE,kBAAkB,GAC/B,OAAO,CAAC,+BAA+B,CAAC,CA+H1C;AAED;;;;;;GAMG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE,MAAM,EACf,uBAAuB,EAAE,2BAA2B,EAAE,+FAmBvD"}
|