extract DRM PSSH detection and storage into a separate function
This commit is contained in:
parent
81f44b2f0e
commit
a40a6abaf7
@ -556,23 +556,32 @@ function ensureRemoteCDM(type, deviceInfo, pssh) {
|
||||
}
|
||||
}
|
||||
|
||||
function detectAndStorePssh(initData) {
|
||||
const detections = [
|
||||
{
|
||||
type: "PlayReady",
|
||||
getter: getPlayReadyPssh,
|
||||
store: (pssh) => (foundPlayreadyPssh = pssh),
|
||||
},
|
||||
{ type: "Widevine", getter: getWidevinePssh, store: (pssh) => (foundWidevinePssh = pssh) },
|
||||
];
|
||||
|
||||
detections.forEach(({ type, getter, store }) => {
|
||||
const pssh = getter(initData);
|
||||
if (pssh) {
|
||||
logWithPrefix(`[DRM Detected] ${type}`);
|
||||
store(pssh);
|
||||
logWithPrefix(`[${type} PSSH found] ${pssh}`);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Challenge generator interceptor
|
||||
const originalGenerateRequest = MediaKeySession.prototype.generateRequest;
|
||||
MediaKeySession.prototype.generateRequest = function (initDataType, initData) {
|
||||
const session = this;
|
||||
let playReadyPssh = getPlayReadyPssh(initData);
|
||||
if (playReadyPssh) {
|
||||
logWithPrefix("[DRM Detected] PlayReady");
|
||||
foundPlayreadyPssh = playReadyPssh;
|
||||
logWithPrefix("[PlayReady PSSH found] " + playReadyPssh);
|
||||
}
|
||||
let wideVinePssh = getWidevinePssh(initData);
|
||||
if (wideVinePssh) {
|
||||
// Widevine code
|
||||
logWithPrefix("[DRM Detected] Widevine");
|
||||
foundWidevinePssh = wideVinePssh;
|
||||
logWithPrefix("[Widevine PSSH found] " + wideVinePssh);
|
||||
}
|
||||
detectAndStorePssh(initData);
|
||||
|
||||
// Challenge message interceptor
|
||||
if (!remoteListenerMounted) {
|
||||
remoteListenerMounted = true;
|
||||
|
Loading…
x
Reference in New Issue
Block a user