Skip to content

Commit 2849b79

Browse files
authored
Merge pull request #86 from lpiron/master
Resolving bug #83
2 parents e8146d4 + a6e548b commit 2849b79

File tree

3 files changed

+12
-7
lines changed

3 files changed

+12
-7
lines changed

Cpix.bs.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ The figure above shows logical entities that may send or receive DRM information
7373

7474
**Encoder** - A service provider who encodes media in a specified set of formats with different bitrates and resolutions etc., possibly determined by the publisher.
7575

76-
**Packager / Encryptor** - A service provider who encrypts and packages media, inserting [=DRM Signaling=] and metadata into the media files. In the case of DASH packaging, this consists of adding the default_KID in the file header tenc box, initialization vectors and subsample byte ranges in track fragments indexed by saio and saiz boxes, and possibly one or more [=PSSH=] boxes containing license acquisition information (from the DRM Service). Tracks that are partially encrypted or encrypted with multiple keys require sample to group boxes and sample group description boxes in each track fragment to associate different KIDs to groups of samples. The Packager could originate values for KIDs, [=Content Keys=], encryption layout, etc., then send that information to other entities that need it, including the DRM Service and Streamer, and probably the Content Provider. However, the Packager could receive that information from a different point of origin, such as the Content Provider or DRM Service.
76+
**Packager / Encryptor** - A service provider who encrypts and packages media, inserting [=DRM Signaling=] and metadata into the media files. In the case of DASH packaging, this consists of adding the default_KID in the file header `tenc` box, initialization vectors and subsample byte ranges in track fragments indexed by `saio` and `saiz` boxes, and possibly one or more [=PSSH=] boxes containing license acquisition information (from the DRM Service). Tracks that are partially encrypted or encrypted with multiple keys require sample to group boxes and sample group description boxes in each track fragment to associate different KIDs to groups of samples. The Packager could originate values for KIDs, [=Content Keys=], encryption layout, etc., then send that information to other entities that need it, including the DRM Service and Streamer, and probably the Content Provider. However, the Packager could receive that information from a different point of origin, such as the Content Provider or DRM Service.
7777

7878
**Manifest Creator** - A service provider which generates the media manifests which group the various media files into a coherent presentation. These manifest files may contain [=DRM Signaling=] information. For DASH, the MPD Creator is assumed to create one or more types of DASH MPD files, and provide indexing of Segments and/or sidx indexes for download so that players can byte range index Subsegments. The MPD must include descriptors for Common Encryption and DRM key management systems, and should include identification of the default_KID for each AdaptationSet element, and sufficient information in UUID ContentProtection elements to acquire a DRM license. The default_KID is available from the Packager and any other role that created it, and the DRM specific information is available from the DRM Service.
7979

@@ -515,8 +515,8 @@ The key this element contains can be encrypted. If it is encrypted, it is encryp
515515
: <dfn>Algorithm</dfn> (O, xs:ID)
516516
:: This is an attribute inherited from [[!RFC6030]] and made optional in this specification.
517517

518-
: <dfn>kid</dfn> (M, xs:string)
519-
:: The unique identifier of the [=Content Key=].
518+
: <dfn>kid</dfn> (M, cpix:KeyIdType)
519+
:: The unique identifier of the [=Content Key=]. It shall be formatted as defined in [[!MPEGCENC]], section 11.2.
520520

521521
: <dfn>explicitIV</dfn> (O, xs:base64binary)
522522
:: The IV to use when solution-specific logic requires a single explicit IV to be associated with a [=Content Key=]. The value consists of a 128-bit IV in binary format, base64-encoded.
@@ -578,12 +578,12 @@ The <{DRMSystem}> element contains all information on a DRM system that can be u
578578

579579
: <dfn>PSSH</dfn> (0...1, xs:base64binary)
580580
:: This is the full [=PSSH=] box that should be added to ISOBMFF files encrypted with the referenced [=Content Key=].
581-
:: When the key is a leaf key in a key hierarchy, the value is inserted under the moof boxes.
582-
:: This element should not be used when the key is not part of a key hierarchy or is a root key in a key hierarchy. Instead, the DRM system signaling should be carried by the format-specific data structures such <{DRMSystem/ContentProtectionData}>. See [[!DASHIFIOP]] section 7.7.1. If this element is used in the above circumstances, the value is inserted under the moov box.
581+
:: When the key is a leaf key in a key hierarchy, the value is inserted under the `moof` boxes.
582+
:: This element should not be used when the key is not part of a key hierarchy or is a root key in a key hierarchy. Instead, the DRM system signaling should be carried by the format-specific data structures such <{DRMSystem/ContentProtectionData}>. See [[!DASHIFIOP]] section 7.7.1. If this element is used in the above circumstances, the value is inserted under the `moov` box.
583583
:: This element has meaning only when the media content is in the ISOBMFF format.
584584

585585
: <dfn>ContentProtectionData</dfn> (0...1, xs:base64binary)
586-
:: This is the full well-formed standalone XML fragment to be added to the DASH manifest under the ContentProtection element for this DRM system. This is UTF-8 text without a byte order mark.
586+
:: This is the full well-formed standalone XML fragment to be added to the DASH manifest under the ContentProtection element for this DRM system. This is UTF-8 text without a byte order mark. An example of such data is the W3C signaling defined in [[!DASHIFIOP]], in this case, all `dashif:xxx` elements are children of the `ContentProtection` element and are therefore be signaled in this element.
587587
:: This element shall not be used if the referenced [=Content Key=] is a leaf key in a key hierarchy.
588588
:: This element has meaning only when a DASH manifest is created for the media content.
589589

Images/Schema-ContentKey.png

-593 Bytes
Loading

XmlSchema/cpix.xsd

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -133,10 +133,15 @@
133133
<xs:length value="4"/>
134134
</xs:restriction>
135135
</xs:simpleType>
136+
<xs:simpleType name="KeyIdType">
137+
<xs:restriction base="xs:string">
138+
<xs:pattern value="[A-Fa-f0-9]{8}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{4}-[A-Fa-f0-9]{12}"/>
139+
</xs:restriction>
140+
</xs:simpleType>
136141
<xs:complexType name="ContentKeyType">
137142
<xs:complexContent>
138143
<xs:extension base="cpix:KeyType">
139-
<xs:attribute name="kid" type="xs:string" use="required"/>
144+
<xs:attribute name="kid" type="cpix:KeyIdType" use="required"/>
140145
<xs:attribute name="explicitIV" type="xs:base64Binary" use="optional"/>
141146
<xs:attribute name="dependsOnKey" type="xs:string" use="optional"/>
142147
<xs:attribute name="commonEncryptionScheme" type="cpix:CencSchemeType" use="optional"/>

0 commit comments

Comments
 (0)