W3C home > Mailing lists > Public > public-html-media@w3.org > July 2012

: [EME] specification question: key Sytem selection

From: Sunyang (Eric) <eric.sun@huawei.com>
Date: Wed, 4 Jul 2012 07:18:42 +0000
To: Mark Watson <watsonm@netflix.com>
CC: "public-html-media@w3.org" <public-html-media@w3.org>
Message-ID: <9254B5E6361B1648AFC00BA447E6E8C32AEB6D0A@szxeml545-mbx.china.huawei.com>
________________________________
ʼ丽лΪ˾ıϢڷ͸ַгĸ˻Ⱥ顣
ֹκκʽʹãȫ򲿷ֵй¶ơɢʼ
Ϣ˱ʼ绰ʼ֪ͨ˲ɾʼ
This e-mail and its attachments contain confidential information from HUAWEI, which
is intended only for the person or entity whose address is listed above. Any use of the
information contained herein in any way (including, but not limited to, total or partial
disclosure, reproduction, or dissemination) by persons other than the intended
recipient(s) is prohibited. If you receive this e-mail in error, please notify the sender by
phone or email immediately and delete it!
: Mark Watson [mailto:watsonm@netflix.com]
ʱ: 201274 14:13
ռ: Sunyang (Eric)
: public-html-media@w3.org
: Re: [EME] specification question: key Sytem selection


On Jul 3, 2012, at 10:12 PM, Sunyang (Eric) wrote:


Thanks for your reply.

I guess you misunderstand my question.
My question is when encrypted block is detected by media element during resource fetch algorithm ,
how to choose the key system.

If an encrypted block is detected, and multiple keysystems are supported by the file, and a keysystem has not been selected by the application, then the needkey event is fired. The needkey event in this case cannot specify a keysystem because multiple are still possible. If only one keysystem is possible at this point (because the file only supports one, for example), then this could be signaled in needkey.

Now we only consider only one keySystem is supported by the file for simplification, if no selected key system, the web app will monitor the needKey event to retrieve the keySystem (How does needKey get the KeySystem?), if no return keysystem from needkey event, the web app need select one, so how? In section 7.3, the web app function (selectKeySystem) will test UA use canPlayType(container format,keySystem options) to test whether the UA support any keySystem for some kind of container format.

There is 2 question

1)      How needKey get the keySystem for the initData

2)      If using canPlayType, we can only test whether UA can support any KeySystem for a certain container format, but how can we know that the result keySystem will support our media file? Do we mean for one container format, we can use one kind of KeySystem to cover?

I haven't had a chance to review the specification text - perhaps it does not say clearly what I have said above.

Yes, the specification is not clear how the keySystem is generate between  need keySystem  and needKey generate KeySystem.

Usually, it is the call to generateKeyRequest that selects the keysystem.

In section 7.3 ,yes the caller has the keySystem information before call generatekeyRequest

The application does need to specify a keysystem in that call, otherwise it is an error as you point out.

Yes, you are right

The media element may not be able to decrypt the content until addKey is called with the key/license information. But I am not sure what the problem is that you see with this ?

There is 2 question

3)      How needKey get the keySystem for the initData

4)      If using canPlayType, we can only test whether UA can support any KeySystem for a certain container format, but how can we know that the result keySystem will support our media file? Do we mean for one container format, we can use one kind of KeySystem to cover?




Mark



From specification,

In step 6 of section 5.1 encrypted block encounted
It is said if the media element has a selected key system, then use it,
If not, jump to key presence, there is no key system selection text  in step 9 Key Presence.
Step 9 only mentioned 3 choices: 1 key is available, 2 fire needKey event with keySystem,3 abort resource fetch procedure

Whats more, I think before the generateKeyRequest(KeySystem, initData) is called, the KeySystem is already
Selected, and the specification mentioned if KeySystem is null, it will throw a SYNTAX_ERROR.
http://dvcs.w3.org/hg/html-media/raw-file/tip/encrypted-media/encrypted-media.html#dom-generatekeyrequest






