- /** @return Image (which must be aligned) */
- virtual boost::shared_ptr<Image> image (boost::optional<dcp::NoteHandler> note = boost::optional<dcp::NoteHandler> ()) const = 0;
+ /** @param log Log to write to, or 0.
+ * @param size Size that the returned image will be scaled to, in case this
+ * can be used as an optimisation.
+ * @return Image (which must be aligned) and log2 of any scaling down that has
+ * already been applied to the image; e.g. if the the image is already half the size
+ * of the original, the second part of the return value will be 1.
+ */
+ virtual std::pair<boost::shared_ptr<Image>, int> image (
+ boost::optional<dcp::Size> size = boost::optional<dcp::Size> ()
+ ) const = 0;
+