diff options
| author | Carl Hetherington <cth@carlh.net> | 2020-04-14 23:11:33 +0200 |
|---|---|---|
| committer | Carl Hetherington <cth@carlh.net> | 2020-04-14 23:11:33 +0200 |
| commit | f447a804d6e13306a0b959c7ee445c8a84fe1a84 (patch) | |
| tree | 19aacf8cd1a1e8f1c4ead7f6defb9f057588698a /src/j2k.cc | |
| parent | 4d6c8aaf0167cde3bb63e9014604243bdc47b1a1 (diff) | |
Add an explicit exception for J2K decompression failures.
Diffstat (limited to 'src/j2k.cc')
| -rw-r--r-- | src/j2k.cc | 14 |
1 files changed, 11 insertions, 3 deletions
@@ -90,8 +90,16 @@ read_free_function (void* data) delete reinterpret_cast<ReadBuffer*>(data); } + +static void +decompress_error_callback (char const * msg, void *) +{ + throw J2KDecompressionError (msg); +} + + static void -error_callback (char const * msg, void *) +compress_error_callback (char const * msg, void *) { throw MiscError (msg); } @@ -140,7 +148,7 @@ dcp::decompress_j2k (uint8_t* data, int64_t size, int reduce) throw MiscError ("could not create JPEG2000 stream"); } - opj_set_error_handler(decoder, error_callback, 00); + opj_set_error_handler(decoder, decompress_error_callback, 00); opj_stream_set_read_function (stream, read_function); ReadBuffer* buffer = new ReadBuffer (data, size); @@ -273,7 +281,7 @@ dcp::compress_j2k (shared_ptr<const OpenJPEGImage> xyz, int bandwidth, int frame throw MiscError ("could not create JPEG2000 encoder"); } - opj_set_error_handler (encoder, error_callback, 0); + opj_set_error_handler (encoder, compress_error_callback, 0); /* Set encoding parameters to default values */ opj_cparameters_t parameters; |
