chromium/third_party/pdfium/third_party/libtiff/tiff.h

/*
 * Copyright (c) 1988-1997 Sam Leffler
 * Copyright (c) 1991-1997 Silicon Graphics, Inc.
 *
 * Permission to use, copy, modify, distribute, and sell this software and
 * its documentation for any purpose is hereby granted without fee, provided
 * that (i) the above copyright notices and this permission notice appear in
 * all copies of the software and related documentation, and (ii) the names of
 * Sam Leffler and Silicon Graphics may not be used in any advertising or
 * publicity relating to the software without the specific, prior written
 * permission of Sam Leffler and Silicon Graphics.
 *
 * THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND,
 * EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY
 * WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
 *
 * IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
 * ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
 * OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
 * WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF
 * LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE
 * OF THIS SOFTWARE.
 */

#ifndef _TIFF_
#define _TIFF_

#include "tiffconf.h"

/*
 * Tag Image File Format (TIFF)
 *
 * Based on Rev 6.0 from:
 *    Developer's Desk
 *    Aldus Corporation
 *    411 First Ave. South
 *    Suite 200
 *    Seattle, WA  98104
 *    206-622-5500
 *
 *    (http://partners.adobe.com/asn/developer/PDFS/TN/TIFF6.pdf)
 *
 * For BigTIFF design notes see the following links
 *    http://www.remotesensing.org/libtiff/bigtiffdesign.html
 *    http://www.awaresystems.be/imaging/tiff/bigtiff.html
 */

#define TIFF_VERSION_CLASSIC
#define TIFF_VERSION_BIG

#define TIFF_BIGENDIAN
#define TIFF_LITTLEENDIAN
#define MDI_LITTLEENDIAN
#define MDI_BIGENDIAN

/*
 * Intrinsic data types required by the file format:
 *
 * 8-bit quantities     int8_t/uint_8_t
 * 16-bit quantities    int16_t/uint_16_t
 * 32-bit quantities    int32_t/uint_32_t
 * 64-bit quantities    int64_t/uint_64_t
 * strings              unsigned char*
 */
#ifdef __GNUC__
#define TIFF_GCC_DEPRECATED
#else
#define TIFF_GCC_DEPRECATED
#endif
#ifdef _MSC_VER
#define TIFF_MSC_DEPRECATED
#else
#define TIFF_MSC_DEPRECATED
#endif

#ifndef TIFF_DISABLE_DEPRECATED
int8 TIFF_GCC_DEPRECATED;
uint8 TIFF_GCC_DEPRECATED;

int16 TIFF_GCC_DEPRECATED;
uint16 TIFF_GCC_DEPRECATED;

int32 TIFF_GCC_DEPRECATED;
uint32 TIFF_GCC_DEPRECATED;

int64 TIFF_GCC_DEPRECATED;
uint64 TIFF_GCC_DEPRECATED;
#endif /* TIFF_DISABLE_DEPRECATED */

/*
 * Some types as promoted in a variable argument list
 * We use uint16_vap rather then directly using int, because this way
 * we document the type we actually want to pass through, conceptually,
 * rather then confusing the issue by merely stating the type it gets
 * promoted to
 */

uint16_vap;

/*
 * TIFF header.
 */
TIFFHeaderCommon;
TIFFHeaderClassic;
TIFFHeaderBig;

/*
 * NB: In the comments below,
 *  - items marked with a + are obsoleted by revision 5.0,
 *  - items marked with a ! are introduced in revision 6.0.
 *  - items marked with a % are introduced post revision 6.0.
 *  - items marked with a $ are obsoleted by revision 6.0.
 *  - items marked with a & are introduced by Adobe DNG specification.
 */

/*
 * Tag data type information.
 *
 * Note: RATIONALs are the ratio of two 32-bit integer values.
 *--:
 * Note2: TIFF_IFD8 data type is used in tiffFields[]-tag definition in order to
 distinguish the write-handling of those tags between ClassicTIFF and BigTiff:
                  For ClassicTIFF libtiff writes a 32-bit value and the TIFF_IFD
 type-id into the file For BigTIFF     libtiff writes a 64-bit value and the
 TIFF_IFD8 type-id into the file
 */
TIFFDataType;

/*
 * TIFF Tag Definitions.
 */
/* clang-format off */   /* for better readability of tag comments */
#define TIFFTAG_SUBFILETYPE
#define FILETYPE_REDUCEDIMAGE
#define FILETYPE_PAGE
#define FILETYPE_MASK
#define TIFFTAG_OSUBFILETYPE
#define OFILETYPE_IMAGE
#define OFILETYPE_REDUCEDIMAGE
#define OFILETYPE_PAGE
#define TIFFTAG_IMAGEWIDTH
#define TIFFTAG_IMAGELENGTH
#define TIFFTAG_BITSPERSAMPLE
#define TIFFTAG_COMPRESSION
#define COMPRESSION_NONE
#define COMPRESSION_CCITTRLE
#define COMPRESSION_CCITTFAX3
#define COMPRESSION_CCITT_T4
#define COMPRESSION_CCITTFAX4
#define COMPRESSION_CCITT_T6
#define COMPRESSION_LZW
#define COMPRESSION_OJPEG
#define COMPRESSION_JPEG
#define COMPRESSION_T85
#define COMPRESSION_T43
#define COMPRESSION_NEXT
#define COMPRESSION_CCITTRLEW
#define COMPRESSION_PACKBITS
#define COMPRESSION_THUNDERSCAN
/* codes 32895-32898 are reserved for ANSI IT8 TIFF/IT <[email protected]) */
#define COMPRESSION_IT8CTPAD
#define COMPRESSION_IT8LW
#define COMPRESSION_IT8MP
#define COMPRESSION_IT8BL
/* compression codes 32908-32911 are reserved for Pixar */
#define COMPRESSION_PIXARFILM
#define COMPRESSION_PIXARLOG
#define COMPRESSION_DEFLATE
#define COMPRESSION_ADOBE_DEFLATE
/* compression code 32947 is reserved for Oceana Matrix <[email protected]> */
#define COMPRESSION_DCS
#define COMPRESSION_JBIG
#define COMPRESSION_SGILOG
#define COMPRESSION_SGILOG24
#define COMPRESSION_JP2000
#define COMPRESSION_LERC
/* compression codes 34887-34889 are reserved for ESRI */
#define COMPRESSION_LZMA
#define COMPRESSION_ZSTD
#define COMPRESSION_WEBP
#define COMPRESSION_JXL
#define TIFFTAG_PHOTOMETRIC
#define PHOTOMETRIC_MINISWHITE
#define PHOTOMETRIC_MINISBLACK
#define PHOTOMETRIC_RGB
#define PHOTOMETRIC_PALETTE
#define PHOTOMETRIC_MASK
#define PHOTOMETRIC_SEPARATED
#define PHOTOMETRIC_YCBCR
#define PHOTOMETRIC_CIELAB
#define PHOTOMETRIC_ICCLAB
#define PHOTOMETRIC_ITULAB
#define PHOTOMETRIC_CFA
#define PHOTOMETRIC_LOGL
#define PHOTOMETRIC_LOGLUV
#define TIFFTAG_THRESHHOLDING
#define THRESHHOLD_BILEVEL
#define THRESHHOLD_HALFTONE
#define THRESHHOLD_ERRORDIFFUSE
#define TIFFTAG_CELLWIDTH
#define TIFFTAG_CELLLENGTH
#define TIFFTAG_FILLORDER
#define FILLORDER_MSB2LSB
#define FILLORDER_LSB2MSB
#define TIFFTAG_DOCUMENTNAME
#define TIFFTAG_IMAGEDESCRIPTION
#define TIFFTAG_MAKE
#define TIFFTAG_MODEL
#define TIFFTAG_STRIPOFFSETS
#define TIFFTAG_ORIENTATION
#define ORIENTATION_TOPLEFT
#define ORIENTATION_TOPRIGHT
#define ORIENTATION_BOTRIGHT
#define ORIENTATION_BOTLEFT
#define ORIENTATION_LEFTTOP
#define ORIENTATION_RIGHTTOP
#define ORIENTATION_RIGHTBOT
#define ORIENTATION_LEFTBOT
#define TIFFTAG_SAMPLESPERPIXEL
#define TIFFTAG_ROWSPERSTRIP
#define TIFFTAG_STRIPBYTECOUNTS
#define TIFFTAG_MINSAMPLEVALUE
#define TIFFTAG_MAXSAMPLEVALUE
#define TIFFTAG_XRESOLUTION
#define TIFFTAG_YRESOLUTION
#define TIFFTAG_PLANARCONFIG
#define PLANARCONFIG_CONTIG
#define PLANARCONFIG_SEPARATE
#define TIFFTAG_PAGENAME
#define TIFFTAG_XPOSITION
#define TIFFTAG_YPOSITION
#define TIFFTAG_FREEOFFSETS
#define TIFFTAG_FREEBYTECOUNTS
#define TIFFTAG_GRAYRESPONSEUNIT
#define GRAYRESPONSEUNIT_10S
#define GRAYRESPONSEUNIT_100S
#define GRAYRESPONSEUNIT_1000S
#define GRAYRESPONSEUNIT_10000S
#define GRAYRESPONSEUNIT_100000S
#define TIFFTAG_GRAYRESPONSECURVE
#define TIFFTAG_GROUP3OPTIONS
#define TIFFTAG_T4OPTIONS
#define GROUP3OPT_2DENCODING
#define GROUP3OPT_UNCOMPRESSED
#define GROUP3OPT_FILLBITS
#define TIFFTAG_GROUP4OPTIONS
#define TIFFTAG_T6OPTIONS
#define GROUP4OPT_UNCOMPRESSED
#define TIFFTAG_RESOLUTIONUNIT
#define RESUNIT_NONE
#define RESUNIT_INCH
#define RESUNIT_CENTIMETER
#define TIFFTAG_PAGENUMBER
#define TIFFTAG_COLORRESPONSEUNIT
#define COLORRESPONSEUNIT_10S
#define COLORRESPONSEUNIT_100S
#define COLORRESPONSEUNIT_1000S
#define COLORRESPONSEUNIT_10000S
#define COLORRESPONSEUNIT_100000S
#define TIFFTAG_TRANSFERFUNCTION
#define TIFFTAG_SOFTWARE
#define TIFFTAG_DATETIME
#define TIFFTAG_ARTIST
#define TIFFTAG_HOSTCOMPUTER
#define TIFFTAG_PREDICTOR
#define PREDICTOR_NONE
#define PREDICTOR_HORIZONTAL
#define PREDICTOR_FLOATINGPOINT
#define TIFFTAG_WHITEPOINT
#define TIFFTAG_PRIMARYCHROMATICITIES
#define TIFFTAG_COLORMAP
#define TIFFTAG_HALFTONEHINTS
#define TIFFTAG_TILEWIDTH
#define TIFFTAG_TILELENGTH
#define TIFFTAG_TILEOFFSETS
#define TIFFTAG_TILEBYTECOUNTS
#define TIFFTAG_BADFAXLINES
#define TIFFTAG_CLEANFAXDATA
#define CLEANFAXDATA_CLEAN
#define CLEANFAXDATA_REGENERATED
#define CLEANFAXDATA_UNCLEAN
#define TIFFTAG_CONSECUTIVEBADFAXLINES
#define TIFFTAG_SUBIFD
#define TIFFTAG_INKSET
#define INKSET_CMYK
#define INKSET_MULTIINK
#define TIFFTAG_INKNAMES
#define TIFFTAG_NUMBEROFINKS
#define TIFFTAG_DOTRANGE
#define TIFFTAG_TARGETPRINTER
#define TIFFTAG_EXTRASAMPLES
#define EXTRASAMPLE_UNSPECIFIED
#define EXTRASAMPLE_ASSOCALPHA
#define EXTRASAMPLE_UNASSALPHA
#define TIFFTAG_SAMPLEFORMAT
#define SAMPLEFORMAT_UINT
#define SAMPLEFORMAT_INT
#define SAMPLEFORMAT_IEEEFP
#define SAMPLEFORMAT_VOID
#define SAMPLEFORMAT_COMPLEXINT
#define SAMPLEFORMAT_COMPLEXIEEEFP
#define TIFFTAG_SMINSAMPLEVALUE
#define TIFFTAG_SMAXSAMPLEVALUE
#define TIFFTAG_CLIPPATH
#define TIFFTAG_XCLIPPATHUNITS
#define TIFFTAG_YCLIPPATHUNITS
#define TIFFTAG_INDEXED
#define TIFFTAG_JPEGTABLES
#define TIFFTAG_OPIPROXY
/* Tags 400-435 are from the TIFF/FX spec */
#define TIFFTAG_GLOBALPARAMETERSIFD
#define TIFFTAG_PROFILETYPE
#define PROFILETYPE_UNSPECIFIED
#define PROFILETYPE_G3_FAX
#define TIFFTAG_FAXPROFILE
#define FAXPROFILE_S
#define FAXPROFILE_F
#define FAXPROFILE_J
#define FAXPROFILE_C
#define FAXPROFILE_L
#define FAXPROFILE_M
#define TIFFTAG_CODINGMETHODS
#define CODINGMETHODS_T4_1D
#define CODINGMETHODS_T4_2D
#define CODINGMETHODS_T6
#define CODINGMETHODS_T85
#define CODINGMETHODS_T42
#define CODINGMETHODS_T43
#define TIFFTAG_VERSIONYEAR
#define TIFFTAG_MODENUMBER
#define TIFFTAG_DECODE
#define TIFFTAG_IMAGEBASECOLOR
#define TIFFTAG_T82OPTIONS
/*
 * Tags 512-521 are obsoleted by Technical Note #2 which specifies a
 * revised JPEG-in-TIFF scheme.
 */
