/** Write details of the asset to a CPL AssetList node.
* @param p Parent element.
- * @param i true to use the Interop standard, false for SMPTE.
*/
- virtual void write_to_cpl (xmlpp::Element* p, bool i) const = 0;
+ virtual void write_to_cpl (xmlpp::Element* p) const = 0;
/** Write details of the asset to a PKL AssetList node.
* @param p Parent node.
xmlpp::Element* reel_list = root->add_child ("ReelList");
for (list<shared_ptr<Reel> >::const_iterator i = _reels.begin(); i != _reels.end(); ++i) {
- (*i)->write_to_cpl (reel_list, interop);
+ (*i)->write_to_cpl (reel_list);
}
if (signer) {
picture_desc.EditRate = ASDCP::Rational (_edit_rate, 1);
ASDCP::WriterInfo writer_info;
- fill_writer_info (&writer_info, _uuid, _interop, _metadata);
+ fill_writer_info (&writer_info, _uuid, _metadata);
ASDCP::JP2K::MXFWriter mxf_writer;
r = mxf_writer.OpenWrite (path().string().c_str(), writer_info, picture_desc, 16384, false);
}
void
-MXFAsset::fill_writer_info (ASDCP::WriterInfo* writer_info, string uuid, bool interop, MXFMetadata const & metadata)
+MXFAsset::fill_writer_info (ASDCP::WriterInfo* writer_info, string uuid, MXFMetadata const & metadata)
{
writer_info->ProductVersion = metadata.product_version;
writer_info->CompanyName = metadata.company_name;
writer_info->ProductName = metadata.product_name.c_str();
- if (interop) {
+ if (_interop) {
writer_info->LabelSetType = ASDCP::LS_MXF_INTEROP;
} else {
writer_info->LabelSetType = ASDCP::LS_MXF_SMPTE;
}
void
-MXFAsset::write_to_cpl (xmlpp::Element* node, bool interop) const
+MXFAsset::write_to_cpl (xmlpp::Element* node) const
{
- pair<string, string> const attr = cpl_node_attribute (interop);
+ pair<string, string> const attr = cpl_node_attribute ();
xmlpp::Element* a = node->add_child (cpl_node_name ());
if (!attr.first.empty ()) {
a->set_attribute (attr.first, attr.second);
~MXFAsset ();
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::Element *, bool interop) const;
+ virtual void write_to_cpl (xmlpp::Element *) const;
virtual std::string key_type () const = 0;
/** Fill in a ADSCP::WriteInfo struct.
* @param w struct to fill in.
* @param uuid uuid to use.
- * @param true to label as interop, false for SMPTE.
*/
- void fill_writer_info (ASDCP::WriterInfo* w, std::string uuid, bool interop, MXFMetadata const & metadata);
+ void fill_writer_info (ASDCP::WriterInfo* w, std::string uuid, MXFMetadata const & metadata);
void set_progress (boost::signals2::signal<void (float)>* progress) {
_progress = progress;
protected:
virtual std::string cpl_node_name () const = 0;
- virtual std::pair<std::string, std::string> cpl_node_attribute (bool) const {
+ virtual std::pair<std::string, std::string> cpl_node_attribute () const {
return std::make_pair ("", "");
}
}
void
-PictureAsset::write_to_cpl (xmlpp::Element* node, bool interop) const
+PictureAsset::write_to_cpl (xmlpp::Element* node) const
{
- MXFAsset::write_to_cpl (node, interop);
+ MXFAsset::write_to_cpl (node);
xmlpp::Node::NodeList c = node->get_children ();
xmlpp::Node::NodeList::iterator i = c.begin();
assert (i != c.end ());
(*i)->add_child ("FrameRate")->add_child_text (lexical_cast<string> (_edit_rate * edit_rate_factor ()) + " 1");
- if (interop) {
+ if (_interop) {
stringstream s;
s << std::fixed << std::setprecision (2) << (float (_size.width) / _size.height);
(*i)->add_child ("ScreenAspectRatio")->add_child_text (s.str ());
_size = s;
}
- void write_to_cpl (xmlpp::Element *, bool) const;
+ void write_to_cpl (xmlpp::Element *) const;
protected:
state->j2k_parser.FillPictureDescriptor (state->picture_descriptor);
state->picture_descriptor.EditRate = ASDCP::Rational (asset->edit_rate(), 1);
- asset->fill_writer_info (&state->writer_info, asset->uuid(), writer->_asset->interop(), writer->_asset->metadata());
+ asset->fill_writer_info (&state->writer_info, asset->uuid(), writer->_asset->metadata());
Kumu::Result_t r = state->mxf_writer.OpenWrite (
asset->path().string().c_str(),
using namespace libdcp;
void
-Reel::write_to_cpl (xmlpp::Element* node, bool interop) const
+Reel::write_to_cpl (xmlpp::Element* node) const
{
xmlpp::Element* reel = node->add_child ("Reel");
reel->add_child("Id")->add_child_text ("urn:uuid:" + make_uuid());
if (_main_picture && dynamic_pointer_cast<MonoPictureAsset> (_main_picture)) {
/* Mono pictures come before other stuff... */
- _main_picture->write_to_cpl (asset_list, interop);
+ _main_picture->write_to_cpl (asset_list);
}
if (_main_sound) {
- _main_sound->write_to_cpl (asset_list, interop);
+ _main_sound->write_to_cpl (asset_list);
}
if (_main_subtitle) {
- _main_subtitle->write_to_cpl (asset_list, interop);
+ _main_subtitle->write_to_cpl (asset_list);
}
if (_main_picture && dynamic_pointer_cast<StereoPictureAsset> (_main_picture)) {
/* ... but stereo pictures must come after */
- _main_picture->write_to_cpl (asset_list, interop);
+ _main_picture->write_to_cpl (asset_list);
}
}
return _main_subtitle;
}
- void write_to_cpl (xmlpp::Element *, bool) const;
+ void write_to_cpl (xmlpp::Element *) const;
bool encrypted () const;
frame_buffer.Size (ASDCP::PCM::CalcFrameBufferSize (audio_desc));
ASDCP::WriterInfo writer_info;
- MXFAsset::fill_writer_info (&writer_info, _uuid, _interop, _metadata);
+ MXFAsset::fill_writer_info (&writer_info, _uuid, _metadata);
ASDCP::PCM::MXFWriter mxf_writer;
r = mxf_writer.OpenWrite (path().string().c_str(), writer_info, audio_desc);
_state->frame_buffer.Size (ASDCP::PCM::CalcFrameBufferSize (_state->audio_desc));
memset (_state->frame_buffer.Data(), 0, _state->frame_buffer.Capacity());
- _asset->fill_writer_info (&_state->writer_info, _asset->uuid (), _asset->interop(), _asset->metadata());
+ _asset->fill_writer_info (&_state->writer_info, _asset->uuid (), _asset->metadata());
Kumu::Result_t r = _state->mxf_writer.OpenWrite (_asset->path().string().c_str(), _state->writer_info, _state->audio_desc);
if (ASDCP_FAILURE (r)) {
}
pair<string, string>
-StereoPictureAsset::cpl_node_attribute (bool interop) const
+StereoPictureAsset::cpl_node_attribute () const
{
- if (interop) {
+ if (_interop) {
return make_pair ("xmlns:msp-cpl", "http://www.digicine.com/schemas/437-Y/2007/Main-Stereo-Picture-CPL");
} else {
return make_pair ("xmlns:msp-cpl", "http://www.smpte-ra.org/schemas/429-10/2008/Main-Stereo-Picture-CPL");
private:
std::string cpl_node_name () const;
- std::pair<std::string, std::string> cpl_node_attribute (bool) const;
+ std::pair<std::string, std::string> cpl_node_attribute () const;
int edit_rate_factor () const;
};
}
void
-SubtitleAsset::write_to_cpl (xmlpp::Element* node, bool) const
+SubtitleAsset::write_to_cpl (xmlpp::Element* node) 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::Element *, bool) const;
+ void write_to_cpl (xmlpp::Element *) 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");
BOOST_AUTO_TEST_CASE (cpl_sar)
{
shared_ptr<libdcp::MonoPictureAsset> mp (new libdcp::MonoPictureAsset ("build/test/foo", "video.mxf"));
+ mp->set_interop (true);
{
mp->set_size (libdcp::Size (1998, 1080));
xmlpp::Document doc;
xmlpp::Element* el = doc.create_root_node ("Test");
- mp->write_to_cpl (el, true);
+ mp->write_to_cpl (el);
cxml::Node node (el);
BOOST_CHECK_EQUAL (node.node_child("MainPicture")->string_child ("ScreenAspectRatio"), "1.85");
mp->set_size (libdcp::Size (2048, 858));
xmlpp::Document doc;
xmlpp::Element* el = doc.create_root_node ("Test");
- mp->write_to_cpl (el, true);
+ mp->write_to_cpl (el);
cxml::Node node (el);
BOOST_CHECK_EQUAL (node.node_child("MainPicture")->string_child ("ScreenAspectRatio"), "2.39");