CPL : Composition Playlist

Préface

DCP simple

La Composition Playlist (CPL) est la partie la plus importante d'un DCP, il est la fiche descriptive d'un film, c'est elle qui va donner l'ensemble des informations sur sa composition et les liens avec tous les assets nécessaires à la lecture.

La CPL est définie dans les normes suivantes :

(nous écartons SMPTE 2067-3 - IMF - CPL qui est pour le format IMF)

Et ses ajouts :

Son format interne :

Ces principales règles sont :

Description

La CPL est l'élement central d'un DCP, c'est lui qui va déterminer l'aspect final d'un film, d'une bande-annonce, etc.

Nous l'avons vu précédemment dans PKL, revoyons le principe de la CPL :


AssetMap et PKL font tout deux références aux assets en bleus.
Pour des raisons de lisibilité, seuls les liens entre CPL et assets ont été conservés

Le but premier de la CPL est d'être une sorte de playlist avec beaucoup de métadonnées pour aider à la projection (entre autres).

Il existe de grandes possibilités avec une CPL, vous pouvez même faire un semblant de montage, des changements divers qui auront un impact sur la projection, l'utilisation de différents assets comme avec cet exemple :

Comme nous l'avons vu dans le chapitre PKL, avec les mêmes assets, plusieurs CPL peuvent décrire différentes formes de films. Nous verrons qu'à l'intérieur nous aurons des métadonnées pour chaque asset.

Ce fichier est tellement important que la très majorité des systèmes manipulant des DCP se basent uniquement dessus pour gérer les DCP. En dehors de la distribution DCP, les laboratoires, distributeurs et exploitants peuvent s'échanger des CPL en amont pour leurs propres systèmes (en dehors de l'ingest DCP qui lui nécessite l'entièreté du DCP)

CPL minimale

Voici l'exemple d'une CPL mininale intégrant les éléments et les données obligatoires, et 2 assets (video, audio) pour un film classique 2 :

<?xml version="1.0" encoding="UTF-8"?>
<CompositionPlaylist xmlns="http://www.smpte-ra.org/schemas/429-7/2006/CPL">
  <Id>urn:uuid:4aa03fde-da81-4451-baaa-4d85bf4773d0</Id>
  <IssueDate>2021-10-26T13:41:54+02:00</IssueDate>
  <ContentTitleText>DCP-INSIDE-CRYPTE_TST-2D-24_C_FR-XX_51_4K_20220102_SMPTE_OV</ContentTitleText>
  <ContentKind>test</ContentKind>
  <ContentVersion>
    <Id>urn:uuid:c8ac6696-5ed9-9c4e-a8e2-d841af9d2a9c</Id>
    <LabelText>TEST</LabelText>
  </ContentVersion>
  <RatingList/>
  <ReelList>
    <Reel>
      <Id>urn:uuid:1db4c5eb-89f5-45e6-87d2-ea8894f9aa5d</Id>
      <AssetList>
        <MainPicture>
          <Id>urn:uuid:3bd3d849-117b-46b0-bc45-3d3228c987c6</Id>
          <EditRate>24 1</EditRate>
          <IntrinsicDuration>24</IntrinsicDuration>
          <FrameRate>24 1</FrameRate>
          <ScreenAspectRatio>4096 2160</ScreenAspectRatio>
        </MainPicture>
        <MainSound>
          <Id>urn:uuid:3433a00f-4bc8-4c16-b33c-b0b0d65711af</Id>
          <EditRate>24 1</EditRate>
          <IntrinsicDuration>24</IntrinsicDuration>
        </MainSound>
      </AssetList>
    </Reel>
  </ReelList>
</CompositionPlaylist>

CPL (plus) complète

Voici l'exemple d'une CPL (plus) complète comprenant l'ensemble des éléments, des attributs et des données possibles pour le même film avec le même type d'assets :

<?xml version="1.0" encoding="UTF-8"?>
<CompositionPlaylist xmlns="http://www.smpte-ra.org/schemas/429-7/2006/CPL">
  <Id>urn:uuid:4aa03fde-da81-4451-baaa-4d85bf4773d0</Id>
  <AnnotationText language="en">DCP-INSIDE-CRYPTE_TST-2D-24_C_FR-XX_51_4K_20220102_SMPTE_OV</AnnotationText>
  <IssueDate>2021-10-26T13:41:54+02:00</IssueDate>
  <Issuer language="en">Doremi Labs, Inc.</Issuer>
  <Creator language="en">orca_wrapping 3.2.0</Creator>
  <ContentTitleText language="en">DCP-INSIDE-CRYPTE_TST-2D-24_C_FR-XX_51_4K_20220102_SMPTE_OV</ContentTitleText>
  <ContentKind scope="https://smpte-ra.org/schemas/429-16/2014/CPL-Metadata#scope/content-kind">test</ContentKind>
  
  <!-- ContentVersion -->
  <ContentVersion>
    <Id>urn:uuid:c8ac6696-5ed9-9c4e-a8e2-d841af9d2a9c</Id>
    <LabelText language="en">TEST</LabelText>
  </ContentVersion>
  
  <!-- Ratings -->
  <RatingList>
    <Rating>
      <Agency>http://www.mpaa.org/2003-ratings</Agency>
      <Label>PG-13</Label>
    </Rating>
  </RatingList>
  
  <!-- Reels -->
  <ReelList>
    <Reel>
      <Id>urn:uuid:1db4c5eb-89f5-45e6-87d2-ea8894f9aa5d</Id>
      <AnnotationText language="en">Reel 1</AnnotationText>
      <AssetList>
        <MainPicture>
          <Id>urn:uuid:3bd3d849-117b-46b0-bc45-3d3228c987c6</Id>
          <AnnotationText language="en">Picture 1</AnnotationText>
          <EditRate>24 1</EditRate>
          <IntrinsicDuration>24</IntrinsicDuration>
          <EntryPoint>0</EntryPoint>
          <Duration>24</Duration>
          <KeyId>urn:uuid:cf2ab7c6-c00f-4d52-aae2-3c3396a89b93</KeyId>
          <Hash>hnBSgENJXOvI6bfpat7GA1VImss=</Hash>
          <FrameRate>24 1</FrameRate>
          <ScreenAspectRatio>4096 2160</ScreenAspectRatio>
        </MainPicture>
        <MainSound>
          <Id>urn:uuid:3433a00f-4bc8-4c16-b33c-b0b0d65711af</Id>
          <AnnotationText language="en">Sound 1</AnnotationText>
          <EditRate>24 1</EditRate>
          <IntrinsicDuration>24</IntrinsicDuration>
          <EntryPoint>0</EntryPoint>
          <Duration>24</Duration>
          <KeyId>urn:uuid:36205699-4079-4140-a93a-6bd716750348</KeyId>
          <Hash>ACd4Aky39E608RNnVfAOisPICZ4=</Hash>
          <Language>en</Language>
        </MainSound>
      </AssetList>
    </Reel>
  </ReelList>
  
  <!-- Signer -->
  <Signer xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    <ds:X509Data>
      <ds:X509IssuerSerial>
        <ds:X509IssuerName>dnQualifier=\+LLvuYNO4YBJSp9Jjmlv8oippzQ=,CN=.DC.DMS.DC2.SMPTE,OU=DC.DOREMILABS.COM,O=DC2.SMPTE.DOREMILABS.COM</ds:X509IssuerName>
        <ds:X509SerialNumber>39</ds:X509SerialNumber>
      </ds:X509IssuerSerial>
      <ds:X509SubjectName>dnQualifier=Sbv3L5YQRoaBBIhNsOCYypL3B18=,CN=ME CS SM.DMSJP2K-70037.DC.DC2.SMPTE,OU=DC.DOREMILABS.COM,O=DC2.SMPTE.DOREMILABS.COM</ds:X509SubjectName>
    </ds:X509Data>
  </Signer>
  
  <!-- Signature -->
  <ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
    <ds:SignedInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#">
      <ds:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/>
      <ds:SignatureMethod Algorithm="http://www.w3.org/2001/04/xmldsig-more#rsa-sha256"/>
      <ds:Reference URI="">
        <ds:Transforms>
          <ds:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"></ds:Transform>
        </ds:Transforms>
        <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/>
        <ds:DigestValue>D87Djvi5HdS3Pdv5YBOfze9Libk=</ds:DigestValue>
      </ds:Reference>
    </ds:SignedInfo>
    <ds:SignatureValue>qitQETl4VDPik723Z+rNQd+mBtrVQJuolr0zTBwo3hu60I7o
oaoXsXxk1g8/qGsAyFB3cqR7ST0T+p7+nHBM+gYwrBtLIOrqh9wVbYoKU7mQJajnYNp9Dgu8
VJ37ZOpA7AtQpFKRhZGLry9zIADvWBaBSCiJ//W4vHir3c0ZjWoCdp1Y5BQ9RJRwy2U9ROFP
/NiUOUEyXuEL6vNHSzr2jOp28UCSsrLni3xbp9+1GXMeZPqCY+0Bjgsanm6jnvFYj5g8k7P6
4c1wmMTRrNNkwKCL8UuF2DTZ1bwzt3JmCgQAC5nN28T0XJG/J0LcFZBWKxtCbQnH877IjZdv
UFlGtg==</ds:SignatureValue>
    <ds:KeyInfo>
        <ds:X509Data>
          <ds:X509IssuerSerial>
            <ds:X509IssuerName>dnQualifier=\+LLvuYNO4YBJSp9Jjmlv8oippzQ=,CN=.DC.DMS.DC2.SMPTE,OU=DC.DOREMILABS.COM,O=DC2.SMPTE.DOREMILABS.COM</ds:X509IssuerName>
            <ds:X509SerialNumber>39</ds:X509SerialNumber>
          </ds:X509IssuerSerial>
          <ds:X509Certificate>MIIEfzCCA2egAwIBAgIBJzANBgkqhkiG9w0BAQsFADCBgjEh<!--...(truncated)...-->+udU9/jrSFAvHU2lT8neer722G+CzP/zjFD</ds:X509Certificate>
        </ds:X509Data>
        <ds:X509Data>
          <ds:X509IssuerSerial>
            <ds:X509IssuerName>dnQualifier=RQ/53RmuLsbzgfPXGlRYmJruwMs=,CN=.DMS.DC2.SMPTE,OU=DC.DOREMILABS.COM,O=DC2.SMPTE.DOREMILABS.COM</ds:X509IssuerName>
            <ds:X509SerialNumber>2</ds:X509SerialNumber>
          </ds:X509IssuerSerial>
          <ds:X509Certificate>MIIEdjCCA16gAwIBAgIBAjANBgkqhkiG9w0BAQsFADB/MSEw<!--...(truncated)...-->4zsyE0AGuj2nDstRBWLRy+5SlCByTIKp/PL/</ds:X509Certificate>
        </ds:X509Data>
        <ds:X509Data>
          <ds:X509IssuerSerial>
            <ds:X509IssuerName>dnQualifier=pkCB9j5KrAjndhcBkc3fOdfL/BQ=,CN=.PRODUCTS.DC2.SMPTE,OU=DC.DOREMILABS.COM,O=DC2.SMPTE.DOREMILABS.COM</ds:X509IssuerName>
            <ds:X509SerialNumber>4</ds:X509SerialNumber>
          </ds:X509IssuerSerial>
          <ds:X509Certificate>MIIEdDCCA1ygAwIBAgIBBDANBgkqhkiG9w0BAQsFADCBhDEh<!--...(truncated)...-->AAVM+A/J+q+14LJqcElnzHkvNTv2Qvp5+g==</ds:X509Certificate>
        </ds:X509Data>
        <ds:X509Data>
          <ds:X509IssuerSerial>
            <ds:X509IssuerName>dnQualifier=a/wUIHLuFW7RKXpNQGmQ966xOv8=,CN=.ROOT.DC2.SMPTE,OU=DC.DOREMILABS.COM,O=DC2.SMPTE.DOREMILABS.COM</ds:X509IssuerName>
            <ds:X509SerialNumber>2</ds:X509SerialNumber>
          </ds:X509IssuerSerial>
          <ds:X509Certificate>MIIEdjCCA16gAwIBAgIBAjANBgkqhkiG9w0BAQsFADCBgDEh<!--...(truncated)...-->tIY/GaHgNIVKoTRvgq7YXTVnvGqgolL1zwDx</ds:X509Certificate>
        </ds:X509Data>
        <ds:X509Data>
          <ds:X509IssuerSerial>
            <ds:X509IssuerName>dnQualifier=a/wUIHLuFW7RKXpNQGmQ966xOv8=,CN=.ROOT.DC2.SMPTE,OU=DC.DOREMILABS.COM,O=DC2.SMPTE.DOREMILABS.COM</ds:X509IssuerName>
            <ds:X509SerialNumber>1</ds:X509SerialNumber>
          </ds:X509IssuerSerial>
          <ds:X509Certificate>MIIEcjCCA1qgAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgDEh<!--...(truncated)...-->Bw/YZzykpHYmuzBxLriBb5TYsWziILI=</ds:X509Certificate>
        </ds:X509Data>
    </ds:KeyInfo>
  </ds:Signature>
</CompositionPlaylist>

Pour des raisons de lisibilité, les certificats (X509Certificate) ont été tronqués. Ne testez pas les DigestValues et SignatureValues dans l'exemple, leurs valeurs ne sont plus viables de part les modifications apportées pour la lisibilité :)

La CPL complète n'est qu'un exemple, il existe tellement de possibilité qu'il serait impossible de montrer toutes les versions, j'ai fait le choix de montrer qu'une seule bobine (Reel) avec un asset image et audio. Je n'ai pas intégré non plus la partie CompositionMetadataAsset qui n'est pas obligatoire que nous verrons plus en détail un peu plus loin.

Schéma visuel de la structure XML

Voici un schéma visuel simplifié de la structure interne d'une CPL.

CPL Structure

Une explication rapide sur comment lire le schéma :

Chaque case représente un élément (tag), les flèches indiquent une structure enfante existante (child), les cases grises représentent l'optionalité de l'élément. Si une case est doublée (ex Reel), ce qu'il peut en avoir plusieurs autres.

Important : Les éléments doivent suivre cet ordre. 3

Explication de la structure XML

Toute la partie haute (de Id à ContentTitleText) ont déjà été vu dans AssetMap et PKL, nous n'y reviendrons pas.

La structure racine

ContentKind : C'est quoi-quoi-donc ce contenu ?

ContentKind est le type du contenu, c'est un simple code

Code Description
feature Un film
trailer Bande-annonce pour un film (2-3 minutes)
test DCP de test, pour de la calibration ou pour l'installation
teaser Bande-annonce de moins d'une minute.
rating Carton pour indiquer l'age requis pour voir l'oeuvre
advertisement Publicité (en dehors d'une bande-annonce)
short Contenu entre 3 et 15 minutes - qui n'est pas une pub.
transitional Contenu extrêmement court (1-15 scondes) pour séparer deux contenus.
psa Annonce au public (public service announcement)
policy Code de conduite pour les clients
clip Élément d'une oeuvre
promo Élément pour de la publicité
stereocard Carton pour indiquer de mettre ses lunettes 3D

Vous retrouverez tous ces éléments à la page isdcf - content-types (attention, vous aurez aussi les codes pour l'IMF)

Notez que l'utilisation de ces codes va avoir un impact sur le nom du DCP.

Notez également que les principaux codes utilisés seront ceux entre feature et policy, les autres sont peu usités dans la vraie vie (et ils sont même parfois inutiles, comme stereocard qui peut-être un simple psa)

Il existe également un attribut scope qui permet d'identifier la liste des codes possibles :

Norme URL Description
SMPTE http://www.smpte-ra.org/schemas/429-7/2006/CPL#standard-content version d'origine
SMPTE http://www.smpte-ra.org/schemas/429-16/2014/CPL-Metadata#scope/content-kind des ajouts / update
INTEROP http://www.digicine.com/PROTO-ASDCP-CPL-20040511#standard-content vieille version

Vous verrez que très rarement un attribut scope dans une CPL, la plupart étant très standard, par défaut, ils utiliseront donc la version d'origine de 2006 qui est implicite.

ContentVersion : Un Id pour tous les réunir

ContentVersion est un peu particulier. En ayant un Id, on pourrait supposer que ContentVersion est une sorte de versioning de DCP. Il y a une partie de vrai mais pas tout à fait. En fait, c'est plutôt un regroupement de DCP.

C'est surtout pour faire le lien avec un autre DCP possible, par exemple, vous avez un DCP d'un film et des DCP de sous-titres. Vous aurez des CPL.Id différentes pour chaque DCP mais un seul et même ContentVersion.Id pour désigner que les sous-titres font partie du DCP du film. Il est également possible d'utiliser le ContentVersion pour faire des modifications d'un film. Par exemple, vous avez publié un DCP avec une CPL spécifique, mais vous vous êtes aperçu qu'il aurait fallu modifier un élément. Plutôt que de refaire entièrement le DCP, il vous suffit de faire un DCP avec une simple CPL (sans asset) mais avec le même ContentVersion.Id.

Notez que vous n'avez aucune obligation à utiliser le même ContentVersion.Id même pour des DCP d'ajouts ou de des DCP de modifications, le ContentVersion.Id sert principalement pour les logiciels de traitement, pour pouvoir identifier les liens possibles dans une galaxie de DCP.

Un exemple avec deux tests DCP-INSIDE (nous avons conservé que les parties nécessaires pour l'exemple) :

<CompositionPlaylist> <Id>urn:uuid:4aa03fde-da81-4451-baaa-4d85bf4773d0</Id> <ContentTitleText>DCP-INSIDE-CRYPTE_TST-2D-24_C_FR-XX_51_4K_20220102_SMPTE_OV</ContentTitleText> <ContentKind>test</ContentKind> <ContentVersion> <Id>urn:uuid:c8ac6696-5ed9-9c4e-a8e2-d841af9d2a9c</Id> <LabelText>TEST</LabelText> </ContentVersion> <CompositionPlaylist> <Id>urn:uuid:f3e11e32-3655-4f24-b1d8-5226d1671365</Id> <ContentTitleText>DCP-INSIDE_TST-2D-24_C_FR-XX_51_4K_20220102_SMPTE_OV</ContentTitleText> <ContentKind>test</ContentKind> <ContentVersion> <Id>urn:uuid:c8ac6696-5ed9-9c4e-a8e2-d841af9d2a9c</Id> <LabelText>TEST</LabelText> </ContentVersion>

Cet identifiant est légèrement différent des autres identifiants qui commencent obligatoirement par un urn:uuid. Cet identifiant est normé par la RFC 2141 qui sont des Uniform Resource Name (URN), nous avons donc des identifiants commençant par urn puis un code appelé Namespace Identifier (NID) et enfin un identifiant unique appelé Namespace Specific String (NSS).

Ils doivent être d'un de ces trois formats :

Syntaxiquement, ces identifiants sont des UUID parfaitement valides :

Dans la très grande majorité des cas, nous aurons un urn:uuid dans les DCP SMPTE.

A noter : certains ContentVersion.Id sont sans urn: : c'est parce que ce sont des DCP Interop et non SMPTE :)

Et enfin Label est un simple champ texte, libre, comme ContentTitle ou AnnotationText.

RatingList et Rating : les oubliés ... et oubliables

<RatingList>
   <Rating>
      <Agency>http://www.mpaa.org/2003-ratings</Agency>
      <Label>PG-13</Label>
   </Rating>
</RatingList>

RatingList est un ensemble de classification des œuvres cinématographiques à propos de l'âge du public autorisé pour l'oeuvre projetée.

Agency doit être un lien (URI) vers un site institutionnel et Label doit être la classification.

Voici les (quelques) exemples donnés par la norme SMPTE :

Site Codes
http://www.mpaa.org/2003-ratings R, PG, PG-13, G, NC-17
http://rcq.qc.ca/2003-ratings G, 13+, 16+, 18+

L'élément RatingList est obligatoire, mais vous pouvez le laisser vide sans aucune conséquence : la plupart des CPL n'ont même pas d'élément Rating à l'intérieur.

Les Ratings n'ont seulement qu'une valeur informative, par exemple pour les projectionnistes, afin de savoir rapidement si le public en salle est apte à cette projection et à l'exploitant afin de préparer en amont sa communication. Mais, même là, il se réfèrera à ses échanges avec le distributeur plutôt.

Pour vous montrer que tout le monde s'en fout, même la doc SMPTE indique que c'est en dehors de son scope. Pour le coup, on se demande même pourquoi RatingList reste obligatoire.

Notre conseil beauté du jour :

<RatingList/>

Passons à plus intéressant, notre ReelList et nos Reels !

ReelList et Reel : Reel 2 Reel

C'est la partie la plus importante de la CPL, c'est elle qui va lister tous les assets nécessaires à la bonne projection : c'est une simple playlist avec les assets l'un après l'autre.

Tout d'abord, il faut comprendre la philosophie derrière la CPL : pour garder la philosophie d'un film 35mm, les normes SMPTE mettent en avant le principe des bobines. Le film est aussi découpé en bobine dans le monde merveilleux du numérique.

Mais pourquoi garder le principe de la bobine ?

Pour découper certains moments du film. Par exemple, la partie logo du début peut-être une bobine, la moitié du film peut-être une autre bobine, l'autre moitié également et la fin avec les crédits une autre bobine.

Cela permet d'avoir plusieurs assets et de pouvoir créer des CPL différentes au besoin. Avec ce principe, il est possible, avec l'aide de la CPL, de faire rapidement un montage spécifique d'un film, par exemple mettre les logos du distributeur français au début du film sans avoir à refaire etnièrement le film.

On peut imaginer un DCP avec tous les assets des logos de tous les distributeurs du monde et tous les assets des crédits et avoir plusieurs CPL suivant la localisation de la projection; En Angleterre, vous aurez le film avec le logo du distributeur anglais et les crédits en anglais, en France, le logo du distributeur français et les crédits traduits en français, au Japon, le logo du distributeur Japonais et les crédits en kanjis et katakana. Et tout cela dans un seul DCP international (oui, je vais loin, mais c'est techniquement possible :)

Ainsi, la structure des assets ressemble à cela :

<ReelList>
    <Reel>
        <Id>urn:uuid:49947ff6-50a8-47a3-be61-d3f8e5125082</Id>
        <AssetList>
            <MainPicture/>
            <MainSound/>
        </AssetList>
    </Reel>
    <Reel>
        <Id>urn:uuid:19584a14-f922-4def-bf30-67fa405bb407</Id>
        <AssetList>
            <MainPicture/>
            <MainSound/>
        </AssetList>
    </Reel>
    <!-- 
        ... etc ... 
    -->
</ReelList>

Chaque Reel possède au minimum un Id - et un potentiel AnnotationText - nous avons déjà vu leurs formes auparavant, nous n'y reviendrons pas. Enfin, chaque Reel est complété par un AssetList comprenant les assets de la bobine.

Si on prend la première bobine (Reel) :

<Reel>
    <AssetList>
        <MainPicture/>
        <MainSound/>
    </AssetList>
</Reel>

Les MainPicture et MainSound vont être joués en même temps, puis à la fin, nous passons à la bobine suivante. Et ainsi de suite jusqu'à la fin de la plus ou moins longue liste des Reels.

Il existe cependant deux contraintes contradictoires entre la norme CPL et la norme DCP Operational Constraints [2] :

Donc en gros, il faut au minimum deux assets par Reel ... : un MainPicture ou MainStereoscopicPicture et un MainSound ou AuxData sonore.

Notez qu'il y a aura d'autres contraintes au fur et à mesure des assets, comme par exemple :

Bien entendu, MainPicture et MainSound sont les principaux assets que nous verrons le plus souvent dans un DCP, mais il en existe beaucoup plus !

Les différents types d'assets

Si vous voulez en savoir plus sur les types d'assets comme MainPicture, MainSound, MainSubtitle, MainCaption, AuxData, MainMarkers, CompositionMetadataAsset : chacun à son propre chapitre.

Pour comprendre la logique derrière le format des AssetTypes, voici d'abord une introduction aux AssetTypes.

Les différents types par chapitre :

Signer

Déjà vu dans la PKL

Signature

Déjà vu dans la PKL

Notes


  1. Un DCP nécessite au moins une PKL et un asset (CPL est considéré comme un asset) : A DCP shall consist of one Packing List and one or more assets (i.e., Composition Playlists and/or Track Files), referenced by the Packing List.-- SMPTE ST 429-2-2013 - DCP Operational Constraints - Chap. "Minimum Contents"

  2. A Composition Playlist shall have one picture essence track and one sound essence track in each Reel element -- SMPTE 429-2 - DCP Operational Constraints 

  3. Malgré l'utilisation du XML qui permet de placer les éléments dans n'importe quel ordre. Ici, on ne peut changer la position des différents éléments. Vérifiez dans le schéma XSD de la CPL: si les éléments sont entourés du tag xs:sequence, il faut respecter un ordre. 

  4. Il existe quelques contraintes dans la durée des assets - normées dans différentes documentations : 

    • The duration of a Reel shall be equal to the duration of the Reel’s MainPicture Asset, or the Asset with the shortest duration if the MainPicture Asset is not present -- SMPTE 429-7 - CPL

    • The value of all Duration elements in a reel, with the exception of timed text elements, shall be equal. -- SMPTE 429-3 DCP Operational Constraints.

    • The Duration of the Reel shall be determined by the MainPicture element -- SMPTE 429-3 DCP Operational Constraints.

  5. The duration of any asset contained in a reel, as indicated by the Duration and IntrinsicDuration elements, shall be no less than one second. -- SMPTE 429-7 - CPL