/** Write details of the asset to a CPL AssetList node.
* @param p Parent node.
+ * @param i true to use the Interop standard, false for SMPTE.
*/
- virtual void write_to_cpl (xmlpp::Node *) const = 0;
+ virtual void write_to_cpl (xmlpp::Node* p, bool i) const = 0;
/** Write details of the asset to a PKL AssetList node.
* @param p Parent node.
}
void
-MXFAsset::write_to_cpl (xmlpp::Node* node) const
+MXFAsset::write_to_cpl (xmlpp::Node* node, bool interop) const
{
- xmlpp::Node* a = node->add_child (cpl_node_name ());
+ xmlpp::Node* a = node->add_child (cpl_node_name (), cpl_node_namespace (interop));
a->add_child ("Id")->add_child_text ("urn:uuid:" + _uuid);
a->add_child ("AnnotationText")->add_child_text (_file_name);
a->add_child ("EditRate")->add_child_text (lexical_cast<string> (_edit_rate) + " 1");
virtual bool equals (boost::shared_ptr<const Asset> other, EqualityOptions opt, boost::function<void (NoteType, std::string)> note) const;
- virtual void write_to_cpl (xmlpp::Node *) const;
+ virtual void write_to_cpl (xmlpp::Node *, bool interop) const;
/** Fill in a ADSCP::WriteInfo struct.
* @param w struct to fill in.
protected:
virtual std::string key_type () const = 0;
virtual std::string cpl_node_name () const = 0;
+ virtual std::string cpl_node_namespace (bool) const {
+ return "";
+ }
/** Signal to emit to report progress, or 0 */
boost::signals2::signal<void (float)>* _progress;
return "MainStereoscopicPicture";
}
+string
+StereoPictureAsset::cpl_node_namespace (bool interop) const
+{
+ if (interop) {
+ return "http://www.digicine.com/schemas/437-Y/2007/Main-Stereo-Picture-CPL";
+ } else {
+ return "http://www.smpte-ra.org/schemas/429-10/2008/Main-Stereo-Picture-CPL";
+ }
+
+ return "";
+}
+
int
StereoPictureAsset::edit_rate_factor () const
{
void
PictureAsset::write_to_cpl (xmlpp::Node* node, bool interop) const
{
- MXFAsset::write_to_cpl (node);
+ MXFAsset::write_to_cpl (node, interop);
xmlpp::Node::NodeList c = node->get_children ();
xmlpp::Node::NodeList::iterator i = c.begin();
private:
std::string key_type () const;
- std::string cpl_node_name () const = 0;
virtual int edit_rate_factor () const = 0;
};
private:
std::string cpl_node_name () const;
+ std::string cpl_node_namespace (bool) const;
int edit_rate_factor () const;
};
}
if (_main_sound) {
- _main_sound->write_to_cpl (asset_list);
+ _main_sound->write_to_cpl (asset_list, interop);
}
if (_main_subtitle) {
- _main_subtitle->write_to_cpl (asset_list);
+ _main_subtitle->write_to_cpl (asset_list, interop);
}
}
}
void
-SubtitleAsset::write_to_cpl (xmlpp::Node* node) const
+SubtitleAsset::write_to_cpl (xmlpp::Node* node, bool) const
{
/* XXX: should EditRate, Duration and IntrinsicDuration be in here? */
SubtitleAsset (std::string directory, std::string xml_file);
SubtitleAsset (std::string directory, std::string movie_title, std::string language);
- void write_to_cpl (xmlpp::Node *) const;
+ void write_to_cpl (xmlpp::Node *, bool) const;
virtual bool equals (boost::shared_ptr<const Asset>, EqualityOptions, boost::function<void (NoteType, std::string)> note) const {
/* XXX */
note (ERROR, "subtitle assets not compared yet");