________________________________

Ϊ޹˾ Huawei Technologies Co., Ltd.
<image001.jpg>

Phone: +86 25 56622934
Fax: +86 25 56624081
Mobile: +86 13851889004
Email: eric.sun@huawei.com<mailto:eric.sun@huawei.com>
ַϾ껨101 ΪϾ ʱࣺ210012
Huawei Technologies Co., Ltd.
No 101,Software Avenue, Yuhua District,Nanjing 518129, P.R.China
http://www.huawei.com

________________________________
ʼ丽лΪ˾ıϢڷ͸ַгĸ˻Ⱥ顣
ֹκκʽʹãȫ򲿷ֵй¶ơɢʼ
Ϣ˱ʼ绰ʼ֪ͨ˲ɾʼ
This e-mail and its attachments contain confidential information from HUAWEI, which
is intended only for the person or entity whose address is listed above. Any use of the
information contained herein in any way (including, but not limited to, total or partial
disclosure, reproduction, or dissemination) by persons other than the intended
recipient(s) is prohibited. If you receive this e-mail in error, please notify the sender by
phone or email immediately and delete it!
: Mark Watson [mailto:watsonm@netflix.com]
ʱ: 201271 11:43
ռ: Sunyang (Eric)
: public-html-media@w3.org<mailto:public-html-media@w3.org>
: Re: [EME] specification question: key Sytem selection

The key system is selected with the call to generateKeyRequest(). If that keysystem is not supported (by the browser, or by the file) then the call will fail and the app can try a different keysystem.

Note that all three of the app, the file and the browser may support multiple keysystems. Only a keysystem in the intersection of these three sets may be used. There may still be more than one. The app needs to choose its favorite from that set, as there may be commercial implications of the choice for the app. The way we chose to implement that was by allowing the app to attempt generateKeyRequest with different key systems, in preference order, until one succeeded. That seems actable given that the set of keysystems in the intersection I describe above is likely to be very small (coming up with an example where there are 3, say, is already a challenge).

Mark

On Jun 29, 2012, at 8:30 PM, Sunyang (Eric) wrote:



After reading the specification, I have a question on Key System selection.

If media elements source attribute has a keySystem attribute then we use this as selected keySystem, this is OK.
If no selected KeySystem, the specification says jump to Key Presence

The question is :

At jump to Key Presence is a else if of selected key system, so here we have no idea about key system,
We may need let app or CDM to analyze the initData to find the KeySystem, but I have not seen any text for
Analyzing initData here, or I miss something?

So where we select the Key System if no selected key system in media element?


________________________________

Ϊ޹˾ Huawei Technologies Co., Ltd.
<image001.jpg>

Phone: +86 25 56622934
Fax: +86 25 56624081
Mobile: +86 13851889004
Email: eric.sun@huawei.com<mailto:eric.sun@huawei.com>
ַϾ껨101 ΪϾ ʱࣺ210012
Huawei Technologies Co., Ltd.
No 101,Software Avenue, Yuhua District,Nanjing 518129, P.R.China
http://www.huawei.com

________________________________
ʼ丽лΪ˾ıϢڷ͸ַгĸ˻Ⱥ顣
ֹκκʽʹãȫ򲿷ֵй¶ơɢʼ
Ϣ˱ʼ绰ʼ֪ͨ˲ɾʼ
This e-mail and its attachments contain confidential information from HUAWEI, which
is intended only for the person or entity whose address is listed above. Any use of the
information contained herein in any way (including, but not limited to, total or partial
disclosure, reproduction, or dissemination) by persons other than the intended
recipient(s) is prohibited. If you receive this e-mail in error, please notify the sender by
phone or email immediately and delete it!


Received on Wednesday, 4 July 2012 07:23:15 UTC

This archive was generated by hypermail 2.4.0 : Friday, 17 January 2020 15:48:24 UTC