Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

better support multi-DRM with one ContentProtection element #71

Closed
joeyparrish opened this issue Apr 27, 2015 · 4 comments
Closed

better support multi-DRM with one ContentProtection element #71

joeyparrish opened this issue Apr 27, 2015 · 4 comments
Labels
flag: good first issue This might be a relatively easy issue; good for new contributors status: archived Archived and locked; will not be updated type: enhancement New feature or request
Milestone

Comments

@joeyparrish
Copy link
Member

Currently, shaka.player.DashVideoSource.ContentProtectionCallback only allows the creation of one DrmSchemeInfo object per ContentProtection element. So although it is possible for a provider to support multiple DRM schemes, the must then use multiple ContentProtection elements as well.

Since ContentProtection can make use of application-specific extensions, there is no reason one ContentProtection element cannot describe, in an app-specific way, multiple DRM schemes. A future refactor of ContentProtection interpretation should take this into account and provide a natural API for generating multiple DrmSchemeInfos.

@joeyparrish joeyparrish added the type: enhancement New feature or request label Apr 27, 2015
@joeyparrish
Copy link
Member Author

This could even be needed without app-specific extensions to ContentProtection. For example:

<ContentProtection schemeIdUri="urn:mpeg: dash:mp4protection:2011" value="cenc"/>

For some apps, this should be enough to supply a list of DrmSchemeInfos with license server endpoints for all the various DRM schemes that content provider uses.

@joeyparrish joeyparrish added the flag: good first issue This might be a relatively easy issue; good for new contributors label Apr 28, 2015
@joeyparrish joeyparrish modified the milestone: v1.5.0 Jul 1, 2015
@tdrews tdrews self-assigned this Jul 15, 2015
tdrews pushed a commit that referenced this issue Aug 24, 2015
Add new ContentProtection interpretation API that allows applications to
return multiple DRM configurations for each ContentProtection element
and to parse raw ContentProtection XML elements.

This patch deprecates DrmSchemeInfo in favor of DrmInfo. Furthermore,
DrmSchemeInfo will be removed post v1.5.0.

* Replace DrmSchemeInfo with DrmInfo.
* Move Restrictions class definition into its own file.
* Populate initData values from explicit PSSHs without application
  intervention.
* Allow explicit PSSHs to differ between Representations

Issue #71
Issue #137
Closes b/23428584

Change-Id: Ib8d6ba630b930ee64f923a3f4a3e518abacccf88
joeyparrish added a commit that referenced this issue Aug 26, 2015
This was broken during the DrmInfo refactor.

Issue #71

Change-Id: I5fb02cfa1723cf7bceaa5f84ba0d7d3ef51f2bdf
@kelvinoliveira
Copy link

Added support for multiple DRM schemes per ContentProtection and simplified DRM scheme configuration. #71

Could not find shaka.player.DrmInfo class on version 1.5.0 as stated in https://shaka-player-demo.appspot.com/docs/shaka.player.DashVideoSource.html#ContentProtectionCallback

Maybe, this file is not up to date
https://github.com/google/shaka-player/blob/4cc4e96dbd5d2fd1b47e622eb8505d3ab4848cc0/shaka-player.uncompiled.js

I think that, this line of code should be inserted:
goog.require('shaka.player.DrmInfo');

@tdrews
Copy link
Contributor

tdrews commented Oct 6, 2015

The library does not export shaka.player.DrmInfo. Your application should return an array of objects like shaka.player.DrmInfo.Config from your interpretContentProtectionCallback. For example,

return [{
    'keySystem': 'com.widevine.alpha',
    'licenseServerUrl': LICENSE_SERVER_URL,
    'withCredentials': true
  }];

@kelvinoliveira
Copy link

Thank you, It's is working now.

@shaka-project shaka-project locked and limited conversation to collaborators Mar 22, 2018
@shaka-bot shaka-bot added the status: archived Archived and locked; will not be updated label Apr 15, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
flag: good first issue This might be a relatively easy issue; good for new contributors status: archived Archived and locked; will not be updated type: enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

5 participants