w3c / encrypted-media

Encrypted Media Extensions
https://w3c.github.io/encrypted-media/
Other
180 stars 80 forks source link

Tracking the lifecycle of a KeyId #449

Open estobbart opened 5 years ago

estobbart commented 5 years ago

keystatuses provide keyId's.. but there's no real way to track them earlier than when they appear in that status. In DASH they appear in the ContentProtection, and they're also in the initializationSegment either in the pssh or the tenc. But if the pssh isn't in the manifest it's difficult to use the encrypted initData to track the KeyId, unless the browser was responsible for upgrading v.0 pssh boxes to v.1 boxes with the tenc default_KID, or some other way to include a KeyID in the encrypted payload. This makes platforms with multiple CDM implementations difficult, because two encrypted event's could occur, each event with it's own systemId (that you have to parse from the initData) for the same keyId. Unless the requirement was that only one encrypted event occurred per keyId, and the initData was an array of array buffers.