summaryrefslogtreecommitdiff
path: root/src/lib/dcp_digest_file.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2022-01-03 00:11:16 +0000
committerCarl Hetherington <cth@carlh.net>2022-04-20 21:23:54 +0200
commit58e94d1c412cd87a28fca99b46c7d5cf408f8186 (patch)
tree02e8d01cb6dd35a6b04490015bcc49e8c1984e15 /src/lib/dcp_digest_file.cc
parent2034cf8a82be21d4d07de81ae40c8255da1ed21e (diff)
Fix creation of dcpdig files in projects that make VFs (#2109).
Previously we would always get keys from the project which was wrong with assets that already have their own key.
Diffstat (limited to 'src/lib/dcp_digest_file.cc')
-rw-r--r--src/lib/dcp_digest_file.cc12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/lib/dcp_digest_file.cc b/src/lib/dcp_digest_file.cc
index b178e3da7..0ea5ae821 100644
--- a/src/lib/dcp_digest_file.cc
+++ b/src/lib/dcp_digest_file.cc
@@ -39,7 +39,7 @@ using std::string;
template <class R, class A>
-void add_asset(string key, shared_ptr<R> reel_asset, shared_ptr<A> asset, xmlpp::Element* reel, string name)
+void add_asset(string film_key, shared_ptr<R> reel_asset, shared_ptr<A> asset, xmlpp::Element* reel, string name)
{
if (asset) {
auto out = reel->add_child(name);
@@ -49,7 +49,7 @@ void add_asset(string key, shared_ptr<R> reel_asset, shared_ptr<A> asset, xmlpp:
}
if (asset->key_id()) {
out->add_child("KeyId")->add_child_text("urn:uuid:" + asset->key_id().get());
- out->add_child("Key")->add_child_text(key);
+ out->add_child("Key")->add_child_text(asset->key() ? asset->key()->hex() : film_key);
}
}
};
@@ -59,7 +59,7 @@ void
write_dcp_digest_file (
boost::filesystem::path path,
shared_ptr<dcp::CPL> cpl,
- string key
+ string film_key
)
{
xmlpp::Document doc;
@@ -75,13 +75,13 @@ write_dcp_digest_file (
out_reel->add_child("Id")->add_child_text("urn:uuid:" + in_reel->id());
out_reel->add_child("AnnotationText");
if (in_reel->main_picture()) {
- add_asset(key, in_reel->main_picture(), in_reel->main_picture()->asset(), out_reel, "MainPicture");
+ add_asset(film_key, in_reel->main_picture(), in_reel->main_picture()->asset(), out_reel, "MainPicture");
}
if (in_reel->main_sound()) {
- add_asset(key, in_reel->main_sound(), in_reel->main_sound()->asset(), out_reel, "MainSound");
+ add_asset(film_key, in_reel->main_sound(), in_reel->main_sound()->asset(), out_reel, "MainSound");
}
if (auto smpte_sub = dynamic_pointer_cast<dcp::ReelSMPTESubtitleAsset>(in_reel->main_subtitle())) {
- add_asset(key, smpte_sub, smpte_sub->smpte_asset(), out_reel, "MainSubtitle");
+ add_asset(film_key, smpte_sub, smpte_sub->smpte_asset(), out_reel, "MainSubtitle");
}
}
doc.write_to_file_formatted(path.string());