#define TIFFTAG_JPEGPROC
#define JPEGPROC_BASELINE
#define JPEGPROC_LOSSLESS
#define TIFFTAG_JPEGIFOFFSET
#define TIFFTAG_JPEGIFBYTECOUNT
#define TIFFTAG_JPEGRESTARTINTERVAL
#define TIFFTAG_JPEGLOSSLESSPREDICTORS
#define TIFFTAG_JPEGPOINTTRANSFORM
#define TIFFTAG_JPEGQTABLES
#define TIFFTAG_JPEGDCTABLES
#define TIFFTAG_JPEGACTABLES
#define TIFFTAG_YCBCRCOEFFICIENTS
#define TIFFTAG_YCBCRSUBSAMPLING
#define TIFFTAG_YCBCRPOSITIONING
#define YCBCRPOSITION_CENTERED
#define YCBCRPOSITION_COSITED
#define TIFFTAG_REFERENCEBLACKWHITE
#define TIFFTAG_STRIPROWCOUNTS
#define TIFFTAG_XMLPACKET
#define TIFFTAG_OPIIMAGEID
/* For eiStream Annotation Specification, Version 1.00.06 see
 * http://web.archive.org/web/20050309141348/http://www.kofile.com/support%20pro/faqs/annospec.htm */
#define TIFFTAG_TIFFANNOTATIONDATA
/* tags 32952-32956 are private tags registered to Island Graphics */
#define TIFFTAG_REFPTS
#define TIFFTAG_REGIONTACKPOINT
#define TIFFTAG_REGIONWARPCORNERS
#define TIFFTAG_REGIONAFFINE
/* tags 32995-32999 are private tags registered to SGI */
#define TIFFTAG_MATTEING
#define TIFFTAG_DATATYPE
#define TIFFTAG_IMAGEDEPTH
#define TIFFTAG_TILEDEPTH
/* tags 33300-33309 are private tags registered to Pixar */
/*
 * TIFFTAG_PIXAR_IMAGEFULLWIDTH and TIFFTAG_PIXAR_IMAGEFULLLENGTH
 * are set when an image has been cropped out of a larger image.
 * They reflect the size of the original uncropped image.
 * The TIFFTAG_XPOSITION and TIFFTAG_YPOSITION can be used
 * to determine the position of the smaller image in the larger one.
 */
#define TIFFTAG_PIXAR_IMAGEFULLWIDTH
#define TIFFTAG_PIXAR_IMAGEFULLLENGTH
/* Tags 33302-33306 are used to identify special image modes and data
 * used by Pixar's texture formats.
 */
#define TIFFTAG_PIXAR_TEXTUREFORMAT
#define TIFFTAG_PIXAR_WRAPMODES
#define TIFFTAG_PIXAR_FOVCOT
#define TIFFTAG_PIXAR_MATRIX_WORLDTOSCREEN
#define TIFFTAG_PIXAR_MATRIX_WORLDTOCAMERA
/* tag 33405 is a private tag registered to Eastman Kodak */
#define TIFFTAG_WRITERSERIALNUMBER
#define TIFFTAG_CFAREPEATPATTERNDIM
#define TIFFTAG_CFAPATTERN
#define TIFFTAG_BATTERYLEVEL
/* tag 33432 is listed in the 6.0 spec w/ unknown ownership */
#define TIFFTAG_COPYRIGHT
/* Tags 33445-33452 are used for Molecular Dynamics GEL fileformat,
 * see http://research.stowers-institute.org/mcm/efg/ScientificSoftware/Utility/TiffTags/GEL-FileFormat.pdf
 * (2023: the above web site is unavailable but tags are explained briefly at
 * https://www.awaresystems.be/imaging/tiff/tifftags/docs/gel.html
 */
#define TIFFTAG_MD_FILETAG
#define TIFFTAG_MD_SCALEPIXEL
#define TIFFTAG_MD_COLORTABLE
#define TIFFTAG_MD_LABNAME
#define TIFFTAG_MD_SAMPLEINFO
#define TIFFTAG_MD_PREPDATE
#define TIFFTAG_MD_PREPTIME
#define TIFFTAG_MD_FILEUNITS
/* IPTC TAG from RichTIFF specifications */
#define TIFFTAG_RICHTIFFIPTC
#define TIFFTAG_INGR_PACKET_DATA_TAG
#define TIFFTAG_INGR_FLAG_REGISTERS
#define TIFFTAG_IRASB_TRANSORMATION_MATRIX
#define TIFFTAG_MODELTIEPOINTTAG
/* 34016-34029 are reserved for ANSI IT8 TIFF/IT <[email protected]) */
#define TIFFTAG_IT8SITE
#define TIFFTAG_IT8COLORSEQUENCE
#define TIFFTAG_IT8HEADER
#define TIFFTAG_IT8RASTERPADDING
#define TIFFTAG_IT8BITSPERRUNLENGTH
#define TIFFTAG_IT8BITSPEREXTENDEDRUNLENGTH
#define TIFFTAG_IT8COLORTABLE
#define TIFFTAG_IT8IMAGECOLORINDICATOR
#define TIFFTAG_IT8BKGCOLORINDICATOR
#define TIFFTAG_IT8IMAGECOLORVALUE
#define TIFFTAG_IT8BKGCOLORVALUE
#define TIFFTAG_IT8PIXELINTENSITYRANGE
#define TIFFTAG_IT8TRANSPARENCYINDICATOR
#define TIFFTAG_IT8COLORCHARACTERIZATION
#define TIFFTAG_IT8HCUSAGE
#define TIFFTAG_IT8TRAPINDICATOR
#define TIFFTAG_IT8CMYKEQUIVALENT
/* tags 34232-34236 are private tags registered to Texas Instruments */
#define TIFFTAG_FRAMECOUNT
#define TIFFTAG_MODELTRANSFORMATIONTAG
/* tag 34377 is private tag registered to Adobe for PhotoShop */
#define TIFFTAG_PHOTOSHOP
/* tags 34665, 34853 and 40965 are documented in EXIF specification */
#define TIFFTAG_EXIFIFD
/* tag 34750 is a private tag registered to Adobe? */
#define TIFFTAG_ICCPROFILE
#define TIFFTAG_IMAGELAYER
/* tag 34750 is a private tag registered to Pixel Magic */
#define TIFFTAG_JBIGOPTIONS
#define TIFFTAG_GPSIFD
/* tags 34908-34914 are private tags registered to SGI */
#define TIFFTAG_FAXRECVPARAMS
#define TIFFTAG_FAXSUBADDRESS
#define TIFFTAG_FAXRECVTIME
#define TIFFTAG_FAXDCS
/* tags 37439-37443 are registered to SGI <[email protected]> */
#define TIFFTAG_STONITS
/* tag 34929 is a private tag registered to FedEx */
#define TIFFTAG_FEDEX_EDR
#define TIFFTAG_IMAGESOURCEDATA
#define TIFFTAG_INTEROPERABILITYIFD
#define TIFFTAG_GDAL_METADATA
#define TIFFTAG_GDAL_NODATA
#define TIFFTAG_OCE_SCANJOB_DESCRIPTION
#define TIFFTAG_OCE_APPLICATION_SELECTOR
#define TIFFTAG_OCE_IDENTIFICATION_NUMBER
#define TIFFTAG_OCE_IMAGELOGIC_CHARACTERISTICS
/* tags 50674 to 50677 are reserved for ESRI */
#define TIFFTAG_LERC_PARAMETERS

