Add include_mca_subdescriptors option to CPL::write_xml().
authorCarl Hetherington <cth@carlh.net>
Tue, 28 Feb 2023 13:17:04 +0000 (14:17 +0100)
committerCarl Hetherington <cth@carlh.net>
Tue, 28 Feb 2023 13:17:04 +0000 (14:17 +0100)
src/cpl.cc
src/cpl.h

index f3cebe3713d9aebcd4c82407d7467b1d13fae859..33a690f3cbbe513aaf6c00be4d453e7b6785aa00 100644 (file)
@@ -182,7 +182,7 @@ CPL::set (std::vector<std::shared_ptr<Reel>> reels)
 
 
 void
-CPL::write_xml (boost::filesystem::path file, shared_ptr<const CertificateChain> signer) const
+CPL::write_xml(boost::filesystem::path file, shared_ptr<const CertificateChain> signer, bool include_mca_subdescriptors) const
 {
        xmlpp::Document doc;
        xmlpp::Element* root;
@@ -227,7 +227,7 @@ CPL::write_xml (boost::filesystem::path file, shared_ptr<const CertificateChain>
        for (auto i: _reels) {
                auto asset_list = i->write_to_cpl (reel_list, _standard);
                if (first && _standard == Standard::SMPTE) {
-                       maybe_write_composition_metadata_asset (asset_list);
+                       maybe_write_composition_metadata_asset(asset_list, include_mca_subdescriptors);
                        first = false;
                }
        }
@@ -430,7 +430,7 @@ CPL::write_mca_subdescriptors(xmlpp::Element* parent, shared_ptr<const SoundAsse
  *  is missing this method will do nothing.
  */
 void
-CPL::maybe_write_composition_metadata_asset (xmlpp::Element* node) const
+CPL::maybe_write_composition_metadata_asset(xmlpp::Element* node, bool include_mca_subdescriptors) const
 {
        if (
                !_main_sound_configuration ||
@@ -549,7 +549,7 @@ CPL::maybe_write_composition_metadata_asset (xmlpp::Element* node) const
 
        if (_reels.front()->main_sound()) {
                auto asset = _reels.front()->main_sound()->asset();
-               if (asset) {
+               if (asset && include_mca_subdescriptors) {
                        write_mca_subdescriptors(meta, asset);
                }
        }
index 629a296a93285227d6e4f9011dfb90ce5ba4de29..71ac8545a9bd99280d081008a188eb20596caae6 100644 (file)
--- a/src/cpl.h
+++ b/src/cpl.h
@@ -124,10 +124,13 @@ public:
         *
         *  @param file Filename to write
         *  @param signer Signer to sign the CPL, or 0 to add no signature
+        *  @param include_mca_subdescriptors true to add a MCASubDescriptors tag to metadata,
+        *  false to omit it.
         */
        void write_xml (
                boost::filesystem::path file,
-               std::shared_ptr<const CertificateChain>
+               std::shared_ptr<const CertificateChain>,
+               bool include_mca_subdescriptors = true
                ) const;
 
        void resolve_refs (std::vector<std::shared_ptr<Asset>>);
@@ -344,7 +347,7 @@ protected:
 private:
        friend struct ::verify_invalid_language3;
 
-       void maybe_write_composition_metadata_asset (xmlpp::Element* node) const;
+       void maybe_write_composition_metadata_asset(xmlpp::Element* node, bool include_mca_subdescriptors) const;
        void read_composition_metadata_asset (cxml::ConstNodePtr node);
        void write_mca_subdescriptors(xmlpp::Element* parent, std::shared_ptr<const SoundAsset> asset) const;