-
Notifications
You must be signed in to change notification settings - Fork 241
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
Rework to DRM config, new properties, introducing DRM auto-selection, XML wrapper support #1415
Conversation
Can you at least find a way to make them backwards compatible without removing these parameters that are in heavy use? Requiring json formatted data is likely going to cause problems for m3u playlists where they use KODIPROP fields, providers will need to create seperate playlists for Nexus, Omega or whatever future release this potentially lands in as not all their users will be migrating to the next version at the same time, and would make it impossible for end users who want to help bug test a future development release if their m3u playlist source hasn't yet adapted to the new parameters. Also, the license_key parameter is also used to pass along headers for AES protected HLS streams if the AES key server requires cookies or a specific user-agent that is different than the headers for the manifest or ts segments. |
I get these errors when trying to build on arch aarc64 after modifying the PKGBUILD file to pull from your repo. I installed rapidjson. |
@stuckinthe written in the description WIP not buildable at current stage the code was written without building
this is already taken into account, to set the parameters for HLS case, you will need to set the keysystem (from JSON example above) instead of the final intention is to remove deprecated properties on future Kodi releases, the intention is merge this with Kodi 21, so that devs/users can start know of this change therefore action to removing the deprecated properties will take place only on Kodi 22 so for now we are talking about of about year and a half (first quarter of 2025) of time to give devs/users to migrate things, so you are saying that in the 2025 is not enough time?... we can also try to think to give more time, so on Kodi 23, |
a5e4f33
to
c4e2854
Compare
c4e2854
to
7abaa04
Compare
7abaa04
to
4ed9478
Compare
closed because superseeded by #1724 |
Description
This PR is currently WIP not buildable, for now opened PR for feedback and/or clarifications
UPDATE:
I WILL DO SEPARATE PR'S TO ACHIEVE THIS CHANGE, SINCE SOURCE CODE CHANGES ARE TOO BIG, PARTS OF SPECS ON THIS PR ARE OUTDATED
New properties
There are two new properties, and both require JSON values (dumped as string), i have chosen JSON because is easy to implement into python addons, a bit less on binary addon, but JSON string can also be manually constructed with not too much problems.
i have prefer add two separated props to avoid to do too nested JSON dictionaries, that otherwise make more complex add JSON values to playlist files like STRM:
inputstream.adaptive.drm
This property is to set general DRM parameters, based on CDM Key System
JSON structure:
inputstream.adaptive.drm_license
This property is to set license DRM parameters, based on CDM Key System
JSON structure:
The JSON parameters to be set in the new configuration are not much different from the old properties,
and you can guess, i will add some more info later
Deprecated properties
The two new properties, will deprecate these old ones,
and they will be removed on future Kodi (major) versions
more likely in the Kodi 22 RC (theorically first quarter of 2025):
Auto-selection of CDM
The idea is to make CDM selection automatic without that an addon have to specify which one should be used.
This can be possible since we know that supported CDM on the operative system, and we know also what DRM's are supported on a manifest
XML license wrapper support
License wrapper term i mean the things that are set in to inputstream.adaptive.license_key
[Response-Data]
field, where we currently support base64 and JSON, wrappersSince here the code that manage the license wrapper has been reworked (for widevine), add the XML wrapper support its a very small change, so is included here
Breaking changes
This huge change is thought to be backward compatible with the existing (deprecated) properties.
For now the only breaking change is on inputstream.adaptive.license_key
[Response-Data]
field, where theHB
type has been removed. This because we have no info about this addition, i have not found info on web, nor addon that use it, therefore if in future someone will complain about this removal, we can obtain more info about it to reimplement it.Motivation and context
Main reasons:
|
uses in theinputstream.adaptive.license_key
that is the most complex property and make more clear parameters to be setHow has this been tested?
WIP
Screenshots (if appropriate):
Types of change
Checklist: