diff options
| author | Carl Hetherington <cth@carlh.net> | 2024-03-04 00:41:01 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2024-03-04 00:43:28 +0100 |
| commit | 17f8f22b07bd32d57edada0acde6fd9fffe3baf3 (patch) | |
| tree | e72a5dfd79b3040c38e33180226aba05f46a36f0 /src/lib/bitmap_text.h | |
| parent | 34bfe29024dd7926db8289781fa70c5e408263e5 (diff) | |
More correctly calculate bitmap subtitle scaling (#2670).2670-again
This was partially fixed before in
6ac468554c7fea0dfaefde85fb6cdd0fceaf5cad
The last try accounted for cropping, but not for cases where the
source video (after crop) does not precisely fit the DCP container.
In those cases the x scale for the subtitles could be different
to the y scale, squashing or stretching them.
Diffstat (limited to 'src/lib/bitmap_text.h')
| -rw-r--r-- | src/lib/bitmap_text.h | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/lib/bitmap_text.h b/src/lib/bitmap_text.h index 04cb61e3e..50f3f507a 100644 --- a/src/lib/bitmap_text.h +++ b/src/lib/bitmap_text.h @@ -23,6 +23,7 @@ #include "rect.h" +#include <dcp/types.h> #include <memory> @@ -31,11 +32,14 @@ class Image; class BitmapText { public: - BitmapText(std::shared_ptr<const Image> image_, dcpomatic::Rect<double> rectangle_) - : image(image_) + BitmapText(dcp::Size parent_size_, std::shared_ptr<const Image> image_, dcpomatic::Rect<double> rectangle_) + : parent_size(parent_size_) + , image(image_) , rectangle(rectangle_) {} + /** Size of the image that this subtitle has come from, with any crop already applied */ + dcp::Size parent_size; std::shared_ptr<const Image> image; /** Area that the subtitle covers on its corresponding video, expressed in * proportions of the image size; e.g. rectangle.x = 0.5 would mean that |
