--- a/src/j2k_transcode.cc 2022-05-17 10:07:44.525679224 +0200 +++ b/src/j2k_transcode.cc 2022-05-17 10:04:18.846330309 +0200 @@ -46,7 +46,7 @@ #include #include #include - +#include using std::min; using std::pow; @@ -315,10 +315,13 @@ parameters.max_comp_size = parameters.max_cs_size / 1.25; parameters.tcp_numlayers = 1; parameters.tcp_mct = 1; - parameters.numgbits = fourk ? 2 : 1; + string numgbits = "GUARD_BITS="; + numgbits.append(std::to_string(fourk ? 2 : 1)); + const char* extraopt[] { numgbits.data(), nullptr }; /* Setup the encoder parameters using the current image and user parameters */ opj_setup_encoder (encoder, ¶meters, xyz->opj_image()); + opj_encoder_set_extra_options(encoder, extraopt); auto stream = opj_stream_default_create (OPJ_FALSE); if (!stream) {