diff options
| author | Carl Hetherington <cth@carlh.net> | 2018-08-14 22:55:06 +0100 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2018-08-14 22:55:06 +0100 |
| commit | 39c880731c36cffd8310ea536509313de9f5fbd6 (patch) | |
| tree | 50ab708f34c1808255842679f24bf740d7b97fd7 /src/lib | |
| parent | bf9fee2e9e95b199aa35b005f980fcd3d345d613 (diff) | |
Give filename (where possible) when image file decoding fails.
Diffstat (limited to 'src/lib')
| -rw-r--r-- | src/lib/magick_image_proxy.cc | 7 | ||||
| -rw-r--r-- | src/lib/magick_image_proxy.h | 4 |
2 files changed, 10 insertions, 1 deletions
diff --git a/src/lib/magick_image_proxy.cc b/src/lib/magick_image_proxy.cc index b12a81db5..cd5749bb6 100644 --- a/src/lib/magick_image_proxy.cc +++ b/src/lib/magick_image_proxy.cc @@ -39,6 +39,7 @@ using boost::optional; using boost::dynamic_pointer_cast; MagickImageProxy::MagickImageProxy (boost::filesystem::path path) + : _path (path) { /* Read the file into a Blob */ @@ -101,7 +102,11 @@ MagickImageProxy::image (optional<dcp::NoteHandler>, optional<dcp::Size>) const /* If we failed both an auto-detect and a forced-Targa we give the error from the auto-detect. */ - throw DecodeError (String::compose (_("Could not decode image file (%1)"), error)); + if (_path) { + throw DecodeError (String::compose (_("Could not decode image file %1 (%2)"), _path->string(), error)); + } else { + throw DecodeError (String::compose (_("Could not decode image file (%1)"), error)); + } } unsigned char const * data = static_cast<unsigned char const *>(_blob.data()); diff --git a/src/lib/magick_image_proxy.h b/src/lib/magick_image_proxy.h index 7d2b69afe..62f3afa2e 100644 --- a/src/lib/magick_image_proxy.h +++ b/src/lib/magick_image_proxy.h @@ -42,6 +42,10 @@ public: private: Magick::Blob _blob; + /** Path of a file that this image came from, if applicable; stored so that + failed-decode errors can give more detail. + */ + boost::optional<boost::filesystem::path> _path; mutable boost::shared_ptr<Image> _image; mutable boost::mutex _mutex; }; |
