2 * Copyright (c) 2006 Konstantin Shishkov
4 * This file is part of FFmpeg.
6 * FFmpeg is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * FFmpeg is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with FFmpeg; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
25 * For more information about the TIFF format, check the official docs at:
26 * http://partners.adobe.com/public/developer/tiff/index.html
27 * @author Konstantin Shishkov
30 #ifndef AVCODEC_TIFF_H
31 #define AVCODEC_TIFF_H
34 #include "tiff_common.h"
36 /** abridged list of TIFF tags */
43 TIFF_PHOTOMETRIC
= 0x106,
44 TIFF_FILL_ORDER
= 0x10A,
45 TIFF_DOCUMENT_NAME
= 0x10D,
46 TIFF_IMAGE_DESCRIPTION
= 0x10E,
49 TIFF_STRIP_OFFS
= 0x111,
50 TIFF_SAMPLES_PER_PIXEL
= 0x115,
51 TIFF_ROWSPERSTRIP
= 0x116,
56 TIFF_PAGE_NAME
= 0x11D,
59 TIFF_T4OPTIONS
= 0x124,
61 TIFF_RES_UNIT
= 0x128,
62 TIFF_PAGE_NUMBER
= 0x129,
63 TIFF_SOFTWARE_NAME
= 0x131,
66 TIFF_HOST_COMPUTER
= 0x13C,
67 TIFF_PREDICTOR
= 0x13D,
69 TIFF_TILE_WIDTH
= 0x142,
70 TIFF_TILE_LENGTH
= 0x143,
71 TIFF_TILE_OFFSETS
= 0x144,
72 TIFF_TILE_BYTE_COUNTS
= 0x145,
73 TIFF_EXTRASAMPLES
= 0x152,
74 TIFF_YCBCR_COEFFICIENTS
= 0x211,
75 TIFF_YCBCR_SUBSAMPLING
= 0x212,
76 TIFF_YCBCR_POSITIONING
= 0x213,
77 TIFF_REFERENCE_BW
= 0x214,
78 TIFF_COPYRIGHT
= 0x8298,
79 TIFF_MODEL_TIEPOINT
= 0x8482,
80 TIFF_MODEL_PIXEL_SCALE
= 0x830E,
81 TIFF_MODEL_TRANSFORMATION
= 0x8480,
82 TIFF_GEO_KEY_DIRECTORY
= 0x87AF,
83 TIFF_GEO_DOUBLE_PARAMS
= 0x87B0,
84 TIFF_GEO_ASCII_PARAMS
= 0x87B1
87 /** list of TIFF compression types */
97 TIFF_PACKBITS
= 0x8005,
98 TIFF_DEFLATE
= 0x80B2,
103 TIFF_GT_MODEL_TYPE_GEOKEY
= 1024,
104 TIFF_GT_RASTER_TYPE_GEOKEY
= 1025,
105 TIFF_GT_CITATION_GEOKEY
= 1026,
106 TIFF_GEOGRAPHIC_TYPE_GEOKEY
= 2048,
107 TIFF_GEOG_CITATION_GEOKEY
= 2049,
108 TIFF_GEOG_GEODETIC_DATUM_GEOKEY
= 2050,
109 TIFF_GEOG_PRIME_MERIDIAN_GEOKEY
= 2051,
110 TIFF_GEOG_LINEAR_UNITS_GEOKEY
= 2052,
111 TIFF_GEOG_LINEAR_UNIT_SIZE_GEOKEY
= 2053,
112 TIFF_GEOG_ANGULAR_UNITS_GEOKEY
= 2054,
113 TIFF_GEOG_ANGULAR_UNIT_SIZE_GEOKEY
= 2055,
114 TIFF_GEOG_ELLIPSOID_GEOKEY
= 2056,
115 TIFF_GEOG_SEMI_MAJOR_AXIS_GEOKEY
= 2057,
116 TIFF_GEOG_SEMI_MINOR_AXIS_GEOKEY
= 2058,
117 TIFF_GEOG_INV_FLATTENING_GEOKEY
= 2059,
118 TIFF_GEOG_AZIMUTH_UNITS_GEOKEY
= 2060,
119 TIFF_GEOG_PRIME_MERIDIAN_LONG_GEOKEY
= 2061,
120 TIFF_PROJECTED_CS_TYPE_GEOKEY
= 3072,
121 TIFF_PCS_CITATION_GEOKEY
= 3073,
122 TIFF_PROJECTION_GEOKEY
= 3074,
123 TIFF_PROJ_COORD_TRANS_GEOKEY
= 3075,
124 TIFF_PROJ_LINEAR_UNITS_GEOKEY
= 3076,
125 TIFF_PROJ_LINEAR_UNIT_SIZE_GEOKEY
= 3077,
126 TIFF_PROJ_STD_PARALLEL1_GEOKEY
= 3078,
127 TIFF_PROJ_STD_PARALLEL2_GEOKEY
= 3079,
128 TIFF_PROJ_NAT_ORIGIN_LONG_GEOKEY
= 3080,
129 TIFF_PROJ_NAT_ORIGIN_LAT_GEOKEY
= 3081,
130 TIFF_PROJ_FALSE_EASTING_GEOKEY
= 3082,
131 TIFF_PROJ_FALSE_NORTHING_GEOKEY
= 3083,
132 TIFF_PROJ_FALSE_ORIGIN_LONG_GEOKEY
= 3084,
133 TIFF_PROJ_FALSE_ORIGIN_LAT_GEOKEY
= 3085,
134 TIFF_PROJ_FALSE_ORIGIN_EASTING_GEOKEY
= 3086,
135 TIFF_PROJ_FALSE_ORIGIN_NORTHING_GEOKEY
= 3087,
136 TIFF_PROJ_CENTER_LONG_GEOKEY
= 3088,
137 TIFF_PROJ_CENTER_LAT_GEOKEY
= 3089,
138 TIFF_PROJ_CENTER_EASTING_GEOKEY
= 3090,
139 TIFF_PROJ_CENTER_NORTHING_GEOKEY
= 3091,
140 TIFF_PROJ_SCALE_AT_NAT_ORIGIN_GEOKEY
= 3092,
141 TIFF_PROJ_SCALE_AT_CENTER_GEOKEY
= 3093,
142 TIFF_PROJ_AZIMUTH_ANGLE_GEOKEY
= 3094,
143 TIFF_PROJ_STRAIGHT_VERT_POLE_LONG_GEOKEY
= 3095,
144 TIFF_VERTICAL_CS_TYPE_GEOKEY
= 4096,
145 TIFF_VERTICAL_CITATION_GEOKEY
= 4097,
146 TIFF_VERTICAL_DATUM_GEOKEY
= 4098,
147 TIFF_VERTICAL_UNITS_GEOKEY
= 4099
150 enum TiffPhotometric
{
151 TIFF_PHOTOMETRIC_NONE
= -1,
152 TIFF_PHOTOMETRIC_WHITE_IS_ZERO
, /* mono or grayscale, 0 is white */
153 TIFF_PHOTOMETRIC_BLACK_IS_ZERO
, /* mono or grayscale, 0 is black */
154 TIFF_PHOTOMETRIC_RGB
, /* RGB or RGBA*/
155 TIFF_PHOTOMETRIC_PALETTE
, /* Uses a palette */
156 TIFF_PHOTOMETRIC_ALPHA_MASK
, /* Transparency mask */
157 TIFF_PHOTOMETRIC_SEPARATED
, /* CMYK or some other ink set */
158 TIFF_PHOTOMETRIC_YCBCR
, /* YCbCr */
159 TIFF_PHOTOMETRIC_CIE_LAB
= 8, /* 1976 CIE L*a*b* */
160 TIFF_PHOTOMETRIC_ICC_LAB
, /* ICC L*a*b* */
161 TIFF_PHOTOMETRIC_ITU_LAB
, /* ITU L*a*b* */
162 TIFF_PHOTOMETRIC_CFA
= 32803, /* Color Filter Array (DNG) */
163 TIFF_PHOTOMETRIC_LOG_L
= 32844, /* CIE Log2(L) */
164 TIFF_PHOTOMETRIC_LOG_LUV
, /* CIE Log L*u*v* */
165 TIFF_PHOTOMETRIC_LINEAR_RAW
= 34892, /* Linear Raw (DNG) */
168 enum TiffGeoTagType
{
170 GEOTIFF_DOUBLE
= 34736,
171 GEOTIFF_STRING
= 34737
174 typedef struct TiffGeoTag
{
175 enum TiffGeoTagKey key
;
182 typedef struct TiffGeoTagKeyName
{
183 const enum TiffGeoTagKey key
;
184 const char *const name
;
187 typedef struct TiffGeoTagNameType
{
188 const char *const name
;
189 const enum TiffGeoTagType type
;
190 } TiffGeoTagNameType
;
192 #endif /* AVCODEC_TIFF_H */