Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Tetragramm
GitHub Repository: Tetragramm/opencv
Path: blob/master/3rdparty/libtiff/tif_predict.h
16337 views
1
/* $Id: tif_predict.h,v 1.9 2016-10-31 17:24:26 erouault Exp $ */
2
3
/*
4
* Copyright (c) 1995-1997 Sam Leffler
5
* Copyright (c) 1995-1997 Silicon Graphics, Inc.
6
*
7
* Permission to use, copy, modify, distribute, and sell this software and
8
* its documentation for any purpose is hereby granted without fee, provided
9
* that (i) the above copyright notices and this permission notice appear in
10
* all copies of the software and related documentation, and (ii) the names of
11
* Sam Leffler and Silicon Graphics may not be used in any advertising or
12
* publicity relating to the software without the specific, prior written
13
* permission of Sam Leffler and Silicon Graphics.
14
*
15
* THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
16
* EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
17
* WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
18
*
19
* IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
20
* ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
21
* OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
22
* WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
23
* LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
24
* OF THIS SOFTWARE.
25
*/
26
27
#ifndef _TIFFPREDICT_
28
#define _TIFFPREDICT_
29
/*
30
* ``Library-private'' Support for the Predictor Tag
31
*/
32
33
typedef int (*TIFFEncodeDecodeMethod)(TIFF* tif, uint8* buf, tmsize_t size);
34
35
/*
36
* Codecs that want to support the Predictor tag must place
37
* this structure first in their private state block so that
38
* the predictor code can cast tif_data to find its state.
39
*/
40
typedef struct {
41
int predictor; /* predictor tag value */
42
tmsize_t stride; /* sample stride over data */
43
tmsize_t rowsize; /* tile/strip row size */
44
45
TIFFCodeMethod encoderow; /* parent codec encode/decode row */
46
TIFFCodeMethod encodestrip; /* parent codec encode/decode strip */
47
TIFFCodeMethod encodetile; /* parent codec encode/decode tile */
48
TIFFEncodeDecodeMethod encodepfunc; /* horizontal differencer */
49
50
TIFFCodeMethod decoderow; /* parent codec encode/decode row */
51
TIFFCodeMethod decodestrip; /* parent codec encode/decode strip */
52
TIFFCodeMethod decodetile; /* parent codec encode/decode tile */
53
TIFFEncodeDecodeMethod decodepfunc; /* horizontal accumulator */
54
55
TIFFVGetMethod vgetparent; /* super-class method */
56
TIFFVSetMethod vsetparent; /* super-class method */
57
TIFFPrintMethod printdir; /* super-class method */
58
TIFFBoolMethod setupdecode; /* super-class method */
59
TIFFBoolMethod setupencode; /* super-class method */
60
} TIFFPredictorState;
61
62
#if defined(__cplusplus)
63
extern "C" {
64
#endif
65
extern int TIFFPredictorInit(TIFF*);
66
extern int TIFFPredictorCleanup(TIFF*);
67
#if defined(__cplusplus)
68
}
69
#endif
70
#endif /* _TIFFPREDICT_ */
71
72
/* vim: set ts=8 sts=8 sw=8 noet: */
73
/*
74
* Local Variables:
75
* mode: c
76
* c-basic-offset: 8
77
* fill-column: 78
78
* End:
79
*/
80
81