[Bug 25268] New: Reduce the burden on applications to dedupe initData from many needkey events

https://www.w3.org/Bugs/Public/show_bug.cgi?id=25268

            Bug ID: 25268
           Summary: Reduce the burden on applications to dedupe initData
                    from many needkey events
           Product: HTML WG
           Version: unspecified
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: P3
         Component: Encrypted Media Extensions
          Assignee: adrianba@microsoft.com
          Reporter: ddorwin@google.com
        QA Contact: public-html-bugzilla@w3.org
                CC: mike@w3.org, public-html-media@w3.org

One of the basic models for EME is to receive a needkey event and immediately
pass the initData to createSession(). This is simple and straightforward, but
in practice, the same or equivalent initData may be seen many times - from
various streams (i.e. audio and video) and during each adaptive stream switch.

That simple concept results in many sessions and potentially many license
requests (and related denials for too many requests).

We have discussed this before (bug 16553, bug 19208, bug 21855) but did not
reach a good solution. I'd like to revisit the issue now that we have
implementation experience and come up with a better solution. Let's use this
bug to track the problem and discuss ideas.


The current workaround is for applications to avoid calling createSession()
unless appropriate. The simplest implementation is to ignore all but the first
needkey event. (This assumes the license server will return the appropriate
keys for all streams.) Another possible solution is to only call
createSession() for each unique initData value. This works in some cases, but
can cause problems for license management. Also, applications must save and
compare initData such as concatenated PSSH boxes.

These workarounds start to break down when key rotation is involved - how can
an application know when there is a new set of keys vs. a different version of
initData for the same time period?


Another option, which was the outcome of bug 21855 was to allow implementations
to avoid firing a message event if there is already an in-memory session,
possibly already containing a license, for the provided initData. I don't think
this is a good solution (bug 25267). There might be similar solutions that make
sense, but I think avoiding the problem altogether would be better for
applications.

-- 
You are receiving this mail because:
You are on the CC list for the bug.

Received on Friday, 4 April 2014 21:45:45 UTC