diff options
| author | Carl Hetherington <cth@carlh.net> | 2013-04-10 11:28:19 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2013-04-10 11:28:19 +0100 |
| commit | 0806df40e8739b83945b62b61eaf4f18bbfa6320 (patch) | |
| tree | bb5d6a477679f97c3b68c05c7dc7d214bf08d772 | |
| parent | 38fdfb05aec760d44137b8ca09d6dcc2f9f4111f (diff) | |
Fix variable format ratio under crop (part of #113).
| -rw-r--r-- | src/lib/format.cc | 3 | ||||
| -rw-r--r-- | test/test.cc | 16 |
2 files changed, 10 insertions, 9 deletions
diff --git a/src/lib/format.cc b/src/lib/format.cc index 3ee11a132..faadcd797 100644 --- a/src/lib/format.cc +++ b/src/lib/format.cc @@ -230,7 +230,8 @@ VariableFormat::ratio_as_integer (shared_ptr<const Film> f) const float VariableFormat::ratio_as_float (shared_ptr<const Film> f) const { - return float (f->size().width) / f->size().height; + libdcp::Size const c = f->cropped_size (f->size ()); + return float (c.width) / c.height; } /** @return A name to be presented to the user */ diff --git a/test/test.cc b/test/test.cc index 6d6841a87..d1bb400f9 100644 --- a/test/test.cc +++ b/test/test.cc @@ -240,19 +240,19 @@ BOOST_AUTO_TEST_CASE (scaling_test) /* 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); - + BOOST_CHECK_EQUAL (format->dcp_padding (film), (1998 - 1440) / 2); /* This crops it to 1.291666667 */ -// f.set_left_crop (5); -// f.set_right_crop (5); - - + film->set_left_crop (5); + film->set_right_crop (5); + + /* We should now have enough padding that the result is 1.29166667, + which would be 1395 pixels. + */ + BOOST_CHECK_EQUAL (format->dcp_padding (film), rint ((1998 - 1395) / 2.0)); } BOOST_AUTO_TEST_CASE (util_test) |