/* Adobe Digital Negative (DNG) format tags */
#define TIFFTAG_DNGVERSION
#define TIFFTAG_DNGBACKWARDVERSION
#define TIFFTAG_UNIQUECAMERAMODEL
#define TIFFTAG_LOCALIZEDCAMERAMODEL
#define TIFFTAG_CFAPLANECOLOR
#define TIFFTAG_CFALAYOUT
#define TIFFTAG_LINEARIZATIONTABLE
#define TIFFTAG_BLACKLEVELREPEATDIM
#define TIFFTAG_BLACKLEVEL
#define TIFFTAG_BLACKLEVELDELTAH
#define TIFFTAG_BLACKLEVELDELTAV
#define TIFFTAG_WHITELEVEL
#define TIFFTAG_DEFAULTSCALE
#define TIFFTAG_DEFAULTCROPORIGIN
#define TIFFTAG_DEFAULTCROPSIZE
#define TIFFTAG_COLORMATRIX1
#define TIFFTAG_COLORMATRIX2
#define TIFFTAG_CAMERACALIBRATION1
#define TIFFTAG_CAMERACALIBRATION2
#define TIFFTAG_REDUCTIONMATRIX1
#define TIFFTAG_REDUCTIONMATRIX2
#define TIFFTAG_ANALOGBALANCE
#define TIFFTAG_ASSHOTNEUTRAL
#define TIFFTAG_ASSHOTWHITEXY
#define TIFFTAG_BASELINEEXPOSURE
#define TIFFTAG_BASELINENOISE
#define TIFFTAG_BASELINESHARPNESS
/* TIFFTAG_BAYERGREENSPLIT: &how closely the values of the green pixels in the blue/green rows
 * track the values of the green pixels in the red/green rows */
#define TIFFTAG_BAYERGREENSPLIT
#define TIFFTAG_LINEARRESPONSELIMIT
#define TIFFTAG_CAMERASERIALNUMBER
#define TIFFTAG_LENSINFO
#define TIFFTAG_CHROMABLURRADIUS
#define TIFFTAG_ANTIALIASSTRENGTH
#define TIFFTAG_SHADOWSCALE
#define TIFFTAG_DNGPRIVATEDATA
#define TIFFTAG_MAKERNOTESAFETY
#define TIFFTAG_CALIBRATIONILLUMINANT1
#define TIFFTAG_CALIBRATIONILLUMINANT2
#define TIFFTAG_BESTQUALITYSCALE
#define TIFFTAG_RAWDATAUNIQUEID
#define TIFFTAG_ORIGINALRAWFILENAME
#define TIFFTAG_ORIGINALRAWFILEDATA
#define TIFFTAG_ACTIVEAREA
#define TIFFTAG_MASKEDAREAS
#define TIFFTAG_ASSHOTICCPROFILE
#define TIFFTAG_ASSHOTPREPROFILEMATRIX
#define TIFFTAG_CURRENTICCPROFILE
#define TIFFTAG_CURRENTPREPROFILEMATRIX

/* DNG 1.2.0.0 */
#define TIFFTAG_COLORIMETRICREFERENCE
#define TIFFTAG_CAMERACALIBRATIONSIGNATURE
#define TIFFTAG_PROFILECALIBRATIONSIGNATURE
/* TIFFTAG_EXTRACAMERAPROFILES 50933 &extra camera profiles : is already defined for GeoTIFF DGIWG */
#define TIFFTAG_ASSHOTPROFILENAME
#define TIFFTAG_NOISEREDUCTIONAPPLIED
#define TIFFTAG_PROFILENAME
#define TIFFTAG_PROFILEHUESATMAPDIMS
#define TIFFTAG_PROFILEHUESATMAPDATA1
#define TIFFTAG_PROFILEHUESATMAPDATA2
#define TIFFTAG_PROFILETONECURVE
#define TIFFTAG_PROFILEEMBEDPOLICY
#define TIFFTAG_PROFILECOPYRIGHT
#define TIFFTAG_FORWARDMATRIX1
#define TIFFTAG_FORWARDMATRIX2
#define TIFFTAG_PREVIEWAPPLICATIONNAME
#define TIFFTAG_PREVIEWAPPLICATIONVERSION
#define TIFFTAG_PREVIEWSETTINGSNAME
#define TIFFTAG_PREVIEWSETTINGSDIGEST
#define TIFFTAG_PREVIEWCOLORSPACE
#define TIFFTAG_PREVIEWDATETIME
#define TIFFTAG_RAWIMAGEDIGEST
#define TIFFTAG_ORIGINALRAWFILEDIGEST
#define TIFFTAG_SUBTILEBLOCKSIZE
#define TIFFTAG_ROWINTERLEAVEFACTOR
#define TIFFTAG_PROFILELOOKTABLEDIMS
#define TIFFTAG_PROFILELOOKTABLEDATA

/* DNG 1.3.0.0 */
#define TIFFTAG_OPCODELIST1
#define TIFFTAG_OPCODELIST2
#define TIFFTAG_OPCODELIST3
#define TIFFTAG_NOISEPROFILE

/* DNG 1.4.0.0 */
#define TIFFTAG_DEFAULTUSERCROP
#define TIFFTAG_DEFAULTBLACKRENDER
#define TIFFTAG_BASELINEEXPOSUREOFFSET
#define TIFFTAG_PROFILELOOKTABLEENCODING
#define TIFFTAG_PROFILEHUESATMAPENCODING
#define TIFFTAG_ORIGINALDEFAULTFINALSIZE
#define TIFFTAG_ORIGINALBESTQUALITYFINALSIZE
#define TIFFTAG_ORIGINALDEFAULTCROPSIZE
#define TIFFTAG_NEWRAWIMAGEDIGEST
#define TIFFTAG_RAWTOPREVIEWGAIN

