rx-player 4.2.0-dev.2024081300 → 4.2.0-dev.2024081301
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/compat/eme/custom_media_keys/types.d.ts +0 -3
- package/dist/commonjs/compat/eme/custom_media_keys/types.d.ts.map +1 -1
- package/dist/commonjs/compat/eme/eme-api-implementation.d.ts +2 -2
- package/dist/commonjs/compat/eme/eme-api-implementation.d.ts.map +1 -1
- package/dist/commonjs/compat/eme/eme-api-implementation.js +2 -17
- package/dist/commonjs/compat/eme/get_init_data.d.ts +1 -3
- package/dist/commonjs/compat/eme/get_init_data.d.ts.map +1 -1
- package/dist/commonjs/compat/eme/get_init_data.js +2 -2
- package/dist/commonjs/compat/event_listeners.d.ts +19 -21
- package/dist/commonjs/compat/event_listeners.d.ts.map +1 -1
- package/dist/commonjs/compat/event_listeners.js +11 -0
- package/dist/commonjs/main_thread/api/public_api.js +2 -2
- package/dist/commonjs/main_thread/decrypt/content_decryptor.d.ts +0 -8
- package/dist/commonjs/main_thread/decrypt/content_decryptor.d.ts.map +1 -1
- package/dist/commonjs/main_thread/decrypt/content_decryptor.js +0 -49
- package/dist/commonjs/main_thread/decrypt/types.d.ts +0 -1
- package/dist/commonjs/main_thread/decrypt/types.d.ts.map +1 -1
- package/dist/es2017/compat/eme/custom_media_keys/types.d.ts +0 -3
- package/dist/es2017/compat/eme/custom_media_keys/types.d.ts.map +1 -1
- package/dist/es2017/compat/eme/eme-api-implementation.d.ts +2 -2
- package/dist/es2017/compat/eme/eme-api-implementation.d.ts.map +1 -1
- package/dist/es2017/compat/eme/eme-api-implementation.js +2 -17
- package/dist/es2017/compat/eme/get_init_data.d.ts +1 -3
- package/dist/es2017/compat/eme/get_init_data.d.ts.map +1 -1
- package/dist/es2017/compat/eme/get_init_data.js +2 -2
- package/dist/es2017/compat/event_listeners.d.ts +19 -21
- package/dist/es2017/compat/event_listeners.d.ts.map +1 -1
- package/dist/es2017/compat/event_listeners.js +11 -0
- package/dist/es2017/main_thread/api/public_api.js +2 -2
- package/dist/es2017/main_thread/decrypt/content_decryptor.d.ts +0 -8
- package/dist/es2017/main_thread/decrypt/content_decryptor.d.ts.map +1 -1
- package/dist/es2017/main_thread/decrypt/content_decryptor.js +0 -45
- package/dist/es2017/main_thread/decrypt/types.d.ts +0 -1
- package/dist/es2017/main_thread/decrypt/types.d.ts.map +1 -1
- package/dist/rx-player.js +18 -18
- package/package.json +1 -1
- package/src/compat/eme/custom_media_keys/types.ts +0 -4
- package/src/compat/eme/eme-api-implementation.ts +4 -36
- package/src/compat/eme/get_init_data.ts +3 -5
- package/src/compat/event_listeners.ts +5 -30
- package/src/main_thread/api/public_api.ts +2 -2
- package/src/main_thread/decrypt/content_decryptor.ts +1 -58
- package/src/main_thread/decrypt/types.ts +0 -2
|
@@ -17,10 +17,9 @@ import type { IEventEmitter } from "../utils/event_emitter";
|
|
|
17
17
|
import type { IReadOnlySharedReference } from "../utils/reference";
|
|
18
18
|
import type { CancellationSignal } from "../utils/task_canceller";
|
|
19
19
|
import type { ICompatPictureInPictureWindow, IEventTarget, IMediaElement } from "./browser_compatibility_types";
|
|
20
|
-
import type { ICustomMediaEncryptedEvent } from "./eme/custom_media_keys/types";
|
|
21
20
|
export interface IEventEmitterLike {
|
|
22
|
-
addEventListener: (eventName: string, handler:
|
|
23
|
-
removeEventListener: (eventName: string, handler:
|
|
21
|
+
addEventListener: (eventName: string, handler: () => void) => void;
|
|
22
|
+
removeEventListener: (eventName: string, handler: () => void) => void;
|
|
24
23
|
}
|
|
25
24
|
export type IEventTargetLike = HTMLElement | IEventEmitterLike | IEventEmitter<unknown>;
|
|
26
25
|
/**
|
|
@@ -34,8 +33,7 @@ export type IEventTargetLike = HTMLElement | IEventEmitterLike | IEventEmitter<u
|
|
|
34
33
|
* @returns {Function} - Returns function allowing to easily add a callback to
|
|
35
34
|
* be triggered when that event is emitted on a given event target.
|
|
36
35
|
*/
|
|
37
|
-
declare function createCompatibleEventListener(eventNames:
|
|
38
|
-
declare function createCompatibleEventListener(eventNames: string[], prefixes?: string[]): (element: IEventTargetLike, listener: (event?: Event) => void, cancelSignal: CancellationSignal) => void;
|
|
36
|
+
declare function createCompatibleEventListener(eventNames: string[], prefixes?: string[]): (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
|
|
39
37
|
/**
|
|
40
38
|
* Get video width from Picture-in-Picture window
|
|
41
39
|
* @param {HTMLMediaElement} mediaElement
|
|
@@ -90,77 +88,77 @@ declare function getElementResolutionRef(mediaElement: IMediaElement, pipStatusR
|
|
|
90
88
|
/**
|
|
91
89
|
* @param {HTMLMediaElement} mediaElement
|
|
92
90
|
*/
|
|
93
|
-
declare const onLoadedMetadata: (element: IEventTargetLike, listener: (event?:
|
|
91
|
+
declare const onLoadedMetadata: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
|
|
94
92
|
/**
|
|
95
93
|
* @param {HTMLMediaElement} mediaElement
|
|
96
94
|
*/
|
|
97
|
-
declare const onTimeUpdate: (element: IEventTargetLike, listener: (event?:
|
|
95
|
+
declare const onTimeUpdate: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
|
|
98
96
|
/**
|
|
99
97
|
* @param {TextTrackList} mediaElement
|
|
100
98
|
*/
|
|
101
|
-
declare const onTextTrackAdded: (element: IEventTargetLike, listener: (event?:
|
|
99
|
+
declare const onTextTrackAdded: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
|
|
102
100
|
/**
|
|
103
101
|
* @param {TextTrackList} textTrackList
|
|
104
102
|
*/
|
|
105
|
-
declare const onTextTrackRemoved: (element: IEventTargetLike, listener: (event?:
|
|
103
|
+
declare const onTextTrackRemoved: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
|
|
106
104
|
/**
|
|
107
105
|
* @param {MediaSource} mediaSource
|
|
108
106
|
* @param {Function} listener
|
|
109
107
|
* @param {Object} cancelSignal
|
|
110
108
|
*/
|
|
111
|
-
declare const onSourceOpen: (element: IEventTargetLike, listener: (event?:
|
|
109
|
+
declare const onSourceOpen: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
|
|
112
110
|
/**
|
|
113
111
|
* @param {MediaSource} mediaSource
|
|
114
112
|
* @param {Function} listener
|
|
115
113
|
* @param {Object} cancelSignal
|
|
116
114
|
*/
|
|
117
|
-
declare const onSourceClose: (element: IEventTargetLike, listener: (event?:
|
|
115
|
+
declare const onSourceClose: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
|
|
118
116
|
/**
|
|
119
117
|
* @param {MediaSource} mediaSource
|
|
120
118
|
* @param {Function} listener
|
|
121
119
|
* @param {Object} cancelSignal
|
|
122
120
|
*/
|
|
123
|
-
declare const onSourceEnded: (element: IEventTargetLike, listener: (event?:
|
|
121
|
+
declare const onSourceEnded: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
|
|
124
122
|
/**
|
|
125
123
|
* @param {MediaSource} mediaSource
|
|
126
124
|
* @param {Function} listener
|
|
127
125
|
* @param {Object} cancelSignal
|
|
128
126
|
*/
|
|
129
|
-
declare const onSourceBufferUpdate: (element: IEventTargetLike, listener: (event?:
|
|
127
|
+
declare const onSourceBufferUpdate: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
|
|
130
128
|
/**
|
|
131
129
|
* @param {SourceBufferList} sourceBuffers
|
|
132
130
|
* @param {Function} listener
|
|
133
131
|
* @param {Object} cancelSignal
|
|
134
132
|
*/
|
|
135
|
-
declare const onRemoveSourceBuffers: (element: IEventTargetLike, listener: (event?:
|
|
133
|
+
declare const onRemoveSourceBuffers: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
|
|
136
134
|
/**
|
|
137
135
|
* @param {MediaKeySession} mediaKeySession
|
|
138
136
|
*/
|
|
139
|
-
declare const onKeyMessage: (element: IEventTargetLike, listener: (event?:
|
|
137
|
+
declare const onKeyMessage: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
|
|
140
138
|
/**
|
|
141
139
|
* @param {MediaKeySession} mediaKeySession
|
|
142
140
|
*/
|
|
143
|
-
declare const onKeyAdded: (element: IEventTargetLike, listener: (event?:
|
|
141
|
+
declare const onKeyAdded: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
|
|
144
142
|
/**
|
|
145
143
|
* @param {MediaKeySession} mediaKeySession
|
|
146
144
|
*/
|
|
147
|
-
declare const onKeyError: (element: IEventTargetLike, listener: (event?:
|
|
145
|
+
declare const onKeyError: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
|
|
148
146
|
/**
|
|
149
147
|
* @param {MediaKeySession} mediaKeySession
|
|
150
148
|
*/
|
|
151
|
-
declare const onKeyStatusesChange: (element: IEventTargetLike, listener: (event?:
|
|
149
|
+
declare const onKeyStatusesChange: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
|
|
152
150
|
/**
|
|
153
151
|
* @param {HTMLMediaElement} mediaElement
|
|
154
152
|
*/
|
|
155
|
-
declare const onSeeking: (element: IEventTargetLike, listener: (event?:
|
|
153
|
+
declare const onSeeking: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
|
|
156
154
|
/**
|
|
157
155
|
* @param {HTMLMediaElement} mediaElement
|
|
158
156
|
*/
|
|
159
|
-
declare const onSeeked: (element: IEventTargetLike, listener: (event?:
|
|
157
|
+
declare const onSeeked: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
|
|
160
158
|
/**
|
|
161
159
|
* @param {HTMLMediaElement} mediaElement
|
|
162
160
|
*/
|
|
163
|
-
declare const onEnded: (element: IEventTargetLike, listener: (event?:
|
|
161
|
+
declare const onEnded: (element: IEventTargetLike, listener: (event?: unknown) => void, cancelSignal: CancellationSignal) => void;
|
|
164
162
|
/**
|
|
165
163
|
* Utilitary function allowing to add an event listener and remove it
|
|
166
164
|
* automatically once the given `CancellationSignal` emits.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event_listeners.d.ts","sourceRoot":"","sources":["../../../src/compat/event_listeners.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAK5D,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAEnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EAEV,6BAA6B,EAC7B,YAAY,EACZ,aAAa,EACd,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"event_listeners.d.ts","sourceRoot":"","sources":["../../../src/compat/event_listeners.ts"],"names":[],"mappings":"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"}
|
|
@@ -56,6 +56,17 @@ function findSupportedEvent(element, eventNames) {
|
|
|
56
56
|
function eventPrefixed(eventNames, prefixes) {
|
|
57
57
|
return eventNames.reduce((parent, name) => parent.concat((prefixes === undefined ? BROWSER_PREFIXES : prefixes).map((p) => p + name)), []);
|
|
58
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* Returns a function allowing to add event listeners for particular event(s)
|
|
61
|
+
* optionally automatically adding browser prefixes if needed.
|
|
62
|
+
* @param {Array.<string>} eventNames - The event(s) to listen to. If multiple
|
|
63
|
+
* events are set, the event listener will be triggered when any of them emits.
|
|
64
|
+
* @param {Array.<string>|undefined} [prefixes] - Optional vendor prefixes with
|
|
65
|
+
* which the event might also be sent. If not defined, default prefixes might be
|
|
66
|
+
* tested.
|
|
67
|
+
* @returns {Function} - Returns function allowing to easily add a callback to
|
|
68
|
+
* be triggered when that event is emitted on a given event target.
|
|
69
|
+
*/
|
|
59
70
|
function createCompatibleEventListener(eventNames, prefixes) {
|
|
60
71
|
let mem;
|
|
61
72
|
const prefixedEvents = eventPrefixed(eventNames, prefixes);
|
|
@@ -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.2024081301";
|
|
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.2024081301";
|
|
2414
2414
|
export default Player;
|
|
@@ -164,14 +164,6 @@ export default class ContentDecryptor extends EventEmitter<IContentDecryptorEven
|
|
|
164
164
|
*/
|
|
165
165
|
private _processInitializationData;
|
|
166
166
|
private _tryToUseAlreadyCreatedSession;
|
|
167
|
-
/**
|
|
168
|
-
* Remove the session corresponding to the initData provided, and close it.
|
|
169
|
-
* It does nothing if no session was found for this initData.
|
|
170
|
-
* @param {Object} initData : The initialization data corresponding to the session
|
|
171
|
-
* that need to be removed
|
|
172
|
-
* @param {Object} mediaKeysData : The media keys data
|
|
173
|
-
*/
|
|
174
|
-
private removeSessionForInitData;
|
|
175
167
|
/**
|
|
176
168
|
* Callback that should be called if an error that made the current
|
|
177
169
|
* `ContentDecryptor` instance unusable arised.
|
|
@@ -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;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;
|
|
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;IA0HtC;;;;;;;;;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"}
|
|
@@ -509,20 +509,6 @@ export default class ContentDecryptor extends EventEmitter {
|
|
|
509
509
|
if (compatibleSessionInfo === undefined) {
|
|
510
510
|
return false;
|
|
511
511
|
}
|
|
512
|
-
/**
|
|
513
|
-
* On Safari using Directfile, the old EME implementation triggers
|
|
514
|
-
* the "webkitneedkey" event instead of "encrypted". There's an issue in Safari
|
|
515
|
-
* where "webkitneedkey" fires too early before all tracks are added from an HLS playlist.
|
|
516
|
-
* Safari incorrectly assumes some keys are missing for these tracks,
|
|
517
|
-
* leading to repeated "webkitneedkey" events. Because RxPlayer recognizes
|
|
518
|
-
* it already has a session for these keys and ignores the events,
|
|
519
|
-
* the content remains frozen. To resolve this, the session is re-created.
|
|
520
|
-
*/
|
|
521
|
-
const forceSessionRecreation = initializationData.forceSessionRecreation;
|
|
522
|
-
if (forceSessionRecreation === true) {
|
|
523
|
-
this.removeSessionForInitData(initializationData, mediaKeysData);
|
|
524
|
-
return false;
|
|
525
|
-
}
|
|
526
512
|
// Check if the compatible session is blacklisted
|
|
527
513
|
const blacklistedSessionError = compatibleSessionInfo.blacklistedSessionError;
|
|
528
514
|
if (!isNullOrUndefined(blacklistedSessionError)) {
|
|
@@ -606,37 +592,6 @@ export default class ContentDecryptor extends EventEmitter {
|
|
|
606
592
|
}
|
|
607
593
|
return false;
|
|
608
594
|
}
|
|
609
|
-
/**
|
|
610
|
-
* Remove the session corresponding to the initData provided, and close it.
|
|
611
|
-
* It does nothing if no session was found for this initData.
|
|
612
|
-
* @param {Object} initData : The initialization data corresponding to the session
|
|
613
|
-
* that need to be removed
|
|
614
|
-
* @param {Object} mediaKeysData : The media keys data
|
|
615
|
-
*/
|
|
616
|
-
removeSessionForInitData(initData, mediaKeysData) {
|
|
617
|
-
const { stores } = mediaKeysData;
|
|
618
|
-
/** Remove the session and close it from the loadedSessionStore */
|
|
619
|
-
const entry = stores.loadedSessionsStore.reuse(initData);
|
|
620
|
-
if (entry !== null) {
|
|
621
|
-
stores.loadedSessionsStore
|
|
622
|
-
.closeSession(entry.mediaKeySession)
|
|
623
|
-
.catch(() => log.error("DRM: Cannot close the session from the loaded session store"));
|
|
624
|
-
}
|
|
625
|
-
/**
|
|
626
|
-
* If set, a currently-used key session is already compatible to this
|
|
627
|
-
* initialization data.
|
|
628
|
-
*/
|
|
629
|
-
const compatibleSessionInfo = arrayFind(this._currentSessions, (x) => x.record.isCompatibleWith(initData));
|
|
630
|
-
if (compatibleSessionInfo === undefined) {
|
|
631
|
-
return;
|
|
632
|
-
}
|
|
633
|
-
/** Remove the session from the currentSessions */
|
|
634
|
-
const indexOf = this._currentSessions.indexOf(compatibleSessionInfo);
|
|
635
|
-
if (indexOf !== -1) {
|
|
636
|
-
log.debug("DRM: A session from a processed init is removed due to forceSessionRecreation policy.");
|
|
637
|
-
this._currentSessions.splice(indexOf, 1);
|
|
638
|
-
}
|
|
639
|
-
}
|
|
640
595
|
/**
|
|
641
596
|
* Callback that should be called if an error that made the current
|
|
642
597
|
* `ContentDecryptor` instance unusable arised.
|
|
@@ -105,7 +105,6 @@ export interface IProtectionData {
|
|
|
105
105
|
content?: IContent;
|
|
106
106
|
/** Every initialization data for that type. */
|
|
107
107
|
values: IInitDataValue[];
|
|
108
|
-
forceSessionRecreation?: boolean | undefined;
|
|
109
108
|
}
|
|
110
109
|
/** Protection initialization data actually processed by the `ContentDecryptor`. */
|
|
111
110
|
export interface IProcessedProtectionData extends Omit<IProtectionData, "values"> {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/decrypt/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EACV,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,uBAAuB,EACxB,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,uBAAuB,MAAM,oCAAoC,CAAC;AAC9E,OAAO,KAAK,mBAAmB,MAAM,+BAA+B,CAAC;AACrE,OAAO,KAAK,uBAAuB,MAAM,mCAAmC,CAAC;AAE7E,+EAA+E;AAC/E,MAAM,WAAW,sBAAsB;IACrC;;;;;OAKG;IACH,KAAK,EAAE,KAAK,CAAC;IAEb;;;OAGG;IACH,OAAO,EAAE,YAAY,CAAC;IAEtB;;;;OAIG;IACH,WAAW,EAAE,qBAAqB,CAAC;IAEnC,uBAAuB,EAAE,wBAAwB,CAAC;IAElD,yBAAyB,EAAE;QACzB,iBAAiB,EAAE,UAAU,EAAE,CAAC;QAChC,iBAAiB,EAAE,UAAU,EAAE,CAAC;QAChC,cAAc,EAAE,UAAU,EAAE,CAAC;KAC9B,CAAC;CACH;AAED,2EAA2E;AAC3E,oBAAY,qBAAqB;IAC/B;;;;OAIG;IACH,YAAY,IAAA;IAEZ;;;;;;;;;;;;;OAaG;IACH,oBAAoB,IAAA;IAEpB;;;;;;OAMG;IACH,eAAe,IAAA;IAEf;;;OAGG;IACH,KAAK,IAAA;IAEL,uEAAuE;IACvE,QAAQ,IAAA;CACT;AAED,4DAA4D;AAC5D,MAAM,WAAW,eAAe;IAC9B;;;;OAIG;IACH,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;IACzB;;;;;;;OAOG;IACH,MAAM,CAAC,EAAE,UAAU,EAAE,GAAG,SAAS,CAAC;IAClC,0DAA0D;IAC1D,OAAO,CAAC,EAAE,QAAQ,CAAC;IACnB,+CAA+C;IAC/C,MAAM,EAAE,cAAc,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/main_thread/decrypt/types.ts"],"names":[],"mappings":"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"}
|