Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CPIX 2.4 #111

Merged
merged 6 commits into from
Sep 30, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
# The output directory contains the build output. This is not checked in to source control.
Output
Output
dist/
575 changes: 349 additions & 226 deletions Cpix.bs.md

Large diffs are not rendered by default.

Binary file added Images/Diagram-EncryptionOneDocumentKey.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Images/Diagram-EncryptionSeveralDocumentKeys.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed Images/DocumentKeyStructure.png
Binary file not shown.
Binary file modified Images/ExampleWorkflow-Live.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Images/ExampleWorkflow-OnDemand.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Images/Schema-ContentKey.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Images/Schema-ContentKeyList.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Images/Schema-ContentKeyPeriod.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Images/Schema-ContentKeyPeriodList.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Images/Schema-ContentKeyUsageRule.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Images/Schema-ContentKeyUsageRuleList.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Images/Schema-ContentProtectionData.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Images/Schema-Cpix.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Images/Schema-CpixView.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Images/Schema-DRMSystem.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Images/Schema-DRMSystemList.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Images/Schema-DeliveryData.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Images/Schema-DeliveryDataList.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Images/Schema-DocumentKey.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Images/Schema-HDCPData.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Images/Schema-HLSSignalingData.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added Images/Schema-OutputProtectionData.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file removed Images/Schema-TopLevel.png
Binary file not shown.
Binary file modified Images/Schema-UpdateHistoryItemList.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Images/UseCase-ClearDeliveryToOne.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified Images/UseCase-DeliveryWithDrmSignaling.png
Binary file modified Images/UseCase-DeliveryWithIncrementalUpdate.png
Binary file modified Images/UseCase-DeliveryWithUsageRules.png
Binary file modified Images/UseCase-EncryptedDeliveryToMany.png
Binary file added Images/UseCase-MultiplesAssets.png
Binary file modified Images/Workflow-EncryptorConsumer-Steps.png
Binary file modified Images/Workflow-EncryptorConsumer.png
Binary file modified Images/Workflow-EncryptorProducer-Steps.png
Binary file modified Images/Workflow-EncryptorProducer.png
Binary file modified Images/Workflow-MultipleProducers-Steps.png
Binary file modified Images/Workflow-MultipleProducers.png
26 changes: 4 additions & 22 deletions Readme.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,30 +16,12 @@ We accept pull requests!

Most recent content from the **master** branch (may contain work in progress):

