diff options
Diffstat (limited to 'src/mxf_asset.cc')
| -rw-r--r-- | src/mxf_asset.cc | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/mxf_asset.cc b/src/mxf_asset.cc index d52ab2cc..3cb13250 100644 --- a/src/mxf_asset.cc +++ b/src/mxf_asset.cc @@ -24,6 +24,7 @@ #include <iostream> #include <fstream> #include <boost/filesystem.hpp> +#include <boost/lexical_cast.hpp> #include <libxml++/nodes/element.h> #include "AS_DCP.h" #include "KM_prng.h" @@ -36,6 +37,7 @@ using std::string; using std::list; using boost::shared_ptr; +using boost::lexical_cast; using boost::dynamic_pointer_cast; using namespace libdcp; @@ -133,3 +135,18 @@ MXFAsset::add_typed_key_id (xmlpp::Element* parent) const typed_key_id->add_child("KeyType")->add_child_text(key_type ()); typed_key_id->add_child("KeyId")->add_child_text("urn:uuid:" + _key_id); } + +void +MXFAsset::write_to_cpl (xmlpp::Node* node) const +{ + xmlpp::Node* a = node->add_child (cpl_node_name ()); + a->add_child ("Id")->add_child_text ("urn:uuid:" + _uuid); + a->add_child ("AnnotationText")->add_child_text (_file_name); + a->add_child ("EditRate")->add_child_text (lexical_cast<string> (_edit_rate) + " 1"); + a->add_child ("IntrinsicDuration")->add_child_text (lexical_cast<string> (_intrinsic_duration)); + a->add_child ("EntryPoint")->add_child_text (lexical_cast<string> (_entry_point)); + a->add_child ("Duration")->add_child_text (lexical_cast<string> (_duration)); + if (_encrypted) { + a->add_child("KeyId")->add_child_text ("urn:uuid:" + _key_id); + } +} |