/* DNG 1.5.0.0 */
#define TIFFTAG_DEPTHFORMAT
#define TIFFTAG_DEPTHNEAR
#define TIFFTAG_DEPTHFAR
#define TIFFTAG_DEPTHUNITS
#define TIFFTAG_DEPTHMEASURETYPE
#define TIFFTAG_ENHANCEPARAMS

/* DNG 1.6.0.0 */
#define TIFFTAG_PROFILEGAINTABLEMAP
#define TIFFTAG_SEMANTICNAME
#define TIFFTAG_SEMANTICINSTANCEID
#define TIFFTAG_MASKSUBAREA
#define TIFFTAG_RGBTABLES
#define TIFFTAG_CALIBRATIONILLUMINANT3
#define TIFFTAG_COLORMATRIX3
#define TIFFTAG_CAMERACALIBRATION3
#define TIFFTAG_REDUCTIONMATRIX3
#define TIFFTAG_PROFILEHUESATMAPDATA3
#define TIFFTAG_FORWARDMATRIX3
#define TIFFTAG_ILLUMINANTDATA1
#define TIFFTAG_ILLUMINANTDATA2
#define TIFFTAG_ILLUMINANTDATA3

/* TIFF/EP */
#define TIFFTAG_EP_CFAREPEATPATTERNDIM
#define TIFFTAG_EP_CFAPATTERN
#define TIFFTAG_EP_BATTERYLEVEL
#define TIFFTAG_EP_INTERLACE
/* TIFFTAG_EP_IPTC_NAA and TIFFTAG_RICHTIFFIPTC share the same tag number (33723)
 *   LibTIFF type is UNDEFINED or BYTE, but often times incorrectly specified as LONG,
 *   because TIFF/EP (ISO/DIS 12234-2) specifies type LONG or ASCII. */
#define TIFFTAG_EP_IPTC_NAA
#define TIFFTAG_EP_TIMEZONEOFFSET
#define TIFFTAG_EP_SELFTIMERMODE
#define TIFFTAG_EP_FLASHENERGY
#define TIFFTAG_EP_SPATIALFREQUENCYRESPONSE
#define TIFFTAG_EP_NOISE
#define TIFFTAG_EP_FOCALPLANEXRESOLUTION
#define TIFFTAG_EP_FOCALPLANEYRESOLUTION
#define TIFFTAG_EP_FOCALPLANERESOLUTIONUNIT
#define TIFFTAG_EP_IMAGENUMBER
#define TIFFTAG_EP_SECURITYCLASSIFICATION
#define TIFFTAG_EP_IMAGEHISTORY
#define TIFFTAG_EP_EXPOSUREINDEX
#define TIFFTAG_EP_STANDARDID
#define TIFFTAG_EP_SENSINGMETHOD
/*
 * TIFF/EP tags equivalent to EXIF tags
 *     Note that TIFF-EP and EXIF use nearly the same metadata tag set, but TIFF-EP stores the tags in IFD 0,
 *     while EXIF store the tags in a separate IFD. Either location is allowed by DNG, but the EXIF location is preferred.
 */
#define TIFFTAG_EP_EXPOSURETIME
#define TIFFTAG_EP_FNUMBER
#define TIFFTAG_EP_EXPOSUREPROGRAM
#define TIFFTAG_EP_SPECTRALSENSITIVITY
#define TIFFTAG_EP_ISOSPEEDRATINGS
#define TIFFTAG_EP_OECF
#define TIFFTAG_EP_DATETIMEORIGINAL
#define TIFFTAG_EP_COMPRESSEDBITSPERPIXEL
#define TIFFTAG_EP_SHUTTERSPEEDVALUE
#define TIFFTAG_EP_APERTUREVALUE
#define TIFFTAG_EP_BRIGHTNESSVALUE
#define TIFFTAG_EP_EXPOSUREBIASVALUE
#define TIFFTAG_EP_MAXAPERTUREVALUE
#define TIFFTAG_EP_SUBJECTDISTANCE
#define TIFFTAG_EP_METERINGMODE
#define TIFFTAG_EP_LIGHTSOURCE
#define TIFFTAG_EP_FLASH
#define TIFFTAG_EP_FOCALLENGTH
#define TIFFTAG_EP_SUBJECTLOCATION

#define TIFFTAG_RPCCOEFFICIENT
#define TIFFTAG_ALIAS_LAYER_METADATA

/* GeoTIFF DGIWG */
#define TIFFTAG_TIFF_RSID
#define TIFFTAG_GEO_METADATA
#define TIFFTAG_EXTRACAMERAPROFILES

/* tag 65535 is an undefined tag used by Eastman Kodak */
#define TIFFTAG_DCSHUESHIFTVALUES

/*
 * The following are ``pseudo tags'' that can be used to control
 * codec-specific functionality.  These tags are not written to file.
 * Note that these values start at 0xffff+1 so that they'll never
 * collide with Aldus-assigned tags.
 *
 * If you want your private pseudo tags ``registered'' (i.e. added to
 * this file), please post a bug report via the tracking system at
 * http://www.remotesensing.org/libtiff/bugs.html with the appropriate
 * C definitions to add.
 */
