summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2026-08-15 21:15:07 +0200
committerCarl Hetherington <cth@carlh.net>2026-08-15 21:24:43 +0200
commitc9669424b2e1b97d031c65947bcb32a900684e78 (patch)
treedc93a86a3f58d78bad0b50d9ad7d40002fa78de3
parent0b9a03150ea37772438a9d39cb2b9d1cdf2d91cd (diff)
Fix failure of cpl_summaries() to find Interop CPLs (DoM #3173).HEADv1.10.61main
-rw-r--r--src/dcp.cc5
-rw-r--r--test/cpl_summary_test.cc18
2 files changed, 19 insertions, 4 deletions
diff --git a/src/dcp.cc b/src/dcp.cc
index 23b4ad48..27e696ed 100644
--- a/src/dcp.cc
+++ b/src/dcp.cc
@@ -666,10 +666,7 @@ DCP::cpl_summaries() const
continue;
}
- if (
- pkl_type == remove_parameters(CPL::static_pkl_type(Standard::INTEROP)) ||
- pkl_type == remove_parameters(CPL::static_pkl_type(Standard::SMPTE))) {
-
+ if (remove_parameters(*pkl_type) == "text/xml") {
auto parser = new xmlpp::DomParser;
dcp::ScopeGuard sg = [parser]() { delete parser; };
diff --git a/test/cpl_summary_test.cc b/test/cpl_summary_test.cc
index 2f6ee839..bb1f62ba 100644
--- a/test/cpl_summary_test.cc
+++ b/test/cpl_summary_test.cc
@@ -113,3 +113,21 @@ BOOST_AUTO_TEST_CASE(cpl_summary_test3)
}
+BOOST_AUTO_TEST_CASE(cpl_summary_interop_test)
+{
+ auto const dir = boost::filesystem::path("test/ref/DCP/dcp_test7");
+ dcp::DCP dcp(dir);
+ auto cpls = dcp.cpl_summaries();
+ BOOST_REQUIRE_EQUAL(cpls.size(), 1U);
+
+ BOOST_CHECK_EQUAL(cpls[0].dcp_directory, dcp::filesystem::canonical(dir));
+ BOOST_CHECK_EQUAL(cpls[0].cpl_id, "6affb8ee-0020-4dff-a53c-17652f6358ab");
+ BOOST_REQUIRE_EQUAL(cpls[0].cpl_annotation_text.get_value_or(""), "A Test DCP");
+ BOOST_CHECK_EQUAL(
+ cpls[0].cpl_file,
+ dcp::filesystem::canonical(dir / "cpl_6affb8ee-0020-4dff-a53c-17652f6358ab.xml")
+ );
+ BOOST_CHECK(!cpls[0].encrypted);
+ BOOST_CHECK(cpls[0].last_write_time > 0);
+}
+