This is an archived snapshot of W3C's public bugzilla bug tracker, decommissioned in April 2019. Please see the home page for more details.

Bug 17676 - needkey for all keys relative with a media file
Summary: needkey for all keys relative with a media file
Status: RESOLVED WORKSFORME
Alias: None
Product: HTML WG
Classification: Unclassified
Component: Encrypted Media Extensions (show other bugs)
Version: unspecified
Hardware: PC All
: P2 normal
Target Milestone: ---
Assignee: Adrian Bateman [MSFT]
QA Contact: HTML WG Bugzilla archive list
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2012-07-03 09:10 UTC by Yang Sun
Modified: 2012-08-28 20:25 UTC (History)
3 users (show)

See Also:


Attachments

Description Yang Sun 2012-07-03 09:10:42 UTC
now, the needkey is only for 1 key.
But it is common the file will contain multiple keys used to decrypt multiple video/audio tracks.

If we fire needkey for each key, it is not optimistic and can we combine them together, to generate the key request?
Comment 1 David Dorwin 2012-07-03 17:20:35 UTC
(In reply to comment #0)
> now, the needkey is only for 1 key.
> But it is common the file will contain multiple keys used to decrypt multiple
> video/audio tracks.

The needkey event is always fired with a single initData value.
The number of keys currently depends on the container:
 * WebM (bug 17672) - 1 key per initData
 * ISO BMFF/CENC (bug 17673) - 1 or more keys per initData

> If we fire needkey for each key, it is not optimistic and can we combine them
> together, to generate the key request?

It seems this would be difficult to implement for containers that do not already group keys. Also, if multiple files/streams are used, those will generate separate needkey events, so this is already an issue applications may need to deal with. For such changes, we should consider the complexity of optimizing vs. the performance or other gain for these relatively rare events.
Comment 2 Adrian Bateman [MSFT] 2012-08-28 20:25:24 UTC
Whether one or more keys are acquired in a session is an implementation detail for the container/CDM. This is supported with the current initData/message exchange.