Check CPL hash in the PKL on verify.
[libdcp.git] / src / cpl.cc
index f807bc61c5cf00672b7e8ca2cf5d15b1db9e2860..cc7237ea59498a3c2f0926778f7d9641616bb5ee 100644 (file)
@@ -140,10 +140,6 @@ CPL::write_xml (boost::filesystem::path file, Standard standard, shared_ptr<cons
                root = doc.create_root_node ("CompositionPlaylist", cpl_smpte_ns);
        }
 
-       if (signer) {
-               root->set_namespace_declaration ("http://www.w3.org/2000/09/xmldsig#", "dsig");
-       }
-
        root->add_child("Id")->add_child_text ("urn:uuid:" + _id);
        root->add_child("AnnotationText")->add_child_text (_metadata.annotation_text);
        root->add_child("IssueDate")->add_child_text (_metadata.issue_date);
@@ -174,6 +170,32 @@ CPL::write_xml (boost::filesystem::path file, Standard standard, shared_ptr<cons
        set_file (file);
 }
 
+list<shared_ptr<ReelAsset> >
+CPL::reel_assets ()
+{
+       list<shared_ptr<ReelAsset> > c;
+
+       BOOST_FOREACH (shared_ptr<Reel> i, _reels) {
+               if (i->main_picture ()) {
+                       c.push_back (i->main_picture());
+               }
+               if (i->main_sound ()) {
+                       c.push_back (i->main_sound());
+               }
+               if (i->main_subtitle ()) {
+                       c.push_back (i->main_subtitle());
+               }
+               BOOST_FOREACH (shared_ptr<ReelClosedCaptionAsset> j, i->closed_captions()) {
+                       c.push_back (j);
+               }
+               if (i->atmos ()) {
+                       c.push_back (i->atmos());
+               }
+       }
+
+       return c;
+}
+
 list<shared_ptr<const ReelAsset> >
 CPL::reel_assets () const
 {
@@ -189,8 +211,8 @@ CPL::reel_assets () const
                if (i->main_subtitle ()) {
                        c.push_back (i->main_subtitle());
                }
-               if (i->closed_caption ()) {
-                       c.push_back (i->closed_caption());
+               BOOST_FOREACH (shared_ptr<ReelClosedCaptionAsset> j, i->closed_captions()) {
+                       c.push_back (j);
                }
                if (i->atmos ()) {
                        c.push_back (i->atmos());
@@ -273,6 +295,12 @@ CPL::resolve_refs (list<shared_ptr<Asset> > assets)
 
 string
 CPL::pkl_type (Standard standard) const
+{
+       return static_pkl_type (standard);
+}
+
+string
+CPL::static_pkl_type (Standard standard)
 {
        switch (standard) {
        case INTEROP: