[EME] Bug 17673 - Add text to allow 'pssh' boxes in movie fragments and CENC 2 XML form keys in manifests
authorJerry Smith <jdsmith@microsoft.com>
Wed, 28 May 2014 10:43:53 -0700
changeset 321 5e4403d01787
parent 320 f112f46fd444
child 322 02c83c15a992
[EME] Bug 17673 - Add text to allow 'pssh' boxes in movie fragments and CENC 2 XML form keys in manifests
encrypted-media/cenc-format-respec.html
--- a/encrypted-media/cenc-format-respec.html	Wed May 28 10:24:26 2014 -0700
+++ b/encrypted-media/cenc-format-respec.html	Wed May 28 10:43:53 2014 -0700
@@ -79,11 +79,13 @@
 
     <section id="init-data">
       <h2>Initialization Data and Events</h2>
-      <p>Common Encryption files may contain protection system specific header ('pssh') boxes for one or more  SystemIDs.</p>
-      <p><a href="encrypted-media.html#initialization-data">Initialization Data</a> is always one or more concatenated 'pssh' boxes.</p>
-      <p>Each time one or more 'pssh' boxes are encountered, the <a href="encrypted-media.html#algorithms-initdata-encountered">Initialization Data Encountered</a> algorithm shall be invoked with <var title="">initDataType</var> = "cenc" and <var title="">initData</var> = the 'pssh' boxes.
-      'pssh' boxes must be provided together if and only if they appear directly next to each other in the file.
-      </p>
+      <p>Common Encryption files may contain one or more protection system specific header ('pssh') boxes, each for a different SystemID.</p>
+      <p>‘pssh’ boxes stored in movie fragment boxes are intended to store keys referenced by KID in a sample group description contained in that movie fragment, where the KID in the sample group description overrides the default_KID specified for the track in the track encryption box (‘tenc’).  Each ‘moof’/’pssh’ must protect the contained keys with a SystemID specific method.  Sample groups and ‘pssh’ key storage in movie fragments enable keys to be changed and accessed without interruption during playback of a track.</p>
+	  <p>ISO Common Encryption 2nd Edition also specifies storage of a ‘pssh’ box base64 encoded in an XML element of the form &lt;cenc:pssh (base64 ‘pssh’)&gt;.  For instance, DASH manifests may provide ‘pssh’ boxes in this format, each contained in a ContentProtection Descriptor element identified by a SystemID.  These ‘pssh’ boxes may be decoded and concatenated by an application to provide equivalent Initialization Data to that stored in movie or movie fragment boxes.</p>
+
+      <p><a href="encrypted-media.html#initialization-data">Initialization Data</a> is always one or more concatenated 'pssh' boxes.  The application may parse out 'pssh' boxes which do not correspond to the selected key system, and may not use the InitData from the file at all and instead use initData from another source (e.g. the XML element described above). The CDM must be able to filter multiple 'pssh' in the initData to find the 'pssh' box which is Key System appropriate.</p>
+      <p>Each time one or more 'pssh' boxes are encountered, the <a href="encrypted-media.html#algorithms-initdata-encountered">Initialization Data Encountered</a> algorithm shall be invoked with <var title="">initDataType</var> = "cenc" and <var title="">initData</var> = the 'pssh' boxes(s).  Multiple 'pssh' boxes must be provided together if and only if they appear directly next to each other in the file.</p>
+
       <p>If a supported 'pssh' box (based on SystemID) is not found while processing the <var>initData</var> in the <code><a href="encrypted-media.html#dom-createsession">createSession()</a></code> algorithm, follow the algorithm step for "<var>init data</var> is not supported by the <var>cdm</var>."</p>
     </section>