Round down when rebasing times.
authorCarl Hetherington <cth@carlh.net>
Mon, 28 Sep 2015 11:13:38 +0000 (12:13 +0100)
committerCarl Hetherington <cth@carlh.net>
Mon, 28 Sep 2015 11:13:38 +0000 (12:13 +0100)
src/dcp_time.cc
test/dcp_time_test.cc
test/write_subtitle_test.cc

index 19ab2de105857c1414b5f486ea4823db9d078a31..3db449fb058a8a56f6c4800e72b79db3af72d671 100644 (file)
@@ -291,5 +291,5 @@ Time::as_seconds () const
 Time
 Time::rebase (int tcr_) const
 {
-       return Time (h, m, s, rint (float (e) * tcr_ / tcr), tcr_);
+       return Time (h, m, s, floor (float (e) * tcr_ / tcr), tcr_);
 }
index 926dd0242086077778b268e7916a4c5d995016ed..196efe172c9bf10ff19111dfa0a0c83bf26cb4e2 100644 (file)
@@ -93,5 +93,8 @@ BOOST_AUTO_TEST_CASE (dcp_time)
        a = dcp::Time (1, 58, 56, 2, 25);
        BOOST_CHECK_EQUAL (a.rebase (250), dcp::Time (1, 58, 56, 20, 250));
        b = dcp::Time (9, 12, 41, 17, 99);
-       BOOST_CHECK_EQUAL (b.rebase (250), dcp::Time (9, 12, 41, 43, 250));
+       BOOST_CHECK_EQUAL (b.rebase (250), dcp::Time (9, 12, 41, 42, 250));
+       /* We must round down in rebase() */
+       a = dcp::Time (0, 2, 57, 999, 1000);
+       BOOST_CHECK_EQUAL (a.rebase (250), dcp::Time (0, 2, 57, 249, 250));
 }
index faf5cee28b2f5fbbb481fa7dba8b1205859fd26f..8b50b0e3f0660fa7494ce8625956043a53aaf709 100644 (file)
@@ -91,7 +91,7 @@ BOOST_AUTO_TEST_CASE (write_subtitle_test)
                "    </Subtitle>\n"
                "  </Font>\n"
                "  <Font Italic=\"yes\" Color=\"FF800040\" Size=\"91\" Effect=\"border\" EffectColor=\"FF010203\" Script=\"normal\" Underlined=\"no\" Weight=\"normal\">\n"
-               "    <Subtitle SpotNumber=\"2\" TimeIn=\"05:41:00:219\" TimeOut=\"06:12:15:219\" FadeUpTime=\"930792\" FadeDownTime=\"4591834\">\n"
+               "    <Subtitle SpotNumber=\"2\" TimeIn=\"05:41:00:218\" TimeOut=\"06:12:15:218\" FadeUpTime=\"930792\" FadeDownTime=\"4591834\">\n"
                "      <Text VAlign=\"bottom\" VPosition=\"40\">What's going on</Text>\n"
                "    </Subtitle>\n"
                "  </Font>\n"