Cenc are only supported in API level >=21 for Widevine key system ?

300 views
Skip to first unread message

Tao Liu

unread,
Jul 5, 2016, 5:39:10 AM7/5/16
to Chromium-dev
Hi
    I found this in chromium source code, so I wan to known if  cenc are  only supported in API level >=21 for Widevine key system?

Thanks, 
Tao, Liu

David Dorwin

unread,
Jul 6, 2016, 1:08:07 PM7/6/16
to Tao Liu, Chromium-dev
This comment is referring to the exact string "cenc", which is the EME Initialization Data Type string for CENC 'pssh' boxes. Prior to API level 21, only "video/mp4" could be used to specify this interpretation of the Initialization Data. Also, there is/was no specification of the strings that MediaDrm plugins support, but "video/mp4" seems to be supported by all.

--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev

Tao Liu

unread,
Jul 11, 2016, 3:30:30 AM7/11/16
to Chromium-dev, liuta...@gmail.com
I got below info when watching netflix, after call  MediaDrm.getKeyRequest. 

I/WVCdm   (  126): CdmEngine::GenerateKeyRequest
E/WVCdm   (  126): CdmLicense::PrepareKeyRequest: retrieved certificate not of type service, 0
E/WVCdm   (  126): CdmEngine::GenerateKeyRequest: key request generation failed, sts = 3

Any ideas?

David Dorwin

unread,
Jul 13, 2016, 9:14:06 PM7/13/16
to Tao Liu, Chromium-dev
It appears license request generation failed because the certificate for encrypting client information was invalid.

Were you actually watching Netflix or attempting to watch a video on Netflix? Were you using the desktop site?

Tao Liu

unread,
Jul 14, 2016, 8:25:06 AM7/14/16
to Chromium-dev, liuta...@gmail.com
Yes, I want to watch netflix drm video with chromium on Android. But If I use Android user agent, netflix will let me install android app, so I use Linux PC user agent to visit Netflix, and then encounter below problems :
1 content_shell does not support EME, so add EME support 
2 Android "Distinctive Identifier" is ALWAYS_ENABLED, but with Linux PC ua, Netflix require "Distinctive Identifier" to be "not-allowed". Then I hack chromium to bypass.
3 Netflix will set server certificate first, then android widevine failed to  generate key request. And I didn't find widevine server certificate specification.

So,  how to continue my work? 

David Dorwin

unread,
Jul 14, 2016, 5:06:41 PM7/14/16
to Tao Liu, Chromium-dev
You could try not setting the PRIVACY_MODE property to bypass some of the certificate logic. However, it it's possible the desktop site makes assumptions about the client implementation and cannot be made to work on Android.
Reply all
Reply to author
Forward
0 new messages