diff options
| author | Carl Hetherington <cth@carlh.net> | 2021-11-22 10:52:52 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2021-11-22 20:48:20 +0100 |
| commit | 7981ff2fe80ec88954e0f3eb4ff3c6e634c872f6 (patch) | |
| tree | 2266509b3e21930eee4ea187762c5d1f97994558 | |
| parent | 13585513b41e9270566981b9155e8b447443ff84 (diff) | |
Don't import luminance of 0 from 2.14.x metadata files (part of #2130).
| -rw-r--r-- | src/lib/film.cc | 4 | ||||
| m--------- | test/data | 0 | ||||
| -rw-r--r-- | test/film_metadata_test.cc | 14 |
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()); +} + |
