From db8af2f03cc3c93b6a42b2e5ace53c169eddf5fd Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Mon, 28 Sep 2015 12:13:38 +0100 Subject: [PATCH] Round down when rebasing times. --- src/dcp_time.cc | 2 +- test/dcp_time_test.cc | 5 ++++- test/write_subtitle_test.cc | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/dcp_time.cc b/src/dcp_time.cc index 19ab2de1..3db449fb 100644 --- a/src/dcp_time.cc +++ b/src/dcp_time.cc @@ -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_); } diff --git a/test/dcp_time_test.cc b/test/dcp_time_test.cc index 926dd024..196efe17 100644 --- a/test/dcp_time_test.cc +++ b/test/dcp_time_test.cc @@ -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)); } diff --git a/test/write_subtitle_test.cc b/test/write_subtitle_test.cc index faf5cee2..8b50b0e3 100644 --- a/test/write_subtitle_test.cc +++ b/test/write_subtitle_test.cc @@ -91,7 +91,7 @@ BOOST_AUTO_TEST_CASE (write_subtitle_test) " \n" " \n" " \n" - " \n" + " \n" " What's going on\n" " \n" " \n" -- 2.30.2