summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2013-04-10 11:28:19 +0100
committerCarl Hetherington <cth@carlh.net>2013-04-10 11:28:19 +0100
commit0806df40e8739b83945b62b61eaf4f18bbfa6320 (patch)
treebb5d6a477679f97c3b68c05c7dc7d214bf08d772
parent38fdfb05aec760d44137b8ca09d6dcc2f9f4111f (diff)
Fix variable format ratio under crop (part of #113).
-rw-r--r--src/lib/format.cc3
-rw-r--r--test/test.cc16
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)