diff --git a/src/J2KDecoder.hpp b/src/J2KDecoder.hpp index adecec9..575f0e3 100644 --- a/src/J2KDecoder.hpp +++ b/src/J2KDecoder.hpp @@ -120,9 +120,9 @@ class J2KDecoder { /// HTJ2K encoded bitstream into the encoded buffer before calling this /// method, see getEncodedBuffer() and getEncodedBytes() above. /// - void decode() { + const bool decode() { decodeLayer_ = 0; - decode_i(0); + return decode_i(0); } /// @@ -131,9 +131,9 @@ class J2KDecoder { /// buffer before calling this method, see getEncodedBuffer() and /// getEncodedBytes() above. /// - void decodeSubResolution(size_t decompositionLevel, size_t decodeLayer) { + const bool decodeSubResolution(size_t decompositionLevel, size_t decodeLayer) { decodeLayer_ = decodeLayer; - decode_i(decompositionLevel); + return decode_i(decompositionLevel); } /// @@ -218,7 +218,7 @@ class J2KDecoder { private: - void decode_i(size_t decompositionLevel) { + bool decode_i(size_t decompositionLevel) { opj_dparameters_t parameters; opj_codec_t* l_codec = NULL; opj_image_t* image = NULL; @@ -255,7 +255,7 @@ class J2KDecoder { printf("[ERROR] opj_decompress: failed to setup the decoder\n"); opj_stream_destroy(l_stream); opj_destroy_codec(l_codec); - return; + return false; } // disable strict mode so we can partially decode J2K streams opj_decoder_set_strict_mode(l_codec, OPJ_FALSE); @@ -266,7 +266,7 @@ class J2KDecoder { opj_stream_destroy(l_stream); opj_destroy_codec(l_codec); opj_image_destroy(image); - return; + return false; } /* decode the image */ @@ -275,7 +275,7 @@ class J2KDecoder { opj_destroy_codec(l_codec); opj_stream_destroy(l_stream); opj_image_destroy(image); - return; + return false; } frameInfo_.width = image->x1; @@ -367,6 +367,8 @@ class J2KDecoder { opj_stream_destroy(l_stream); opj_destroy_codec(l_codec); opj_image_destroy(image); + + return true; } std::vector encoded_;