XZ Utils 5.2.7
|
Utility functions to handle lzma_block. More...
Functions | |
lzma_ret | lzma_block_compressed_size (lzma_block *block, lzma_vli unpadded_size) |
Validate and set Compressed Size according to Unpadded Size. More... | |
lzma_vli | lzma_block_unpadded_size (const lzma_block *block) |
Calculate Unpadded Size. More... | |
lzma_vli | lzma_block_total_size (const lzma_block *block) |
Calculate the total encoded size of a Block. More... | |
Utility functions to handle lzma_block.
lzma_ret lzma_block_compressed_size | ( | lzma_block * | block, |
lzma_vli | unpadded_size | ||
) |
Validate and set Compressed Size according to Unpadded Size.
Block Header stores Compressed Size, but Index has Unpadded Size. If the application has already parsed the Index and is now decoding Blocks, it can calculate Compressed Size from Unpadded Size. This function does exactly that with error checking:
References lzma_block_unpadded_size(), lzma_check_size(), LZMA_DATA_ERROR, and LZMA_PROG_ERROR.
lzma_vli lzma_block_unpadded_size | ( | const lzma_block * | block | ) |
Calculate Unpadded Size.
The Index field stores Unpadded Size and Uncompressed Size. The latter can be taken directly from the lzma_block structure after coding a Block, but Unpadded Size needs to be calculated from Block Header Size, Compressed Size, and size of the Check field. This is where this function is needed.
Referenced by lzma_block_compressed_size(), lzma_block_header_encode(), and lzma_block_total_size().
lzma_vli lzma_block_total_size | ( | const lzma_block * | block | ) |
Calculate the total encoded size of a Block.
This is equivalent to lzma_block_unpadded_size() except that the returned value includes the size of the Block Padding field.
References lzma_block_unpadded_size(), LZMA_VLI_UNKNOWN, and vli_ceil4().