More informative error when failing to decode JPEG2000 files.
authorCarl Hetherington <cth@carlh.net>
Tue, 20 Jan 2015 11:27:34 +0000 (11:27 +0000)
committerCarl Hetherington <cth@carlh.net>
Tue, 20 Jan 2015 11:27:34 +0000 (11:27 +0000)
ChangeLog
src/lib/image_examiner.cc

index f205716b2c559c4a5add59187b6917ea3fb52a29..393e671476cebe2b70cc4e18e4fd2f32ed7a1c30 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2015-01-20  c.hetherington  <cth@carlh.net>
+
+       * More informative error when failing to decode
+       JPEG2000 files.
+
 2015-01-15  Carl Hetherington  <cth@carlh.net>
 
        * Version 2.0.34 released.
index e8db326c71b513e0389b7c55bb1a374fe79b8da3..6212875b1de0ed6f3b063e0f67acfa7e6338c613 100644 (file)
@@ -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());