58#if !defined(Z_NO_COMPRESSION) || !defined(Z_DEFLATED)
59#error "Antiquated ZLIB software; you must use version 1.0 or later"
62#define SAFE_MSG(sp) ((sp)->stream.msg == NULL ? "" : (sp)->stream.msg)
73#define ZSTATE_INIT_DECODE 0x01
74#define ZSTATE_INIT_ENCODE 0x02
80#define ZState(tif) ((ZIPState*) (tif)->tif_data)
81#define DecoderState(tif) ZState(tif)
82#define EncoderState(tif) ZState(tif)
88ZIPFixupTags(
TIFF* tif)
95ZIPSetupDecode(
TIFF* tif)
97 static const char module[] =
"ZIPSetupDecode";
98 ZIPState*
sp = DecoderState(tif);
103 if (
sp->state & ZSTATE_INIT_ENCODE) {
111 if ((
sp->state & ZSTATE_INIT_DECODE) == 0 &&
116 sp->state |= ZSTATE_INIT_DECODE;
127 ZIPState*
sp = DecoderState(tif);
132 if( (
sp->state & ZSTATE_INIT_DECODE) == 0 )
136 assert(
sizeof(
sp->stream.avail_in)==4);
147 static const char module[] =
"ZIPDecode";
148 ZIPState*
sp = DecoderState(tif);
152 assert(
sp->state == ZSTATE_INIT_DECODE);
156 sp->stream.next_out =
op;
157 assert(
sizeof(
sp->stream.avail_out)==4);
164 uInt avail_out_before = (
uint64)occ < 0xFFFFFFFFU ? (
uInt) occ : 0xFFFFFFFFU;
165 sp->stream.avail_in = avail_in_before;
166 sp->stream.avail_out = avail_out_before;
168 tif->
tif_rawcc -= (avail_in_before -
sp->stream.avail_in);
169 occ -= (avail_out_before -
sp->stream.avail_out);
174 "Decoding error at scanline %lu, %s",
175 (
unsigned long) tif->
tif_row, SAFE_MSG(
sp));
180 "ZLib error: %s", SAFE_MSG(
sp));
197ZIPSetupEncode(
TIFF* tif)
199 static const char module[] =
"ZIPSetupEncode";
200 ZIPState*
sp = EncoderState(tif);
203 if (
sp->state & ZSTATE_INIT_DECODE) {
212 sp->state |= ZSTATE_INIT_ENCODE;
223 ZIPState *
sp = EncoderState(tif);
227 if(
sp->state != ZSTATE_INIT_ENCODE )
231 assert(
sizeof(
sp->stream.avail_out)==4);
245 static const char module[] =
"ZIPEncode";
246 ZIPState *
sp = EncoderState(tif);
249 assert(
sp->state == ZSTATE_INIT_ENCODE);
252 sp->stream.next_in = bp;
253 assert(
sizeof(
sp->stream.avail_in)==4);
259 sp->stream.avail_in = avail_in_before;
266 if (
sp->stream.avail_out == 0) {
272 cc -= (avail_in_before -
sp->stream.avail_in);
282ZIPPostEncode(
TIFF* tif)
284 static const char module[] =
"ZIPPostEncode";
285 ZIPState *
sp = EncoderState(tif);
288 sp->stream.avail_in = 0;
304 "ZLib error: %s", SAFE_MSG(
sp));
314 ZIPState*
sp = ZState(tif);
323 if (
sp->state & ZSTATE_INIT_ENCODE) {
326 }
else if(
sp->state & ZSTATE_INIT_DECODE) {
339 static const char module[] =
"ZIPVSetField";
340 ZIPState*
sp = ZState(tif);
345 if (
sp->state&ZSTATE_INIT_ENCODE ) {
355 return (*
sp->vsetparent)(tif,
tag,
ap);
363 ZIPState*
sp = ZState(tif);
370 return (*
sp->vgetparent)(tif,
tag,
ap);
376 {
TIFFTAG_ZIPQUALITY, 0, 0,
TIFF_ANY, 0,
TIFF_SETGET_INT,
TIFF_SETGET_UNDEFINED,
FIELD_PSEUDO,
TRUE,
FALSE,
"",
NULL },
382 static const char module[] =
"TIFFInitZIP";
393 "Merging Deflate codec-specific tags failed");
444 "No space for ZIP state block");
int ZEXPORT deflateReset(z_streamp strm)
int ZEXPORT deflateParams(z_streamp strm, int level, int strategy)
static int inflateReset(z_streamp strm)
int inflate(z_streamp strm, int flush)
int inflateEnd(z_streamp strm)
#define Z_DEFAULT_STRATEGY
int deflate(z_streamp strm, int flush) DECLSPEC_HIDDEN
int deflateEnd(z_streamp strm) DECLSPEC_HIDDEN
#define Z_DEFAULT_COMPRESSION
unsigned int(__cdecl typeof(jpeg_read_scanlines))(struct jpeg_decompress_struct *
#define inflateInit(strm)
#define deflateInit(strm, level)
TIFFCodeMethod tif_encodestrip
TIFFCodeMethod tif_encodetile
TIFFTagMethods tif_tagmethods
TIFFPreMethod tif_preencode
TIFFBoolMethod tif_fixuptags
TIFFPreMethod tif_predecode
TIFFCodeMethod tif_decodestrip
TIFFCodeMethod tif_decoderow
TIFFBoolMethod tif_setupencode
TIFFBoolMethod tif_postencode
TIFFCodeMethod tif_encoderow
TIFFVoidMethod tif_cleanup
TIFFBoolMethod tif_setupdecode
TIFFCodeMethod tif_decodetile
void _TIFFSetDefaultCompressionState(TIFF *tif)
#define TIFF_UINT64_FORMAT
int _TIFFMergeFields(TIFF *tif, const TIFFField info[], uint32 n)
void TIFFErrorExt(thandle_t fd, const char *module, const char *fmt,...)
int TIFFPredictorCleanup(TIFF *tif)
int TIFFPredictorInit(TIFF *tif)
void * _TIFFmalloc(tmsize_t s)
int TIFFFlushData1(TIFF *tif)
#define COMPRESSION_DEFLATE
#define COMPRESSION_ADOBE_DEFLATE
#define TIFFTAG_ZIPQUALITY
int(* TIFFVGetMethod)(TIFF *, uint32, va_list)
int(* TIFFVSetMethod)(TIFF *, uint32, va_list)
#define TIFFArrayCount(a)
void int int ULONGLONG int va_list * ap