# Use distro-provided FFmpeg on Arch
deps = []
- deps.append(('libdcp', '9f7980e15f14c0d5f6b59e53b9bf939e62df20c9'))
+ deps.append(('libdcp', '03609704034192ae157f6328024989eec58ac1c3'))
deps.append(('libsub', 'v1.6.44'))
deps.append(('leqm-nrt', '4560105773c66ac9216b62313a24093bb0a027ae'))
deps.append(('rtaudio', 'f619b76'))
boost::filesystem::path p (test_film_dir("4k_test"));
p /= film->dcp_name ();
- check_dcp ("test/data/4k_test", p.string());
+ /* This test is concerned with the image and its metadata, so we'll
+ * ignore any differences in sound between the DCP and the reference to
+ * avoid test failures for unrelated reasons.
+ */
+ check_dcp("test/data/4k_test", p.string(), true);
}
dcp::VerificationNote::Code::MISSING_CPL_METADATA
});
- check_dcp ("test/data/dcp_subtitle_test", film->dir(film->dcp_name()));
+ /* This test is concerned with the subtitles, so we'll ignore any
+ * differences in sound between the DCP and the reference to avoid test
+ * failures for unrelated reasons.
+ */
+ check_dcp("test/data/dcp_subtitle_test", film->dir(film->dcp_name()), true);
}
content->video->set_fade_in (1);
make_and_verify_dcp (film);
- check_dcp ("test/data/image_content_fade_test", film->dir(film->dcp_name()));
+ /* This test is concerned with the image, so we'll ignore any
+ * differences in sound between the DCP and the reference to avoid test
+ * failures for unrelated reasons.
+ */
+ check_dcp("test/data/image_content_fade_test", film->dir(film->dcp_name()), true);
}
check /= "black_fill_test";
check /= film->dcp_name();
- check_dcp (ref.string(), check.string());
+ /* This test is concerned with the image, so we'll ignore any
+ * differences in sound between the DCP and the reference to avoid test
+ * failures for unrelated reasons.
+ */
+ check_dcp(ref.string(), check.string(), true);
}
film->set_video_frame_rate (48);
make_and_verify_dcp (film);
- /* Should be 32 frames of red followed by 16 frames of black to fill the DCP up to 1 second */
- check_dcp ("test/data/repeat_frame_test", film->dir (film->dcp_name ()));
+ /* Should be 32 frames of red followed by 16 frames of black to fill the DCP up to 1 second;
+ * no need to check sound.
+ */
+ check_dcp("test/data/repeat_frame_test", film->dir(film->dcp_name()), true);
}
check /= "scaling_test";
check /= film->dcp_name();
- check_dcp (ref.string(), check.string());
+ /* This test is concerned with the image, so we'll ignore any
+ * differences in sound between the DCP and the reference to avoid test
+ * failures for unrelated reasons.
+ */
+ check_dcp(ref.string(), check.string(), true);
}
make_and_verify_dcp (film);
/* Should be white numbers on a black background counting up from 2 in steps of 2
- up to 300.
- */
- check_dcp ("test/data/skip_frame_test", film->dir (film->dcp_name ()));
+ * up to 300. The sound is irrelevant here.
+ */
+ check_dcp("test/data/skip_frame_test", film->dir(film->dcp_name()), true);
}
dcp::VerificationNote::Code::MISSING_CPL_METADATA
});
- /* Should be blank video with a subtitle MXF */
- check_dcp ("test/data/srt_subtitle_test2", film->dir (film->dcp_name ()));
+ /* Should be blank video with a subtitle MXF; sound is irrelevant */
+ check_dcp("test/data/srt_subtitle_test2", film->dir(film->dcp_name()), true);
}
dcp::VerificationNote::Code::MISSING_CPL_METADATA
});
- /* Should be blank video with MXF subtitles */
- check_dcp ("test/data/xml_subtitle_test", film->dir (film->dcp_name ()));
+ /* Should be blank video with MXF subtitles; sound is irrelevant */
+ check_dcp("test/data/xml_subtitle_test", film->dir(film->dcp_name()), true);
}
dcp::VerificationNote::Code::INVALID_SUBTITLE_SPACING,
});
- check_dcp ("test/data/srt_subtitle_test6", film->dir(film->dcp_name()));
+ /* This test is concerned with the subtitles, so we'll ignore any
+ * differences in sound between the DCP and the reference to avoid test
+ * failures for unrelated reasons.
+ */
+ check_dcp("test/data/srt_subtitle_test6", film->dir(film->dcp_name()), true);
}
dcp::VerificationNote::Code::MISSING_CPL_METADATA
});
- check_dcp (String::compose("test/data/%1", name), String::compose("build/test/%1/%2", name, film->dcp_name()));
+ /* This test is concerned with the subtitles, so we'll ignore any
+ * differences in sound between the DCP and the reference to avoid test
+ * failures for unrelated reasons.
+ */
+ check_dcp(String::compose("test/data/%1", name), String::compose("build/test/%1/%2", name, film->dcp_name()), true);
}
void
-check_dcp (boost::filesystem::path ref, boost::filesystem::path check)
+check_dcp(boost::filesystem::path ref, boost::filesystem::path check, bool sound_can_differ)
{
dcp::DCP ref_dcp (ref);
ref_dcp.read ();
options.asset_hashes_can_differ = true;
options.issue_dates_can_differ = true;
options.max_subtitle_vertical_position_error = 0.001;
+ options.sound_assets_can_differ = sound_can_differ;
BOOST_CHECK (ref_dcp.equals (check_dcp, options, boost::bind (note, _1, _2)));
}
extern bool wait_for_jobs ();
extern std::shared_ptr<Film> new_test_film (std::string);
extern std::shared_ptr<Film> new_test_film2 (std::string, std::vector<std::shared_ptr<Content>> content = {}, Cleanup* cleanup = nullptr);
-extern void check_dcp (boost::filesystem::path, boost::filesystem::path);
+extern void check_dcp(boost::filesystem::path, boost::filesystem::path, bool sound_can_differ = false);
extern void check_dcp (boost::filesystem::path, std::shared_ptr<const Film>);
extern void check_file (boost::filesystem::path ref, boost::filesystem::path check);
extern void check_text_file (boost::filesystem::path ref, boost::filesystem::path check);