summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2013-08-25 17:18:11 +0100
committerCarl Hetherington <cth@carlh.net>2013-08-25 17:18:11 +0100
commita5901718e3a0ee692d745fd3a6d8f5a49d422a26 (patch)
treec211b207f911b12ed4313519956e2d616ef773f1 /src
parent5384418af0299194ecf3e27fd2e443e7d882a713 (diff)
Tweak interop / SMPTE to pass dcp_inspect.
Diffstat (limited to 'src')
-rw-r--r--src/cpl.cc3
-rw-r--r--src/dcp.cc17
-rw-r--r--src/picture_asset.cc8
-rw-r--r--src/picture_asset.h2
-rw-r--r--src/reel.cc4
-rw-r--r--src/reel.h2
6 files changed, 25 insertions, 11 deletions
diff --git a/src/cpl.cc b/src/cpl.cc
index 7c28fc25..8d8f6a00 100644
--- a/src/cpl.cc
+++ b/src/cpl.cc
@@ -218,6 +218,7 @@ CPL::write_xml (bool interop, XMLMetadata const & metadata, shared_ptr<Encryptio
root->add_child("Id")->add_child_text ("urn:uuid:" + _id);
root->add_child("AnnotationText")->add_child_text (_name);
root->add_child("IssueDate")->add_child_text (metadata.issue_date);
+ root->add_child("Issuer")->add_child_text (metadata.issuer);
root->add_child("Creator")->add_child_text (metadata.creator);
root->add_child("ContentTitleText")->add_child_text (_name);
root->add_child("ContentKind")->add_child_text (content_kind_to_string (_content_kind));
@@ -231,7 +232,7 @@ CPL::write_xml (bool interop, XMLMetadata const & metadata, shared_ptr<Encryptio
xmlpp::Node* reel_list = root->add_child ("ReelList");
for (list<shared_ptr<Reel> >::const_iterator i = _reels.begin(); i != _reels.end(); ++i) {
- (*i)->write_to_cpl (reel_list);
+ (*i)->write_to_cpl (reel_list, interop);
}
if (crypt) {
diff --git a/src/dcp.cc b/src/dcp.cc
index 30a3c3a4..a69a5198 100644
--- a/src/dcp.cc
+++ b/src/dcp.cc
@@ -154,10 +154,19 @@ DCP::write_assetmap (string pkl_uuid, int pkl_length, bool interop, XMLMetadata
}
root->add_child("Id")->add_child_text ("urn:uuid:" + make_uuid());
- root->add_child("Creator")->add_child_text (metadata.creator);
- root->add_child("VolumeCount")->add_child_text ("1");
- root->add_child("IssueDate")->add_child_text (metadata.issue_date);
- root->add_child("Issuer")->add_child_text (metadata.issuer);
+ root->add_child("AnnotationText")->add_child_text ("Created by " + metadata.creator);
+ if (interop) {
+ root->add_child("VolumeCount")->add_child_text ("1");
+ root->add_child("IssueDate")->add_child_text (metadata.issue_date);
+ root->add_child("Issuer")->add_child_text (metadata.issuer);
+ root->add_child("Creator")->add_child_text (metadata.creator);
+ } else {
+ root->add_child("Creator")->add_child_text (metadata.creator);
+ root->add_child("VolumeCount")->add_child_text ("1");
+ root->add_child("IssueDate")->add_child_text (metadata.issue_date);
+ root->add_child("Issuer")->add_child_text (metadata.issuer);
+ }
+
xmlpp::Node* asset_list = root->add_child ("AssetList");
xmlpp::Node* asset = asset_list->add_child ("Asset");
diff --git a/src/picture_asset.cc b/src/picture_asset.cc
index c3a67430..e1c1f86c 100644
--- a/src/picture_asset.cc
+++ b/src/picture_asset.cc
@@ -92,7 +92,7 @@ StereoPictureAsset::edit_rate_factor () const
}
void
-PictureAsset::write_to_cpl (xmlpp::Node* node) const
+PictureAsset::write_to_cpl (xmlpp::Node* node, bool interop) const
{
MXFAsset::write_to_cpl (node);
@@ -105,7 +105,11 @@ PictureAsset::write_to_cpl (xmlpp::Node* node) const
assert (i != c.end ());
(*i)->add_child ("FrameRate")->add_child_text (lexical_cast<string> (_edit_rate * edit_rate_factor ()) + " 1");
- (*i)->add_child ("ScreenAspectRatio")->add_child_text (lexical_cast<string> (_size.width) + " " + lexical_cast<string> (_size.height));
+ if (interop) {
+ (*i)->add_child ("ScreenAspectRatio")->add_child_text (lexical_cast<string> (float (_size.width) / _size.height));
+ } else {
+ (*i)->add_child ("ScreenAspectRatio")->add_child_text (lexical_cast<string> (_size.width) + " " + lexical_cast<string> (_size.height));
+ }
}
bool
diff --git a/src/picture_asset.h b/src/picture_asset.h
index e99b1f0c..d9f2fe69 100644
--- a/src/picture_asset.h
+++ b/src/picture_asset.h
@@ -81,7 +81,7 @@ public:
return _size;
}
- void write_to_cpl (xmlpp::Node *) const;
+ void write_to_cpl (xmlpp::Node *, bool) const;
protected:
diff --git a/src/reel.cc b/src/reel.cc
index c8ea54eb..d039f95b 100644
--- a/src/reel.cc
+++ b/src/reel.cc
@@ -32,14 +32,14 @@ using boost::shared_ptr;
using namespace libdcp;
void
-Reel::write_to_cpl (xmlpp::Node* node) const
+Reel::write_to_cpl (xmlpp::Node* node, bool interop) const
{
xmlpp::Node* reel = node->add_child ("Reel");
reel->add_child("Id")->add_child_text ("urn:uuid:" + make_uuid());
xmlpp::Node* asset_list = reel->add_child ("AssetList");
if (_main_picture) {
- _main_picture->write_to_cpl (asset_list);
+ _main_picture->write_to_cpl (asset_list, interop);
}
if (_main_sound) {
diff --git a/src/reel.h b/src/reel.h
index b4a69f78..916c0193 100644
--- a/src/reel.h
+++ b/src/reel.h
@@ -63,7 +63,7 @@ public:
return _main_subtitle;
}
- void write_to_cpl (xmlpp::Node *) const;
+ void write_to_cpl (xmlpp::Node *, bool) const;
bool encrypted () const;