#define TIFFTAG_FAXMODE
#define FAXMODE_CLASSIC
#define FAXMODE_NORTC
#define FAXMODE_NOEOL
#define FAXMODE_BYTEALIGN
#define FAXMODE_WORDALIGN
#define FAXMODE_CLASSF
#define TIFFTAG_JPEGQUALITY
/* Note: quality level is on the IJG 0-100 scale.  Default value is 75 */
#define TIFFTAG_JPEGCOLORMODE
#define JPEGCOLORMODE_RAW
#define JPEGCOLORMODE_RGB
#define TIFFTAG_JPEGTABLESMODE
#define JPEGTABLESMODE_QUANT
#define JPEGTABLESMODE_HUFF
/* Note: default is JPEGTABLESMODE_QUANT | JPEGTABLESMODE_HUFF */
#define TIFFTAG_FAXFILLFUNC
#define TIFFTAG_PIXARLOGDATAFMT
#define PIXARLOGDATAFMT_8BIT
#define PIXARLOGDATAFMT_8BITABGR
#define PIXARLOGDATAFMT_11BITLOG
#define PIXARLOGDATAFMT_12BITPICIO
#define PIXARLOGDATAFMT_16BIT
#define PIXARLOGDATAFMT_FLOAT
/* 65550-65556 are allocated to Oceana Matrix <[email protected]> */
#define TIFFTAG_DCSIMAGERTYPE
#define DCSIMAGERMODEL_M3
#define DCSIMAGERMODEL_M5
#define DCSIMAGERMODEL_M6
#define DCSIMAGERFILTER_IR
#define DCSIMAGERFILTER_MONO
#define DCSIMAGERFILTER_CFA
#define DCSIMAGERFILTER_OTHER
#define TIFFTAG_DCSINTERPMODE
#define DCSINTERPMODE_NORMAL
#define DCSINTERPMODE_PREVIEW
#define TIFFTAG_DCSBALANCEARRAY
#define TIFFTAG_DCSCORRECTMATRIX
#define TIFFTAG_DCSGAMMA
#define TIFFTAG_DCSTOESHOULDERPTS
#define TIFFTAG_DCSCALIBRATIONFD
/* Note: quality level is on the ZLIB 1-9 scale. Default value is -1 */
#define TIFFTAG_ZIPQUALITY
#define TIFFTAG_PIXARLOGQUALITY
/* 65559 is allocated to Oceana Matrix <[email protected]> */
#define TIFFTAG_DCSCLIPRECTANGLE
#define TIFFTAG_SGILOGDATAFMT
#define SGILOGDATAFMT_FLOAT
#define SGILOGDATAFMT_16BIT
#define SGILOGDATAFMT_RAW
#define SGILOGDATAFMT_8BIT
#define TIFFTAG_SGILOGENCODE
#define SGILOGENCODE_NODITHER
#define SGILOGENCODE_RANDITHER
#define TIFFTAG_LZMAPRESET
#define TIFFTAG_PERSAMPLE
#define PERSAMPLE_MERGED
#define PERSAMPLE_MULTI
#define TIFFTAG_ZSTD_LEVEL
#define TIFFTAG_LERC_VERSION
#define LERC_VERSION_2_4
#define TIFFTAG_LERC_ADD_COMPRESSION
#define LERC_ADD_COMPRESSION_NONE
#define LERC_ADD_COMPRESSION_DEFLATE
#define LERC_ADD_COMPRESSION_ZSTD
#define TIFFTAG_LERC_MAXZERROR
#define TIFFTAG_WEBP_LEVEL
#define TIFFTAG_WEBP_LOSSLESS
#define TIFFTAG_WEBP_LOSSLESS_EXACT
#define TIFFTAG_DEFLATE_SUBCODEC
#define DEFLATE_SUBCODEC_ZLIB
#define DEFLATE_SUBCODEC_LIBDEFLATE

/*
 * EXIF tags
 */
#define EXIFTAG_EXPOSURETIME
#define EXIFTAG_FNUMBER
#define EXIFTAG_EXPOSUREPROGRAM
#define EXIFTAG_SPECTRALSENSITIVITY
/* After EXIF 2.2.1 ISOSpeedRatings is named PhotographicSensitivity.
   In addition, while "Count=Any", only 1 count should be used. */
