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:18 +0100 |
| commit | 5d2a839bf3018c63e781fd4a8661609f17039c7f (patch) | |
| tree | 90294a61fbb15a6e43a328f529e021b0d9343592 /src | |
| parent | beaca4f5785ff05dc78a17f531a04f80c4927367 (diff) | |
Give filename (where possible) when image file decoding fails.
Diffstat (limited to 'src')
| -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 df90c7723..668f40736 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; }; |
