From 9db56a75e50701bb27ac0b3134a70d2be373ac52 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Thu, 24 Jun 2021 17:03:28 +0200 Subject: [PATCH] Fix incorrect issuer/creator in CPL files. --- cscript | 4 +-- src/lib/writer.cc | 3 +++ test/dcp_metadata_test.cc | 52 +++++++++++++++++++++++++++++++++++++++ test/wscript | 1 + 4 files changed, 58 insertions(+), 2 deletions(-) create mode 100644 test/dcp_metadata_test.cc 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 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 + + 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 . + +*/ + + +#include "lib/config.h" +#include "lib/content_factory.h" +#include "lib/film.h" +#include "test.h" +#include +#include +#include + + +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 -- 2.30.2