Do you know the browser's CDM support IV size for Widevine DRM decoding?

387 views
Skip to first unread message

Liang

unread,
Feb 25, 2016, 11:56:15 PM2/25/16
to Chromium-dev
I'm use Chrome 47 with player http://shaka-player-demo.appspot.com/ to do testing.
My content is encrypted with CENC which support 8 and 16 bytes IV in spec. We used default 8 bytes IV size and It is work well in Windows Server IE 11 for Playready DRM with same kid, key.
But for Chrome it throw out MEDIA_ERROR_DECODE error message.
Both encrypted fragment seems totally same after verified by MD5. I can find only difference is pssh data between this two DRM.
Do you know the browser's CDM support IV size? or where i can find this define.

Thanks!

Tima Vaisburd

unread,
Feb 26, 2016, 4:56:33 PM2/26/16
to liangch...@gmail.com, Chromium-dev
The android documentation says 16-byte initialization vector and 16-byte opaque key

--
--
Chromium Developers mailing list: chromi...@chromium.org
View archives, change email options, or unsubscribe:
http://groups.google.com/a/chromium.org/group/chromium-dev
---
You received this message because you are subscribed to the Google Groups "Chromium-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to chromium-dev...@chromium.org.

Liang

unread,
Feb 27, 2016, 1:35:32 AM2/27/16
to Chromium-dev, liangch...@gmail.com
Thanks for your reply. Do you know Chrome support IV size?

Tima Vaisburd

unread,
Feb 27, 2016, 3:13:28 PM2/27/16
to liangch...@gmail.com, Chromium-dev
I know that on Android it passed IV to MediaCodec.queueSecureInputBuffer(), but I do not know how does it work on other platforms.

Stephen James

unread,
Feb 28, 2016, 6:18:29 AM2/28/16
to Chromium-dev, liangch...@gmail.com
The following is from the decrypt_config.h file in media. It seems to say only 16 bytes.
This is used by the internal clearKey / AES decryptor, not sure about plugin decryptors.
  // Keys are always 128 bits.
  static const int kDecryptionKeySize = 16;

  // |key_id| is the ID that references the decryption key for this sample.
  // |iv| is the initialization vector defined by the encrypted format.
  //   Currently |iv| must be 16 bytes as defined by WebM and ISO. Or must be
  //   empty which signals an unencrypted frame.
  // |subsamples| defines the clear and encrypted portions of the sample as
  //   described above. A decrypted buffer will be equal in size to the sum
  //   of the subsample sizes.

Liang

unread,
Feb 28, 2016, 6:40:54 AM2/28/16
to Chromium-dev, liangch...@gmail.com
Yes , I have found this description. Where we can look for the define for plugin decryptors? hope who have this experience can me a help?

Anyway, thanks all firstly.
Reply all
Reply to author
Forward
0 new messages