diff options
| author | Carl Hetherington <cth@carlh.net> | 2014-10-06 20:37:40 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2014-10-06 20:37:40 +0100 |
| commit | f7b50fd54b249c294e686fc09d8bb33d2a992d42 (patch) | |
| tree | d10f46a74b34fde0a0659ba6a5d36264d3430b32 | |
| parent | 8afd7786c87b571118d1e098a730ab69b7b3908b (diff) | |
Fix heinous bug with conversion to libdcp::Time causing missing subtitles (and probably other problems).
| -rw-r--r-- | src/dcp_time.cc | 4 | ||||
| -rw-r--r-- | test/dcp_time_test.cc | 12 |
2 files changed, 14 insertions, 2 deletions
diff --git a/src/dcp_time.cc b/src/dcp_time.cc index d597e3dc..4c16a91a 100644 --- a/src/dcp_time.cc +++ b/src/dcp_time.cc @@ -59,12 +59,12 @@ Time::set (double ss) t = (int (round (ss * 1000)) % 1000) / 4; s = floor (ss); - if (s > 60) { + if (s >= 60) { m = s / 60; s -= m * 60; } - if (m > 60) { + if (m >= 60) { h = m / 60; m -= h * 60; } diff --git a/test/dcp_time_test.cc b/test/dcp_time_test.cc index 6892711e..a8256998 100644 --- a/test/dcp_time_test.cc +++ b/test/dcp_time_test.cc @@ -59,4 +59,16 @@ BOOST_AUTO_TEST_CASE (dcp_time) BOOST_CHECK_EQUAL (libdcp::Time (4128391203LL).to_ticks(), 4128391203LL); BOOST_CHECK_EQUAL (libdcp::Time (60000).to_ticks(), 60000); + + a = libdcp::Time (3600 * 24, 24); + BOOST_CHECK_EQUAL (a.h, 1); + BOOST_CHECK_EQUAL (a.m, 0); + BOOST_CHECK_EQUAL (a.s, 0); + BOOST_CHECK_EQUAL (a.t, 0); + + a = libdcp::Time (60 * 24, 24); + BOOST_CHECK_EQUAL (a.h, 0); + BOOST_CHECK_EQUAL (a.m, 1); + BOOST_CHECK_EQUAL (a.s, 0); + BOOST_CHECK_EQUAL (a.t, 0); } |
