RE: [EME] reuse of session

I believe current solution which can reduce the number of duplications but cannot deduplicate completely does not make sense.
It still causes unnecessary resource consumption. In addition it maybe cause undesirable user experience. For example, in the case of the content with the limitation on the number of concurrent streaming, the unnecessary license acquisition might cause waste of the count or unexpected error response etc. (I’m not sure this is good example though. The maximum number of streaming might not be the matter of DRM depending on DRM system).

The following is my thought. Hopefully, this might be helpful to move forward for this issue.

* UA/CDM level
- Given that only CDM/DRM which is aware of the initData format;i.e Data part of pssh, can determine whether to need another license, deduplication is impossible without using CDM
- Even the CDM cannot resolve the pending license case unless it waits for the license
- Common encryption 2nd edition will solve some of the problems; i.e. user agent can implement KIDs comparison instead of raw initData comparison

Should EME at least support common encryption 2nd edition?

* App level
- If no solution in UA/CDM level, should we specify some Application Models: (as best practice profiles or something)??

For example:
- DASH
  - Application should initiate a media key session with using pssh obtained from DASH manifest (MPD) which contains the KIDs necessary to playback the presentation (container independent initData is also usable)
  - Application should not handle any ‘needkey’ event
  - manifest should contain the KIDs necessary to cover entire presentation (pssh in MPD or KIDs in ContentProtection)
  …further languages would be needed, for example, to support key rotation which requires a new license; “The Application should acquire updated manifest and initiate a new session before fetching the streams where key rotation happens” or something – Not sure this languages are correct for key rotation.

The difficult problem is the case where no manifest is available.
In that case, applications have to rely on ‘needkey’ event and just have to handle every needkey.
How far the application can deduplicate the licenses depends on ‘UA/CDM level’ algorithm above and the characteristic of media file.
The bottom line might be to ensure that no duplication happen as long as the media files are conformant with the recommended media formats as follows:
- moov should contain pssh
- moof should not contain pssh unless:
- every moof should contains the identical pssh (this resolves the problem of pending license) or
  - key rotation occurs
etc


From: David Dorwin [mailto:ddorwin@google.com]
Sent: Thursday, May 29, 2014 5:03 AM
To: Maruyama, Shinya
Cc: public-html-media@w3.org
Subject: Re: [EME] reuse of session

The fix for Bug 25268 ​was an improvement, but still not perfect [1]. However, this didn't mean the remaining cases should be addressed with implementation-specific solutions.

[1] "This does *not* solve all scenarios... but it significantly reduces the number of sessions that are created, especially in adaptive streaming cases... I think this is a significant improvement over the current state, but I would be interested in other proposals..."

Received on Thursday, 29 May 2014 09:18:57 UTC