diff options
| author | Carl Hetherington <cth@carlh.net> | 2013-07-06 20:30:19 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2013-07-06 20:30:19 +0100 |
| commit | dcccb2dd1d180b8be67e539395dccbe82b0fb5a8 (patch) | |
| tree | 53b76a2df1343e5896bc9462ec8661179ede2ee3 /src/picture_asset.cc | |
| parent | 5f71c3f0a7a041b3621f7325915d1105424f7e53 (diff) | |
Move some CPL writing from picture/sound assets to the MXF. Pick up key_id from CPL assets and hence provide and test for encrypted() method on DCP.
Diffstat (limited to 'src/picture_asset.cc')
| -rw-r--r-- | src/picture_asset.cc | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/src/picture_asset.cc b/src/picture_asset.cc index c6a95c74..c9e1da45 100644 --- a/src/picture_asset.cc +++ b/src/picture_asset.cc @@ -65,21 +65,27 @@ PictureAsset::PictureAsset (string directory, string mxf_name) } +string +PictureAsset::cpl_node_name () const +{ + return "MainPicture"; +} + void PictureAsset::write_to_cpl (xmlpp::Node* node) const { - xmlpp::Node* mp = node->add_child ("MainPicture"); - mp->add_child ("Id")->add_child_text ("urn:uuid:" + _uuid); - mp->add_child ("AnnotationText")->add_child_text (_file_name); - mp->add_child ("EditRate")->add_child_text (lexical_cast<string> (_edit_rate) + " 1"); - mp->add_child ("IntrinsicDuration")->add_child_text (lexical_cast<string> (_intrinsic_duration)); - mp->add_child ("EntryPoint")->add_child_text (lexical_cast<string> (_entry_point)); - mp->add_child ("Duration")->add_child_text (lexical_cast<string> (_duration)); - if (_encrypted) { - mp->add_child("KeyId")->add_child_text("urn:uuid:" + _key_id); - } - mp->add_child ("FrameRate")->add_child_text (lexical_cast<string> (_edit_rate) + " 1"); - mp->add_child ("ScreenAspectRatio")->add_child_text (lexical_cast<string> (_size.width) + " " + lexical_cast<string> (_size.height)); + MXFAsset::write_to_cpl (node); + + xmlpp::Node::NodeList c = node->get_children (); + xmlpp::Node::NodeList::iterator i = c.begin(); + while (i != c.end() && (*i)->get_name() != cpl_node_name ()) { + ++i; + } + + assert (i != c.end ()); + + (*i)->add_child ("FrameRate")->add_child_text (lexical_cast<string> (_edit_rate) + " 1"); + (*i)->add_child ("ScreenAspectRatio")->add_child_text (lexical_cast<string> (_size.width) + " " + lexical_cast<string> (_size.height)); } bool |