#define EXIFTAG_ISOSPEEDRATINGS
#define EXIFTAG_PHOTOGRAPHICSENSITIVITY
#define EXIFTAG_OECF
#define EXIFTAG_EXIFVERSION
#define EXIFTAG_DATETIMEORIGINAL
#define EXIFTAG_DATETIMEDIGITIZED
#define EXIFTAG_COMPONENTSCONFIGURATION
#define EXIFTAG_COMPRESSEDBITSPERPIXEL
#define EXIFTAG_SHUTTERSPEEDVALUE
#define EXIFTAG_APERTUREVALUE
#define EXIFTAG_BRIGHTNESSVALUE
#define EXIFTAG_EXPOSUREBIASVALUE
#define EXIFTAG_MAXAPERTUREVALUE
#define EXIFTAG_SUBJECTDISTANCE
#define EXIFTAG_METERINGMODE
#define EXIFTAG_LIGHTSOURCE
#define EXIFTAG_FLASH
#define EXIFTAG_FOCALLENGTH
#define EXIFTAG_SUBJECTAREA
#define EXIFTAG_MAKERNOTE
#define EXIFTAG_USERCOMMENT
#define EXIFTAG_SUBSECTIME
#define EXIFTAG_SUBSECTIMEORIGINAL
#define EXIFTAG_SUBSECTIMEDIGITIZED
#define EXIFTAG_FLASHPIXVERSION
#define EXIFTAG_COLORSPACE
#define EXIFTAG_PIXELXDIMENSION
#define EXIFTAG_PIXELYDIMENSION
#define EXIFTAG_RELATEDSOUNDFILE
#define EXIFTAG_FLASHENERGY
#define EXIFTAG_SPATIALFREQUENCYRESPONSE
#define EXIFTAG_FOCALPLANEXRESOLUTION
#define EXIFTAG_FOCALPLANEYRESOLUTION
#define EXIFTAG_FOCALPLANERESOLUTIONUNIT
#define EXIFTAG_SUBJECTLOCATION
#define EXIFTAG_EXPOSUREINDEX
#define EXIFTAG_SENSINGMETHOD
#define EXIFTAG_FILESOURCE
#define EXIFTAG_SCENETYPE
#define EXIFTAG_CFAPATTERN
#define EXIFTAG_CUSTOMRENDERED
#define EXIFTAG_EXPOSUREMODE
#define EXIFTAG_WHITEBALANCE
#define EXIFTAG_DIGITALZOOMRATIO
#define EXIFTAG_FOCALLENGTHIN35MMFILM
#define EXIFTAG_SCENECAPTURETYPE
#define EXIFTAG_GAINCONTROL
#define EXIFTAG_CONTRAST
#define EXIFTAG_SATURATION
#define EXIFTAG_SHARPNESS
#define EXIFTAG_DEVICESETTINGDESCRIPTION
#define EXIFTAG_SUBJECTDISTANCERANGE
#define EXIFTAG_IMAGEUNIQUEID

/*--: New for EXIF-Version 2.32, May 2019 ... */
#define EXIFTAG_SENSITIVITYTYPE
#define EXIFTAG_STANDARDOUTPUTSENSITIVITY
#define EXIFTAG_RECOMMENDEDEXPOSUREINDEX
#define EXIFTAG_ISOSPEED
#define EXIFTAG_ISOSPEEDLATITUDEYYY
#define EXIFTAG_ISOSPEEDLATITUDEZZZ
#define EXIFTAG_OFFSETTIME
#define EXIFTAG_OFFSETTIMEORIGINAL
#define EXIFTAG_OFFSETTIMEDIGITIZED
#define EXIFTAG_TEMPERATURE
#define EXIFTAG_HUMIDITY
#define EXIFTAG_PRESSURE
#define EXIFTAG_WATERDEPTH
#define EXIFTAG_ACCELERATION
/* EXIFTAG_CAMERAELEVATIONANGLE: Elevation/depression. angle of the orientation of the  camera(imaging optical axis)
 *                               as the ambient situation at the shot in degree from -180deg to +180deg. */
#define EXIFTAG_CAMERAELEVATIONANGLE
#define EXIFTAG_CAMERAOWNERNAME
#define EXIFTAG_BODYSERIALNUMBER
/* EXIFTAG_LENSSPECIFICATION: minimum focal length (in mm), maximum focal length (in mm),minimum F number in the minimum focal length,
 *                            and minimum F number in the maximum focal length, */
#define EXIFTAG_LENSSPECIFICATION
#define EXIFTAG_LENSMAKE
#define EXIFTAG_LENSMODEL
#define EXIFTAG_LENSSERIALNUMBER
#define EXIFTAG_GAMMA
#define EXIFTAG_COMPOSITEIMAGE
#define EXIFTAG_SOURCEIMAGENUMBEROFCOMPOSITEIMAGE
#define EXIFTAG_SOURCEEXPOSURETIMESOFCOMPOSITEIMAGE

/*
 * EXIF-GPS tags  (Version 2.31, July 2016)
 */
#define GPSTAG_VERSIONID
#define GPSTAG_LATITUDEREF
#define GPSTAG_LATITUDE
#define GPSTAG_LONGITUDEREF
#define GPSTAG_LONGITUDE
#define GPSTAG_ALTITUDEREF
#define GPSTAG_ALTITUDE
#define GPSTAG_TIMESTAMP
#define GPSTAG_SATELLITES
#define GPSTAG_STATUS
#define GPSTAG_MEASUREMODE
#define GPSTAG_DOP
#define GPSTAG_SPEEDREF
#define GPSTAG_SPEED
#define GPSTAG_TRACKREF
#define GPSTAG_TRACK
#define GPSTAG_IMGDIRECTIONREF
#define GPSTAG_IMGDIRECTION
#define GPSTAG_MAPDATUM
#define GPSTAG_DESTLATITUDEREF
#define GPSTAG_DESTLATITUDE
#define GPSTAG_DESTLONGITUDEREF
#define GPSTAG_DESTLONGITUDE
#define GPSTAG_DESTBEARINGREF
#define GPSTAG_DESTBEARING
#define GPSTAG_DESTDISTANCEREF
#define GPSTAG_DESTDISTANCE
#define GPSTAG_PROCESSINGMETHOD
#define GPSTAG_AREAINFORMATION
#define GPSTAG_DATESTAMP
#define GPSTAG_DIFFERENTIAL
#define GPSTAG_GPSHPOSITIONINGERROR

#endif /* _TIFF_ */