Changes from version 0.12 to 0.13 --------------------------------- * Exiv2 utility - 0000504: [tools] exiv2 utility: allow use of -M and -m options with extract and insert actions. * Exiv2 library - 0000503: [metadata] Tiff generated by photoshop crashes exiv2 (digikam bug 139658). - 0000502: [iptc] New TIFF parser: Decode IPTC from Exif.Image.IPTCNAA. (Reported by Walter Hangartner) - 0000501: [iptc] IPTC field parsing is still too strict: shouldn't fail if the type is not as expected. (Reported by Elsa Nordh) - 0000497: [tools] exiv2 tool doesn't respect unix file rights. (Reported and analysed by fabien) - 0000491: [miscellaneous] Probe exiv2 for the extensions it supports. (Suggested by Will Stokes) - 0000461: [miscellaneous] Add i18n support. Requires gettext. (Gilles Caulier) The currently available translations are (work in progress): de.po, es.po, fr.po, pl.po by Gilles Caulier ported from libexif fi.po by Mikael Lammentausta fr.po by Olivier Tilloy ru.po by Alexandre Prokoudine - 0000460: [exif] Exiv2 should support to decode/encode Windows tags Exif.Image.0x9c9b-0x9c9f. Requires libiconv. (Suggested by Jose Oliver) - 0000452: [exif] Non-intrusive writing does not update IFD. - [exif] Updated Nikon lens info to v2.15 of Robert Rottmerhusen's lens database. - [exif] Added read-support for Fujifilm RAF images. - [exif] Image now has containers and provides default implementations for most methods. Improved consistency of handling unsupported functions across Image subclasses. * MSVC related - [exivsimple] Added get and set thumbnail functions. (Christian Kuster) Changes from version 0.11 to 0.12 --------------------------------- * Exiv2 utility - 0000493: [tools] exiv2 -T DST problem. (Fix suggested by John ) - 0000459: [exif] Exiv2 tool: Added a variable for the original filename to the rename option. (Patch by Tobias Jahn) * Exiv2 library - 0000498: [exif] Exiv2 cannot read the Exif data written after deleting all tags. - 0000496: [metadata] Digikam bug 136855: Editing metadata on a few selected imagefiles and clicking forward or apply crashes digikam. (Reported by several digikam users) - 0000495: [exif] Image with corrupted metadata crashes Exiv2. (Reported as digikam bug 136932 by Rainer Krienke) - 0000490: [build environment] PNG support doesn't compile on MinGW/msys. (Reported by Udi Fuchs and Will Stokes) - 0000489: [build environment] exiv2.pc.in includes private/static libs by default. (Reported with patch by Rex Dieter) - 0000488: [metadata] GPSInfo Metadata should return decimal numbers. (Feature requested by Fabien) - 0000486: [build environment] Test bugfixes-test.sh error under Mac OS X x86. (Reported with fix by Max Lapshin) - [exif] Updated Nikon lens info to v2.07 of Robert Rottmerhusen's lens database. - [metadata] Added methods to access built-in read-only Exif taglists and IPTC record lists. (Initiated by Max Lapshin) - [iptc] Improved IPTC record descriptions using IIM4 specification version 4.1. (Gilles Caulier) - [exif] Improved Exif tag descriptions using Exif specification 2.2 and libexif. (Gilles Caulier) - [exif] Added and improved pretty print functions for some Exif tags. (Gilles Caulier) - [exif] Updated Minolta makernote. (Gilles Caulier, Paul Tribick) * MSVC related - 0000487: Crash in exiv2.exe (built with VC++ 2005 Express) when examing TIFF images (Reported with patch by Dimitri Schoolwerth) Changes from version 0.10 to 0.11 --------------------------------- * Exiv2 utility - 0000485: [tools] Weird behaviour when Exif comments contain quotes (Reported by Scott Baker) - Changed exiv2 del command to delete all occurences of a tag. (Christophe Paris) * Exiv2 library - 0000483: [jpeg i/o] Assertion `sizeIptc' fails when reading metadata from JPEG file. This happened when an image has an empty IPTC IRB. (digikam bug 132582) - 0000482: [exif] SONY DSLR-A100 RAW image crashes Exiv2. (Reported to ufraw by Vishnu Natchu) - 0000480: [iptc] JPEG APP13 (used to store IPTC IRB) can not be larger than 64kB but IRB buffers can. (digikam bug 130525) - 0000479: [exif] JPEGs edited with LightZone crash Exiv2. (Reported by Daniel Hobe) - 0000475: [design] Performance: Don't read TIFF-based files completely, use memory mapping (only on Linux) to read only what is needed. Improves performance by factor 6. - 0000471: [exif] New TIFF parser: Create a CommentValue rather than a DataValue for Exif.Photo.UserComment. (Reported with test program by Marcel Wiesweg) - [exif] New TIFF parser: Extract TIFF thumbnail from IFD1 if there is one. - [exif] Added read support for PNG images (Gilles Caulier) - [exif] Updated Canon makernote tags and decoded additional composite tags, based on Exiftool. Note that some tag names changed. (David Cannings) - [exif] Updated Nikon lens info to v2.02 of Robert Rottmerhusen's lens database. - [exif] Various smaller tag updates (Gilles Caulier, Jim Westveer, Nicolas Vilars, Robert Peter) * MSVC related - 0000455: [build environment] Exiv2 finally works with MSVC 2005. (Thanks to Stephen and Maciej Sakrejda aka Maciek) Changes from version 0.9.1 to 0.10 ---------------------------------- * Exiv2 utility - 0000468: [tools] Added -P option to control what information is displayed in print mode, added -b and -u options to control output of large values and unknown tags. (Better print control suggested by Udi Fuchs) - Display filename in print mode if processing multiple images, like grep does. (Roger Larsson) * Exiv2 library - 0000469: [miscellaneous] MemIo behaviour differs from FILE* and FileIo. (Reported by Dimitri) - 0000462: Support TIFF format, part 1: Read support for TIFF and TIFF-based RAW formats, including NEF, CR2, PEF, SR2, DNG and MRW. - 0000458: [build environment] Support pkg-config tool, removed /include/exiv2 path from exiv2-config output. (Suggested by Udi Fuchs) - 0000456: [miscellaneous] Check for 0 pointer before invoking std::string constructor on C-string. - Added Minolta makernote. (Gilles Caulier) - Added support for Exif.Image.Orientation for Canon CRW images. - Improved the print functions for Exif.Nikon[13].AFFocusPos. (Roger Larsson) - Updated some Canon labels and translations (Patrice Boissonneault) - Changed some Nikon tag names. (Based on feedback from Udi Fuchs) - Added EXIV2_CHECK_VERSION macro for applications to check at runtime which version of Exiv2 is installed. * MSVC related Added COM project. (Patrice Boissonneault) Changes from version 0.9 to 0.9.1 --------------------------------- * Exiv2 library - 0000451: [exif] Fixed bug where an invalid Exif tag was created for the user comment, when the tag was newly added to an image. (Thanks to Anatoliy Kovalenko for reporting this bug) - Added enum MetadataId and Image::supportsMetadata() to check what metadata an image class supports. Changed CrwImage to silently ignore calls to Iptc related functions instead of throwing an Error. (Thanks to Will Stokes for suggesting the check feature) - Cleaned up some #include statements (mentioned here because this may lead to unexpected compiler errors). Changes from version 0.8 to 0.9 ------------------------------- * Exiv2 utility - 0000450: [exif] Added action "fixiso" to copy the ISO setting from Nikon Makernotes to the regular Exif tag Exif.Photo.ISOSpeedRatings. - 0000448: [tools] Added options -p and -t, -T to preserve file timestamps and set the timestamp according to the Exif timestamp. (Thanks to Stephan Ahlswede for suggesting the -p feature) - 0000446: [misc] Added option -c to set the JPEG comment to the utility. (Thanks to Tristan Savatier for the suggestion) * Exiv2 library - 0000447: [iptc] Fixed a buffer overflow in sscanf. (Thanks to Maciej Sakrejda aka Maciek for reporting this bug and the hard work to recreate it) - 0000438: [exif] Write support for Canon raw images. - [exif] Updated Nikon lensdata to v2.00 of Robert Rottmerhusen's amazing lens database. (Thanks to Robert for keeping me updated.) - [build environment] Added an option to enable/disable dependency- tracking to the configure script, which is useful to create "Universal Binaries" under Mac OSX. (Thanks to Will Stokes for the suggestion) - [exivsimple] Changed DllTypeId::time and DllTypeId::date to DllTypeId::isoTime and DllTypeId::isoDate to avoid a name clash. Changes from version 0.7 to 0.8 ------------------------------- * Exiv2 utility - [tools] Added -S .suf option to the utility. This allows, e.g, to use Canon THM files as source file for the insert command. - [doc] Added man page. (Based on Peter KELEMEN's Debian man page.) * Exiv2 library - 0000445: [exif] Setting the comment on an image with an existing comment has no effect. - 0000444: [iptc] Exiv2 should not panic on slightly misformed IPTC format. - 0000443: [exif] Exiv2 gives up on corrupted IOP directory. - 0000440: [iptc] IPTC time without timezone raises exception. - 0000438: [exif] Support Canon raw images (CRW and THM), currently read-only. - 0000437: [exif] exiv2 -pt crashes if Exif.Canon.ImageNumber is < 1000. - 0000433: [exif] Core dump if the value is empty. - 0000424: [exif] Ifd::read, MakerNote::read and related methods should have access to the complete data buffer. - [exif] Updated Nikon lensdata to v1.19 of Robert Rottmerhusen's list. - Added a tag and dataset title (label). - Added #ifndef SUPPRESS_WARNINGS blocks around all output from the library: compile with -DSUPPRESS_WARNINGS for a quiet library. - Implemented "copy-on-write" strategy for MemIo to ensure that the original buffer is only copied if necessary and never modified. - Added exiv2-config script. Applications that include exiv2 headers and link with the installed library can use this in their build commands. Changes from version 0.6.2 to 0.7 --------------------------------- * Exiv2 utility - 0000422: [tools] Allow renaming pictures taken within one second. (Reported by jussi AT jjussi DOT com) - 0000423: [tools] Fixed problems with paths and -l option on Windows. - [tools] Improved output data and format of the utility to show the key. * Exiv2 library - 0000404: [design] Insideout design change; made class Exiv2::Image the top-level class of the library. (Brad Schick) - 0000403: [design] Added I/O abstraction and implementations. (Brad Schick) - 0000402: [design] Split image.cpp and hpp files into base class and subclass files. (Brad Schick) - 0000425: [exif] Added default type info to Exif tagtables. - 0000427: [misc] Standardized factories according to the implementation. of ImageFactory (MakerNoteFactory). Linking with mn.o is not necessary anymore. - 0000420: [build environment] Defines should have a library specific prefix, like e.g., EXV_HAVE_CONFIG_H. - 0000417: [exif] ExifData needs proper copy constructor and assignment. - 0000426: [iptc] Fixed problem which prevented Exiv2 from reading IPTC from jpeg files. (Jeffrey J. Early and others) - [feature] Added Olympus, Panasonic and a basic Sony Makernote. (Thanks to Will Stokes for the initial Olympus files) - [feature] Improved Canon and Nikon Makernote support. (Thanks to Robert Rottmerhusen for his Nikon lens info) - [exif] Relaxed checking of Makernote IFD next pointer. - [design] Overhauled exception handling. Changes from version 0.6.1 to 0.6.2 ----------------------------------- * Exiv2 utility - [feature] New -M option to run modification commands directly from the command line. - 0000421: [tools] Command parser fails if no type is specified with a modify command. - 0000416: [exif] Fix Exiv2 modify action to use non-intrusive writing whenever possible. - 0000418: [feature] Add Exiv2 option to specify path of extracted. and inserted files. (Suggested by Brian Pugh) * Exiv2 library - 0000408: [build environment] 0.6.1 does not build on OS X: Add libtool support for automatic library creation (see README). (Reported by Thomas Lunde and others) - 0000409: [build environment] compiling emits type warnings. (Thomas Lunde and others) - 0000410: [build environment] config.h must be installed, -DHAVE_CONFIG_H flag should not be necessary. (Daniel Foote and others) - 0000411: [exif] Support non-standard Ifd layout. (Jeffrey J. Early) Changes from version 0.6 to 0.6.1 --------------------------------- * Exiv2 utility * Added option to modify Iptc and Exif metadata based on a command file * Exiv2 library * Fixed bug #407: Writing metadata to image after modifications may lose thumbnail. Thanks to Jeffrey J. Early for pointing out this bug. * Added CommentValue Changes from version 0.5 to 0.6 ------------------------------- * Exiv2 utility * Added options to extract, insert and delete different types of metadata * Added option to print the Jpeg comment * Changed semantics of print option `i' to Iptc (`t' for translated Exif data) * Replaced std::cout << "\n" with std::endl to flush and get the sequence with error output right * Exiv2 library * Added support to build Makernotes from scratch * Added support to build IFD1 (Thumbnail) entries from scratch * Open image files on demand rather than keeping them open. Bug #393 (Brad) * Added data area concept to Value, ValueType, Entry, Ifd. Feature #395 * Revamped Thumbnail classes to use the new data area feature. Feature #398 * Added ExifData::setJpegThumbnail * Improved implementation of Exif and Iptc keys, added support for keys with unknown tag names * Added ExifData::op[] and Exifdatum op= and similar operators to IptcData and Iptcdatum. This operator stuff allows for things like: exifData["Exif.Thumbnail.Compression"] = uint16_t(6); * Converted class hierarchies to use std::auto_ptr where appropriate * Replaced custom integer types with C99 types * Added test data and drivers to the repository * Right align output stream for date and time writes. Bug #397 (Brad) * Updated documentation * MSVC related (Thanks to Brad Schick) * Added exivsimple: a Windows dll that allows languages such as C# and VB to access limited metadata capabilities (Brad) * Added and write2-test projects to MSVC build (Brad) * Added mn.cpp to all MSVC projects. Fixes bug #396 (Brad) * Fixed various MSVC 7.1 build errors. Bug #394 (Brad) * Added write-test to MSVC build project (Brad) Changes from version 0.4 to 0.5 ------------------------------- * Exiv2 utility * Added -pI print mode to print Iptc data. * Bugfix: Use timegm() and gmtime() instead of mktime() and localtime() to avoid problems when adjusting timestamps. Thanks to Samir Rostum for pointing out this bug. * Added timegm() from the tz distribution for platforms which do not have this function. * Exiv2 library * Added full Iptc read and write support. Thanks to Brad Schick for this and a lot more contributions to this release. * Converted Metadatum to an abstract base class, added Exifdatum and Iptcdatum classes. Migration of existing programs: Use class Exifdatum instead of Metadatum. (Brad Schick) * Added Key, ExifKey and IptcKey class hierarchy. Requires changes to existing pograms: Use class ExifKey where plain std::string keys were used before (e.g., ExifData::findKey()). * Changed Exif keys to 'Exif.ifdItem.tagName' to be consistent with the new Iptc keys. All keys of existing programs need to be updated. See the web pages or documentation for the new keys. * Revamped class Image and introduced byte* interface. (Brad Schick) * Added autoconf configure script. * Added MSVC project files. (Brad Schick) * Appended 'Id' to Ifd ids to work around a g++-3.4 problem. * Updated documentation. Changes from version 0.3 to 0.4 ------------------------------- * Exiv2 utility * Less rigid command line argument parsing: Guess the action from the option given and use print as the default action. * Print Nikon makernote values for ISO Speed, Quality and WhiteBalance in the summary. * Exiv2 library * Fixed ExifData::copyFromMetadata to automatically add missing offset tags. Thanks to Joseph Heled for identifying this bug. * Started to fix MSVC errors and warnings. Thanks to Steven R. King for his work to get Exiv2 to compile on MSVC. The task is not yet completed but the library should compile without too many warnings. * Added three different Nikon makernote formats. * IfdMakerNote: Replaced too simple prefix with a more general concept of a makernote header. * Added the makernote buffer to the arguments passed to the makernote create function. This allows the makernote create function to determine the exact makernote needed based on its content. The new concept is used to automatically determine which of the three Nikon makernotes to create. * Fixed MakerNoteFactory::match() to prefer an exact match over a wildcard match with the same number of matching characters (Key "Nikon" now prefers registry entry "Nikon" over "Nikon*"), simplified the return value of match() to an integer score value. * Sigma makernote: Added "FOVEON" and "*" to registry. * Added len argument and boundary checks to various read functions, in particular, the IFD read method. * Improved handling of corrupt IFDs: Truncate field if offset points outside of the available buffer. * Slightly improved error handling: strError() is now a static member of ExifData. * Added exifcomment example program. * Fixed an embarassing bug in ExifData::updateEntries, which caused write after erasing metadata to write back the original metadata. * Fixed TypeInfoTable to return invalid if typeId is too large. * Makefile: (un)install targets now only (un)install exiv2. * Code cleanup, documentation updates and miscellaneous bug fixes.