Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(143)

Side by Side Diff: libexif/sources/libexif/exif-tag.h

Issue 10535156: Add libexif to deps/third_party. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/
Patch Set: Created 8 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « libexif/sources/libexif/exif-system.h ('k') | libexif/sources/libexif/exif-tag.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Property Changes:
Added: svn:eol-style
+ LF
OLDNEW
(Empty)
1 /*! \file exif-tag.h
2 * \brief Handling EXIF tags
3 */
4 /*
5 * Copyright (c) 2001 Lutz Mueller <lutz@users.sourceforge.net>
6 *
7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version.
11 *
12 * This library is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this library; if not, write to the
19 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
20 * Boston, MA 02110-1301 USA.
21 */
22
23 #ifndef __EXIF_TAG_H__
24 #define __EXIF_TAG_H__
25
26 #ifdef __cplusplus
27 extern "C" {
28 #endif /* __cplusplus */
29
30 #include <libexif/exif-ifd.h>
31 #include <libexif/exif-data-type.h>
32
33 /*! EXIF tags */
34 typedef enum {
35 EXIF_TAG_INTEROPERABILITY_INDEX = 0x0001,
36 EXIF_TAG_INTEROPERABILITY_VERSION = 0x0002,
37 EXIF_TAG_NEW_SUBFILE_TYPE = 0x00fe,
38 EXIF_TAG_IMAGE_WIDTH = 0x0100,
39 EXIF_TAG_IMAGE_LENGTH = 0x0101,
40 EXIF_TAG_BITS_PER_SAMPLE = 0x0102,
41 EXIF_TAG_COMPRESSION = 0x0103,
42 EXIF_TAG_PHOTOMETRIC_INTERPRETATION = 0x0106,
43 EXIF_TAG_FILL_ORDER = 0x010a,
44 EXIF_TAG_DOCUMENT_NAME = 0x010d,
45 EXIF_TAG_IMAGE_DESCRIPTION = 0x010e,
46 EXIF_TAG_MAKE = 0x010f,
47 EXIF_TAG_MODEL = 0x0110,
48 EXIF_TAG_STRIP_OFFSETS = 0x0111,
49 EXIF_TAG_ORIENTATION = 0x0112,
50 EXIF_TAG_SAMPLES_PER_PIXEL = 0x0115,
51 EXIF_TAG_ROWS_PER_STRIP = 0x0116,
52 EXIF_TAG_STRIP_BYTE_COUNTS = 0x0117,
53 EXIF_TAG_X_RESOLUTION = 0x011a,
54 EXIF_TAG_Y_RESOLUTION = 0x011b,
55 EXIF_TAG_PLANAR_CONFIGURATION = 0x011c,
56 EXIF_TAG_RESOLUTION_UNIT = 0x0128,
57 EXIF_TAG_TRANSFER_FUNCTION = 0x012d,
58 EXIF_TAG_SOFTWARE = 0x0131,
59 EXIF_TAG_DATE_TIME = 0x0132,
60 EXIF_TAG_ARTIST = 0x013b,
61 EXIF_TAG_WHITE_POINT = 0x013e,
62 EXIF_TAG_PRIMARY_CHROMATICITIES = 0x013f,
63 EXIF_TAG_SUB_IFDS = 0x014a,
64 EXIF_TAG_TRANSFER_RANGE = 0x0156,
65 EXIF_TAG_JPEG_PROC = 0x0200,
66 EXIF_TAG_JPEG_INTERCHANGE_FORMAT = 0x0201,
67 EXIF_TAG_JPEG_INTERCHANGE_FORMAT_LENGTH = 0x0202,
68 EXIF_TAG_YCBCR_COEFFICIENTS = 0x0211,
69 EXIF_TAG_YCBCR_SUB_SAMPLING = 0x0212,
70 EXIF_TAG_YCBCR_POSITIONING = 0x0213,
71 EXIF_TAG_REFERENCE_BLACK_WHITE = 0x0214,
72 EXIF_TAG_XML_PACKET = 0x02bc,
73 EXIF_TAG_RELATED_IMAGE_FILE_FORMAT = 0x1000,
74 EXIF_TAG_RELATED_IMAGE_WIDTH = 0x1001,
75 EXIF_TAG_RELATED_IMAGE_LENGTH = 0x1002,
76 EXIF_TAG_CFA_REPEAT_PATTERN_DIM = 0x828d,
77 EXIF_TAG_CFA_PATTERN = 0x828e,
78 EXIF_TAG_BATTERY_LEVEL = 0x828f,
79 EXIF_TAG_COPYRIGHT = 0x8298,
80 EXIF_TAG_EXPOSURE_TIME = 0x829a,
81 EXIF_TAG_FNUMBER = 0x829d,
82 EXIF_TAG_IPTC_NAA = 0x83bb,
83 EXIF_TAG_IMAGE_RESOURCES = 0x8649,
84 EXIF_TAG_EXIF_IFD_POINTER = 0x8769,
85 EXIF_TAG_INTER_COLOR_PROFILE = 0x8773,
86 EXIF_TAG_EXPOSURE_PROGRAM = 0x8822,
87 EXIF_TAG_SPECTRAL_SENSITIVITY = 0x8824,
88 EXIF_TAG_GPS_INFO_IFD_POINTER = 0x8825,
89 EXIF_TAG_ISO_SPEED_RATINGS = 0x8827,
90 EXIF_TAG_OECF = 0x8828,
91 EXIF_TAG_TIME_ZONE_OFFSET = 0x882a,
92 EXIF_TAG_EXIF_VERSION = 0x9000,
93 EXIF_TAG_DATE_TIME_ORIGINAL = 0x9003,
94 EXIF_TAG_DATE_TIME_DIGITIZED = 0x9004,
95 EXIF_TAG_COMPONENTS_CONFIGURATION = 0x9101,
96 EXIF_TAG_COMPRESSED_BITS_PER_PIXEL = 0x9102,
97 EXIF_TAG_SHUTTER_SPEED_VALUE = 0x9201,
98 EXIF_TAG_APERTURE_VALUE = 0x9202,
99 EXIF_TAG_BRIGHTNESS_VALUE = 0x9203,
100 EXIF_TAG_EXPOSURE_BIAS_VALUE = 0x9204,
101 EXIF_TAG_MAX_APERTURE_VALUE = 0x9205,
102 EXIF_TAG_SUBJECT_DISTANCE = 0x9206,
103 EXIF_TAG_METERING_MODE = 0x9207,
104 EXIF_TAG_LIGHT_SOURCE = 0x9208,
105 EXIF_TAG_FLASH = 0x9209,
106 EXIF_TAG_FOCAL_LENGTH = 0x920a,
107 EXIF_TAG_SUBJECT_AREA = 0x9214,
108 EXIF_TAG_TIFF_EP_STANDARD_ID = 0x9216,
109 EXIF_TAG_MAKER_NOTE = 0x927c,
110 EXIF_TAG_USER_COMMENT = 0x9286,
111 EXIF_TAG_SUB_SEC_TIME = 0x9290,
112 EXIF_TAG_SUB_SEC_TIME_ORIGINAL = 0x9291,
113 EXIF_TAG_SUB_SEC_TIME_DIGITIZED = 0x9292,
114 EXIF_TAG_XP_TITLE = 0x9c9b,
115 EXIF_TAG_XP_COMMENT = 0x9c9c,
116 EXIF_TAG_XP_AUTHOR = 0x9c9d,
117 EXIF_TAG_XP_KEYWORDS = 0x9c9e,
118 EXIF_TAG_XP_SUBJECT = 0x9c9f,
119 EXIF_TAG_FLASH_PIX_VERSION = 0xa000,
120 EXIF_TAG_COLOR_SPACE = 0xa001,
121 EXIF_TAG_PIXEL_X_DIMENSION = 0xa002,
122 EXIF_TAG_PIXEL_Y_DIMENSION = 0xa003,
123 EXIF_TAG_RELATED_SOUND_FILE = 0xa004,
124 EXIF_TAG_INTEROPERABILITY_IFD_POINTER = 0xa005,
125 EXIF_TAG_FLASH_ENERGY = 0xa20b,
126 EXIF_TAG_SPATIAL_FREQUENCY_RESPONSE = 0xa20c,
127 EXIF_TAG_FOCAL_PLANE_X_RESOLUTION = 0xa20e,
128 EXIF_TAG_FOCAL_PLANE_Y_RESOLUTION = 0xa20f,
129 EXIF_TAG_FOCAL_PLANE_RESOLUTION_UNIT = 0xa210,
130 EXIF_TAG_SUBJECT_LOCATION = 0xa214,
131 EXIF_TAG_EXPOSURE_INDEX = 0xa215,
132 EXIF_TAG_SENSING_METHOD = 0xa217,
133 EXIF_TAG_FILE_SOURCE = 0xa300,
134 EXIF_TAG_SCENE_TYPE = 0xa301,
135 EXIF_TAG_NEW_CFA_PATTERN = 0xa302,
136 EXIF_TAG_CUSTOM_RENDERED = 0xa401,
137 EXIF_TAG_EXPOSURE_MODE = 0xa402,
138 EXIF_TAG_WHITE_BALANCE = 0xa403,
139 EXIF_TAG_DIGITAL_ZOOM_RATIO = 0xa404,
140 EXIF_TAG_FOCAL_LENGTH_IN_35MM_FILM = 0xa405,
141 EXIF_TAG_SCENE_CAPTURE_TYPE = 0xa406,
142 EXIF_TAG_GAIN_CONTROL = 0xa407,
143 EXIF_TAG_CONTRAST = 0xa408,
144 EXIF_TAG_SATURATION = 0xa409,
145 EXIF_TAG_SHARPNESS = 0xa40a,
146 EXIF_TAG_DEVICE_SETTING_DESCRIPTION = 0xa40b,
147 EXIF_TAG_SUBJECT_DISTANCE_RANGE = 0xa40c,
148 EXIF_TAG_IMAGE_UNIQUE_ID = 0xa420,
149 EXIF_TAG_GAMMA = 0xa500,
150 EXIF_TAG_PRINT_IMAGE_MATCHING = 0xc4a5,
151 EXIF_TAG_PADDING = 0xea1c
152 } ExifTag;
153
154 /* GPS tags overlap with above ones. */
155 #define EXIF_TAG_GPS_VERSION_ID 0x0000
156 #define EXIF_TAG_GPS_LATITUDE_REF 0x0001 /* INTEROPERABILITY_INDEX */
157 #define EXIF_TAG_GPS_LATITUDE 0x0002 /* INTEROPERABILITY_VERSION */
158 #define EXIF_TAG_GPS_LONGITUDE_REF 0x0003
159 #define EXIF_TAG_GPS_LONGITUDE 0x0004
160 #define EXIF_TAG_GPS_ALTITUDE_REF 0x0005
161 #define EXIF_TAG_GPS_ALTITUDE 0x0006
162 #define EXIF_TAG_GPS_TIME_STAMP 0x0007
163 #define EXIF_TAG_GPS_SATELLITES 0x0008
164 #define EXIF_TAG_GPS_STATUS 0x0009
165 #define EXIF_TAG_GPS_MEASURE_MODE 0x000a
166 #define EXIF_TAG_GPS_DOP 0x000b
167 #define EXIF_TAG_GPS_SPEED_REF 0x000c
168 #define EXIF_TAG_GPS_SPEED 0x000d
169 #define EXIF_TAG_GPS_TRACK_REF 0x000e
170 #define EXIF_TAG_GPS_TRACK 0x000f
171 #define EXIF_TAG_GPS_IMG_DIRECTION_REF 0x0010
172 #define EXIF_TAG_GPS_IMG_DIRECTION 0x0011
173 #define EXIF_TAG_GPS_MAP_DATUM 0x0012
174 #define EXIF_TAG_GPS_DEST_LATITUDE_REF 0x0013
175 #define EXIF_TAG_GPS_DEST_LATITUDE 0x0014
176 #define EXIF_TAG_GPS_DEST_LONGITUDE_REF 0x0015
177 #define EXIF_TAG_GPS_DEST_LONGITUDE 0x0016
178 #define EXIF_TAG_GPS_DEST_BEARING_REF 0x0017
179 #define EXIF_TAG_GPS_DEST_BEARING 0x0018
180 #define EXIF_TAG_GPS_DEST_DISTANCE_REF 0x0019
181 #define EXIF_TAG_GPS_DEST_DISTANCE 0x001a
182 #define EXIF_TAG_GPS_PROCESSING_METHOD 0x001b
183 #define EXIF_TAG_GPS_AREA_INFORMATION 0x001c
184 #define EXIF_TAG_GPS_DATE_STAMP 0x001d
185 #define EXIF_TAG_GPS_DIFFERENTIAL 0x001e
186
187 /*! What level of support a tag enjoys in the EXIF standard */
188 typedef enum {
189 /*! The meaning of this tag is unknown */
190 EXIF_SUPPORT_LEVEL_UNKNOWN = 0,
191
192 /*! This tag is not allowed in the given IFD */
193 EXIF_SUPPORT_LEVEL_NOT_RECORDED,
194
195 /*! This tag is mandatory in the given IFD */
196 EXIF_SUPPORT_LEVEL_MANDATORY,
197
198 /*! This tag is optional in the given IFD */
199 EXIF_SUPPORT_LEVEL_OPTIONAL
200 } ExifSupportLevel;
201
202 /*! Return the tag ID given its unique textual name.
203 *
204 * \param[in] name tag name
205 * \return tag ID, or 0 if tag not found
206 * \note The tag not found value cannot be distinguished from a legitimate
207 * tag number 0.
208 */
209 ExifTag exif_tag_from_name (const char *name);
210
211 /*! Return a textual name of the given tag when found in the given IFD. The
212 * name is a short, unique, non-localized text string containing only
213 * US-ASCII alphanumeric characters.
214 *
215 * \param[in] tag EXIF tag
216 * \param[in] ifd IFD
217 * \return textual name of the tag, or NULL if the tag is unknown
218 */
219 const char *exif_tag_get_name_in_ifd (ExifTag tag, ExifIfd ifd);
220
221 /*! Return a textual title of the given tag when found in the given IFD.
222 * The title is a short, localized description of the tag.
223 *
224 * \param[in] tag EXIF tag
225 * \param[in] ifd IFD
226 * \return textual title of the tag, or NULL if the tag is unknown
227 */
228 const char *exif_tag_get_title_in_ifd (ExifTag tag, ExifIfd ifd);
229
230 /*! Return a verbose textual description of the given tag when found in the
231 * given IFD. The description is a verbose, localized description of the tag.
232 *
233 * \param[in] tag EXIF tag
234 * \param[in] ifd IFD
235 * \return textual description of the tag, or NULL if the tag is unknown
236 */
237 const char *exif_tag_get_description_in_ifd (ExifTag tag, ExifIfd ifd);
238
239 /*! Return whether the given tag is mandatory or not in the given IFD and
240 * data type according to the EXIF specification. If the IFD given is
241 * EXIF_IFD_COUNT, the result is EXIF_SUPPORT_LEVEL_UNKNOWN. If the data
242 * type is EXIF_DATA_TYPE_UNKNOWN, the result is
243 * EXIF_SUPPORT_LEVEL_UNKNOWN unless the support level is the same for
244 * all data types.
245 *
246 * \param[in] tag EXIF tag
247 * \param[in] ifd IFD or EXIF_IFD_COUNT
248 * \param[in] t data type or EXIF_DATA_TYPE_UNKNOWN
249 * \return the level of support for this tag
250 */
251 ExifSupportLevel exif_tag_get_support_level_in_ifd (ExifTag tag, ExifIfd ifd,
252 ExifDataType t);
253
254 /* Don't use these functions. They are here for compatibility only. */
255
256 /*! \deprecated Use #exif_tag_get_name_in_ifd instead */
257 const char *exif_tag_get_name (ExifTag tag);
258
259 /*! \deprecated Use #exif_tag_get_title_in_ifd instead */
260 const char *exif_tag_get_title (ExifTag tag);
261
262 /*! \deprecated Use #exif_tag_get_description_in_ifd instead */
263 const char *exif_tag_get_description (ExifTag tag);
264
265
266 /* For now, do not use these functions. */
267
268 /*! \internal */
269 ExifTag exif_tag_table_get_tag (unsigned int n);
270
271 /*! \internal */
272 const char *exif_tag_table_get_name (unsigned int n);
273
274 /*! \internal */
275 unsigned int exif_tag_table_count (void);
276
277
278 /* Don't use these definitions. They are here for compatibility only. */
279
280 /*! \deprecated Use EXIF_TAG_PRINT_IMAGE_MATCHING instead. */
281 #define EXIF_TAG_UNKNOWN_C4A5 EXIF_TAG_PRINT_IMAGE_MATCHING
282
283 #ifdef __cplusplus
284 }
285 #endif /* __cplusplus */
286
287 #endif /* __EXIF_TAG_H__ */
OLDNEW
« no previous file with comments | « libexif/sources/libexif/exif-system.h ('k') | libexif/sources/libexif/exif-tag.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698