aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/python/Pillow/py3/libImaging/ZipCodecs.h
blob: 50218b6c69ac2ebce37050c845ae3ebde0853c91 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
/*
 * The Python Imaging Library.
 * $Id$
 *
 * declarations for the ZIP codecs
 *
 * Copyright (c) Fredrik Lundh 1996.
 */

#include "zlib.h"

/* modes */
#define ZIP_PNG 0            /* continuous, filtered image data */
#define ZIP_PNG_PALETTE 1    /* non-continuous data, disable filtering */
#define ZIP_TIFF_PREDICTOR 2 /* TIFF, with predictor */
#define ZIP_TIFF 3           /* TIFF, without predictor */

typedef struct {
    /* CONFIGURATION */

    /* Codec mode */
    int mode;

    /* Optimize (max compression) SLOW!!! */
    int optimize;

    /* 0 no compression, 9 best compression, -1 default compression */
    int compress_level;
    /* compression strategy Z_XXX */
    int compress_type;

    /* Predefined dictionary (experimental) */
    char *dictionary;
    int dictionary_size;

    /* PRIVATE CONTEXT (set by decoder/encoder) */

    z_stream z_stream; /* (de)compression stream */

    UINT8 *previous; /* previous line (allocated) */

    int last_output; /* # bytes last output by inflate */

    /* Compressor specific stuff */
    UINT8 *prior; /* filter storage (allocated) */
    UINT8 *up;
    UINT8 *average;
    UINT8 *paeth;

    UINT8 *output; /* output data */

    int prefix; /* size of filter prefix (0 for TIFF data) */

    int interlaced; /* is the image interlaced? (PNG) */

    int pass; /* current pass of the interlaced image (PNG) */

} ZIPSTATE;