More informative errors when opj_start_compress fails.
authorCarl Hetherington <cth@carlh.net>
Mon, 13 Feb 2017 19:45:03 +0000 (19:45 +0000)
committerCarl Hetherington <cth@carlh.net>
Mon, 13 Feb 2017 19:45:03 +0000 (19:45 +0000)
cscript
src/j2k.cc

diff --git a/cscript b/cscript
index 2f5f6f76bb2c13f99aa53ae8a21eabaabdde8858..9be355e65016e7be0d5aeb49b444d022d841186f 100644 (file)
--- a/cscript
+++ b/cscript
@@ -37,7 +37,7 @@ def dependencies(target):
     if target.platform == 'windows' and target.version == 'xp':
         return (('libcxml', 'v0.15.4'), ('openjpeg-cdist',  '5d8bffd'), ('asdcplib-cth', 'v0.1.3'))
     else:
-        return (('libcxml', 'v0.15.4'), ('openjpeg2-cdist', '94bdab1'), ('asdcplib-cth', 'v0.1.3'))
+        return (('libcxml', 'v0.15.4'), ('openjpeg2-cdist', '8ea62cc'), ('asdcplib-cth', 'v0.1.3'))
 
 def build(target, options):
     cmd = './waf configure --disable-examples --prefix=%s' % target.directory
index 15f360c581a549777dab5687c67a2c454bed9a70..4a154574db331840dfb8b89986249ae1475c5f9c 100644 (file)
@@ -301,7 +301,12 @@ dcp::compress_j2k (shared_ptr<const OpenJPEGImage> xyz, int bandwidth, int frame
        opj_stream_set_user_data (stream, buffer, write_free_function);
 
        if (!opj_start_compress (encoder, xyz->opj_image(), stream)) {
-               throw MiscError ("could not start JPEG2000 encoding");
+               if ((errno & 0x61500) == 0x61500) {
+                       /* We've had one of the magic error codes from our patched openjpeg */
+                       throw MiscError (String::compose ("could not start JPEG2000 encoding (%1)", errno & 0xff));
+               } else {
+                       throw MiscError ("could not start JPEG2000 encoding");
+               }
        }
 
        if (!opj_encode (encoder, stream)) {