- From: <bugzilla@jessica.w3.org>
- Date: Fri, 04 Apr 2014 21:45:44 +0000
- To: public-html-media@w3.org
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