1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- /**
- * \file lzma/delta.h
- * \brief Delta filter
- */
- /*
- * Author: Lasse Collin
- *
- * This file has been put into the public domain.
- * You can do whatever you want with this file.
- *
- * See ../lzma.h for information about liblzma as a whole.
- */
- #ifndef LZMA_H_INTERNAL
- # error Never include this file directly. Use <lzma.h> instead.
- #endif
- /**
- * \brief Filter ID
- *
- * Filter ID of the Delta filter. This is used as lzma_filter.id.
- */
- #define LZMA_FILTER_DELTA LZMA_VLI_C(0x03)
- /**
- * \brief Type of the delta calculation
- *
- * Currently only byte-wise delta is supported. Other possible types could
- * be, for example, delta of 16/32/64-bit little/big endian integers, but
- * these are not currently planned since byte-wise delta is almost as good.
- */
- typedef enum {
- LZMA_DELTA_TYPE_BYTE
- } lzma_delta_type;
- /**
- * \brief Options for the Delta filter
- *
- * These options are needed by both encoder and decoder.
- */
- typedef struct {
- /** For now, this must always be LZMA_DELTA_TYPE_BYTE. */
- lzma_delta_type type;
- /**
- * \brief Delta distance
- *
- * With the only currently supported type, LZMA_DELTA_TYPE_BYTE,
- * the distance is as bytes.
- *
- * Examples:
- * - 16-bit stereo audio: distance = 4 bytes
- * - 24-bit RGB image data: distance = 3 bytes
- */
- uint32_t dist;
- # define LZMA_DELTA_DIST_MIN 1
- # define LZMA_DELTA_DIST_MAX 256
- /*
- * Reserved space to allow possible future extensions without
- * breaking the ABI. You should not touch these, because the names
- * of these variables may change. These are and will never be used
- * when type is LZMA_DELTA_TYPE_BYTE, so it is safe to leave these
- * uninitialized.
- */
- uint32_t reserved_int1;
- uint32_t reserved_int2;
- uint32_t reserved_int3;
- uint32_t reserved_int4;
- void *reserved_ptr1;
- void *reserved_ptr2;
- } lzma_options_delta;
|