X-Git-Url: https://git.carlh.net/gitweb/?a=blobdiff_plain;f=src%2Fcpl.cc;h=0677ec36c0c7ded0bc4caf8c4da9280fb4aa376e;hb=03fb9d475366b6e02b6bde4421607f7dcd9936ad;hp=78f498853c18469b2a157774ce5d70c78acf4f67;hpb=57b862d997857868d0c3c91a9776f854b62c6b56;p=libdcp.git diff --git a/src/cpl.cc b/src/cpl.cc index 78f49885..0677ec36 100644 --- a/src/cpl.cc +++ b/src/cpl.cc @@ -51,11 +51,11 @@ CPL::CPL (string annotation_text, ContentKind content_kind) , _content_kind (content_kind) , _content_version_id ("urn:uuid:" + make_uuid ()) { - /* default _content_version_id to and _content_version_label to + /* default _content_version_id to a random ID and _content_version_label to a random ID and the current time. */ - _content_version_id = "urn:uuid:" + make_uuid() + LocalTime().as_string (); - _content_version_label_text = _content_version_id; + _content_version_id = "urn:uuid:" + make_uuid(); + _content_version_label_text = _content_version_id + LocalTime().as_string (); } /** Construct a CPL object from a XML file */ @@ -66,10 +66,7 @@ CPL::CPL (boost::filesystem::path file) cxml::Document f ("CompositionPlaylist"); f.read_file (file); - _id = f.string_child ("Id"); - if (_id.length() > 9) { - _id = _id.substr (9); - } + _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 (""); _metadata.creator = f.optional_string_child ("Creator").get_value_or (""); @@ -236,10 +233,10 @@ CPL::add (DecryptedKDM const & kdm) } void -CPL::resolve_refs (list > objects) +CPL::resolve_refs (list > assets) { BOOST_FOREACH (shared_ptr i, _reels) { - i->resolve_refs (objects); + i->resolve_refs (assets); } } @@ -255,3 +252,13 @@ CPL::pkl_type (Standard standard) const DCP_ASSERT (false); } } + +int64_t +CPL::duration () const +{ + int64_t d = 0; + BOOST_FOREACH (shared_ptr i, _reels) { + d += i->duration (); + } + return d; +}