diff options
| author | Carl Hetherington <cth@carlh.net> | 2016-05-24 11:26:50 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2016-05-24 11:26:50 +0100 |
| commit | 437f928f7d7209c9e4c8ea3e3b5d0e8dc43b54a8 (patch) | |
| tree | 50feb1d8277cf6ad7fb8da83b36b0d5782c55326 | |
| parent | 23644a666637d3db3ccf2007a7cbbcdf4f2d29a2 (diff) | |
Add reporting of DCP type.
| -rw-r--r-- | src/cpl.cc | 8 | ||||
| -rw-r--r-- | src/cpl.h | 7 | ||||
| -rw-r--r-- | src/dcp.cc | 24 | ||||
| -rw-r--r-- | src/dcp.h | 8 | ||||
| -rw-r--r-- | src/exceptions.cc | 6 | ||||
| -rw-r--r-- | src/exceptions.h | 6 | ||||
| -rw-r--r-- | test/read_dcp_test.cc | 22 | ||||
| -rw-r--r-- | test/ref/DCP/dcp_test3/ASSETMAP | 2 | ||||
| -rw-r--r-- | test/ref/DCP/dcp_test3/VOLINDEX | 2 | ||||
| -rw-r--r-- | test/ref/DCP/dcp_test3/cpl_cbfd2bc0-21cf-4a8f-95d8-9cddcbe51296.xml | 76 | ||||
| -rw-r--r-- | test/ref/DCP/dcp_test3/j2c_c6035f97-b07d-4e1c-944d-603fc2ddc242.mxf | bin | 0 -> 561776 bytes | |||
| -rw-r--r-- | test/ref/DCP/dcp_test3/pcm_69cf9eaf-9a99-4776-b022-6902208626c3.mxf | bin | 0 -> 881174 bytes | |||
| -rw-r--r-- | test/ref/DCP/dcp_test3/pkl_d87a950c-bd6f-41f6-90cc-56ccd673e131.xml | 76 |
13 files changed, 234 insertions, 3 deletions
@@ -70,6 +70,14 @@ CPL::CPL (boost::filesystem::path file) cxml::Document f ("CompositionPlaylist"); f.read_file (file); + if (f.namespace_uri() == cpl_interop_ns) { + _standard = INTEROP; + } else if (f.namespace_uri() == cpl_smpte_ns) { + _standard = SMPTE; + } else { + boost::throw_exception (XMLError ("Unrecognised CPL namespace " + f.namespace_uri())); + } + _id = remove_urn_uuid (f.string_child ("Id")); _annotation_text = f.optional_string_child ("AnnotationText").get_value_or (""); _metadata.issuer = f.optional_string_child ("Issuer").get_value_or (""); @@ -114,6 +114,10 @@ public: int64_t duration () const; + boost::optional<Standard> standard () const { + return _standard; + } + protected: /** @return type string for PKLs for this asset */ std::string pkl_type (Standard standard) const; @@ -129,6 +133,9 @@ private: std::string _content_version_id; ///< <Id> in <ContentVersion> std::string _content_version_label_text; ///< <LabelText> in <ContentVersion> std::list<boost::shared_ptr<Reel> > _reels; + + /** Standard of CPL that was read in */ + boost::optional<Standard> _standard; }; } @@ -81,6 +81,7 @@ DCP::DCP (boost::filesystem::path directory) _directory = boost::filesystem::canonical (_directory); } +/** Call this instead of throwing an exception if the error can be tolerated */ template<class T> void survivable_error (bool keep_going, dcp::DCP::ReadErrors* errors, T const & e) { @@ -108,7 +109,16 @@ DCP::read (bool keep_going, ReadErrors* errors, bool ignore_incorrect_picture_mx } cxml::Document asset_map ("AssetMap"); + asset_map.read_file (asset_map_file); + if (asset_map.namespace_uri() == assetmap_interop_ns) { + _standard = INTEROP; + } else if (asset_map.namespace_uri() == assetmap_smpte_ns) { + _standard = SMPTE; + } else { + boost::throw_exception (XMLError ("Unrecognised Assetmap namespace " + asset_map.namespace_uri())); + } + list<shared_ptr<cxml::Node> > asset_nodes = asset_map.node_child("AssetList")->node_children ("Asset"); map<string, boost::filesystem::path> paths; BOOST_FOREACH (shared_ptr<cxml::Node> i, asset_nodes) { @@ -153,11 +163,23 @@ DCP::read (bool keep_going, ReadErrors* errors, bool ignore_incorrect_picture_mx delete p; if (root == "CompositionPlaylist") { - _cpls.push_back (shared_ptr<CPL> (new CPL (path))); + shared_ptr<CPL> cpl (new CPL (path)); + if (_standard && cpl->standard() && cpl->standard().get() != _standard.get()) { + survivable_error (keep_going, errors, MismatchedStandardError ()); + } + _cpls.push_back (cpl); } else if (root == "DCSubtitle") { + if (_standard && _standard.get() == SMPTE) { + survivable_error (keep_going, errors, MismatchedStandardError ()); + } other_assets.push_back (shared_ptr<InteropSubtitleAsset> (new InteropSubtitleAsset (path))); } } else if (boost::filesystem::extension (path) == ".mxf") { + + /* XXX: asdcplib does not appear to support discovery of read MXFs standard + (Interop / SMPTE) + */ + ASDCP::EssenceType_t type; if (ASDCP::EssenceType (path.string().c_str(), type) != ASDCP::RESULT_OK) { throw DCPReadError ("Could not find essence type"); @@ -102,6 +102,11 @@ public: void resolve_refs (std::list<boost::shared_ptr<Asset> > assets); + /** @return Standard of a DCP that was read in */ + boost::optional<Standard> standard () const { + return _standard; + } + private: /** Write the PKL file. @@ -126,6 +131,9 @@ private: boost::filesystem::path _directory; /** the CPLs that make up this DCP */ std::list<boost::shared_ptr<CPL> > _cpls; + + /** Standard of DCP that was read in */ + boost::optional<Standard> _standard; }; } diff --git a/src/exceptions.cc b/src/exceptions.cc index ed6edaa4..14ae8e9c 100644 --- a/src/exceptions.cc +++ b/src/exceptions.cc @@ -70,3 +70,9 @@ ProgrammingError::ProgrammingError (string file, int line) { } + +MismatchedStandardError::MismatchedStandardError () + : DCPReadError ("DCP contains both Interop and SMPTE parts") +{ + +} diff --git a/src/exceptions.h b/src/exceptions.h index 801bfb01..3410337e 100644 --- a/src/exceptions.h +++ b/src/exceptions.h @@ -153,6 +153,12 @@ public: ProgrammingError (std::string file, int line); }; +class MismatchedStandardError : public DCPReadError +{ +public: + MismatchedStandardError (); +}; + } #endif diff --git a/test/read_dcp_test.cc b/test/read_dcp_test.cc index 097d0aa9..60aa3591 100644 --- a/test/read_dcp_test.cc +++ b/test/read_dcp_test.cc @@ -18,14 +18,15 @@ */ #include <boost/test/unit_test.hpp> +#include <boost/optional/optional_io.hpp> #include "dcp.h" #include "cpl.h" using std::list; using boost::shared_ptr; -/** Read DCP that is in git and make sure that basic stuff is read in correctly */ -BOOST_AUTO_TEST_CASE (read_dcp) +/** Read a SMPTE DCP that is in git and make sure that basic stuff is read in correctly */ +BOOST_AUTO_TEST_CASE (read_dcp_test1) { dcp::DCP d ("test/ref/DCP/dcp_test1"); d.read (); @@ -35,4 +36,21 @@ BOOST_AUTO_TEST_CASE (read_dcp) BOOST_CHECK_EQUAL (cpls.front()->annotation_text(), "A Test DCP"); BOOST_CHECK_EQUAL (cpls.front()->content_kind(), dcp::FEATURE); + BOOST_REQUIRE (d.standard()); + BOOST_CHECK_EQUAL (d.standard(), dcp::SMPTE); +} + +/** Read an Interop DCP that is in git and make sure that basic stuff is read in correctly */ +BOOST_AUTO_TEST_CASE (read_dcp_test2) +{ + dcp::DCP d ("test/ref/DCP/dcp_test3"); + d.read (); + + list<shared_ptr<dcp::CPL> > cpls = d.cpls (); + BOOST_CHECK_EQUAL (cpls.size(), 1); + + BOOST_CHECK_EQUAL (cpls.front()->annotation_text(), "Test_FTR-1_F-119_10_2K_20160524_IOP_OV"); + BOOST_CHECK_EQUAL (cpls.front()->content_kind(), dcp::FEATURE); + BOOST_REQUIRE (d.standard()); + BOOST_CHECK_EQUAL (d.standard(), dcp::INTEROP); } diff --git a/test/ref/DCP/dcp_test3/ASSETMAP b/test/ref/DCP/dcp_test3/ASSETMAP new file mode 100644 index 00000000..6b4de017 --- /dev/null +++ b/test/ref/DCP/dcp_test3/ASSETMAP @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8"?> +<AssetMap xmlns="http://www.digicine.com/PROTO-ASDCP-AM-20040311#"><Id>urn:uuid:fe6cc6ff-05f8-435e-9486-7ce432f3855a</Id><AnnotationText>Created by DCP-o-matic 2.8.4devel 4ba821a8b0</AnnotationText><VolumeCount>1</VolumeCount><IssueDate>2016-05-24T10:56:58+01:00</IssueDate><Issuer>DCP-o-matic 2.8.4devel 4ba821a8b0</Issuer><Creator>DCP-o-matic 2.8.4devel 4ba821a8b0</Creator><AssetList><Asset><Id>urn:uuid:d87a950c-bd6f-41f6-90cc-56ccd673e131</Id><PackingList>true</PackingList><ChunkList><Chunk><Path>pkl_d87a950c-bd6f-41f6-90cc-56ccd673e131.xml</Path><VolumeIndex>1</VolumeIndex><Offset>0</Offset><Length>8175</Length></Chunk></ChunkList></Asset><Asset><Id>urn:uuid:cbfd2bc0-21cf-4a8f-95d8-9cddcbe51296</Id><ChunkList><Chunk><Path>cpl_cbfd2bc0-21cf-4a8f-95d8-9cddcbe51296.xml</Path><VolumeIndex>1</VolumeIndex><Offset>0</Offset><Length>8542</Length></Chunk></ChunkList></Asset><Asset><Id>urn:uuid:c6035f97-b07d-4e1c-944d-603fc2ddc242</Id><ChunkList><Chunk><Path>j2c_c6035f97-b07d-4e1c-944d-603fc2ddc242.mxf</Path><VolumeIndex>1</VolumeIndex><Offset>0</Offset><Length>561776</Length></Chunk></ChunkList></Asset><Asset><Id>urn:uuid:69cf9eaf-9a99-4776-b022-6902208626c3</Id><ChunkList><Chunk><Path>pcm_69cf9eaf-9a99-4776-b022-6902208626c3.mxf</Path><VolumeIndex>1</VolumeIndex><Offset>0</Offset><Length>881174</Length></Chunk></ChunkList></Asset></AssetList></AssetMap> diff --git a/test/ref/DCP/dcp_test3/VOLINDEX b/test/ref/DCP/dcp_test3/VOLINDEX new file mode 100644 index 00000000..49dd7ecc --- /dev/null +++ b/test/ref/DCP/dcp_test3/VOLINDEX @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8"?> +<VolumeIndex xmlns="http://www.digicine.com/PROTO-ASDCP-AM-20040311#"><Index>1</Index></VolumeIndex> diff --git a/test/ref/DCP/dcp_test3/cpl_cbfd2bc0-21cf-4a8f-95d8-9cddcbe51296.xml b/test/ref/DCP/dcp_test3/cpl_cbfd2bc0-21cf-4a8f-95d8-9cddcbe51296.xml new file mode 100644 index 00000000..8185ddb1 --- /dev/null +++ b/test/ref/DCP/dcp_test3/cpl_cbfd2bc0-21cf-4a8f-95d8-9cddcbe51296.xml @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="UTF-8"?> +<CompositionPlaylist xmlns="http://www.digicine.com/PROTO-ASDCP-CPL-20040511#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><Id>urn:uuid:cbfd2bc0-21cf-4a8f-95d8-9cddcbe51296</Id><AnnotationText>Test_FTR-1_F-119_10_2K_20160524_IOP_OV</AnnotationText><IssueDate>2016-05-24T10:56:58+01:00</IssueDate><Issuer>DCP-o-matic 2.8.4devel 4ba821a8b0</Issuer><Creator>DCP-o-matic 2.8.4devel 4ba821a8b0</Creator><ContentTitleText>Test_FTR-1_F-119_10_2K_20160524_IOP_OV</ContentTitleText><ContentKind>feature</ContentKind><ContentVersion><Id>urn:uuid:dc199ce3-c0ab-4e4c-84fa-7f2e5b34a4af</Id><LabelText>urn:uuid:dc199ce3-c0ab-4e4c-84fa-7f2e5b34a4af2016-05-24T10:56:58+01:00</LabelText></ContentVersion><RatingList/><ReelList><Reel><Id>urn:uuid:439ff814-0e1b-44ab-9165-2b265b355f20</Id><AssetList><MainPicture><Id>urn:uuid:c6035f97-b07d-4e1c-944d-603fc2ddc242</Id><AnnotationText>j2c_c6035f97-b07d-4e1c-944d-603fc2ddc242.mxf</AnnotationText><EditRate>24 1</EditRate><IntrinsicDuration>24</IntrinsicDuration><EntryPoint>0</EntryPoint><Duration>24</Duration><Hash>42m6Sxyk+CT/aq0dEnjGXX//AjA=</Hash><FrameRate>24 1</FrameRate><ScreenAspectRatio>1.85</ScreenAspectRatio></MainPicture><MainSound><Id>urn:uuid:69cf9eaf-9a99-4776-b022-6902208626c3</Id><AnnotationText>pcm_69cf9eaf-9a99-4776-b022-6902208626c3.mxf</AnnotationText><EditRate>24 1</EditRate><IntrinsicDuration>24</IntrinsicDuration><EntryPoint>0</EntryPoint><Duration>24</Duration><Hash>a+7/nC9SIvCIziRyH9BXOr4r0fk=</Hash></MainSound></AssetList></Reel></ReelList><Signer><dsig:X509Data><dsig:X509IssuerSerial><dsig:X509IssuerName>dnQualifier=FZN\+C9r\+P8srz0\+uH45JHcDHb0g=,CN=.dcpomatic.smpte-430-2.INTERMEDIATE,OU=dcpomatic.com,O=dcpomatic.com</dsig:X509IssuerName><dsig:X509SerialNumber>7</dsig:X509SerialNumber></dsig:X509IssuerSerial><dsig:X509SubjectName>dnQualifier=S9Mf7OiiXsCV2LGoSr1LKsRcat0=,CN=CS.dcpomatic.smpte-430-2.LEAF,OU=dcpomatic.com,O=dcpomatic.com</dsig:X509SubjectName></dsig:X509Data></Signer><dsig:Signature><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><dsig:Reference URI=""><dsig:Transforms><dsig:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>D4hqt7drQ3mOOk9N7uQ4h3I8skc=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>KF8cjLvn5dwNxzHUXxT/ux479kEJmakBb2y6VCJ7scbH50NKVfDaufxMDf8Owt7A +RKy0yGTo9IzOcooBUDbtQypKxZEN2I9zPOWBSsgFRthMPODbJ9oHa5i0JoiHePW6 +pn/jrEI62WoF6O7+u2Y1WAGY/aERJyD285387OXLWHVjKOQtG2MoorbRyIBtG6vL +g6lYum8B/etyKxoJ5Rpc6BMqe/X+6kGtgxmrEqOaDuEm49GMw4c1sXqjE6/NtOUo +gE7oBooOzKw9J2GKv4haUwbauVaezyDXBQRHOWJ4WGRRhfbmP93ouKsr0ZqohbGQ +4xovNoDaN513KXzGSo/87g==</dsig:SignatureValue><dsig:KeyInfo><dsig:X509Data><dsig:X509IssuerSerial><dsig:X509IssuerName>dnQualifier=FZN\+C9r\+P8srz0\+uH45JHcDHb0g=,CN=.dcpomatic.smpte-430-2.INTERMEDIATE,OU=dcpomatic.com,O=dcpomatic.com</dsig:X509IssuerName><dsig:X509SerialNumber>7</dsig:X509SerialNumber></dsig:X509IssuerSerial><dsig:X509Certificate>MIIEaTCCA1GgAwIBAgIBBzANBgkqhkiG9w0BAQsFADCBhTEWMBQGA1UECgwNZGNw +b21hdGljLmNvbTEWMBQGA1UECwwNZGNwb21hdGljLmNvbTEsMCoGA1UEAwwjLmRj +cG9tYXRpYy5zbXB0ZS00MzAtMi5JTlRFUk1FRElBVEUxJTAjBgNVBC4THEZaTitD +OXIrUDhzcnowK3VINDVKSGNESGIwZz0wHhcNMTYwNTE2MTIyNjA4WhcNMjYwNTEy +MTIyNjA4WjB/MRYwFAYDVQQKDA1kY3BvbWF0aWMuY29tMRYwFAYDVQQLDA1kY3Bv +bWF0aWMuY29tMSYwJAYDVQQDDB1DUy5kY3BvbWF0aWMuc21wdGUtNDMwLTIuTEVB +RjElMCMGA1UELhMcUzlNZjdPaWlYc0NWMkxHb1NyMUxLc1JjYXQwPTCCASIwDQYJ +KoZIhvcNAQEBBQADggEPADCCAQoCggEBAKxEJwAKDOwDLron0tTs+uMYdFBXCUsq +Y+wxFhQCkuAgnD8evF91kUIBd79W0fd3XByGj6tyi5S0JOIYtDmq8bA3RnpQ/R9S +KQKESnHtt9Zptxk5KbIUUShiEBTTLfeLtubn8IFqgsarPEJPdXyjvzzyNEqbWpW0 +SVYC09/GzhOFjRzikAdG+MrWa93xGyf7/Bonmt4Z/pE2C+Enq7Oj0ascBYtWDB9T +U5IihXvo9VcAfiXWQlDoWrCP+YxjwRgMByh21RGJxdtqwV6KaBhmCEy976IVr8VW +DLmq8c5Nnz6vwypGCbdtLFr9Gxd93JbA+KPvXp7zx6d5+WfOJx8sE4sCAwEAAaOB +6DCB5TAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIFoDAdBgNVHQ4EFgQUS9Mf7Oii +XsCV2LGoSr1LKsRcat0wgagGA1UdIwSBoDCBnYAUFZN+C9r+P8srz0+uH45JHcDH +b0ihgYGkfzB9MRYwFAYDVQQKDA1kY3BvbWF0aWMuY29tMRYwFAYDVQQLDA1kY3Bv +bWF0aWMuY29tMSQwIgYDVQQDDBsuZGNwb21hdGljLnNtcHRlLTQzMC0yLlJPT1Qx +JTAjBgNVBC4THEFPZ0tWZU1nNk5JbUNFWDNVTzEzUGlrK0l2cz2CAQYwDQYJKoZI +hvcNAQELBQADggEBAK2GcL7gKu6C/deJtQqZgeM/hHXEpo+jRwBuOe6D5Z7CN2O3 +DuhO54otN+mL6ImyrUvDZCoJa70gdnjLzrx8soBHXQ8IgMUh5+HItUYbX/U+vnTK +f8Ox1XybZenYNi8quwuodGBBZOWbXjLiMdVKkrCSjOiQRG6dCyFLIUZH/lsCETRI +7E+bdQmIh3+tiUtQar2D4kO2G1GrMKzpGWL1Vap6vEK2Lrvj8xQNmDT6VOUGE3Yz +qx0kHkPEYazi8aX/h7VG/ikTtR9Y57UNJTs7pG7EUIQZPRjaSptTQsB1qAP6ZsH8 ++Ko1kgIe6OKqckVkZyZDqM1LlgbC+3cRk5bf6/E=</dsig:X509Certificate></dsig:X509Data><dsig:X509Data><dsig:X509IssuerSerial><dsig:X509IssuerName>dnQualifier=AOgKVeMg6NImCEX3UO13Pik\+Ivs=,CN=.dcpomatic.smpte-430-2.ROOT,OU=dcpomatic.com,O=dcpomatic.com</dsig:X509IssuerName><dsig:X509SerialNumber>6</dsig:X509SerialNumber></dsig:X509IssuerSerial><dsig:X509Certificate>MIIEbTCCA1WgAwIBAgIBBjANBgkqhkiG9w0BAQsFADB9MRYwFAYDVQQKDA1kY3Bv +bWF0aWMuY29tMRYwFAYDVQQLDA1kY3BvbWF0aWMuY29tMSQwIgYDVQQDDBsuZGNw +b21hdGljLnNtcHRlLTQzMC0yLlJPT1QxJTAjBgNVBC4THEFPZ0tWZU1nNk5JbUNF +WDNVTzEzUGlrK0l2cz0wHhcNMTYwNTE2MTIyNjA4WhcNMjYwNTEzMTIyNjA4WjCB +hTEWMBQGA1UECgwNZGNwb21hdGljLmNvbTEWMBQGA1UECwwNZGNwb21hdGljLmNv +bTEsMCoGA1UEAwwjLmRjcG9tYXRpYy5zbXB0ZS00MzAtMi5JTlRFUk1FRElBVEUx +JTAjBgNVBC4THEZaTitDOXIrUDhzcnowK3VINDVKSGNESGIwZz0wggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC0io5HerL+iBGM+CWbpq5ZaTu35dA5Gp79 +iGl8J0S2tgzkkX5lXyJTtI5GZYMtaJWHwQYtbpmYsOxvhc4Xv/Jhfr0fPwQTFZTW +2jJQaLg2wno4SbP2mNU5QBCqPPkPvoNAmu0fqWmkBX8HAEIrYHxDDR4e/ZgEEnJp +D1RpwiMxVX9dCvtcmr8vqz8PSQ5xBJA+tw8WJgV+T/woDEvYZ9t65O4Opg70TGWS +hNRCJc7NUXP354zutfLjibLNyScQCf37ssh/2P8rp1+JdIxYqEhOIKNox9eHeBOT +P54W685/KJ8GGsHc+sKydMzJIu4HkVqHhY5WSLc2wj/07Hq59tffAgMBAAGjge4w +geswEgYDVR0TAQH/BAgwBgEB/wIBAjALBgNVHQ8EBAMCAQYwHQYDVR0OBBYEFBWT +fgva/j/LK89Prh+OSR3Ax29IMIGoBgNVHSMEgaAwgZ2AFADoClXjIOjSJghF91Dt +dz4pPiL7oYGBpH8wfTEWMBQGA1UECgwNZGNwb21hdGljLmNvbTEWMBQGA1UECwwN +ZGNwb21hdGljLmNvbTEkMCIGA1UEAwwbLmRjcG9tYXRpYy5zbXB0ZS00MzAtMi5S +T09UMSUwIwYDVQQuExxBT2dLVmVNZzZOSW1DRVgzVU8xM1BpaytJdnM9ggEFMA0G +CSqGSIb3DQEBCwUAA4IBAQCYfqgS0+IPUUOgnYp59XXJxDq8sFE+eq0CTueJYgNQ +NglLhxz5jg+BsaFgK+yrcZNewNFTmXoXzJVAa2SjMscekk3qatJetFOcuidyo35b +Gp5tCQ+hZgVbzj29k7SAWzxZuSjcq3thjdvuC3pqqtd5W4MKXs4Tq8636NaR4rdi ++7/PCOznwmvBPLil0HjStWLuICNSauNarlvnloz6/hrik8XLKy5aXoFzKqW47T/C +lSymaosY/U/1U/UbwsACVtZ5l29SNeVfLT3AkLokskuP1ceIWzi/2biTbErUIQaM +SnqVheFcP0A/FDF6ql+okHDFuN0TsehGX9p17zuxGcN5</dsig:X509Certificate></dsig:X509Data><dsig:X509Data><dsig:X509IssuerSerial><dsig:X509IssuerName>dnQualifier=AOgKVeMg6NImCEX3UO13Pik\+Ivs=,CN=.dcpomatic.smpte-430-2.ROOT,OU=dcpomatic.com,O=dcpomatic.com</dsig:X509IssuerName><dsig:X509SerialNumber>5</dsig:X509SerialNumber></dsig:X509IssuerSerial><dsig:X509Certificate>MIIEZDCCA0ygAwIBAgIBBTANBgkqhkiG9w0BAQsFADB9MRYwFAYDVQQKDA1kY3Bv +bWF0aWMuY29tMRYwFAYDVQQLDA1kY3BvbWF0aWMuY29tMSQwIgYDVQQDDBsuZGNw +b21hdGljLnNtcHRlLTQzMC0yLlJPT1QxJTAjBgNVBC4THEFPZ0tWZU1nNk5JbUNF +WDNVTzEzUGlrK0l2cz0wHhcNMTYwNTE2MTIyNjA4WhcNMjYwNTE0MTIyNjA4WjB9 +MRYwFAYDVQQKDA1kY3BvbWF0aWMuY29tMRYwFAYDVQQLDA1kY3BvbWF0aWMuY29t +MSQwIgYDVQQDDBsuZGNwb21hdGljLnNtcHRlLTQzMC0yLlJPT1QxJTAjBgNVBC4T +HEFPZ0tWZU1nNk5JbUNFWDNVTzEzUGlrK0l2cz0wggEiMA0GCSqGSIb3DQEBAQUA +A4IBDwAwggEKAoIBAQDjajsB3pAAVr+/ZpUBHDIUTumgjvnCZRBxoYoRUjaH0wWG +UnbRU4DVh/0JcpZo3fcgpOhv34WPq+UHpXj/So2eMwiZIlx4EC/F8VqQkiXohJEE +JNKcDbLKLoQEs2sNayZ1SF0IY7D57CGifHMIUpZRwyv1LYweVbP7nIsvBxhoABg3 +8li3azYXiFgEGbjkmHOVyy3kR+SLn+PQ99qGhc6Qh7fR2aduDqHl971LKwpfoKqy +WoE62x8XrK1udWqmZNhvxvfh0YIXNyEJ0nVae77y/iiBLiVMQq81QQioGZblBD2n +um8gCuwsCay1Md9++D7Hzzc695LH8Ntx2elhtl/DAgMBAAGjge4wgeswEgYDVR0T +AQH/BAgwBgEB/wIBAzALBgNVHQ8EBAMCAQYwHQYDVR0OBBYEFADoClXjIOjSJghF +91Dtdz4pPiL7MIGoBgNVHSMEgaAwgZ2AFADoClXjIOjSJghF91Dtdz4pPiL7oYGB +pH8wfTEWMBQGA1UECgwNZGNwb21hdGljLmNvbTEWMBQGA1UECwwNZGNwb21hdGlj +LmNvbTEkMCIGA1UEAwwbLmRjcG9tYXRpYy5zbXB0ZS00MzAtMi5ST09UMSUwIwYD +VQQuExxBT2dLVmVNZzZOSW1DRVgzVU8xM1BpaytJdnM9ggEFMA0GCSqGSIb3DQEB +CwUAA4IBAQCT59b0YpNVyW2L19k69rqkzvSAB08mNhDkzWF66zAqtI9GT5ZEPSTn +U/84icV7EAFGyuSXjUnQNHyV5fIJu68vrg+dAHhRYKUi2xPgxHPKpxuPmmzKeqCw +UgCoV802RQNVFMwUo0khOi7LLsvOb3FDkA0yLflngOCBmLdKMBZJPrcAVO++qWJB +gpkZkt5Q7snLsw4oLvLklL4wdX8qkn2PUiZohY5r68kIalEg89MZXtFiWWTh3K9R +vr++lap40maqjMFG0xFO/K7Ujyc19m03fVRhCEZJIyyE7jJFis669Jh/IlF6UyrD +rm43765q3A5P1Y6iCVbprbuPbZ6VE/CJ</dsig:X509Certificate></dsig:X509Data></dsig:KeyInfo></dsig:Signature></CompositionPlaylist> diff --git a/test/ref/DCP/dcp_test3/j2c_c6035f97-b07d-4e1c-944d-603fc2ddc242.mxf b/test/ref/DCP/dcp_test3/j2c_c6035f97-b07d-4e1c-944d-603fc2ddc242.mxf Binary files differnew file mode 100644 index 00000000..f1907030 --- /dev/null +++ b/test/ref/DCP/dcp_test3/j2c_c6035f97-b07d-4e1c-944d-603fc2ddc242.mxf diff --git a/test/ref/DCP/dcp_test3/pcm_69cf9eaf-9a99-4776-b022-6902208626c3.mxf b/test/ref/DCP/dcp_test3/pcm_69cf9eaf-9a99-4776-b022-6902208626c3.mxf Binary files differnew file mode 100644 index 00000000..fccb2ef0 --- /dev/null +++ b/test/ref/DCP/dcp_test3/pcm_69cf9eaf-9a99-4776-b022-6902208626c3.mxf diff --git a/test/ref/DCP/dcp_test3/pkl_d87a950c-bd6f-41f6-90cc-56ccd673e131.xml b/test/ref/DCP/dcp_test3/pkl_d87a950c-bd6f-41f6-90cc-56ccd673e131.xml new file mode 100644 index 00000000..a795c95c --- /dev/null +++ b/test/ref/DCP/dcp_test3/pkl_d87a950c-bd6f-41f6-90cc-56ccd673e131.xml @@ -0,0 +1,76 @@ +<?xml version="1.0" encoding="UTF-8"?> +<PackingList xmlns="http://www.digicine.com/PROTO-ASDCP-PKL-20040311#" xmlns:dsig="http://www.w3.org/2000/09/xmldsig#"><Id>urn:uuid:d87a950c-bd6f-41f6-90cc-56ccd673e131</Id><AnnotationText>Test_FTR-1_F-119_10_2K_20160524_IOP_OV</AnnotationText><IssueDate>2016-05-24T10:56:58+01:00</IssueDate><Issuer>DCP-o-matic 2.8.4devel 4ba821a8b0</Issuer><Creator>DCP-o-matic 2.8.4devel 4ba821a8b0</Creator><AssetList><Asset><Id>urn:uuid:cbfd2bc0-21cf-4a8f-95d8-9cddcbe51296</Id><AnnotationText>cbfd2bc0-21cf-4a8f-95d8-9cddcbe51296</AnnotationText><Hash>1MZ0cQr217LcIgobkC1/emgJrTU=</Hash><Size>8542</Size><Type>text/xml;asdcpKind=CPL</Type></Asset><Asset><Id>urn:uuid:c6035f97-b07d-4e1c-944d-603fc2ddc242</Id><AnnotationText>c6035f97-b07d-4e1c-944d-603fc2ddc242</AnnotationText><Hash>42m6Sxyk+CT/aq0dEnjGXX//AjA=</Hash><Size>561776</Size><Type>application/x-smpte-mxf;asdcpKind=Picture</Type></Asset><Asset><Id>urn:uuid:69cf9eaf-9a99-4776-b022-6902208626c3</Id><AnnotationText>69cf9eaf-9a99-4776-b022-6902208626c3</AnnotationText><Hash>a+7/nC9SIvCIziRyH9BXOr4r0fk=</Hash><Size>881174</Size><Type>application/x-smpte-mxf;asdcpKind=Sound</Type></Asset></AssetList><Signer><dsig:X509Data><dsig:X509IssuerSerial><dsig:X509IssuerName>dnQualifier=FZN\+C9r\+P8srz0\+uH45JHcDHb0g=,CN=.dcpomatic.smpte-430-2.INTERMEDIATE,OU=dcpomatic.com,O=dcpomatic.com</dsig:X509IssuerName><dsig:X509SerialNumber>7</dsig:X509SerialNumber></dsig:X509IssuerSerial><dsig:X509SubjectName>dnQualifier=S9Mf7OiiXsCV2LGoSr1LKsRcat0=,CN=CS.dcpomatic.smpte-430-2.LEAF,OU=dcpomatic.com,O=dcpomatic.com</dsig:X509SubjectName></dsig:X509Data></Signer><dsig:Signature><dsig:SignedInfo><dsig:CanonicalizationMethod Algorithm="http://www.w3.org/TR/2001/REC-xml-c14n-20010315"/><dsig:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1"/><dsig:Reference URI=""><dsig:Transforms><dsig:Transform Algorithm="http://www.w3.org/2000/09/xmldsig#enveloped-signature"/></dsig:Transforms><dsig:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1"/><dsig:DigestValue>avzD/rIrawR3OhFlc4RNgYKC3UY=</dsig:DigestValue></dsig:Reference></dsig:SignedInfo><dsig:SignatureValue>rEKXBDgklh0uiEeOeMipEixNdjBlSX3/9Urq822IXQDwm9Ty9fevo5LlfBqHsghD +0dh6N5il0CTn5LvokmuKcRjOdn5gEntpxfJvXLVZqMTVBxSgbuQMkVxKQYucx70k ++wP62PpMvOdPI7Aro+CeyTf0mwS5u/w2YMvGahR/gvlwgw32Lf3Ebe0KWHbG0lbd +zdfm3R7x2zb6XY4OB6TtH80JaIozyCe+Hs1ie7JmeXRBdxXZpGpNfhZ5+1Xw/Abm +x+FAb07KijyxMhtLRqFN/qBeEu68XChbjDK6zxKCUiuNS5I6Kh6DodMuOE9JpMSl +UZpVSCjsIVFd1kL8eFdvSA==</dsig:SignatureValue><dsig:KeyInfo><dsig:X509Data><dsig:X509IssuerSerial><dsig:X509IssuerName>dnQualifier=FZN\+C9r\+P8srz0\+uH45JHcDHb0g=,CN=.dcpomatic.smpte-430-2.INTERMEDIATE,OU=dcpomatic.com,O=dcpomatic.com</dsig:X509IssuerName><dsig:X509SerialNumber>7</dsig:X509SerialNumber></dsig:X509IssuerSerial><dsig:X509Certificate>MIIEaTCCA1GgAwIBAgIBBzANBgkqhkiG9w0BAQsFADCBhTEWMBQGA1UECgwNZGNw +b21hdGljLmNvbTEWMBQGA1UECwwNZGNwb21hdGljLmNvbTEsMCoGA1UEAwwjLmRj +cG9tYXRpYy5zbXB0ZS00MzAtMi5JTlRFUk1FRElBVEUxJTAjBgNVBC4THEZaTitD +OXIrUDhzcnowK3VINDVKSGNESGIwZz0wHhcNMTYwNTE2MTIyNjA4WhcNMjYwNTEy +MTIyNjA4WjB/MRYwFAYDVQQKDA1kY3BvbWF0aWMuY29tMRYwFAYDVQQLDA1kY3Bv +bWF0aWMuY29tMSYwJAYDVQQDDB1DUy5kY3BvbWF0aWMuc21wdGUtNDMwLTIuTEVB +RjElMCMGA1UELhMcUzlNZjdPaWlYc0NWMkxHb1NyMUxLc1JjYXQwPTCCASIwDQYJ +KoZIhvcNAQEBBQADggEPADCCAQoCggEBAKxEJwAKDOwDLron0tTs+uMYdFBXCUsq +Y+wxFhQCkuAgnD8evF91kUIBd79W0fd3XByGj6tyi5S0JOIYtDmq8bA3RnpQ/R9S +KQKESnHtt9Zptxk5KbIUUShiEBTTLfeLtubn8IFqgsarPEJPdXyjvzzyNEqbWpW0 +SVYC09/GzhOFjRzikAdG+MrWa93xGyf7/Bonmt4Z/pE2C+Enq7Oj0ascBYtWDB9T +U5IihXvo9VcAfiXWQlDoWrCP+YxjwRgMByh21RGJxdtqwV6KaBhmCEy976IVr8VW +DLmq8c5Nnz6vwypGCbdtLFr9Gxd93JbA+KPvXp7zx6d5+WfOJx8sE4sCAwEAAaOB +6DCB5TAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIFoDAdBgNVHQ4EFgQUS9Mf7Oii +XsCV2LGoSr1LKsRcat0wgagGA1UdIwSBoDCBnYAUFZN+C9r+P8srz0+uH45JHcDH +b0ihgYGkfzB9MRYwFAYDVQQKDA1kY3BvbWF0aWMuY29tMRYwFAYDVQQLDA1kY3Bv +bWF0aWMuY29tMSQwIgYDVQQDDBsuZGNwb21hdGljLnNtcHRlLTQzMC0yLlJPT1Qx +JTAjBgNVBC4THEFPZ0tWZU1nNk5JbUNFWDNVTzEzUGlrK0l2cz2CAQYwDQYJKoZI +hvcNAQELBQADggEBAK2GcL7gKu6C/deJtQqZgeM/hHXEpo+jRwBuOe6D5Z7CN2O3 +DuhO54otN+mL6ImyrUvDZCoJa70gdnjLzrx8soBHXQ8IgMUh5+HItUYbX/U+vnTK +f8Ox1XybZenYNi8quwuodGBBZOWbXjLiMdVKkrCSjOiQRG6dCyFLIUZH/lsCETRI +7E+bdQmIh3+tiUtQar2D4kO2G1GrMKzpGWL1Vap6vEK2Lrvj8xQNmDT6VOUGE3Yz +qx0kHkPEYazi8aX/h7VG/ikTtR9Y57UNJTs7pG7EUIQZPRjaSptTQsB1qAP6ZsH8 ++Ko1kgIe6OKqckVkZyZDqM1LlgbC+3cRk5bf6/E=</dsig:X509Certificate></dsig:X509Data><dsig:X509Data><dsig:X509IssuerSerial><dsig:X509IssuerName>dnQualifier=AOgKVeMg6NImCEX3UO13Pik\+Ivs=,CN=.dcpomatic.smpte-430-2.ROOT,OU=dcpomatic.com,O=dcpomatic.com</dsig:X509IssuerName><dsig:X509SerialNumber>6</dsig:X509SerialNumber></dsig:X509IssuerSerial><dsig:X509Certificate>MIIEbTCCA1WgAwIBAgIBBjANBgkqhkiG9w0BAQsFADB9MRYwFAYDVQQKDA1kY3Bv +bWF0aWMuY29tMRYwFAYDVQQLDA1kY3BvbWF0aWMuY29tMSQwIgYDVQQDDBsuZGNw +b21hdGljLnNtcHRlLTQzMC0yLlJPT1QxJTAjBgNVBC4THEFPZ0tWZU1nNk5JbUNF +WDNVTzEzUGlrK0l2cz0wHhcNMTYwNTE2MTIyNjA4WhcNMjYwNTEzMTIyNjA4WjCB +hTEWMBQGA1UECgwNZGNwb21hdGljLmNvbTEWMBQGA1UECwwNZGNwb21hdGljLmNv +bTEsMCoGA1UEAwwjLmRjcG9tYXRpYy5zbXB0ZS00MzAtMi5JTlRFUk1FRElBVEUx +JTAjBgNVBC4THEZaTitDOXIrUDhzcnowK3VINDVKSGNESGIwZz0wggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQC0io5HerL+iBGM+CWbpq5ZaTu35dA5Gp79 +iGl8J0S2tgzkkX5lXyJTtI5GZYMtaJWHwQYtbpmYsOxvhc4Xv/Jhfr0fPwQTFZTW +2jJQaLg2wno4SbP2mNU5QBCqPPkPvoNAmu0fqWmkBX8HAEIrYHxDDR4e/ZgEEnJp +D1RpwiMxVX9dCvtcmr8vqz8PSQ5xBJA+tw8WJgV+T/woDEvYZ9t65O4Opg70TGWS +hNRCJc7NUXP354zutfLjibLNyScQCf37ssh/2P8rp1+JdIxYqEhOIKNox9eHeBOT +P54W685/KJ8GGsHc+sKydMzJIu4HkVqHhY5WSLc2wj/07Hq59tffAgMBAAGjge4w +geswEgYDVR0TAQH/BAgwBgEB/wIBAjALBgNVHQ8EBAMCAQYwHQYDVR0OBBYEFBWT +fgva/j/LK89Prh+OSR3Ax29IMIGoBgNVHSMEgaAwgZ2AFADoClXjIOjSJghF91Dt +dz4pPiL7oYGBpH8wfTEWMBQGA1UECgwNZGNwb21hdGljLmNvbTEWMBQGA1UECwwN +ZGNwb21hdGljLmNvbTEkMCIGA1UEAwwbLmRjcG9tYXRpYy5zbXB0ZS00MzAtMi5S +T09UMSUwIwYDVQQuExxBT2dLVmVNZzZOSW1DRVgzVU8xM1BpaytJdnM9ggEFMA0G +CSqGSIb3DQEBCwUAA4IBAQCYfqgS0+IPUUOgnYp59XXJxDq8sFE+eq0CTueJYgNQ +NglLhxz5jg+BsaFgK+yrcZNewNFTmXoXzJVAa2SjMscekk3qatJetFOcuidyo35b +Gp5tCQ+hZgVbzj29k7SAWzxZuSjcq3thjdvuC3pqqtd5W4MKXs4Tq8636NaR4rdi ++7/PCOznwmvBPLil0HjStWLuICNSauNarlvnloz6/hrik8XLKy5aXoFzKqW47T/C +lSymaosY/U/1U/UbwsACVtZ5l29SNeVfLT3AkLokskuP1ceIWzi/2biTbErUIQaM +SnqVheFcP0A/FDF6ql+okHDFuN0TsehGX9p17zuxGcN5</dsig:X509Certificate></dsig:X509Data><dsig:X509Data><dsig:X509IssuerSerial><dsig:X509IssuerName>dnQualifier=AOgKVeMg6NImCEX3UO13Pik\+Ivs=,CN=.dcpomatic.smpte-430-2.ROOT,OU=dcpomatic.com,O=dcpomatic.com</dsig:X509IssuerName><dsig:X509SerialNumber>5</dsig:X509SerialNumber></dsig:X509IssuerSerial><dsig:X509Certificate>MIIEZDCCA0ygAwIBAgIBBTANBgkqhkiG9w0BAQsFADB9MRYwFAYDVQQKDA1kY3Bv +bWF0aWMuY29tMRYwFAYDVQQLDA1kY3BvbWF0aWMuY29tMSQwIgYDVQQDDBsuZGNw +b21hdGljLnNtcHRlLTQzMC0yLlJPT1QxJTAjBgNVBC4THEFPZ0tWZU1nNk5JbUNF +WDNVTzEzUGlrK0l2cz0wHhcNMTYwNTE2MTIyNjA4WhcNMjYwNTE0MTIyNjA4WjB9 +MRYwFAYDVQQKDA1kY3BvbWF0aWMuY29tMRYwFAYDVQQLDA1kY3BvbWF0aWMuY29t +MSQwIgYDVQQDDBsuZGNwb21hdGljLnNtcHRlLTQzMC0yLlJPT1QxJTAjBgNVBC4T +HEFPZ0tWZU1nNk5JbUNFWDNVTzEzUGlrK0l2cz0wggEiMA0GCSqGSIb3DQEBAQUA +A4IBDwAwggEKAoIBAQDjajsB3pAAVr+/ZpUBHDIUTumgjvnCZRBxoYoRUjaH0wWG +UnbRU4DVh/0JcpZo3fcgpOhv34WPq+UHpXj/So2eMwiZIlx4EC/F8VqQkiXohJEE +JNKcDbLKLoQEs2sNayZ1SF0IY7D57CGifHMIUpZRwyv1LYweVbP7nIsvBxhoABg3 +8li3azYXiFgEGbjkmHOVyy3kR+SLn+PQ99qGhc6Qh7fR2aduDqHl971LKwpfoKqy +WoE62x8XrK1udWqmZNhvxvfh0YIXNyEJ0nVae77y/iiBLiVMQq81QQioGZblBD2n +um8gCuwsCay1Md9++D7Hzzc695LH8Ntx2elhtl/DAgMBAAGjge4wgeswEgYDVR0T +AQH/BAgwBgEB/wIBAzALBgNVHQ8EBAMCAQYwHQYDVR0OBBYEFADoClXjIOjSJghF +91Dtdz4pPiL7MIGoBgNVHSMEgaAwgZ2AFADoClXjIOjSJghF91Dtdz4pPiL7oYGB +pH8wfTEWMBQGA1UECgwNZGNwb21hdGljLmNvbTEWMBQGA1UECwwNZGNwb21hdGlj +LmNvbTEkMCIGA1UEAwwbLmRjcG9tYXRpYy5zbXB0ZS00MzAtMi5ST09UMSUwIwYD +VQQuExxBT2dLVmVNZzZOSW1DRVgzVU8xM1BpaytJdnM9ggEFMA0GCSqGSIb3DQEB +CwUAA4IBAQCT59b0YpNVyW2L19k69rqkzvSAB08mNhDkzWF66zAqtI9GT5ZEPSTn +U/84icV7EAFGyuSXjUnQNHyV5fIJu68vrg+dAHhRYKUi2xPgxHPKpxuPmmzKeqCw +UgCoV802RQNVFMwUo0khOi7LLsvOb3FDkA0yLflngOCBmLdKMBZJPrcAVO++qWJB +gpkZkt5Q7snLsw4oLvLklL4wdX8qkn2PUiZohY5r68kIalEg89MZXtFiWWTh3K9R +vr++lap40maqjMFG0xFO/K7Ujyc19m03fVRhCEZJIyyE7jJFis669Jh/IlF6UyrD +rm43765q3A5P1Y6iCVbprbuPbZ6VE/CJ</dsig:X509Certificate></dsig:X509Data></dsig:KeyInfo></dsig:Signature></PackingList> |
