Skip to content

Commit 9895289

Browse files
author
Bryan Yao
committed
support for clearkey server url
1 parent 8fdf095 commit 9895289

File tree

1 file changed

+18
-2
lines changed

1 file changed

+18
-2
lines changed

src/controller/eme-controller.ts

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -194,6 +194,11 @@ class EMEController implements ComponentAPI {
194194
break;
195195
}
196196
return this._widevineLicenseUrl;
197+
case KeySystems.CLEARKEY:
198+
if (!this._clearkeyServerUrl) {
199+
break;
200+
}
201+
return this._clearkeyServerUrl;
197202
}
198203

199204
throw new Error(`no license server URL configured for key-system "${keySystem}"`);
@@ -312,7 +317,7 @@ class EMEController implements ComponentAPI {
312317
alg?: string,
313318
kid?: string,
314319
k?: string
315-
}
320+
};
316321

317322
const keyarray: responseFormat[] = [];
318323
for (const id of request.kids) {
@@ -624,6 +629,10 @@ class EMEController implements ComponentAPI {
624629
case KeySystems.WIDEVINE:
625630
// For Widevine CDMs, the challenge is the keyMessage.
626631
return keyMessage;
632+
case KeySystems.CLEARKEY:
633+
// For CLEARKEY, the challenge is the keyMessage.
634+
return keyMessage;
635+
// return JSON.parse(new TextDecoder().decode(keyMessage));
627636
}
628637

629638
throw new Error(`unsupported key-system: ${keysListItem.mediaKeySystemDomain}`);
@@ -653,7 +662,14 @@ class EMEController implements ComponentAPI {
653662
const xhr = this._createLicenseXhr(url, keyMessage, callback);
654663
logger.log(`Sending license request to URL: ${url}`);
655664
const challenge = this._generateLicenseRequestChallenge(keysListItem, keyMessage);
656-
xhr.send(challenge);
665+
switch (keysListItem.mediaKeySystemDomain) {
666+
case KeySystems.WIDEVINE:
667+
xhr.send(challenge);
668+
case KeySystems.CLEARKEY:
669+
// xhr.setRequestHeader('content-type', 'application/json')
670+
// xhr.send(JSON.stringify(challenge));
671+
xhr.send(challenge);
672+
}
657673
} catch (e) {
658674
logger.error(`Failure requesting DRM license: ${e}`);
659675
this.hls.trigger(Events.ERROR, {

0 commit comments

Comments
 (0)