def dependencies(target, options):
- deps = [('libdcp', 'v1.10.17', {'c++17': build_with_cpp17(target)})]
+ deps = [('libdcp', 'v1.10.18', {'c++17': build_with_cpp17(target)})]
deps.append(('libsub', 'v1.6.53'))
deps.append(('leqm-nrt', '30dcaea1373ac62fba050e02ce5b0c1085797a23'))
deps.append(('rtaudio', 'f619b76'))
auto cpl = make_shared<dcp::CPL>(
film()->dcp_name(),
film()->dcp_content_type()->libdcp_kind(),
- film()->interop() ? dcp::Standard::INTEROP : dcp::Standard::SMPTE
+ film()->interop() ? dcp::Standard::INTEROP : dcp::Standard::SMPTE,
+ film()->limit_to_smpte_bv20() ? dcp::Profile::SMPTE_BV20 : dcp::Profile::SMPTE_BV21
);
dcp.add (cpl);
if (dcpomatic::film::is_vf(film())) {
group_id = dcp::make_uuid();
}
- dcp.write_xml(signer, !film()->limit_to_smpte_bv20(), Config::instance()->dcp_metadata_filename_format(), group_id);
+ dcp.write_xml(signer, Config::instance()->dcp_metadata_filename_format(), group_id);
LOG_GENERAL (
N_("Wrote %1 FULL, %2 FAKE, %3 REPEAT, %4 pushed to disk"), _full_written, _fake_written, _repeat_written, _pushed_to_disk
using std::shared_ptr;
+using std::string;
bool
}
+string
+constraints_profile(shared_ptr<const Film> film)
+{
+ auto cpl = dcp::file_to_string(find_file(film->dir(film->dcp_name()), "cpl_"));
+ cxml::Document xml("CompositionPlaylist");
+ xml.read_string(cpl);
+
+ auto reel_list = xml.node_child("ReelList");
+ if (!reel_list) {
+ return {};
+ }
+
+ auto reel = reel_list->node_child("Reel");
+ if (!reel) {
+ return {};
+ }
+
+ auto asset_list = reel->node_child("AssetList");
+ if (!asset_list) {
+ return {};
+ }
+
+ auto meta_asset = asset_list->node_child("CompositionMetadataAsset");
+ if (!meta_asset) {
+ return {};
+ }
+
+ auto extension = meta_asset->node_child("ExtensionMetadataList");
+ if (!extension) {
+ return {};
+ }
+
+ auto metadata = extension->node_child("ExtensionMetadata");
+ if (!metadata) {
+ return {};
+ }
+
+ auto property_list = metadata->node_child("PropertyList");
+ if (!property_list) {
+ return {};
+ }
+
+ auto property = property_list->node_child("Property");
+ if (!property) {
+ return {};
+ }
+
+ if (auto value = property->optional_string_child("Value")) {
+ return *value;
+ }
+
+ return {};
+}
+
+
BOOST_AUTO_TEST_CASE(bv21_extensions_used_when_not_limited)
{
auto picture = content_factory("test/data/flat_red.png");
BOOST_CHECK(has_cpl_mca_subdescriptors(film));
BOOST_CHECK(has_mxf_mca_subdescriptors(film));
+ BOOST_CHECK(constraints_profile(film) == "SMPTE-RDD-52:2020-Bv2.1");
+
}
BOOST_CHECK(!has_cpl_mca_subdescriptors(film));
BOOST_CHECK(!has_mxf_mca_subdescriptors(film));
+ BOOST_CHECK(constraints_profile(film) == "SMPTE-RDD-52:2020-Bv2.0");
}