Improve deep recursion detection in exif_data_load_data_content.
[platform/upstream/libexif.git] / README
1                                     libexif
2                                     -------
3
4 DESCRIPTION
5 -----------
6
7 libexif is a library for parsing, editing, and saving EXIF data. It is
8 intended to replace lots of redundant implementations in command-line
9 utilities and programs with GUIs.
10
11
12 FEATURES
13 --------
14
15 libexif supports parsing, editing and saving of EXIF data. In addition, it
16 has gettext support. All EXIF tags described in EXIF standard 2.1 (and most
17 from 2.2) are supported.  Many maker notes from Canon, Casio, Epson,
18 Fuji, Nikon, Olympus, Pentax and Sanyo cameras are also supported.
19
20
21 REQUIREMENTS
22 ------------
23
24 libexif is written in plain C and does not require any additional library.
25 GNU gettext will be used for language translation, if available.
26
27
28 LIMITATIONS
29 -----------
30
31 libexif can only handle some maker notes, and even those not very well. More
32 work needs to be done. Note that libmnote has been merged with libexif - it
33 is no longer needed.
34
35
36 USAGE
37 -----
38
39 We have documented the libexif API using doxygen and are making
40 the results available at http://libexif.sourceforge.net/api/
41
42 The short test programs in the test directory illustrates how to create
43 valid EXIF data from scratch, how to save EXIF data and how to load EXIF
44 data from data in memory. There are also a few simple example programs
45 available in the contrib/examples/ directory.  Don't hesitate to contact
46 us at <libexif-devel@lists.sourceforge.net> if you have any questions
47 on how to use libexif.
48
49 To link to libexif into your own package, we recommend using the
50 pkgconfig utility (cf. http://www.freedesktop.org/wiki/Software/pkg-config/ For
51 your convenience, libexif both provides libexif-uninstalled.pc and
52 installs libexif.pc.
53
54
55 FRONTENDS
56 ---------
57
58 Right now, I know of the following frontends to libexif:
59  - exif:     A small command-line utility to show EXIF information in JPEG
60              files (http://www.sourceforge.net/projects/libexif).
61  - gexif:    A GTK+ frontend for editing EXIF data
62              (http://www.sourceforge.net/projects/libexif).
63  - gphoto2:  A command-line frontend to libgphoto2, a library to access a 
64              wide range of digital cameras (http://www.gphoto.org).
65  - gtkam:    A GTK+ frontend to libgphoto2 (http://www.gphoto.org).
66  - thirdeye: Digital photos organizer and driver for eComStation
67              (http://ecomstation.ru/thirdeye).
68  - digikam:  digital photo management application for KDE
69              (http://www.digikam.org/)
70
71 If you would like to migrate your program to use libexif or add EXIF support
72 to it, don't hesitate to contact the authors.
73
74
75 LIBRARIES
76 ---------
77
78 I know of the following libraries that use or have been inspired by libexif:
79  - libexif-gtk: library of widgets to help display EXIF tags in GTK
80    programs (part of the libexif project)
81  - pel: PHP-Code (http://pel.sourceforge.net)
82
83
84 BUILDING
85 --------
86
87 It really depends on your environment what to do in order to get libexif
88 to build. Building from the source tar ball usually involves the commands:
89
90   ./configure
91   make
92   sudo make install
93
94 When building from source out of CVS, something like the following will be
95 necessary:
96
97   gettextize
98   mv po/Makevars.template po/Makevars
99   aclocal -I auto-m4 -I m4m
100   autoheader
101   libtoolize --force
102   automake --add-missing
103   autoconf
104   ./configure
105   make
106
107 Or, probably just:
108
109   autoreconf -i
110   ./configure
111   make
112
113 Besides the standard arguments, configure takes several specific to libexif:
114
115   --disable-docs          To disable producing any documentation
116   --enable-internal-docs  Build internal code docs if Doxygen available
117   --enable-ship-binaries  To include Windows DLLs in 'make dist'
118
119 Certain specialized applications can reduce the size of the libexif
120 binary by setting one or both of the following macros in the CPPFLAGS
121 environment variable at configure time.  Each one removes certain kinds of
122 text strings and constants from the binary.  Applications which need
123 to access specific, known EXIF tags and know in advance the meaning of
124 their data have no need of those strings and can save considerable space
125 by eliminating them.
126
127  -DNO_VERBOSE_TAG_STRINGS Names and descriptions of EXIF tags, debug messages,
128                           mandatory EXIF fields (disabling auto-tag-fixup)
129  -DNO_VERBOSE_TAG_DATA    Names of enumerated tag data contents
130
131
132 INTERNATIONALIZATION
133 --------------------
134
135 The libexif translations are made by volunteers working on their own,
136 either directly with the libexif project or through one of two translation
137 coordination sites, the Translation Project
138 <http://translationproject.org/domain/libexif.html> and Launchpad
139 <https://translations.edge.launchpad.net/ubuntu/precise/+source/libexif/+pots/libexif-12>.
140 Any updates to language translations coordinated by the Translation Project
141 must be made through their web site, but all other languages can be
142 updated either through Launchpad (preferred) or by sending updates to
143 the libexif developers mailing list directly.  As of this writing, the
144 following languages must be updated through the Translation Project:
145 cs da de es fr it ja nl pl sk sv uk vi
146
147 If you are interested in translating libexif into a new language, we
148 recommend that you join one of the above translation groups and take
149 advantage of the systems they have built to help you.  A translation
150 disclaimer is NOT required for libexif at the Translation Project; by making
151 a translation, you agree implicitly to provide it under the same license
152 terms as the rest of libexif (LGPL).
153
154
155 AUTHORS
156 -------
157
158 libexif has originally been written by Curtis Galloway
159 <curtisg@users.sourceforge.net>. Because of the original design not
160 supporting editing and saving, Lutz Mueller <lutz@users.sourceforge.net>
161 rewrote libexif from scratch. Since then, many more people have contributed
162 to libexif.
163
164
165 LINKS
166 -----
167
168 Some links you might want to check out if you are interested in further
169 information about EXIF.
170
171  - http://drewnoakes.com/code/exif: metadata extraction framework in Java
172  - http://www.exif.org: information about the EXIF standard.
173  - http://www.sno.phy.queensu.ca/~phil/exiftool/TagNames/index.html: Looks
174    like libexif in Perl. Seems to support a lot of MakerNotes.