26#ifdef PIXARLOG_SUPPORT
104#define CODE_MASK 0x7ff
107static float LogK1, LogK2;
109#define REPEAT(n, op) { int i; i=n; do { i--; op; } while (i>0); }
115 register unsigned int cr, cg,
cb,
ca,
mask;
116 register float t0, t1, t2, t3;
121 t0 = ToLinearF[cr = (wp[0] &
mask)];
122 t1 = ToLinearF[cg = (wp[1] &
mask)];
123 t2 = ToLinearF[
cb = (wp[2] &
mask)];
132 t0 = ToLinearF[(cr += wp[0]) &
mask];
133 t1 = ToLinearF[(cg += wp[1]) &
mask];
134 t2 = ToLinearF[(
cb += wp[2]) &
mask];
140 t0 = ToLinearF[cr = (wp[0] &
mask)];
141 t1 = ToLinearF[cg = (wp[1] &
mask)];
142 t2 = ToLinearF[
cb = (wp[2] &
mask)];
143 t3 = ToLinearF[
ca = (wp[3] &
mask)];
153 t0 = ToLinearF[(cr += wp[0]) &
mask];
154 t1 = ToLinearF[(cg += wp[1]) &
mask];
155 t2 = ToLinearF[(
cb += wp[2]) &
mask];
156 t3 = ToLinearF[(
ca += wp[3]) &
mask];
178 register unsigned int cr, cg,
cb,
ca,
mask;
179 register float t0, t1, t2, t3;
181#define SCALE12 2048.0F
182#define CLAMP12(t) (((t) < 3071) ? (uint16) (t) : 3071)
187 t0 = ToLinearF[cr = (wp[0] &
mask)] * SCALE12;
188 t1 = ToLinearF[cg = (wp[1] &
mask)] * SCALE12;
189 t2 = ToLinearF[
cb = (wp[2] &
mask)] * SCALE12;
198 t0 = ToLinearF[(cr += wp[0]) &
mask] * SCALE12;
199 t1 = ToLinearF[(cg += wp[1]) &
mask] * SCALE12;
200 t2 = ToLinearF[(
cb += wp[2]) &
mask] * SCALE12;
206 t0 = ToLinearF[cr = (wp[0] &
mask)] * SCALE12;
207 t1 = ToLinearF[cg = (wp[1] &
mask)] * SCALE12;
208 t2 = ToLinearF[
cb = (wp[2] &
mask)] * SCALE12;
209 t3 = ToLinearF[
ca = (wp[3] &
mask)] * SCALE12;
219 t0 = ToLinearF[(cr += wp[0]) &
mask] * SCALE12;
220 t1 = ToLinearF[(cg += wp[1]) &
mask] * SCALE12;
221 t2 = ToLinearF[(
cb += wp[2]) &
mask] * SCALE12;
222 t3 = ToLinearF[(
ca += wp[3]) &
mask] * SCALE12;
230 *
op = CLAMP12(t0); wp++;
op++)
235 *
op = CLAMP12(t0); wp++;
op++)
246 register unsigned int cr, cg,
cb,
ca,
mask;
251 op[0] = ToLinear16[cr = (wp[0] &
mask)];
252 op[1] = ToLinear16[cg = (wp[1] &
mask)];
253 op[2] = ToLinear16[
cb = (wp[2] &
mask)];
259 op[0] = ToLinear16[(cr += wp[0]) &
mask];
260 op[1] = ToLinear16[(cg += wp[1]) &
mask];
261 op[2] = ToLinear16[(
cb += wp[2]) &
mask];
264 op[0] = ToLinear16[cr = (wp[0] &
mask)];
265 op[1] = ToLinear16[cg = (wp[1] &
mask)];
266 op[2] = ToLinear16[
cb = (wp[2] &
mask)];
267 op[3] = ToLinear16[
ca = (wp[3] &
mask)];
273 op[0] = ToLinear16[(cr += wp[0]) &
mask];
274 op[1] = ToLinear16[(cg += wp[1]) &
mask];
275 op[2] = ToLinear16[(
cb += wp[2]) &
mask];
276 op[3] = ToLinear16[(
ca += wp[3]) &
mask];
297 register unsigned int cr, cg,
cb,
ca,
mask;
302 op[0] = wp[0];
op[1] = wp[1];
op[2] = wp[2];
303 cr = wp[0]; cg = wp[1];
cb = wp[2];
314 op[0] = wp[0];
op[1] = wp[1];
315 op[2] = wp[2];
op[3] = wp[3];
316 cr = wp[0]; cg = wp[1];
cb = wp[2];
ca = wp[3];
341 unsigned char *ToLinear8)
343 register unsigned int cr, cg,
cb,
ca,
mask;
348 op[0] = ToLinear8[cr = (wp[0] &
mask)];
349 op[1] = ToLinear8[cg = (wp[1] &
mask)];
350 op[2] = ToLinear8[
cb = (wp[2] &
mask)];
356 op[0] = ToLinear8[(cr += wp[0]) &
mask];
357 op[1] = ToLinear8[(cg += wp[1]) &
mask];
358 op[2] = ToLinear8[(
cb += wp[2]) &
mask];
361 op[0] = ToLinear8[cr = (wp[0] &
mask)];
362 op[1] = ToLinear8[cg = (wp[1] &
mask)];
363 op[2] = ToLinear8[
cb = (wp[2] &
mask)];
364 op[3] = ToLinear8[
ca = (wp[3] &
mask)];
370 op[0] = ToLinear8[(cr += wp[0]) &
mask];
371 op[1] = ToLinear8[(cg += wp[1]) &
mask];
372 op[2] = ToLinear8[(
cb += wp[2]) &
mask];
373 op[3] = ToLinear8[(
ca += wp[3]) &
mask];
389horizontalAccumulate8abgr(
uint16 *wp,
int n,
int stride,
unsigned char *
op,
390 unsigned char *ToLinear8)
392 register unsigned int cr, cg,
cb,
ca,
mask;
393 register unsigned char t0, t1, t2, t3;
399 t1 = ToLinear8[
cb = (wp[2] &
mask)];
400 t2 = ToLinear8[cg = (wp[1] &
mask)];
401 t3 = ToLinear8[cr = (wp[0] &
mask)];
411 t1 = ToLinear8[(
cb += wp[2]) &
mask];
412 t2 = ToLinear8[(cg += wp[1]) &
mask];
413 t3 = ToLinear8[(cr += wp[0]) &
mask];
419 t0 = ToLinear8[
ca = (wp[3] &
mask)];
420 t1 = ToLinear8[
cb = (wp[2] &
mask)];
421 t2 = ToLinear8[cg = (wp[1] &
mask)];
422 t3 = ToLinear8[cr = (wp[0] &
mask)];
432 t0 = ToLinear8[(
ca += wp[3]) &
mask];
433 t1 = ToLinear8[(
cb += wp[2]) &
mask];
434 t2 = ToLinear8[(cg += wp[1]) &
mask];
435 t3 = ToLinear8[(cr += wp[0]) &
mask];
466#define PLSTATE_INIT 1
473 unsigned char *ToLinear8;
481PixarLogMakeTables(PixarLogState *
sp)
497 double b,
c, linstep,
v;
500 unsigned char *ToLinear8;
509 linstep =
b*
c*
exp(1.);
513 lt2size = (
int)(2./linstep) + 1;
517 ToLinearF = (
float *)
_TIFFmalloc(TSIZEP1 *
sizeof(
float));
519 ToLinear8 = (
unsigned char *)
_TIFFmalloc(TSIZEP1 *
sizeof(
unsigned char));
520 if (FromLT2 ==
NULL || From14 ==
NULL || From8 ==
NULL ||
521 ToLinearF ==
NULL || ToLinear16 ==
NULL || ToLinear8 ==
NULL) {
539 for (
i = 0;
i < nlin;
i++) {
544 for (
i = nlin;
i < TSIZE;
i++)
545 ToLinearF[
j++] = (
float)(
b*
exp(
c*
i));
547 ToLinearF[2048] = ToLinearF[2047];
549 for (
i = 0;
i < TSIZEP1;
i++) {
550 v = ToLinearF[
i]*65535.0 + 0.5;
551 ToLinear16[
i] = (
v > 65535.0) ? 65535 : (
uint16)
v;
552 v = ToLinearF[
i]*255.0 + 0.5;
553 ToLinear8[
i] = (
v > 255.0) ? 255 : (
unsigned char)
v;
557 for (
i = 0;
i < lt2size;
i++) {
558 if ((
i*linstep)*(
i*linstep) > ToLinearF[
j]*ToLinearF[
j+1])
569 for (
i = 0;
i < 16384;
i++) {
570 while ((
i/16383.)*(
i/16383.) > ToLinearF[
j]*ToLinearF[
j+1])
576 for (
i = 0;
i < 256;
i++) {
577 while ((
i/255.)*(
i/255.) > ToLinearF[
j]*ToLinearF[
j+1])
582 Fltsize = (
float)(lt2size/2);
584 sp->ToLinearF = ToLinearF;
585 sp->ToLinear16 = ToLinear16;
586 sp->ToLinear8 = ToLinear8;
587 sp->FromLT2 = FromLT2;
594#define DecoderState(tif) ((PixarLogState*) (tif)->tif_data)
595#define EncoderState(tif) ((PixarLogState*) (tif)->tif_data)
600#define PIXARLOGDATAFMT_UNKNOWN -1
605 int guess = PIXARLOGDATAFMT_UNKNOWN;
646 assert(m1 >= 0 && m2 >= 0);
648 if (m1 == 0 || m2 == 0)
657PixarLogFixupTags(
TIFF* tif)
664PixarLogSetupDecode(
TIFF* tif)
666 static const char module[] =
"PixarLogSetupDecode";
668 PixarLogState*
sp = DecoderState(tif);
677 if( (
sp->state & PLSTATE_INIT) != 0 )
692 tbuf_size = multiply_ms(multiply_ms(multiply_ms(
sp->stride, td->
td_imagewidth),
693 strip_height),
sizeof(
uint16));
695 tbuf_size = add_ms(tbuf_size,
sizeof(
uint16) *
sp->stride);
701 sp->tbuf_size = tbuf_size;
702 if (
sp->user_datafmt == PIXARLOGDATAFMT_UNKNOWN)
703 sp->user_datafmt = PixarLogGuessDataFmt(td);
704 if (
sp->user_datafmt == PIXARLOGDATAFMT_UNKNOWN) {
709 "PixarLog compression can't handle bits depth/data format combination (depth: %d)",
721 sp->state |= PLSTATE_INIT;
732 static const char module[] =
"PixarLogPreDecode";
733 PixarLogState*
sp = DecoderState(tif);
738 assert(
sizeof(
sp->stream.avail_in)==4);
754 static const char module[] =
"PixarLogDecode";
756 PixarLogState*
sp = DecoderState(tif);
762 switch (
sp->user_datafmt) {
764 nsamples = occ /
sizeof(
float);
769 nsamples = occ /
sizeof(
uint16);
777 "%d bit input not supported in PixarLog",
790 sp->stream.next_out = (
unsigned char *)
sp->tbuf;
791 assert(
sizeof(
sp->stream.avail_out)==4);
795 sp->stream.avail_out = (
uInt) (nsamples *
sizeof(
uint16));
796 if (
sp->stream.avail_out != nsamples *
sizeof(
uint16))
814 "Decoding error at scanline %lu, %s",
815 (
unsigned long) tif->
tif_row,
sp->stream.msg ?
sp->stream.msg :
"(null)");
820 sp->stream.msg ?
sp->stream.msg :
"(null)");
823 }
while (
sp->stream.avail_out > 0);
826 if (
sp->stream.avail_out != 0) {
846 if (nsamples % llen) {
848 "stride %lu is not a multiple of sample count, "
849 "%lu, data truncated.", (
unsigned long) llen, (
unsigned long) nsamples);
850 nsamples -= nsamples % llen;
853 for (
i = 0;
i < nsamples;
i += llen,
up += llen) {
854 switch (
sp->user_datafmt) {
856 horizontalAccumulateF(
up, llen,
sp->stride,
857 (
float *)
op,
sp->ToLinearF);
861 horizontalAccumulate16(
up, llen,
sp->stride,
866 horizontalAccumulate12(
up, llen,
sp->stride,
871 horizontalAccumulate11(
up, llen,
sp->stride,
876 horizontalAccumulate8(
up, llen,
sp->stride,
877 (
unsigned char *)
op,
sp->ToLinear8);
878 op += llen *
sizeof(
unsigned char);
881 horizontalAccumulate8abgr(
up, llen,
sp->stride,
882 (
unsigned char *)
op,
sp->ToLinear8);
883 op += llen *
sizeof(
unsigned char);
887 "Unsupported bits/sample: %d",
897PixarLogSetupEncode(
TIFF* tif)
899 static const char module[] =
"PixarLogSetupEncode";
901 PixarLogState*
sp = EncoderState(tif);
910 tbuf_size = multiply_ms(multiply_ms(multiply_ms(
sp->stride, td->
td_imagewidth),
917 if (
sp->user_datafmt == PIXARLOGDATAFMT_UNKNOWN)
918 sp->user_datafmt = PixarLogGuessDataFmt(td);
919 if (
sp->user_datafmt == PIXARLOGDATAFMT_UNKNOWN) {
928 sp->state |= PLSTATE_INIT;
939 static const char module[] =
"PixarLogPreEncode";
940 PixarLogState *
sp = EncoderState(tif);
945 assert(
sizeof(
sp->stream.avail_out)==4);
962 float fltsize = Fltsize;
964#define CLAMP(v) ( (v<(float)0.) ? 0 \
965 : (v<(float)2.) ? FromLT2[(int)(v*fltsize)] \
966 : (v>(float)24.2) ? 2047 \
967 : LogK1*log(v*LogK2) + 0.5 )
1013horizontalDifference16(
unsigned short *
ip,
int n,
int stride,
1014 unsigned short *wp,
uint16 *From14)
1020#define CLAMP(v) From14[(v) >> 2]
1036 }
else if (
stride == 4) {
1064horizontalDifference8(
unsigned char *
ip,
int n,
int stride,
1065 unsigned short *wp,
uint16 *From8)
1070#define CLAMP(v) (From8[(v)])
1086 }
else if (
stride == 4) {
1118 static const char module[] =
"PixarLogEncode";
1120 PixarLogState *
sp = EncoderState(tif);
1124 unsigned short *
up;
1128 switch (
sp->user_datafmt) {
1143 "%d bit input not supported in PixarLog",
1153 "Too many input bytes provided");
1157 for (
i = 0,
up =
sp->tbuf;
i <
n;
i += llen,
up += llen) {
1158 switch (
sp->user_datafmt) {
1160 horizontalDifferenceF((
float *)bp, llen,
1161 sp->stride,
up,
sp->FromLT2);
1162 bp += llen *
sizeof(
float);
1165 horizontalDifference16((
uint16 *)bp, llen,
1166 sp->stride,
up,
sp->From14);
1167 bp += llen *
sizeof(
uint16);
1170 horizontalDifference8((
unsigned char *)bp, llen,
1171 sp->stride,
up,
sp->From8);
1172 bp += llen *
sizeof(
unsigned char);
1176 "%d bit input not supported in PixarLog",
1182 sp->stream.next_in = (
unsigned char *)
sp->tbuf;
1183 assert(
sizeof(
sp->stream.avail_in)==4);
1191 "ZLib cannot deal with buffers this size");
1198 sp->stream.msg ?
sp->stream.msg :
"(null)");
1201 if (
sp->stream.avail_out == 0) {
1207 }
while (
sp->stream.avail_in > 0);
1217PixarLogPostEncode(
TIFF* tif)
1219 static const char module[] =
"PixarLogPostEncode";
1220 PixarLogState *
sp = EncoderState(tif);
1223 sp->stream.avail_in = 0;
1240 sp->stream.msg ?
sp->stream.msg :
"(null)");
1248PixarLogClose(
TIFF* tif)
1250 PixarLogState*
sp = (PixarLogState*) tif->
tif_data;
1263 if (
sp->state&PLSTATE_INIT) {
1278PixarLogCleanup(
TIFF* tif)
1280 PixarLogState*
sp = (PixarLogState*) tif->
tif_data;
1295 if (
sp->state&PLSTATE_INIT) {
1312 static const char module[] =
"PixarLogVSetField";
1313 PixarLogState *
sp = (PixarLogState *)tif->
tif_data;
1323 sp->stream.msg ?
sp->stream.msg :
"(null)");
1335 switch (
sp->user_datafmt) {
1374 PixarLogState *
sp = (PixarLogState *)tif->
tif_data;
1384 return (*
sp->vgetparent)(tif,
tag,
ap);
1389static const TIFFField pixarlogFields[] = {
1390 {
TIFFTAG_PIXARLOGDATAFMT, 0, 0,
TIFF_ANY, 0,
TIFF_SETGET_INT,
TIFF_SETGET_UNDEFINED,
FIELD_PSEUDO,
FALSE,
FALSE,
"",
NULL},
1391 {
TIFFTAG_PIXARLOGQUALITY, 0, 0,
TIFF_ANY, 0,
TIFF_SETGET_INT,
TIFF_SETGET_UNDEFINED,
FIELD_PSEUDO,
FALSE,
FALSE,
"",
NULL}
1397 static const char module[] =
"TIFFInitPixarLog";
1409 "Merging PixarLog codec-specific tags failed");
1422 sp->user_datafmt = PIXARLOGDATAFMT_UNKNOWN;
1460 PixarLogMakeTables(
sp);
1465 "No space for PixarLog state block");
#define REPEAT(statement)
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 *
GLboolean GLboolean GLboolean b
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint i
GLsizei GLenum const GLvoid GLsizei GLenum GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLint GLint GLint GLshort GLshort GLshort GLubyte GLubyte GLubyte GLuint GLuint GLuint GLushort GLushort GLushort GLbyte GLbyte GLbyte GLbyte GLdouble GLdouble GLdouble GLdouble GLfloat GLfloat GLfloat GLfloat GLint GLint GLint GLint GLshort GLshort GLshort GLshort GLubyte GLubyte GLubyte GLubyte GLuint GLuint GLuint GLuint GLushort GLushort GLushort GLushort GLboolean const GLdouble const GLfloat const GLint const GLshort const GLbyte const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLdouble const GLfloat const GLfloat const GLint const GLint const GLshort const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort const GLdouble const GLfloat const GLint const GLshort GLenum GLenum GLenum GLfloat GLenum GLint GLenum GLenum GLenum GLfloat GLenum GLenum GLint GLenum GLfloat GLenum GLint GLint GLushort GLenum GLenum GLfloat GLenum GLenum GLint GLfloat const GLubyte GLenum GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLint GLint GLsizei GLsizei GLint GLenum GLenum const GLvoid GLenum GLenum const GLfloat GLenum GLenum const GLint GLenum GLenum const GLdouble GLenum GLenum const GLfloat GLenum GLenum const GLint GLsizei GLuint GLfloat GLuint GLbitfield GLfloat GLint GLuint GLboolean GLenum GLfloat GLenum GLbitfield GLenum GLfloat GLfloat GLint GLint const GLfloat GLenum GLfloat GLfloat GLint GLint GLfloat GLfloat GLint GLint const GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat GLint GLfloat GLfloat const GLdouble const GLfloat const GLdouble const GLfloat GLint GLint GLint j
static const struct update_accum a1
static const struct update_accum a2
static CRYPT_DATA_BLOB b2[]
static CRYPT_DATA_BLOB b1[]
static HMODULE MODULEINFO DWORD cb
static float(__cdecl *square_half_float)(float x
#define inflateInit(strm)
#define deflateInit(strm, level)
uint16 td_samplesperpixel
TIFFCodeMethod tif_encodestrip
TIFFCodeMethod tif_encodetile
TIFFTagMethods tif_tagmethods
tmsize_t tif_scanlinesize
TIFFPreMethod tif_preencode
TIFFBoolMethod tif_fixuptags
TIFFPreMethod tif_predecode
TIFFCodeMethod tif_decodestrip
TIFFPostMethod tif_postdecode
TIFFCodeMethod tif_decoderow
TIFFBoolMethod tif_setupencode
TIFFBoolMethod tif_postencode
TIFFCodeMethod tif_encoderow
TIFFVoidMethod tif_cleanup
TIFFBoolMethod tif_setupdecode
TIFFCodeMethod tif_decodetile
tmsize_t _TIFFMultiplySSize(TIFF *tif, tmsize_t first, tmsize_t second, const char *where)
#define CLAMP(f, min, max)
void _TIFFSetDefaultCompressionState(TIFF *tif)
#define TIFF_UINT64_FORMAT
int TIFFSetField(TIFF *tif, uint32 tag,...)
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 _TIFFNoPostDecode(TIFF *tif, uint8 *buf, tmsize_t cc)
tmsize_t TIFFScanlineSize(TIFF *tif)
void TIFFSwabArrayOfShort(register uint16 *wp, tmsize_t n)
tmsize_t TIFFTileSize(TIFF *tif)
void _TIFFmemset(void *p, int v, tmsize_t c)
void * _TIFFmalloc(tmsize_t s)
void TIFFWarningExt(thandle_t fd, const char *module, const char *fmt,...)
int TIFFFlushData1(TIFF *tif)
#define TIFFTAG_BITSPERSAMPLE
#define COMPRESSION_PIXARLOG
#define PIXARLOGDATAFMT_8BITABGR
#define PIXARLOGDATAFMT_8BIT
#define SAMPLEFORMAT_UINT
#define PIXARLOGDATAFMT_16BIT
#define PIXARLOGDATAFMT_12BITPICIO
#define TIFFTAG_PIXARLOGDATAFMT
#define TIFFTAG_PIXARLOGQUALITY
#define SAMPLEFORMAT_IEEEFP
#define PIXARLOGDATAFMT_11BITLOG
#define TIFFTAG_SAMPLEFORMAT
#define PIXARLOGDATAFMT_FLOAT
#define SAMPLEFORMAT_VOID
#define PLANARCONFIG_CONTIG
int(* TIFFVSetMethod)(TIFF *, uint32, va_list)
#define TIFF_TMSIZE_T_MAX
#define TIFFArrayCount(a)
void int int ULONGLONG int va_list * ap