summaryrefslogtreecommitdiff
path: root/src/lib/image_examiner.cc
diff options
context:
space:
mode:
authorCarl Hetherington <cth@carlh.net>2015-01-20 11:27:34 +0000
committerCarl Hetherington <cth@carlh.net>2015-01-20 11:27:34 +0000
commit636f38514b91b4e5bc85b78d61bd1d121e73b9cf (patch)
tree90de8b18a3cb595c5cfcff8d6667be79b1a4c7f1 /src/lib/image_examiner.cc
parentd926857355adf2b134fd8892b0a009ae90416e02 (diff)
More informative error when failing to decode JPEG2000 files.
Diffstat (limited to 'src/lib/image_examiner.cc')
-rw-r--r--src/lib/image_examiner.cc8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/lib/image_examiner.cc b/src/lib/image_examiner.cc
index e8db326c7..6212875b1 100644
--- a/src/lib/image_examiner.cc
+++ b/src/lib/image_examiner.cc
@@ -25,6 +25,7 @@
#include "config.h"
#include "cross.h"
#include <dcp/xyz_frame.h>
+#include <dcp/exceptions.h>
#include <Magick++.h>
#include <iostream>
@@ -53,7 +54,12 @@ ImageExaminer::ImageExaminer (shared_ptr<const Film> film, shared_ptr<const Imag
}
fread (buffer, 1, size, f);
fclose (f);
- _video_size = dcp::decompress_j2k (buffer, size, 0)->size ();
+ try {
+ _video_size = dcp::decompress_j2k (buffer, size, 0)->size ();
+ } catch (dcp::DCPReadError& e) {
+ delete[] buffer;
+ throw DecodeError (String::compose (_("Could not decode JPEG2000 file %1 (%2)"), path, e.what ()));
+ }
delete[] buffer;
} else {
Magick::Image* image = new Magick::Image (content->path(0).string());