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