FFmpeg
Main Page
Related Pages
Modules
Namespaces
Data Structures
Files
Examples
File List
Globals
All
Data Structures
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Groups
Pages
libavcodec
tiff.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2006 Konstantin Shishkov
3
*
4
* This file is part of FFmpeg.
5
*
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.
10
*
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.
15
*
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
19
*/
20
21
/**
22
* @file
23
* TIFF tables
24
*
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
28
*/
29
30
#ifndef AVCODEC_TIFF_H
31
#define AVCODEC_TIFF_H
32
33
#include <stdint.h>
34
35
/** abridged list of TIFF tags */
36
enum
TiffTags
{
37
TIFF_SUBFILE
= 0xfe,
38
TIFF_WIDTH
= 0x100,
39
TIFF_HEIGHT
,
40
TIFF_BPP
,
41
TIFF_COMPR
,
42
TIFF_INVERT
= 0x106,
43
TIFF_FILL_ORDER
= 0x10A,
44
TIFF_DOCUMENT_NAME
= 0x10D,
45
TIFF_IMAGE_DESCRIPTION
= 0x10E,
46
TIFF_MAKE
= 0x10F,
47
TIFF_MODEL
= 0x110,
48
TIFF_STRIP_OFFS
= 0x111,
49
TIFF_SAMPLES_PER_PIXEL
= 0x115,
50
TIFF_ROWSPERSTRIP
= 0x116,
51
TIFF_STRIP_SIZE
,
52
TIFF_XRES
= 0x11A,
53
TIFF_YRES
= 0x11B,
54
TIFF_PLANAR
= 0x11C,
55
TIFF_PAGE_NAME
= 0x11D,
56
TIFF_XPOS
= 0x11E,
57
TIFF_YPOS
= 0x11F,
58
TIFF_T4OPTIONS
= 0x124,
59
TIFF_T6OPTIONS
,
60
TIFF_RES_UNIT
= 0x128,
61
TIFF_PAGE_NUMBER
= 0x129,
62
TIFF_SOFTWARE_NAME
= 0x131,
63
TIFF_DATE
= 0x132,
64
TIFF_ARTIST
= 0x13B,
65
TIFF_HOST_COMPUTER
= 0x13C,
66
TIFF_PREDICTOR
= 0x13D,
67
TIFF_PAL
= 0x140,
68
TIFF_TILE_WIDTH
= 0x142,
69
TIFF_TILE_LENGTH
= 0x143,
70
TIFF_TILE_OFFSETS
= 0x144,
71
TIFF_TILE_BYTE_COUNTS
= 0x145,
72
TIFF_EXTRASAMPLES
= 0x152,
73
TIFF_YCBCR_COEFFICIENTS
= 0x211,
74
TIFF_YCBCR_SUBSAMPLING
= 0x212,
75
TIFF_YCBCR_POSITIONING
= 0x213,
76
TIFF_REFERENCE_BW
= 0x214,
77
TIFF_COPYRIGHT
= 0x8298,
78
TIFF_MODEL_TIEPOINT
= 0x8482,
79
TIFF_MODEL_PIXEL_SCALE
= 0x830E,
80
TIFF_MODEL_TRANSFORMATION
= 0x8480,
81
TIFF_GEO_KEY_DIRECTORY
= 0x87AF,
82
TIFF_GEO_DOUBLE_PARAMS
= 0x87B0,
83
TIFF_GEO_ASCII_PARAMS
= 0x87B1
84
};
85
86
/** list of TIFF compression types */
87
enum
TiffCompr
{
88
TIFF_RAW
= 1,
89
TIFF_CCITT_RLE
,
90
TIFF_G3
,
91
TIFF_G4
,
92
TIFF_LZW
,
93
TIFF_JPEG
,
94
TIFF_NEWJPEG
,
95
TIFF_ADOBE_DEFLATE
,
96
TIFF_PACKBITS
= 0x8005,
97
TIFF_DEFLATE
= 0x80B2
98
};
99
100
enum
TiffTypes
{
101
TIFF_BYTE
= 1,
102
TIFF_STRING
,
103
TIFF_SHORT
,
104
TIFF_LONG
,
105
TIFF_RATIONAL
,
106
TIFF_SBYTE
,
107
TIFF_UNDEFINED
,
108
TIFF_SSHORT
,
109
TIFF_SLONG
,
110
TIFF_SRATIONAL
,
111
TIFF_FLOAT
,
112
TIFF_DOUBLE
,
113
TIFF_IFD
114
};
115
116
enum
TiffGeoTagKey
{
117
TIFF_GT_MODEL_TYPE_GEOKEY
= 1024,
118
TIFF_GT_RASTER_TYPE_GEOKEY
= 1025,
119
TIFF_GT_CITATION_GEOKEY
= 1026,
120
TIFF_GEOGRAPHIC_TYPE_GEOKEY
= 2048,
121
TIFF_GEOG_CITATION_GEOKEY
= 2049,
122
TIFF_GEOG_GEODETIC_DATUM_GEOKEY
= 2050,
123
TIFF_GEOG_PRIME_MERIDIAN_GEOKEY
= 2051,
124
TIFF_GEOG_LINEAR_UNITS_GEOKEY
= 2052,
125
TIFF_GEOG_LINEAR_UNIT_SIZE_GEOKEY
= 2053,
126
TIFF_GEOG_ANGULAR_UNITS_GEOKEY
= 2054,
127
TIFF_GEOG_ANGULAR_UNIT_SIZE_GEOKEY
= 2055,
128
TIFF_GEOG_ELLIPSOID_GEOKEY
= 2056,
129
TIFF_GEOG_SEMI_MAJOR_AXIS_GEOKEY
= 2057,
130
TIFF_GEOG_SEMI_MINOR_AXIS_GEOKEY
= 2058,
131
TIFF_GEOG_INV_FLATTENING_GEOKEY
= 2059,
132
TIFF_GEOG_AZIMUTH_UNITS_GEOKEY
= 2060,
133
TIFF_GEOG_PRIME_MERIDIAN_LONG_GEOKEY
= 2061,
134
TIFF_PROJECTED_CS_TYPE_GEOKEY
= 3072,
135
TIFF_PCS_CITATION_GEOKEY
= 3073,
136
TIFF_PROJECTION_GEOKEY
= 3074,
137
TIFF_PROJ_COORD_TRANS_GEOKEY
= 3075,
138
TIFF_PROJ_LINEAR_UNITS_GEOKEY
= 3076,
139
TIFF_PROJ_LINEAR_UNIT_SIZE_GEOKEY
= 3077,
140
TIFF_PROJ_STD_PARALLEL1_GEOKEY
= 3078,
141
TIFF_PROJ_STD_PARALLEL2_GEOKEY
= 3079,
142
TIFF_PROJ_NAT_ORIGIN_LONG_GEOKEY
= 3080,
143
TIFF_PROJ_NAT_ORIGIN_LAT_GEOKEY
= 3081,
144
TIFF_PROJ_FALSE_EASTING_GEOKEY
= 3082,
145
TIFF_PROJ_FALSE_NORTHING_GEOKEY
= 3083,
146
TIFF_PROJ_FALSE_ORIGIN_LONG_GEOKEY
= 3084,
147
TIFF_PROJ_FALSE_ORIGIN_LAT_GEOKEY
= 3085,
148
TIFF_PROJ_FALSE_ORIGIN_EASTING_GEOKEY
= 3086,
149
TIFF_PROJ_FALSE_ORIGIN_NORTHING_GEOKEY
= 3087,
150
TIFF_PROJ_CENTER_LONG_GEOKEY
= 3088,
151
TIFF_PROJ_CENTER_LAT_GEOKEY
= 3089,
152
TIFF_PROJ_CENTER_EASTING_GEOKEY
= 3090,
153
TIFF_PROJ_CENTER_NORTHING_GEOKEY
= 3091,
154
TIFF_PROJ_SCALE_AT_NAT_ORIGIN_GEOKEY
= 3092,
155
TIFF_PROJ_SCALE_AT_CENTER_GEOKEY
= 3093,
156
TIFF_PROJ_AZIMUTH_ANGLE_GEOKEY
= 3094,
157
TIFF_PROJ_STRAIGHT_VERT_POLE_LONG_GEOKEY
= 3095,
158
TIFF_VERTICAL_CS_TYPE_GEOKEY
= 4096,
159
TIFF_VERTICAL_CITATION_GEOKEY
= 4097,
160
TIFF_VERTICAL_DATUM_GEOKEY
= 4098,
161
TIFF_VERTICAL_UNITS_GEOKEY
= 4099
162
};
163
164
enum
TiffGeoTagType
{
165
GEOTIFF_SHORT
= 0,
166
GEOTIFF_DOUBLE
= 34736,
167
GEOTIFF_STRING
= 34737
168
};
169
170
/** sizes of various TIFF field types (string size = 100)*/
171
static
const
uint8_t
type_sizes
[14] = {
172
0, 1, 100, 2, 4, 8, 1, 1, 2, 4, 8, 4, 8, 4
173
};
174
175
typedef
struct
TiffGeoTag
{
176
enum
TiffGeoTagKey
key
;
177
enum
TiffTags
type
;
178
int
count
;
179
int
offset
;
180
char
*
val
;
181
}
TiffGeoTag
;
182
183
typedef
struct
TiffGeoTagKeyName
{
184
const
enum
TiffGeoTagKey
key
;
185
const
char
*
const
name
;
186
}
TiffGeoTagKeyName
;
187
188
typedef
struct
TiffGeoTagNameType
{
189
const
char
*
const
name
;
190
const
enum
TiffGeoTagType
type
;
191
}
TiffGeoTagNameType
;
192
193
#endif
/* AVCODEC_TIFF_H */
Generated on Wed Jul 10 2013 23:48:05 for FFmpeg by
1.8.2