Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
4349 Serge 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 
34
#include "tiff_common.h"
35
 
36
/** abridged list of TIFF tags */
37
enum TiffTags {
38
    TIFF_SUBFILE            = 0xfe,
39
    TIFF_WIDTH              = 0x100,
40
    TIFF_HEIGHT,
41
    TIFF_BPP,
42
    TIFF_COMPR,
43
    TIFF_INVERT             = 0x106,
44
    TIFF_FILL_ORDER         = 0x10A,
45
    TIFF_DOCUMENT_NAME      = 0x10D,
46
    TIFF_IMAGE_DESCRIPTION  = 0x10E,
47
    TIFF_MAKE               = 0x10F,
48
    TIFF_MODEL              = 0x110,
49
    TIFF_STRIP_OFFS         = 0x111,
50
    TIFF_SAMPLES_PER_PIXEL  = 0x115,
51
    TIFF_ROWSPERSTRIP       = 0x116,
52
    TIFF_STRIP_SIZE,
53
    TIFF_XRES               = 0x11A,
54
    TIFF_YRES               = 0x11B,
55
    TIFF_PLANAR             = 0x11C,
56
    TIFF_PAGE_NAME          = 0x11D,
57
    TIFF_XPOS               = 0x11E,
58
    TIFF_YPOS               = 0x11F,
59
    TIFF_T4OPTIONS          = 0x124,
60
    TIFF_T6OPTIONS,
61
    TIFF_RES_UNIT           = 0x128,
62
    TIFF_PAGE_NUMBER        = 0x129,
63
    TIFF_SOFTWARE_NAME      = 0x131,
64
    TIFF_DATE               = 0x132,
65
    TIFF_ARTIST             = 0x13B,
66
    TIFF_HOST_COMPUTER      = 0x13C,
67
    TIFF_PREDICTOR          = 0x13D,
68
    TIFF_PAL                = 0x140,
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
85
};
86
 
87
/** list of TIFF compression types */
88
enum TiffCompr {
89
    TIFF_RAW = 1,
90
    TIFF_CCITT_RLE,
91
    TIFF_G3,
92
    TIFF_G4,
93
    TIFF_LZW,
94
    TIFF_JPEG,
95
    TIFF_NEWJPEG,
96
    TIFF_ADOBE_DEFLATE,
97
    TIFF_PACKBITS = 0x8005,
98
    TIFF_DEFLATE  = 0x80B2
99
};
100
 
101
enum TiffGeoTagKey {
102
    TIFF_GT_MODEL_TYPE_GEOKEY                = 1024,
103
    TIFF_GT_RASTER_TYPE_GEOKEY               = 1025,
104
    TIFF_GT_CITATION_GEOKEY                  = 1026,
105
    TIFF_GEOGRAPHIC_TYPE_GEOKEY              = 2048,
106
    TIFF_GEOG_CITATION_GEOKEY                = 2049,
107
    TIFF_GEOG_GEODETIC_DATUM_GEOKEY          = 2050,
108
    TIFF_GEOG_PRIME_MERIDIAN_GEOKEY          = 2051,
109
    TIFF_GEOG_LINEAR_UNITS_GEOKEY            = 2052,
110
    TIFF_GEOG_LINEAR_UNIT_SIZE_GEOKEY        = 2053,
111
    TIFF_GEOG_ANGULAR_UNITS_GEOKEY           = 2054,
112
    TIFF_GEOG_ANGULAR_UNIT_SIZE_GEOKEY       = 2055,
113
    TIFF_GEOG_ELLIPSOID_GEOKEY               = 2056,
114
    TIFF_GEOG_SEMI_MAJOR_AXIS_GEOKEY         = 2057,
115
    TIFF_GEOG_SEMI_MINOR_AXIS_GEOKEY         = 2058,
116
    TIFF_GEOG_INV_FLATTENING_GEOKEY          = 2059,
117
    TIFF_GEOG_AZIMUTH_UNITS_GEOKEY           = 2060,
118
    TIFF_GEOG_PRIME_MERIDIAN_LONG_GEOKEY     = 2061,
119
    TIFF_PROJECTED_CS_TYPE_GEOKEY            = 3072,
120
    TIFF_PCS_CITATION_GEOKEY                 = 3073,
121
    TIFF_PROJECTION_GEOKEY                   = 3074,
122
    TIFF_PROJ_COORD_TRANS_GEOKEY             = 3075,
123
    TIFF_PROJ_LINEAR_UNITS_GEOKEY            = 3076,
124
    TIFF_PROJ_LINEAR_UNIT_SIZE_GEOKEY        = 3077,
125
    TIFF_PROJ_STD_PARALLEL1_GEOKEY           = 3078,
126
    TIFF_PROJ_STD_PARALLEL2_GEOKEY           = 3079,
127
    TIFF_PROJ_NAT_ORIGIN_LONG_GEOKEY         = 3080,
128
    TIFF_PROJ_NAT_ORIGIN_LAT_GEOKEY          = 3081,
129
    TIFF_PROJ_FALSE_EASTING_GEOKEY           = 3082,
130
    TIFF_PROJ_FALSE_NORTHING_GEOKEY          = 3083,
131
    TIFF_PROJ_FALSE_ORIGIN_LONG_GEOKEY       = 3084,
132
    TIFF_PROJ_FALSE_ORIGIN_LAT_GEOKEY        = 3085,
133
    TIFF_PROJ_FALSE_ORIGIN_EASTING_GEOKEY    = 3086,
134
    TIFF_PROJ_FALSE_ORIGIN_NORTHING_GEOKEY   = 3087,
135
    TIFF_PROJ_CENTER_LONG_GEOKEY             = 3088,
136
    TIFF_PROJ_CENTER_LAT_GEOKEY              = 3089,
137
    TIFF_PROJ_CENTER_EASTING_GEOKEY          = 3090,
138
    TIFF_PROJ_CENTER_NORTHING_GEOKEY         = 3091,
139
    TIFF_PROJ_SCALE_AT_NAT_ORIGIN_GEOKEY     = 3092,
140
    TIFF_PROJ_SCALE_AT_CENTER_GEOKEY         = 3093,
141
    TIFF_PROJ_AZIMUTH_ANGLE_GEOKEY           = 3094,
142
    TIFF_PROJ_STRAIGHT_VERT_POLE_LONG_GEOKEY = 3095,
143
    TIFF_VERTICAL_CS_TYPE_GEOKEY             = 4096,
144
    TIFF_VERTICAL_CITATION_GEOKEY            = 4097,
145
    TIFF_VERTICAL_DATUM_GEOKEY               = 4098,
146
    TIFF_VERTICAL_UNITS_GEOKEY               = 4099
147
};
148
 
149
enum TiffGeoTagType {
150
    GEOTIFF_SHORT  = 0,
151
    GEOTIFF_DOUBLE = 34736,
152
    GEOTIFF_STRING = 34737
153
};
154
 
155
typedef struct TiffGeoTag {
156
    enum TiffGeoTagKey key;
157
    enum TiffTags type;
158
    int count;
159
    int offset;
160
    char *val;
161
} TiffGeoTag;
162
 
163
typedef struct TiffGeoTagKeyName {
164
    const enum TiffGeoTagKey key;
165
    const char *const name;
166
} TiffGeoTagKeyName;
167
 
168
typedef struct TiffGeoTagNameType {
169
    const char *const name;
170
    const enum TiffGeoTagType type;
171
} TiffGeoTagNameType;
172
 
173
#endif /* AVCODEC_TIFF_H */