Skip to content

Commit

Permalink
feat: Add public access to more drm members.
Browse files Browse the repository at this point in the history
Change-Id: I41d1916b583cf20038633b77f4a78f9b672e9972
  • Loading branch information
ismena committed Jun 7, 2021
1 parent 76480f9 commit 1125184
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 5 deletions.
8 changes: 8 additions & 0 deletions lib/cast/cast_proxy.js
Expand Up @@ -647,6 +647,14 @@ shaka.cast.CastProxy = class extends shaka.util.FakeEventTarget {
return () => this.localPlayer_.getNetworkingEngine();
}

if (name == 'getDrmEngine') {
// Always returns a local instance.
if (this.sender_.isCasting()) {
shaka.log.warning('NOTE: getDrmEngine() is always local!');
}
return () => this.localPlayer_.getDrmEngine();
}

if (name == 'getAdManager') {
// Always returns a local instance.
if (this.sender_.isCasting()) {
Expand Down
19 changes: 14 additions & 5 deletions lib/media/drm_engine.js
Expand Up @@ -593,7 +593,8 @@ shaka.media.DrmEngine = class {
}
}

this.createTemporarySession_(initDataType, initData);
this.createSession(initDataType, initData,
this.currentDrmInfo_.sessionType);
}

/** @return {boolean} */
Expand Down Expand Up @@ -732,6 +733,16 @@ shaka.media.DrmEngine = class {
return shaka.util.MapUtils.asObject(this.announcedKeyStatusByKeyId_);
}

/**
* Returns the current media key sessions.
*
* @return {!Array.<MediaKeySession>}
*/
getMediaKeySessions() {
return Array.from(this.activeSessions_.keys());
}


/**
* @param {shaka.extern.Stream} stream
* @param {string=} codecOverride
Expand Down Expand Up @@ -1129,16 +1140,14 @@ shaka.media.DrmEngine = class {
/**
* @param {string} initDataType
* @param {!Uint8Array} initData
* @private
* @param {string} sessionType
*/
createTemporarySession_(initDataType, initData) {
createSession(initDataType, initData, sessionType) {
goog.asserts.assert(this.mediaKeys_,
'mediaKeys_ should be valid when creating temporary session.');

let session;

const sessionType = this.currentDrmInfo_.sessionType;

try {
shaka.log.info('Creating new', sessionType, 'session');

Expand Down
13 changes: 13 additions & 0 deletions lib/player.js
Expand Up @@ -3098,6 +3098,19 @@ shaka.Player = class extends shaka.util.FakeEventTarget {
return this.drmEngine_ ? this.drmEngine_.getDrmInfo() : null;
}


/**
* Get the drm engine.
* This method should only be used for testing. Applications SHOULD NOT
* use this in production.
*
* @return {?shaka.media.DrmEngine}
*/
getDrmEngine() {
return this.drmEngine_;
}


/**
* Get the next known expiration time for any EME session. If the session
* never expires, this will return <code>Infinity</code>. If there are no EME
Expand Down
1 change: 1 addition & 0 deletions test/cast/cast_utils_unit.js
Expand Up @@ -27,6 +27,7 @@ describe('CastUtils', () => {
'getAdManager', // Handled specially
'getSharedConfiguration', // Handled specially
'getNetworkingEngine', // Handled specially
'getDrmEngine', // Handled specially
'getMediaElement', // Handled specially
'setMaxHardwareResolution',
'destroy', // Should use CastProxy.destroy instead
Expand Down

0 comments on commit 1125184

Please sign in to comment.