]>
Commit | Line | Data |
---|---|---|
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 | |
19 | extern "C" {\r | |
20 | #endif\r | |
21 | \r | |
22 | typedef 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 | |
32 | BROTLI_INTERNAL void BrotliInitBlockSplit(BlockSplit* self);\r | |
33 | BROTLI_INTERNAL void BrotliDestroyBlockSplit(MemoryManager* m,\r | |
34 | BlockSplit* self);\r | |
35 | \r | |
36 | BROTLI_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 |