- From: David Dorwin <ddorwin@google.com>
- Date: Wed, 18 Jul 2012 10:38:00 -0700
- To: "Sunyang (Eric)" <eric.sun@huawei.com>
- Cc: "public-html-media@w3.org" <public-html-media@w3.org>
- Message-ID: <CAHD2rsjpZzSZpiKAcQ=FxZG1gfJQA8OqRZMq1jPzdzxuL6sHnA@mail.gmail.com>
initData is (likely) only used to obtain the keys when playback starts (or a new stream/section/track is encountered). The initData, sessions, and EME methods are only used for key exchange and session management. At decrypt time, which is internal to the UA/CDM and unrelated to the EME methods, the CDM only has a key ID for a frame/block and a set of key ID-key pairs. By association, I meant some relationship between a session/keys and the media element that needs to use it/them at decrypt time. "Strong association" was an informal term referring to a permanent association between a session/keys and some "collection" or the media element itself. A permanent association is probably not that important to applications, but we believe it makes UA/CDM implementation easier, or at least allows a wider variety of designs. Specifically, it allows building a group of sessions/keys in a single object, table, etc. rather than having to search through sessions/keys in a global/shared object or multiple objects when looking for the key ID for a frame/block. The permanent association can be with the media element, as in proposal #1, or another object that can be (non-permanently) associated with the media element. On Wed, Jul 11, 2012 at 11:33 PM, Sunyang (Eric) <eric.sun@huawei.com>wrote: > During yesterday conference call, we mentioned about association between > keys and media element**** > > I have questions: what is an association, what is a strong association, > how to use association , who will use it?**** > > Hope expert can help clarify them for me, thanks a lot!**** > > ** ** > > *What is an association?* > > Media element and all keys used to decrypted the media content.**** > > Right?**** > > Mapping relationship is: 1 initData to 1 session id to multiple > keys(simultaneously, not key rotation) . **** > > Right?**** > > ** ** > > *What is a strong association?* > > Method to generate keys are inside media element.**** > > Key sessions generated are part of media element.**** > > Right?**** > > ** ** > > ** ** > > *Who will use it?* > > The UA will use it to manage the keys for media element**** > > Right?**** > > ** ** > > CDM will use it to find specific key for a encrypted block.**** > > Right?**** > > ** ** > > *How to use the association?* > > I guess the association is used for CDM to find keys to decrypt the > encrypted media content for a media element.**** > > From 1.3.3, it is said user agent/CDM manage the lifetime of session id, > and CDM may retain session id for some time,**** > > So from here and David yesterday mentioned, we know session id is only > available during key exchange (needKey->new MediaKeys->createSession->key > request->addKey()->heartbeat), during decryption, the session id cannot be > used for association key and encrypted media. While initData contain key id > information identify a particular key which can be used to find a key in a > local table.**** > > ** ** > > ** ** > > ** ** > > 1**** > > 2a**** > > 2b**** > > How Key session generate?**** > > A method of media element (generateKeyRequest)**** > > Constructor of MediaKeySesson**** > > createSession method of MediaKeys (attribute of media element)**** > > How to associate key session with media element?**** > > MediaKeySession is a attribute of media element, strong association**** > > Using addKeySession method of media element to add key session to media > element**** > > CreateSession will make MediaKeySession associated with MediaKeys of media > element automatically**** > > How CDM identify the Association between media and key?**** > > By addKey (KeySystem, key, initData, sessionId) when a new media content > block is encountered, the table in CDM will be added a row for key id and > key, CDM know the key is used for current media block decryption.**** > > ** ** > > ** ** > > So, I guess in CDM, in a lifetime of media playback, there will be a table > for” key id<>key” mappings, if a media element has several > sessions(video/audio tracks), and they will be decrypted by CDM > simultaneously, the CDM will determine the key id through initData, and by > looking up the table using the key id to find the key . After the page is > closed, or media content change, the key id<>key relative to previous media > content or stream will be cleaned.**** > > Am I right on this?**** > > ** ** > > ** ** > > ** ** > > Yang**** > > Huawei**** > > ** ** >
Received on Wednesday, 18 July 2012 17:38:48 UTC