diff --git a/contrib/brunsli/c/dec/brunsli_decode.cc b/contrib/brunsli/c/dec/brunsli_decode.cc index 7fcbf4b..51ce92d 100644 --- a/contrib/brunsli/c/dec/brunsli_decode.cc +++ b/contrib/brunsli/c/dec/brunsli_decode.cc @@ -1394,12 +1394,13 @@ BrunsliStatus ProcessJpeg(State* state, JPEGData* jpg) { } // namespace internal BrunsliStatus BrunsliDecodeJpeg(const uint8_t* data, const size_t len, - JPEGData* jpg) { + JPEGData* jpg, bool use_brotli) { if (!data) return BRUNSLI_INVALID_PARAM; State state; state.data = data; state.len = len; + state.use_brotli = use_brotli; return internal::dec::ProcessJpeg(&state, jpg); } diff --git a/contrib/brunsli/c/dec/state.h b/contrib/brunsli/c/dec/state.h index 23ec7bb..f77a86e 100644 --- a/contrib/brunsli/c/dec/state.h +++ b/contrib/brunsli/c/dec/state.h @@ -81,6 +81,8 @@ struct State { bool shallow_histograms = false; size_t num_contexts = 0; size_t num_histograms = 0; + + bool use_brotli; }; // Use in "headerless" mode, after jpg is filled, but before decoding. diff --git a/contrib/brunsli/c/enc/brunsli_encode.cc b/contrib/brunsli/c/enc/brunsli_encode.cc index 52dc5d5..cd2c482 100644 --- a/contrib/brunsli/c/enc/brunsli_encode.cc +++ b/contrib/brunsli/c/enc/brunsli_encode.cc @@ -1371,8 +1371,10 @@ bool BrunsliSerialize(State* state, const JPEGData& jpg, uint32_t skip_sections, * * For "groups" workflow, few more stages are required, see comments. */ -bool BrunsliEncodeJpeg(const JPEGData& jpg, uint8_t* data, size_t* len) { +bool BrunsliEncodeJpeg(const JPEGData& jpg, uint8_t* data, size_t* len, bool use_brotli) { State state; + state.use_brotli = use_brotli; + std::vector& meta = state.meta; size_t num_components = jpg.components.size(); diff --git a/contrib/brunsli/c/enc/state.h b/contrib/brunsli/c/enc/state.h index 113c544..de3d3f9 100644 --- a/contrib/brunsli/c/enc/state.h +++ b/contrib/brunsli/c/enc/state.h @@ -136,6 +136,8 @@ struct State { std::vector meta; size_t num_contexts; + + bool use_brotli; }; // Encoder workflow: