Re: [EME] reuse of session

On Thu, May 29, 2014 at 2:17 AM, Maruyama, Shinya <
Shinya.Maruyama@jp.sony.com> wrote:

>  I believe current solution which can reduce the number of duplications
> but cannot deduplicate completely does not make sense.
>

The current solution addresses many use cases in a simple way. Most
importantly, it avoids creating potentially hundreds of sessions (or having
the application de-dupe initData hundreds of times) during a single movie
(depending on how much adaptive streaming there is and/or how the streams
are packaged).


>  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).
>

Where a simple "ignore all subsequent needkey events" solution doesn't
work, the application must be smarter. However, I don't think this is any
worse than before this partial solution was implemented. In addition, it
avoids creating unnecessary MediaKeySession objects as noted above.

>
>
> 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
>

Does the KID array really help? The user agent would still need to
(asynchronously) ask the CDM if it has each key ID. Even if it did, this
only addresses a subset of content in one particular format.

>
>
> 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)??
>

Yes, if we can't find a robust user agent-based solution, hopefully there
will be some best practices that can be documented somewhere. One advantage
of handling this at the application level is that different solutions can
be used depending on the application model - something that is not possible
if we bake a solution into (some) CDMs.

>
>
> 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 Friday, 6 June 2014 23:02:52 UTC