]> git.proxmox.com Git - mirror_edk2.git/blame - BaseTools/Source/C/BrotliCompress/enc/block_splitter.h
BaseTools: Update Brotli Compress to the latest one 1.0.6
[mirror_edk2.git] / BaseTools / Source / C / BrotliCompress / enc / block_splitter.h
CommitLineData
11b7501a
SB
1/* Copyright 2013 Google Inc. All Rights Reserved.\r
2\r
3 Distributed under MIT license.\r
4 See file LICENSE for detail or copy at https://opensource.org/licenses/MIT\r
5*/\r
6\r
7/* Block split point selection utilities. */\r
8\r
9#ifndef BROTLI_ENC_BLOCK_SPLITTER_H_\r
10#define BROTLI_ENC_BLOCK_SPLITTER_H_\r
11\r
dd4f667e
LG
12#include "../common/platform.h"\r
13#include <brotli/types.h>\r
11b7501a
SB
14#include "./command.h"\r
15#include "./memory.h"\r
11b7501a
SB
16#include "./quality.h"\r
17\r
18#if defined(__cplusplus) || defined(c_plusplus)\r
19extern "C" {\r
20#endif\r
21\r
22typedef struct BlockSplit {\r
23 size_t num_types; /* Amount of distinct types */\r
24 size_t num_blocks; /* Amount of values in types and length */\r
25 uint8_t* types;\r
26 uint32_t* lengths;\r
27\r
28 size_t types_alloc_size;\r
29 size_t lengths_alloc_size;\r
30} BlockSplit;\r
31\r
32BROTLI_INTERNAL void BrotliInitBlockSplit(BlockSplit* self);\r
33BROTLI_INTERNAL void BrotliDestroyBlockSplit(MemoryManager* m,\r
34 BlockSplit* self);\r
35\r
36BROTLI_INTERNAL void BrotliSplitBlock(MemoryManager* m,\r
37 const Command* cmds,\r
38 const size_t num_commands,\r
39 const uint8_t* data,\r
40 const size_t offset,\r
41 const size_t mask,\r
42 const BrotliEncoderParams* params,\r
43 BlockSplit* literal_split,\r
44 BlockSplit* insert_and_copy_split,\r
45 BlockSplit* dist_split);\r
46\r
47#if defined(__cplusplus) || defined(c_plusplus)\r
48} /* extern "C" */\r
49#endif\r
50\r
51#endif /* BROTLI_ENC_BLOCK_SPLITTER_H_ */\r