summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2021-06-24 17:03:28 +0200
committerCarl Hetherington <cth@carlh.net>2021-06-24 17:03:28 +0200
commit9db56a75e50701bb27ac0b3134a70d2be373ac52 (patch)
tree37ef0cf4c3dec6355b6997dceffc235de4bbad22
parent5523c5b7c0572616d9d76786d0140e6f7f3e7174 (diff)
Fix incorrect issuer/creator in CPL files.
-rw-r--r--cscript4
-rw-r--r--src/lib/writer.cc3
-rw-r--r--test/dcp_metadata_test.cc52
-rw-r--r--test/wscript1
4 files changed, 58 insertions, 2 deletions
diff --git a/cscript b/cscript
index db23eb728..8071d9df8 100644
--- a/cscript
+++ b/cscript
@@ -388,8 +388,8 @@ def dependencies(target, options):
# Use distro-provided FFmpeg on Arch
deps = []
- deps.append(('libdcp', 'bd4b476'))
- deps.append(('libsub', '791364b'))
+ deps.append(('libdcp', '97b4901'))
+ deps.append(('libsub', 'fa899ec'))
deps.append(('leqm-nrt', '93ae9e6'))
deps.append(('rtaudio', 'f619b76'))
# We get our OpenSSL libraries from the environment, but we
diff --git a/src/lib/writer.cc b/src/lib/writer.cc
index 3d8d9fe78..6b8076875 100644
--- a/src/lib/writer.cc
+++ b/src/lib/writer.cc
@@ -624,6 +624,9 @@ Writer::finish (boost::filesystem::path output_dcp)
issuer = String::compose("DCP-o-matic %1 %2", dcpomatic_version, dcpomatic_git_commit);
}
+ cpl->set_creator (creator);
+ cpl->set_issuer (issuer);
+
cpl->set_ratings (film()->ratings());
vector<dcp::ContentVersion> cv;
diff --git a/test/dcp_metadata_test.cc b/test/dcp_metadata_test.cc
new file mode 100644
index 000000000..67d170020
--- /dev/null
+++ b/test/dcp_metadata_test.cc
@@ -0,0 +1,52 @@
+/*
+ Copyright (C) 2021 Carl Hetherington <cth@carlh.net>
+
+ This file is part of DCP-o-matic.
+
+ DCP-o-matic is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2 of the License, or
+ (at your option) any later version.
+
+ DCP-o-matic is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with DCP-o-matic. If not, see <http://www.gnu.org/licenses/>.
+
+*/
+
+
+#include "lib/config.h"
+#include "lib/content_factory.h"
+#include "lib/film.h"
+#include "test.h"
+#include <dcp/cpl.h>
+#include <dcp/dcp.h>
+#include <boost/test/unit_test.hpp>
+
+
+BOOST_AUTO_TEST_CASE (dcp_metadata_test)
+{
+ auto content = content_factory("test/data/flat_red.png").front();
+ auto film = new_test_film2 ("dcp_metadata_test", { content });
+
+ Config::instance()->set_dcp_creator ("this is the creator");
+ Config::instance()->set_dcp_issuer ("this is the issuer");
+
+ make_and_verify_dcp (
+ film,
+ { dcp::VerificationNote::Code::MISSING_CPL_METADATA }
+ );
+
+ dcp::DCP dcp (film->dir(film->dcp_name()));
+ dcp.read ();
+ auto cpls = dcp.cpls();
+ BOOST_REQUIRE_EQUAL (cpls.size(), 1U);
+
+ BOOST_CHECK_EQUAL (cpls[0]->creator(), "this is the creator");
+ BOOST_CHECK_EQUAL (cpls[0]->issuer(), "this is the issuer");
+}
+
diff --git a/test/wscript b/test/wscript
index 5774ffebf..797e5eefa 100644
--- a/test/wscript
+++ b/test/wscript
@@ -65,6 +65,7 @@ def build(bld):
crypto_test.cc
dcpomatic_time_test.cc
dcp_decoder_test.cc
+ dcp_metadata_test.cc
dcp_playback_test.cc
dcp_subtitle_test.cc
digest_test.cc