src/liblzma/common/block_buffer_encoder.c File Reference

Single-call .xz Block encoder. More...

#include "block_encoder.h"
#include "filter_encoder.h"
#include "lzma2_encoder.h"
#include "check.h"

Defines

#define HEADERS_BOUND

Functions

static lzma_vli lzma2_bound (lzma_vli uncompressed_size)
 LZMA_API (size_t)
 Calculate maximum output buffer size for single-call encoding.
static lzma_ret block_encode_uncompressed (lzma_block *block, const uint8_t *in, size_t in_size, uint8_t *out, size_t *out_pos, size_t out_size)
static lzma_ret block_encode_normal (lzma_block *block, lzma_allocator *allocator, const uint8_t *in, size_t in_size, uint8_t *out, size_t *out_pos, size_t out_size)
 LZMA_API (lzma_ret)

Detailed Description

Single-call .xz Block encoder.


Define Documentation

#define HEADERS_BOUND
Value:
((1 + 1 + 2 * LZMA_VLI_BYTES_MAX + 3 + 4 \
                + LZMA_CHECK_SIZE_MAX + 3) & ~3)

Estimate the maximum size of the Block Header and Check fields for a Block that uses LZMA2 uncompressed chunks. We could use lzma_block_header_size() but this is simpler.

Block Header Size + Block Flags + Compressed Size + Uncompressed Size + Filter Flags for LZMA2 + CRC32 + Check and round up to the next multiple of four to take Header Padding into account.

Referenced by LZMA_API().


Function Documentation

LZMA_API ( size_t   ) 

Calculate maximum output buffer size for single-call encoding.

Calculate output buffer size for single-call Stream encoder.

This is equivalent to lzma_stream_buffer_bound() but for .xz Blocks. See the documentation of lzma_stream_buffer_bound().

References HEADERS_BOUND, and LZMA_VLI_C.


Generated on Tue Oct 6 14:02:22 2009 for XZ Utils by  doxygen 1.6.1