summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2021-11-22 10:52:52 +0100
committerCarl Hetherington <cth@carlh.net>2021-11-22 20:48:20 +0100
commit7981ff2fe80ec88954e0f3eb4ff3c6e634c872f6 (patch)
tree2266509b3e21930eee4ea187762c5d1f97994558
parent13585513b41e9270566981b9155e8b447443ff84 (diff)
Don't import luminance of 0 from 2.14.x metadata files (part of #2130).
-rw-r--r--src/lib/film.cc4
m---------test/data0
-rw-r--r--test/film_metadata_test.cc14
3 files changed, 17 insertions, 1 deletions
diff --git a/src/lib/film.cc b/src/lib/film.cc
index 0d277b82a..64fc04f5d 100644
--- a/src/lib/film.cc
+++ b/src/lib/film.cc
@@ -753,7 +753,9 @@ Film::read_metadata (optional<boost::filesystem::path> path)
_ratings.push_back (dcp::Rating("", *rating));
}
if (auto mastered_luminance = isdcf->optional_number_child<float>("MasteredLuminance")) {
- _luminance = dcp::Luminance(*mastered_luminance, dcp::Luminance::Unit::FOOT_LAMBERT);
+ if (*mastered_luminance > 0) {
+ _luminance = dcp::Luminance(*mastered_luminance, dcp::Luminance::Unit::FOOT_LAMBERT);
+ }
}
_studio = isdcf->optional_string_child("Studio");
_facility = isdcf->optional_string_child("Facility");
diff --git a/test/data b/test/data
-Subproject a27d0404655bfb0a32cb0a8dfb4fce69d8118a2
+Subproject 49b6ee6d90d9fc543e829cbe9f071970965263a
diff --git a/test/film_metadata_test.cc b/test/film_metadata_test.cc
index feee58dc2..62cb5cf1d 100644
--- a/test/film_metadata_test.cc
+++ b/test/film_metadata_test.cc
@@ -160,3 +160,17 @@ BOOST_AUTO_TEST_CASE (metadata_loads_from_2_14_x_3)
BOOST_REQUIRE (film->luminance() == dcp::Luminance(14, dcp::Luminance::Unit::FOOT_LAMBERT));
}
+
+/** Check that an empty <MasteredLuminance> tag results in the film's luminance being unset */
+BOOST_AUTO_TEST_CASE (metadata_loads_from_2_14_x_4)
+{
+ namespace fs = boost::filesystem;
+ auto dir = fs::path("build/test/metadata_loads_from_2_14_x_4");
+ fs::remove_all(dir);
+ auto film = make_shared<Film>(dir);
+ fs::copy_file("test/data/2.14.x.metadata.4.xml", dir / "metadata.xml");
+ auto notes = film->read_metadata(dir / "metadata.xml");
+
+ BOOST_REQUIRE (!film->luminance());
+}
+