diff options
| author | Carl Hetherington <cth@carlh.net> | 2024-02-21 10:47:38 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2024-02-21 18:48:53 +0100 |
| commit | 3ffd0163026be24e5373e0674c3301ed37546e44 (patch) | |
| tree | 918e6de08fb1efff2098148295fa60a614102c8e /src/wx/player_information.cc | |
| parent | a9b1c1cb65e1902a64430977cf698054e131a6f4 (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/player_information.cc')
| -rw-r--r-- | src/wx/player_information.cc | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/src/wx/player_information.cc b/src/wx/player_information.cc index 806611140..057d26740 100644 --- a/src/wx/player_information.cc +++ b/src/wx/player_information.cc @@ -161,7 +161,13 @@ PlayerInformation::triggered_update () DCPOMATIC_ASSERT (dcp->video); - checked_set (_dcp[r++], wxString::Format(_("Size: %dx%d"), dcp->video->size().width, dcp->video->size().height)); + auto const size = dcp->video->size(); + + if (size) { + checked_set(_dcp[r++], wxString::Format(_("Size: %dx%d"), size->width, size->height)); + } else { + checked_set(_dcp[r++], _("Size: unknown")); + } if (dcp->video_frame_rate()) { checked_set (_dcp[r++], wxString::Format(_("Frame rate: %d"), (int) lrint(*dcp->video_frame_rate()))); } @@ -186,14 +192,18 @@ PlayerInformation::triggered_update () checked_set (_dcp[r++], std_to_wx(len)); - auto decode = dcp->video->size(); + auto decode = size; auto reduction = _viewer.dcp_decode_reduction(); - if (reduction) { - decode.width /= pow(2, *reduction); - decode.height /= pow(2, *reduction); + if (reduction && decode) { + decode->width /= pow(2, *reduction); + decode->height /= pow(2, *reduction); } - checked_set (_decode_resolution, wxString::Format(_("Decode resolution: %dx%d"), decode.width, decode.height)); + if (decode) { + checked_set(_decode_resolution, wxString::Format(_("Decode resolution: %dx%d"), decode->width, decode->height)); + } else { + checked_set(_decode_resolution, _("Decode resolution: unknown")); + } DCPOMATIC_ASSERT(r <= dcp_lines); |
