Parolin 0.7.9 6796
Console (soon DLLs) to do a tar like job
Loading...
Searching...
No Matches
lzma_mf_s Struct Reference

#include <lz_encoder.h>

Data Fields

uint8_t * buffer
 Pointer to buffer with data to be compressed.
 
uint32_t size
 
uint32_t keep_size_before
 
uint32_t keep_size_after
 
uint32_t offset
 
uint32_t read_pos
 
uint32_t read_ahead
 
uint32_t read_limit
 
uint32_t write_pos
 
uint32_t pending
 
uint32_t(* find )(lzma_mf *mf, lzma_match *matches)
 
void(* skip )(lzma_mf *mf, uint32_t num)
 
uint32_t * hash
 
uint32_t * son
 
uint32_t cyclic_pos
 
uint32_t cyclic_size
 
uint32_t hash_mask
 
uint32_t depth
 Maximum number of loops in the match finder.
 
uint32_t nice_len
 Maximum length of a match that the match finder will try to find.
 
uint32_t match_len_max
 
lzma_action action
 
uint32_t hash_count
 Number of elements in hash[].
 
uint32_t sons_count
 Number of elements in son[].
 

Field Documentation

◆ action

lzma_action action

When running out of input, binary tree match finders need to know if it is due to flushing or finishing. The action is used also by the LZ-based encoders themselves.

◆ buffer

uint8_t * buffer

Pointer to buffer with data to be compressed.

◆ cyclic_pos

uint32_t cyclic_pos

◆ cyclic_size

uint32_t cyclic_size

◆ depth

uint32_t depth

Maximum number of loops in the match finder.

◆ find

uint32_t(* find)(lzma_mf *mf, lzma_match *matches)

Find matches. Returns the number of distance-length pairs written to the matches array. This is called only via lzma_mf_find().

◆ hash

uint32_t * hash

◆ hash_count

uint32_t hash_count

Number of elements in hash[].

◆ hash_mask

uint32_t hash_mask

◆ keep_size_after

uint32_t keep_size_after

Number of bytes that must be kept in buffer after read_pos. That is, read_pos <= write_pos - keep_size_after as long as action is LZMA_RUN; when action != LZMA_RUN, read_pos is allowed to reach write_pos so that the last bytes get encoded too.

◆ keep_size_before

uint32_t keep_size_before

Number of bytes that must be kept available in our input history. That is, once keep_size_before bytes have been processed, buffer[read_pos - keep_size_before] is the oldest byte that must be available for reading.

◆ match_len_max

uint32_t match_len_max

Maximum length of a match supported by the LZ-based encoder. If the longest match found by the match finder is nice_len, mf_find() tries to expand it up to match_len_max bytes.

◆ nice_len

uint32_t nice_len

Maximum length of a match that the match finder will try to find.

◆ offset

uint32_t offset

Match finders store locations of matches using 32-bit integers. To avoid adjusting several megabytes of integers every time the input window is moved with move_window, we only adjust the offset of the buffer. Thus, buffer[value_in_hash_table - offset] is the byte pointed by value_in_hash_table.

◆ pending

uint32_t pending

Number of bytes not hashed before read_pos. This is needed to restart the match finder after LZMA_SYNC_FLUSH.

◆ read_ahead

uint32_t read_ahead

Number of bytes that have been ran through the match finder, but which haven't been encoded by the LZ-based encoder yet.

◆ read_limit

uint32_t read_limit

As long as read_pos is less than read_limit, there is enough input available in buffer for at least one encoding loop.

Because of the stateful API, read_limit may and will get greater than read_pos quite often. This is taken into account when calculating the value for keep_size_after.

◆ read_pos

uint32_t read_pos

buffer[read_pos] is the next byte to run through the match finder. This is incremented in the match finder once the byte has been processed.

◆ size

uint32_t size

Total size of the allocated buffer (that is, including all the extra space)

◆ skip

void(* skip)(lzma_mf *mf, uint32_t num)

Skips num bytes. This is like find() but doesn't make the distance-length pairs available, thus being a little faster. This is called only via mf_skip().

◆ son

uint32_t * son

◆ sons_count

uint32_t sons_count

Number of elements in son[].

◆ write_pos

uint32_t write_pos

buffer[write_pos] is the first byte that doesn't contain valid uncompressed data; that is, the next input byte will be copied to buffer[write_pos].


The documentation for this struct was generated from the following files: