diff options
| author | Carl Hetherington <cth@carlh.net> | 2013-04-10 11:08:07 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2013-04-10 11:08:07 +0100 |
| commit | 38fdfb05aec760d44137b8ca09d6dcc2f9f4111f (patch) | |
| tree | eb29bfe4a8d6b6fbfd348a60d4bce88cd6a020d6 | |
| parent | 2984694418c8d2e3cc5f7dd4e87c2cd17e8b47f2 (diff) | |
Fix rounding error when computing padding; add test.
| -rw-r--r-- | src/lib/format.cc | 2 | ||||
| -rw-r--r-- | test/test.cc | 26 |
2 files changed, 27 insertions, 1 deletions
diff --git a/src/lib/format.cc b/src/lib/format.cc index 0ca97303e..3ee11a132 100644 --- a/src/lib/format.cc +++ b/src/lib/format.cc @@ -199,7 +199,7 @@ FixedFormat::FixedFormat (int r, libdcp::Size dcp, string id, string n, string d int Format::dcp_padding (shared_ptr<const Film> f) const { - int p = rint ((_dcp_size.width - (_dcp_size.height * ratio_as_integer(f) / 100.0)) / 2.0); + int p = rint ((_dcp_size.width - (_dcp_size.height * ratio_as_float(f))) / 2.0); /* This comes out -ve for Scope; bodge it */ if (p < 0) { diff --git a/test/test.cc b/test/test.cc index 61e192058..6d6841a87 100644 --- a/test/test.cc +++ b/test/test.cc @@ -229,6 +229,32 @@ BOOST_AUTO_TEST_CASE (format_test) BOOST_CHECK_EQUAL (f->ratio_as_integer(shared_ptr<const Film> ()), 239); } +/* Test VariableFormat-based scaling of content */ +BOOST_AUTO_TEST_CASE (scaling_test) +{ + shared_ptr<Film> film (new Film (test_film_dir ("scaling_test").string(), false)); + + /* 4:3 ratio */ + film->set_size (libdcp::Size (320, 240)); + + /* This format should preserve aspect ratio of the source */ + Format const * format = Format::from_id ("var-185"); + + int const p = format->dcp_padding (film); + + /* We should have enough padding that the result is 4:3, + which would be 1440 pixels. + */ + BOOST_CHECK_EQUAL (p, (1998 - 1440) / 2); + + + /* This crops it to 1.291666667 */ +// f.set_left_crop (5); +// f.set_right_crop (5); + + +} + BOOST_AUTO_TEST_CASE (util_test) { string t = "Hello this is a string \"with quotes\" and indeed without them"; |
