<html><head><meta http-equiv="Content-Type" content="text/html charset=windows-1252"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><br><div><blockquote type="cite"><div>On Jun 10, 2014, at 8:39 AM, Jer Noble &lt;<a href="mailto:jer.noble@apple.com">jer.noble@apple.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div><meta http-equiv="Content-Type" content="text/html charset=windows-1252"><div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space;"><br><div><blockquote type="cite"><div>On Jun 9, 2014, at 3:56 PM, Brendan Long &lt;<a href="mailto:self@brendanlong.com">self@brendanlong.com</a>&gt; wrote:</div><br class="Apple-interchange-newline"><div>
  

    <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
  
  <div text="#000000" bgcolor="#FFFFFF">
    I'm looking into <a href="https://dvcs.w3.org/hg/html-media/raw-file/default/encrypted-media/encrypted-media.html">EME</a>
    and something I've been asked to investigate is <a href="http://www.microsoft.com/playready/documents/default.aspx#CDMSpec">Microsoft's
      proposed CDMi interface</a>, and if we could use it in WebKit. The
    idea is that we would expose a few common interfaces (see page 12 of
    the PDF at that link), like "Cdm_MediaKeys(wchar_t *keySystem)"
    constructor, "createSession(wchar_t* type, const unsigned char
    *initData, const unsigned char *AppData)" to create a CDM session,
    etc. The advantage of this would be that we could create CDMs for
    each platform and then re-use them in multiple browsers.<br>
    <br>
    Is there any interest in this in WebKit? I'm starting to look
    through the code to see how it could be done (presumably implement
    CDMPrivate / CDMPrivateInterface to use CDMs matching this
    interface), but I figured I'd go to the source and see if anyone has
    looked into doing this before.<br></div></div></blockquote><div><br></div><div>I haven’t seen this document before, but after a brief look it seems that implementing a new CDMPrivate and CDMSession would be the best way to add support for this CDMi interface.</div><div><br></div><div>It does look like the CDMi module implements a lot of the platform-independant parts of the EME spec (whereas CDMPrivate and CDMSession are the platform-specific parts), so there may be some redundant logic. &nbsp;And we may need to expose some new methods from CDMSession -&gt; MediaKeySession, e.g. to change the MediaKeySession’s readyState. &nbsp;Apart from that, this looks doable.</div></div></div></div></blockquote><br></div><div>But I don’t think we’d want to support pluggable CDMs as an extension point on any of Apple’s ports (which is the whole point of CDMi), only the ones we support already. So the question is whether there are any other WebKit ports that would like to support pluggable CDMs.</div><div><br></div><div>Regards,</div><div>Maciej</div><div><br></div></body></html>