![Build status of master branch](https://dev.azure.com/dashif/Automation/_apis/build/status/Cpix?branchName=master)
[![Build status of master branch](https://github.com/Dash-Industry-Forum/CPIX/actions/workflows/publish.yml/badge.svg?branch=master)](https://github.com/Dash-Industry-Forum/CPIX/actions/workflows/publish.yml)

* [HTML document](https://dashif-documents.azurewebsites.net/Cpix/master/Cpix.html)
* [PDF document](https://dashif-documents.azurewebsites.net/Cpix/master/Cpix.pdf)
* [Download PDF + HTML as archive](https://dashif-documents.azurewebsites.net/Cpix/master/Cpix.zip)
* [HTML document](http://dashif.org/CPIX/)
* [PDF document](http://dashif.org/CPIX/cpix.pdf)

Most recent content from the **community-review** branch (latest version published for community review):

![Build status of community-review branch](https://dev.azure.com/dashif/Automation/_apis/build/status/Cpix?branchName=community-review)

* [HTML document](https://dashif-documents.azurewebsites.net/Cpix/community-review/Cpix.html)
* [PDF document](https://dashif-documents.azurewebsites.net/Cpix/community-review/Cpix.pdf)
* [Download PDF + HTML as archive](https://dashif-documents.azurewebsites.net/Cpix/community-review/Cpix.zip)

Most recent content from the **published** branch (final outputs published by DASH-IF):

![Build status of published branch](https://dev.azure.com/dashif/Automation/_apis/build/status/Cpix?branchName=published)

* [HTML document](https://dashif-documents.azurewebsites.net/Cpix/published/Cpix.html)
* [PDF document](https://dashif-documents.azurewebsites.net/Cpix/published/Cpix.pdf)
* [Download PDF + HTML as archive](https://dashif-documents.azurewebsites.net/Cpix/published/Cpix.zip)

[View automated build history for all branches](https://dev.azure.com/dashif/Automation/_build?definitionId=6)

# Document authoring

See [Document Authoring Kit](https://dashif.org/DocumentAuthoring/) for details on document authoring process and the relevant tooling.
See [Document Authoring Kit](https://dashif.org/DASH-IF-IOP/authoring/) for details on document authoring process and the relevant tooling.
102 changes: 56 additions & 46 deletions XmlSchema/cpix.xsd
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2020 rel. 2 (x64) (http://www.altova.com) by [email protected] (Nagravision SA Kudelski Group) -->
<xs:schema xmlns:cpix="urn:dashif:org:cpix" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:pskc="urn:ietf:params:xml:ns:keyprov:pskc" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" targetNamespace="urn:dashif:org:cpix" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:import namespace="http://www.w3.org/XML/1998/namespace"/>
<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>
Expand All @@ -9,9 +8,9 @@
<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}"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="PlaylistType" final="restriction">
<xs:simpleType name="PlaylistType" final="restriction">
<xs:restriction base="xs:string">
<xs:enumeration value="master"/>
<xs:enumeration value="multiVariant"/>
<xs:enumeration value="media"/>
</xs:restriction>
</xs:simpleType>
Expand All @@ -24,7 +23,7 @@
</xs:complexType>
<xs:complexType name="UpdateHistoryItemListType">
<xs:sequence>
<xs:element name="UpdateHistoryItem" type="cpix:UpdateHistoryItemType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="UpdateHistoryItem" type="cpix:UpdateHistoryItemType" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="id" type="xs:ID" use="optional"/>
</xs:complexType>
Expand Down Expand Up @@ -65,20 +64,24 @@
</xs:complexType>
<xs:complexType name="ContentKeyUsageRuleListType">
<xs:sequence>
<xs:element name="ContentKeyUsageRule" type="cpix:ContentKeyUsageRuleType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="ContentKeyUsageRule" type="cpix:ContentKeyUsageRuleType" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="id" type="xs:ID" use="optional"/>
<xs:attribute name="updateVersion" type="xs:integer" use="optional"/>
</xs:complexType>
<xs:complexType name="ContentKeyPeriodType">
<xs:attribute name="id" type="xs:ID" use="optional"/>
<xs:attribute name="index" type="xs:integer" use="optional"/>
<xs:attribute name="label" type="xs:string" use="optional"/>
<xs:attribute name="start" type="xs:dateTime" use="optional"/>
<xs:attribute name="end" type="xs:dateTime" use="optional"/>
<xs:attribute name="startOffset" type="xs:duration" use="optional"/>
<xs:attribute name="endOffset" type="xs:duration" use="optional"/>
<xs:attribute name="duration" type="xs:duration" use="optional"/>
</xs:complexType>
<xs:complexType name="ContentKeyPeriodListType">
<xs:sequence>
<xs:element name="ContentKeyPeriod" type="cpix:ContentKeyPeriodType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="ContentKeyPeriod" type="cpix:ContentKeyPeriodType" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="id" type="xs:ID" use="optional"/>
<xs:attribute name="updateVersion" type="xs:integer" use="optional"/>
Expand All @@ -87,28 +90,35 @@
<xs:simpleContent>
<xs:extension base="xs:base64Binary">
<xs:attribute name="playlist" type="cpix:PlaylistType" use="optional"/>
<xs:attribute name="allowedCPC" type="xs:string" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="ContentProtectionDataType">
<xs:simpleContent>
<xs:extension base="xs:base64Binary">
<xs:attribute name="robustness" type="xs:string" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="DRMSystemType">
<xs:sequence>
<xs:element name="PSSH" type="xs:base64Binary" minOccurs="0"/>
<xs:element name="ContentProtectionData" type="xs:base64Binary" minOccurs="0"/>
<xs:element name="URIExtXKey" type="xs:base64Binary" minOccurs="0"/>
<xs:element name="PSSH" type="xs:base64Binary" minOccurs="0" maxOccurs="1"/>
<xs:element name="ContentProtectionData" type="cpix:ContentProtectionDataType" minOccurs="0" maxOccurs="1"/>
<xs:element name="HLSSignalingData" type="cpix:HLSSignalingDataType" minOccurs="0" maxOccurs="2"/>
<xs:element name="SmoothStreamingProtectionHeaderData" type="xs:string" minOccurs="0"/>
<xs:element name="HDSSignalingData" type="xs:base64Binary" minOccurs="0"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="id" type="xs:ID" use="optional"/>
<xs:attribute name="updateVersion" type="xs:integer" use="optional"/>
<xs:attribute name="systemId" type="cpix:UUIDType" use="required"/>
<xs:attribute name="kid" type="cpix:UUIDType" use="required"/>
<xs:attribute name="name" type="xs:string" use="optional"/>
<xs:attribute name="HLSAllowedCPC" type="xs:string" use="optional"/>
</xs:complexType>
<xs:complexType name="DRMSystemListType">
<xs:sequence>
<xs:element name="DRMSystem" type="cpix:DRMSystemType" minOccurs="0" maxOccurs="unbounded">
<xs:element name="DRMSystem" type="cpix:DRMSystemType" minOccurs="1" maxOccurs="unbounded">
<xs:unique name="uniquePlaylistForHLSSignalingData">
<xs:selector xpath="cpix:HLSSignalingData"/>
<xs:field xpath="@playlist"/>
Expand All @@ -118,67 +128,67 @@
<xs:attribute name="id" type="xs:ID" use="optional"/>
<xs:attribute name="updateVersion" type="xs:integer" use="optional"/>
</xs:complexType>
<xs:complexType name="KeyType">
<xs:complexType name="HDCPData">
<xs:sequence>
<xs:element name="Issuer" type="xs:string" minOccurs="0"/>
<xs:element name="AlgorithmParameters" type="pskc:AlgorithmParametersType" minOccurs="0"/>
<xs:element name="KeyProfileId" type="xs:string" minOccurs="0"/>
<xs:element name="KeyReference" type="xs:string" minOccurs="0"/>
<xs:element name="FriendlyName" type="xs:string" minOccurs="0"/>
<xs:element name="Data" type="pskc:KeyDataType" minOccurs="0"/>
<xs:element name="UserId" type="xs:string" minOccurs="0"/>
<xs:element name="Policy" type="pskc:PolicyType" minOccurs="0"/>
<xs:element name="Extensions" type="pskc:ExtensionsType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="HDCPOutputProtectionData" type="xs:base64Binary" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
<xs:attribute name="id" type="xs:ID" use="optional"/>
<xs:attribute name="Algorithm" type="pskc:KeyAlgorithmType" use="optional"/>
<xs:attribute name="HLSHDCPLevel" type="xs:string" use="optional"/>
</xs:complexType>
<xs:complexType name="ContentKeyType">
<xs:complexContent>
<xs:extension base="cpix:KeyType">
<xs:attribute name="kid" type="cpix:UUIDType" use="required"/>
<xs:attribute name="explicitIV" type="xs:base64Binary" use="optional"/>
<xs:attribute name="dependsOnKey" type="cpix:UUIDType" use="optional"/>
<xs:attribute name="commonEncryptionScheme" type="xs:string" use="optional"/>
</xs:extension>
</xs:complexContent>
<xs:sequence>
<xs:element name="HDCPData" type="cpix:HDCPData" minOccurs="0" maxOccurs="1"/>
<xs:element name="Data" type="pskc:KeyDataType" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
<xs:attribute name="id" type="xs:ID" use="optional"/>
<xs:attribute name="contentId" type="xs:string" use="optional"/>
<xs:attribute name="kid" type="cpix:UUIDType" use="required"/>
<xs:attribute name="explicitIV" type="xs:base64Binary" use="optional"/>
<xs:attribute name="dependsOnKey" type="cpix:UUIDType" use="optional"/>
<xs:attribute name="commonEncryptionScheme" type="xs:string" use="optional"/>
</xs:complexType>
<xs:complexType name="ContentKeyListType">
<xs:sequence>
<xs:element name="ContentKey" type="cpix:ContentKeyType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="ContentKey" type="cpix:ContentKeyType" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="id" type="xs:ID" use="optional"/>
<xs:attribute name="updateVersion" type="xs:integer" use="optional"/>
</xs:complexType>
<xs:complexType name="DocumentKeyType">
<xs:sequence>
<xs:element name="Data" type="pskc:KeyDataType" minOccurs="1" maxOccurs="1"/>
</xs:sequence>
<xs:attribute name="id" type="xs:ID" use="optional"/>
<xs:attribute name="encryptsKey" type="cpix:UUIDType" use="optional"/>
</xs:complexType>
<xs:complexType name="DeliveryDataType">
<xs:sequence>
<xs:element name="DeliveryKey" type="ds:KeyInfoType"/>
<xs:element name="DocumentKey" type="cpix:KeyType"/>
<xs:element name="MACMethod" type="pskc:MACMethodType" minOccurs="0"/>
<xs:element name="Description" type="xs:string" minOccurs="0"/>
<xs:element name="SendingEntity" type="xs:string" minOccurs="0"/>
<xs:element name="SenderPointOfContact" type="xs:string" minOccurs="0"/>
<xs:element name="ReceivingEntity" type="xs:string" minOccurs="0"/>
<xs:element name="DeliveryKey" type="ds:KeyInfoType" minOccurs="1" maxOccurs="1"/>
<xs:element name="DocumentKey" type="cpix:DocumentKeyType" minOccurs="1" maxOccurs="unbounded"/>
<xs:element name="MACMethod" type="pskc:MACMethodType" minOccurs="0" maxOccurs="1"/>
<xs:element name="Description" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="SendingEntity" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="SenderPointOfContact" type="xs:string" minOccurs="0" maxOccurs="1"/>
<xs:element name="ReceivingEntity" type="xs:string" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
<xs:attribute name="id" type="xs:ID" use="optional"/>
<xs:attribute name="updateVersion" type="xs:integer" use="optional"/>
<xs:attribute name="name" type="xs:string" use="optional"/>
</xs:complexType>
<xs:complexType name="DeliveryDataListType">
<xs:sequence>
<xs:element name="DeliveryData" type="cpix:DeliveryDataType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="DeliveryData" type="cpix:DeliveryDataType" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="id" type="xs:ID" use="optional"/>
<xs:attribute name="updateVersion" type="xs:integer" use="optional"/>
</xs:complexType>
<xs:complexType name="CpixType">
<xs:sequence>
<xs:element name="DeliveryDataList" type="cpix:DeliveryDataListType" minOccurs="0"/>
<xs:element name="ContentKeyList" type="cpix:ContentKeyListType" minOccurs="0"/>
<xs:element name="DRMSystemList" type="cpix:DRMSystemListType" minOccurs="0"/>
<xs:element name="ContentKeyPeriodList" type="cpix:ContentKeyPeriodListType" minOccurs="0"/>
<xs:element name="ContentKeyUsageRuleList" type="cpix:ContentKeyUsageRuleListType" minOccurs="0"/>
<xs:element name="UpdateHistoryItemList" type="cpix:UpdateHistoryItemListType" minOccurs="0"/>
<xs:element name="DeliveryDataList" type="cpix:DeliveryDataListType" minOccurs="0" maxOccurs="1"/>
<xs:element name="ContentKeyList" type="cpix:ContentKeyListType" minOccurs="0" maxOccurs="1"/>
<xs:element name="DRMSystemList" type="cpix:DRMSystemListType" minOccurs="0" maxOccurs="1"/>
<xs:element name="ContentKeyPeriodList" type="cpix:ContentKeyPeriodListType" minOccurs="0" maxOccurs="1"/>
<xs:element name="ContentKeyUsageRuleList" type="cpix:ContentKeyUsageRuleListType" minOccurs="0" maxOccurs="1"/>
<xs:element name="UpdateHistoryItemList" type="cpix:UpdateHistoryItemListType" minOccurs="0" maxOccurs="1"/>
<xs:element ref="ds:Signature" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="id" type="xs:ID" use="optional"/>
Expand Down
Loading