From 7981ff2fe80ec88954e0f3eb4ff3c6e634c872f6 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Mon, 22 Nov 2021 10:52:52 +0100 Subject: [PATCH] Don't import luminance of 0 from 2.14.x metadata files (part of #2130). --- src/lib/film.cc | 4 +++- test/data | 2 +- test/film_metadata_test.cc | 14 ++++++++++++++ 3 files changed, 18 insertions(+), 2 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 path) _ratings.push_back (dcp::Rating("", *rating)); } if (auto mastered_luminance = isdcf->optional_number_child("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 index a27d04046..49b6ee6d9 160000 --- a/test/data +++ b/test/data @@ -1 +1 @@ -Subproject commit a27d0404655bfb0a32cb0a8dfb4fce69d8118a21 +Subproject commit 49b6ee6d90d9fc543e829cbe9f071970965263a0 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 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(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()); +} + -- 2.30.2