/*
- Copyright (C) 2020 Carl Hetherington <cth@carlh.net>
+ Copyright (C) 2020-2021 Carl Hetherington <cth@carlh.net>
This file is part of libdcp.
#include "sound_asset.h"
#include "sound_asset_writer.h"
#include "test.h"
+#include "warnings.h"
#include <libcxml/cxml.h>
+LIBDCP_DISABLE_WARNINGS
#include <libxml++/libxml++.h>
+LIBDCP_ENABLE_WARNINGS
#include <boost/test/unit_test.hpp>
using std::list;
+using std::make_shared;
+using std::shared_ptr;
using std::string;
using std::vector;
-using std::shared_ptr;
/** Check that when we read a MXF and write its MCA metadata to a CPL we get the same answer
BOOST_AUTO_TEST_CASE (parse_mca_descriptors_from_mxf_test)
{
for (int i = 1; i < 3; ++i) {
- shared_ptr<dcp::SoundAsset> sound_asset(new dcp::SoundAsset(private_test / "data" / dcp::String::compose("51_sound_with_mca_%1.mxf", i)));
- shared_ptr<dcp::ReelSoundAsset> reel_sound_asset(new dcp::ReelSoundAsset(sound_asset, 0));
- shared_ptr<dcp::Reel> reel(new dcp::Reel());
+ auto sound_asset = make_shared<dcp::SoundAsset>(private_test / "data" / dcp::String::compose("51_sound_with_mca_%1.mxf", i));
+ auto reel_sound_asset = make_shared<dcp::ReelSoundAsset>(sound_asset, 0);
+ auto reel = make_shared<dcp::Reel>();
reel->add (black_picture_asset(dcp::String::compose("build/test/parse_mca_descriptors_from_mxf_test%1", i), 24));
reel->add (reel_sound_asset);
- dcp::CPL cpl("", dcp::FEATURE);
+ dcp::CPL cpl("", dcp::ContentKind::FEATURE, dcp::Standard::SMPTE);
cpl.add (reel);
cpl.set_main_sound_configuration("51/L,R,C,LFE,Ls,Rs");
cpl.set_main_sound_sample_rate(48000);
cpl.set_main_picture_stored_area(dcp::Size(1998, 1080));
cpl.set_main_picture_active_area(dcp::Size(1998, 1080));
- cpl.write_xml (dcp::String::compose("build/test/parse_mca_descriptors_from_mxf_test%1/cpl.xml", i), dcp::SMPTE, shared_ptr<dcp::CertificateChain>());
+ cpl.write_xml (dcp::String::compose("build/test/parse_mca_descriptors_from_mxf_test%1/cpl.xml", i), shared_ptr<dcp::CertificateChain>());
cxml::Document ref("CompositionPlaylist", private_test / dcp::String::compose("51_sound_with_mca_%1.cpl", i));
cxml::Document check("CompositionPlaylist", dcp::String::compose("build/test/parse_mca_descriptors_from_mxf_test%1/cpl.xml", i));
- list<string> ignore;
+ vector<string> ignore;
check_xml (
dynamic_cast<xmlpp::Element*>(
ref.node_child("ReelList")->node_children("Reel").front()->node_child("AssetList")->node_child("CompositionMetadataAsset")->node_child("MCASubDescriptors")->node()
/** Reproduce the MCA tags from one of the example files using libdcp */
BOOST_AUTO_TEST_CASE (write_mca_descriptors_to_mxf_test)
{
- shared_ptr<dcp::SoundAsset> sound_asset(new dcp::SoundAsset(dcp::Fraction(24, 1), 48000, 6, dcp::LanguageTag("en-US"), dcp::SMPTE));
- vector<dcp::Channel> channels;
- channels.push_back (dcp::LEFT);
- channels.push_back (dcp::RIGHT);
- channels.push_back (dcp::CENTRE);
- channels.push_back (dcp::LFE);
- channels.push_back (dcp::LS);
- channels.push_back (dcp::RS);
- shared_ptr<dcp::SoundAssetWriter> writer = sound_asset->start_write("build/test/write_mca_descriptors_to_mxf_test.mxf", channels);
+ auto sound_asset = make_shared<dcp::SoundAsset>(dcp::Fraction(24, 1), 48000, 6, dcp::LanguageTag("en-US"), dcp::Standard::SMPTE);
+ auto writer = sound_asset->start_write("build/test/write_mca_descriptors_to_mxf_test.mxf");
float* samples[6];
for (int i = 0; i < 6; ++i) {
/* Make a CPL as a roundabout way to read the metadata we just wrote to the MXF */
- shared_ptr<dcp::ReelSoundAsset> reel_sound_asset(new dcp::ReelSoundAsset(sound_asset, 0));
- shared_ptr<dcp::Reel> reel(new dcp::Reel());
+ auto reel_sound_asset = make_shared<dcp::ReelSoundAsset>(sound_asset, 0);
+ auto reel = make_shared<dcp::Reel>();
reel->add (black_picture_asset("build/test/write_mca_descriptors_to_mxf_test", 24));
reel->add (reel_sound_asset);
- dcp::CPL cpl("", dcp::FEATURE);
+ dcp::CPL cpl("", dcp::ContentKind::FEATURE, dcp::Standard::SMPTE);
cpl.add (reel);
cpl.set_main_sound_configuration("51/L,R,C,LFE,Ls,Rs");
cpl.set_main_sound_sample_rate(48000);
cpl.set_main_picture_stored_area(dcp::Size(1998, 1080));
cpl.set_main_picture_active_area(dcp::Size(1998, 1080));
- cpl.write_xml ("build/test/write_mca_descriptors_to_mxf_test/cpl.xml", dcp::SMPTE, shared_ptr<dcp::CertificateChain>());
+ cpl.write_xml ("build/test/write_mca_descriptors_to_mxf_test/cpl.xml", shared_ptr<dcp::CertificateChain>());
cxml::Document ref("CompositionPlaylist", private_test / "51_sound_with_mca_1.cpl");
cxml::Document check("CompositionPlaylist", "build/test/write_mca_descriptors_to_mxf_test/cpl.xml");
- list<string> ignore;
- ignore.push_back ("InstanceID");
- ignore.push_back ("MCALinkID");
- ignore.push_back ("SoundfieldGroupLinkID");
-
check_xml (
dynamic_cast<xmlpp::Element*>(
- ref.node_child("ReelList")->node_children("Reel").front()->node_child("AssetList")->node_child("CompositionMetadataAsset")->node_child("MCASubDescriptors")->node()
+ ref.node_child("ReelList")->node_children("Reel")[0]->node_child("AssetList")->node_child("CompositionMetadataAsset")->node_child("MCASubDescriptors")->node()
),
dynamic_cast<xmlpp::Element*>(
- check.node_child("ReelList")->node_children("Reel").front()->node_child("AssetList")->node_child("CompositionMetadataAsset")->node_child("MCASubDescriptors")->node()
+ check.node_child("ReelList")->node_children("Reel")[0]->node_child("AssetList")->node_child("CompositionMetadataAsset")->node_child("MCASubDescriptors")->node()
),
- ignore,
+ { "InstanceID", "MCALinkID", "SoundfieldGroupLinkID" },
true
);
}