decode.h(3) | Introduction to Library Functions | decode.h(3) |
decode.h - API for Brotli decompression.
#define BROTLI_DECODER_ERROR_CODES_LIST(BROTLI_ERROR_CODE,
SEPARATOR)
Template that evaluates items of BrotliDecoderErrorCode.
#define BROTLI_LAST_ERROR_CODE
BROTLI_DECODER_ERROR_UNREACHABLE
The value of the last error code, negative integer.
typedef void(* brotli_decoder_metadata_chunk_func) (void
*opaque, const uint8_t *data, size_t size)
Callback to fire on metadata block chunk becomes available. typedef
void(* brotli_decoder_metadata_start_func) (void *opaque, size_t
size)
Callback to fire on metadata block start. typedef enum
BrotliDecoderParameter BrotliDecoderParameter
Options to be used with BrotliDecoderSetParameter.
typedef struct BrotliDecoderStateStruct
BrotliDecoderState
Opaque structure that holds decoder state.
BROTLI_BOOL BrotliDecoderAttachDictionary
(BrotliDecoderState *state, BrotliSharedDictionaryType type, size_t
data_size, const uint8_t data[data_size])
Adds LZ77 prefix dictionary, adds or replaces built-in static dictionary
and transforms. BrotliDecoderState *
BrotliDecoderCreateInstance (brotli_alloc_func alloc_func,
brotli_free_func free_func, void *opaque)
Creates an instance of BrotliDecoderState and initializes it.
BrotliDecoderResult BrotliDecoderDecompress
(size_t encoded_size, const uint8_t encoded_buffer[encoded_size], size_t
*decoded_size, uint8_t decoded_buffer[*decoded_size])
Performs one-shot memory-to-memory decompression.
BrotliDecoderResult BrotliDecoderDecompressStream
(BrotliDecoderState *state, size_t *available_in, const uint8_t
**next_in, size_t *available_out, uint8_t **next_out, size_t *total_out)
Decompresses the input stream to the output stream. void
BrotliDecoderDestroyInstance (BrotliDecoderState *state)
Deinitializes and frees BrotliDecoderState instance.
const char * BrotliDecoderErrorString
(BrotliDecoderErrorCode c)
Converts error code to a c-string. BrotliDecoderErrorCode
BrotliDecoderGetErrorCode (const BrotliDecoderState *state)
Acquires a detailed error code. BROTLI_BOOL
BrotliDecoderHasMoreOutput (const BrotliDecoderState *state)
Checks if decoder has more output. BROTLI_BOOL
BrotliDecoderIsFinished (const BrotliDecoderState *state)
Checks if decoder instance reached the final state. BROTLI_BOOL
BrotliDecoderIsUsed (const BrotliDecoderState *state)
Checks if instance has already consumed input. void
BrotliDecoderSetMetadataCallbacks (BrotliDecoderState *state,
brotli_decoder_metadata_start_func start_func,
brotli_decoder_metadata_chunk_func chunk_func, void *opaque)
Sets callback for receiving metadata blocks. BROTLI_BOOL
BrotliDecoderSetParameter (BrotliDecoderState *state,
BrotliDecoderParameter param, uint32_t value)
Sets the specified parameter to the given decoder instance. const
uint8_t * BrotliDecoderTakeOutput (BrotliDecoderState *state,
size_t *size)
Acquires pointer to internal output buffer. uint32_t
BrotliDecoderVersion (void)
Gets a decoder library version.
API for Brotli decompression.
Template that evaluates items of BrotliDecoderErrorCode. Example:
// Log Brotli error code. switch (brotliDecoderErrorCode) { #define CASE_(PREFIX, NAME, CODE) case BROTLI_DECODER ## PREFIX ## NAME: LOG(INFO) << "error code:" << #NAME; break; #define NEWLINE_ BROTLI_DECODER_ERROR_CODES_LIST(CASE_, NEWLINE_) #undef CASE_ #undef NEWLINE_
default: LOG(FATAL) << "unknown brotli error code"; }
The value of the last error code, negative integer. All other error code values are in the range from BROTLI_LAST_ERROR_CODE to -1. There are also 4 other possible non-error codes 0 .. 3 in BrotliDecoderErrorCode enumeration.
Callback to fire on metadata block chunk becomes available. This function can be invoked multiple times per metadata block; block should be considered finished when sum of size matches the announced metadata block size. Chunks contents pointed by data are transient and shouln not be accessed after leaving the callback.
Parameters:
Callback to fire on metadata block start. After this callback is fired, if size is not 0, it is followed by brotli_decoder_metadata_chunk_func as more metadata block contents become accessible.
Parameters:
Options to be used with BrotliDecoderSetParameter.
Opaque structure that holds decoder state. Allocated and initialized with BrotliDecoderCreateInstance. Cleaned up and deallocated with BrotliDecoderDestroyInstance.
Error code for detailed logging / production debugging. See BrotliDecoderGetErrorCode and BROTLI_LAST_ERROR_CODE.
Options to be used with BrotliDecoderSetParameter.
Enumerator
Result type for BrotliDecoderDecompress and BrotliDecoderDecompressStream functions.
Enumerator
Adds LZ77 prefix dictionary, adds or replaces built-in static dictionary and transforms. Attached dictionary ownership is not transferred. Data provided to this method should be kept accessible until decoding is finished and decoder instance is destroyed.
Note:
Parameters:
Returns:
BROTLI_TRUE if dictionary is accepted / attached
Creates an instance of BrotliDecoderState and initializes it. The instance can be used once for decoding and should then be destroyed with BrotliDecoderDestroyInstance, it cannot be reused for a new decoding session.
alloc_func and free_func MUST be both zero or both non-zero. In the case they are both zero, default memory allocators are used. opaque is passed to alloc_func and free_func when they are called. free_func has to return without doing anything when asked to free a NULL pointer.
Parameters:
Returns:
pointer to initialized BrotliDecoderState otherwise
Performs one-shot memory-to-memory decompression. Decompresses the data in encoded_buffer into decoded_buffer, and sets *decoded_size to the decompressed length.
Parameters:
Returns:
BROTLI_DECODER_RESULT_SUCCESS otherwise
Decompresses the input stream to the output stream. The values *available_in and *available_out must specify the number of bytes addressable at *next_in and *next_out respectively. When *available_out is 0, next_out is allowed to be NULL.
After each call, *available_in will be decremented by the amount of input bytes consumed, and the *next_in pointer will be incremented by that amount. Similarly, *available_out will be decremented by the amount of output bytes written, and the *next_out pointer will be incremented by that amount.
total_out, if it is not a null-pointer, will be set to the number of bytes decompressed since the last state initialization.
Note:
Parameters:
Returns:
BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT decoding is blocked until more input data is provided
BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT decoding is blocked until more output space is provided
BROTLI_DECODER_RESULT_SUCCESS decoding is finished, no more input might be consumed and no more output will be produced
Deinitializes and frees BrotliDecoderState instance.
Parameters:
Acquires a detailed error code. Should be used only after BrotliDecoderDecompressStream returns BROTLI_DECODER_RESULT_ERROR.
See also BrotliDecoderErrorString
Parameters:
Returns:
Checks if decoder has more output.
Parameters:
Returns:
BROTLI_FALSE otherwise
Checks if decoder instance reached the final state.
Parameters:
Returns:
BROTLI_FALSE otherwise
Checks if instance has already consumed input. Instance that returns BROTLI_FALSE is considered 'fresh' and could be reused.
Parameters:
Returns:
BROTLI_FALSE otherwise
Sets callback for receiving metadata blocks.
Parameters:
Sets the specified parameter to the given decoder instance.
Parameters:
Returns:
BROTLI_TRUE if value is accepted
Acquires pointer to internal output buffer. This method is used to make language bindings easier and more efficient:
Also this could be useful if there is an output stream that is able to consume all the provided data (e.g. when data is saved to file system).
Attention:
Note:
Parameters:
Returns:
Gets a decoder library version. Look at BROTLI_MAKE_HEX_VERSION for more information.
Generated automatically by Doxygen for Brotli from the source code.
August 2021 | Brotli |