diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/asset.cc | 2 | ||||
| -rw-r--r-- | src/interop_subtitle_asset.cc | 2 | ||||
| -rw-r--r-- | src/pkl.cc | 7 | ||||
| -rw-r--r-- | src/pkl.h | 11 |
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()); } } } @@ -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); @@ -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 { |
