diff options
author | Brad King <brad.king@kitware.com> | 2014-07-21 18:31:04 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2014-07-21 19:54:44 (GMT) |
commit | 133d42fe59e2f15610afaed287ef80ec4ff6f888 (patch) | |
tree | ea0831dc0601b3e91c3881d9f182c085ad4fffe2 /Utilities/cmliblzma/liblzma/api/lzma/delta.h | |
parent | 8510533f0e713abeedf53a737c702d683b636ecb (diff) | |
parent | c289e63491982dd8aed7c6b6f54d390df91aaf95 (diff) | |
download | CMake-133d42fe59e2f15610afaed287ef80ec4ff6f888.zip CMake-133d42fe59e2f15610afaed287ef80ec4ff6f888.tar.gz CMake-133d42fe59e2f15610afaed287ef80ec4ff6f888.tar.bz2 |
Merge branch 'liblzma-upstream' into add-liblzma
Diffstat (limited to 'Utilities/cmliblzma/liblzma/api/lzma/delta.h')
-rw-r--r-- | Utilities/cmliblzma/liblzma/api/lzma/delta.h | 77 |
1 files changed, 77 insertions, 0 deletions
diff --git a/Utilities/cmliblzma/liblzma/api/lzma/delta.h b/Utilities/cmliblzma/liblzma/api/lzma/delta.h new file mode 100644 index 0000000..592fc4f --- /dev/null +++ b/Utilities/cmliblzma/liblzma/api/lzma/delta.h @@ -0,0 +1,77 @@ +/** + * \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; |