#include "test.h"
#include "types.h"
#include "verify.h"
+#include "reel_markers_asset.h"
#include <boost/algorithm/string.hpp>
#include <boost/foreach.hpp>
#include <boost/optional.hpp>
using std::list;
using std::string;
+using std::make_shared;
using std::vector;
-using boost::optional;
using std::shared_ptr;
+using boost::optional;
static void
static
void
-dump_notes (list<dcp::VerificationNote> const & notes)
+dump_notes (vector<dcp::VerificationNote> const & notes)
{
BOOST_FOREACH (dcp::VerificationNote i, notes) {
std::cout << dcp::note_to_string(i) << "\n";
{
vector<boost::filesystem::path> directories;
directories.push_back (path);
- list<dcp::VerificationNote> notes = dcp::verify (directories, &stage, &progress, xsd_test);
- for (list<dcp::VerificationNote>::iterator i = notes.begin(); i != notes.end(); ) {
- list<dcp::VerificationNote>::iterator tmp = i;
- ++tmp;
- if (i->code() == dcp::VerificationNote::NOT_SMPTE) {
- notes.erase (i);
- }
- i = tmp;
- }
- dump_notes (notes);
- BOOST_CHECK (notes.empty());
+ auto notes = dcp::verify (directories, &stage, &progress, xsd_test);
+ vector<dcp::VerificationNote> filtered_notes;
+ std::copy_if (notes.begin(), notes.end(), std::back_inserter(filtered_notes), [](dcp::VerificationNote const& i) {
+ return i.code() != dcp::VerificationNote::Code::INVALID_STANDARD && i.code() != dcp::VerificationNote::Code::INVALID_SUBTITLE_DURATION;
+ });
+ dump_notes (filtered_notes);
+ BOOST_CHECK (filtered_notes.empty());
}
template <class T>
shared_ptr<T>
-pointer_to_id_in_list (shared_ptr<T> needle, list<shared_ptr<T> > haystack)
+pointer_to_id_in_vector (shared_ptr<T> needle, vector<shared_ptr<T> > haystack)
{
BOOST_FOREACH (shared_ptr<T> i, haystack) {
if (i->id() == needle->id()) {
dcp::EqualityOptions options;
options.load_font_nodes_can_differ = true;
- BOOST_FOREACH (boost::filesystem::path i, inputs)
- {
+ for (auto i: inputs) {
dcp::DCP input_dcp (i);
input_dcp.read ();
BOOST_REQUIRE (input_dcp.cpls().size() == 1);
- shared_ptr<dcp::CPL> input_cpl = input_dcp.cpls().front();
+ auto input_cpl = input_dcp.cpls().front();
- shared_ptr<dcp::CPL> output_cpl = pointer_to_id_in_list (input_cpl, output_dcp.cpls());
+ auto output_cpl = pointer_to_id_in_vector (input_cpl, output_dcp.cpls());
BOOST_REQUIRE (output_cpl);
- BOOST_FOREACH (shared_ptr<dcp::Asset> i, input_dcp.assets(true)) {
- shared_ptr<dcp::Asset> o = pointer_to_id_in_list(i, output_dcp.assets());
+ for (auto i: input_dcp.assets(true)) {
+ auto o = pointer_to_id_in_vector(i, output_dcp.assets());
BOOST_REQUIRE_MESSAGE (o, "Could not find " << i->id() << " in combined DCP.");
BOOST_CHECK (i->equals(o, options, note_handler));
}
remove_all (out);
vector<path> inputs;
inputs.push_back ("test/ref/DCP/dcp_test1");
- dcp::combine (inputs, out);
+ dcp::combine (
+ inputs,
+ out,
+ dcp::String::compose("libdcp %1", dcp::version),
+ dcp::String::compose("libdcp %1", dcp::version),
+ dcp::LocalTime().as_string(),
+ "A Test DCP"
+ );
check_no_errors (out);
check_combined (inputs, out);
boost::filesystem::path const out = "build/test/combine_two_dcps_with_same_asset_filenames_test";
shared_ptr<dcp::DCP> second = make_simple ("build/test/combine_input2");
- second->write_xml (dcp::SMPTE);
+ second->write_xml (dcp::Standard::SMPTE);
remove_all (out);
vector<path> inputs;
boost::filesystem::path const out = "build/test/combine_two_dcps_with_interop_subs_test";
shared_ptr<dcp::DCP> first = make_simple_with_interop_subs ("build/test/combine_input1");
- first->write_xml (dcp::INTEROP);
+ first->write_xml (dcp::Standard::INTEROP);
shared_ptr<dcp::DCP> second = make_simple_with_interop_subs ("build/test/combine_input2");
- second->write_xml (dcp::INTEROP);
+ second->write_xml (dcp::Standard::INTEROP);
remove_all (out);
vector<path> inputs;
boost::filesystem::path const out = "build/test/combine_two_dcps_with_smpte_subs_test";
shared_ptr<dcp::DCP> first = make_simple_with_smpte_subs ("build/test/combine_input1");
- first->write_xml (dcp::SMPTE);
+ first->write_xml (dcp::Standard::SMPTE);
shared_ptr<dcp::DCP> second = make_simple_with_smpte_subs ("build/test/combine_input2");
- second->write_xml (dcp::SMPTE);
+ second->write_xml (dcp::Standard::SMPTE);
remove_all (out);
vector<path> inputs;
boost::filesystem::path const out = "build/test/combine_two_dcps_with_interop_ccaps_test";
shared_ptr<dcp::DCP> first = make_simple_with_interop_ccaps ("build/test/combine_input1");
- first->write_xml (dcp::INTEROP);
+ first->write_xml (dcp::Standard::INTEROP);
shared_ptr<dcp::DCP> second = make_simple_with_interop_ccaps ("build/test/combine_input2");
- second->write_xml (dcp::INTEROP);
+ second->write_xml (dcp::Standard::INTEROP);
remove_all (out);
vector<path> inputs;
boost::filesystem::path const out = "build/test/combine_two_dcps_with_interop_ccaps_test";
shared_ptr<dcp::DCP> first = make_simple_with_smpte_ccaps ("build/test/combine_input1");
- first->write_xml (dcp::SMPTE);
+ first->write_xml (dcp::Standard::SMPTE);
shared_ptr<dcp::DCP> second = make_simple_with_smpte_ccaps ("build/test/combine_input2");
- second->write_xml (dcp::SMPTE);
+ second->write_xml (dcp::Standard::SMPTE);
remove_all (out);
vector<path> inputs;
boost::filesystem::path const out = "build/test/combine_two_multi_reel_dcps";
shared_ptr<dcp::DCP> first = make_simple ("build/test/combine_input1", 4);
- first->write_xml (dcp::SMPTE);
+ first->write_xml (dcp::Standard::SMPTE);
shared_ptr<dcp::DCP> second = make_simple ("build/test/combine_input2", 4);
- second->write_xml (dcp::SMPTE);
+ second->write_xml (dcp::Standard::SMPTE);
remove_all (out);
vector<path> inputs;
boost::filesystem::path const out = "build/test/combine_two_dcps_with_shared_asset";
shared_ptr<dcp::DCP> first = make_simple ("build/test/combine_input1", 1);
- first->write_xml (dcp::SMPTE);
+ first->write_xml (dcp::Standard::SMPTE);
remove_all ("build/test/combine_input2");
shared_ptr<dcp::DCP> second(new dcp::DCP("build/test/combine_input2"));
mxf_meta.company_name = "OpenDCP";
mxf_meta.product_version = "0.0.25";
- shared_ptr<dcp::CPL> cpl (new dcp::CPL("A Test DCP", dcp::FEATURE));
+ auto cpl = make_shared<dcp::CPL>("A Test DCP", dcp::ContentKind::TRAILER);
cpl->set_content_version (
dcp::ContentVersion("urn:uuid:75ac29aa-42ac-1234-ecae-49251abefd11","content-version-label-text")
);
-
- shared_ptr<dcp::ReelMonoPictureAsset> pic(new dcp::ReelMonoPictureAsset(simple_picture("build/test/combine_input2", ""), 0));
- shared_ptr<dcp::ReelSoundAsset> sound(new dcp::ReelSoundAsset(first->cpls().front()->reels().front()->main_sound()->asset(), 0));
- cpl->add (shared_ptr<dcp::Reel>(new dcp::Reel(pic, sound)));
+ cpl->set_main_sound_configuration ("L,C,R,Lfe,-,-");
+ 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(1440, 1080));
+ cpl->set_version_number(1);
+
+ auto pic = make_shared<dcp::ReelMonoPictureAsset>(simple_picture("build/test/combine_input2", ""), 0);
+ auto sound = make_shared<dcp::ReelSoundAsset>(first->cpls().front()->reels().front()->main_sound()->asset(), 0);
+ auto reel = make_shared<dcp::Reel>(pic, sound);
+ reel->add (simple_markers());
+ cpl->add (reel);
second->add (cpl);
- second->write_xml (dcp::SMPTE);
+ second->write_xml (dcp::Standard::SMPTE);
remove_all (out);
vector<path> inputs;