summaryrefslogtreecommitdiff
path: root/src/wx/content_menu.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2024-02-21 10:47:38 +0100
committerCarl Hetherington <cth@carlh.net>2024-02-21 18:48:53 +0100
commit3ffd0163026be24e5373e0674c3301ed37546e44 (patch)
tree918e6de08fb1efff2098148295fa60a614102c8e /src/wx/content_menu.cc
parenta9b1c1cb65e1902a64430977cf698054e131a6f4 (diff)
Make DCPExaminer::size() optional and deal with the consequences.v2.16.78
This means we can fix the case of a VF having no known size in a nice way, in turn fixing problems caused by the fix to #2775.
Diffstat (limited to 'src/wx/content_menu.cc')
-rw-r--r--src/wx/content_menu.cc9
1 files changed, 5 insertions, 4 deletions
diff --git a/src/wx/content_menu.cc b/src/wx/content_menu.cc
index 700683bd2..4af5a71b7 100644
--- a/src/wx/content_menu.cc
+++ b/src/wx/content_menu.cc
@@ -548,12 +548,13 @@ ContentMenu::auto_crop ()
DCPOMATIC_ASSERT (film);
auto const content = _content.front();
auto const current_crop = content->video->actual_crop();
+ auto const video_size_guess = content->video->size().get_value_or(dcp::Size(1998, 1080));
_viewer.set_crop_guess(
dcpomatic::Rect<float>(
- static_cast<float>(std::max(0, crop.left - current_crop.left)) / content->video->size().width,
- static_cast<float>(std::max(0, crop.top - current_crop.top)) / content->video->size().height,
- 1.0f - (static_cast<float>(std::max(0, crop.left - current_crop.left + crop.right - current_crop.right)) / content->video->size().width),
- 1.0f - (static_cast<float>(std::max(0, crop.top - current_crop.top + crop.bottom - current_crop.bottom)) / content->video->size().height)
+ static_cast<float>(std::max(0, crop.left - current_crop.left)) / video_size_guess.width,
+ static_cast<float>(std::max(0, crop.top - current_crop.top)) / video_size_guess.height,
+ 1.0f - (static_cast<float>(std::max(0, crop.left - current_crop.left + crop.right - current_crop.right)) / video_size_guess.width),
+ 1.0f - (static_cast<float>(std::max(0, crop.top - current_crop.top + crop.bottom - current_crop.bottom)) / video_size_guess.height)
));
};