summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/asset.cc2
-rw-r--r--src/interop_subtitle_asset.cc2
-rw-r--r--src/pkl.cc7
-rw-r--r--src/pkl.h11
4 files changed, 16 insertions, 6 deletions
diff --git a/src/asset.cc b/src/asset.cc
index 372779b1..c164a26b 100644
--- a/src/asset.cc
+++ b/src/asset.cc
@@ -98,7 +98,7 @@ Asset::add_to_pkl (shared_ptr<PKL> pkl, path root) const
return;
}
- pkl->add_asset (_id, _id, hash(), file_size(_file.get()), pkl_type(pkl->standard()));
+ pkl->add_asset(_id, _id, hash(), file_size(_file.get()), pkl_type(pkl->standard()), _file->filename().string());
}
diff --git a/src/interop_subtitle_asset.cc b/src/interop_subtitle_asset.cc
index ce3a4943..d58e16a3 100644
--- a/src/interop_subtitle_asset.cc
+++ b/src/interop_subtitle_asset.cc
@@ -290,7 +290,7 @@ InteropSubtitleAsset::add_to_pkl (shared_ptr<PKL> pkl, boost::filesystem::path r
auto im = dynamic_pointer_cast<dcp::SubtitleImage> (i);
if (im) {
auto png_image = im->png_image ();
- pkl->add_asset (im->id(), optional<string>(), make_digest(png_image), png_image.size(), "image/png");
+ pkl->add_asset(im->id(), optional<string>(), make_digest(png_image), png_image.size(), "image/png", root.filename().string());
}
}
}
diff --git a/src/pkl.cc b/src/pkl.cc
index 5465d578..9ba716fb 100644
--- a/src/pkl.cc
+++ b/src/pkl.cc
@@ -87,9 +87,9 @@ PKL::PKL (boost::filesystem::path file)
void
-PKL::add_asset (std::string id, boost::optional<std::string> annotation_text, std::string hash, int64_t size, std::string type)
+PKL::add_asset(std::string id, boost::optional<std::string> annotation_text, std::string hash, int64_t size, std::string type, std::string original_filename)
{
- _asset_list.push_back (make_shared<Asset>(id, annotation_text, hash, size, type));
+ _asset_list.push_back(make_shared<Asset>(id, annotation_text, hash, size, type, original_filename));
}
@@ -122,6 +122,9 @@ PKL::write_xml (boost::filesystem::path file, shared_ptr<const CertificateChain>
asset->add_child("Hash")->add_child_text (i->hash());
asset->add_child("Size")->add_child_text (raw_convert<string>(i->size()));
asset->add_child("Type")->add_child_text (i->type());
+ if (auto filename = i->original_filename()) {
+ asset->add_child("OriginalFileName")->add_child_text(*filename);
+ }
}
indent (pkl, 0);
diff --git a/src/pkl.h b/src/pkl.h
index 8b1b88a3..8a1d07f9 100644
--- a/src/pkl.h
+++ b/src/pkl.h
@@ -66,7 +66,7 @@ public:
boost::optional<std::string> type (std::string id) const;
void clear_assets();
- void add_asset (std::string id, boost::optional<std::string> annotation_text, std::string hash, int64_t size, std::string type);
+ void add_asset(std::string id, boost::optional<std::string> annotation_text, std::string hash, int64_t size, std::string type, std::string original_filename);
void write_xml (boost::filesystem::path file, std::shared_ptr<const CertificateChain> signer) const;
/** @return the most recent disk file used to read or write this PKL, if there is one */
@@ -83,14 +83,16 @@ public:
, _hash (node->string_child("Hash"))
, _size (node->number_child<int64_t>("Size"))
, _type (node->string_child("Type"))
+ , _original_filename(node->optional_string_child("OriginalFileName"))
{}
- Asset (std::string id, boost::optional<std::string> annotation_text, std::string hash, int64_t size, std::string type)
+ Asset(std::string id, boost::optional<std::string> annotation_text, std::string hash, int64_t size, std::string type, std::string original_filename)
: Object (id)
, _annotation_text (annotation_text)
, _hash (hash)
, _size (size)
, _type (type)
+ , _original_filename(original_filename)
{}
boost::optional<std::string> annotation_text () const {
@@ -109,11 +111,16 @@ public:
return _type;
}
+ boost::optional<std::string> original_filename() const {
+ return _original_filename;
+ }
+
private:
boost::optional<std::string> _annotation_text;
std::string _hash;
int64_t _size = 0;
std::string _type;
+ boost::optional<std::string> _original_filename;
};
std::vector<std::shared_ptr<Asset>> asset_list () const {