comparison CSP2/CSP2_env/env-d9b9114564458d9d-741b3de822f2aaca6c6caa4325c4afce/include/lzma/delta.h @ 69:33d812a61356

planemo upload commit 2e9511a184a1ca667c7be0c6321a36dc4e3d116d
author jpayne
date Tue, 18 Mar 2025 17:55:14 -0400
parents
children
comparison
equal deleted inserted replaced
67:0e9998148a16 69:33d812a61356
1 /* SPDX-License-Identifier: 0BSD */
2
3 /**
4 * \file lzma/delta.h
5 * \brief Delta filter
6 * \note Never include this file directly. Use <lzma.h> instead.
7 */
8
9 /*
10 * Author: Lasse Collin
11 */
12
13 #ifndef LZMA_H_INTERNAL
14 # error Never include this file directly. Use <lzma.h> instead.
15 #endif
16
17
18 /**
19 * \brief Filter ID
20 *
21 * Filter ID of the Delta filter. This is used as lzma_filter.id.
22 */
23 #define LZMA_FILTER_DELTA LZMA_VLI_C(0x03)
24
25
26 /**
27 * \brief Type of the delta calculation
28 *
29 * Currently only byte-wise delta is supported. Other possible types could
30 * be, for example, delta of 16/32/64-bit little/big endian integers, but
31 * these are not currently planned since byte-wise delta is almost as good.
32 */
33 typedef enum {
34 LZMA_DELTA_TYPE_BYTE
35 } lzma_delta_type;
36
37
38 /**
39 * \brief Options for the Delta filter
40 *
41 * These options are needed by both encoder and decoder.
42 */
43 typedef struct {
44 /** For now, this must always be LZMA_DELTA_TYPE_BYTE. */
45 lzma_delta_type type;
46
47 /**
48 * \brief Delta distance
49 *
50 * With the only currently supported type, LZMA_DELTA_TYPE_BYTE,
51 * the distance is as bytes.
52 *
53 * Examples:
54 * - 16-bit stereo audio: distance = 4 bytes
55 * - 24-bit RGB image data: distance = 3 bytes
56 */
57 uint32_t dist;
58
59 /**
60 * \brief Minimum value for lzma_options_delta.dist.
61 */
62 # define LZMA_DELTA_DIST_MIN 1
63
64 /**
65 * \brief Maximum value for lzma_options_delta.dist.
66 */
67 # define LZMA_DELTA_DIST_MAX 256
68
69 /*
70 * Reserved space to allow possible future extensions without
71 * breaking the ABI. You should not touch these, because the names
72 * of these variables may change. These are and will never be used
73 * when type is LZMA_DELTA_TYPE_BYTE, so it is safe to leave these
74 * uninitialized.
75 */
76
77 /** \private Reserved member. */
78 uint32_t reserved_int1;
79
80 /** \private Reserved member. */
81 uint32_t reserved_int2;
82
83 /** \private Reserved member. */
84 uint32_t reserved_int3;
85
86 /** \private Reserved member. */
87 uint32_t reserved_int4;
88
89 /** \private Reserved member. */
90 void *reserved_ptr1;
91
92 /** \private Reserved member. */
93 void *reserved_ptr2;
94
95 } lzma_options_delta;