- Copy Brotli algorithm 3rd party source code for tool Cc: Liming Gao <liming.gao@intel.com> Contributed-under: TianoCore Contribution Agreement 1.0 Signed-off-by: Bell Song <binx.song@intel.com> Reviewed-by: Liming Gao <liming.gao@intel.com>
		
			
				
	
	
		
			52 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			52 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* Copyright 2013 Google Inc. All Rights Reserved.
 | |
| 
 | |
|    Distributed under MIT license.
 | |
|    See file LICENSE for detail or copy at https://opensource.org/licenses/MIT
 | |
| */
 | |
| 
 | |
| /* Block split point selection utilities. */
 | |
| 
 | |
| #ifndef BROTLI_ENC_BLOCK_SPLITTER_H_
 | |
| #define BROTLI_ENC_BLOCK_SPLITTER_H_
 | |
| 
 | |
| #include "../common/types.h"
 | |
| #include "./command.h"
 | |
| #include "./memory.h"
 | |
| #include "./port.h"
 | |
| #include "./quality.h"
 | |
| 
 | |
| #if defined(__cplusplus) || defined(c_plusplus)
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| typedef struct BlockSplit {
 | |
|   size_t num_types;  /* Amount of distinct types */
 | |
|   size_t num_blocks;  /* Amount of values in types and length */
 | |
|   uint8_t* types;
 | |
|   uint32_t* lengths;
 | |
| 
 | |
|   size_t types_alloc_size;
 | |
|   size_t lengths_alloc_size;
 | |
| } BlockSplit;
 | |
| 
 | |
| BROTLI_INTERNAL void BrotliInitBlockSplit(BlockSplit* self);
 | |
| BROTLI_INTERNAL void BrotliDestroyBlockSplit(MemoryManager* m,
 | |
|                                              BlockSplit* self);
 | |
| 
 | |
| BROTLI_INTERNAL void BrotliSplitBlock(MemoryManager* m,
 | |
|                                       const Command* cmds,
 | |
|                                       const size_t num_commands,
 | |
|                                       const uint8_t* data,
 | |
|                                       const size_t offset,
 | |
|                                       const size_t mask,
 | |
|                                       const BrotliEncoderParams* params,
 | |
|                                       BlockSplit* literal_split,
 | |
|                                       BlockSplit* insert_and_copy_split,
 | |
|                                       BlockSplit* dist_split);
 | |
| 
 | |
| #if defined(__cplusplus) || defined(c_plusplus)
 | |
| }  /* extern "C" */
 | |
| #endif
 | |
| 
 | |
| #endif  /* BROTLI_ENC_BLOCK_SPLITTER_H_ */
 |