Add a group ID to VF PKLs (#2943).
authorCarl Hetherington <cth@carlh.net>
Tue, 14 Jan 2025 10:24:22 +0000 (11:24 +0100)
committerCarl Hetherington <cth@carlh.net>
Wed, 15 Jan 2025 19:11:35 +0000 (20:11 +0100)
cscript
src/lib/writer.cc
test/vf_test.cc

diff --git a/cscript b/cscript
index f64d682168d8dd14aa4a856e97daf2951834d03a..1ece6ae78e7cb380ef8b90e248e3cef7cc007ce0 100644 (file)
--- a/cscript
+++ b/cscript
@@ -425,7 +425,7 @@ def make_spec(filename, version, target, options, requires=None):
     print('/usr/bin/gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :', file=f)
 
 def dependencies(target, options):
-    deps = [('libdcp', 'v1.10.4', {'c++17': target.platform.startswith('osx')})]
+    deps = [('libdcp', 'v1.10.6', {'c++17': target.platform.startswith('osx')})]
     deps.append(('libsub', 'v1.6.52'))
     deps.append(('leqm-nrt', '30dcaea1373ac62fba050e02ce5b0c1085797a23'))
     deps.append(('rtaudio', 'f619b76'))
index 3f5be531ef0eda2c66450302d58ea4c26619cd96..33e4b8f81b33358b73e64958d1a57fb953f97c10 100644 (file)
@@ -711,7 +711,11 @@ Writer::finish()
        dcp.set_creator(creator);
        dcp.set_annotation_text(film()->dcp_name());
 
-       dcp.write_xml(signer, !film()->limit_to_smpte_bv20(), Config::instance()->dcp_metadata_filename_format());
+       optional<string> group_id;
+       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);
 
        LOG_GENERAL (
                N_("Wrote %1 FULL, %2 FAKE, %3 REPEAT, %4 pushed to disk"), _full_written, _fake_written, _repeat_written, _pushed_to_disk
index 0313be1d99bdd729b61ebf52071723d925d88f2e..cda3cdee1479fafbfe8d357fe43bd7e875330e8f 100644 (file)
@@ -141,6 +141,8 @@ BOOST_AUTO_TEST_CASE (vf_test2)
        BOOST_REQUIRE (ov_c.cpls()[0]->reels()[0]->main_sound());
        string const sound_id = ov_c.cpls()[0]->reels()[0]->main_sound()->id();
        BOOST_REQUIRE (!ov_c.cpls()[0]->reels()[0]->main_subtitle());
+       BOOST_REQUIRE(!ov_c.pkls().empty());
+       BOOST_CHECK(!static_cast<bool>(ov_c.pkls()[0]->group_id()));
 
        dcp::DCP vf_c (vf->dir(vf->dcp_name()));
        vf_c.read ();
@@ -151,6 +153,8 @@ BOOST_AUTO_TEST_CASE (vf_test2)
        BOOST_REQUIRE (vf_c.cpls()[0]->reels()[0]->main_sound());
        BOOST_CHECK_EQUAL (vf_c.cpls()[0]->reels()[0]->main_sound()->id(), sound_id);
        BOOST_REQUIRE (vf_c.cpls()[0]->reels()[0]->main_subtitle());
+       BOOST_REQUIRE(!vf_c.pkls().empty());
+       BOOST_CHECK(static_cast<bool>(vf_c.pkls()[0]->group_id()));
 }