static SquashStatus squash_brotli_decompress_buffer (SquashCodec* codec, size_t* decompressed_size, uint8_t decompressed[SQUASH_ARRAY_PARAM(*decompressed_size)], size_t compressed_size, const uint8_t compressed[SQUASH_ARRAY_PARAM(compressed_size)], SquashOptions* options) { const BrotliResult res = BrotliDecompressBuffer(compressed_size, compressed, decompressed_size, decompressed); return SQUASH_LIKELY(res == BROTLI_RESULT_SUCCESS) ? SQUASH_OK : squash_error (SQUASH_BUFFER_FULL); }
static SquashStatus squash_brotli_decompress_buffer (SquashCodec* codec, size_t* decompressed_length, uint8_t decompressed[SQUASH_ARRAY_PARAM(*decompressed_length)], size_t compressed_length, const uint8_t compressed[SQUASH_ARRAY_PARAM(compressed_length)], SquashOptions* options) { try { int res = BrotliDecompressBuffer (compressed_length, compressed, decompressed_length, decompressed); return (res == 1) ? SQUASH_OK : SQUASH_FAILED; } catch (const std::bad_alloc& e) { return SQUASH_MEMORY; } catch (...) { return SQUASH_FAILED; } }
int64_t lzbench_brotli_decompress(char *inbuf, size_t insize, char *outbuf, size_t outsize, size_t level, size_t, char*) { size_t actual_osize = outsize; return BrotliDecompressBuffer(insize, (const uint8_t*)inbuf, &actual_osize, (uint8_t*)outbuf) == 0 ? 0 : actual_osize; }