- From: <bugzilla@jessica.w3.org>
- Date: Fri, 04 Apr 2014 21:45:44 +0000
- To: public-html-bugzilla@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 the QA Contact for the bug.
Received on Friday, 4 April 2014 21:45:45 UTC