From 2f2643b6ddc36d6efcf4d41913ec4f711750e9c4 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Tue, 26 Jan 2021 21:52:21 +0100 Subject: [PATCH] Rename ReelMXF -> ReelFileAsset. --- src/cpl.cc | 52 ++++++++++--------------- src/cpl.h | 8 ++-- src/dcp.cc | 4 +- src/decrypted_kdm.cc | 8 ++-- src/decrypted_kdm.h | 4 +- src/reel_atmos_asset.cc | 4 +- src/reel_atmos_asset.h | 4 +- src/reel_closed_caption_asset.cc | 4 +- src/reel_closed_caption_asset.h | 4 +- src/{reel_mxf.cc => reel_file_asset.cc} | 12 +++--- src/{reel_mxf.h => reel_file_asset.h} | 18 ++++----- src/reel_picture_asset.cc | 4 +- src/reel_picture_asset.h | 4 +- src/reel_sound_asset.cc | 4 +- src/reel_sound_asset.h | 4 +- src/reel_subtitle_asset.cc | 4 +- src/reel_subtitle_asset.h | 4 +- src/verify.cc | 30 +++++++------- src/wscript | 2 +- 19 files changed, 83 insertions(+), 95 deletions(-) rename src/{reel_mxf.cc => reel_file_asset.cc} (87%) rename src/{reel_mxf.h => reel_file_asset.h} (87%) diff --git a/src/cpl.cc b/src/cpl.cc index 5f8d8955..c528af31 100644 --- a/src/cpl.cc +++ b/src/cpl.cc @@ -491,55 +491,43 @@ CPL::maybe_write_composition_metadata_asset (xmlpp::Element* node) const } -vector> -CPL::reel_mxfs () +template +void +add_file_assets (vector>& assets, vector> reels) { - vector> c; - - for (auto i: _reels) { + for (auto i: reels) { if (i->main_picture ()) { - c.push_back (i->main_picture()); + assets.push_back (i->main_picture()); } if (i->main_sound ()) { - c.push_back (i->main_sound()); + assets.push_back (i->main_sound()); } if (i->main_subtitle ()) { - c.push_back (i->main_subtitle()); + assets.push_back (i->main_subtitle()); } for (auto j: i->closed_captions()) { - c.push_back (j); + assets.push_back (j); } if (i->atmos ()) { - c.push_back (i->atmos()); + assets.push_back (i->atmos()); } } +} + +vector> +CPL::reel_file_assets () +{ + vector> c; + add_file_assets (c, _reels); return c; } -vector> -CPL::reel_mxfs () const +vector> +CPL::reel_file_assets () const { - vector> c; - - for (auto i: _reels) { - if (i->main_picture ()) { - c.push_back (i->main_picture()); - } - if (i->main_sound ()) { - c.push_back (i->main_sound()); - } - if (i->main_subtitle ()) { - c.push_back (i->main_subtitle()); - } - for (auto j: i->closed_captions()) { - c.push_back (j); - } - if (i->atmos ()) { - c.push_back (i->atmos()); - } - } - + vector> c; + add_file_assets (c, _reels); return c; } diff --git a/src/cpl.h b/src/cpl.h index 78d3d907..72818fb1 100644 --- a/src/cpl.h +++ b/src/cpl.h @@ -59,7 +59,7 @@ struct verify_invalid_language3; namespace dcp { -class ReelMXF; +class ReelFileAsset; class Reel; class MXFMetadata; class CertificateChain; @@ -99,9 +99,9 @@ public: return _reels; } - /** @return the ReelMXFs in this CPL in all reels */ - std::vector> reel_mxfs () const; - std::vector> reel_mxfs (); + /** @return the ReelFileAssets in this CPL in all reels */ + std::vector> reel_file_assets () const; + std::vector> reel_file_assets (); /** @return true if we have any encrypted content */ bool any_encrypted () const; diff --git a/src/dcp.cc b/src/dcp.cc index 9ccc6eef..df1d531b 100644 --- a/src/dcp.cc +++ b/src/dcp.cc @@ -261,7 +261,7 @@ DCP::read (vector* notes, bool ignore_incorrect_picture_m /* While we've got the ASSETMAP lets look and see if this DCP refers to things that are not in its ASSETMAP */ if (notes) { for (auto i: cpls()) { - for (auto j: i->reel_mxfs()) { + for (auto j: i->reel_file_assets()) { if (!j->asset_ref().resolved() && paths.find(j->asset_ref().id()) == paths.end()) { notes->push_back (VerificationNote(VerificationNote::Type::WARNING, VerificationNote::Code::EXTERNAL_ASSET, j->asset_ref().id())); } @@ -519,7 +519,7 @@ DCP::assets (bool ignore_unresolved) const vector> assets; for (auto i: cpls()) { assets.push_back (i); - for (auto j: i->reel_mxfs()) { + for (auto j: i->reel_file_assets()) { if (ignore_unresolved && !j->asset_ref().resolved()) { continue; } diff --git a/src/decrypted_kdm.cc b/src/decrypted_kdm.cc index 174efb1b..e734d407 100644 --- a/src/decrypted_kdm.cc +++ b/src/decrypted_kdm.cc @@ -40,7 +40,7 @@ #include "decrypted_kdm.h" #include "decrypted_kdm_key.h" #include "encrypted_kdm.h" -#include "reel_mxf.h" +#include "reel_file_asset.h" #include "reel_asset.h" #include "util.h" #include "exceptions.h" @@ -251,7 +251,7 @@ DecryptedKDM::DecryptedKDM ( DecryptedKDM::DecryptedKDM ( string cpl_id, - map, Key> keys, + map, Key> keys, LocalTime not_valid_before, LocalTime not_valid_after, string annotation_text, @@ -264,7 +264,7 @@ DecryptedKDM::DecryptedKDM ( , _content_title_text (content_title_text) , _issue_date (issue_date) { - for (map, Key>::const_iterator i = keys.begin(); i != keys.end(); ++i) { + for (map, Key>::const_iterator i = keys.begin(); i != keys.end(); ++i) { add_key (i->first->key_type(), i->first->key_id().get(), i->second, cpl_id, Standard::SMPTE); } } @@ -287,7 +287,7 @@ DecryptedKDM::DecryptedKDM ( { /* Create DecryptedKDMKey objects for each encryptable asset */ bool did_one = false; - for (auto i: cpl->reel_mxfs()) { + for (auto i: cpl->reel_file_assets()) { if (i->key_id()) { add_key (i->key_type(), i->key_id().get(), key, cpl->id(), Standard::SMPTE); did_one = true; diff --git a/src/decrypted_kdm.h b/src/decrypted_kdm.h index 7bc9a217..6bdd9fcd 100644 --- a/src/decrypted_kdm.h +++ b/src/decrypted_kdm.h @@ -60,7 +60,7 @@ class DecryptedKDMKey; class EncryptedKDM; class CertificateChain; class CPL; -class ReelMXF; +class ReelFileAsset; /** @class DecryptedKDM @@ -99,7 +99,7 @@ public: */ DecryptedKDM ( std::string cpl_id, - std::map, Key> keys, + std::map, Key> keys, LocalTime not_valid_before, LocalTime not_valid_after, std::string annotation_text, diff --git a/src/reel_atmos_asset.cc b/src/reel_atmos_asset.cc index d9e290a9..760e4211 100644 --- a/src/reel_atmos_asset.cc +++ b/src/reel_atmos_asset.cc @@ -52,7 +52,7 @@ using namespace dcp; ReelAtmosAsset::ReelAtmosAsset (std::shared_ptr asset, int64_t entry_point) : ReelAsset (asset->id(), asset->edit_rate(), asset->intrinsic_duration(), entry_point) - , ReelMXF (asset, asset->key_id()) + , ReelFileAsset (asset, asset->key_id()) { } @@ -60,7 +60,7 @@ ReelAtmosAsset::ReelAtmosAsset (std::shared_ptr asset, int64_t entry ReelAtmosAsset::ReelAtmosAsset (std::shared_ptr node) : ReelAsset (node) - , ReelMXF (node) + , ReelFileAsset (node) { node->ignore_child ("DataType"); node->done (); diff --git a/src/reel_atmos_asset.h b/src/reel_atmos_asset.h index 0477504c..d9f4a8e3 100644 --- a/src/reel_atmos_asset.h +++ b/src/reel_atmos_asset.h @@ -43,7 +43,7 @@ #include "reel_asset.h" #include "atmos_asset.h" -#include "reel_mxf.h" +#include "reel_file_asset.h" namespace dcp { @@ -55,7 +55,7 @@ class AtmosAsset; /** @class ReelAtmosAsset * @brief Part of a Reel's description which refers to a Atmos MXF */ -class ReelAtmosAsset : public ReelAsset, public ReelMXF +class ReelAtmosAsset : public ReelAsset, public ReelFileAsset { public: ReelAtmosAsset (std::shared_ptr asset, int64_t entry_point); diff --git a/src/reel_closed_caption_asset.cc b/src/reel_closed_caption_asset.cc index 3369fdd9..a57a0670 100644 --- a/src/reel_closed_caption_asset.cc +++ b/src/reel_closed_caption_asset.cc @@ -55,7 +55,7 @@ using namespace dcp; ReelClosedCaptionAsset::ReelClosedCaptionAsset (std::shared_ptr asset, Fraction edit_rate, int64_t intrinsic_duration, int64_t entry_point) : ReelAsset (asset->id(), edit_rate, intrinsic_duration, entry_point) - , ReelMXF (asset, dynamic_pointer_cast(asset) ? dynamic_pointer_cast(asset)->key_id() : optional()) + , ReelFileAsset (asset, dynamic_pointer_cast(asset) ? dynamic_pointer_cast(asset)->key_id() : optional()) { } @@ -63,7 +63,7 @@ ReelClosedCaptionAsset::ReelClosedCaptionAsset (std::shared_ptr a ReelClosedCaptionAsset::ReelClosedCaptionAsset (std::shared_ptr node) : ReelAsset (node) - , ReelMXF (node) + , ReelFileAsset (node) { _language = node->optional_string_child ("Language"); node->done (); diff --git a/src/reel_closed_caption_asset.h b/src/reel_closed_caption_asset.h index 0aad8740..12fc5e66 100644 --- a/src/reel_closed_caption_asset.h +++ b/src/reel_closed_caption_asset.h @@ -44,7 +44,7 @@ #include "language_tag.h" #include "subtitle_asset.h" #include "reel_asset.h" -#include "reel_mxf.h" +#include "reel_file_asset.h" struct verify_invalid_language2; @@ -59,7 +59,7 @@ class SubtitleAsset; /** @class ReelClosedCaptionAsset * @brief Part of a Reel's description which refers to a closed caption XML/MXF file */ -class ReelClosedCaptionAsset : public ReelAsset, public ReelMXF +class ReelClosedCaptionAsset : public ReelAsset, public ReelFileAsset { public: ReelClosedCaptionAsset (std::shared_ptr asset, Fraction edit_rate, int64_t instrinsic_duration, int64_t entry_point); diff --git a/src/reel_mxf.cc b/src/reel_file_asset.cc similarity index 87% rename from src/reel_mxf.cc rename to src/reel_file_asset.cc index 1e7d9474..40cff83f 100644 --- a/src/reel_mxf.cc +++ b/src/reel_file_asset.cc @@ -33,11 +33,11 @@ /** @file src/reel_mxf.cc - * @brief ReelMXF class + * @brief ReelFileAsset class */ -#include "reel_mxf.h" +#include "reel_file_asset.h" #include "util.h" #include "mxf.h" #include "dcp_assert.h" @@ -51,7 +51,7 @@ using boost::optional; using namespace dcp; -ReelMXF::ReelMXF (shared_ptr asset, optional key_id) +ReelFileAsset::ReelFileAsset (shared_ptr asset, optional key_id) : _asset_ref (asset) , _key_id (key_id) , _hash (asset->hash()) @@ -60,7 +60,7 @@ ReelMXF::ReelMXF (shared_ptr asset, optional key_id) } -ReelMXF::ReelMXF (shared_ptr node) +ReelFileAsset::ReelFileAsset (shared_ptr node) : _asset_ref (remove_urn_uuid(node->string_child("Id"))) , _key_id (node->optional_string_child ("KeyId")) , _hash (node->optional_string_child ("Hash")) @@ -72,7 +72,7 @@ ReelMXF::ReelMXF (shared_ptr node) bool -ReelMXF::mxf_equals (shared_ptr other, EqualityOptions opt, NoteHandler note) const +ReelFileAsset::mxf_equals (shared_ptr other, EqualityOptions opt, NoteHandler note) const { if (_hash != other->_hash) { if (!opt.reel_hashes_can_differ) { @@ -92,7 +92,7 @@ ReelMXF::mxf_equals (shared_ptr other, EqualityOptions opt, NoteH void -ReelMXF::write_to_cpl_mxf (xmlpp::Node* node) const +ReelFileAsset::write_to_cpl_mxf (xmlpp::Node* node) const { if (key_id ()) { auto hash = find_child (node, "Hash"); diff --git a/src/reel_mxf.h b/src/reel_file_asset.h similarity index 87% rename from src/reel_mxf.h rename to src/reel_file_asset.h index 099ddfeb..9cf02e21 100644 --- a/src/reel_mxf.h +++ b/src/reel_file_asset.h @@ -32,8 +32,8 @@ */ -/** @file src/reel_mxf.h - * @brief ReelMXF class +/** @file src/reel_file_asset.h + * @brief ReelFileAsset class */ @@ -55,15 +55,15 @@ namespace cxml { namespace dcp { -/** @class ReelMXF +/** @class ReelFileAsset * @brief Part of a Reel's description which refers to an asset which can be encrypted */ -class ReelMXF +class ReelFileAsset { public: - explicit ReelMXF (std::shared_ptr asset, boost::optional key_id); - explicit ReelMXF (std::shared_ptr); - virtual ~ReelMXF () {} + explicit ReelFileAsset (std::shared_ptr asset, boost::optional key_id); + explicit ReelFileAsset (std::shared_ptr); + virtual ~ReelFileAsset () {} /** @return the 4-character key type for this MXF (MDIK, MDAK, etc.) */ virtual std::string key_type () const = 0; @@ -78,7 +78,7 @@ public: return _asset_ref; } - /** @return the asset's hash, if this ReelMXF has been created from one, + /** @return the asset's hash, if this ReelFileAsset has been created from one, * otherwise the hash written to the CPL for this asset (if present). */ boost::optional hash () const { @@ -103,7 +103,7 @@ public: return _key_id; } - bool mxf_equals (std::shared_ptr other, EqualityOptions opt, NoteHandler note) const; + bool mxf_equals (std::shared_ptr other, EqualityOptions opt, NoteHandler note) const; protected: diff --git a/src/reel_picture_asset.cc b/src/reel_picture_asset.cc index 8cdb9f44..6e1c5311 100644 --- a/src/reel_picture_asset.cc +++ b/src/reel_picture_asset.cc @@ -58,7 +58,7 @@ using namespace dcp; ReelPictureAsset::ReelPictureAsset (shared_ptr asset, int64_t entry_point) : ReelAsset (asset->id(), asset->edit_rate(), asset->intrinsic_duration(), entry_point) - , ReelMXF (asset, asset->key_id()) + , ReelFileAsset (asset, asset->key_id()) , _frame_rate (asset->frame_rate ()) , _screen_aspect_ratio (asset->screen_aspect_ratio ()) { @@ -68,7 +68,7 @@ ReelPictureAsset::ReelPictureAsset (shared_ptr asset, int64_t entr ReelPictureAsset::ReelPictureAsset (shared_ptr node) : ReelAsset (node) - , ReelMXF (node) + , ReelFileAsset (node) { _frame_rate = Fraction (node->string_child ("FrameRate")); try { diff --git a/src/reel_picture_asset.h b/src/reel_picture_asset.h index 12c23717..961cde9c 100644 --- a/src/reel_picture_asset.h +++ b/src/reel_picture_asset.h @@ -41,7 +41,7 @@ #define LIBDCP_REEL_PICTURE_ASSET_H -#include "reel_mxf.h" +#include "reel_file_asset.h" #include "reel_asset.h" #include "picture_asset.h" @@ -52,7 +52,7 @@ namespace dcp { /** @class ReelPictureAsset * @brief Part of a Reel's description which refers to a picture asset */ -class ReelPictureAsset : public ReelAsset, public ReelMXF +class ReelPictureAsset : public ReelAsset, public ReelFileAsset { public: ReelPictureAsset (std::shared_ptr asset, int64_t entry_point); diff --git a/src/reel_sound_asset.cc b/src/reel_sound_asset.cc index d3cc41d1..539ce7b7 100644 --- a/src/reel_sound_asset.cc +++ b/src/reel_sound_asset.cc @@ -50,7 +50,7 @@ using namespace dcp; ReelSoundAsset::ReelSoundAsset (shared_ptr asset, int64_t entry_point) : ReelAsset (asset->id(), asset->edit_rate(), asset->intrinsic_duration(), entry_point) - , ReelMXF (asset, asset->key_id()) + , ReelFileAsset (asset, asset->key_id()) { } @@ -58,7 +58,7 @@ ReelSoundAsset::ReelSoundAsset (shared_ptr asset, int64_t entry_poin ReelSoundAsset::ReelSoundAsset (shared_ptr node) : ReelAsset (node) - , ReelMXF (node) + , ReelFileAsset (node) { node->ignore_child ("Language"); node->done (); diff --git a/src/reel_sound_asset.h b/src/reel_sound_asset.h index 931bbc1e..e6143f11 100644 --- a/src/reel_sound_asset.h +++ b/src/reel_sound_asset.h @@ -37,7 +37,7 @@ */ -#include "reel_mxf.h" +#include "reel_file_asset.h" #include "reel_asset.h" #include "sound_asset.h" #include @@ -50,7 +50,7 @@ namespace dcp { /** @class ReelSoundAsset * @brief Part of a Reel's description which refers to a sound asset */ -class ReelSoundAsset : public ReelAsset, public ReelMXF +class ReelSoundAsset : public ReelAsset, public ReelFileAsset { public: ReelSoundAsset (std::shared_ptr content, int64_t entry_point); diff --git a/src/reel_subtitle_asset.cc b/src/reel_subtitle_asset.cc index 3a531962..e75b918a 100644 --- a/src/reel_subtitle_asset.cc +++ b/src/reel_subtitle_asset.cc @@ -53,7 +53,7 @@ using namespace dcp; ReelSubtitleAsset::ReelSubtitleAsset (std::shared_ptr asset, Fraction edit_rate, int64_t intrinsic_duration, int64_t entry_point) : ReelAsset (asset->id(), edit_rate, intrinsic_duration, entry_point) - , ReelMXF (asset, dynamic_pointer_cast(asset) ? dynamic_pointer_cast(asset)->key_id() : optional()) + , ReelFileAsset (asset, dynamic_pointer_cast(asset) ? dynamic_pointer_cast(asset)->key_id() : optional()) { } @@ -61,7 +61,7 @@ ReelSubtitleAsset::ReelSubtitleAsset (std::shared_ptr asset, Frac ReelSubtitleAsset::ReelSubtitleAsset (std::shared_ptr node) : ReelAsset (node) - , ReelMXF (node) + , ReelFileAsset (node) { _language = node->optional_string_child("Language"); node->done (); diff --git a/src/reel_subtitle_asset.h b/src/reel_subtitle_asset.h index 93124140..67b0f844 100644 --- a/src/reel_subtitle_asset.h +++ b/src/reel_subtitle_asset.h @@ -43,7 +43,7 @@ #include "language_tag.h" #include "reel_asset.h" -#include "reel_mxf.h" +#include "reel_file_asset.h" #include "subtitle_asset.h" @@ -59,7 +59,7 @@ class SubtitleAsset; /** @class ReelSubtitleAsset * @brief Part of a Reel's description which refers to a subtitle XML/MXF file */ -class ReelSubtitleAsset : public ReelAsset, public ReelMXF +class ReelSubtitleAsset : public ReelAsset, public ReelFileAsset { public: ReelSubtitleAsset (std::shared_ptr asset, Fraction edit_rate, int64_t intrinsic_duration, int64_t entry_point); diff --git a/src/verify.cc b/src/verify.cc index 3cb61bad..e45c381e 100644 --- a/src/verify.cc +++ b/src/verify.cc @@ -376,19 +376,19 @@ enum class VerifyAssetResult { static VerifyAssetResult -verify_asset (shared_ptr dcp, shared_ptr reel_mxf, function progress) +verify_asset (shared_ptr dcp, shared_ptr reel_file_asset, function progress) { - auto const actual_hash = reel_mxf->asset_ref()->hash(progress); + auto const actual_hash = reel_file_asset->asset_ref()->hash(progress); auto pkls = dcp->pkls(); /* We've read this DCP in so it must have at least one PKL */ DCP_ASSERT (!pkls.empty()); - auto asset = reel_mxf->asset_ref().asset(); + auto asset = reel_file_asset->asset_ref().asset(); optional pkl_hash; for (auto i: pkls) { - pkl_hash = i->hash (reel_mxf->asset_ref()->id()); + pkl_hash = i->hash (reel_file_asset->asset_ref()->id()); if (pkl_hash) { break; } @@ -396,7 +396,7 @@ verify_asset (shared_ptr dcp, shared_ptr reel_mxf, fun DCP_ASSERT (pkl_hash); - auto cpl_hash = reel_mxf->hash(); + auto cpl_hash = reel_file_asset->hash(); if (cpl_hash && *cpl_hash != *pkl_hash) { return VerifyAssetResult::CPL_PKL_DIFFER; } @@ -443,9 +443,9 @@ biggest_frame_size (shared_ptr frame) template optional -verify_picture_asset_type (shared_ptr reel_mxf, function progress) +verify_picture_asset_type (shared_ptr reel_file_asset, function progress) { - auto asset = dynamic_pointer_cast(reel_mxf->asset_ref().asset()); + auto asset = dynamic_pointer_cast(reel_file_asset->asset_ref().asset()); if (!asset) { return optional(); } @@ -472,11 +472,11 @@ verify_picture_asset_type (shared_ptr reel_mxf, function reel_mxf, function progress) +verify_picture_asset (shared_ptr reel_file_asset, function progress) { - auto r = verify_picture_asset_type(reel_mxf, progress); + auto r = verify_picture_asset_type(reel_file_asset, progress); if (!r) { - r = verify_picture_asset_type(reel_mxf, progress); + r = verify_picture_asset_type(reel_file_asset, progress); } DCP_ASSERT (r); @@ -1022,11 +1022,11 @@ pkl_has_encrypted_assets (shared_ptr dcp, shared_ptr pkl) { vector encrypted; for (auto i: dcp->cpls()) { - for (auto j: i->reel_mxfs()) { + for (auto j: i->reel_file_assets()) { if (j->asset_ref().resolved()) { /* It's a bit surprising / broken but Interop subtitle assets are represented - * in reels by ReelSubtitleAsset which inherits ReelMXF, so it's possible for - * ReelMXFs to have assets which are not MXFs. + * in reels by ReelSubtitleAsset which inherits ReelFileAsset, so it's possible for + * ReelFileAssets to have assets which are not MXFs. */ if (auto asset = dynamic_pointer_cast(j->asset_ref().asset())) { if (asset->encrypted()) { @@ -1166,8 +1166,8 @@ dcp::verify ( if ((i->intrinsic_duration() * i->edit_rate().denominator / i->edit_rate().numerator) < 1) { notes.push_back ({VerificationNote::Type::ERROR, VerificationNote::Code::INVALID_INTRINSIC_DURATION, i->id()}); } - auto mxf = dynamic_pointer_cast(i); - if (mxf && !mxf->hash()) { + auto file_asset = dynamic_pointer_cast(i); + if (file_asset && !file_asset->hash()) { notes.push_back ({VerificationNote::Type::BV21_ERROR, VerificationNote::Code::MISSING_HASH, i->id()}); } } diff --git a/src/wscript b/src/wscript index 4366dca7..025a7d4d 100644 --- a/src/wscript +++ b/src/wscript @@ -82,8 +82,8 @@ def build(bld): reel_asset.cc reel_atmos_asset.cc reel_closed_caption_asset.cc + reel_file_asset.cc reel_mono_picture_asset.cc - reel_mxf.cc reel_picture_asset.cc reel_markers_asset.cc reel_sound_asset.cc -- 2.30.2