# ExifTool Ancient History

Note: This page gives the history of older exiftool versions. See history.html for the recent history.

Sept. 6, 2025 - Version 13.35 (production release)

- Added a new CanonModelID
- Added new Olympus PictureMode and LensType values (thanks Michael Meissner)
- Decode GPS from another DJI protobuf format (DJI Neo)
- Decode a few new FujiFilm tags
- Enhanced -ee option to extract M-RAW information from all images in FujiFilm RAF files
- Improved handling of standard-format unknown XMP date/time tags when the API XMPAutoConv option is set (which is the default) to put them in the "Time" group and apply the -d date/time formatting
- Improved -fileNUM option so it may be used to access tags from alternate files when the specified target FILE doesn't exist
- Improved print conversions for some Canon tags to handle "n/a" values
- Enhanced JSON long output (-j -l) so the API SaveBin option also returns the Rational ("rat") value if available
- Changed -if option so the expression is evaluated even when the source file doesn't exist (to allow more flexibily when using -fileNUM option or when creating the output file when writing)
- Fixed decoding of a few new Pentax tags (thanks Karsten Gieselmann)
- Fixed -diff feature to report differences in binary-data values and to be consistent with handling of backslashes in Windows path names

Aug. 18, 2025 - Version 13.34

- Decode a number of new Pentax tags (thanks Karsten Gieselmann)
- Decode a new Canon tag (thanks Peter Wem, github #344)
- Updated Sony decoding for the ILME-FX2 and DSC-RX1RM3 (thanks Jos Roost)
- Minor fixes to decoding of new Olympus tags (thanks Karsten Gieselmann)
- Reverted change of 13.20 which changed the behaviour when writing incorrectly-formatted date/time values
- Patched to avoid "uninitialized value $module" when using some custom config files
- Fixed issue reading maker notes from some Sony ILCE models
- API Changes:
  - Added UndefTags option to allow -m and/or -f to be used without modifying the value of undef tags in -if expressions (which was the behaviour prior to version 12.60)

July 25, 2025 - Version 13.33

- Added read support for TNEF files (eg. "winmail.dat")
- Added a new Canon HighlightTonePriority value (github #339)
- Decode Canon FocusBracketing tag (github #340)
- Decode more tags for newer Nikon Z models (thanks Warren Hatch)
- Decode a few more Olympus tags (thanks Karsten Gieselmann)
- Decode face detection tags for the Pentax K-3III (thanks Karsten Gieselmann)
- Decode a few more FujiFilm tags (github #343)
- Handle Olympus RawDev2IFD tag 0x8000 (named it RawDevSubIFD)
- Improved recognition of some Sony lenses (github #342)
- Enhanced the -p option to cycle through sub-documents
- Improved extraction of GoPro timed GPS to use sub-document numbers to separate the individual fixes, allowing -p to extract all fixes at sub-second resolution (although for earlier models these may not contain timestamps)
- Extract EXIF information from Sigma fp MOV videos
- Patched to avoid "multi-segment EXIF with external pointers" error when writing Olympus OM-1 JPG files converted by some utilities
- Fixed decoding of Panasonic LongExposureNRUsed (thanks AndrewJ)
- Fixed long-standing bug when using special characters in the -d option argument

July 2, 2025 - Version 13.32

- Added a new Olympus CameraType (thanks Herb and Albert Shan)
- Added a new Sony LensType (github #335)
- Added a new Nikon CropHiSpeed value (thanks Albert Shan)
- Added a warning if a tag value couldn't be packed for writing to a binary data structure
- Decode more Ricoh/Pentax AF tags for some models (thanks Karsten Gieselmann)
- Decode Canon HDR-PQ tag (github #336)
- Extract a couple more EXIF tags
- Patched to allow a dot (.) in the name of a structure element when writing
- Fixed "uninitialized value" bug when using -w with the -stay_open feature
- Fixed bug in -file option when using tag names to specify the name of the alternate file (the tags were taken only from the first input file unless a file name formatting code was also specified)

June 19, 2025 - Version 13.31

- Added a new CanonModelID and RFLensType (thanks Norbert Wasser)
- Added some new FujiFilm AdvancedFilter values (thanks Greybeard)
- Added a new Nikon Z LensID (thanks Warren Hatch)
- Decode a few new Sigma tags
- Decode two more types of timed GPS from MP4 videos
- Decode more Pentax AF tags for some models (thanks Karsten Gieselmann)
- Extract Pages MediaBox from PDF files (github #333)
- Enhanced Validate feature to check some embedded images
- Remove sub-seconds if they exist when writing a PDF date
- Removed a debugging warning left in the -plot update of 13.28
- Changed DNG ProfileIFD RGBTables to Binary-type tag (github #334)
- Internal code improvements in the handling of some trailers
- Patched LNK string parsing for Windows nonconformity (github #332)
- Fixed a few possible "uninitialized value" warnings

May 22, 2025 - Version 13.30 (production release)

- Added a new Canon RF lens (thanks Norbert Wasser)
- Added some new Olympus ArtFilter values
- Added support for reading timed GPS from Transcend Drive Body Camera 70 MP4 videos
- Added a new FujiFilm AdvancedFilter value (thanks Greybeard)
- Decode maker notes from Sigma BF images
- Decode a few more Pentax AF-related tags (thanks Karsten Gieselmann)
- Extract PreviewImage and its metadata from Sigma BF MOV videos
- Allow multiple config files to be specified on the command line (but leave undocumented for now because the config files currently included in the full ExifTool package aren't compatible with this feature)
- Removed warning introduced in version 12.60 for an undefined tag in a -if condition, but leave the 12.60 change that sets these tags to an empty string when -m is used
- Patched LensID conversion to better handle a manual lens on a Sony ILCE-7M2
- Patched to avoid runtime warning when using -fast option and reading and HEIC file via a pipe (but you will still get a seek error)
- Fixed some tag format types in the config_files/pix4d.config file
- Fixed possible "uninitialized value" warning when reading some types of Ligo timed GPS

Apr. 27, 2025 - Version 13.29

- Changed default -geotime argument to use SubSecDateTimeOriginal if available instead of DateTimeOriginal, instead of applying both (as was done since ExifTool 13.18). This is more efficient, and avoids an unnecessary warning
- Properly return warnings from inverse value conversions when copying a tag using -tagsFromFile with a tag name string
- Fixed issue where RW2 images from the Panasonic DC-S1RM2 could be corrupted when writing

Apr. 25, 2025 - Version 13.28

- Added print conversion for Pentax AFPointValues
- Added another Pentax PictureMode value
- Decode timed GPS from GKU D900 dashcam videos
- Decode timed telemetry data from newer ARCore videos
- Decode Panasonic AFAreaSize (thanks andrewj)
- Decode ShutterCount for Canon EOS R8 and R50 (github #325)
- Decode ThumbnailTIFF from some Insta360 videos
- Decode AROT:HDRGainCurveSize from APP10
- Enhanced the -plot feature to allow Multi option to specify a different number of datasets for each plot
- Updated to the 2025 MPF specification
- Renamed K-3III AFPoints to AFPointsSelected and changed decoding
- Fixed bug introduced in 13.23 that could cause an incorrect parsing of XMP attributes containing an equals sign
- Fixed issue reading timed GPS from some Insta360 videos, and issue where writing these videos would fail
- Fixed exif2xmp.args and xmp2exif.args to properly handle EXIF:ImageUniqueID

Apr. 8, 2025 - Version 13.27

- Decode AF points for the Pentax K-3III
- Decode timed GPS from a variant of the Rove R2-4K dashcam
- Properly decode SensorTemperature for Pentax K3-III
- Patched PCAP test to avoid potential failure
- Patched to avoid potential "not a HASH reference" error when writing MOV/MP4 videos
- Fixed issue which could result in "uninitialized value" errors when reading one type of timed GPS from MP4 videos
- Fixed problem writing MotionPhotoVideo in MP4 files

Mar. 31, 2025 - Version 13.26

- Added a new Olympus CameraType (thanks Herb)
- Added a new PentaxModelID (github #322)
- Added a new Nikon LensID
- Improved Duration calculation for some WAV files
- Changed a PCAP tag name and fixed typos in a few others (thanks blue-j)
- Patched to avoid VignettingCorr warning for images from some Canon cameras
- Patched to avoid some unnecessary duplicate tag warnings when -validate used with HEIC images
- Fixed issue with XMP-xmpMM:Pantry items not exhibiting proper List-type behaviour

Mar. 11, 2025 - Version 13.25 (production release)

- IMPORTANT: Fixed issue which could corrupt HEIC images from newer iPhones under certain conditions when writing QuickTime:Rotation
- Decode more PLIST information from HEIC images
- Updated Geolocation databases from current geonames.org files
- Updated DarwinCore for the 2023 specification (thanks Herb)
- API Changes:
  - Added KeepUTCTime option

Mar. 7, 2025 - Version 13.24

- Changed -listf, -listr and -listwf options to print descriptions when either -v or -l is added (previously only -l did this)
- Patched to avoid failed PCAP test due to differing time zones (github #319)

Mar. 7, 2025 - Version 13.23

- Added read support for CAP, PCAP and PCAPNG files (github #318)
- Added a number of new Sony LensType2 values (thanks Jos Roost)
- Added the 2 new GPSAltitudeRef values defined by EXIF 3.0
- Decode APP4 "Qualcomm Dual Camera Attributes" metadata
- EXIF X/YResolution, ResolutionUnit and FlashpixVersion are no longer treated as mandatory tags (they were changed to optional in the EXIF 3.0 specification)
- Patched decoding of Nikon Z8 MenuSettings to accommodate changes in the data structure as of firmware version 2.1
- Patched to avoid bug in Perl v5.26.3 which could cause hang when reading very large and corrupted XMP
- Patched -plot option to avoid bug in Google Chrome SVG marker rendering
- API Changes:
  - Fixed documentation for LargeFileSupport option to reflect current default

Mar. 1, 2025 - Version 13.22

- Improvements and additions to the new plot feature
- Decode a few more DJI timed metadata tags
- Extract GainMapImage from PNG images
- Reverted WebP FileType change of version 13.20
- Set $^W in the exiftool application to re-enable global warnings (they have been disabled since version 12.92 due to the shebang change)
- Fixed possible incorrect IFD number in "No size tag" warning
- Fixed "File is empty" error when using -plot with -w to write the output file into the same directory as the input files

Feb. 20, 2025 - Version 13.21

- Patched issue that could result in runtime warning for some video files
- Fixed a bug with the new -plot option that could generate a compiler error

Feb. 20, 2025 - Version 13.20 - "SVG Plot"

- Added new -plot option for generating SVG-format plots from tag values
- Added a new Olympus CameraType
- Added a new Nikon Z LensID (thanks Warren Hatch)
- Overhauled decoding of Nikon AF tags (thanks Warren Hatch)
- Decode timed GPS from yet another model dashcam
- Decode more information from AAE files
- Decode more tags from DJI videos
- Updated Windows launcher (thanks Oliver Betz)
- Enhanced -w option to be available for use with the -csv output
- Attempted to patch a problem writing some PDF files
- Fail if a required module is missing when attempting to write a formatted date/time value instead of falling back to write as unformatted
- Minor change to WebP lossless FileType text
- API Changes:
  - Added Plot option

Feb. 10, 2025 - Version 13.19

- Added read/write support for PDF and XMP-pdfx SourceModified
- Decode GPS from two more DJI protobuf formats (Matrice 30 and Mini 4 Pro)
- Decode timed GPS from Rexing V1-4k dashcam
- Decode more information from AAE files
- Made a new icon for the Windows EXE application
- Improved handling of ICC_Profile in HEIC images:
  - Profiles for sub-images are extracted as sub-documents
  - Allow only the profile of the main image to be written
- Changed family 3 groups for ICO files so the first icon is in the Doc1 instead of the Main group
- Updated Sony decoding for ILCE-1M2 (thanks Jos Roost)

Feb. 3, 2025 - Version 13.18

- Decode a number of new GoPro tags
- Enhanced -geotag option to set Geotime from either SubSecDateTimeOriginal (preferentially) or DateTimeOriginal if not otherwise specified
- Don't allow ICC_Profile to be deleted from QuickTime-based files (specifically HEIC, to avoid problem where Apple Preview wouldn't display the resulting file)
- Improved decoding of AF points for Nikon D3400 and D7500
- Patched issue introduced in 13.13 which could give a "No data reference" error when writing MP4 videos from some Google phones
- Fixed problem writing XMP-iptcExt:LocationCreatedGPSAltitudeRef with an incorrect namespace

Jan. 29, 2025 - Version 13.17

- Added support for reading more embedded images and videos written in the JPEG trailer by some phones
- Added support for reading JPEG trailer written by some OnePlus phones
- Added a -validate warning for QuickTime 'wide' atoms with an invalid size
- Added a new CanonLensType
- Avoid decoding Sony 0x9050 data for the ILCE-1M2 because the encoding has changed since the ILCE-1 and the new encoding is not yet known (github #310)
- Fixed issue that could cause runtime warning when using -j with -b
- Fixed some issues decoding AFPointsUsed for some newer Nikon models
- Fixed problem corrupting QuickTime-format videos when writing if they contain a 'wide' atom with an invalid size

Jan. 25, 2025 - Version 13.16

- Added a couple of new Nikon Z lenses (thanks Warren Hatch)
- Added a new Canon RFLensType (thanks Norbert Wasser)
- Added support for a MIE trailer on QuickTime-format files
- Added a number of new EXE MachineType values (github #309)
- Made "iTunes" a deletable group
- Updated decoding of many Nikon tags for the Z9 firmware version 5.1 (thanks Warren Hatch)
- Fixed issue where -diff option would miss showing 1 tag from a group that exists in the difference file but not in the source file
- Fixed issue where tag exclusions for alternate files weren't honoured in a -p formatting expression when using "$file#:all:all" in the expression and the -file#, -x, and -p options all together
- Fixed FileTypeDescription for lossless extended WebP images

Jan. 23, 2025 - Version 13.15

- Added a few new Panasonic AFSubjectDetection values (thanks Andrew J)
- Added " (lossless)" to FileType for lossless WebP images
- Avoid treating the QuickTime 'eng' language code as the default 'und' unless the country code is also the default
- Fixed issue where writing metadata to a non-extended lossless WebP image with an alpha channel could mess up rendering of the transparency
- Fixed problem decoding ID3 WXXX frames (github #307)

Jan. 20, 2025 - Version 13.14

- Changed so that deleting QuickTime ItemList group no longer deletes Keys
- Fixed bug where new ItemList tags weren't created when also creating new AudioKeys or VideoKeys tags in the same command if neither tag group pre-existed in the file

Jan. 20, 2025 - Version 13.13

- Added ability to write tags to the audio/video tracks of MOV/MP4 videos using the new AudioKeys and VideoKeys group names
- Decode GPS from another DJI protobuf format (Mavic 3)
- Decode yet another type of LIGOGPSINFO timed GPS from a dashcam video
- Extract some proprietary information from JPEG images of Vivo phones
- Enhanced Geolocation feature to allow the nearest cities to a specified city to be returned
- Updated xmp2exif.args and exif2xmp.args to properly handle time zones in XMP-exif date/time tags
- Changed family 1 group names for Keys, ItemList and UserData tags in a track
- Patched github #306 issue where a torrent file would return a format error when reading if it didn't contain an "announce" or "created by" entry
- Fixed "uninitialized value" runtime warning when reading some EXE files
- Fixed -diff output to add colon missing from some lines when used with -g

Jan. 13, 2025 - Version 13.12

- Added a few new Panasonic AFAreaMode values (thanks Andrew J)
- Added a couple of new Canon RFLensType values (thanks Norbert Wasser)
- Added a -validate warning for duplicate IPTC tags
- Decode AF points for some newer Nikon models (thanks Warren Hatch)
- Decode a new Panasonic tag (thanks Andrew J)
- Decode a couple of previously unknown tags from LIGOGPSINFO records
- Extract some PDB information if available from Win32 EXE files (github #303)
- Improved handling of duplicate tags in -diff output
- Improved handling of QuickTime zero date/time values
- Enchanced -csv= and -json= options to allow group names and wildcards to be used when specifying which tags to import
- Updated some EXIF:Compression values (github #304)
- Changed wording of warning when file time couldn't be updated
- Fixed bug introduced in 13.11 reading EXIF from some EXV files
- Fixed bug introduced in 12.99 where empty entries in a CSV file weren't ignored as they should be when importing with -csv=
- Fixed problem where MWG module wasn't loaded automatically when specifying Composite:MWG:TAG instead of MWG:TAG
- Fixed bug where -diff option was inconsistent in its treatment of List values when used with the -sep option

Jan. 1, 2025 - Version 13.11

- Added warning for an unknown DJI protobuf schema
- Decode timed GPS from DJI Osmo Action 5 videos
- Decode yet another type of LIGOGPSINFO timed GPS from a dashcam video
- Made Matroska Keywords and Instruments List-type tags
- Fixed problem were EXIF couldn't be added to some AVIF files
- API Changes:
  - Added GPSQuadrant option

Dec. 20, 2024 - Version 13.10 (production release)

- Added warnings for out-of-order entries in 'iinf' and 'ipma' boxes of HEIC images
- Added support for date/time formatting codes %f and %z in the inverse print conversion when writing tags
- Updated Geolocation databases from current geonames.org files
- Improved verbose output to show values stored with construction method 1 in MP4-based files
- Enhanced the date/time timezone format specifier %z so that %:z returns the time zone with a colon separator (eg. "-05:00")
- Fixed bug where the existing tag wasn't being removed when writing a new value for an Unknown QuickTime UserData or ItemList tag

Dec. 17, 2024 - Version 13.09

- Added a new QuickTime tag (thanks Matti)
- Added a missing format check on a few tags when writing
- Decode a couple of new ICC_Profile tags
- Patched HEIC writer so newly added XMP or EXIF refers to the 'tmap' item as well as the primary item of an HDRGainMap image (since iPhone 15 and 16 do it this way)
- Fixed compatibility issue where Apple Preview would no longer show the gain map image after adding new XMP to an HEIC with an HDR gain map

Dec. 14, 2024 - Version 13.08

- Decode ShutterCount for Canon EOS R6 Mark II (thanks Agoston Kapitany)
- Decode a few new Photoshop tags
- Suppress all duplicate Warning tags and add count to end of message
- Changed format of bitmask keys in -listx output
- Internal streamlining of LIGOGPSINFO decoding
- Fixed issue where some tags were incorrectly shown as writable in -listx output
- Fixed incorrect scaling for GPSSpeed in one LIGOGPSINFO variant
- Fixed an issue with filename encoding when the -L option is used and the API WindowsLongPath option is active

Dec. 11, 2024 - Version 13.07

- Decode a number of LIGOGPSINFO encrypted and enciphered timed GPS types (long overdue, but it took me a couple of years to acquire enough sample videos to have a good cross-section of the different formats)
- Fixed another place where FileSequence could be incremented twice when a -if condition was used
- Fixed a few places where character 0x7f may not have been escaped in string values
- API Changes:
  - Changed default WindowsLongPath option back to 1 after adding a patch to fix issue with piping from stdin

Dec. 5, 2024 - Version 13.06

- Decode timed metadata from MP4 videos of yet another dashcam model
- Patched issue where FileSequence could increment twice for each file when a -if condition was used
- API Changes:
  - Revert default WindowsLongPath option to the pre-13.05 setting until we can solve the pipe problem

Dec. 4, 2024 - Version 13.05

- Added a new SonyModelID
- Added support for XMP HDRGainMap and apdi namespaces
- Decode DJI timed djmd and dbgi protobuf-format metadata
- Decode APP10 AROT HDRGainCurve and APP2 URN UniformResourceName
- Decode a couple of new GoPro tags
- API Changes:
  - Changed default WindowsLongPath option to 1 (please report if this causes any problems)

Nov. 26, 2024 - Version 13.04

- Added the ability to write GPSDOP and GPSMeasureMode from the -geotag option if hdop or pdop information exists in the input track file
- Added a few new Canon RFLensTypes (thanks Norbert Wasser)
- Decode timed GPS from GoPro Hero 13 videos
- Improved writing of GPSDestLatitudeRef and GPSDestLongitudeRef tags to allow signed numbers to be written in the same way as GPSLatitudeRef and GPSLongitudeRef
- Warn if using an Image::ExifTool library that doesn't match the application version
- Renamed an Unknown Photoshop tag
- Convert GoPro GPSSpeed and GPSSpeed3D from m/s to km/h
- Patched to tolerate XML header in DOCX xml files
- Fixed incorrect file offsets for tags in some embedded files of -htmldump output
- Fixed -htmldump output to show the same names for unknown EXIF tags as with the -u option

Nov. 12, 2024 - Version 13.03

- Added ability to include or exclude tags from CSV and JSON imports (-csv=CSVFILE and -json=JSONFILE) by adding -TAG or --TAG options
- Added read/delete support for SEAL metadata in JPG, TIFF, XMP, PNG, WEBP, HEIC, PPM, MOV and MP4 files, and read support in PDF, MKV and WAV files
- Added support for user-defined application extensions in GIF images
- Added print conversion for QuickTime VideoFullRangeFlag
- Apply API LimitLongValues option to hex field in -j output
- Avoid extracting some large AES-encrypted data from PDF files for performance reasons unless the -m option is used (current limits are 100 kB for XMP and 10 kB for everything else)
- Fixed WindowsLongPath option to support wide characters (thanks Frank B)
- Fixed problem writing ICC_Profile to a GIF image which already had one
- Fixed problem writing Apple:FocusDistanceRange
- API Changes:
  - Enchanced GlobalTimeShift option to allow the base tag to be specified, otherwise use the first specified source date/time tag when copying tags

Nov. 5, 2024 - Version 13.02

- Enhanced -j -l output to add optional "fmt" and "hex" fields
- Enhanced -geotag option to support Google Maps "Export Timeline data" JSON format
- Changed ProductVersion of Windows launcher to match ExifTool version
- Patched to use empty group name instead of "Copy0" for family 4 group name of missing tag when the -f option is used
- Patched to avoid showing "Unknown" for group of primary tag when -g4 or -G4 was used with the -j or -csv option
- Patched to avoid using Encode module in Windows because it can hang if run from a working directory with a long path name
- Patched to use -csv output if -j also used
- Fixed a few problems with the new WindowsLongPath option
- Fixed problem setting FileCreateDate with Xcode 16 command line tools if the date/time contains a time zone
- Fixed problem in -csv output when combined with -g
- API Changes:
  - Added SaveBin option

Nov. 1, 2024 - Version 13.01

- NOTE: Please test the new API WindowsLongPath option because the idea is to enable this by default if everything works out well
- Fixed bug which could result in runtime warning if when API IgnoreTags option is set to "all" when reading a TXT file format
- Fixed problem reading some information from LNK files
- Fixed verbose output to show "Binary data" message for SCALAR values
- Fixed bug where part of the hex dump from a -v3 output could go to stdout instead of the file specified by a -w option
- API Changes:
  - Added WindowsLongPath option for testing
  - Changed CharsetFileName option to automatically assume UTF8 if the file name contains special characters and is valid UTF8

Oct. 29, 2024 - Version 13.00 (production release)

- Added support for reading GPS from Autel Evo II drone videos
- Added a new PhaseOne RawFormat value
- Updated XMP-exifEX tags, exif2xmp.args and xmp2exif.args according to the 2024 EXIF for XMP specification
- Updated Geolocation databases from current geonames.org files
- Updated the MIME types for a couple of font formats
- Enhanced -diff option to work with -ec (C-style escape of special chars)
- Changed name of EXIF Title tag to ImageTitle to correspond with specifiation
- Reverted a geotag warning message to remove debugging information that was added in version 12.67 and moved this information into a -v3 verbose message
- Patched Perl bug which gave "Can't spawn" warning in Windows if control-C was pressed while displaying the exiftool application help
- Fixed API StructFormat JSONQ setting to properly quote values in structures
- Fixed incorrect AudioStreamType for M2TS videos containing a PGS stream
- Fixed -diff option so "same tags" messages are only shown when -v is added (as per the documentation)

Oct. 18, 2024 - Version 12.99

- Added -diff option to compare the metadata in two files
- Added a new Canon lens (thanks Norbert Wasser)
- Decode GPS from 70mai A810 dashcam videos
- Decode a new QuickTime tag
- Patched to recognize C2PA APP11 JUMBF header with incorrect byte order written by buggy Microsoft software
- Patched to maintain order of entries in a JSON object when reading
- Patched to maintain order of CSV columns when setting tags from a CSV file
- Patched to maintain order of XMP lang-alt entries when writing/copying
- Fixed typo in an APP12 tag name
- API Changes:
  - Structured values returned as HASH references with the Struct option may contain a new "_ordered_keys_" entry used to preserve the order of the entries
  - Added the OrderedKeys method to return the ordered or sorted keys from a returned structure value

Oct. 8, 2024 - Version 12.98

- Added write support for PDF files with huge offsets
- Added a number of new Sony LensType values (thanks Jos Roost)
- Require -v4 or higher to output "JPG RST" lines
- Patched problem with -fast option when reading HEIC file via a pipe
- Patched to avoid hang when reading some corrupted XMP

Sept. 25, 2024 - Version 12.97

- Added ability to ignore up to 4095 bytes of garbage at the end of an INDD file with the -m option
- Added a new Canon RFLensType value (thanks Norbert Wasser)
- Added a new Nikon Z LensID
- Decode a number of new Nikon Z6_3 tags (thanks Warren Hatch)
- Decode a few more FujiFilm tags (thanks Greybeard)
- Enhanced %C format code to allow file-name collisions to be avoided by using a colon instead of a decimal in the format modifier
- Fixed bug which could result in hang when using %C code in an output file name

Sept. 1, 2024 - Version 12.96

- More improvements to handling of trailers on video files (and add ability to write videos which have an unknown trailer)
- Fixed problem geotagging from some newer Google Takeout files

Aug. 30, 2024 - Version 12.95

- Added a couple of new CanonModelID values
- Decode ColorData for a couple of new Canon models
- Fixed problem writing video files which have some known trailer types

Aug. 29, 2024 - Version 12.94

- Added ability to geotag from new-format Google Takeout JSON files
- Added a few new Android and Xiaomi QuickTime Keys tags
- Added ability to read C2PA JUMBF metadata from TTF/OTF files
- Internal changes to code for creating new directories
- Changed Windows packages to have the application help text file in the exiftool_files folder instead of writing it to a temporary directory
- Removed new QuickTime Keys tags added in 12.93 because these aren't used in top-level metadata (written to the video track by Apple devices)
- Fixed the group names for synthesized default-language QuickTime tags and added a verbose message when generating these tags
- Fixed warning in Geolocation.t self test

Aug. 20, 2024 - Version 12.93

- Added a new Nikon LensID
- Added a couple of new OpenEXR Compression types
- Added a couple of new QuickTime Keys tags
- Decode timed metadata from E-ACE B44 dashcam videos
- Made "Unrecognized" Samsung Meta warnings minor
- Fixed bug in -listg6 option which resulted in "uninitialized value" warnings
- Fixed decoding of Func1Button and Func2Button for the Nikon Z6/Z7
- Fixed bug reading JUMB metadata from JXL images

July 24, 2024 - Version 12.92

- Removed -w from exiftool shebang due to compatibility issues on some systems

July 24, 2024 - Version 12.91

- Added a couple of new OpenEXR Compression values (github #276)
- Updated 2 test files that were causing failed tests (ExifTool itself is unchanged)

July 24, 2024 - Version 12.90

- Added support for reading Samsung trailer from PNG images
- Decode two more formats of timed GPS from MP4 videos
- Decode a few more Samung trailer tags (thanks Neal Krawetz)
- Decode Canon AntiFlicker tag
- Drop Nikon ShotInfo record when copying MakerNotes from NEF to JPG if it is larger than 50000 bytes (then MakerNotes would be too large for a single JPEG segment)
- Changed exiftool shebang to use env: "#!/usr/bin/env perl -w"
- Revert change of 12.84 to iterate through sub-documents with the -p option only if -ee is used

July 12, 2024 - Version 12.89

- Added new Sony lenses and updated decoding of some tags (thanks Jos Roost)
- Minor change to description of NKA files
- Fixed Archive::Zip problem in Windows executable version

July 11, 2024 - Version 12.88 - "New Windows/MacOS packages"

- NOTE: The install procedure for the Windows executable has changed!
- Windows EXE version now uses Oliver Betz's bundle with Strawberry Perl and comes in 32- and 64-bit versions
- MacOS distribution now uses a flattened package
- Added ability to read/write deflate-compressed XMP in HEIC files
- Added a new Canon LensType (thanks Norbert Wasser)
- Added a new XMP-GCamera tag (thanks Herb)
- Added a new Nikon LensID
- Added a few new Canon AFAreaMode values (thanks Wernfried)
- Added config_files/onone.config to the distribution
- Decode timed accelerometer readings from NextBase 622GW videos
- Decode Pentax K-3III CameraOrentation (thanks Peter)
- Improved German translation for LensModel
- Enhanced the API StructFormat JSONQ setting to quote all JSON values, even if they aren't in a structure
- Changed -geolocate option so specifying the Keys group writes Keys:GPSPosition only if an input city is specified, and Keys:LocationName only for input GPS coordinates
- Tweaked API Geolocation option recognized space-separated lat/lon even when there is no decimal point in the numbers
- API Changes:
  - Changed LargeFileSupport default to 1 and added a setting of 2 to warn if a large chunk is encountered

June 13, 2024 - Version 12.87

- Added ability to write Google Container XMP tags (using the namespace prefix 'GContainer' to avoid conflict with the Google Device Container prefix)
- Decode a few new tags for the Canon EOS R5 (thanks John Moyer)
- Decode battery information for the Pentax K-3 III (thanks Peter)
- Decode RAFCompression from FujiFilm RAF images (thanks Albert Shan)
- Avoid reporting FileSize for pipes
- Updated Geolocation databases from current geonames.org files
- Enhanced Geolocation feature to allow lat/lon to be input with a space separator instead of a comma
- Skip over Matroska Cluster if necessary to read Tags when referenced from SeekHead
- Changed conversion for Matroska SeekID (now in hex with tag name in brackets) and SeekPosition (now returns an absolute offset)
- Fixed problem writing XMP-Device:EarthPos coordinates
- Fixed typo in a value of Canon:DigitalLensOptimizer (thanks Martin B.)
- Fixed decoding of Matroska VideoScanType
- Fixed misleading error message when -o option was used to write to an unsupported file type

June 7, 2024 - Version 12.86

- Added a new value for a couple of Olympus tags (thanks Herb)
- Improved handling of ID3 user-defined tags
- Decode all JPEG segments from RICO box in Ricoh MOV videos
- Decode a few new values for some tags written by Canon EOS R cameras (thanks John Moyer and Martin B.)
- Patched some Olympus WB_RBLevels tags to allow 4 values to be written as per some newer models
- Fixed issue when writing IPTC date tags with a date/time value containing subseconds with 4 or more digits

May 21, 2024 - Version 12.85

- Added GeolocationFeatureType tag
- Added read support for Nikon NKA and NXD adjustment files
- Added a new Apple:ImageCaptureType value, and changed another one
- Decode a few new Pentax tags
- Decode a few new Canon tags
- Decode some Ricoh Exif metadata from MOV videos
- Extract ID3 UserDefinedText and UserDefinedURL tags by name
- Make $advFmtSelf available for user-defined helper functions
- Documented API GeoDir pseudo option feature
- Tolerate pad byte at end of HIF file when writing
- Raised priority of FileName, BaseName, Directory and FileType tags so they don't get hidden by other tags in the file which may have these names
- Changed decoding of QuickTime Rotation (irot) to correspond with EXIF:Orientation (previously this was oddly reported as degrees of counterclockwise rotation)
- Fixed a typo in the print conversion value for a couple of DPX tags
- Fixed problem writing some QuickTime tags with very large (> 16 MB) values
- Fixed bug in build_geolocation utility that resulted in incorrect population numbers when run under ActivePerl

Apr. 23, 2024 - Version 12.84

- Added ability to read speed and accuracy_horizontal when geotagging from OpenTracks GPX files
- Decode a few more Apple tags and a new CanonVRD tag
- Enhanced Geolocation feature with the ability to return any number of nearby cities
- Allow coordinates to be entered without comma separator for the Geolocation feature as long as both coordinates have a decimal point
- Changed -p option to iterate through sub-documents if they exist even if -ee isn't used
- Fixed long-standing bug in Windows version that didn't properly handle dates older than 50 years when writing FileModifyDate or FileCreateDate
- Fixed API TimeZone option to work in Windows
- Fixed problem where the SetTags helper function didn't properly copy tags which have print conversions
- Fixed problem where a new subregion couldn't be added through a user-defined Geolocation database entry
- Fixed problem where the API GeolocFeature option didn't work for some features if a user-generated custom database was used

Apr. 18, 2024 - Version 12.83

- Added SetTags helper function for use in advanced formatting expressions
- Added a couple of new tags from the DNG 1.7.1 specification
- Added a new Nikon Z lens
- Added a couple of new QuickTime tags
- Added a few more XMP-GCamera tags
- Added build_geolocation utility to the full distribution
- Decode a new CanonVRD tag and rename another one
- Updates to Sony maker note decoding for newer models (thanks Jos Roost)
- Minor change in -p option to avoid adding the trailing newline if the -b option is also used
- Minor changes to GM PDR decoding for Gear and angle measurements
- Removed Geolocation alternate language support from the standard distribution, and added PPLX feature codes
- Set family 1 group name for NextBase 'nbmt' information to "Nextbase"
- Fixed incorrect ID of a DNG tag
- API Changes:
  - Added IgnoreGroups option

Apr. 5, 2024 - Version 12.82 - "GM PDR"

- Added support for reading GM PDR data from MP4 videos written by cars such as Corvettes and Cameros
- Added support for reading timed GPS from Wolfbox dashcam videos
- Added "Unknown trailer" to QuickTime warnings originating from an unknown trailer
- Added a new Nikon LensID
- Extract PreviewImage from Chigee AIO-5 dashcam videos
- Changed name and print conversion of a recently added FujiFilm tag
- Only issue "Tag not defined" warnings for the first sub-document when using the -p option
- Fixed a Nikon Z lens name (github #250)
- Fixed Windows version so -sort works properly with -listgeo
- API Changes:
  - Added PrintCSV option for optimized extraction of GM PDR data in CSV format

Mar. 27, 2024 - Version 12.81

- Added ability to read EXIF and XMP from EXR images
- Added ability to delete unknown trailer when writing MOV/MP4 videos
- Added ability to write a couple of Stable Diffusion PNG tags
- Added ability to write one of the Microsoft Xtra Description tags (github #248)
- Added support for using alternate city names in reverse Geolocation
- Added support for reading timed GPS from DOD LS600W TS videos
- Added support for new version of Canon DR4 files
- Added a number of new iTunesInfo tags
- Added a new Olympus LensType
- Decode a number of new Nikon tags (thanks Warren Hatch)
- Allow regular expressions to be used when writing Geolocate tag
- Enhanced writing of Geolocate tag to also write Keys:LocationName
- Cache the results of the last reverse geolocation search to speed batch processing when multiple files have the same search parameters
- Patched problem that could cause runtime errors with some invaid tag names
- Fixed a couple of newly added FujiFilm tags
- Fixed decoding of FujiFilm AFAreaZoneSize
- API Changes:
  - Added GeolocAltNames option

Mar. 19, 2024 - Version 12.80

- Added GeolocationFeatureCode tag
- Added XMP-acdsee-rs tags and a new XMP-xmpDM tag
- Added ACDSeeRegion2MWGRegion conversion to config_files/acdsee.config
- Added GPSAltitudeRef to XMP-iptcExt LocationDetails structure
- Added a couple of new FujiFilm tags and a new CropMode value
- Added conversion for XMP-aux:ApproximateFocusDistance "infinity"
- Improved Geolocation regular expressions to allow negative matches
- Improved accuracy of Geolocation distance/bearing calculations
- Changed structure of Geolocation database (now version 1.02)
- Minor change to key format for user-defined Geolocation name translations
- Ignore API Geolocation option when copying tags if none of the Geolocation tags are being copied
- Fixed case/spacing of "C2PA" in some CBOR tag descriptions
- Fixed bug extracting binary data from EXR files
- API Changes:
  - Added GeolocFeature option

Mar. 15, 2024 - Version 12.79

- Improvements to new Geolocation feature:
  - Added reverse Geolocation ability (obtain GPS coordinates from city name), with support for regular expressions
  - Added ability to geolocate while geotagging
  - Added -listgeo option to list the Geolocation database
  - Added the ability to include user-defined cities in the Geolocation database
  - Added the ability to write XMP-iptcExt LocationShown tags using Geolocate feature
  - Added the ability to specify which tags to read from file for the API Geolocation option
  - Added language translations for Geolocation names
  - Increased resolution of Geolocation GPS positions and stored populations
- API Changes:
  - Save necessary data members to allow GetInfo to be accessed by user-defined tags

Mar. 5, 2024 - Version 12.78 - "Geolocation"

- Added new Geolocation feature and write-only Geolocate tag
- Added new config file entry (@Image::ExifTool::UserDefined::Arguments) to allow default command-line arguments to be specified
- Added print conversion for TIFF-EPStandardID
- Added ability to delete Nextbase information from MP4 videos
- Decode timed GPS from MP4 videos written by Nextbase software
- Decode a number of new tags from Nextbase MP4 videos
- Decode a few new tags from Garmin MP4 videos
- Extract PreviewJXL images from DNG 1.7 files
- Generate Validate, ImageDataHash and UserParam tags earlier to allow them to be used in UserDefined Composite tags
- Enhanced the -c option so a minus sign in the format specification prints a signed coordinate without a leading "+" for positive numbers
- Changed formatting of some Accelerometer tags for consistency
- Changed behaviour of -ee3 option to do a brute-force scan for freeGPS in the media data even when referenced by 'gps ' atom
- Other internal changes to decoding of timed GPS from videos
- Fixed problem were ExifTool would give up on extracting some types of timed GPS from videos after 100 void fixes
- Fixed bug that could cause runtime error when reading Ogg files
- Fixed issue where some tags from alternate files using the -fileNUM option weren't generated as requested
- API Changes:
  - Added Geolocation, GeolocMaxDist and GeolocMinPop API options

Feb. 16, 2024 - Version 12.77

- Added new Olympus CameraType and LensType value (thanks herb)
- Added a new Canon Irix LensType
- Added the ability to delete MacOS XAttrMDItemWhereFroms
- Decode a few new Canon DPP tags (thanks John Moyer)
- Decode timed GPS from Adzome GS65H MOV videos
- Improved handling of XML-unfriendly characters in JSON field names (fixes issue where -X option could produce invalid XML when reading JSON with the -struct option)
- Fixed decoding of ShutterCount for Canon G5X-ii CR3 files

Jan. 31, 2024 - Version 12.76 (production release)

- Properly implement patch of 12.45 to avoid duplicating raw data when writing Sony ARW images where the raw data is double-referenced as both strips and tiles
- Improved handling of bad offsets in HtmlDump output

Jan. 30, 2024 - Version 12.75 (production release)

- CORRUPTION WARNING: Fixed bug introduced in 12.45 which could result in corrupted Sony ARW images from some newer models when rewriting lossless compressed ARW images which were previously edited by 12.44 or earlier (the corruption is repairable, but requires a special version of ExifTool)
- Added ability to read C2PA JUMBF metadata from PDF and SVG files
- Added ability to extract JUMBF metadata as a block
- Added read support for C2PA (JUMBF-format) files
- Removed "date before 1970" warning entirely since 64-bit systems should be able to handle dates in this range
- Improved Canon FocusMode decoding
- Fixed bug introducd in 12.74 which could cause "Undefined subroutine" runtime error when reading MIE files

Jan. 23, 2024 - Version 12.74

- Added a couple of new Nikon lenses (thanks Chris)
- Added write support for a few new QuickTime Keys tags
- Decode ShutterCount for Canon EOS R5 (thanks John Moyer)
- Improved error messages in the case of file read errors
- Enhanced tag name strings (eg. -if and -p option arguments) to allow values of multiple matching tags to be concatenated when a group name of "All" is specified
- Enhanced -p option to add -p- feature which avoids adding trailing newline
- Changed warning from "Shift results in negative time" to "Shift results in date before 1970"
- Patched calculation of GPSDateTime for the timed metadata in Track3 of Garmin videos so the API QuickTimeUTC option is no longer required
- Fixed conversion error when writing QuickTime:GoogleTrackDuration
- Fixed misidentification of non-TIFF-format files containing DNGVersion tag
- Fixed bug where Avoid-ed XMP structures could be created when writing another same-named structure
- Internal Changes:
  - Changed form of all new() calls to accommodate backward incompatibilities in recent versions of Perl
  - Changed order of InsertTagValues() arguments
  - DateFmt() now returns value of formatted date/time string

Jan. 10, 2024 - Version 12.73

- Added write support for Leica XMP-xmpDSA tags
- Added read support for timed GPS from Yada RoadCam Pro 4K dashcam videos
- Added read support for PNG cpIp chunk
- Added range checks on lat/long values when writing QuickTime:GPSCoordinates
- Decode a number of new values for Ricoh GR III tags
- Decode a new Leica tag
- Improved handling of Brotli compression errors
- Enhanced API NoWarning option to also apply to app "Warning:" outputs
- Identify PNG Plus files
- Changed name of Pentax ISOAutoParameters to ISOAutoMinSpeed and improved decoding
- Fixed writing of date/time tags in XMP-xmpMM:Pantry structure
- API Changes:
  - Added LimitLongValues option to provide control over tags which previously had a hard-coded length limit

Dec. 29, 2023 - Version 12.72

- Added read support for AAC audio files
- Added a new QuickTime Keys Android tag
- Added a number of new values for some Ricoh GR III tags
- Decode timed metadata from Intsa360 Ace Pro MP4 videos
- Decode GPSDateTime milliseconds in timed Insta360 metadata
- Decode timed metadata from INNOV K5 TS videos
- Decode a number of new GoPro timed-metadata tags
- Decode a few new Xiaomi EXIF tags
- Fixed writing of JPG/ARW images from some newer Sony models to preserve HiddenData

Dec. 21, 2023 - Version 12.71

- Added a warning if there was an error reading an alternate file with the -fileNUM option
- Added the ability to write QuickTime Keys:Encoder
- Added a few new Canon LensType values (thanks Norbert Wasser)
- Added a new, obscure EXIF tag (thanks Neal Krawetz)
- Decode real-time metadata from Ricoh Theta videos
- Decode SpecularWhiteLevel for more Canon models (github #232)
- Decode Canon DualPixelRaw tag (thanks John Moyer)
- Decode a few new Nikon tags (thanks Warren Hatch)
- Decode more FujiFilm M-RAW tags (thanks Greybeard)
- Improved generation of tag names for some JSON tag ID's containing colons
- Fixed "Undefined subroutine" error when writing makernotes as a block
- Fixed missing ID in family 7 group name for ID3 tags which are not valid for the specified ID3 version
- Fixed bug where some tags from alternate files (with the -fileNUM option) could show up as "not defined" when used in expressions even though they did exist
- API Changes:
  - Added NoMandatory option

Nov. 19, 2023 - Version 12.70 (production release) - "20th Anniversary"

- This marks the 20th anniversary of the initial ExifTool release!
- Added ability to read/delete C2PA CAI JUMBF metadata from TIFF-based images (eg. DNG), QuickTime-based files (eg. MP4) and WebP images, and read JUMBF from other RIFF-based files (eg. WAV, AVI), GIF images and ID3v2 metadata
- Added read/write support for JPH images
- Added ability to read Leica Q3 maker notes
- Added ability to recognize and write FujiFilm M-RAW RAF images (multiple raw images in a single file) and the ability to read preview-less RAF images
- Added support for reading a number of obscure Microsoft EXIF tags
- Added a few new Sony lenses and support for the ILCE-9M3 (thanks Jos Roost)
- Added a couple of new Panasonic Leica lenses
- Added a couple of new Canon RF lenses (thanks Norbert Wasser)
- Added a number of new CPUType values for ELF executables
- Added some new Olympus CameraType values
- Decode a few more ID3v2.2 tags (github #142)
- Decode a few new Canon G5X Mark II tags (thanks Martin B.)
- Decode WB_RGGBLevels for a few more Nikon cameras
- Extract information from FujiFilm M-RAW header
- Improved decoding of a few Nikon Z tags (thanks Warren Hatch)
- Marked misspelt XMP-drone-dji:GPSLongtitude tag to Avoid when writing
- Changed RIFF MaxDataRate conversion to use SI prefixes by default
- Fixed decoding of unknown ColorBalance information for some Nikon models
- Fixed an incorrect Nikon Z LensID
- API Changes:
  - Added ByteUnit option

Oct. 26, 2023 - Version 12.69

- Added support for DNG version 1.7.0.0
- Added a new XMP-GCamera tag
- Added a number of new Nikon Z lenses (thanks Warren Hatch and Stefan)
- Added a number of new XMP-crs tags
- Extract XML metadata from some Hasselblad images
- Tweaked -fast2 option to read metadata from inside mdat atom of HEIC images
- Patched FFF reader to be more tolerant of the mess made by incompetent Hasselblad programmers (wrong IFD count for some values)
- Patched WebP reader to be more tolerant of the mess made by incompetent Google programmers (EXIF with wrong header and XMP with wrong ID)
- Fixed writing of MakerNotes as a block to CR3 images (now properly stored in the CMT3 chunk instead of the ExifIFD) and added ability to delete them from the ExifIFD of CR3 images
- Fixed problem which could cause runtime error when copying MakerNotes from a file that contains multiple maker note blocks
- Fixed problem which could cause "use of uninitialized variable" warnings when reading images from some Nikon cameras
- Fixed List type for new XMP-photomech:CreatorIdentity tag

Oct. 16, 2023 - Version 12.68

- Added preliminary read support for XISF images
- Added the ability to delete CAI JUMBF metadata from PNG images
- Added support for writing Canon burst-roll CR3 images
- Added a new Nikon Z9 SubjectDetection value, and improved Zf support (thanks Warren Hatch)
- Added a couple of new PentaxModelID values
- Added a few couple of new tag values for the Pentax K-3 Mark III Monochrome (github #226)
- Added a new XMP-photomech tag
- Added a new QuickTime ItemList tag
- Added a new Nikon LensID
- Added a new Canon LensType
- Support decimal values for FujiFilm ShadowTone and HighlightTone tags
- Decode some new Sony tags (thanks Jos Roost)
- Decode ShutterCount for Canon EOS R6 (thanks Martin B.)
- Decode QuickTime VideoFullRangeFlag
- Decode JPGCompression for the Nikon D3S
- Enhanced -geotag feature to allow writing QuickTime:GPSCoordinates
- Renamed Panasonic HDRShot tag to MergedImages (forum 15298)
- Fixed problem where some NEF files were misidentified as NRW

Sept. 19, 2023 - Version 12.67

- Added a new Pentax LensType (thanks dmont)
- Added a new FujiFilm FilmMode and FaceElementTypes values (thanks Greybeard)
- Fixed error writing new DataMining tag where URI prefix wasn't being properly added to the value

Sept. 19, 2023 - Version 12.66

- Added a few new Canon LensType values (thanks Norbert Wasser)
- Added conversions for a few Apple:ImageCaptureType values
- Added new XMP tag for PLUS version 2.0.1
- Added a new CanonModelID (thanks Laurent Clevy)
- Decode another tag from Canon 1DS raw images (Hubert Figuière, github #219)
- Decode JPGCompression for newer Nikon models (thanks Warren Hatch)
- Fixed bug introduced in 12.65 where duplicate tags were not returned even when the groups where specified explicitly
- API Changes:
  - Added WindowsWideFile option

Aug. 10, 2023 - Version 12.65

- Added a new QuickTime Keys tag
- Added a new CanonModelID (thanks Laurent Clevy)
- Added a new Canon LensType (thanks Norbert Wasser)
- Added number in brackets to converted Samsung MCCData value
- Decode a number of new Sony tags (thanks Jos Roost)
- Decode a few new FlashPix tags (github #217)
- Improved decoding of Nikon Z9 firmware 4.0 tags (thanks Warren Hatch)
- Improved parsing of PDF:Keywords to support semicolon-separated lists
- Enhanced -api option to show list of available options if no argument is provided
- Lowered priority of IFD1 tags in ARW images so IFD0/SubIFD take precedence
- Changed QuickTime tag names for atID (AlbumTitleID to ArtistID) and plID (PlayListID to AlbumID) (github #216), and added cmID (ComposerID)
- Changed Apple:MediaGroupUUID tag name back to ContentIdentifier
- Patched the -d option to handle the %s format code internally when writing (avoids problems due to inconsistent behaviour of this format code in the strptime function on different systems)
- Patched patch of version 12.32 to restore ability to read from named pipes
- Fixed bug which could cause a hang when processing a corrupt BigTIFF image
- Fixed document number for auxiliary image metadata in HEIC files
- Fixed misspelt Apple tag name (thanks Neal Krawetz)
- API Changes:
  - Added AvailableOptions method

June 28, 2023 - Version 12.64

- Added a new Sony LensType (thanks Jos Roost)
- Added config_files/guano.config to the distribution (thanks StarGeek)
- Added support for Garmin Low-resolution Video (GLV) files
- Added JUMBF to the list of deletable groups
- Added (untested) read support for spherical video tags in Matroska videos
- Decode a number of new Nikon Z9 tags (thanks Warren Hatch)
- Decode AmbisonicAudio tags in spherical MP4 vidoes
- Decode another Apple tag
- Improved French translations (thanks Philippe Bonnaure of GraphicConverter)
- Patched to allow writing QuickTime-based videos where the audio/video sample description comes after the sample pointers
- Fixed parsing of GPS from Insta360 videos to properly skip void fixes
- Fixed problem where Apple iPhone 14 images produced invalid XML in -X output when using -struct option
- API Changes:
  - Added StructFormat option to allow JSON-format serialized structures
  - Added NoDups option to eliminate duplicate items from queued values when writing List-type tags

June 8, 2023 - Version 12.63

- Added ability to read/write/create Brotli-compressed metadata in JXL images (requires IO::Compress::Brotli)
- Added partial support for Exif 3.0 specification:
  - Added new EXIF tags
  - Added MPF Original Preservation Image type
  - Support for reading 'utf8' values (but still write only as 'string')
- Added support for Adobe XMP-hdrgm (HDR Gain Map) tags
- Added support for reading 7z files (thanks Amir Gooran, github #205) (but currently this doesn't work for the Windows .exe version because I haven't been able to install Compress::Raw::Lzma for ActivePerl)
- Added XMP-panorama tags
- Added warning if -csv is used with -p
- Added warning if trying to geotag from a UTF-16 track log
- Decode ImageWidth/Height from JXL images using partial codestreams
- Decode more Sony tags for some newer models (thanks Jos Roost)
- Extract GainMapImage (hrgm box) from JXL files
- Extract Guano information from WAV files
- Enhanced ImageDataMD5 feature and renamed to ImageDataHash (with ImageDataMD5 alias for backward compatibility)
- Changed RARVersion tag name to FileVersion
- Fixed bug introduced in 12.46 which could cause a hang when reading a corrupted RIFF-based file
- Fixed writing of Composition:GPSPosition when -n is used
- API Changes:
  - Added ImageHashType option

May 3, 2023 - Version 12.62

- Added basic read support for WPG images
- Added ImageDataMD5 support for HEIC images
- Added support for RAR version 5.0 files (thanks Amir Gooran, github #203)
- Added a few new XMP-aux tags (thanks John Ellis)
- Made Composite tags available for use in -fileNUM argument
- Better handling of FlashPix VT_EMPTY value
- Fixed "Can't write" error when specifying a .webp file for the -o option
- API Changes:
  - Added NoWarning option

Apr. 24, 2023 - Version 12.61

- Added ImageDataMD5 support for J2C and JXL images
- Added support for PDF 2.0 (specification is finally freely available)
- Added ability to extract timed Accelerometer data from Azdome GS63H MP4 videos which don't contain GPS
- Added some new Sony lenses (thanks Jos Roost)
- Decode some new tags for the Sony ZV-E1 (thanks Jos Roost)
- Decode more tags for the Nikon Z30 (thanks Xavier)
- Enhanced -fileNUM option to allow tags from the main file to be used in the file name string
- Validate sample offset and size when calculating ImageDataMD5 for MP4 videos (note: may change ImageDataMD5 value for videos where audio data runs past end of media data)
- Return error when attempting to write a fragmented JXL file
- Improved robustness for determining image size for corrupted JPEG
- Patched to allow Insta360 GPS records of unexpected length and tweaked verification algorithm to determine validity of these records
- Fixed bug introduced in 12.57 where -progress:%f gave runtime warnings
- Fixed "--" option to ignore subsequent -common_args option
- Fixed incorrect ImageDataMD5 for Sony A100 ARW images
- Fixed problem reading new XMP-et:OriginalImageMD5 tag

Apr. 5, 2023 - Version 12.60 (production release)

- Added a new Sony FileFormat value
- Added Validate warning about duplicate EXIF
- Added ability to edit JPEG APP1 EXIF segment with incorrect header
- Decode a few new Sony ARW tags
- Improved -htmldump of non-EXIF-based maker notes
- Enhanced -geotag from CSV files support GPSSpeed (with variable units), "bearing" for GPSTrack, and GPSDateTime in format "dd.mm.YYYY HH:MM:SS"
- Enhanced ImageDataMD5 to also support CRW, RAF, X3F and AVIF images
- Enhanced -efile option to also record updated and created file names
- Family 8 group names may now also be used in Composite Require/Desire tags
- Fixed handling of undefined tags in -if conditions to conform with documentation and match -p and -tagsFromFile behaviour when -m or -f option is used
- Fixed problem where setting the Geotime value didn't work when using an advanced-formatting expression containing a greater-than symbol (>)

Mar. 28, 2023 - Version 12.59

- COMPATIBILITY WARNING: Changed the calculated ImageDataMD5 for JPEG images to include all data from the SOS to the EOI (including the SOS marker but not the EOI marker)
- Added new -fileNUM option to load tags from alternate files
- Added family 8 groups for accessing tags from alternate files
- Added new XMP-et:OriginalImageMD5 tag for storing ImageDataMD5 value
- Added verbose ImageDataMD5 message for JPEG files
- Added a new Nikon LensID (thanks Warren Hatch)
- Decode a new Olympus tag and improved decoding of another (thanks Herb)
- Decode a couple of new PanasonicRaw tags
- Decode image coordinates for a couple more VNT object types
- Enhanced ImageDataMD5 to also support MRW, CR3, IIQ, PNG, MOV/MP4 and some RIFF-based files
- Improved verbose messages when deleting NikonApp trailer
- Patched to avoid structure warnings when copying tags from Nikon files containing NKSC metadata
- Fixed %-C filename format code to work properly with the -fileOrder and -progress options
- Fixed potential ValueConv warning when reading LIF files
- API Changes:
  - Added SetAlternateFile method

Mar. 15, 2023 - Version 12.58

- Added Extra ImageDataMD5 tag to calculate MD5 of image data only
- Added support for reading DJI APP4 and APP7 JPEG segments
- Added a new SonyModelID value
- Decode a few new Nikon tags (thanks Warren Hatch)
- Downgraded "Windows file times" to a minor warning when Win32::API or Win32API::File is not installed while reading metadata
- Patched possible runtime warning when API IgnoreTags option is used to ignore FileType
- Fixed problem extracting NetName from Windows LNK files
- Fixed issue where the %C filename format code would increment the count on an output filename collision, but it is supposed to count the input files

Feb. 23, 2023 - Version 12.57

- Added two new Nikon Z lenses (thanks LibRaw)
- Added a new Sigma LensType (thanks LibRaw)
- Added a new Olympus LensType (thanks Herb)
- Decode more new Nikon tags (thanks Warren Hatch)
- Decode Photoshop LayerColors, LayerSections and LayerVisible tags
- Improved Verbose output for QuickTime-format files
- Set family 1 group name for Garmin GPS from uuid atom
- Enhanced -progress option to allow message to be displayed every NUM files
- Significant improvements to parsing of Nikon ShotInfo records for newer models
- Removed hex dump of APP segments from -v3 output when writing
- Fixed bug writing negative MIE GPS coordinates
- Fixed bug where a duplicate XMP could be generated when writing XMP to a JPEG XL image which already contained XMP
- Fixed problem where HEAD lines may be duplicated in an output file if the -p option was combined with -w+ or -W+

Feb. 9, 2023 - Version 12.56

- Added support for VNT files (both Scene7 Vignette and V-Note document)
- Added read support for InfiRay IJPEG metadata (thanks Marcos Del Sol Vives)
- Added some new Sony LensType values (thanks Jos Roost and François Piette)
- Added a new FujiFilm VideoRecordingMode value (thanks Greybeard)
- Added two new Canon LensTypes and CanonModelIDs (thanks Norbert Wasser)
- Added ability to extract semantic images from Apple ProRaw DNG files
- Added read support for the PNG cICP chunk
- Decode more Nikon tags (thanks Warren Hatch)
- Extract PreviewImage from Insta360 trailer record 0x200
- Extract EmbeddedImageRectangle and some other new tags from VNT files
- Minor improvement to arg_files/xmp2exif.args (thanks StarGeek)
- Enhanced -ee option to extract metadata from all frames of a multipart EXR image
- Removed EXR Layout tag and incorporated into new Flags tag
- Patched possible hang problem when reading corrupted .rm audio files

Jan. 17, 2023 - Version 12.55

- Added support for geotagging from FlightAware KML files
- Decode two more types of timed GPS from MOV/MP4 videos (66 types now)
- Decode a few new Nikon tags (thanks Warren Hatch)
- Decode a new Samsung HEIC tag
- Decode FujiFilm RollAngle
- Fixed bug where the FlatName property wasn't working properly for some user-defined structure tags

Jan. 6, 2023 - Version 12.54

- Decode a number of new Apple tags (thanks Frank Rupprecht)
- Increased precision of Sony FocusDistance2 conversion
- Fixed problem where GPSAltitude wasn't being set when geotagging from KML files
- Fixed bug writing HEIC/AVIF files which have a zero-sized mdat (ie. media data extends to end of file) which could cause an incorrect mdat size to be written

Jan. 4, 2023 - Version 12.53

- Added support for a number of new XMP tags written by ACR 15.1
- Added a new Nikon LensID
- Decode timed GPS from Lamax S9 dual dashcam MOV videos
- Decode a number of new Nikon tags (thanks Warren Hatch)
- Decode a couple of new Canon tags (thanks John Moyer)
- Decode FujiFilm BWMagentaGreen tag
- Enable block-write of EXIF to JXL files
- Accept values of "now" and "Z" when writing EXIF OffsetTime tags
- Changed priority of XMP when reading/writing HEIC files so that it is no longer preferred as with other QuickTime-based formats
- Changed family 1 group name of Canon DR4 tags from CanonVRD to CanonDR4 to allow newer tags to be differentiated from older ones. The family 0 group name for both remains CanonVRD
- Patched to recognize JXL EXIF box with non-zero header length
- Patched to avoid runtime error when writing a PDF with an Info dictionary which was stored incorrectly as a direct object
- Fixed problem writing EXIF to JXL images where a new EXIF box was created even if one previously existed

Dec. 6, 2022 - Version 12.52

- Added a few new Nikon LensID's (thanks LibRaw and Chris)
- Added Slovak translations (thanks Peter Bagin)
- Made SphericalVideoXML readable/writable as a block
- Improved handling of Matroska metadata tags, including language support
- Improved French translations (thanks Philippe Bonnaure of GraphicConverter)
- Improved Composite:GPSAltitude conversion to honour -lang setting
- Improved -v2 messages to indicate files extracted from zip archives

Nov. 21, 2022 - Version 12.51

- Added a new Olympus LensType (thanks Herb)
- Extract C2PA CAI JUMBF metadata from PNG images and extract C2PA Salt values
- Decode NikonSettings for Z9 firmware 3.0 (thanks Warren Hatch)
- Decode additional camm metadata from Insta360 Pro2 MP4 videos
- Improved Verbose output when writing Composite tags to add a "+" sign to indicate related tags that are being written
- Enhanced -geotag option CSV format to support GPSImgDirection column
- Fixed problem where -w+ option didn't work in Windows if there were Unicode characters in the path name
- Fixed problem where only the last image of the sequence was extracted (multiple times) when using -ee2 to extract embedded images from FLIR SEQ files
- Fixed issue where GPS reference directions may be unknowingly written when using ExifTool 12.44 or later to write GPSLatitude or GPSLongitude without specifying a group name. The fix was to Avoid writing the Composite tags unless the Composite group is specified explicitly
- Fixed -geotag to write orientation and track tags even if some tags in the category were missing
- Fixed inconsistency in selecting which tag to output with the -json option when multiple tags with the same JSON key exist and the -TAG# feature is used to disable print conversion
- Fixed problem writing QuickTime:PlayListID
- Fixed problem writing QuickTime tags when specifying tag ID (ie. family 7 group) as well as a language code

Nov. 8, 2022 - Version 12.50 (production release)

- Added a new XMP-GCreations tag
- Added a few new Sony lenses (thanks Jos Roost)
- Added new SonyModelID and Olympus CameraType values (thanks LibRaw and Herb)
- Added a couple of new XMP tags (thanks José Oliver-Didier)
- Added a new Nikon Z lens (thanks LibRaw)
- Added a new Canon LensType and CanonModelID (thanks Norbert Wasser and LibRaw)
- Added some new Pentax lenses (thanks LibRaw)
- Added experimental support for timed GPS in TS videos from Jomise T860S-GM dashcam (more samples are needed for this to be finalized)
- Decode information written in "skip" atom of 70mai Pro Plus+ MP4 videos
- Decode timed accelerometer data from Kenwood dashcam MP4 videos
- Decode a few new Nikon Z9 tags (thanks Stefan Grüßen)
- Decode ColorData for some newer Canon models (thanks LibRaw)
- Decode a number of new tags for the Sony ILCE-7RM5 (thanks Jos Roost)
- Updated IPTC XMP tags to correspond with new Photo Metadata 2022.1 standard
- Extract JPEG previews from FujiFilm HIF images
- Changed -if option so multiple -if options are evaluated at the lowest specified -fast level
- Changed MIMEType for ICO and CUR files
- Enhanced -fast2 so it stops processing QuickTime files at mdat atom
- Enhanced -listx output so -f also indicates the ID of the parent structure for Flattened tags
- Improved conversion of IPTC date-only and time-only tags to allow formatting with the -d option
- Improved Canon and Nikon TimeZone tags to accept a wider variety of input formats when writing
- Disabled extraction of Nikon Z9 MenuSettings for firmware 3.0 until they can be properly decoded (thanks Warren Hatch)
- Fixed decoding of AF points for some newer Nikon models
- Fixed inconsistent year and time zone for Kenwood dashcam timed GPS in MP4 videos

Oct. 19, 2022 - Version 12.49

- Added read support for Windows ICO and CUR files
- Added ability to shift EXIF OffsetTime tags (eg. "-OffsetTime+=+02:00")
- Added a few new XMP tags and print conversions
- Added a print conversion for Photoshop:PrintFlags
- Added a new SonyModelID (thanks LibRaw)
- Added a few new Canon RF LensType values (thanks Norbert Wasser)
- Added a new Canon LensType
- Added a new Nikon LensID
- Decode 'riff' metadata blocks in FLAC audio files
- Decode RIFF 'acid' chunk written by Acidizer
- Enhanced the -d option %f sub-second date/time format code to allow the decimal point to be dropped (eg. "%-3f")
- Patched another Sigma Photo Pro incompatibility when writing X3F images (Sigma will also fix this at their end in the next SPP release)

Oct. 13, 2022 - Version 12.48

- Added support for new XMP-photoshop:CameraProfiles structure
- Added a new SonyModelID and Sony LensType (thanks Jos Roost)
- Decode more tags for the Sony ILME-FX30 (thanks Jos Roost)
- Decode a couple of new Panasonic tags, and improved decoding of others
- Decode STANAG-4609 MISB timed metadata from M2TS videos
- Decode a new Nikon tag (thanks Warren Hatch)
- Decode a couple of new FujiFilm tags (thanks Honza Pokorny)
- Improved round-off errors when writing QuickTime:MatrixStructure via the Composite:Rotation tag
- Increased Verbose level of "nothing changed" message added in 12.45
- Removed "Z" (Zulu) designation from some of the MS-DOC date/time tags because they most certainly are in local time as written by Word 2011 for Mac (while some other MS-DOC and FlashPix date/time tags extracted without a "Z" are actually in Zulu time -- a bit of a mess really)
- Prevent dynamically-generated Unknown tags from being extracted when the -validate option is used without -u
- Patched to better handle irregular timestamps in streaming GPS of Nextbase dashcam videos
- Fixed incompatibility with Sigma Photo Pro which could result in Sigma Photo Pro corrupting an ExifTool-edited X3F image (the section length in the footer needed to include the padding to a 4-byte boundary, thanks Sigma engineer Yuki Miyahara)
- Fixed problem which could prevent ExifTool from reading all GPS points from some INNOV M2TS videos

Oct. 3, 2022 - Version 12.47

- Added a new Nikon LensID (thanks David Püschel)
- Fixed bug introduced in 12.46 which resulted in a runtime error when -j was combined with -b

Oct. 1, 2022 - Version 12.46 - "Write WEBP"

- Added WEBP write support
- Added the abilty to write Panasonic GH6 RW2 files
- Added a new Canon LensType
- Added a number of new Sigma LensType values (thanks LibRaw)
- Added support for BigTIFF format code 16 in Apple ProRaw maker notes
- Added config_files/frameCount.config to extract MP4 FrameCount
- Added a MIE OriginalImageSize tag
- Added some extra -validate checks for RIFF-based file formats
- Extract FrameRate from MP4 tmcd box
- Decode a new Apple tag (thanks Neal Krawetz)
- Decode more information from Nikon Z-camera videos
- Decode streaming GPS from Garmin DriveAssist 51 MP4 videos
- Changed the names of two FujiFilm FirmwareVersion tags
- Enhanced WEBP FileType identification to denote Extended WEBP
- Preserve fractional seconds when extracting Samsung TimeStamp times
- Patched to avoid reporting Photoshop:ProgressiveScans unless PhotoshopFormat is Progressive
- Patched to test QuickTime UserData tags with default 0x0000 language code to see if they contain UTF8 characters, and if so assume UTF8 encoding and ignore the CharsetQuickTime setting
- Patched to avoid potential deep recursion when reading/writing malicious CRW images
- Fixed "Invalid ID3 frame size" problem when reading ID3v2 with an extended header (very uncommon, but Audacity uses this)
- Fixed typo in the name of a new DNG 1.6 tag
- Fixed some verbose warnings when reading Nikon Z-camera NEF files
- Fixed decoding of a couple of Nikon Z9 tags for newer firmware versions (thanks Warren Hatch)

Sept. 16, 2022 - Version 12.45

- Added new IPTC Video Metadata version 1.3 tags
- Added a couple of new Canon lenses (thanks Norbert Wasser)
- Added a new Sony LensType (thanks Jos Roost)
- Added known Unknown value for IPTC ChromaticityColorant (thanks Herb)
- Added new Nikon WhiteBalanceFineTune tag (thanks Miloš Komarčević)
- Extract the raw thermal data from all frames of a SEQ file when -ee2 is used
- Decode individual tags in QuickTime ColorRepresentation
- Decode a new Matroska tag
- Improved verbose "nothing changed" messages when writing
- Patched -ee option to extract metadata after the first Cluster in MKV videos (previously only -U and -v did this)
- Patched to differentiate Java bytecode .class files from Mach-O fat binaries
- Patched to avoid "Use of uninitialized value" warning when deleting GPS coordinates via the newly writable Composite tags
- Patched to avoid duplicating raw data when writing Sony ARW images where the raw data is double-referenced as both strips and tiles (affects ARW images from some newer models like the ILCE-1 when SonyRawFileType is "Lossless Compressed RAW 2")
- Patched to avoid "fixing" the order of IFD entries in TIFF-based RAW files to improve compatibility with some RAW viewers
- Minor change to Composite FileNumber to remove "-" when -n is used
- Fixed problem extracting some timed metadata when "-api ignoretags=all" was used with "-api requesttags" to request the specific information
- Fixed -validate feature to avoid incorrectly warning about non-capitalized boolean values in XMP

July 21, 2022 - Version 12.44

- Added a few new Sony lenses (thanks Jos Roost)
- Decode Accelerometer and Gyroscope data from ARCore videos
- Decode a couple of new Motorola tags (thanks Neal Krawetz)
- Decode FujiFilm FirmwareVersion (thanks Justin Arkinson)
- Decode MetaType for timed metadata in videos
- Decode a number of new Nikon Z tags (thanks Warren Hatch)
- Extract more types of embedded images from FlashPix-format files
- Made Composite GPSLatitude and GPSLongitude writable for setting GPS coordinates and reference directions with one assignment
- Fixed bug introduced in 12.39 which broke extraction of timed GPS from some INNOVV videos
- Fixed bug introduced in 12.43 which broke extraction of timed GPSDateTime from Insta360 videos

July 6, 2022 - Version 12.43

- Added the ability to geotag from Google Takeout JSON files
- Added a few new Canon RF LensType values and a couple of new CanonModelID's (thanks Norbert Wasser)
- Added new values to a couple of FujiFilm tags (thanks Greybeard)
- Added a new Nikon LensID (thanks BertJan Bakker)
- Recognize Autodesk Revit files (but don't yet support reading metadata)
- Decode DriveSerialNumber from LNK files (github #145)
- Decode Apple FocusDistanceRange (thanks Neal Krawetz)
- Made a number of Sony SR2SubIFD tags writable
- Tolerate dashes instead of colons as date separators in -geotag CSV files
- Patched to read new format accelerometer data from Insta360 files
- Patched to avoid outputting some Unknown tags when the -validate option is used after a previously -execute'd command used the -u option
- Fixed names of Canon G9 WB levels tags (changed from GRGB to GRBG) (thanks Christoph)
- Fixed typo in new Olympus AISubjectTrackingMode value
- Fixed "use of undefined value" warning when reading DJI metadata
- API Changes:
  - Added IgnoreTags option

June 1, 2022 - Version 12.42 (production release)

- Added support for reading maker notes from Panasonic DC-GH6 videos
- Added conversion for Samsung MCCData
- Added a new Nikon LensID (thanks Chris)
- Added a few new Canon LensType values
- Added a couple of new Olympus StackedImage values (thanks Eberhard)
- Added a few new values for some Nikon Settings tags (thanks Warren Hatch)
- Added a "lang:" element to the -json output for alternate language tags when -D, -H or -t is used
- Update DNG writer to not issue an error when writing DNG 1.6 files
- Decode information from DJI "ae_dbg_info" maker notes
- Decode Olympus AISubjectTrackingMode
- Changed ExifTool FileSize print conversion to use kB/MB/GB units instead of KiB/MiB/GiB
- Changed "is not shiftable" warning to appear in -v (instead of just -v3) output
- Patched to allow PDF Encrypt object to be "null"
- Fixed bug reading ICC_Profile 'meta' tags

Apr. 7, 2022 - Version 12.41

- Added support for "OM SYSTEM" maker notes
- Added 2 new Sony LensType values (thanks Jos Roost)
- Added some new Canon lenses (thanks LibRaw)
- Added a new Nikon LensID (thanks Bert Ligtvoet)
- Added a new Canon ContinuousDrive value (thanks Wolfgang Gülcker)
- Enhanced -v0 option to also print new file name when renaming, moving or copying a file
- Updated xmp2exif.args and exif2xmp.args helper files to reflect the IPTC Photometadata Mapping Guidelines version 2022.1
- Made "Invalid Xxx data" a minor warning for MakerNote data
- Patched to allow writing of MP4 videos which have other tracks with a missing sample description entry
- Patched MacOS version to specify directory for external utilities (setfile, xattr, stat, mdls and osascript from /usr/bin, and tag from /usr/local/bin)
- Fixed long-standing problem where Windows version could behave differently for -if conditions containing undefined tags
- Fixed problem where -W+! combined with -j or -X produced invalid JSON or XML when processing multiple files
- Fixed potential "uninitialized value $time in division" runtime warning when reading MP4 videos

Feb. 9, 2022 - Version 12.40

- Added PageCount tag to return the number of pages in a multi-page TIFF
- Added a new Nikon LensID (thanks Wolfgang Exler)
- Added a few more Sony LensTypes (thanks Jos Roost)
- Decode some new Canon tags (thanks Mark Reid)
- Decode another Nikon Z9 tag (thanks Warren Hatch)
- Decode Nikon NKSC GPSImgDirection (thanks Olaf)
- Improved handling of empty XMP structures in lists
- Tolerate leading UTF-8 BOM in -geotag log files
- Updated photoshop_paths.config to include WorkingPath
- Patched to allow writing of MP4 videos which have url tracks with a missing sample description entry
- Fixed deep recursion error when reading multi-page TIFF images with more than 100 pages
- Fixed potential deep recursion runtime error when writing nested XMP structures
- Fixed warning which could be generated when writing new Composite:GPSCoordinates tag
- Fixed description of GPR (General Purpose RAW) file type
- Fixed typo in the name of a new Nikon tag (thanks Herb)

Jan. 13, 2022 - Version 12.39

- Added a new Pentax LensType (thanks Christian Shulz)
- Added a couple of new Nikon LensID's
- Added support for Nikon NKSC sidecar files
- Decode another type of timed GPS from MP4 videos
- Decode more tags for the Nikon Z7 and Z9 (thanks Warren Hatch)
- Decode a couple more FLIR tags
- Extract ZIP file comments
- Made PNG ProfileName, SRGBRendering and Gamma writable
- Patched to avoid possible problem running "more" to show documentation in Windows version
- Fixed problem writing Composite:GPSPosition with coordinates in DMS format, and made this tag protected when writing
- Fixed bug where invalid date/time tags could be written to PNG files when attempting to shift a non-existent date/time tag
- Fixed spelling of a few Matroska tag names (thanks Martin Hoppenheit)

Dec. 20, 2021 - Version 12.38

- Decode a number of new tags for the Nikon Z9 (thanks Warren Hatch)
- Patched incorrect decoding of AEBShotCount for the Canon EOS 90D
- Patched EXR reader to support long tag names
- Patched security issue (thanks Joe Lothan)
- Fixed an incorrect tag ID for a new Nikon MakerNote tag (github #108)
- Fixed XMP-exif:GPSMeasureMode conversions to match EXIF
- Fixed problem where some namespaces may be undeclared in the -X output when using the -struct option

Dec. 8, 2021 - Version 12.37

- Decode timed GPS from Vantrue S1 dashcam MP4 videos
- Decode ColorData tags for the Canon EOS R3 (thanks LibRaw)
- Decode more makernotes tags for Nikon Z cameras (thanks Warren Hatch)
- Extract TransparentColor from GIF images
- Improved parsing of input time values for GPSTimeStamp to properly handle a "." separator
- Improved warning when incorrectly using "<" instead of "=" to assign a tag value
- Shortened a few of the new obscenely-long XMP-crs tag names
- Avoid writing XMP-dwc:EventID and XMP-tiff:NativeDigest
- Avoid printing same structure twice in -j and -X output when -l is used
- Fixed typo in a QuickTime tag name (thanks Hubert)
- Fixed two XMP-crs tag names and typo in a NikonSettings value (thanks Herb)
- Fixed patch of version 12.25 to avoid writing XMP which contains an undefined namespace

Nov. 16, 2021 - Version 12.36

- IMPORTANT: Fixed bug introduced in 12.35 which corrupted JPEG 2000 images when removing all metadata with -all=
- Added feature to bypass processing of specified XMP namespaces and properties (to improve performance in cases where the XMP suffers from Adobe-editing bloat)
- Added a number of new XMP tags used by Lightroom 11.0
- Decode a number of new Nikon tags (thanks Warren Hatch)
- Made the Composite GPSPosition tag writable
- Fixed erroneous "Skipped unknown bytes after JPEG SOS" warning
- Fixed group for new writable Jpeg2000 color tags in -listx output
- Fixed problem finding files in Windows when using wildcards in file name and a drive letter with no slash

Nov. 11, 2021 - Version 12.35

- Added ability to write ICC_Profile (and other color specifications) to Jpeg2000 images
- Added %o code to -W option format string
- Added %f code to -d option for fractional seconds
- Added a couple of new Sony LensType values (thanks Jos Roost)
- Added a new CanonModelID (thanks Norbert Wasser)
- Added a new Nikon LensID
- Decode more Nikon MakerNotes tags for some new models (thanks Warren Hatch)
- Extract ThumbnailImage from some DJI drone videos
- Enhanced -ee option to extract metadata from all frames in a SEQ file
- Patched to avoid possible "Use of uninitialized value" runtime warning
- Fixed a couple of misspelt new ICC_Profile tag names (thanks Herb)
- Fixed problem generating the correct file extension when extracting OriginalRawImage from a DNG file using the -W option with the %s format code
- Fixed bug introduced in 11.91 where exiftool couldn't find its libraries when run via a soft link. Also changed to look for config file in the link target directory instead of the directory of the link itself

Oct. 27, 2021 - Version 12.34

- Added support for ICC.2:2019 (Profile version 5.0.0 - iccMAX) color profiles
- Added ability to detect/delete a Windows Zone.Identifier alternate data stream (ADS) via the new ZoneIdentifier tag (thanks Alex Xu)
- Added support for the Sony ILCE-7M4 (thanks Jos Roost)
- Added a new Sony lens (thanks LibRaw and Jos Roost)
- Added a new SonyModelID (thanks LibRaw)
- Added a new Canon RF lens (thanks Norbert Wasser)
- Improved handling of some SVG files
- Patched -overwrite_original_in_place option to open the output file in update mode rather than write mode (to allow some write optimizations on certain filesystems) (thanks Joel Low)
- Fixed case of tag ID for new XMP-iptcExt:EventID (thanks Michael Steidl)
- Fixed problem extracting ICC_Profile information from some PDF files
- API Changes:
  - Added QuickTimePad option

Oct. 16, 2021 - Version 12.33

- Added support for DNG version 1.6.0.0
- Added two new Sony LensType values (thanks Jos Roost and LibRaw)
- Added some new elements to the XMP-crs:Look structure (thanks Herb)
- Added a few new IPTC XMP tags (thanks Michael Steidl)
- Added a new Canon RF lens (thanks Norbert Wasser)
- Decode Canon ShutterMode (thanks John Moyer)
- Extract LensModel from some Olympus MOV videos
- Generate MediaDataOffset/Size for MOV videos with zero-sized mdat chunk
- Improvements to CBOR reader, including hex dump with -v3 option
- Recognize Final Cut Pro XML files
- Allow binary data of Protected tags to be extracted with the -X -j and -php options with -b by setting the API RequestAll option to 3
- Changed name of "Canon EF 80-200mm f/4.5-5.6" lens with LensType 38 to add "II" to the name (Exiv2 issue 1906)
- Fixed runtime warning when processing files with a .DIR extension

Sept. 30, 2021 - Version 12.32

- Added support for CBOR-format metadata in CAI JUMBF (note that JUMBF support is still experimental)
- Added a new Nikon LensID
- Added a new Pentax LensType
- Decode timed GPS for two more dashcam formats
- Support reference direction columns in -geotag CSV input
- Removed generation of GPSSpeedRef and GPSTrackRef tags in timed metadata for most dashcam formats when speed is km/h and track is relative to true north
- Patched to allow writing of console output to named pipes
- Fixed formatting of InternalSerialNumber for some Panasonic cameras
- Fixed bug in arg_files/xmp2exif.args support file

Sept. 22, 2021 - Version 12.31

- Added a new SonyModelID and a couple of new Sony lenses (thanks Jos Roost)
- Added a new Canon LensType (thanks Chris Skopec)
- Added Composite GPSLatitude/Longitude tags for Sony videos to combine the reference hemispheres as with the Composite tags for EXIF GPS
- Decode DPX AspectRatio
- Decode more GoPro MP4 tags
- Extract ICC_Profile from CS0 object in PDF files
- Extract encrypted GPS from Akaso V1 dashcam videos (can't yet decrypt)
- Improved handling of QuickTime iTunesInfo tags, and created new "iTunes" family 1 group for these
- Patched so NoPDFList option also applies when writing
- Patched to allow user-defined PNG TextualData tags to be written only as iTXt
- Patched PDF reader to avoid concatenating values of multiple List-type tags into a single tag

Aug. 12, 2021 - Version 12.30 (production release)

- Added read support for Portable FloatMap (PFM) images (this was a bit of a pain because they have the same file extension as Printer Font Metrix files)
- Added a few new Nikon LensID values (thanks LibRaw)
- Added a new Canon LensType
- Added a new Olympus CameraType (thanks LibRaw)
- Added minor warning about unknown data between JPEG segments
- Added a couple of new NikonSettings tags (thanks Warren Hatch)
- Added a new Sony LensType (thanks Jos Roost)
- Decode 'id3 ' chunk in WAV audio files
- Decode timed GPS from concatenated Garmin dashcam videos
- Decode SamsungTrailer information from sefd atom in HEIC images
- Decode more Sony MakerNote tags for the ZV-E10 (thanks Jos Roost)
- Decode DepthMapTiff from JPEG images of more Samsung models
- Decode timed GPS from M2TS videos of yet another type of dashcam
- Extract PreviewImage from Xaiomi MP4 videos
- Changed name of second EmbeddedImage in Samsung trailer to EmbeddedImage2
- Improved Dutch translations for GPS tags (thanks Peter Dubbelman)
- Allow ICC_Profile to be "deleted" from AVIF files (actually, the profile isn't really deleted. Instead, a zero-length profile is written to allow a profile to be added back later since QuickTime item property containers currently can't be created)
- Patched to remove 2 GB size limit when reading Photoshop ImageSourceData

July 9, 2021 - Version 12.29

- Added a few new Nikon and Olympus lenses (thanks LibRaw)
- Improved a QuickTime "File format error" message to be more meaningful, and made it a minor error
- Changed PNG writer to add EXIF before IDAT
- Some changes the way CAI JUMBF metadata is handled
- Patched to read timed GPS from a different type of INSV videos
- Patched a security issue
- Fixed problem where ExifTool could hang when processing mebx timed metadata

June 22, 2021 - Version 12.28

- Added read support for Leica Image File (LIF) images
- Added a new Olympus LensType (thanks LibRaw)
- Decode another Panasonic tag (thanks LibRaw)
- Decode more timed metadata from Sony MP4 videos
- Attempt to shorten tag names for metadata in CZI files
- Allow full QuickTime Keys tag ID's in UserDefined tags (fixes backward incompatibility introduced in 12.02)
- Patched to handle special characters in Torrent tag values

June 9, 2021 - Version 12.27

- Added a new SonyModelID value
- Added two new Nikon LensID values (thanks Daniel)
- Added a new Pentax RawDevelopmentProcess value
- Added a few new Sony LensType values (thanks Jos Roost)
- Added warning if IPTCDigest is not current
- Decode a couple more Pentax tags (thanks LibRaw)
- Decode streaming GPS from Novatek INNOVV MP4 and TS videos
- Improved tag names in config_files/covert_regions.config (thanks StarGeek)
- Changed MIME types for MS Office macro-enabled formats to add the .12
- Patched Canon LensID logic to properly identify the Canon RF 24-105mm F4 L IS USM lens
- Patched decoding of camm6 GPSDateTime to use a flexible epoch because other apps don't seem to use a consistent time zero
- Fixed family 7 group names for QuickTime Keys tags
- Fixed problem reading BeatsPerMinute from some MP4 files
- Fixed hemisphere problem when extracting GPS from 70mai dashcam videos

May 20, 2021 - Version 12.26 (production release)

- Added support for JPEG Stereo (JPS) images
- Added a new Sony LensType (thanks LibRaw)
- Added a new PentaxModelID (thanks LibRaw)
- Changed ExifTool namespace URI to use exiftool.org instead of exiftool.ca in the -X option output (exiftool.ca is still recognized when reading XML)
- Improved handling of large-array warnings in -htmldump output
- Changed handling of escaped characters in #[CSTR] lines of -@ argfile
- Patched security vulnerability in argument of -lang option
- Fixed problem which could cause a "Wide character" warning and generate a corrupted output file when writing some illegal values

Apr. 22, 2021 - Version 12.25

- JPEG XL support is now official
- Added read support for Medical Research Council (MRC) image files
- Added ability to write a number of 3gp tags in video files
- Added a new Sony PictureProfile value (thanks Jos Roost)
- Added a new Sony LensType (thanks LibRaw)
- Added a new Nikon LensID (thanks Niels Kristian Bech Jensen)
- Added a new Canon LensType
- Decode more GPS information from Blackvue dashcam videos
- Decode a couple of new NikonSettings tags (thanks Warren Hatch)
- Decode a few new RIFF tags
- Improved Validate option to add minor warning if standard XMP is missing xpacket wrapper
- Avoid decoding some large arrays in DNG images to improve performance unless the -m option is used
- Patched bug that could give runtime warning when trying to write an empty XMP structure
- Fixed decoding of ImageWidth/Height for JPEG XL images
- Fixed problem were Microsoft Xtra tags couldn't be deleted

Apr. 13, 2021 - Version 12.24

- Added a new PhaseOne RawFormat value (thanks LibRaw)
- Decode a new Sony tag (thanks Jos Roost)
- Decode a few new Panasonic and FujiFilm tags (thanks LibRaw and Greybeard)
- Updated acdsee.config in distribution (thanks StarGeek)
- Recognize AutoCAD DXF files
- More work on experimental CAI JUMBF read support
- More work on experimental JPEG XL read/write support
- Patched security vulnerability in DjVu reader

Apr. 1, 2021 - Version 12.23

- Added support for Olympus ORI files
- Added experimental read/write support for JPEG XL images
- Added experimental read support for CAI (Content Authenticity Initiative) JUMBF-format metadata in JPEG and Jpeg2000 images
- Added built-in support for parsing GPS track from Denver ACG-8050 videos with the -ee option
- Added a some new Sony lenses (thanks Jos Roost and LibRaw)
- Changed priority of Samsung trailer tags so the first DepthMapImage takes precedence when -a is not used
- Improved identification of M4A audio files
- Patched to avoid escaping ',' in "Binary data" message when -struct is used
- Removed Unknown flag from MXF VideoCodingSchemeID tag
- Fixed -forcewrite=EXIF to apply to EXIF in binary header of EPS files
- API Changes:
  - Added BlockExtract option

Mar. 17, 2021 - Version 12.22

- Added a few new Sony LensTypes and a new SonyModelID (thanks Jos Roost and LibRaw)
- Added Extra BaseName tag
- Added a new CanonModelID (thanks LibRaw)
- Decode timed GPS from unlisted programs in M2TS videos with the -ee3 option
- Decode more Sony rtmd tags
- Decode some tags for the Sony ILME-FX3 (thanks Jos Roost)
- Allow negative values to be written to XMP-aux:LensID
- Recognize HEVC video program in M2TS files
- Enhanced -b option so --b suppresses tags with binary data
- Improved flexibility when writing GPS coordinates:
  - Now pulls latitude and longitude from a combined GPSCoordinates string
  - Recognize full word "South" and "West" to write negative coordinates
- Improved warning when trying to write an integer QuickTime date/time tag and Time::Local is not available
- Convert GPSSpeed from mph to km/h in timed GPS from Garmin MP4 videos

Feb. 24, 2021 - Version 12.21

- Added a few new iOS QuickTime tags
- Decode a couple more Sony rtmd tags
- Patch to avoid possible "Use of uninitialized value" warning when attempting to write QuickTime date/time tags with an invalid value
- Fixed problem writing Microsoft Xtra tags
- Fixed Windows daylight savings time patch for file times that was broken in 12.19 (however directory times will not yet handle DST properly)

Feb. 23, 2021 - Version 12.20

- Added ability to write some Microsoft Xtra tags in MOV/MP4 videos
- Added two new Canon LensType values (thanks Norbert Wasser)
- Added a new Nikon LensID
- Fixed problem reading FITS comments that start before column 11

Feb. 18, 2021 - Version 12.19

- Added -list_dir option
- Added the "ls-l" Shortcut tag
- Extract Comment and History from FITS files
- Enhanced FilePermissions to include device type (similar to "ls -l")
- Changed the name of Apple ContentIdentifier tag to MediaGroupUUID (thanks Neal Krawetz)
- Fixed a potential "substr outside of string" runtime error when reading corrupted EXIF
- Fixed edge case where NikonScanIFD may not be copied properly when copying MakerNotes to another file
- API Changes:
  - Added ability to read/write System tags of directories
  - Enhanced GetAllGroups() to support family 7 and take optional ExifTool reference
  - Changed QuickTimeHandler option default to 1

Feb. 9, 2021 - Version 12.18

- Added a new SonyModelID
- Decode a number of Sony tags for the ILCE-1 (thanks Jos Roost)
- Decode a couple of new Canon tags (thanks LibRaw)
- Patched to read differently formatted UserData:Keywords as written by iPhone
- Patched to tolerate out-of-order Nikon MakerNote IFD entries when obtaining tags necessary for decryption
- Fixed a few possible Condition warnings for some NikonSettings tags

Feb. 3, 2021 - Version 12.17

- Added a new Canon FocusMode value
- Added a new FujiFilm FilmMode value
- Added a number of new XMP-crs tags (thanks Herb)
- Decode a new H264 MDPM tag
- Allow non-conforming lower-case XMP boolean "true" and "false" values to be written, but only when print conversion is disabled
- Improved Validate option to warn about non-capitalized boolean XMP values
- Improved logic for setting GPSLatitude/LongitudeRef values when writing
- Changed -json and -php options so the -a option is implied even without the -g option
- Avoid extracting audio/video data from AVI videos when -ee -u is used
- Patched decoding of Canon ContinuousShootingSpeed for newer firmware versions of the EOS-1DXmkIII
- Re-worked LensID patch of version 12.00 (github #51)
- Fixed a few typos in newly-added NikonSettings tags (thanks Herb)
- Fixed problem where group could not be specified for PNG-pHYs tags when writing

Jan. 21, 2021 - Version 12.16 (production release)

- Extract another form of video subtitle text
- Enhanced -ee option with -ee2 and -ee3 to allow parsing of the H264 video stream in MP4 files
- Changed a Nikon FlashMode value
- Fixed problem that caused a failed DPX test on Strawberry Perl
- API Changes:
  - Enhanced ExtractEmbedded option

Jan. 18, 2021 - Version 12.15 (production release)

- Added a couple of new Sony LensType values (thanks LibRaw and Jos Roost)
- Added a new Nikon FlashMode value (thanks Mike)
- Decode NikonSettings (thanks Warren Hatch)
- Decode thermal information from DJI RJPEG images
- Fixed extra newline in -echo3 and -echo4 outputs added in version 12.10
- Fixed out-of-memory problem when writing some very large PNG files under Windows

Jan. 6, 2021 - Version 12.14

- Added support for 2 more types of timed GPS in video files (that makes 49 different formats now supported)
- Added validity check for PDF trailer dictionary Size
- Added a new Pentax LensType
- Extract metadata from Jpeg2000 Association box
- Changed -g:XX:YY and -G:XX:YY options to show empty strings for non-existent groups
- Patched to issue warning and avoid writing date/time values with a zero month or day number
- Patched to avoid runtime warnings if trying to set FileName to an empty string
- Fixed issue that could cause GPS test number 12 to fail on some systems
- Fixed problem extracting XML as a block from Jpeg2000 images, and extract XML tags in the XML group instead of XMP

Dec. 24, 2020 - Version 12.13

- Added -i HIDDEN option to ignore files with names that start with "."
- Added a few new Nikon ShutterMode values (thanks Jan Škoda)
- Added ability to write Google GCamera MicroVideo XMP tags
- Add time zone automatically to most string-based QuickTime date/time tags when writing unless the PrintConv option is disabled
- Decode a new Sony tag (thanks LibRaw)
- Changed behaviour when writing only pseudo tags to return an error and avoid writing any other tags if writing FileName fails
- Print "X image files read" message even if only 1 file is read when at least one other file has failed the -if condition

Dec. 4, 2020 - Version 12.12

- Added ability to geotag from DJI CSV log files
- Added a new CanonModelID
- Added a couple of new Sony LensType values (thanks LibRaw)
- Enhanced -csvDelim option to allow "\t", "\n", "\r" and "\\"
- Unescape "\b" and "\f" in imported JSON values
- Fixed bug introduced in 12.10 which generated a "Not an integer" warning when attempting to shift some QuickTime date/time tags
- Fixed shared-write permission problem with -@ argfile when using -stay_open and a filename containing special characters on Windows

Nov. 27, 2020 - Version 12.11

- Added -csvDelim option
- Added new Canon and Olympus LensType values (thanks LibRaw)
- Added a warning if ICC_Profile is deleted from an image (github #63)
- EndDir() function for -if option now works when -fileOrder is used
- Changed FileSize conversion to use binary prefixes since that is how the conversion is currently done (eg. MiB instead of MB)
- Patched -csv option so columns aren't resorted when using -G option and one of the tags is missing from a file
- Fixed incompatiblity with Google Photos when writing UserData:GPSCoordinates to MP4 videos
- Fixed problem where the tags available in a -p format string were limited to the same as the -if[NUM] option when NUM was specified
- Fixed incorrect decoding of SourceFileIndex/SourceDirectoryIndex for Ricoh models

Nov. 12, 2020 - Version 12.10

- Added -validate test for proper TIFF magic number in JPEG EXIF header
- Added support for Nikon Z7 LensData version 0801
- Added a new XMP-GPano tag
- Decode ColorData for the Canon EOS 1DXmkIII (thanks LibRaw)
- Decode more tags for the Sony ILCE-7SM3 (thanks Jos Roost)
- Automatically apply QuickTimeUTC option for CR3 files
- Improved decoding of XAttrMDLabel from MacOS files
- Ignore time zones when writing date/time values and using the -d option
- Enhanced -echo3 and -echo4 options to allow exit status to be returned
- Changed -execute so the -q option no longer suppresses the "{ready}" message when a synchronization number is used (eg. -execute123)

Oct. 29, 2020 - Version 12.09

- Added ability to copy CanonMakerNotes from CR3 images to other file types
- Added read support for ON1 presets file (.ONP)
- Added two new CanonModelID values
- Added trailing "/" when writing QuickTime:GPSCoordinates
- Added a number of new XMP-crs tags
- Added a new Sony LensType (thanks Jos Roost)
- Added a new Nikon Z lens (thanks LibRaw)
- Added a new Canon LensType
- Decode ColorData for Canon EOS R5/R6
- Decode a couple of new HEIF tags
- Decode FirmwareVersion for Canon M50
- Improved decoding of Sony CreativeStyle tags (thanks Jos Roost)
- Improved parsing of Radiance files to recognize comments
- Renamed GIF AspectRatio tag to PixelAspectRatio
- Patched EndDir() feature so subdirectories are always processed when -r is used (previously, EndDir() would end processing of a directory completely)
- Yet another tweak to the EventTime formatting rules (also allow time-only values with fractional seconds and a time zone)
- Avoid loading GoPro module unnecessarily when reading MP4 videos from some other cameras
- Fixed problem with an incorrect naming of CodecID tags in some MKV videos
- Fixed verbose output to avoid "adding" messages for existing flattened XMP tags

Oct. 15, 2020 - Version 12.08

- Added read support for MacOS "._" sidecar files
- Added a new Sony LensType (thanks Jos Roost)
- Recognize Mac OS X xattr files
- Extract ThumbnailImage from MP4 videos of more dashcam models
- Improved decoding of a number of Sony tags (thanks Jos Roost)
- Fixed problem where the special -if EndDir() function didn't work properly for directories after the one in which it was initially called
- Patched to read DLL files which don't have a .rsrc section (thanks Hank)
- Patched to support new IGC date format when geotagging
- Patched to read DLL files with an invalid size in the header

Oct. 2, 2020 - Version 12.07

- Added support for GoPro .360 videos
- Added some new Canon RF and Nikkor Z lenses (thanks LibRaw)
- Added some new Sony LensType and CreativeStyle values and decode some ILCE-7C tags (thanks Jos Roost)
- Added a number of new Olympus SceneMode values (thanks Herb)
- Added a new Nikon LensID
- Decode more timed metadata from Insta360 videos (thanks Thomas Allen)
- Decode timed GPS from videos of more Garmin dashcam models
- Decode a new GoPro video tag
- Reformat time-only EventTime values when writing and prevent arbitrary strings from being written
- Patched to accept backslashes in SourceFile entries for -csv option

Sept. 11, 2020 - Version 12.06

- Added read support for Lyrics3 metadata (and fixed problem where APE metadata may be ignored if Lyrics3 exists)
- Added a new Panasonic VideoBurstMode value (thanks Klaus Homeister)
- Added a new Olympus MultipleExposureMode value
- Added a new Nikon LensID
- Added back conversions for XMP-dwc EventTime that were removed in 12.04 with a patch to allow time-only values
- Decode GIF AspectRatio
- Decode Olympus FocusBracketStepSize (thanks Karsten)
- Extract PNG iDOT chunk in Binary format with the name AppleDataOffsets
- Process PNG images which do not start with mandatory IHDR chunk

Aug. 24, 2020 - Version 12.05

- Added a new Panasonic SelfTimer value (thanks Herb)
- Decode a few more DPX tags (thanks Harry Mallon)
- Extract AIFF APPL tag as ApplicationData
- Fixed bug writing QuickTime ItemList 'gnre' Genre values
- Fixed an incorrect value for Panasonic VideoBurstResolution (thanks Herb)
- Fixed problem when applying a time shift to some invalid makernote date/time values

Aug. 10, 2020 - Version 12.04

- Added read support for Zeiss ZISRAW CZI files
- Added some new values for a couple of Olympus tags (thanks Sebastian)
- Decode a number of new tags for the Sony ILCE-7SM3 (thanks Jos Roost)
- Removed formatting restrictions on XMP-dwc:EventTime to allow a time-only value to be written
- Moved new QuckTime ItemList tags added in version 12.02 to the proper group (they were incorrectly added to the Keys group)
- Improved QuickTime -v3 output to show default language codes
- Patched -lang option to work for the values of some tags with coded translations
- Patched the format of a number of QuickTime tags when writing for improved compatibility with iTunes and AtomicParsley
- Patched to write a default QuickTime language code of 0x0000 (null) instead of 0x55c4 ('und')

July 29, 2020 - Version 12.03

- Added family 7 group names to allow tag ID's to be specified when reading and writing
- Fixed a couple of typos in tag values (thanks Herb)
- API Changes:
  - Added HexTagIDs option
  - Enhanced GetNewValue() to allow family 7 groups names to be used
- Internal Changes:
  - Changed Composite tag ID's to use "-" instead of "::" as a separator

July 27, 2020 - Version 12.02

- Added support for a number of new QuickTime ItemList tags
- Added support for writing XMP-xmp:RatingPercent
- Added a new Sony LensType (thanks Jos Roost and LibRaw)
- Added a new Pentax LensType (thanks James O'Neill)
- Decode barcodes from Ricoh APP5 RMETA segment
- Decode a few new QuickTime tags written by Ricoh and Garmin cameras
- Decode timed GPS from Sony A7R IV MP4 videos
- Decode timed GPS from 70mai dashcam videos
- Decode a few new Panasonic tags (thanks Klaus Homeister)
- Decode altitude and more accurate latitude/longitude from Transcend Driver Pro 230 MP4 videos
- Improved decoding of some Canon EOS 1DXmkIII custom functions
- Allow integer QuickTime TrackNumber and DiskNumber values
- Relax validity check of QuickTime:ContentCreateDate when writing with -n
- Removed "Com" from the start of some unknown QuickTime ItemList tag names
- Patched CanonCustom decoding for bug in Canon EOS-1DX firmware
- Changed QuickTime CleanAperture tags decode as signed rationals

June 24, 2020 - Version 12.01

- Added a new NEFCompression value (thanks Warren Hatch)
- Added a new Sony LensType (thanks Jos Roost)
- Decode timed GPS from Rove Stealth 4K dashcam videos
- Fixed bug which would corrupt TIFF images with 16-bit image data offsets when writing (these are very rare)

June 11, 2020 - Version 12.00 (production release)

- Added two new Olympus LensTypes (thanks Don Komarechka for one)
- Added two new Sony LensType values (thanks Jos Roost)
- Added a few new Nikon LensID's (thanks Mathieu Carbou)
- Added support for the Sony ZV-1 (thanks Jos Roost)
- Added a new CanonModelID (thanks Jos Roost)
- Added missing MimeType values for HEICS and HEIFS files
- Added definitions for a number of new XMP-crs tags
- Recognize WOFF and WOFF2 font files
- Decode streaming GPS from Roadhawk, EEEkit and 360Fly MP4 videos
- Decode a number of new tags for the Nikon D6 (thanks Warren Hatch)
- Decode a couple more AF tags for the D500/D850
- Decode a number of new Panasonic tags
- Improved Composite LensID logic (thanks Matt Stancliff)
- Enhanced -v option to state when a directory has 0 entries
- Removed a couple of incorrect Validate warnings for bilevel TIFF images
- Drop ContrastCurve tag when copying from NEF to JPEG
- Changed -csv output to add "Unknown" group name to column headings for missing tags when -f and -G options are used
- Patched to support new XMP LensID format for Nikon cameras as written by Apple Photos (thanks Mattsta)
- Fixed problem extracting metadata from Sigma DP2 Quattro X3F files
- Fixed End() and EndDir() functions so they work when writing and when the -v option is used
- Fixed problem recognizing some PGM files
- Fixed bug in offsets for some Photoshop information in -v3 output
- Fixed problem writing a list containing empty elements inside an XMP structure
- API Changes:
  - Added NoMultiExif option
  - Changed FilterW option to not write tag if $_ is set to undef

May 11, 2020 - Version 11.99

- Added a new Nikon LensID (thanks Mykyta Kozlov)
- Added a new Canon LensType
- Added a newn PentaxModelID
- Decode a few new QuickTime tags
- Decode new ID3 Grouping tag
- Decode a few more MinoltaRaw tags (thanks LibRaw)
- Fixed runtime warning which could occur when reading corrupted RTF files
- Fixed another potential pitfall in M2TS Duration calculation
- Fixed problem extracting some unknown QuickTime:Keys tags
- Fixed problem decoding Nikon D850 orientation tags
- Fixed bug where TIFF image data may not be padded to an even number of bytes

May 1, 2020 - Version 11.98

- Added a new Nikon LensID (thanks Warren Hatch)
- Added a new Sony LensType (thanks LibRaw)
- Added a new Canon LensType
- Patched to extract EXIF with an "Exif\0\0" header from WebP images
- Enhanced -efile option and added to the documentation
- Minor tweak to -htmlDump output (disallow locking of empty selection)
- Fixed problem determining Duration of some M2TS videos

Apr. 27, 2020 - Version 11.97

- Added experimental -efile option (undocumented)
- Decode NMEA GGA sentence from streaming GPS of some dashcam videos

Apr. 24, 2020 - Version 11.96

- Decode streaming GPS from Lucas LK-7900 Ace AVI videos
- Changed new Exit/ExitDir function names to End/EndDir
- Fixed inconsistencies when using "-use mwg" together with the -wm option

Apr. 23, 2020 - Version 11.95

- Added Exit() and ExitDir() functions for use in -if conditions (NOTE: these function names changed to End() and EndDir() in ExifTool 11.96)
- Enhanced -geotag feature to support a more flexible input CSV file format
- Enhanced -if and API Filter options to allow access to ExifTool object via $self
- Fixed problem reading HEIC Exif with a missing header

Apr. 17, 2020 - Version 11.94

- Added support for QuickTime ItemList:GPSCoordinates
- Added additional Validate test for overlapping EXIF values
- Added a new Sony LensType (thanks Jos Roost)
- Added a new Nikon LensID
- Decode a few more Nikon tags (thanks Warren Hatch)
- Decode Pentax ShutterType
- Changed color of locked highlighted selection in -htmlDump output
- Fixed problem reading PDF files written by Microsoft Print-to-PDF
- Fixed problem where -X output would produce invalid XML for MP4 files containing an HTCTrack

Apr. 3, 2020 - Version 11.93

- Added new config file to the distribution for writing Pix4D XMP-Camera tags (config_files/pix4d.config)
- Added support for the DOSCyrillic (cp866) character set
- Added IO::String to the Windows EXE version
- Improved identification of Canon RF lenses (thanks LibRaw)
- Enhanced -htmlDump output to add "File offset" entry for EXIF tags and ability lock highlighted selection by clicking the mouse
- Enhanced -srcfile option to generate OriginalFileName and OriginalDirectory UserParam tags
- Patched HEIC writer to add missing pitm box if necessary
- Fixed problem adding back EXIF after deleting it from HEIC file
- Fixed minor problem with incorrect number of bytes being reported for invalid header in corrupt files
- API Changes:
  - Enhanced UserParam option to allow parameters to be extracted as if they were normal tags

Mar. 19, 2020 - Version 11.92

- Added a new Nikon LensID (thanks Wolfgang Exler)
- Decode a few new Leica tags (thanks Tim Gray)
- Decode AccelerometerData from Samsung Gear 360 videos
- Fixed a couple of problems decoding timed GPS metadata from Nextbase dashcam videos
- Fixed problem where -X option could produce invalid XML when reading corrupted XMP

Mar. 5, 2020 - Version 11.91

- Added undocumented -xpath option for use by alternate Windows version
- Decode a couple of new Panasonic tags
- Documented -ec option (available since version 11.54)
- Reverted -htmlDump fix of 11.90 because it broke more than it fixed, and instead applied a targeted patch to fix this problem for RW2 files

Mar. 3, 2020 - Version 11.90

- Added a new Sony LensType (thanks LibRaw and Jos Roost)
- Added two new Olympus LensType values
- Added a new Canon LensType
- Added some new Canon RecordMode values
- Added some new QuickTime GeneralProfileIDC values
- Added new values for a couple of FujiFilm tags
- Added a number of new QuickTime GenreID values
- Decode Nikon Z6/Z7 phase-detect AF points (thanks Andy Dragon)
- Patched to avoid possible "Undefined subroutine" error in MacOS 10.15
- Fixed incorrect offsets in -htmlDump output for some file types

Feb. 25, 2020 - Version 11.89

- Added support for Exif 2.32 for XMP
- Recognize the HIF file extension
- Improved verbose output for QuickTime iref items
- Patched to create new GPS metadata in Canon CR3 images using a default byte order that is the same as existing EXIF boxes
- Patched to add missing newline that could occur in XMP with the API Compact Shorthand option

Feb. 20, 2020 - Version 11.88

- Added write support for new Google depth-map XMP tags
- Added config_files/depthmap.config to the distribution
- Added minor error when attempting to write FFF images due to incompatibility with Hasselblad Phocus software
- Patched to avoid "Invalid iloc offset size" error when writing some QuickTime-based files
- Fixed incorrect ColumnCount for CSV files
- Fixed various spelling errors (thanks Jens Schleusener)
- Fixed bug writing QuickTime:Rotation in HEIC files

Feb. 13, 2020 - Version 11.87

- Added read support for CSV files
- Added "--" option to indicate the end of options
- Added ability to read/write/copy/delete the JPEG trailer as a block
- Added new Olympus CameraType and LensType values (thanks LibRaw)
- Decode a few more FujiFilm tags
- Enhanced -fast option (API FastScan) to bypass PNG CRC validation when writing

Feb. 4, 2020 - Version 11.86

- Added support for DNG version 1.5
- Added config_files/acdsee.config to the full distribution (thanks StarGeek)
- Added a new Sony LensType (thanks Jos Roost and LibRaw)
- Decode two more bits from Nikon LensType (thanks LibRaw)
- Decode QuickTime MovieFragmentSequence
- Patched HEIC writer to add missing iref box if necessary
- Fixed typo in a Canon LensType value
- API Changes:
  - Patched ImageInfo() to recognize a stringified object as a file name

Jan. 28, 2020 - Version 11.85 (production release)

- Added a new Sony LensType (thanks Jos Roost)
- Added a new Olympus CameraType (thanks LibRaw)
- Added a two new Pentax LensType values
- Added a new FujiFilm FocusMode
- Decode timed GPS from Akaso dashcam MOV videos
- Decode Insta360 trailer from INSP images and made Insta360 a deletable group
- Patched kml.fmt file to limit maximum image size (thanks Fedor Kotov)
- Fixed problem decoding values from Leica M10 and S maker notes

Jan. 10, 2020 - Version 11.84

- Decode accelerometer data from timed metadata of more dashcam videos
- Decode Canon G9 white balance tags (thanks LibRaw)
- Recognize INSP files

Jan. 9, 2020 - Version 11.83

- Added a couple of new XMP-crs tags (thanks Herb)
- Fixed bug introduced in 11.82 with the -php -D output
- Fixed problem where some flattened XMP tags could be written when they should be avoided

Jan. 8, 2020 - Version 11.82

- Added a new Canon LensType
- Added a new CanonModelID (thanks LibRaw)
- Added ability to process SubDirectories in QuickTime Keys tags
- Removed minor error when writing PDF 2.0 files (github #30)
- Fixed problem where trailing null bytes were removed from binary values in the -php output when the -b option was used

Jan. 2, 2020 - Version 11.81

- Added a new Nikon LensID
- Added two new CanonModelID's (thanks LibRaw)
- Decode AVIF AV1 configuration record
- Changed names of QuickTime MovieData tags to "MediaData"
- Patched to use 4-digit years in Time::Local calls
- Patched Composite sub-second date/time tags to do additional validation of source EXIF date/time tags before adding sub seconds
- Fixed problem where -json output could produce invalid JSON when -struct was used and the structure field names contained special characters (github #32)
- Fixed spelling in a Panasonic SceneMode value (thanks Hubert)

Dec. 17, 2019 - Version 11.80

- Added a new Canon LensType
- Added a new Nikon Z LensID (thanks LibRaw)
- Added a few new Sony LensType values (thanks Jos Roost)
- Attempt to improve reliability of Samsung DepthMapWidth/Height decoding
- Updated a number of Canon-mount Tamron lens names to include the Tamron model number
- Patched MOV/MP4 writer to allow a small amount of garbage at the end of a file to be deleted when writing with the -m option
- Fixed bug where some Composite tags may not have taken priority over other tags as they should have

Dec. 12, 2019 - Version 11.79

- Added support for AVIF files
- Added new Canon, Sigma and Sony LensType values (thanks LibRaw)
- Made PDF 2.0 writable at your own risk with the -m option (github #30)
- Enhanced -validate feature to warn about duplicate languages in an XMP lang-alt list
- Fixed inconsistency between documentation and ExifTool capabilities for "Writable" status of some tags

Dec. 5, 2019 - Version 11.78

- Added a new Nikon LensID (thanks Chris)
- Added two new FujiFilm SceneRecognition values
- Patched to avoid crash in Windows when writing a negative epoch time using the "-d %s" option
- Fixed problem editing MIE tags when using the "-wm w" option

Nov. 27, 2019 - Version 11.77

- Added a new Nikon LensID (thanks Joe Schönberg)
- Added a number of new Olympus LensType values (thanks LibRaw)
- Added a new Canon LensType
- Decode timed GPS from Ambarella A12 dash cam MP4 videos
- Decode a number of new Sigma tags (thanks LibRaw)
- Decode a couple of new PanasonicRaw tags (thanks LibRaw)
- Enhanced -fileOrder option to add -fast feature

Nov. 12, 2019 - Version 11.76

- Added support for the Sony ILCE-9M2 (thanks Jos Roost)
- Added a couple of new XMP-GCamera tags
- Added MIMEType values for some formats that previously reported "application/unknown"
- Enhanced -geotag feature to write pitch to CameraElevationAngle if available
- Improved determination of MIMEEncoding for TXT files

Nov. 4, 2019 - Version 11.75

- Added ability to read some basic characteristics of TXT files
- Added kml_track.fmt to the fmt_files of the full distribution
- Added built-in support for decoding GPS from the four video subtitle text formats that were previously handled by separate config files, and removed these config files from the distribution
- Derive GPSDateTime from CreateDate and SampleTime if not already available when extracting timed GPS metadata from QuickTime-format videos
- Changed family 2 groups of some Extra tags

Oct. 29, 2019 - Version 11.74

- Added support for new XMP IPTC Extension version 1.5 tags
- Added a new Nikon LensID (thanks LibRaw)
- Decode GPS track from Auto-Vox dashcam MOV videos
- Improved Russian translations (thanks Andrei Korzhyts and Alexander)
- Enhanced convert_regions.config to support new IPTC Extension 1.5 ImageRegion
- Changed the way the FlatName element works when used in a structure element (the structure name is now added as a prefix to the flattened tag name)
- Patched gpx.fmt and gpx_wpt.fmt to support sub-seconds in GPSDateTime value

Oct. 23, 2019 - Version 11.73

- Decode timed metadata from Parrot drone videos
- Patched dji.config file to properly handle time zones
- Fixed bug which caused runtime error when reading timed metadata from Cobra Dash Cam AVI videos

Oct. 22, 2019 - Version 11.72

- Added warning messages for corrupted Photoshop document data
- Added a new Olympus CameraType
- Added a new Canon LensType
- Decode more Sigma tags
- Improved Russian translations (thanks Alexander)
- Updated decoding of some CanonCustom settings for recent models
- Documented DNG OpcodeList values

Oct. 16, 2019 - Version 11.71

- Added a new Sony LensType (thanks Jos Roost)
- Added a few new Nikon Z LensID's
- Added a simple print conversion for DNG OpcodeList tags (note that due to this, these tags must now be copied using the -n option)
- Fixed problems determining some video parameters for DV files
- Changed behaviour of -sep option when writing empty list items
- API Changes:
  - Changed ListSplit option to preserve empty list items

Oct. 10, 2019 - Version 11.70 (production release)

- Added a new CanonModelID (thanks Laurent Clévy)
- Improved identification of Office Open XML files (github #27)
- Removed RAF version check when writing FujiFilm RAF files
- Limited the number of accelerometer records that ExifTool will read by default with the -ee option from INSV files to avoid excessive processing times and memory usage
- Patched Windows version to allow reading of shared files with Unicode names (thanks Eriksson)
- Patched to avoid converting some bad GPS coordinates (thanks Csaba Toth)
- Fixed verbose output to include YCbCrSubSampling for JPEG files
- Fixed conversion and group names for the new FujiFilm tag added in 11.68
- Fixed format of GeoTiffDirectory and GeoTiffDoubleParams when writing

Oct. 2, 2019 - Version 11.69

- Fixed bug introduced in version 11.66 where the sign was lost when writing coordinate values between 0 and -1 to QuickTime:GPSCoordinates

Oct. 1, 2019 - Version 11.68

- Added read support for yet another type of streaming GPS in MP4 videos
- Added a number of new FujiFlashMode values
- Decode a new FujiFilm tag
- Made NikonCaptureOffsets and NikonCaptureVersion deletable
- Enhanced tag name documentation to indicate deletable MakerNotes tags

Sept. 30, 2019 - Version 11.67

- Added config_files/thinkware.config to the distribution
- Fixed bug decoding negative GPS coordinates from INSV videos

Sept. 30, 2019 - Version 11.66

- Added a new Nikon LensID (thanks LibRaw)
- Added a few new Canon LensType values (thanks LibRaw and Tom Lachecki)
- Decode a few more Hasselblad tags (thanks LibRaw)
- Decode a new Canon tag (thanks Laurent Clévy)
- Decode more Samsung trailer tags
- Extract BWF iXML, aXML and UMID from RIFF-format files
- Extract ICC_Profile from more types of PDF files
- Enhanced %s of the -W option to recognize the PICT format
- Recognize MacOS alias files
- Changed name of Ricoh CropMode35mm tag and added a new value (thanks LibRaw)
- Minor change to a Minolta lens name (thanks Jos Roost)
- Fixed problem where NikonCapture information couldn't be deleted from an NEF
- Fixed problem identifying some SVG files
- Fixed typo in a CanonModelID value (thanks Dmitry)
- Fixed bug which could result in "Internal error: no list index" warning when creating nested XMP lang-alt lists
- Fixed the names of a few Tamron lenses for Nikon (thanks Tom Lachecki)
- Fixed problem extracting Layer information from some PSD files
- Fixed writing of QuickTime GPSCoordinates to use the correct number of digits before the decimal point for latitude and longitude

Aug. 29, 2019 - Version 11.65

- Added new SonyModelID and Sony LensType values (thanks LibRaw and Jos Roost)
- Added support for some new Sony models (thanks Jos Roost)
- Added a couple of new CanonModelID values (thanks LibRaw)
- Added a new Canon ColorDataVersion value
- Enhanced FastScan option so a setting of 2 stops processing PNG images at the IDAT chunk when reading
- Preserve order of nested lang-alt list entries when -struct option is used

Aug. 28, 2019 - Version 11.64

- Added a new Canon LensType (thanks LibRaw)
- Added a new Nikon LensID (thanks Bruno)
- Added config file for converting streaming GPS from BlueSkySea dashcam
- Decode FocusDistance for Nikon Z6/Z7
- Documented groups in families 5 and 6 (available but undocumented since Exiftool version 8.22 and 11.50 respectively)
- Fixed some ordering problems when writing/copying nested XMP lang-alt lists
- Fixed some minor quirks with QuickTime language codes (thanks Hayo Baan)
- Fixed a CanonModelID value (thanks Dmitry)
- API Changes:
  - Documented SavePath and SaveFormat options

Aug. 20, 2019 - Version 11.63 - "PNG Early Text"

- Added a few new Sigma lenses (thanks LibRaw)
- Improved handling of Canon CNTH atom in MOV/MP4 videos
- Changed PNG writer to place all text chunks before IDAT (not just XMP) (github #23)
- Issue minor warning for any text chunk after PNG IDAT (not just XMP)
- Enhanced ForceWrite feature to allow "PNG" to be specified (to move existing text chunks to before IDAT without editing any metadata)
- Removed Windows "surrogate" warning for files that wouldn't be processed anyway
- Fixed some entries in the Minolta LensType list (thanks Jos Roost)
- Fixed identification of a Sony lens (thanks Jos Roost)

Aug. 15, 2019 - Version 11.62

- Added a number of new Canon, Pentax, Sony and Sigma lenses (thanks LibRaw)
- Removed some extraneous verbose warnings when geotagging
- Removed Minolta LensType value for a non-existent lens (thanks LibRaw)
- Patched problem writing some simple qualified XMP values
- Patched to avoid writing files in Windows with Unicode surrogate characters in their name unless the -overwrite_original_in_place option is used
- Fixed an incorrect Pentax LensType (thanks LibRaw)
- Fixed family 2 group names of some XMP-exifEX and XMP Composite tags

Aug. 7, 2019 - Version 11.61

- Added a new FujiFilm CropMode (thanks LibRaw)
- Added a few new proprietary CustomRendered values (thanks Jeffrey Friedl)
- Added a new Nikon LensID and fixed a Canon LensType (thanks LibRaw)
- Added a new CanonModelID
- Decode more Sony DSC-RX100M7 tags (thanks Jos Roost)
- Write standard EXIF to PNG even if non-standard EXIF already exists
- Changed a Minolta/Sony LensType (thanks LibRaw)
- Changed Composite GPS reference direction tags to be derived from only the XMP-exif GPS coordinate tags (and not other XMP GPS coordinates)
- Reverted a PNG Validation check that was removed from 11.60
- Patched to avoid problems overriding new values when writing thumbnail and preview images

July 30, 2019 - Version 11.60

- Added a few new Sigma LensType values (thanks LibRaw)
- Updated Sony makernote decoding for the DSC-RX100M7 (thanks Jos Roost)
- Various internal improvements to PNG reader/writer
- Fixed bug in RIFF decoder that could cause an "undefined subroutine" error (thanks Hayo Baan)
- Fixed problem writing some QuickTime tags if the PREFERRED levels were changed via the config file
- Install Changes:
  - Properly erase all temporary files after validation tests

July 25, 2019 - Version 11.59

- Added a new SonyModelID (thanks LibRaw)
- Changed block delete to allow subsequent writing of tags from the same group (like a group delete)
- Minor changes to warnings and verbose output when writing PNG images
- Fixed potential runtime warning on an error rewriting XMP in a PNG image

July 25, 2019 - Version 11.58

- Added a number of new Canon and Sony LensType values (thanks LibRaw)
- Decode NikonMeteringMode for the D500
- Decode LensID for Nikon Z lenses
- Extract RawThermalImage from Parrot Bebop-Pro Thermal images
- Validate PNG CRC values when writing or using the Validate option
- Improved Russian translation (thanks Andrei Korzhyts)
- Improved identification of some Tamron lenses for Canon cameras
- Changed name of D810MeteringMode tag to NikonMeteringMode
- Patched writing of XMP in PNG images to always come before IDAT, and warn if XMP comes after IDAT when reading
- Fixed problem replacing multiple lang-alt default-language structure elements in lists of XMP structures (behaviour for other languages still not ideal)
- API Changes:
  - Removed PNGEarlyXMP option
  - Fixed problem introduced in 11.54 which caused Options('UserParam') to return undef
- Internal Changes:
  - A block delete of EXIF, XMP, IPTC, etc now sets the group delete flag

July 19, 2019 - Version 11.57

- Improved decoding of some tags for the Sony ILCE-7RM4 (thanks Jos Roost)
- Minor change to a Sony lens name
- Fixed format of a number of 8-bit integer QuickTime tags when writing
- Fixed problem replacing multiple structure elements in lists of XMP structures

July 18, 2019 - Version 11.56

- Added support for the Sony ILCE-7RM4 (thanks Jos Roost)
- Added a new SonyModelID (thanks LibRaw)
- Added a few new Sony/Minolta LensType values (thanks LibRaw and Jos Roost)
- Decode some new Nikon and Motorola tags (thanks Neal Krawetz)
- Decode a couple more ColorData tags for some Canon models
- Extract PreviewImage from DNG files which don't have a .DNG extension
- Extract Huawei APP7 maker notes with the Unknown (-u) option
- Internal change in LensID logic for Sony E-type lenses

July 12, 2019 - Version 11.55

- Added write support for XMP-crs:Texture and XMP-drs tags
- Added a number of new Panasonic NoiseReduction values
- Added definition for a new Kodak tag (thanks LibRaw)
- Added a couple of new Panasonic AFAreaMode values (thanks Daniel Beichl)
- Added a couple of new Sony/Minolta LensTypes (thanks Jos Roost and LibRaw)
- Added a new CanonModelID
- Decode HEVCConfiguration record from HEIC images
- Decode a new Panasonic tag
- Decode a new QuickTime tag
- Changed internal handling of Composite tag ID's to include module name
- Removed "FE" designation from Samyang E-mount lenses
- Dropped Validate warning about missing GPSProcessingMethod tag

July 2, 2019 - Version 11.54

- Added new Canon and Sony/Minolta LensType values (thanks LibRaw)
- Added a number of new Sony/Minolta LensType values (thanks Jos Roost)
- Added "Unknown" value for new EXIF CompositeImage tag
- Added ability to write GSpherical tags in video track of MOV/MP4 files
- Added support for geotagging from GPS/IMU CSV-format files
- Improved Russian translation (thanks Alexander)
- Improved Validate feature to check ExifVersion/GPSVersionID numbers
- Accept unsigned numbers when setting GPSAltitudeRef from a numerical value
- Fixed decoding of DepthMapWidth/Height for some Samsung live-focus images
- Fixed a couple of incorrect/incomplete CanonModelID values (thanks LibRaw)
- Fixed problem identifying some Canon lenses when used on a Sony camera with a Metabones adapter
- API Changes:
  - Added FilterW option
  - Enhanced Compact option to improve flexibility and include features of XMPShorthand option
  - Removed XMPShorthand option from documentation

June 24, 2019 - Version 11.53 - "Exif 2.32"

- Added support for the new tags of the Exif 2.32 specification
- Added a new SamsungModelID (thanks LibRaw)
- Added warning if extracting ZIP file contents without the -a option
- Added ability to extract EmbeddedVideo from the trailer of Android JPEG images with the ExtractEmbedded option
- Decode timed GPS from Cobra Dash Cam AVI videos
- Decode a new GoPro tag
- Enhanced -struct option to allow extraction of structured Torrent Info
- Improved error handling when an unexpected terminator is encountered while writing a QuickTime-format file
- Renamed one of the Nikon Saturation tags to "SaturationAdj"
- Removed warning message when writing FujiFilm RAFVersion 0240 and 0261 files
- Fixed encoding problem when writing some QuickTime UserData tags with strings containing special characters
- API Changes:
  - Enhanced XMPShorthand option to add level 2

June 17, 2019 - Version 11.52

- Added a few new Nikon CropHiSpeed values (thanks Hayo Baan)
- Added a new Nikon LensID (thanks Yves)
- Fixed problem where reading a large, corrupt AIFF file may could take an excessively long time
- API Changes:
  - Enhanced Compact option to add levels 3, 4 and 5 (github #16)

June 13, 2019 - Version 11.51

- Decode Canon DistortionCorrection tags
- Removed a minor EXIF warning when processing EPS files with a DOS header
- Fixed bug which caused an error when rewriting some EPS files multiple times

June 11, 2019 - Version 11.50 (production release)

- Added a new Canon LensType and two new Sony LensTypes (thanks LibRaw)
- Added tiff_version and rotate_regions config files to the distribution
- Added two new QuickTime Keys tags and made some existing Keys unwritable
- Improved Composite LensID logic to make better use of EXIF LensModel
- Improved logic when writing BinaryData tags to allow multiple interdependent tags to be written in a single command
- Improved -htmldump output to show names of Unknown tags
- Allow advanced formatting expressions to access the current tag key ($tag)
- Remove escaped nulls from -json string values
- Reverted change in ExifTool 11.38 so that Composite GPS reference directions are generated again even if the EXIF versions of these tags already exist
- Fixed an incorrect FlashPix CodePage conversion

June 5, 2019 - Version 11.49

- Added inverse print conversion for one of the QuickTime ItemList Genre tags
- Avoid creating a few obscure QuickTime UserData tags when writing
- Fixed problem where some QuickTime groups were not being created when writing QuickTime tags without specifying a group
- Fixed problem where QuickTime Keys tags could be duplicated when writing an existing alternate-language tag
- Fixed problem were QuickTime Keys alternate-language tags would not be written when deleting the corresponding default-language tag in the same command
- Fixed some inconsistencies when writing QuickTime tags using the -wm (WriteMode) option
- Fixed an incorrect Pentax Sigma LensType value

June 1, 2019 - Version 11.48

- Added write support for Google GCamera and GCreation XMP tags
- Renamed XMP-GDepth "Data" tag to "DepthImage"
- Fixed bug where some QuickTime UserData tags could be duplicated when writing

May 31, 2019 - Version 11.47

- Fixed problem which resulted in a warning for one of the CanonVRD tests on some platforms

May 31, 2019 - Version 11.46 - "CR3 update"

- Added ability to write CanonVRD tags in CR3 images
- Decode a couple more tags from Canon CR3 images
- Enhanced Validate option to check for duplicate QuickTime atoms
- Relaxed constraints when writing IPTC date tags to allow use of separators other than a colon
- Fixed CR3 writing to update CTBO table with any changed offsets or sizes (although this table doesn't seem to be used by any RAW viewer, it may be used in-camera to improve response time when browsing images)

May 29, 2019 - Version 11.45

- CORRUPTION WARNING: Patched problem where Canon DPP would destroy a CR3 image if the file had previously been edited by DPP then Exiftool
  (If you have edited any CR3 images with ExifTool that had been previously edited by DPP, then re-edit with ExifTool 11.45 or later to restructure the file so DPP doesn't destroy it if used later to edit the file again)
- Added ability to create and delete QuickTime Keys tags
- Added sample config file (mini0806.config) to generate GPS tags from subtitle Text in Mini 0806 dashcam videos
- Added new Canon and Nikon lenses (thanks LibRaw)
- Added a new Olympus CameraType (thanks LibRaw)
- Decode CanonVRD tags from CR3 images
- Improved handling of QuickTime language tags when writing
- Fixed bug introduced in 11.38 which could cause "Use of uninitialized value" runtime warning when reading XMP GPS tags
- Fixed bug where QuickTime tags could be written when another group was specified
- API Changes:
  - Added QuickTimeHandler option

May 21, 2019 - Version 11.44

- Added ability to extract XMP as a block from XMP files
- Prevent ExifIFD from being deleted from any RAW file type
- Fixed problem where some Canon tags couldn't be written in CR3 files
- Fixed problem reading QuickTime Keys tags with a space in the tag ID
- Fixed incorrect family 1 group when reading some QuickTime Keys tags

May 17, 2019 - Version 11.43 - "Write HEIC and CR3"

- Added ability to write/create EXIF and write ICC_Profile in HEIC images
- Added ability to write/create EXIF and write MakerNotes in CR3 images (one might hope/expect EXIF to be stored in the same location for HEIC and CR3 since they are both based on the QuickTime file format, but in fact they couldn't be more different, and both are much more complicated than necessary, which of course follows the seemingly established practice of intentional obfuscation and zero standardization in video metadata)
- Added support for QuickTime ItemList:Author and Keys:DisplayName tags
- Prevent MakerNotes from being deleted from any RAW file type
- Fixed writing of XMP in HEIC files to conform with the HEIC specification (obviously, Apple couldn't put this XMP in the same place as any other QuickTime-based file format, because Apple is, after all, king of "Let's reinvent the wheel!")
- Fixed problem where API WriteMode option wouldn't always prevent groups from being created when group creation was disabled

May 13, 2019 - Version 11.42

- Added ability to edit ThumbnailImage in Canon MOV videos
- Improved verbose hex dump for HEIC files
- Fixed another "Chunk offset outside movie data" error when writing some HEIC files

May 9, 2019 - Version 11.41

- Added write support and improved language handling for 3GP QuickTime tags
- Fixed format problems writing some binary values to QuickTime tags
- Fixed some language translations (thanks Herbert Kauer)

May 7, 2019 - Version 11.40

- Added a new Canon LensType
- Added a new value for EXIF:SceneCaptureType used by some Samsung cameras
- Fixed QuickTime writing to preserve existing same-named default-language tags in other groups when writing a default language tag

May 3, 2019 - Version 11.39 - "Create QuickTime tags"

- Added ability to create new QuickTime tags in MOV/MP4 videos
- Added two new Canon LensTypes and a new CanonModelID (thanks LibRaw)
- Added a few new Sony/Minolta LensType values (thanks Jos Roost)
- Added a number of new QuickTime GenreID values
- Added range check on date/time values when writing
- Decode Canon EOS D60 black levels
- Split off some QuickTime tags into different family 1 groups
- Fixed "Chunk offset outside movie data" error when writing some HEIC files
- Fixed decoding of Pentax AutoBracketing for K-1 and K-5 (github #15)
- Fixed some QuickTime family 2 group names
- Fixed bug introduced in 11.38 that broke extraction of thumbnail images from Canon MOV videos

Apr. 24, 2019 - Version 11.38

- Added Extra JPEGImageLength tag
- Added nksc.config to the sample config files
- Added a couple more Sony/Minolta LensTypes (thanks Jos Roost)
- Added a couple of new Sigma LensType values
- Decode a couple more tags from Pittasoft dashcam videos
- Decode two new FLIR tags (thanks Corinne Berthier)
- Decode a new ERF tag, and fix wrong format for some others (thanks LibRaw)
- Improved decoding of Sigma maker notes for some models
- Enhanced Composite tag logic to allow a scalar Inhibit entry
- Enhanced XMP processing to support readable subdirectories embedded in a tag
- Updated some language translations
- Patched Composite GPS reference direction tags to prevent them from being created if these tags already exist
- Fixed problem reading some odd PDF files

Apr. 17, 2019 - Version 11.37

- Added a new Sony AFAreaMode (thanks Jos Roost)
- Decode GPS and other tags from Pittasoft Blackvue dashcam videos
- Improved decoding of FujiFilm FlickerReduction
- Ignore any garbage before an NMEA sentence when geotagging
- Fixed bug which could result in loss of timed GPS metadata when writing MP4 videos

Apr. 15, 2019 - Version 11.36

- Added a number of new MacOS tags
- Added a new CanonModelID (thanks Laurent Clévy)
- Added some new Canon EasyMode and AFAreaMode values
- Added two new Canon AspectRatio values (thanks LibRaw)
- Decode a new Nikon tag (thanks LibRaw)
- Decode some new FujiFilm tags
- Updated Sony maker notes for the DSC-RX0M2 (thanks Jos Roost)
- Hide the Nikon ShotInfo offset tags
- Fixed problem decoding NikonCustom settings for some D810 firmware versions
- Fixed typo in a warning message (thanks Hayo Baan)

Apr. 9, 2019 - Version 11.35

- Added print conversion for MDItemFSLabel
- Added a new Sony LensType (thanks Jos Roost)
- Added an additional -validate check for PNG images
- Decode a few more FujiFilm RAF tags (thanks LibRaw)
- Decode a couple more QuickTime tags
- Allow "Copy0" to be specified as a group name for the copy number of the primary tag when extracting information
- Improved the Composite ImageSize tag to report the RawImageCroppedSize for FujiFilm RAF images
- Changed Composite ImageSize tag to use a space instead of "x" as a separator when the -n option is used
- Fixed problem writing user-defined PhaseOne SensorCalibration tags
- Fixed problem where a List-type tag may not be split into individual items with the -sep option when using the advanced-formatting "@" feature
- API Changes:
  - Patched a potential pitfall if calling code used both the old List and ListSep options at the same time as the new ListJoin option

Apr. 4, 2019 - Version 11.34

- Added a couple of new Canon LensType values (thanks LibRaw for one)
- Added a new CanonExposureMode value (thanks Arnold van Oostrum)
- Added support for FujiFilm X-H1 Ver2.01 RAF images
- Decode a couple of new Sony tags (thanks LibRaw)
- Improved decoding of Sony Shutter tag (thanks Jos Roost)
- Improved identification of some Sony lenses (thanks Jos Roost)
- Improved parsing of streamed metadata from TomTom Bandit videos
- Improved warning for truncated QuickTime atom
- Accept wider range of formats when writing QuickTime:GPSCoordinates
- API Changes:
  - Changed SetFileName() 'Link' option name to 'HardLink' (but still allow 'Link' for backward compatibility)

Mar. 28, 2019 - Version 11.33

- Added write support for HEIC/HEIF files
- Added new write-only SymLink tag for creating symbolic links
- Made EXIF GDALMetadata and GDALNoData writable
- Enhanced writing capabilities for MOV/MP4 videos
- Enhanced -validate option to add more IPTC checks
- Updated decoding of Sony ILCE-9 maker notes for firmware version 5.00 (thanks Jos Roost)
- Fixed problem reading streamed metadata from some TomTom Bandit videos
- API Changes:
  - Added SymLink option to SetFileName()

Mar. 14, 2019 - Version 11.32

- Added a new Nikon LensID (thanks Kenneth Cochran)
- Added a couple of new QuickTime HandlerType values
- Decode streamed metadata from DuDuBell M1 and VSYS M6L dashcam videos
- Attempt to improve Nikon lens identification
- API Changes:
  - Added new single-argument version of ShiftTime()

Mar. 7, 2019 - Version 11.31

- Added read support for FITS images
- Another try at removing spaces from some DICOM values (github #10 and #12)

Mar. 6, 2019 - Version 11.30 (production release)

- Added a new Sony/Minolta LensType (thanks Jos Roost)
- Decode streaming metadata from TomTom Bandit Action Cam MP4 videos
- Decode Reconyx HF2 PRO maker notes
- Decode ColorData for some new Canon models (thanks LibRaw)
- Enhanced -geotag feature to set AmbientTemperature if available
- Remove non-significant spaces from some DICOM values (github #10 and #12)
- Fixed possible "'x' outside of string" error when reading corrupted EXIF
- Fixed incorrect write group for GeoTIFF tags added in version 11.24

Feb. 28, 2019 - Version 11.29

- Added support for Ricoh GR III maker notes
- Added a new Canon LensType (thanks Claude Jolicoeur)
- Added a new XMP-crs tag (github #8)
- Enhanced -csv option to output base64-encoded binary data when combined with -b or when the -charset option is used and the text has invalid characters (github #11)
- Remove trailing space from even-length DICOM values (github #9)
- Patched to avoid "Hexadecimal number > 0xffffffff non-portable" warning (github #6)
- Fixed meta charset attribute in -htmlDump output

Feb. 21, 2019 - Version 11.28

- Added support for reading INSV video and decode streaming GPS
- Added a new Pentax LensType (thanks Louis Granboulan)
- Added a new FujiFilm ImageStabilization value
- Allow exiftool to be run via a symbolic link on Mac/Linux
- Reverted INDD patch of version 11.27 (ie. raise error again on incorrectly terminated INDD object list)
- Changed handling of temporary documentation file in Windows version

Feb. 14, 2019 - Version 11.27

- Added support for more XMP-dji-drone tags
- Added new Olympus CameraType and LensType values (thanks LibRaw)
- Added a new Canon LensType (thanks LibRaw)
- Added a new CanonModelID
- Decode yet another type of GPS from DashCam videos
- Allow FileName to be written when only case is changed on case-insensitive filesystems
- Improved identification of some iWork file types
- Recognize the LRV file extension
- Changed Windows version to use the parent folder of PAR_GLOBAL_TEMP for the temporary documentation file
- Don't raise an error if an INDD object list is terminated by spaces instead of nulls
- Fixed some problems with new -htmldump IFD highlighting feature
- Fixed bug introduced in 11.24 with "-o -.EXT" feature

Jan. 21, 2019 - Version 11.26

- Added a new Nikon LensID (thanks LibRaw)
- Decode more tags for the Sony ILCE-6400 (thanks Jos Roost and LibRaw)
- Enhanced -htmldump feature to highlight IFD when mousing over IFD offset

Jan. 15, 2019 - Version 11.25

- Added a new Sony/Minolta LensType (thanks LibRaw)
- Added a new Nikon LensID
- Decode Leica D-Lux7 maker notes
- Decode more Nikon AF tags for newer models
- Decode Samsung Type2 maker notes with lower case Make
- Decode another Sony tag (thanks Jos Roost)
- Improved decoding of Nikon LensType
- Improved time shift feature to fix some incorrectly formatted date/time values
- Renamed some Sony ImageCount tags to ShutterCount (thanks Jos Roost)
- Fixed problem reading back metadata written to some odd PDF files

Jan. 8, 2019 - Version 11.24

- Compatibility Notice: Changed the meaning of '-' and '+' modifiers for %C formatting code (does not affect lower-case %c code)
- Decode a number of new Nikon tags (thanks Michael Tapes for samples)
- Added new Olympus FlashType and FlashModel values (thanks Per)
- Added a new Canon LensType
- Added a new Nikon LensID
- Made more GeoTIFF tags writable
- Handle XMP rdf:value when reading
- Improved warning when trying to read a file with a zero-length name
- Fixed decoding of PictureControl tags for Nikon Z-7
- Fixed problem writing date/time values with " DST" designator at end of date/time string
- Fixed problem in Windows which could cause ExifTool to abort due to a Win32::FindFile error if a file name contained surrogate Unicode characters

Dec. 21, 2018 - Version 11.23

- Recognize DWG and DWF files
- Minor improvement to some -validate warnings
- Tolerate leading UTF-8 byte order mark (BOM) at start of JSON files
- Fixed problem recognizing some streaming camm metadata in QuickTime videos

Dec. 13, 2018 - Version 11.22

- Added read support for PC Paintbrush (PCX) files
- Added two new Sony/Minolta LensTypes (thanks Jos Roost and LibRaw)
- Decode LensData tags for some newer Nikon models
- Decode ColorData for the Canon EOS R (thanks LibRaw)
- Recognize DCX files

Dec. 7, 2018 - Version 11.21

- Added a new Sony/Minolta LensType (thanks Jos Roost)
- Added a new Olympus FlashModel (thanks Michael Meissner)
- Improved decoding of FujiFilm InternalSerialNumber (thanks LibRaw)
- Minor improvements to decoding of GPS from some dashcam videos
- Made XMP-getty:Personality a List-type tag
- Made it an error to use the -o option or write FileName or Directory tags when using the TestName dry-run feature
- Fixed problem using -E with other character sets when writing

Nov. 20, 2018 - Version 11.20

- Added a new Panasonic WhiteBalance value
- Added a new Nikon LensID (thanks LibRaw)
- Decode streaming GPS from MOV videos for another dashcam model
- Improved -E option to support character sets other than UTF-8

Nov. 14, 2018 - Version 11.19

- Added -fast4 option
- Enhanced -if option to allow arbitrary Perl expressions instead of just logic expressions
- API Changes:
  - Enhanced FastScan option to add a setting of 4

Nov. 12, 2018 - Version 11.18

- Decode a new Nikon tag (thanks Richard Butler)
- Decode a new FujiFilm tag
- Updated decoding of Sony maker notes for newer models (thanks Jos Roost)
- Enhanced -if option to allow fast processing pass to evaluate the condition
- Improved warning for unknown JPEG APP segment

Nov. 4, 2018 - Version 11.17

- Added a new Canon LensType (thanks Norbert Wasser)
- Added a new Sony/Minolta LensType and a new SonyModelID (thanks LibRaw)
- Decode GPS from Garmin Dashcam videos
- Changed type of J2C files from a JPEG 2000 image to a JPEG 2000 codestream

Oct. 26, 2018 - Version 11.16

- Decode FLIR GPS information
- Decode 3D image from RED Hydrogen smartphone
- Minor improvements to decoding of new FujiFilm tags
- Fixed problem where writing Shortcut tags with the -E option would double unescape the HTML entities

Oct. 25, 2018 - Version 11.15

- Added a couple of new Canon LensType values (thanks LibRaw and Andrew Shieh)
- Added a new Nikon LensID
- Added definitions for a few more VCard tags
- Added a new FujiFilm ShutterType value
- Decode some new FujiFilm tags (thanks Richard Butler)
- Store XMP GPS coordinates with two extra digits of precision and trim trailing zeros
- Improved technique for handling rounding errors in times and GPS seconds
- Removed "Undersized IFD0 StripByteCounts" minor warning when writing ORF files since this is a "feature" of most Olympus models
- Warn about undefined EXIF values with -validate option
- Changed the way Mask-ed values are decoded (do bit shift automatically)
- Changed FujiFilm HighISONoiseReduction tag to just "NoiseReduction", and avoid extracting historic NoiseReduction tag if value is "n/a"
- Fixed potential problem reading GeoTiff tags with multiple SHORT values
- API Changes:
  - Added GeoSpeedRef option

Oct. 16, 2018 - Version 11.14

- Added more TIFF Compression values
- Added more AIFF CompressionType values
- Added more Nikon NEFCompression values (thanks LibRaw)
- Added a new Canon RecordMode
- Decode some new Canon custom functions
- Patched "Invalid VignettingCorrUnknown2 data" warning for EOS R CR3 images
- Fixed bug were any argument beginning with "-progress" on the command line was interpreted as the -progress option

Oct. 9, 2018 - Version 11.13

- Decode GPS from Nextbase 512G dashcam MOV videos (different than 512GW)
- Added a new Canon LensType (thanks LibRaw)
- Minor improvements to verbose dump of streaming GPS metadata
- Reverted change of version 10.71 which resulted in Windows not recognizing PNG CreationTime as written by ExifTool (added this feature to the API StrictDate option instead)
- Improved decoding of Nikon CropHiSpeed (thanks LibRaw)
- Improved -fast option to reduce memory usage when reading JPG, PNG, QuickTime-based and RIFF-based files via a sequential stream
- Fixed DOF calculation to use ApproximateFocusDistance if available
- API Changes:
  - Enhanced StrictDate option to reformat PNG CreateTime according to PNG specification

Oct. 2, 2018 - Version 11.12

- Added a new Sony/Minolta LensType (thanks LibRaw and Jos Roost)
- Added a new Nikon LensID
- Decode a few new Sony SRF2 tags (thanks LibRaw)
- Decode GPS from Nextbase 512GW dashcam MOV videos
- Validate MS-DOC FIB before extracting contained tags
- Fixed bug extracting GPSSpeed for some dashcam models

Sept. 27, 2018 - Version 11.11 (production release)

- Added ARQ to the list of supported file types
- Added support for GIMP XCF version 4 and later
- Added a new QuickTime HandlerType value
- Added read support for Apple AAE files
- Added a new CanonModelID and some new Canon LensType values (thanks LibRaw)
- Added a number of new Nikon LensID values (thanks Robert Rottmerhusen)
- Added a new Sony/Minolta LensType (thanks LibRaw)
- Decode more Sony IDC tags (thanks Jos Roost)
- Decode some new Panasonic tags (thanks Klaus Homeister)
- Decode more tags from Nikon MOV videos
- Decode a new Nikon tag (thanks LibRaw)
- Decode a large number of new Kodak IFD tags (thanks Jim McGarvey)
- Decode streaming GPS from videos of more dashcam and drone models
- Decode more tags from Microsoft Word DOC files
- Updated arg_files/iptcCore.args for IPTC Extension version 1.4
- Patched to read corrupted MakN data written by buggy Adobe Camera Raw
- Downgraded "Undersized StripByteCounts" error for some RAW file types
- Fixed incorrect decoding of embedded GPS in Rexing V1P dashcam videos
- Fixed incorrect format for DNGPrivateData
- Fixed potential error when deleting maker notes from some images
- Fixed problem decoding Apple PLIST information from some files
- Fixed bug in Windows with CR/LF sequences in list values of the -X output
- Fixed some inconsistencies in detecting file name conflicts when writing the TestName tag

Aug. 17, 2018 - Version 11.10

- Added support for Canon 1DX firmware 2.1.0
- Added a new Canon LensType (thanks LibRaw)
- Added a new Nikon LensID (thanks LibRaw)
- Added a new CanonModelID
- Decode more tags for newer Sony DSC models (thanks Jos Roost)
- Decode some new SonyIDC tags (thanks Jos Roost)
- Decode a number of new Panasonic tags (thanks Klaus Homeister)
- Improved validation of XMP namespaces
- Changed "File not found" messages to "Error: File not found"
- Fixed problem editing tags in Canon DR4 directory

Aug. 13, 2018 - Version 11.09

- Added new Pentax and Canon LensType values
- Decode Google Camera Motion metadata from MP4 videos
- Decode more PanasonicRaw tags (thanks Klaus Homeister)
- Removed warning when multiple Word document LastSavedBy tags exist and the Duplicates option wasn't enabled (added Note in tag name docs instead)

Aug. 1, 2018 - Version 11.08

- Decode more tags from Microsoft Word documents, including LastSavedBy
- Decode image file characteristics from Windows EXE files
- Decode more PanasonicRaw tags (thanks Klaus Homeister)
- Changed names of new Samsung trailer tags
- Fixed potential problems converting C-style escaped strings
- Fixed new "#[CSTR]" feature to work with -stay_open option

July 27, 2018 - Version 11.07

- Added "#[CSTR]" feature to -@ argfile
- Added some new Sony LensType values (thanks Jos Roost)
- Decode more tags from Samsung trailer
- Decode an undocumented DNG tag
- Decode some new Panasonic tags (thanks Klaus Homeister)
- Improved/fixed a few Validate warnings
- Made MakerNote "Bad SubDirectory start" warnings minor
- Fixed NoDups() function to work with special characters as list separators

July 6, 2018 - Version 11.06

- Fixed "undefined value" bug when reading ImageSourceData from a JPEG file

July 5, 2018 - Version 11.05

- Added a number of new Nikon LensID's (thanks Robert Rottmerhusen)
- Fixed out-of-memory problem when writing some large TIFF images in Windows

July 4, 2018 - Version 11.04

- Added a check on TIFF image data size when writing or using Validate option
- Added a few new Sony lenses (thanks LibRaw)
- Added a new Nikon LensType
- Improved validation of XMP with Validate option
- Drop PhaseOne tags larger than 8 kB when copying PhaseOne maker notes to another file
- Fixed out-of-memory problem when reading some large TIFF images in Windows

June 21, 2018 - Version 11.03

- Added support for new Exif 2.31 for XMP tags
- Added support for another FujiFilm X-T1 firmware version
- Decode more Panasonic tags (thanks Klaus Homeister)

June 13, 2018 - Version 11.02

- Added support for a different format of Apple iWorks files
- Added undocumented API FixCorruptedMOV option to allow fixing MOV videos with multiple 'mdat' atoms which were corrupted by ExifTool
- Decode more QuickTime tags
- Decode more PanasonicRaw tags (thanks Klaus Homeister)
- Improved decoding of makernotes in ARW images from Hasselblad cameras (thanks LibRaw)
- Fixed some problems writing multi-segment EXIF in JPEG images

June 11, 2018 - Version 11.01 (production release)

- Added a new ProfileCMMType (thanks Neal Krawetz)
- Added a Validate warning about non-standard EXIF or XMP in PNG images
- Added a new Canon LensType
- Decode a couple more PanasonicRaw tags (thanks Klaus Homeister)
- Patched to avoid adding tags to QuickTime videos with multiple 'mdat' atoms --> avoids potential corruption of these videos!

June 7, 2018 - Version 11.00 (production release)

- Added read support for WTV and DVR-MS videos
- Added print conversions for some ASF date/time tags
- Added a new SonyModelID (thanks LibRaw)
- Decode a new PanasonicRaw tag (thanks Klaus Homeister)
- Decode some new Sony RX100 VI tags (thanks LibRaw and Jos Roost)
- Made Padding and OffsetSchema tags "unsafe" so they aren't copied by default

May 29, 2018 - Version 10.99

- Decode layer information from Photoshop ImageSourceData in TIFF images
- Updated to the IPTC video metadata 1.2 specification
- Patched DateFmt() utility function to apply GlobalTimeShift if used
- Improved error message when trying to write a file with a wrong extension
- Fixed unnecessary warning when setting FileCreateDate in Windows

May 22, 2018 - Version 10.98

- Added additional Validate checks for JPEG thumbnail tags
- Added a new Canon LensType (thanks LibRaw)
- Decode a number of new Nikon ColorBalance tags (thanks LibRaw)
- Disable extraction of Nikon D850 PhotoShootingMenuBank from NEF images (apparently not valid in this type of file)
- Fixed problem with writable user-defined Composite tags introduced in 10.16
- Fixed unnecessary Validate warning about missing GPSVersionID
- Fixed incorrect "wrong IFD" Validate warnings in CR3 images

May 17, 2018 - Version 10.97 - "Multi-segment EXIF"

- Added read/write support for multi-segment EXIF in JPEG images
- Added a number of new Canon LensType values (thanks LibRaw)
- Added support for Panasonic DC-FT7 makernotes and metadata in MP4 videos
- Decode a number of new Nikon WB tags (thanks LibRaw)
- Improved warning message when attempting to write to an invalid tag name
- Enhanced Validate feature to perform more tests on TIFF and JPEG images
  [The Validate feature is no longer considered experimental]

May 9, 2018 - Version 10.96

- Added a new Sony LensType (thanks Jos Roost)
- Added a few new Panasonic lenses (thanks LibRaw)
- Added Composite tags for GPSDestLatitudeRef and GPSDestLongitudeRef
- Decode maker notes from Kodak PixPro AZ901
- Extract Preview images from iWork files
- Improved identification of Apple iWork files
- Fixed arg_files to handle GPS destination reference directions

May 4, 2018 - Version 10.95

- Added new Nikon LensID's (thanks Warren Hatch, LibRaw and Jami Bradley)
- Added a new Sony LensType (thanks Jos Roost)
- Decode a new Samsung tag (thanks LibRaw)
- Decode Photoshop Lr16 layer information
- Decode more Leica tags (thanks LibRaw)
- Updated DarwinCore tags to current specification
- Improved validation of JPEG files
- Disabled writing of buggy Samsung EK-GN120 SRW files
- Fixed conversion for Nikon D850 ExposureDelayMode (thanks Jami Bradley)
- Fixed "x outside string" error when reading a truncated zip file
- Fixed "uninitialized value" error when writing a corrupted JPEG image

Apr. 19, 2018 - Version 10.94

- Added read/write support for Canon CRM files
- Added a new Sony LensType (thanks Jos Roost)
- Added a new CanonModelID
- Decode a new Samsung tag (thanks LibRaw)
- Fixed AIColorModel conversion

Apr. 13, 2018 - Version 10.93

- Added a new Canon Quality value (thanks Norbert Wasser)
- Added a new Pentax Quality value (thanks LibRaw)
- Decode some new Sony ARW tags (thanks Jos Roost)
- Decode some AI-specific tags from PDF and PostScript files
- Decode a new QuickTime tag
- Enhanced -geotag option to support NMEA from GLONASS and other systems
- Fixed bug decoding seconds of ZIP file timestamps (thanks Lars Wallenborn)

Apr. 19, 2018 - Version 10.92

- Decode GPS from videos of more camera models
- Tolerate white space before header in PDF files

Apr. 9, 2018 - Version 10.91

- Added read/write support for MacOS FileCreateDate (writing this is the same as MDItemFSCreationDate, but reading uses a different mechanism which doesn't have the delayed-update issue of MDItemFSCreationDate)
- Added ability to write MacOS MDItemUserTags (requires "tag" utility)
- Decode a new Sony tag (thanks LibRaw)
- Properly un-escape quotes in extracted MacOS MDItem values
- Fixed another subtle order-of-operations anomaly
- API Changes:
  - Enhanced GetValue() to accept a tag name with group prefix(es)

Apr. 5, 2018 - Version 10.90

- Improved decoding of Sony PictureProfile (thanks Jos Roost)
- Fixed problem introduced in 10.61 with order of command-line operations when mixing copied values with assigned values

Apr. 2, 2018 - Version 10.89

- Added ability to rotate MP4/MOV videos by writing Rotation angle
- Added two new Sony PictureProfile values (thanks Albert Shan)
- Decode more Nikon tags
- Updated some values of the QuickTime MediaType tag

Mar. 27, 2018 - Version 10.88

- Added example config file (dji.config) to generate Composite GPS and other tags from Text metadata embedded in DJI drone videos
- Added a new PentaxModelID
- Documented new advanced-formatting "@" feature which has existed since version 10.53 but not fully functional until 10.87
- Decode a new Sony tag (thanks LibRaw)
- User-defined Composite tags now show up in the -list output
- Improved speed for generating Composite SubDoc tags with -ee option
- Fixed problem creating writable UserDefined Composite tags
- Fixed an incorrect PRISM tag name

Mar. 20, 2018 - Version 10.87

- Added a new FujiFilm ShutterType value (thanks Albert Shan)
- Decode more timed metadata from CR3 images
- Decode Samsung DualShot depth map
- Decode a new Canon tag
- Improved decoding of some Canon color information (thanks LibRaw)
- Fixed print conversion of ID3v2 Genre values with multiple genres

Mar. 15, 2018 - Version 10.86

- Decode timed GPS and accelerometer data from BikeBro AVI videos
- Decode a new Sony tag and add a new value to another tag (thanks Jos Roost)
- Decode GPSAltitude from some videos with the -ee option
- Decode some new tags from Kodak PixPro 4KVR360 JPEG images and MP4 videos
- Decode GPS information from CR3 images
- Fixed unnecessary warnings when Validate option used on CR3 images

Mar. 14, 2018 - Version 10.85

- Decode GPSTrack from MOV videos of more dashcam models
- Decode a few new CanonVRD tags for DPP 4.8.20
- Decode a new Sony tag (thanks Jos Roost)
- Decode a few more Canon tags (thanks LibRaw)
- Improved processing speed when using the -ee option on some video files
- Fixed incorrect names for a couple of CanonVRD HSL tags
- Fixed problem where UTF-8 validation missed some invalid sequences
- Fixed bug introduced in 10.84 with GPSPosition when -n option is used

Mar. 12, 2018 - Version 10.84

- Decode GPS from MOV videos of more dashcam models with -ee option
- Decode a new Sony tag (thanks Jos Roost)
- Convert GPS speeds extracted from MOV videos with the -ee option to km/h
- Avoid converting empty GPS coordinates to 0.000000
- Fixed some bugs extracting Novatek GPS from MP4 videos

Mar. 7, 2018 - Version 10.83

- Added read support for Sketch design files
- Added Light LRI files to the list of recognized file types
- Added a new Canon LensType (thanks LibRaw)
- Decode a couple of new Sony tags (thanks Jos Roost)
- Extract JpgFromRaw image from CR3 images
- Improved warning message when attempting to write a tag in a specific group that isn't writable
- Changed group name of JSON tags from "File" to "JSON"
- Fixed some incorrect offsets in -v3 output for CR3 images

Mar. 1, 2018 - Version 10.82

- Added support for Canon's new CR3 raw file format
- Added a few new CanonModelID/SonyModelID values (thanks LibRaw)
- Added support for the Sony ILCE-7M3 (thanks Jos Roost)
- Decode timed GPS information from Insta360 MP4 videos with the -ee option
- Write XMP before mdat in MOV/MP4/CR3 files if possible
- Fixed "'x' outside of string" runtime error when reading some Sony images
- Fixed problem with some hex dumps going to the console when -v3 was combined with the -w option

Feb. 26, 2018 - Version 10.81

- Added new values for a few Panasonic tags (thanks Bernd-Michael Kemper)
- Added a new Canon, Olympus and Sony LensTypes (thanks LibRaw)
- Added a new PanasonicRaw Compression type (thanks LibRaw)
- Added definitions for a number of new MacOS tags
- Decode CameraInfo for Canon 5DmkIII firmware 1.3.5
- Removed INX from list of writable files (-listwf option output)
- Fixed problem introduced in version 10.16 that could cause a "Can't create" error when using the -o option to write certain types of files
- Fixed problem introduced in version 10.34 resulting in a "Can't delete all meta information" error when writing .PS files

Feb. 22, 2018 - Version 10.80 (production release)

- Added read/write support for Reconyx UltraFire maker notes
- Added a new Sony/Minolta lens (thanks Jos Roost)
- Decode a new PanasonicRaw tag (thanks LibRaw)
- Extract ImageWidth/Height for main image of an HEIC file
- Internal changes:
  - Changed TimeNow() make ExifTool object optional

Feb. 11, 2018 - Version 10.79

- Added a new Olympus CameraType (thanks LibRaw)
- Added a new XMP-microsoft tag (thanks José Oliver-Didier)
- Decode a new GoPro QuickTime tag
- Convert nulls IPTC:DocumentHistory to newlines
- Removed all null terminators from JSON and PHP output
- Fixed writing of GPSDateStamp and GPSTimeStamp to be able to set to "now"
- Internal changes:
  - Changed TimeNow() to require ExifTool object as first argument

Jan. 31, 2018 - Version 10.78

- Added a few new values for some Olympus tags (thanks John)
- Decode GoPro APP6 metadata in JPEG images and more GoPro MP4 tags
- Decode more Red tags, and improved decoding of others
- Decode face detection information from timed metadata with the -ee option
- Fixed problem writing shorthand XMP containing CDATA sections
- Fixed problem copying XMP-acdsee:Snapshots
- Fixed decoding of a few Panasonic RAW tags (thanks Klaus Homeister)

Jan. 26, 2018 - Version 10.77

- Added read support for Redcode R3D RAW videos
- Enhanced -sep option to specify separator and terminator for binary output
- Removed null terminator from JSON output of ICC_Profile:CharTarget
- Improved error messages to help diagnosing some types of corrupted files
- Return an exit status of 2 instead of 1 if all files fail the -if condition
- Fixed decoding of QuickTime chapter names
- Fixed incorrect MimeType for RMD files
- Fixed problem where exit status of 1 was returned when writing with a -if condition if any of the files failed the condition

Jan. 22, 2018 - Version 10.76

- Added ability to write shorthand XMP with the -z option
- Added write support for Google XMP GFocus tags
- Improved decoding of GoPro timed metadata
- Renamed ASF PlayDuration to Duration
- Fixed problem where fractional seconds were ignored when geotagging from an NMEA track log with no date stamps
- Fixed runtime warning when reading XMP with an empty structure in a list
- API Changes:
  - Added XMPShorthand option
  - Enhanced Compact option so a setting of 2 avoids XMP indentation

Jan. 12, 2018 - Version 10.75

- Added another Sony/Minolta lens (thanks Jos Roost)
- Decode more QuickTime tags
- Decode a number of new tags from GoPro Hero6 MP4 videos
- Enhanded "Unknown file type" error to indicate if "File is empty" or "File header is all binary zeros"
- Improved decoding of some Sony tags (thanks Jos Roost)
- Improved decoding of QuickTime timed metadata
- Marked ArtworkCircaDateCreated as "unsafe" for writing to avoid it being added when attempting to shift all date/time tags
- Fixed bug which could cause runtime error when reading some old Sony maker notes (thanks Tamas Lovag)

Jan. 8, 2018 - Version 10.74

- Added a new Sony/Minolta lens (thanks Jos Roost)
- Added print conversion for ICC_Profile DeviceManufacturer and ProfileCreator
- Added informational warning when the ExtractEmbedded option may be useful
- Improved experimental Validate feature for RAW files
- Fixed bug in experimental Validate feature that could cause out-of-memory error when combined with "-use mwg"

Jan. 5, 2018 - Version 10.73

- Added read/write support for GoPro RAW (GPR) files
- Added a new Sony/Minolta lens (thanks Sylvain)
- Improved conversions for GPS tags extracted from video streams

Jan. 4, 2018 - Version 10.72

- Added IF feature to -p option
- Decode streamed GPS position and other streamed metadata from MP4 videos when the -ee option is used
- Fixed problem geotagging GPSAltitude from some GPX files

Jan. 2, 2018 - Version 10.71

- Decode some more ICC_Profile tags (thanks Eef Vreeland)
- Decode MechanicalShutterCount for Nikon D850 (thanks Xavier Jubier)
- Convert PNG:CreationTime values to/from standard date format
- Fixed problem loading default config file from application directory
- Fixed problem reading XMP where a namespace is defined after an attribute which uses the namespace

Dec. 27, 2017 - Version 10.70

- Search application directory for -config file
- Improved robustness of JSON import
- Enhancements to experimental Validate feature
- Fixed bug introduced in 10.69 which could result in hang when writing multi-segment JPEG metadata

Dec. 18, 2017 - Version 10.69

- Added "OK" UserParam for use in -if conditions
- Allow writing an empty JPEG Comment
- Check for proper location of Photoshop metadata with -validate or -use mwg
- Exit status now set to 1 if command was aborted due to invalid arguments
- Translate "UTF8" to appropriate escape sequence when writing IPTC:CodedCharacterSet with the -n option
- Improved "Not a valid TIFF" error message to be more specific about the file type for TIFF-based formats
- Fixed problem parsing Honeywell PTNTHPR NMEA sentences from some GPS devices

Dec. 5, 2017 - Version 10.68

- Added ability to set tag values and API options to an empty string using "^=" on the command line
- Added a new Sony LensType (thanks Jos Roost)
- Added a new Nikon LensID
- Decode more tags from some newer Leica models
- Decode a new Apple tag
- Fixed indeterminate order of extracted XMP structures

Nov. 16, 2017 - Version 10.67

- Fixed problem introduced in 10.66 with -execute not returning the command number in the "{ready}" message when -stay_open was used
- API Changes:
  - Added TimeZone option

Nov. 14, 2017 - Version 10.66

- Added a new Canon LensType (thanks Norbert Wasser)
- Updated en-ca and en-gb language translations
- Minor format change to experimental Validate feature return value
- Prevent JFIF from being added to a JPEG containing Adobe APP14
- Changed a number of Canon LensType strings to add "USM" to L model names
- Patched for compatibility with Time::Piece version 1.29_04 and later, and improved error handling when writing formatted date/time values
- Fixed bug in Composite MWG CreateDate and DateTimeOriginal tags which could cause existing tags to be hidden when not using the -a option
- Fixed problem using '#' suffix not properly fixed in 10.65
- Fixed problem decoding Nikon D810 MultiExposure tags

Oct. 31, 2017 - Version 10.65

- Added support for DOSLatinUS (cp437) and DOSLatin1 (cp850) character sets
- Added Extra ForceWrite tag for forcing metadata in a file to be rewritten
- Added write support for RAF images from some newer FujiFilm models
- Added a new SonyModelID, Sony LensType and Olympus LensTypes (thanks LibRaw)
- Added a new Pentax LensType
- Added a new Nikon LensID
- Decode more Sony tags for new models (thanks Jos Roost)
- Decode Nikon D850 ShotInfo tags and custom settings (thanks Warren Hatch)
- Decode Nikon D850 ColorTemperatureAuto (thanks LibRaw)
- Decode Photoshop LayerModifyDates and LayerIDs
- Improved decoding of Nikon D5/D500/D810 ShotInfo tags
- Allow advanced formatting expressions to return a list reference
- Fixed problem in Composite:GPSAltitude when derived from an "undef" altitude
- Fixed bug which could result in runtime warning when excluding some tags from being extracted

Oct. 17, 2017 - Version 10.64

- Added a new Nikon LensID
- Added a new SonyModelID
- Added a new CanonModelID (thanks LibRaw)
- Added some new non-standard CustomRendered values
- Decode FrameRate from FLIR SEQ files (thanks Sebastian Häni)
- Enhanced shift feature to be able to shift some not-so-simple numerical values (eg. GPSLatitude) with -TAG+=VALUE syntax
- Fixed problem with possible malformed UTF-8 when writing IPTC values that require truncation
- Fixed incorrect Writable type for XMP-GSpherical:TimeStamp
- Fixed incorrect family 2 group name for Nikon HDRInfo tags

Oct. 4, 2017 - Version 10.63

- Added a number of new Canon LensTypes (thanks Norbert Wasser for some)
- Added a new CanonModelID
- Added a new Olympus CameraType
- Decode MD5Signature in FLAC StreamInfo (thanks Tim Eliseo)
- Improved decoding of HEIC/HEIF metadata
- Removed useless write support for QuickTime date/time tags in HEIC/HEIF images
- Fixed "Incorrect XMP stream length" problem when writing some INDD files

Sept. 28, 2017 - Version 10.62

- Added preliminary support for HEIC/HEIF images
- Added support for Google depthmap metadata (XMP-GDepth)
- Added some new Sony/Minolta lenses (thanks LibRaw and Jos Roost)
- Added a new CanonModelID (thanks Norbert Wasser)
- Added a new Nikon LensID (thanks Michael Tapes)
- Decode a new Sony tag (thanks Jos Roost)
- Decode some new Nikon tags (thanks Warren Hatch)
- Decode maker notes from Leica TL2
- Enhanced ID3 -v2 output to show frame flags
- Fixed problem decoding Nikon D810 camera tilt angles
- Fixed problem where SphericalVideoXML metadata was deleted when writing XMP to a QuickTime-format file containing this information

Aug. 18, 2017 - Version 10.61

- Added a new Canon LensType (thanks LibRaw)
- Added a number of new Sigma, Nikon and Sony lenses (thanks Jos Roost)
- Added a new Nikon LensID (thanks Yang You)
- Decode a number of new Sony tags (thanks Jos Roost)
- Decode Panasonic FocusDistance (thanks David Ellsworth)
- Updated to the IPTC video metadata 1.1 specification
- Restored the ability to delete JpgFromRaw from RAW images (broken in 10.38)
- Fixed problem decoding maker notes from Pentax K-70 AVI videos
- Fixed problem conditionally replacing a tag if the value to be deleted was taken from another tag while the new value was assigned directly

July 21, 2017 - Version 10.60

- Added two new Sony/Minolta LensTypes (thanks Jos Roost)
- Added a new Pentax LensType (thanks Dieter Pearcey)
- Added new Composite UniquePathPoints tag to photoshop_paths.config
- Extract raw-data JFIF/JFXX thumbnails as ThumbnailTIFF
- Improved Sony LensSpec conversion
- Updated German translations (thanks Herbert Kauer)
- Set family 1 group name of JFXX ThumbnailImage to JFXX instead of JFIF
- Fixed problem with %C no longer incrementing properly

July 7, 2017 - Version 10.59

- Added a new Canon LensType (thanks LibRaw)
- Added a new Nikon LensID
- Added "wrong extension" warning to experimental Validate feature
- Decode Pentax maker notes in Q-S1 AVI videos
- Updated iptc2exif.args and exif2iptc.args to support new EXIF OffsetTime tags (thanks Herb)
- Patched potential problem with "Use of uninitialized value $pos" error when importing malformed JSON data
- Patched to avoid runtime warning due to invalid Nikon ShutterCount value
- Raise an error if -b is used with the -csv option
- Changed PNG exIf chunk name to eXIf
- Fixed bug introduced in 10.26 which could cause hang when %C is used in an output file name
- Fixed MWG:DateTimeOriginal and MWG:CreateDate to return XMP when EXIF and IPTC don't exist

June 29, 2017 - Version 10.58

- Added read support for RIFF-format MBWF/RF64 files
- Added write support for dji-drone XMP tags
- Added a new Canon LensType (thanks Steve Bates)
- Added a few new Sony/Minolta LensType values (thanks Jos Roost)
- Added a couple of new CanonModelID values (thanks LibRaw and Norbert Wasser)
- Decode some new FujiFilm tags (thanks Chris Schucker)
- Enhanced FileSize print conversion to show in "GB" for large files
- Fixed "outside of string in unpack" errors when reading some corrupted EXE/ICC files
- Fixed problem extracting GIF MIDISong metadata

June 20, 2017 - Version 10.57

- Added a new Canon LensType (thanks Norbert Wasser)
- Added write support for PNG Collection tag
- Added a few new CanonModelID values
- Added some new Pentax ShakeReduction values
- Removed ability to create PNG zxIf chunks
- Documented -progress:%b feature (added in 10.26)
- No longer report FileType, FileTypeExtension or MIMEType for JPEG/TIFF images with an unknown header
- Relaxed case requirement for "SourceFile" header in CSV and JSON import
- Fixed decoding of Pentax ExposureCompensation for newer Ricoh models
- Fixed some incorrect "Wrong IFD" messages with experimental Validate feature
- Fixed a couple of Sony/Minolta lens names (thanks Jos Roost)
- Fixed "Error reading PreviewImage" warning for some Sony models

June 6, 2017 - Version 10.56

- Removed ordering constraints between Geotag/Geosync and Geotime assignments on the command line
- Removed debugging print statement left in photoshop_paths.config

June 5, 2017 - Version 10.55 (production release)

- Added support for GIF multimedia extensions
- Added a couple of new Sony/Minolta lenses (thanks Chris)
- Added a new Nikon LensID (thanks Jakob Dettner)
- Added new Composite TotalPathPoints tag to photoshop_paths.config
- Decode a number of new Sony tags and updated some others (thanks Jos Roost)
- Decode a new Pentax tag and fixed decoding of another (thanks Andras Salamon)
- Updated iptcCore.args for new IPTC specification
- Changed description of a couple of AVI Model tags to match EXIF
- Patched tests to avoid failures with Perl 5.25.11 due to missing "." in @INC
- Fixed an incorrect warning from the experimental Validate feature

May 26, 2017 - Version 10.54

- Added support for Google XMP GImage and GAudio tags
- Added a new Olympus CameraType (thanks LibRaw)
- Added a two new Sony lenses and decode more ILCE-9 tags (thanks Jos Roost)
- Added new values to some Pentax tags (thanks Andras Salamon)
- Added a new Canon LensType
- Added an additional checks to the experimental Validate feature
- Improved user-defined FileTypes feature to provide more flexibility
- Enhanced -ext option to allow specific files extensions to be processed along with supported files
- API Changes:
  - Added ListJoin option to replace List and ListSep options

May 17, 2017 - Version 10.53

- Added support for "MeSa" Photoshop IRB resource
- Made XMP-GSpherical tags writable
- Improved German translations (thanks Jobi)

May 12, 2017 - Version 10.52

- Added some new values to a number of FujiFilm tags and changed some others (thanks Albert Shan)
- Decode a number of new Sony tags for the ILCE-9 (thanks Jos Roost)
- Made SonyISO writable
- Changed behaviour of advanced formatting expression for Shortcut tags so it now applies to the combined value rather than individual constituent values
- Minor changes to some Pentax print conversions
- Fixed problem using new NoDups utility with Shortcut tags

May 2, 2017 - Version 10.51

- Added "NoDups" utility function for use in advanced formatting expressions
- Added a new Pentax LensType (thanks JohnK)
- Added some new Pentax DriveMode values (thanks Andras Salamon)
- Enhanced -ver option to report Perl include directories with -v2
- Improved warning message when advanced formatting expression returns undef
- Minor change to a few FujiFilm print conversion strings (thanks Albert Shan)
- Changed behaviour when interpolating Shortcut tags in a string (the values are now separated according to the -sep option setting instead of simply being concatenated)
- Patched to allow file times to be set on systems where futimes is not available

Apr. 20, 2017 - Version 10.50 (production release)

- Decode a new Pentax tag (thanks Andras Salamon)
- Improved decoding of Olympus DriveMode (thanks Herbert Kauer)
- Improved handling of errors from utime when setting file times
- Fixed potential hang problem when reading corrupted QuickTime metadata
- Fixed problem deleting duplicate EXIF tags when writing other tags at the same time

Apr. 10, 2017 - Version 10.49

- Added "DateFmt" utility function for use in advanced formatting expressions
- Added a new Sony/Minolta LensType (thanks LibRaw)
- Decode a new Panasonic tag
- Fixed problem decoding Sony VariableLowPassFilter values (thanks Jos Roost)
- Fixed problem setting XMP:About when creating new XMP in a file
- Fixed an incorrect Pentax DriveMode value (thanks Andras Salamon)
- API Changes
  - Allow access to the advanced formatting expression via a new ExifTool "FMT_EXPR" member variable

Apr. 3, 2017 - Version 10.48

- Added some new FujiFlashMode values (thanks Albert Shan)
- Added a new Sony LensType (thanks Jos Roost)
- Added a new Canon LensType (thanks LibRaw)
- Added a new CanonModelID and minor changes to some others (thanks Dmitry)
- Decode two Pentax tags and added a number of new values for other Pentax tags (thanks Andras Salamon)
- Decode a new Sony tag (thanks Jos Roost)
- Improvements to the experimental Validate feature
- Fixed problem which could cause hang when reading bad PPT documents

Mar. 20, 2017 - Version 10.47

- Added read support for JSON-format files
- Added two new Sony/Minolta lenses (thanks Jos Roost)
- Added a number of new Pentax tag values
- Decode a new Canon CR2 tag (thanks Ed Hannon)
- Decode WB information for Canon 800D (thanks LibRaw)
- Improved config_files/photoshop_paths.config to indicate start of paths
- Attempt to validate new file names in Windows before renaming images
- Experimental Validate feature no longer warns about Windows XP tags
- Fixed problem extracting layer information from very large PSD/PSB files

Mar. 8, 2017 - Version 10.46

- Moved Mac System tags from the Extra table into a new MacOS group and added ability to extract them by requesting the MacOS group
- Updated QuickTime GenreID list (thanks François Bonzon)
- Fixed "Invalid xref" problem when reading some PDF files
- Fixed error in Minolta lens list (thanks Jos Roost)
- Fixed minor problem with -U option generating Unknown tags for some known bytes in variable-sized strings
- API Changes:
  - Enhanced RequestTags option to allow groups to be requested

Mar. 2, 2017 - Version 10.45

- Added ability to write a number of Mac OS X system tags (including the file creation date!)
- Added ability to extract OS X extended attributes ("XAttr" tags)
- API Changes:
  - Added XAttrTags option
  - Enhanced RequestAll option

Feb. 24, 2017 - Version 10.44

- Added a few new CanonModelID values and a new Canon LensType
- Added two new Nikon lenses (thanks Rolf Probst)
- Added a few new Sony/Minolta lenses (thanks Jos Roost)
- Added two new Sony MeteringMode values (thanks Jos Roost)
- Improved verbose dump of Photoshop Layer information
- Patched to allow "FileName encoding not specified" warnings to be avoided by setting -charset filename=""
- Fixed problem in photoshop_paths.config printing some paths

Feb. 16, 2017 - Version 10.43

- Restrict writing of EXIF:FlashEnergy to a single value as per EXIF spec
- Reverted format change of Sony ImageCount tag
- Changed PNG new eXIF/zXIF chunk names to "exIf" and "zxIf" until the proposed chunks are accepted (of course, while maintaining backward compatibility for reading/updating the other chunks)
- Lowered priority of XMP-pdf:Keywords so it doesn't take precedence over PDF:Keywords when the Duplicates option is not used
- Improved config_files/convert_regions.config to handle the case where the RegionInfoMP is missing a Rectangle

Feb. 10, 2017 - Version 10.42

- Added ability to read/write PNG eXIF and zXIF chunks, and made these the place where new EXIF is created in PNG images (zXIF if the -z option is used, or eXIF otherwise)
- Added ability to copy Photoshop OriginPathInfo with photoshop_paths.config
- Made FileUserID and FileGroupID writable
- Changed format for a Sony ImageCount tag
- Improvements to experimental Validate feature
- Fixed incorrect XMP swf namespace URI
- Fixed problem using new -p section feature when combined with -w or -ee
- Fixed formatting problem in -listx output when -lang option was used
- Fixed problem where UserComment wasn't removed if found in IFD0 when writing it to the correct IFD

Feb. 1, 2017 - Version 10.41

- Added an experimental metadata validation feature (invoked either by requesting the new Extra Validate tag or by setting the API Validate option)
- Added support for PSDT file extension
- Added age.config to the distribution
- Added a new Sony lens (thanks Jos Roost)
- Added a new PentaxModelID (thanks Louis Granboulan)
- Enhanced -p option to allow files to be grouped in sections
- Made makernote offset warning minor
- Relaxed parsing of NMEA GGA sentence so comma after the geoid units is now optional
- Patched problem extracting value of an unsafe binary tag with the -b option when specified using -TAG# instead of -TAG with -n
- API Changes:
  - Added experimental Validate option

Jan. 14, 2017 - Version 10.40 (production release)

- Fixed tests that were failing on some platforms

Jan. 13, 2017 - Version 10.39

- Added Perl version and Unicode settings to -ver -v output
- Added a new Sony LensType2 value
- Added a new Canon LensType (thanks Norbert Wasser)
- More improvements to sample time_zone.config file (thanks Hayo Baan)
- Fixed problem with MWG date/time tags introduced in version 10.34
- Fixed problem setting the value of a tag from a binary file when the PERL_UNICODE environment or the perl -C option is used to force UTF-8 treatment of @ARGV elements

Jan. 5, 2017 - Version 10.38

- Added a couple of new XMP-ics tags
- Added a new Nikon LensID (thanks Ken Cochran)
- Decode a couple more PhaseOne tags
- Increased priority of Sony 0x0115 WhiteBalance when reading
- Range check QuickTime date/time values when writing
- Apply CharsetPhotoshop setting to decoding of Photoshop LayerNames
- Improved identification of Nikon NRW images
- Minor improvements to verbose dump of FLIR information
- Improvements to sample time_zone.config file (thanks Hayo Baan)
- Removed trailing null in -b output for GPSDateStamp
- Changed "TAG is not supported" warning when writing to "TAG is not defined"
- Changed groups of Composite Preview/Thumbnail/JpgFromRaw/etc images to match the tags from which they are derived
- Changed description of Composite Nikon LensSpec tag to match the tag name
- Fixed problems reading/writing PreviewImage from some DNG files

Dec. 19, 2016 - Version 10.37

- Decode more information from BMP V4 and V5 images
- Added a few new FujiFlashMode values (thanks Albert Shan)
- Changed -geotime default to use unconverted value of DateTimeOriginal
- Changed a couple of Sony Voigtlander LensType strings (thanks Jos Roost)
- Warn about invalid tag names used on the command line
- Generate default-language version of QuickTime tags even if the same-named tag already exists in another group
- Fixed bug reading some Photoshop layer information
- Fixed problems in sample config file time_zone.config (thanks Hayo Baan)

Nov. 24, 2016 - Version 10.36 (production release)

- Added 3D Studio MAX files to the list of supported file types
- Decode more Sony tags (thanks Jos Roost)
- Decode a couple more FlashPix tags
- Minor changes to some of the new IPTC Extension tags
- Fixed problem reading some FlashPix (Windows Compound Binary Format) files

Nov. 21, 2016 - Version 10.35

- Fixed bug in Windows version introduced in 10.32 which could cause ExifTool to exit with an error if the -lang option was used

Nov. 21, 2016 - Version 10.34

- Added support for new IPTC Extension version 1.3 + video metadata XMP tags
- Added missing print conversion for PreviewDateTime
- Decode a few new FujiFilm tags (thanks Zilvinas Brobliauskas)
- Enhanced MWG date/time tags to support new EXIF time offsets
- Patched loophole in WriteMode which would allow creation of new metadata files when creation of new groups was disallowed
- Fixed problem where some EXIF date/time tags may not shifted when shifting all date/time tags with "-time:all-=VAL" for ExifTool version 10.28-10.33 or when the MWG feature was used

Nov. 11, 2016 - Version 10.33

- Windows EXE version is 32-bit again, and packaged with Perl 5.24.0
- Fixed encoding problem with EXIF:Copyright when writing MWG tags using an alternate EXIF charset

Nov. 9, 2016 - Version 10.32

- WARNING: The Windows EXE version for this release is 64-bit (and packaged with Perl 5.22.2 instead of 5.24.0)
- Time::Piece may now be used as an alternative to POSIX::strptime for parsing date/time values when writing, and is included in the Windows package
- Added a number of new XMP tags (thanks StarGeek)
- Added support for a few new Sony cameras (thanks Jos Roost)
- Added new Nikon LensID (thanks Tanel)
- Decode a new Nikon tag (thanks Warren Hatch)
- Decode FLIF encoding type
- Decode a new Samsung tag (thanks Klaus Homeister)
- Ignore -filter option for a tag if it returns an undefined value

Oct. 19, 2016 - Version 10.31

- Added write support for FLIF images
- Added support for animated PNG images
- Added a few new SamsungModelID values
- Added a new Canon LensType
- Added a new Sony/Minolta LensType (thanks Jos Roost)
- Decode more Samsung tags (thanks Klaus Homeister and Sreerag Raghavan)
- Decode more Nikon tags (thanks Warren Hatch)
- Changed "TAG does not exist" warning when writing to "TAG is not supported"
- Fixed problem importing information from CSV or JSON databases for files with special characters in their name

Oct. 13, 2016 - Version 10.30

- Added read support for FLIF images
- Added a couple of new Minolta/Sony LensType values (thanks Jos Roost)
- Added a new SonyModelID (thanks LibRaw and Jos Roost)
- Added a new digiKam XMP tag
- Decode a new Apple tag (thanks Neal Krawetz)
- Decode a few new FujiFilm tags (thanks Chris Schucker)
- Decode more Nikon D5 custom settings (thanks Warren Hatch)
- Decode a couple more Samsung tags (thanks Klaus Homeister)
- Improved decoding of Nikon D500/D5 ShotInfo information
- Enhanced -ver option to output system information when -v is added
- Minor change to parsing of -@ argfile (comment lines may may no longer have spaces before the "#")
- Patched Jpeg2000 reader to read bad UUID-EXIF boxes
- Lowered priority of unknown XMP tags when reading
- Fixed problem in new xmp2exif.args date/time arguments introduced in 10.28
- Fixed potential "Use of uninitialized value" warning when decoding compressed PNG iTXt chunk

Oct. 5, 2016 - Version 10.29

- Added a couple of new Sony LensType values (thanks LibRaw)
- Decode a few new Sony tags
- Decode a few new FLIR tags
- Decode some new Nikon D5 tags (thanks Warren Hatch)
- Decode a new Apple tag
- Enhanced -geotag option to allow tagging from KML placemarks with a TimeSpan
- Enhanced -d option (and API DateFormat option) to perform inverse date/time conversion when writing if the POSIX::strptime module is available. If POSIX::strptime is not available then the behaviour is like older versions (ie. the date/time is not converted) unless the API StrictDate option is set in which case a warning is issued and the tag is not written

Sept. 27, 2016 - Version 10.28 - "Exif 2.31"

- Added support for new Exif 2.31 tags
- Added some new Canon LensType values (thanks Norbert Wasser for one)
- Added a new Olympus LensType (thanks LibRaw and Niels Kristian Bech Jensen)
- Added a new Sony LensType and SonyModelID (thanks Jos Roost)
- Added a new Pentax LensType
- Added fotoware.config and bibble.config files to the distribution
- Made Composite SubSecDateTimeOriginal, SubSecCreateDate and SubSecModifyDate tags writable, and expanded to include new Exif 2.31 time zone tags
- Fixed problem writing user-defined structured tag elements with a dot (.) in their tag ID

Sept. 23, 2016 - Version 10.27

- Added a new CanonModelID (thanks LibRaw)
- Added a new Sony LensType (thanks Jos Roost)
- Added a few new NikonLensID's (thanks Yang You and Robert Rottmerhusen)
- Added a couple of new Olympus LensType values (thanks LibRaw and Niels Kristian Bech Jensen)
- Added a new Olympus CameraType
- Decode some Canon 80D, 750D, 760D and 1200D CameraInfo tags
- Changed writing of some ExposureTime and ExposureCompensation tags to allow the exact numerator and denominator of the stored rational value to be specified
- Fixed Timecode printout in -v3 output for M2TS videos (thanks Ken Neighbors)
- Fixed some problems with the new "-progress:TITLE" feature
- Fixed problem where "_exiftool_tmp" file could be left around after a failed write attempt
- Fixed potential "isn't numeric" runtime error when reading a PDF file with the -ee option

Sept. 15, 2016 - Version 10.26

- Added read support for GSpherical metadata in MP4 videos
- Added a few new XMP-xmpMM tags and a new XMP-crs tag
- Added some new Minolta/Sony lenses (thanks Jos Roost)
- Added two new CanonModelID's (thanks Norbert Wasser and Laurent Clévy)
- Added two new Canon LensType's (thanks Norbert Wasser)
- Decode a number of Nikon D610 custom settings (thanks Tor)
- Removed a questionable Samsung tag
- Marked TestName tag as "unsafe" for writing
- Enhanced -progress option with ability to set console window title
- Changed behaviour of %C to increment for each processed file as documented (was incrementing for each output file created)
- Patched to recreate XMP in the standard location of PNG images when deleting certain non-standard XMP as a group and recreating in one step
- Fixed runtime warning when writing 0 to MinoltaRaw ISOSetting
- Fixed problem writing SRW images from some newer Samsung models

Aug. 3, 2016 - Version 10.25

- Added a new Pentax PictureMode (thanks Louis Granboulan)
- Added a new Nikon LensID (thanks LibRaw)
- Decode a new Samsung tag (thanks LibRaw)
- Decode a few more Canon tags (thanks Anton Reiser)
- Removed "Avoid" flag for XMP-crs:ColorTemperature
- Changed the format of a number of XMP-GPano tags from integer to real
- Fixed incorrect tag ID's for some obscure Island Graphics EXIF tags
- Fixed decoding of some UTF-8 DNG tags which may be stored in BYTE format

July 27, 2016 - Version 10.24

- Added support for DJI Phantom maker notes
- Added a few more XMP-crs tags
- Added ability to write DNG OpcodeList tags
- Added a new Sony/Minolta LensType (thanks Jos Roost)
- Added a few new FujiFilm Saturation values
- Added a new FujiFlashMode value and fixed an incorrect Italian translation (thanks Massimo Sanna, ApolloOne)
- Decode more Pentax tags (thanks Louis Granboulan)
- Changed -config option to search the current directory first for the config file (patches problem introduced in ExifTool 10.21 for Windows where the working directory might not be searched when using the -config option)
- Changed print conversion of ProcessingTime to show 3 significant digits
- Fixed bug decoding PanasonicRaw DistortionInfo in DNG images

July 14, 2016 - Version 10.23

- Added read support for Ogg Opus audio files
- Added ability to geotag only GPS date/time if no position information is available by setting Geotag to "DATETIMEONLY" (all caps)
- Added "-charset RIFF" option
- Added a new Sony LensType (thanks Jos Roost)
- Decode a number of new Canon tags (thanks Kai Harrekilde-Petersen)
- Changed handling of special characters in RIFF-format files (eg. AVI, WAV)
- Changed MIME type of OGG files to audio/ogg (was audio/x-ogg)
- Minor change to wording of new Nikon D80 Rotation tag for consistency
- API Changes:
  - Added CharsetRIFF option

July 7, 2016 - Version 10.22

- Added read support for BPG images
- Minor changes to a few of the new Nikon tags
- Fixed problem in Windows version where not all 10.21 updates were included in the release

June 29, 2016 - Version 10.21

- WARNING: The Windows EXE package for this release was built on Windows 10 using Perl 5.24 instead of Windows XP and Perl 5.8 -- please watch for problems and report anything that you find
- Added a new Minolta/Sony LensType (thanks LibRaw)
- Added a new element to the XMP Colorant structure
- Added a new Pentax lens (thanks Louis Granboulan)
- Decode Nikon D5/D500 AF information (thanks Michael Tapes for samples)
- Decode a number of new Olympus tags (thanks Daniel Pollock)
- Decode a number of new Nikon tags (thanks Warren Hatch)
- Decode Pentax K-1 AF points (thanks Louis Granboulan)
- Extract a new DPX tag
- Patched to avoid writing an empty structure field for an undefined value

June 13, 2016 - Version 10.20 (production release)

- Added a few new Sigma LensTypes (thanks LibRaw and Jos Roost)
- Added a new Sony LensType (thanks Jos Roost)
- Added two new Canon LensTypes (thanks Jos Roost and Norbert Wasser)
- Added a couple of new PentaxModelID's (thanks Louis Granboulan for one)
- Added a new Pentax LensType (thanks Louis Granboulan)
- Added a few new Olympus PictureMode values (thanks Daniel Pollock)
- Added a few more XMP tags
- Decode a new Nikon video tag (thanks Hayo Baan)
- Patched to allow protected binary data tags to be extracted when -b is combined with -php or -X if the tag is specifically requested
- Fixed bug introduced in version 9.96 where extended XMP is ignored if the MWG module is used
- Fixed problem where the MWG module wasn't loaded automatically if there were MWG tags in the argument to the -p option
- Fixed column alignment of alternate-language output (requires Unicode::LineBreak to be installed)
- Fixed problem writing Sigma:LensFocalRange

May 31, 2016 - Version 10.19

- Added a few new Sony and Sigma LensType values (thanks Jos Roost)
- Decode more Nikon tags (thanks Warren Hatch)
- Fixed an incorrect Sigma LensType (thanks LibRaw)
- Fixed decoding of D500 custom settings for NEF images (thanks Warren Hatch)

May 27, 2016 - Version 10.18

- Added a number of new Sigma LensTypes (thanks LibRaw)
- Added a few new Sony/Minolta lenses (thanks Jos Roost)
- Added ability to write FilePermissions
- Decode NikonCustom settings for the D500 (thanks Warren Hatch)
- Decode PLUS MediaSummaryCode values
- Use hexadecimal for Sigma LensType values
- Changed -fileOrder option to sort numbers in strings numerically
- Fixed typo in Samsung lens name

May 16, 2016 - Version 10.17

- Added support for Leica X-U (Typ 113) maker notes
- Added a new Pentax LensType (thanks Louis Granboulan)
- Added a number of new Sony lenses (thanks Jos Roost)
- Added a new Canon LensType (thanks Mees Dekker)
- Extract TIFF-format thumbnails and previews
- Patched to ignore XML entities inside comments
- Fixed inconsistent conversion of PreviewColorSpace values
- Fixed writing of TargetPrinter tag
- Fixed bug introduced in 10.16 which which could cause a runtime warning when using the -o option and not writing any "real" tags

May 3, 2016 - Version 10.16

- Added %D, %F and %E filename format codes
- Added a new Minolta lens (thanks Jos Roost)
- Decode Photoshop Compression mode
- Decode Nikon MultiExposure information for the D5
- Updated decoding of Sony tags for ILCA-68 (thanks Jos Roost)
- Fixed bug adding back XMP tags after deleting all XMP from MOV/MP4 files
- Fixed problem using -o option when reading from stdin (ie. FILE is "-")
- Fixed problem where user-defined Composite tags may not always override pre-defined Composite tags with the same name, and added feature to allow the user to specify whether they should override existing tags or not

Apr. 20, 2016 - Version 10.15 (production release)

- Added .a and .o to the list of supported file types
- Added a few new Sony/Minolta lenses (thanks Jos Roost and LibRaw)
- Decode more Photoshop tags (thanks Taylor Bangs for some)
- Decode more information from static library (.a) files
- Decode a few more tags from GoPro MP4 videos (thanks Calvin Hass)
- Decode ColorData for Canon EOS 1300D (thanks LibRaw)
- Updated Sony decoding for newer models (thanks Jos Roost)
- Fixed bug where ScaleFactor35efl could be calculated incorrectly for Canon images from some models which have had their EXIF rebuilt

Apr. 8, 2016 - Version 10.14

- Added read support for ISO 9660 disk images
- Added a few new Nikon ISOExpansion values (thanks LibRaw)
- Added a few new Olympus LensType values (thanks Niels Kristian Bech Jensen)
- Added a couple of new SonyModelID values (thanks LibRaw for one)
- Added a new Olympus CameraType
- Added config_files/gps2utm.config to the distribution
- Decode Canon ColorData for the EOS 80D (thanks LibRaw)
- Decode a few new Samsung tags (thanks François)
- Decode a new Fuji tag (thanks Frank Markesteijn)
- Calculate Duration for APE audio files
- Tightened constraints on M2TS file recognition
- Improved verbose dump of ID3 information
- Changed XMP-acdsee:Snapshots to a Binary data tag
- Fixed bug which prevented writing of various Sony FocalLength tags
- API Changes:
  - Fixed bug where FileModifyDate wasn't set properly when WriteInfo() was called without a destination file name and other "real" tags were written at the same time

Mar. 12, 2016 - Version 10.13

- Added a few new Canon LensType values (thanks Niels Kristian Bech Jensen and LibRaw)
- Added a new CanonModelID
- Added a number of new Nikon RetouchHistory modes
- Decode a number of new Sony tags (thanks Jos Roost)
- Changed a couple of Sigma "| C" lens names for consistency
- API Changes:
  - Fixed bug which could cause the API Filter option to be ignored for some tags when copying tags with the Composite option set

Mar. 4, 2016 - Version 10.12

- Added a new PentaxModelID and SonyModelID (thanks LibRaw)
- Added a number of new CanonModelID values (thanks Norbert Wasser for one)
- Added a new Olypus LensType (thanks Niels Kristian Bech Jensen)
- Added two new Pentax LensType values
- Added a few new Nikon LensID values and updated some others
- Added a new Canon LensType (thanks Norbert Wasser)
- Decode a new Nikon tag
- Decode a new CanonCustom tag for the EOS 80D
- Improved decoding of SonyRawFileType (thanks Jos Roost and LibRaw)
- Changed "Optimised" to "Optimized" in a Photoshop tag value
- Fixed warning that could be generated by the Canon FileNumber conversion

Feb. 17, 2016 - Version 10.11

- Added a couple of new Olympus CameraType values (thanks LibRaw for one)
- Added some new ACDSee XMP tags (thanks Malus)
- Added a few more XMP-crs tags
- Added a new CanonModelID (thanks Norbert Wasser)
- Added a couple of new Sony LensType values (thanks Jos Roost and LibRaw)
- Added support for PDF ASCII85Decode filter
- Decode a number of new Sony tags (thanks Jos Roost)
- Decode a new Canon tag (thanks Juha Iso-Sipilä)
- Decode a few more Photoshop tags
- Convert MDItem date/time values to local time
- Patched to read incorrectly written DJI GPSCoordinates in MOV videos

Jan. 22, 2016 - Version 10.10 (production release)

- Added a new Olympus LensType (thanks Niels Kristian Bech Jensen)
- Added a couple of new Olympus FlashModel values
- Added a new Nikon LensID
- Added a new Pentax LensType
- Decode a number of new Sony tags (thanks Jos Roost)
- Decode H264:DateTimeOriginal DST flag, and add " DST" to time string if set
- Decode a few more CanonCustom settings
- Fixed problem creating user-defined XMP structure elements with names containing characters which are illegal in tag names
- Improved mechanism for generating tags which must be specifically requested when copying or used in -if or -p expressions
- Improved warning in Windows if help documentation file can't be created
- Patched Composite:FileNumber to handle case where Canon:FileNumber is 10000
- Patched reading FujiFilm RawImageWidth/Height for new X-Pro2 RAF images
- Fixed problem reading PDF objects which begin with a comment line
- Fixed problem which could result in ExifTool corrupting a PDF file when writing
- API Changes:
  - Added RequestTags option
  - No longer generate MDItem tags when RequestAll option is set

Jan. 4, 2016 - Version 10.09

- Added ability to extract OS X system metadata ("MDItem" tags)
- Added a value conversion for GoogleTrackDuration
- Enhanced the -i option to allow full path names to be specified
- Fixed a potential runtime error when writing corrupted JPEG images
- API Changes:
  - Added MDItemTags option

Dec. 22, 2015 - Version 10.08

- Added ability to write empty XMP structures
- Added write support for PhaseOne MakerNotes tags in IIQ files
- Added a new Nikon LensID (thanks David Püschel)
- Decode a new Olympus tag and improved decoding of DriveMode
- Minor improvements to HtmlDump of PhaseOne IIQ and PDF files
- Patched to allow overwriting of empty XMP written by some PhaseOne cameras
- Fixed bug in HtmlDump feature that could cause a "substr outside of string" error
- API Changes:
  - Changed API QuickTimeUTC option to also enforce proper time zero

Nov. 26, 2015 - Version 10.07

- Fixed problem with warnings on some systems about unimplemented functions for FileGroupID and FileUserID when -p or -if were used

Nov. 26, 2015 - Version 10.06

- Added a new Canon LensType (thanks LibRaw)
- Added a new Pentax LensType (thanks Louis Granboulan)
- Added a couple of new XMP-digiKam tags
- Added a new CanonModelID
- Added a new ACDSee XMP tag (thanks Malus)
- Decode a new Canon tag
- Improved a few lens names (thanks Jos Roost)
- Patched to remove trailing null when reading improperly written QuickTime strings
- Fixed bug where SystemTags weren't available for use with the -p and -if options

Nov. 6, 2015 - Version 10.05

- Added new Canon and Sony LensType values
- Added some new Nikon LensID's (thanks Robert Rottmerhusen)
- Added a new PentaxModelID
- Added preliminary support for Motorola maker notes
- Changed format of XMP-photoshop:DocumentAncestors to write a simple Bag of strings rather than structures (since this is what the Adobe software writes, contrary to their own XMP specification)
- Fixed problem where HASH references may be exposed when copying a list of structures to a non-list-type tag
- API Changes:
  - Added Filter option
  - Changed GetNewValues method name to GetNewValue (GetNewValues still works for backward compatibility)

Oct. 28, 2015 - Version 10.04

- Added a few new Microsoft XMP tags
- Enhanced -r option to allow processing of directory names beginning with "."
- Avoid writing XMP-microsoft:LensModel unless specified explicitly
- Limit precision of area size in picasa_faces config file (thanks StarGeek)
- Moved Nikon NCDT GPS tags into the GPS group so they work with the Composite GPS tags
- Fixed problem reading Ricoh RMETA information from some cameras

Oct. 21, 2015 - Version 10.03

- Added support for JPEG 2000 extended-length boxes
- Added a few new Canon LensType and CanonModelID values
- Added a new Nikon LensID (thanks LibRaw)
- Added ExifTool version number as a comment in -listx output
- Added support for Leica SL (Typ 601) maker notes
- Added a new Sony LensType (thanks Jos Roost)
- Decode more Sony tags for some new models (thanks Jos Roost)
- Decode a new Pentax tag
- Patched for invalid makernote entry written by Sony ILCE-7M2 v1.21
- Patched problem reading EXE resources with a missing null terminator
- Updated Windows distribution package to use latest version of PAR

Sept. 17, 2015 - Version 10.02

- Added ability to read PNG chunks after the normal PNG end of file (IEND)
- Added ability to delete a PNG trailer (with -trailer:all=)
- Added some new Nikon LensID's (thanks Robert Rottmerhusen and LibRaw)
- Added a few new Canon LensType's (thanks Jos Roost and LibRaw)
- Added a new Pentax LensType (thanks Niels Kristian Bech Jensen)
- Decode some new PanasonicRaw tags (thanks Andrew)
- Decode a new Pentax tag
- Enhanced -m option to allow IPTC values which are too short to be written

Sept. 3, 2015 - Version 10.01

- Added a new Olympus CameraType
- Added a new Canon LensType (thanks Norbert Wasser)
- Added a few new QuickTime GenreID values (thanks François Bonzon)
- Decode a new Pentax tag
- Leica programmers should all be ashamed of the complete shambles of metadata they have created
- Minor change to the name of a Sigma lens for Canon
- Improved recognition of Pentax lens adapter
- Implemented NoPDFList for -b option of Windows version too
- Renamed a few Sony tags and improved decoding of others (thanks Jos Roost)
- Renamed a few Pentax tags
- Fixed problem importing structured information from -X option output
- Fixed round-off errors in value and typo in name of CanonVRD:GammaWhitePoint
- Fixed test failures if Encode, POSIX or Time::Local modules are missing

Aug. 18, 2015 - Version 10.00 (production release)

- Added a few new CanonModelID's
- Added a few new Nikon LensID's (thanks Jaap Voets and Robert Rottmerhusen)
- Added a new Canon LensType (thanks Jos Roost)
- Decode a number of new Sony tags (thanks Jos Roost)
- Decode a couple more RIFF tags and extract Unknown RIFF tags
- Changed -b option to avoid splitting PDF List-type tag values
- API Changes:
  - Added NoPDFList option

July 23, 2015 - Version 9.99

- Added support for the Leica Q (Typ 116) maker notes
- Added two new SonyModelID's (thanks Jos Roost for one)
- Added two new Sony LensType2 values (thanks Jos Roost)
- Added a new Pentax LensType
- Extract a number of new File System tags when API SystemTags option is set
- Decode a new FujiFilm tag (thanks TonyB)
- Decode a number of new Sony tags (thanks Jos Roost)
- Disabled writing of XMP to PostScript-format Adobe Illustrator files
- SourceFile values in -csv and -json input/output are now converted to/from filename character set (set by -charset filename option) when reading/writing
- Renamed Flash:FileAttributes to FlashAttributes
- Renamed FujiFilm:AFPointSet to AFMode and improved decoding
- Fixed problem where a partial command could be executed if the -stay_open option was used and the command is aborted due to an error in arguments
- Fixed problem with OS X installer on El Capitan (now installs in /usr/local/bin instead of /usr/bin)
- API Changes:
  - Added SystemTags option

June 26, 2015 - Version 9.98

- Added read support for DSS and DS2 file formats
- Added write support for XMP-mwg-rs:Rotation (seen in XMP from LR6)
- Added a new Sigma LensType (thanks Niels Kristian Bech Jensen)
- Decode Pentax DiffractionCorrection
- Decode Olympus ID3 XOLY frame
- Decode a few more Sony tags
- Improved reliability of decoding Nikon D810 ShotInfo and custom settings
- Changed name of Pentax VignettingCorrection to PeripheralIlluminationCorr
- Fixed problem with user parameters in tag name expressions when copying

June 2, 2015 - Version 9.97

- Added a new Pentax Quality value
- Added a new Panasonic AdvancedSceneMode (thanks Horst Wandres)
- Minor improvement to lens identification logic based on XMP information
- Changed a few DR4 tag names
- Fixed improper scoping of XMP namespace prefixes (so conflicting prefixes are now properly resolved)

May 20, 2015 - Version 9.96

- Added support for CanonVRD version 4 information and DR4 files
- Added two new Canon LensType values (thanks Norbert Wasser)
- Added two new Olympus LensType values (thanks Niels Kristian Bech Jensen)
- Added a new Minolta/Sony LensType and fixed another one (thanks Jos Roost)
- Added a new Nikon LensID (thanks John Helour)
- Added a few new QuickTime tags
- Added a new PentaxModelID and a new Pentax PictureMode
- Added a few new XMP-aux tags
- Decode a couple more DPX tags
- Decode NikonCustom tags for D810 firmware version 1.02
- Improved -htmlDump output for extended XMP and some other JPEG segments
- Improved a Canon lens name
- Documented the -userParam command-line option (which has existed since 9.90)
- Changed default behaviour to ignore extended XMP with an incorrect GUID (as per the XMP specification)
- Changed the case of a few tag names for consistency
- Patched problem with Sony cameras giving incorrect LensInfo for some third party lenses, leading to an incorrect LensID by ExifTool (thanks Jos Roost)
- Patched problem where GPS minutes or seconds could round up to 60
- Fixed picasa_faces.config to rotate regions if necessary for RAW file types (thanks Stargeek)
- API Changes:
  - Added ExtendedXMP option

May 9, 2015 - Version 9.95

- Added a few new Minolta/Sony lenses (thanks Jos Roost)
- Added config_files/photoshop_paths.config to the full distribution
- Avoid rebuilding maker notes when using -tagsFromFile with -fast2 option
- Validate tag names when redirecting (ie. "-DSTTAG<SRCTAG")

May 3, 2015 - Version 9.94

- Added Geotag support for Bramor gEO log files
- Added support for iCalendar ICS files
- Added support for Leica M Monochrom (Type 246) maker notes
- Added new "Preview" group for all embedded preview images
- Added a new PentaxModelID (thanks Louis Granboulan)
- Added a new Canon LensType (thanks Niels Kristian Bech Jensen)
- Added tag name to "Invalid EXIF text encoding" warning
- Decode ColorData for Canon EOS 5DS and EOS 5DS R (thanks LibRaw)
- Changed ListItem option so that it also applies when copying tags
- Enhanced FileTypeExtension to return an uppercase extension when the print conversion is disabled (eg. the -n option)
- Fixed incorrect FileTypeExtension for virtual device drivers
- Fixed an improperly formatted warning for duplicate PDF entries
- Fixed bug creating extended XMP in JPEG images when deleting all XMP and adding back in the same step

Apr. 25, 2015 - Version 9.93

- Added FileTypeExtension tag
- Added a few new CanonModelID values
- Added a new Olympus CameraType
- Added a few new Minolta/Sony lenses (thanks Jos Roost)
- Updated arg_files/iptcCore.args for IPTC Extension version 1.2 tags
- Improved VCard parsing/decoding
- Improved -fast3 file identification logic
- Remove "px" string from SVG ImageWidth/Height tags
- Changed DOF calculation to use ApproximateFocusDistance
- Fixed missing FileType for MOI files
- Fixed potential "Internal Error" bug when writing XMP structures

Apr. 11, 2015 - Version 9.92

- Added support for PRISM pmi and prm tags, and updated to PRISM 3.0
- Added read support for Audible .AA files
- Added support for Adobe XMP-creatorAtom tags
- Added a couple of new XMP-xmpDM tags
- Added a new CanonModelID and a new Ricoh WhiteBalance (thanks LibRaw)
- Added a new Olympus CameraType
- Added a new Nikon LensID (thanks Jürgen Sahlberg)
- Updated to XMP PLUS 1.2.1 specification
- Enhanced DOF calculation to use AverageFocusDistance or FocusDistanceUpper/Lower if available
- Patched to tolerate different version numbers in XMP namespace URI's

Apr. 7, 2015 - Version 9.91

- Added read support for VCard files
- Added support for AAX files
- Added --sort option
- Added a number of new QuickTime GenreID values (thanks François Bonzon)
- Added new Canon, Nikon, Olympus and Samsung lenses (thanks LibRaw and Niels Kristian Bech Jensen)
- Added a new Olympus CameraType
- Added a new Sony FlashMode value
- Decode a new Apple makernote tag
- Decode a number of new QuickTime tags found in Audible audio books
- Improved the naming of a FujiFilm tag (thanks LibRaw)
- Removed "not yet tested" warning when writing FujiFilm RAF version 0200
- Renamed distribution file config_files/ExifTool_config to example.config
- Increased maximum metadata atom size for QuickTime files and added warning if an atom is larger than the limit
- Changed writing of filesystem date/time tags to override the -P option
- Fixed problem writing FileCreateDate in Windows when the -o option was used

Mar. 14, 2015 - Version 9.90 (production release)

- Added config_files/picasa_faces.config to the distribution (thanks StarGeek)
- Added a few new Minolta/Sony and Nikon lenses (thanks LibRaw)
- Added new Canon and Sigma lenses (thanks Niels Kristian Bech Jensen)
- Decode Nikon D810 custom settings (thanks Warren Hatch)
- Decode a few new Nikon tags
- Fixed superfluous "Open '' failed" warning which could occur in Windows
- Fixed problem reading multi-valued Microsoft Xtra tags
- Fixed problem on Windows using -overwrite_original_in_place with Unicode file names

Mar. 7, 2015 - Version 9.89

- Added some new Minolta/Sony LensType values (thanks Jos Roost and LibRaw)
- Fixed Windows case-sensitivity and sort-order problems when using wildcards in file names on the command line
- API Changes:
  - Added UserParam option

Feb. 28, 2015 - Version 9.88

- Decode a few more ID3 tags
- Improved decoding of some Pentax tags
- Extended -list and -listw options to include flattened tags
- Patched to recognize ID3v2.3 tags in ID3v2.4 metadata and visa versa
- Patched byte ordering problems with Nikon FileInfo tags for the D5500
- Fixed bug where other groups were ignored when multiple groups were specified when writing and one of those groups was a specific EXIF IFD (eg. -ExifIFD:Time:all= ignored the Time constraint)

Feb. 24, 2015 - Version 9.87

- Added a number of new Sigma LensType values (thanks LibRaw)
- Fixed bug introduced in the Windows version of 9.85 where "*.*" on the command line matched "." and "..", causing unexpected files to be processed
- Fixed problem extracting some Microsoft tags from MP4/MOV videos

Feb. 22, 2015 - Version 9.86

- Added check for valid filename encoding when using wildcards in Windows
- Added support for Sigma X3F version 4.1 images
- Added a number of new Sigma LensType values (thanks LibRaw and Niels Kristian Bech Jensen)
- Added a new Canon LensType (thanks Michael Tapes)
- Added a new Leica LensType (thanks LibRaw)
- Added a new Olympus CameraType
- Decode a couple more FujiFilm RAF tags (thanks Frank Markesteijn)
- Always preserve FileCreateDate when writing on Windows if Win32::API and Win32API::File are available
- Changed names of and properly decode new Olympus Pitch/Roll tags
- Changed rounding method for rational values in an attempt to fix failed tests on FreeBSD 10.1 and Perl 5.20.1 with uselongdouble enabled
- Resolved issue with duplicate SamsungModelID values

Feb. 14, 2015 - Version 9.85

- Added support for Ricoh WG-M1 maker notes
- Added a few new Pentax LensType's (thanks Louis Granboulan)
- Decode a couple of new Pentax tags (thanks Louis Granboulan)
- Enhanced JSON import so an object with a missing SourceFile has the same effect as a SourceFile of "*".
- Changed MIMEType for executable script files
- Patched remaining known problems involving Windows Unicode file names (creating directories and using wildcards should now work)
- Patched long-standing Windows daylight-savings-time bug, and removed the dependency on Win32API::File::Time (reported file times should now be correct, but may disagree with the Windows "dir" command)
- Fixed decoding of FLIR:PlanckO (thanks Tomas)

Feb. 10, 2015 - Version 9.84

- Added a new CanonModelID
- Added a new Pentax LensType and PentaxModelID (thanks Louis Granboulan)
- Fixed bug introduced in 9.83 that broke the -P option on Windows

Feb. 7, 2015 - Version 9.83

- Added support for new IPTC Extension version 1.2 XMP tags
- Added support for Leica X (Typ 113) maker notes
- Added read support for ChartTIFF tags
- Added a few new Canon LensType values (thanks Norbert Wasser for two)
- Added a few new Nikon LensID's (thanks David Püschel, Robert Rottmerhusen and Niels)
- Added a number of new Olympus ArtFilterEffect values (thanks Phiber)
- Added some new Olympus AspectRatio values (thanks Herb)
- Added a new PentaxModelID
- Added a new Olympus CameraType (thanks LibRaw)
- Added new values for various Canon tags
- Decode a number of new Sony tags (thanks Jos Roost)
- Decode a couple more Nikon ShootingMode bits (thanks Leegong)
- Updated to Nov 2014 XMP specification
- Patched incompatibility between Windows Unicode update and Perl 5.005

Jan. 15, 2015 - Version 9.82

- Added support for Windows Unicode names for input CSV and JSON files
- Decode a number of new Sony tags (thanks Jos Roost)
- Improved checks and warnings for invalid file name encoding on Windows
- Improved Polish translations (thanks Kacper Perschke)
- Changed exif2xmp.args and xmp2exif.args files (available in the full ExifTool distribution) to avoid using non-standard XMP namespaces
- Fixed problem setting file times for Windows Unicode file names

Jan. 12, 2015 - Version 9.81

- Added Composite:Megapixels tag
- Added a few new Nikon LensID's (thanks Robert Rottmerhusen)
- Fixed problem in Windows using Unicode file names with the -o option

Jan. 7, 2015 - Version 9.80

- Added a few new Canon and Minolta/Sony LensType values (thanks LibRaw)
- Added a few new CanonModelID's
- Decode a few new Canon tags
- Suppress warning for Canon 7DmkIII VignettingCorrUnknown2 data format
- Fixed runtime warning when piping an MOI file to exiftool
- Fixed bug in -fileOrder option introduced in version 9.79
- Fixed bug using Windows Unicode file names with -tagsFromFile option

Jan. 4, 2015 - Version 9.79 - Windows Unicode file names

- Added support for Windows Unicode file names (but note that support still isn't complete -- some things like setting FileModifyDate or creating a directory with a Unicode name still need work)
- Added read support for MOI files
- Added a few more Canon LensType's (thanks LibRaw and Martin)
- Added a new Nikon LensID
- Added a couple of new Panasonic ImageQuality values
- Decode a new FujiFilm tag and added a new FilmMode value
- Allow zero-length group names to be specified (which provides a method to directly access the 0th copy of a duplicate tag using the empty family 4 group name by specifying "4:TAG")
- Fixed invalid Samsung tag name
- Fixed writing of XMP:ExposureCompensation with fractional values
- API Changes:
  - Added CharsetFileName option

Dec. 13, 2014 - Version 9.78

- Added a new Nikon LensID and a new Canon LensType (thanks LibRaw)
- Decode a new unknown atom in Canon MOV videos
- Decode a number of new Sony tags (thanks Jos Roost)
- Decode a number of new Samsung tags
- Improved MakerNote compatibility when writing by adding the same amount of padding after the MakerNote IFD as that written by the specific camera model
- Changed the DNG BaselineExposureOffset to a signed rational (contrary to the DNG 1.4 specification, which specifies an unsigned RATIONAL, but obviously Adobe meant for it to store negative values)
- Changed name of new QuickTime Rating tag to RatingPercent
- Fixed problem introduced in 9.64 where multiple list values from some tags in ZIP-based files were extracted as separate tags instead of as a list when the -struct option was used, and implemented a different patch to just suppress the structure warnings without changing the 9.63 behaviour
- Fixed problem where some EXIF information in MOV videos could be corrupted when writing

Nov. 28, 2014 - Version 9.77

- Added FilePath tag (generated only if specified and Cwd is available)
- Added a new Panasonic ShootingMode (thanks Horst Wandres)
- Added a new FujiFilm WhiteBalance value
- Added a new QuickTime vendor ID
- Added a new Pentax RawDevelopmentProcess value
- Decode a few new QuickTime tags
- Decode some new tags in Kodak SP360 MP4 videos
- Fixed bug that could cause a runtime error when parsing a Canon EOS 40D image which had been edited by Nikon Capture software
- Fixed bug which could produce invalid XML in the -X output when -struct was also used

Nov. 15, 2014 - Version 9.76 (production release)

- Added support for the LFR format (same as LFP)
- Added support for Samsung models which write 2 values for LensType
- Added a new Samsung LensType (thanks Nick Livchits)
- Added a few new Nikon LensID's (thanks David Püschel)
- Added a new PentaxModelID
- Added some new Olympus WhiteBalance2 values (thanks LibRaw)
- Added a new EXIF:Compression value
- Decode a new FujiFilm tag
- Decode a few more private TIFF tags
- Improved warning message if "DIR" or "FILE" is used literally on the command line
- Improved "-j -b" output to encode any non-UTF8 values as Base64
- Enhanced -fast option (API FastScan option) to allow file processing to be bypassed entirely
- Changed conversions for a couple of Nikon 1 AF tags for consistency
- Changed reported FileType for LNK, KEY, KTH, NUMBERS, NMBTEMPLATE and PAGES files to match extension
- Fixed problems adding new XMP and deleting old XMP from MP4 videos
- Fixed problem writing FileModifyDate/FileCreateDate when -overwrite_original_in_place is used

Nov. 2, 2014 - Version 9.75

- Added support for FLIR version 101 metadata
- Added a new Olympus LensType (thanks Niels Kristian Bech Jensen)
- Added a new Pentax LensType (thanks Louis Granboulan)
- Added a new Samsung LensType
- Decode a few more Nikon D4S tags (thanks Warren Hatch)
- Decode a few more Sony tags (thanks Jos Roost)
- Decode a new FujiFilm tag
- Improved formula for calculating Sony:FocusDistance2 (thanks Jos Roost)
- Changed XMP parsing to impose standard namespace prefixes, thus avoiding (some) problems reading the ugly XMP generated by Microsoft products
- Fixed decoding of Nikon FileInfo tags for recent DSLR models

Oct. 15, 2014 - Version 9.74

- Added a number of new QuickTime GenreID values (thanks François Bonzon)
- Added support for some newer Sony cameras (thanks Jos Roost)
- Decode more Nikon D4S custom settings (thanks Warren Hatch)
- Improved lens identification logic for XMP metadata (thanks Jos Roost)
- Fixed typo in Condition for a few D3 NikonCustom tags
- Fixed bug which could cause a "Use of uninitialized value $val" runtime error when reading XML

Oct. 13, 2014 - Version 9.73

- Added a new CanonModelID (thanks LibRaw and Niels Kristian Bech Jensen)
- Added a few new Canon and Sony lenses (thanks Jos Roost)
- Delete unknown PNG TextualData tags when deleting all PNG tags
- Decode AF points for Canon PowerShot G1X Mark II
- Decode a number of Pentax, Olympus, Panasonic and Sony tags (thanks LibRaw)
- Decode a few more Nikon NCTG tags in MOV videos (thanks Stuart Bennett)
- Decode Nikon D4S custom settings (thanks Warren Hatch)
- Decode some makernote tags in Sony Xperia Z3 images
- Make PhotoshopThumbnail and PhotoshopBGRThumbnail writable (but "unsafe")
- Changed order of operations so flattened tags always take precedence over structured tags when writing a mix of both types of tags
- Fixed potential bug decoding some Nikon 1 AF points

Sept. 26, 2014 - Version 9.72

- Added a few new Pentax ISO values
- Added a new CanonModelID and SonyModelID (thanks LibRaw)
- Added a new Canon LensType
- Decode AF points for some newer Nikon 1 cameras (thanks Chris Reimold for his help, and Graham Woolf for the samples)
- Improved verbose output for recently decoded Samsung trailer
- Fixed Samsung trailer writer to properly update offsets in the QDIO block

Sept. 20, 2014 - Version 9.71

- Added a couple of mew CanonModelID's (thanks LibRaw)
- Added a couple of new Nikon LensID's (thanks Robert Rottmerhusen and LibRaw)
- Added minor warning when deleting all PDF metadata (because it isn't really deleted)
- Added a new Samsung LensType
- Added a new Sony/Minolta LensType (thanks Marcus Holland-Moritz)
- Decode "Sound & Shot" trailer written by some Samsung Galaxy models
- Decode a number of new Sony tags including FocusDistance2 (thanks Jos Roost)
- Decode a number of new Canon and Kodak tags (thanks LibRaw)
- Decode a new EXIF tag
- Decode a few new CanonCustom tags
- Recognize the JPE file extension
- Fixed swapped CanonCustom AEMicroadjustment/FEMicroadjustment tag names
- Fixed bug in -listItem option which sometimes prevented it from working
- Fixed interference by -sep option when writing structured tags
- API Changes:
  - Added ListItem option

Sept. 3, 2014 - Version 9.70 (production release)

- Added read support for Pentax 645Z makernotes in MOV videos
- Added a new Canon LensType (thanks Norbert Wasser)
- Added a new SonyModelID (thanks LibRaw)
- Added a new Pentax LensType (thanks Dominique Schrekling)
- Added a new PentaxModelID
- Added a new Olympus CameraType (thanks LibRaw)
- Decode a number of new Sony tags and values (thanks Jos Roost)
- Decode a new Panasonic tag
- Decode another QuickTime tag
- Updated Nikon ISOExpansion values for new models (thanks LibRaw)
- Improved verbose dump for LFP images
- Patched to repair incorrect list types in XMP structures when writing
- Patched to avoid MPEG Layer 3 check for files with a "MUS" extension
- Fixed incorrect behaviour of -addTagsFromFile when adding list items from multiple variable-named source files

July 27, 2014 - Version 9.69

- Added ability to write PNG PhysicalPixel (PNG-pHYs) tags
- Added a few new Panasonic ContrastMode values
- Added minor warning when creating EXIF or IPTC in PNG images
- Decode a few more Sony tags and values (thanks Jos Roost)
- Fixed problem writing Olympus:LensType
- API Changes:
  - Shift.pl now autoloads when ShiftTime() is called
  - The 3rd argument to ShiftTime() is now optional

July 19, 2014 - Version 9.68

- Added read support for Lytro LFP files
- Added a new Olympus LensType (thanks Niels Kristian Bech Jensen)
- Added support for the maker notes of some recent Ricoh/Pentax models
- Allow Composite tag to have no Require'd or Desire'd tags
- Improved -geotag verbose output
- Changed so XMP tags take priority when reading QuickTime-format files
- Changed PSD file description to "Photoshop Document"
- Fixed problem where -geotag option could fail if -v4 was used
- Fixed problem writing SonyDateTime2

July 6, 2014 - Version 9.67

- Added support for Sigma X3F version 4.0 files from the DP2 Quattro
- Added support for Sony XAVC video files
- Added a new Nikon PhaseDetectAF value
- Added conversion for Casio EX-ZR300 BestShotMode (thanks Manfred)
- Decode more proprietary information from some Panasonic/Leica MP4 videos
- Fixed inaccuracies in decoding some SigmaRaw tags from the X3F header

July 1, 2014 - Version 9.66

- Added read support for Kodak PixPro S-1 maker notes
- Added new Canon, Pentax and Sigma LensTypes (thanks LibRaw for the Canon)
- Added support for Sigma DP2 Quattro maker notes
- Decode AFMicroAdj for Sony A77M2
- Improved decoding of Pentax K-3 AFPointSelected (thanks Dan)
- Swap "GPS track start/end" labels in -geotag -v2 output if track is stored in reverse chronological order
- Changed handling of IPTC groups so that standard IPTC always has a family 1 group name of "IPTC", and takes priority over non-standard IPTC when duplicates are not allowed
- Patched to recognize incorrect XMP URI's written by Nikon NX2
- Fixed problem with possible duplication of lens names when attempting to identify lens used by a Nikon camera from a Photoshop-mangled image
- Fixed problem parsing some NMEA sentences, and added support for GPZDA
- Fixed typo in a CanonCustom value
- Fixed bug where standard IPTC may be incorrectly written into a proprietary PhotoMechanic IPTC-format SoftEdit record

June 20, 2014 - Version 9.65

- Added a new Olympus LensType (thanks Niels Kristian Bech Jensen)
- Added a print conversion for Unknown ICC_Profile MeasurementGeometry
- Added LargeTags shortcut
- Avoid loading data for some tags with large binary data values if they were specifically excluded by the command
- Improved memory handling when processing CanonVRD information
- Patched potential "subscript -1" runtime error when reading EPS files

June 14, 2014 - Version 9.64

- Added write-only TestName tag for dry-run tests of file renaming feature
- Added a few new Olympus CameraType values
- Added a new new Nikon LensID's
- Added a new Canon LensType
- Patched to avoid structure warnings when copying tags from ZIP-based files
- Patched to deal with incorrect byte ordering in FlashPix date/time values written by some cameras
- Fixed problem using advanced formatting feature in a -if condition
- Fixed problem parsing Canon VignettingCorr for some newer PowerShot models
- API Changes:
  - Added 'Test' option to SetFileName()

May 31, 2014 - Version 9.63

- Added basic read support for EPUB and MOBI electronic books
- Added ability to combine -lang option with -listx to extract only one language
- Remove leading XML comment from XMP if it exists when writing as a block
- Another attempt to patch problem obtaining a consistent "full path" for source files when importing a CSV database in Windows

May 24, 2014 - Version 9.62

- Added message about SourceFile names to -v2 output when importing a database with -csv= or -json=
- Added patch to allow extraction of some incorrectly written FlashPix tags
- Extract a couple of new FlashPix tags for some FujiFilm models
- Decode a number of new Sony tags (thanks Jos Roost)
- Changed -n option for GPSTimeStamp to return nanosecond precision

May 18, 2014 - Version 9.61

- Added ability to combine -l with -listf, -listr or -listwf to add descriptions of the file type
- Added a few new Canon LensType values (thanks Norbert Wasser and Mark)
- Extract AE metering segments again for the Pentax K-3
- Decode a number of new FujiFilm RAF tags (thanks LibRaw)
- Decode a number of new Sony tags (thanks Jos Roost)
- Changed the case of some AF point values for consistency
- Fixed an incorrect Olympus FocusMode value
- Fixed problem introduced in 9.60 where a "LensID argument isn't numeric" warning could occur under some conditions
- Fixed quirk where ExifTool could incorrectly report that a file was changed when conditionally deleting a non-existent tag as a block

May 11, 2014 - Version 9.60 (production release)

- Added a few new values for some Pentax tags
- Added a new QuickTime Rating value (thanks François Bonzon)
- Added a new SonyModelID (thanks LibRaw)
- Added a new Canon and a new Pentax LensType
- Decode a number of new tags from WebP extended-format files
- Decode a couple more Nikon tags
- Decode a new Canon 300D tag (thanks LibRaw)
- Decode a new Sony tag (thanks Jos Roost)
- Updated Sony maker note decoding for ILCA-77M2 (thanks Jos Roost)
- Renamed QuickTime ©day atom to ContentCreateDate (was previously named Year or CreateDate depending on its location)
- Changed a number of "Unknown (-1)" values to "n/a" (thanks Herbert Kauer)
- Minor change to some German translations (thanks Herbert Kauer)
- Patched spec file for building RPM under Redhat 6 (thanks Norbert de Rooy)
- Fixed a problem writing 3-character Nikon CountryCode values
- Fixed problem when importing CSV files in Windows where an appropriate SourceFile entry may not be found if the file specification does not match exactly but the absolute path is the same

May 3, 2014 - Version 9.59

- Added support for Leica T maker notes
- Added a few new Olympus CameraType values
- Added a number of new AppleStoreCountry values (thanks François Bonzon)
- Added a print conversion for QuickTime GenreID (thanks François Bonzon)
- Added more values for some NikonCapture tags (thanks LibRaw)
- Improved decoding for a number of Sony tags (thanks Jos Roost)
- Improved decoding of some Olympus tags (thanks Herbert Kauer)
- Improved writing of GPSAltitudeRef to recognize any signed number
- Patched problem where some QuickTime UTF-8 values were being decoded incorrectly

Apr. 19, 2014 - Version 9.58

- Added verbose warning and HtmlDump flag for out-of-sequence EXIF tag ID's
- Improved decoding of NikonCapture WBAdjLighting (thanks LibRaw)
- Improved German translations (thanks Herbert Kauer)
- Fixed -v3 to report absolute offsets for RIFF and NikonCapture information
- Fixed problem in Windows version which caused ExifTool to exit with an error when importing from a CSV file with a non-existent SourceFile entry

Apr. 12, 2014 - Version 9.57

- Added a Composite tag to calculate Duration for AIFF files
- Added a couple of new Canon lenses
- Added a new value for NikonCapture:WBAdjLighting (thanks LibRaw)
- Added a new Olympus CameraType (thanks LibRaw)
- Decode a couple more Canon tags
- Improved French translations (thanks Alphonse Philippe)
- Patched to correctly sort out-of-sequence GPS IFD entries
- Fixed possible "uninitialized value" runtime error when reading corrupted CanonCustom2 information
- Fixed unnecessary warning when writing an image with zero-length maker notes
- Fixed incorrect family 2 group for XMP-exif:GPSImgDirectionRef

Apr. 5, 2014 - Version 9.56

- Added new Canon and Pentax LensType values
- Added a couple more Canon ContinuousDrive modes
- Added a new Sigma ColorMode
- Decode some new QuickTime tags written by the HTC One (M8) in MP4 videos
- Decode telemetry information from AR Drone videos
- Extract PreviewImage from GoPro JPG files
- Improved German translations (thanks Herbert Kauer)
- Improved French translations (thanks Alphonse Philippe)
- Updated en_ca and en_gb translations
- Patched to avoid "excessive count" warning for a 16-bit TransferFunction
- Fixed decoding of Canon AEBShotCount for some models

Mar. 29, 2014 - Version 9.55

- Added new write-only HardLink tag for creating hard links
- Added support for Leica S maker notes
- Added support for Nintendo maker notes
- Added limited read support for FLIR "AFF" SEQ images
- Added a new Pentax LensType (thanks Bruce Rusk)
- Added two new NEFCompression values (thanks LibRaw)
- Added a few new CanonModelID values
- Added a new Sony LensType2 (thanks Jos Roost)
- Added some unknown Sony tags possibly related to metering (thanks Jos Roost)
- Decode orientation information for Ricoh Theta (thanks Paulo Costa)
- Decrypt Nikon ColorBalanceUnknown data for -U and -v2+ options
- Updated recognition of Metabones Canon adapters on Sony cameras to support new adapter firmware versions
- Improved verbose messages when reading GPS track logs
- Changed writing of EXIF:Copyright to allow newline conversion to be avoided by disabling print conversion
- Fixed an incorrect French translation (thanks Alphonse Philippe)
- API Changes:
  - Fixed problem where Directory tag wasn't written if any "real" tags were changed when calling WriteInfo()

Mar. 1, 2014 - Version 9.54

- Added a new Pentax LensType
- Decode a few more FLIR tags
- Generate missing default language tags for alternate-language QuickTime tags without them
- Improved identification of some file sub-types based on filename extension
- Fixed bug extracting alternate-language QuickTime tags with numerical ID's when processing multiple files in a single command
- Fixed potential problem when using some of the recently added options with the -stay_open feature
- Fixed problem loading a config file with a single quote in the file name
- Fixed problem writing a shortcut tag when the target tag has a group name
- Fixed problem recognizing HTML files with a leading UTF-8 BOM

Feb. 22, 2014 - Version 9.53 (production release)

- Added user-defined file types feature
- Added support for a few more XMP-expressionmedia tags
- Decode CameraTemperature from a few new Canon models
- Decode another Sony tag (thanks Jos Roost)
- Recognize the JXR extension
- Changed wording of IPTC "Unrecognized data" warning
- Patched round-off error problem in seconds of some date/time values
- Fixed problem creating EXV files with the -o option
- Fixed problem conditionally replacing Extra block-type tags

Feb. 17, 2014 - Version 9.52

- Fixed bug introduced in 9.44 which resulted in incorrect maker note offsets when copying maker notes from DNG images of some Pentax models

Feb. 15, 2014 - Version 9.51

- Added a number of new CanonModelID values
- Added a new Sony/Minolta LensType (thanks Jos Roost)
- Added a new Panasonic BurstMode
- Added a new Pentax LensType
- Added new ColorSpaceTags shortcut
- Decode a number of new PanasonicRaw tags (thanks LibRaw)
- Decode ColorData tags for the new Canon EOS 1200D
- Improved Sony maker note decoding for some newer models (thanks Jos Roost)
- Fixed conversion of XMP:LensID for Pentax lenses on Ricoh-branded cameras

Feb. 8, 2014 - Version 9.50

- Added support for Exiv2 EXV metadata files
- Added ability to read/write/copy GeoTiff tags as a block
- Added ability to combine -b with -j to write base64-encoded binary data in JSON output format
- Added a new Nikon LensID
- Added a new Sony/Minolta LensType (thanks Jos Roost)
- Added new Extra ProcessingTime tag
- Added a new Olympus CameraType
- Added header signature to .EXIF files
- Decode a new Olympus tag (thanks LibRaw)
- Improved conversion of some Canon RecordMode values
- Improved decoding of tags for Hasselblad Stellar (thanks Jos Roost)
- Fixed -htmlDump offsets for information extracted from some embedded images
- Fixed hemisphere problem in Composite GPS tags derived from QuickTime:LocationInformation
- API Changes:
  - Option names are now case insensitive

Feb. 1, 2014 - Version 9.49

- Added new Olympus and Samsung LensType values, and fixed an Olympus lens name (thanks Niels Kristian Bech Jensen)
- Added another Polish tag translation (thanks Kacper Perschke)
- Added a new Panasonic ColorEffect value
- Decode a new FujiFilm tag (thanks LibRaw)
- Adjusted scaling factor for H264 ExposureTime values (thanks Francois)

Jan. 25, 2014 - Version 9.48

- Added a new GeoTiff tag
- Added a couple of new Canon LensType values
- Added a few new XMP DarwinCore tags
- Updated Sony MakerNotes for the ILCE-5000 (thanks Jos Roost)
- Improved Polish translations (thanks Kacper Perschke)
- Fixed problem writing RicohSubdirIFD in GR images
- Fixed runtime error when writing PNG image with a TIFF-format EXIF profile

Jan. 18, 2014 - Version 9.47

- Added read support for JPEG-HDR APP11 information
- Added read support for Media Jukebox APP9 information
- Added a new Olympus LensType (thanks Niels Kristian Bech Jensen)
- Added a few new Nikon LensID's (thanks Robert Rottmerhusen)
- Added a new Minolta/Sony LensType and fixed some Tamron lens names (thanks Jos Roost)
- Decode more FLIR tags (thanks Tomas)
- Patched for quirk in Kodak PixPro AZ362 maker notes

Jan. 11, 2014 - Version 9.46 (production release)

- Added a few Nikon lenses (thanks Niels for two)
- Added a few new XMP-xmpDM tags (thanks Mats Peterson)
- Added a new Pentax DriveMode (thanks Doug O'Brien)
- Added a new Olympus lens (thanks Niels Kristian Bech Jensen)
- Decode a number of new QuickTime tags
- Decode a few new Canon filter tags
- Improved -d option to properly handle time zones with %s and %z
- Improved conversions for Panasonic Composite AdvancedSceneMode
- Changed a few Tamron lens strings (thanks Niels Kristian Bech Jensen)
- Patched to avoid round-off errors in seconds of filesystem time tags
- Fixed extraction of CompressorID for some MOV videos

Dec. 21, 2013 - Version 9.45

- Added details about movie data offset in MOV verbose dump
- Added a new Pentax WhiteBalance value
- Added a new Sony/Minolta LensType (thanks Jos Roost)
- Decode a new QuickTime tag
- Prevent illegal tag names to be generated from user-defined XMP tags
- Patched to allow reading some improperly formatted EXIF UserComment values
- Fixed problem where reading some large M2TS files could take a loooong time

Dec. 11, 2013 - Version 9.44

- Added a new Pentax WhiteBalance value
- Added back the K-3 SRResult tag, but make it Unknown and with no print conversion
- Fixed problem copying the maker notes of some recent Pentax models

Dec. 8, 2013 - Version 9.43

- Added a new Olympus CameraType
- Added new Canon and Pentax LensType values
- Added a new Panasonic ShootingMode
- Added a new CanonModelID
- Decode a number of new Sony Tags (thanks Jos Roost)
- Decode a new Pentax tag
- Fixed decoding of a few Pentax tags for newer models
- Fixed decoding of CameraTemperature for Olympus Stylus 1
- Fixed bug when writing QuickTime date/time tags with QuickTimeUTC option set

Dec. 1, 2013 - Version 9.42

- Added a new Canon LensType (thanks Norbert Wasser)
- Added a new Pentax LensType (thanks Louis Granboulan)
- Added a new Sony LensType (thanks Fredrik Agert)
- Added a new Nikon LensID (thanks LibRaw)
- Added a new Olympus CameraType
- Decode a number of new Sony tags (thanks Jos Roost)
- Decode a number of new Panasonic tags (thanks Thomas Modes)
- Decode a few new Pentax tags (thanks Klaus Homeister and others)
- Improved Olympus SensorTemperature calibration (thanks Eric Sibert)
- Patched decoding of EXIF:UserComment to tolerate invalid character code written by Canon Zoombrowser EX 4.5
- Patched to allow GPS information to be extracted from incorrectly formatted EXIF written by Windows Phone OS 7.5 (observed in some HTC and Nokia phones)
- Fixed runtime warnings which could occur when -j or -php combined with -f

Nov. 16, 2013 - Version 9.41

- Added the ability to use multiple group qualifiers on tag names when writing and copying (eg. "-QuickTime:Time:All=now")
- Added ability to geotag from Google Location Services KML files
- Added a new Pentax LensType (thanks Louis Granboulan)
- Added a new Canon LensType (thanks David Monro)
- Added a new Sony LensType2 (thanks Jos Roost)
- Decode a bunch more Nikon, Canon, Sony and FujiFilm WhiteBalance tags (thanks LibRaw)
- Extract information from the new Pentax APP7 segment

Nov. 8, 2013 - Version 9.40 - "Write QuickTime"

- Added ability to write XMP and edit date/time tags in QuickTime-format files (eg. MOV, MP4)
- Added -api option to allow API options to be set via the command line
- Added ability to specify family 2 group name when writing
- Added write support for a number of new XMP tags
- Added a new Nikon LensID
- Added new Canon and Minolta/Sony LensType values (thanks Jos Roost)
- Added a few of the new values defined in the DICOM 2011 specification
- Add standard XMP to a PNG image when writing, even if XMP already exists in another non-standard chunk
- Decode a few more Sony tags (thanks Jos Roost)
- Decode a few more QuickTime tags
- Decode a few more Panasonic tags (thanks Thomas Modes)
- Extract EXIF information from WEBP images
- Extract a few more unknown tags in Samsung MP4 videos
- Extract ProfileName from the PNG iCCP chunk
- Improved error message if no matches found when writing to tag(s) specified by wildcards
- Improved XML output so EXIF tags now report a count (if constant, and > 1)
- Avoid writing a few XMP-crs tags which have XMP-exifEX equivalents unless specified explicitly
- Patched POD documentation in MIE.pm to remove non-ASCII characters
- Fixed bug adding back XMP tags in PDF files after deleting all in the same command (also made XMP the preferred group when writing PDF files)
- Fixed bug extracting some font information from QuickTime videos
- Fixed inconsistencies in behaviour when extracting XML as a block from JPEG2000 images
- Fixed problem where FileName was changed when using -srcfile option and writing only the Directory
- API Changes:
  - Added the PNGEarlyXMP option
- Internal Changes:
  - Changed all "$exifTool" variable names to "$et" throughout -- my apologies to the diff engines

Oct. 19, 2013 - Version 9.39

- Added a new PentaxCameraID and some new LensTypes (thanks Louis Granboulan)
- Added a new Nikon LensID
- Added a new Panasonic ShutterType
- Additions and improvements to Pentax makernote decoding for K-3
- Decode a number of new tags including purchase information from MP4 videos
- Decode FLIR information acquired by Extech MeterLink meters (thanks Tomas)
- Decode more Sony tags (thanks Jos Roost)
- Patched to suppress the run-time "No such file or directory" error that has been seen when using the -csv option on Windows systems

Oct. 7, 2013 - Version 9.38

- Added read support for DPX images
- Added a new Pentax LensType
- Added a few new CanonModelID values
- Added a new XMP-apple-fi tag
- Decode a few more Canon tags (thanks Tomasz Kawecki)
- Decode a few more Sony tags (thanks Jos Roost)
- Improved the names of a few Apple tags (thanks Neal Krawetz) and added new Composite tag
- Tolerate NMEA sentences with missing degrees written by some crappy software
- Changed Duration conversion to print number of days if more than 24 hours

Sept. 14, 2013 - Version 9.37

- Added support for maker notes from Apple iPhone5 iOS 7
- Added two more Torrent tags
- Added a new Pentax DigitalFilter
- Added new Olympus CameraType and LensType values
- Decode a couple more Olympus tags
- More improvements to Sony decoding (thanks Jos Roost)
- Improved decoding of Scalado JPEG APP4 information
- Fixed problem where a PreviewImage could be reported in either the File or Composite group, depending on the details of the command

Sept. 7, 2013 - Version 9.36

- Added read support for BitTorrent description files (bencode format)
- Added a couple of new Nikon LensID's (thanks Jürgen Sahlberg)
- Added support for PNG 8bim raw profile
- Added or fixed a few Pentax LensType values (thanks Louis Granboulan)
- Added ability to delete DNGAdobeData and DNGPrivateData
- Decode more Sony tags and improved decoding of others (thanks Jos Roost)
- Decode a number of new FujiFilm tags and fixed 2 incorrect Saturation values
- Decode a number of Canon CameraInfo tags for the 70D (thanks Tomasz Kawecki)
- Patched to issue minor warning and extract only the first 1000 values from XMP list-type tags containing more than 1000 items (all values may be extracted by ignoring this warning with the -m option)
- Patched decoding of PNG IPTC raw profile to allow either IIM or IRB data
- Flagged ImageSourceData as "unsafe" (avoids excessive memory usage when copying all tags because this data may be larger than the image itself for Photoshop TIFF images)
- Disabled feature introduced in version 9.14 which allowed multiple tags (specified by wildcards) to be copied into a single list. This feature had the unintended side-effect of generating duplicate list items when copying list-type tags if there were multiple source tags with the same name. If necessary, -addTagsFromFile may still be used to copy the values of multiple tags into a single list.

Aug. 17, 2013 - Version 9.35

- Added a new Canon LensType (thanks Oliver)
- Added two new Olympus CameraType values
- Added some new Pentax LensType values (thanks Louis Granboulan)
- Added a new RIFF StreamType value
- Decode a number of new Sony tags (thanks Jos Roost)
- Decode CameraTemperature from more Canon models
- Extract thumbnail information from Leica X VARIO MP4 videos
- Improved decoding of Pentax LensData (thanks Louis Granboulan)
- Patched to avoid a warning for the messed-up Leica M maker notes
- Changed a few Pentax Samsung/Schneider lens names for consistency
- Changed "Can't delete" message to indicate if the tag is Permanent
- Fixed the case of a few tag names (thanks Romain)

July 27, 2013 - Version 9.34

- Added support for Ricoh GR maker notes (in MOV videos too)
- Added a new Olympus LensType (thanks Niels Kristian Bech Jensen)
- Added a new Canon LensType (thanks Norbert Wasser)
- Added support for Sony DSC-TF1 maker notes (thanks Jos Roost)
- Added patch for messed up Leica M (Typ 240) MakerNote trailer
- Added a few new CanonModelID's and a few new PentaxModelID's
- Added some new XMP-crs tags written by LR5
- Added a few new Nikon LensID's
- Decode a number of new Ricoh GR tags (thanks Tim Gray)
- Recognize the Nikon SB-700 external flash
- Updated MWG location tags to conform with the MWG 2.0 specification (but continue writing legacy IPTC Core location tags)
- Removed "[Minor]" designation from "excessive count" warning if count is greater than 2M
- Avoid processing multiple EXIF IFD's if only one should exist

July 13, 2013 - Version 9.33

- Added support for EXIF UTF-16 Unicode text (previously treated as UCS-2)
- Added support for Leica X Vario maker notes
- Added a couple of new SonyModelID values (thanks Jos Roost)
- Added a new CanonModelID and a new Olympus CameraType
- Added a new Canon LensType
- Added a new Olympus LensType (thanks Niels Kristian Bech Jensen)
- Decode some new Panasonic tags and added values for others (thanks Thomas)
- Improved decoding of Olympus RawDevArtFilter
- Improved decoding of some Sony tags for the RX100M2
- Changed application to always return an error status when exiting if an error was encountered when extracting information

June 22, 2013 - Version 9.32

- Added support for "Exif 2.3 for XMP" tags
- Added a few new Olympus LensTypes (thanks Niels Kristian Bech Jensen)
- Added a few new PentaxModelID's
- Added two new Samsung LensType values (thanks Pascal de Bruijn)
- Decode a new Olympus tag
- Fixed problem extracting audio comments from Ricoh G700SE images
- Fixed a non-conforming CanonModelID string

June 8, 2013 - Version 9.31

- Added a number of new Photoshop tags (but marked as Unknown)
- Added a few new values for some Olympus tags
- Added conversion for Olympus SensorTemperature
- Added two new CanonModelID's
- Added support for Reconyx firmware 4.0.0
- Decode a number of new QuickTime and FLIR tags in MP4 videos
- Decode more Sony tags (thanks Jos Roost)
- Decode a new Olympus tag
- The API List option may now be used in the config file for the same effect as -sep when combined with the -X, -j or -php option on the command line
- Fixed problem where some QuickTime string values could have terminating NULL characters, which caused problems when renaming files using these tags

May 25, 2013 - Version 9.30

- Added a new Canon LensType
- Decode many Canon 700D CameraInfo tags
- Also delete null characters with the default advanced formatting filter
- Tolerate leading whitespace in HTML files
- Fixed decoding of Canon 650D CameraInfo FocalLength
- Fixed bug in new advanced formatting feature which gave incorrect output when used in the -p option for processing multiple files

May 18, 2013 - Version 9.29

- Added another H264 Model value (thanks Rob Lewis)
- Added support for Canon 5DmkIII firmware version 1.2.1
- Added recognition of IBM AVC video files
- Added a new CanonModelID
- Decode more FLIR tags (thanks Tomas)
- Decode H264 MDPM TimeCode
- More improvements to Sony LensType decoding (thanks Jos Roost)
- Extract information from the ASF Metadata Library in WMV files
- Extract ColorBalanceVersion for unknown Nikon ColorBalance information
- Updated some ID3 Genre names (thanks Mats Peterson)
- Fixed warning when using -p with a string containing a newline
- Fixed some incorrect Pentax Q LensType values

Apr. 21, 2013 - Version 9.28

- Added the ability to delete unknown JPEG APP segments by segment name
- Added a bunch of new ID3 Genre values (thanks Mats Peterson)
- Decode a few more Sony tags (thanks Jos Roost)
- Decode a few more tricky FLIR tags (thanks Tomas)
- Improved Dutch language translation (thanks Peter van der Laan)
- Patched to avoid warning in images where the AFMicroAdj data has been truncated by Canon DPP
- Fixed -tagsFromFile and -v so they may now be used when writing via pipes
- Fixed writing of Panasonic LensType tags that were broken in the 9.15 update
- Fixed incorrect case for list type of XMP DocumentAncestors and TextLayers
- API Changes:
  - Allow a File::RandomAccess reference as an input to WriteInfo()

Apr. 15, 2013 - Version 9.27 (production release)

- Fixed "ARRAY ref" runtime error introduced in 9.25 that could occur when using the -X option
- Fixed runtime warning which could occur when conditionally deleting XMP structure

Apr. 13, 2013 - Version 9.26

- Added read support for FLIR FFF and FPF images and decode more FLIR tags
- Added some new Pentax LensType's and Nikon LensID's
- Added a few new Panasonic ContrastMode values
- Decode a number of Canon 6D tags
- Allow CanonRaw tags to be written using "CIFF" as a group name
- Improved decoding of Canon ColorData information for newer EOS models
- Improved decoding of a number of Sony tags (thanks Jos Roost)
- Removed index number from duplicate Composite TagID's in XML output
- Fixed byte-order problem for a few Nikon D5200 and D7100 tags
- Fixed incompatibility with old-style (pre-8.46) XMP user-defined structure definitions

Apr. 6, 2013 - Version 9.25 (production release)

- Added read support for FLIR thermal image metadata in JPEG images
- Added write support for DNG version 1.4 images
- Added a new Pentax DriveMode value and a new Pentax LensType
- Added two new Olympus CameraType values
- Added print conversion for XMP Flash tags to provide alternate language support
- Decode a few more Nikon and Pentax tags
- Decode more Sony tags (thanks Jos Roost)
- Decode more Panasonic tags and changed decoding of others
- Enhanced -j and -php options to work with -D, -H and -l
- Improved German translations (thanks Herbert Kauer)
- Patched decoding of QuickTime date/time tags to accommodate Samsung and Sony cameras that use an incorrect time zero of 1970 instead of 1904. This patch will only work for videos produced before 2036, so hopefully Samsung and Sony will fix this problem at their end before then (care to place a wager?)
- Fixed issues when using "-wm cg" and writing metadata as a block
- Fixed possible "division by zero" error when reading undefined XMP rational

Mar. 23, 2013 - Version 9.24

- Added ability to overwrite plus append output files (-w+!)
- Added support for Sigma X3F version 3.0 images
- Added a few new values for some Pentax tags
- Added a few new CanonModelID's
- Decode Nikon D5100 and D5200 custom settings plus a few other Nikon tags
- Allow the value for missing tags extracted with the -f option to be configured via the API MissingTagValue setting (default is still "-")
- Improved decoding of Sony LensSpec (again, thanks Jos Roost)
- Fixed bug reading QuickTime extended-size atoms

Mar. 10, 2013 - Version 9.23

- Added -W (-tagOut) and -Wext (-tagOutExt) options to allow multiple tags to be extracted to separate output files from a single source file
- Added append feature to -w (-w+)
- Added ability to extract SoundFile from Ricoh RMETA
- Added more SonyModelID and Sony LensType values and improved Sony LensType decoding (thanks Jos Roost)
- Added a new Olympus LensType (thanks Niels Kristian Bech Jensen)
- Added another Pentax LensType
- Decode more Nikon flash information (thanks Alyda Gilmore for the samples)
- Decode Pentax Kelvin white balance tags (thanks Klaus Homeister)
- Extract PDF embedded image color space
- Improved Spanish translations (thanks Emilio Sancha)
- More patches to avoid "APP1 segment too large" errors when copying all tags from some RAW images

Mar. 2, 2013 - Version 9.22

- Fixed problem extracting metadata from encrypted embedded JPEG images in PDF files and added the ability to extract JPEG 2000 information too

Mar. 2, 2013 - Version 9.21

- Added ability to extract embedded images and their metadata from PDF files
- Added read support for binary-format PLIST files
- Added support for Sigma DP3 Merrill maker notes
- Added a few new Sigma LensType values
- Added a new FujiFilm PictureMode value
- Decode a number of new Pentax tags (thanks Klaus Homeister)
- Decode more Sony tags (thanks Jos Roost)
- Decode some new Nikon D800 tags (thanks Alyda Gilmore for the samples)
- Decode a number of new tags in 3GP videos
- Decode Pentax CameraType
- Made a few more DNG tags writable (but protected)
- Fixed problem reading XREF table of some PDF files
- API Changes:
  - The CombineInfo() routine is now deprecated because it is likely that nobody ever used it. If anyone actually uses this, please let me know

Feb. 20, 2013 - Version 9.20

- NOTICE: This release fixes a problem in the 9.19 Windows version that could cause ExifTool to crash when writing metadata to some files (it seems that one of the files in the 9.19 Windows package was corrupted)
- Added a new PentaxModelID
- Added write support for a few Getty Images XMP tags
- Decode Sony AFAreaModeSetting (thanks Jos Roost)

Feb. 20, 2013 - Version 9.19

- Added read support for Phase One IIQ maker notes
- Added a couple of new Minolta Teleconverter values
- Patched problem which could result in runtime warning when extracting information from a file with an incorrectly formatted PreviewImage pointer
- Improved handling of unknown maker notes when writing to reduce the chance of corruption (fixes problem of corrupted SilverFast maker notes)
- Fixed bug in HtmlDump where unused bytes at end of MakerNotes were not shown if they came at the end of a TIFF-format file

Feb. 16, 2013 - Version 9.18

- Decode more AF information for Sony SLT models (thanks Andy Johnson for the samples)
- Recognize CameraInfo and ColorData information from newer Canon 1DX firmware
- Organized support files in full Perl distribution into separate directories
- Improved German and Spanish translations (thanks Herbert Kauer and Emilio Sancha)
- Fixed inconsistency where a priority tag could be hidden by a same-named tag in the same group when using the -j or -X option combined with -g or -G
- Fixed problem in standard tests that could cause ExifTool test 25 to fail

Feb. 9, 2013 - Version 9.17

- Added PLIST and MODD to the list of supported file extensions
- Added track name to UserData tags within QuickTime tracks
- Added a new Pentax LensType (thanks Pietu Pohjalainen)
- Added a new Canon LensType
- Decode binary data in PLIST and MODD files
- Decode new Canon 1DX CustomFunctions
- Issue a minor warning and ignore duplicate PDF Info dictionaries unless the -m option is used
- Improved date/time parsing when writing to allow single-digit fields
- Improved decoding/naming of a few Sony tags (thanks Jos Roost)
- Improved German translations (thanks Herbert Kauer)
- Changed a few PLIST tag names
- Fixed decoding of Olympus CameraType for some models
- Fixed problem calculating AvgBitrate for some video files
- Fixed problem writing Canon:LensSerialNumber

Feb. 2, 2013 - Version 9.16

- Added support for DarwinCore XMP tags
- Added support for CinemaDNG tags
- Added basic support for parsing XML PLIST information, and use this to extract tags from QuickTime iTunesInfo Data
- Added a new Pentax lens (thanks Niels Kristian Bech Jensen)
- Added some new Sony E-mount lenses (thanks Jos Roost)
- Added a new NEFBitDepth value (thanks Jos Roost)
- Added a new CanonModelID
- Decode a few more Sony tags (thanks Jos Roost)
- Improved decoding of QuickTime iTunesInfo tags
- Improved Spanish translations (thanks Emilio Sancha)
- Improved handling of errors in Perl expression of new formatting feature
- Improved -p option to also handle structures
- Changed a number of Sigma lens names for Olympus to conform with official Sigma model names (thanks Niels Kristian Bech Jensen)
- Moved the MWG XMP tags documentation to the MWG page
- Patched to allow reading GPX track logs with no version number
- Fixed problem reading an ID3 POPM frame with a missing counter
- Fixed bug which could cause "uninitialized value" runtime warning when reading Nikon maker notes with an empty RetouchHistory
- API Changes:
  - Compatibility Notice: The MWG Composite tags are no longer automatically loaded just by using the MWG module. Image::ExifTool::MWG::Load() must now be called explicitly to load these tags

Jan. 27, 2013 - Version 9.15

- Added advanced formatting feature to -p and -tagsFromFile options
- Added -echo3 and -echo4 options
- Added a few more Olympus LensType values, removed one, changed some lens names for consistency (all thanks Niels Kristian Bech Jensen), and use hexadecimal instead of decimal for numerical LensType values
- Added a number of new Sony E-mount lenses
- Added a new Tamron lens for Sony (thanks Marcin Krol)
- Trim trailing spaces from Panasonic LensType strings
- Fixed bug which could cause "Can't call method GetMarkerPointers" runtime warning when writing certain types of corrupted images
- Fixed problem copying PrevewImage from some corrupted files
- Fixed problem identifying a Sigma lens for Nikon at some focal lengths
- API Changes:
  - Added AddUserDefinedTags() method
  - Added formatting feature for tag values in SetNewValuesFromFile()

Jan. 18, 2013 - Version 9.14

- Added -wm (-writeMode) option to provide control over tag write/create mode
- Added ability to use wildcards in target tag names when writing
- Added ability to read/write Jpeg2000 XML tag as a block
- Added ability to delete MPF segment (with -MPF:All=)
- Added a number of new Olympus lenses (thanks Niels Kristian Bech Jensen)
- Added a new Nikon LensID (thanks Robert Rottmerhusen)
- Added a number of new Pentax LensType's (thanks Alan Robinson for one)
- Added a few new CanonModelID's and Canon LensType's
- Decode ID3v2 POPM and OWNE frames
- Decode new Canon 6D CustomFunctions
- Improved calculation of ScaleFactor35efl for Canon cameras
- Changed priority of PDF Info tags so tags from most recent Info dictionary take precedence (to partially accommodate the questionable Acrobat Pro incremental update technique)
- Changed some verbose warnings when attempting to write "unsafe" tags
- Changed behaviour so that "unsafe" tags are not copied for any tag specified using a wildcard (previously this was the behaviour for a tag name of 'all' or '*', but not names like 'gps*')
- Fixed bug where a Composite tag could sometimes not be generated when the -struct option was used if the tag was derived from an XMP List-type tag
- Fixed problem conditionally deleting GIF Comment and MIE tags
- Fixed decoding of RawImageWidth/Height from FujiFilm X-E1 RAF images
- API Changes:
  - Added WriteMode option

Jan. 10, 2013 - Version 9.13 (production release)

- Added basic validation of ExifVersion and FlashpixVersion tags when writing
- Fixed problem where MPF PreviewImage was lost when editing metadata in JPEG images from the Nikon D4, D600 or D800

Jan. 2, 2013 - Version 9.12 (production release)

- Fixed problem introduced in 9.10 preserving file modification date/time when some options are used

Jan. 2, 2013 - Version 9.11 (production release)

- Improved decoding of some Sony tags
- Changed 3 tag names to avoid a leading digit to fix XML validation problem
- Fixed bug introduced in 9.04 that could double-encipher some Sony MakerNote information when writing (affected files are fixed by writing any tag with ExifTool 9.11)

Dec. 29, 2012 - Version 9.10

- Added write support for a few new XMP-crs and XMP-photomech tags
- Added a new Samsung LensType (thanks Jaroslav Stepanek)
- Added a new Pentax LensType (thanks Helmut Schütz)
- Added a new Canon LensType
- Decode Sony A99 FocusMode (thanks Michael Tapes for the samples)
- Tolerate (but warn about) up to 4 bytes of garbage at start of EXIF segment
- Changed -P option to also preserve FileCreateDate on Windows (requires Win32API::File::Time)
- Changed "[minor]" warning messages to capitalize the "M" (ie. "[Minor]") if processing is affected when the warning is ignored
- Patched to avoid problem of slow processing with some corrupted EXIF

Dec. 15, 2012 - Version 9.09

- Added a few new Google XMP GPano tags
- Added a new Olympus CameraType
- Added a couple of new Minolta LensTypes
- Added two new Nikon LensID's (thanks David Püschel and Robert Rottmerhusen)
- Decode Nikon D7000 AFPointsUsed and make this tag writable
- Decode a new Olympus tag (thanks Christoph Anton Mitterer)
- Renamed one of the FujiFilm RAF RawImageWidth/Height pairs to RawImageFullWidth/Height
- Changed -stay_open when combined with -q to flush output after each command (as already done without -q) (requires IO::Handle)
- Fixed problem shifting FileCreateDate when writing other "real" tags in the same command

Nov. 26, 2012 - Version 9.08

- Fixed bug introduced in 9.07 that broke writing of FileModifyDate

Nov. 24, 2012 - Version 9.07

- Added ability to read/write FileCreateDate (Windows only)
- Added ability to read FileInodeChangeDate (non-Windows only)
- Added support for new tags in DNG 1.4 specification
- Added support for Google Photosphere GPano XMP tags
- Added a couple of new Olympus filter effects
- Changed a Panasonic LensType (thanks Olaf Ulrich)
- API Changes:
  - Enhanced SetFileModifyDate() to write FileCreateDate (Windows only)

Nov. 17, 2012 - Version 9.06

- Added support for Nikon maker notes in images from any camera make (as written by Capture NX2)
- Added support for FujiFilm X-E1 RAF images
- Added a new Olympus CameraType
- Added a new PentaxModelID and a new Pentax LensType
- Extract FileCreateDate (Windows) and FileInodeChangeDate (other systems)
- Fixed bug decoding UTF-16 ID3 synchronized lyrics

Nov. 10, 2012 - Version 9.05

- Added ability to read APE metadata from MP3 audio files
- Decode ID3 synchronized lyrics/text information
- Decode maker notes in Leica V-LUX40 MP4 videos
- Decode Sony A99 AFPointSelected (thanks Michael Tapes for the samples)
- Improved decoding of some Sony tags (thanks Jos Roost)
- API Changes:
  - Removed GeoNoInterpolate option (just set GeoMaxIntSecs to 0 instead)

Nov. 3, 2012 - Version 9.04 (production release)

- Added two new Sony LensType values (thanks Matthias Paul)
- Added a few new Canon LensType values
- Added a couple of new PentaxModelID's and decode some new K-5 II values
- Added support for some new XMP tags written by the Apple iPhone 5
- Added a new Olympus CameraType
- Decode more Sony tags/values (thanks Jos Roost)
- Decode Nikon HDRInfo (thanks Stefan)
- Decode some FlashInfo tags for new Nikon models
- Decode a few WM ID3 tags (some documentation on these would be nice)
- Fixed bug which could cause truncated/garbage ID3v2 strings to be returned
- Fixed -globalTimeShift option to also work when copying tags
- Fixed decoding of Nikon AFFineTuneAdj for FirmwareVersion 1.10B (thanks Michael Tapes for the samples for this and the A77)
- Fixed problem where a few tags (FileSequence, NewGUID and Now) were not available for use with the -p option
- API Changes:
  - Added RequestAll and GeoNoInterpolate options
  - Fixed problem in SetNewValue when setting the Raw value of some tags

Oct. 13, 2012 - Version 9.03

- Added new feature to provide control over directory levels in %d strings
- Added ability to write OtherImage in NEF images
- Added a new Pentax LensType
- Added a few new CanonModelID's (thanks Laurent Clévy)
- Added a new Nikon LensID (thanks Geert De Soete)
- Added a few new Olympus CameraType values
- Decode some new CameraInfo tags for the Canon EOS 650D
- Decode a number of new Sony tags (thanks Jos Roost)
- Improved decoding of some Sigma tags for the DP1/DP2 Merrill
- Give priority to EXIF tags over SigmaRaw tags X3F images
- Changed Samsung lens names to include "NX" (thanks Jaroslav Stepanek)
- Fixed misleading verbose "TAG is not writable" messages when copying list-type tags
- API Changes:
  - Enhanced GetValue() to allow return of 'Rational' value

Sept. 6, 2012 - Version 9.02

- Added a new Nikon LensID (thanks Joseph Heled)
- Added a new EXIF SubFileType value used in DNG images
- Added write support for Apple Adjustment Settings XMP tags (XMP-aas)
- Added a couple of new Samsung LensType values (thanks Jaroslav Stepanek)
- Added a couple of new Canon LensType values and a new CanonModelID
- Decode a number of new Sony tags (thanks Jos Roost)
- Enhanced "-o -" feature to allow output file type to be specified
- Extract last file access time as FileAccessDate
- Allow tags to be set from files which are zero bytes in size
- Made ProfileHueSatMap tags Binary if they are too long
- Changed names of some PanasonicRaw DistortionInfo tags
- Changed decoding for a Sony ExposureMode value
- Fixed hang/crash that could occur when writing to an image with corrupted Sony MoreInfo data (eg. SLT-A55V JPEG corrupted by GIMP)

Aug. 25, 2012 - Version 9.01 (production release)

- Added a couple of new CanonModelID values
- Added a couple of new Canon LensType values (thanks Pascal de Bruijn)
- Added a new PentaxModelID and a few new Pentax PictureMode values
- Decode a new Pentax ISO tag
- Improved -listx output for XMP structure tags
- Fixed "unexpected end of file" problems with some compressed MIE files

Aug. 18, 2012 - Version 9.00

- Added support for PDF encryption V5.6 (new in Adobe Reader X)
- Added a few new XMP-cc tags and changed a few others to rdf:resource type
- Added a new Sony LensType and values for other Sony tags (thanks Jos Roost)
- Added a new Nikon LensID
- Added a new Panasonic LensType (thanks Olaf Ulrich)
- Added patch to fix simple XMP tags written incorrectly as lang-alt type
- Decode some Panasonic RW2 lens distortion correction tags
- Decode some WEBP image characteristics from the VP8 bitstream
- Decode more Leica MakerNote information
- Calculate CurrentIPTCDigest for IPTC in PostScript files
- Changed the names of a couple of WBShift tags
- Improved parsing of -if expressions to interpret a dash after a tag name as a minus sign instead of part of the tag name
- Patched problem with conditional deletion of an incorrectly null-terminated JPEG Comment
- Fixed hang bug when reading unsupported Microsoft Xtra information in MOV videos

Aug. 3, 2012 - Version 8.99

- Added patch to avoid "Error renaming temporary file" errors in Windows
- Decode some new Sony tags and values (thanks Mike Reit and Jos Roost)
- Improved Italian translation (thanks Michele Locati)
- Improved decoding of H264 ImageStabilization
- Changed names of PanasonicRaw ImageWidth/Height tags, and added new Composite tags to calculate actual size of RW2 images
- Fixed "Corrupted Ricoh RMETA data" warning for images from some Ricoh models
- Fixed problem writing information to some EPS images

July 28, 2012 - Version 8.98

- Added a new Pentax LensType and two new PentaxModelID's
- Added a new CanonModelID and a new Olympus CameraType
- Added a new Composite Duration tag for Vorbis audio files
- Added more elements to Microsoft Regions XMP structure and fixed tag name documentation for this
- Decode a number of new Sony tags (thanks Jos Roost)
- Changed name of Minolta BatteryLevel tag to BatteryState
- Patched problem with conditional deletion of IPTC string-type tags which are incorrectly null terminated (eg. written by Picasa 2.0)
- Fixed problem copying Canon 5DmkIII MakerNotes from CR2 to JPEG images
- Fixed runtime error when writing some images with corrupted EXIF

July 6, 2012 - Version 8.97

- Added a new Canon LensType
- Added support for GPX attitude information as written by Arduino
- Added write support for XMP-expressionmedia:CatalogSets
- Made CFARepeatPatternDim and CFAPattern2 writable but protected
- Minor improvement to decoding of Sony FaceInfo
- Fixed problem reading some GPX track logs

June 30, 2012 - Version 8.96

- Added -globalTimeShift option
- Added new values for a couple of Nikon tags (thanks Michael Relt)
- Added a few new Sony PictureEffect values
- Added a new Olympus LensType
- Decode a new Sony A100 tag and improved/renamed some others (thanks Igal Milchtaich)
- Changed -restore_original and -delete_original options to scan directories only for writable file types
- Enhanced -srcfile option to allow multiple source files to be specified
- Patched possible round-off problem when extracting rational values
- Fixed bug which could cause runtime error when reading some HTML files and improved reliability when extracting HTML "meta" tags
- API Changes:
  - Added GlobalTimeShift option

June 16, 2012 - Version 8.95

- Added a few new Sony PictureEffect values
- Added a new Olympus lens type (thanks Niels Kristian Bech Jensen)
- Improved decoding of Canon IntelligentContrast
- Improved user-defined lens logic to attempt to choose the best matching user-defined lens if more than one is possible

June 9, 2012 - Version 8.94

- Added ability to read/write IPTC as a block
- Added a few Nikon LensID's (thanks Mike Pollock and Robert Rottmerhusen)
- Added a new Olympus LensType (thanks Brad Grier)
- Added new values for a few Olympus tags
- Decode more Sony tags (thanks Jos Roost and Igal Milchtaich)
- Decode Canon IntelligentContrast and add a new CanonModelID
- Changed names of Canon Sort/LongFocal tags to Min/MaxFocalLength

May 26, 2012 - Version 8.93

- Added some new Nikon RetouchHistory values
- Added a couple of new Pentax LensType values
- Added some new Olympus MagicFilter and LensType values
- Added a new CanonModelID
- Decode more Sony tags (thanks Jos Roost)
- Decode some MakerNote information in Olympus E-M5 MOV videos
- Decode a couple more Canon tags
- Patched to overcome formatting problems in Samsung NX200 JPEG maker notes

May 12, 2012 - Version 8.92

- Added read support for PCD (Kodak Photo CD Image Pac) files
- Added Geotag support for Winplus Beacon text-format GPS log files
- Added support for Leica X2 MakeNotes
- Added NewGUID tag
- Decode Panasonic ManometerPressure tag (thanks Christoph Mitterer)
- Decode more Sony tags (thanks Jos Roost)
- Changed a few Canon-mount Tokina lens model names for consistency

May 5, 2012 - Version 8.91

- Added -progress option
- Added support for XMP fpv namespace
- Added a new Canon EasyMode value and fixed an incorrect one
- Added a couple of new Canon LensTypes
- Decode a number of new tags for the Canon 1DX and 5DmkIII
- Improved the names of a few Sony tags (thanks Jos Roost)
- Fixed -sep option to apply to interpolated tag values in a string when copying

Apr. 28, 2012 - Version 8.90 (production release)

- Added ability to fix double-UTF-encoded embedded XMP
- Added a warning for invalid XMP
- Added a new Minolta/Sony LensType (thanks Matthias)
- Added a new values for some Canon tags
- Decode ColorBalance information for a few more Nikon models
- Ignore trailing whitespace when writing converted values
- Enhanced the -z option to avoid writing the 2424 bytes of padding in XMP
- Improved decoding of some Sony MakerNotes tags (thanks Jos Roost)
- Improved "best guess" for fixing corrupted makernote offsets of some Sony models

Apr. 21, 2012 - Version 8.89

- Added new Nikon and Ricoh LensID's
- Added a new Olympus CameraType
- Added new Canon LensType, EasyMode and CanonModelID values
- Added new Pentax PictureMode and PentaxModelID values
- Added support for IDimager XMP tags
- Added a number of new XMP-crs tags used by LR4
- Decode a few more QuickTime tags
- More improvements decoding Minolta/Sony CameraSettings (thanks Jos Roost)
- Enhanced -ext option to allow files with any extension to be processed
- Increased maximum number of SubIFD's to accommodate some DNG 1.4 images
- Lowered priority of JPEG APP12 PictureInfo tags when reading
- Created mechanism to allow self-referential XMP structures

Apr. 15, 2012 - Version 8.88

- Added a new Canon LensType (thanks Gerald Erdmann)
- Decode a number of new Olympus tags and values
- Decode a few more QuickTime tags
- Many more improvements and additions to Sony decoding (thanks Jos Roost)
- Changed Ricoh InternalSerialNumber to also convert numerical value
- Removed the ability to create IFD1 in TIFF-format images (you shouldn't really do this anyway)
- Fixed incorrect IFD number in some error messages when writing

Apr. 9, 2012 - Version 8.87

- Added a new PentaxModelID
- Added new values for some Panasonic tags
- Added a couple of new Canon LensTypes
- Decode a few more Sony tags and values (thanks Jos Roost)
- Decode more CanonVRD tags
- Decode makernotes from Pentax WG-2 GPS MOV videos
- Changed Panasonic AdvancedSceneMode to a Composite tag
- Fixed problem introduced in 8.70 where excluding groups from deletion didn't work when copying back tags in the same command
- Fixed problem repairing incorrect makernotes offsets in JPEG images from Sony SLT and NEX cameras

Apr. 3, 2012 - Version 8.86

- Added a few new values for some Panasonic tags
- Added a new CanonModelID and a new Canon LensType
- Added a new Nikon LensID
- Decode more Sony CameraSettings3 information (thanks Jos Roost)
- Decode another Canon 5D tag
- Decode some new CanonVRD DLO tags
- Changed decoding of CanonVRD VRDVersion tag
- Changed formatting of a Pentax LensType for consistency with other lenses
- Patched decoding of Reconyx:DateTimeOriginal to accommodate values written with an incorrect byte order by some models

Mar. 25, 2012 - Version 8.85 (production release)

- Added a couple more Olympus CameraType values
- Added two new Pentax LensType's and a PentaxModelID
- Decode a number of new Sony CameraSettings3 tags (thanks Jos Roost)
- Decode a few new Pentax K-01 tags
- Decode new custom functions of the Canon 5D Mark III
- Recognize another non-standard APP1 XMP header
- Increased unrolled depth of XMP-mwg-kw:HierarchicalKeywords from 4 to 6
- Extended "-charset exif=CHARSET" to also apply to EXIF UserComment when stored as ASCII
- Changed name of Olympus MaxApertureAtCurrentFocal to to MaxAperture
- Patched to avoid possibility of unnecessary "references previous directory" warning when the length of one directory is zero

Mar. 17, 2012 - Version 8.84

- Added a few more SonyModelID's (thanks Jos Roost)
- Added a new CanonModelID and a number of new Canon LensType values
- Added a new Minolta/Sony LensType
- Decode CameraTemperature for a number of new Canon PowerShot models
- Decode information from PANA atom of Panasonic DMC-FT20 MP4 videos
- Decode a bit more of the Casio MakerNotes
- Improved Polish translations for EXIF information (thanks Kacper Perschke)
- Changed some warning messages for invalid IFD entries
- Patched to allow writing of Sony MakerNotes containing invalid IFD entries

Mar. 13, 2012 - Version 8.83

- Added a new SonyModelID and a new Nikon LensID (thanks Gregg Lee and Jos Roost)
- Added Finnish translations (thanks Jens Duttke and Jarkko Mäkineva)
- Fixed the Composite:LensID problem properly this time (with any luck)

Mar. 13, 2012 - Version 8.82

- Added ability to extract information from PostScript-type DFONT files
- Added a new Minolta/Sony LensType (thanks Jos Roost)
- Improved geotagging of orientation information when extrapolating past end of track
- Changed behaviour while copying information to allow flattened tags to be specified without the need to use the --struct option
- Removed unnecessary warning when writing PreviewImage to Ricoh DNG file
- Fixed problem introduced in 8.81 which prevented generation of the Composite LensID for Nikon images when duplicate tags were disabled
- API Changes:
  - Added NoFlat option to SetNewValues()
  - Changed Struct option to allow copying of both structured and flattened tags at the same time

Mar. 9, 2012 - Version 8.81

- Added some new Canon, Pentax and Sony/Minolta LensType's
- Added a few new FujiFilm PictureMode values (thanks Kai Lappalainen)
- Added some new FujiFilm FilmMode values
- Added a couple of new CanonModelID values
- Added local timezone message to -v2 geotagging output
- Made all Pentax LensType tags writable
- Improved Composite LensID logic to use Sony LensSpec value if available
- Fixed problem opening files with path names that begin with "&"

Feb. 25, 2012 - Version 8.80

- Added a new Olympus CameraType
- Improved geotagging to tolerate out-of-sequence and missing NMEA sentences
- Increased the maximum XMP tag ID length to 250 characters to allow very deep user-defined structure hierarchies

Feb. 20, 2012 - Version 8.79

- Avoid deleting the JPEG APP14 Adobe segment when deleting all metadata
- Added ability to read/write/create JPEG APP14 Adobe segment as a block
- Added some new CanonModelID values
- Added another Panasonic WhiteBalance value (thanks PeterK)
- Decode Panasonic ColorTempKelvin tag
- Decode information from Qualcomm APP7 JPEG segment
- Extract PreviewImage for a few more uncommon camera models
- Strengthened MP3 file recognition to avoid mis-identification of some files
- Fixed problems reading "sfnt" resource in some DFONT files
- Fixed problems writing some LensType values for 3rd-party lenses

Feb. 11, 2012 - Version 8.78

- Added basic read support for a few obscure audio formats (LA, OFR, PAC, WV)
- Added a couple more Canon LensType values
- Decode some new Kodak tags in MP4 videos
- Patched timezone problem on MirBSD due to leap-second "feature" of this OS
- Fixed problem converting Adobe XMP LensID's for Pentax lenses
- Fixed runtime warning due to conflict with some Vorbis tag ID's
- Fixed problem which could result in duplicate columns in -csv output when used with -f and the "#" suffix on a tag name
- API Changes:
  - Added XMPAutoConv option

Jan. 27, 2012 - Version 8.77 (production release)

- Added some new and updated some existing Sony/Minolta LensType values
- Added two missing Minolta Teleconverter values
- Added a new Canon LensType
- Decode Olympus ArtFilterEffect
- Enhanced -c (CoordFormat) option to allow signed coordinate output
- Changed -sort option to always sort -json and -X outputs by tag name
- Minor change to an Olympus LensType name (thanks Niels Kristian Bech Jensen)
- Fixed problem geotagging orientation information from PTNTHPR sentence
- Fixed decoding of negative Pentax EffectiveLV values
- Fixed typo in an Olympus LensType

Jan. 18, 2012 - Version 8.76

- Added -sort option to sort output by tag name or description
- Added support for FujiFilm RAF version 1.03 images and downgraded RAF version error to a warning
- Added a number of new Minolta/Sony LensType's
- Added a new CanonModelID
- Decode FocusPosition for Sony A850 and calculate Composite FocusDistance
- Decode IFD found in some Samsung Type1 maker notes
- Patched Olympus test to fix failure on some platforms
- Patched -json output to filter out invalid UTF-8 characters
- API Changes:
  - Added Sort2 option and 'Descr' setting for Sort option
  - Added secondary sort option to GetFoundTags() and GetTagList()
  - Changed name of Sort 'Alpha' setting to 'Tag' (but 'Alpha' still works for backward compatibility)

Jan. 8, 2012 - Version 8.75 (production release)

- Added -php output option (thanks Marcel)
- Decode another AIFF tag and handle character encoding in AIFF text values
- Recognize PHP files
- Enhanced Geotag feature to write speed/track from NMEA GPRMC sentence, and orientation information from Honeywell NMEA PTNTHPR sentence
- Changed verbose XMP output to print raw values
- Lowered default priority of "avoided" tags so they don't override other same-named tags when reading with duplicate tags disabled
- Patched tests to ignore MirBSD leap-second unconformity
- Patched ZIP module to avoid failed tests with Perl 5.6.2 on GNU/Linux 2.6
- Fixed problem reading xref table of some PDF files created by PScript5.dll
- Fixed problem reading RicohSubdir from AVI videos of the GR Digital 4

Dec. 28, 2011 - Version 8.74

- Added read/write support for Hasselblad FFF images
- Added iptcCore.args convenience file to the distribution package
- Catch CONT signal to allow calling applications to trigger an immediate response (avoiding a delay of up to 0.01 sec) after writing arguments to a -stay_open ARGFILE
- Protect against some infinite loops that could be created when using some of the advanced exiftool options
- Improved decoding of Samsung PictureWizard (thanks Pascal de Bruijn)
- Improved handling of bad IFD entries in -htmlDump output
- Changed print conversion of EXIF:FNumber and XMP:FNumber to use 2 decimal digits for values less than 1.0, and disable conversion for invalid values
- Tightened up the -stay_open feature to fix a few potential problems
- Fixed bug using -csv+= or -json+= for non-list-type tags
- Fixed problem deleting unknown makernotes as a block
- API Changes:
  - Enhanced SetNewValue() AddValue option to allow this option to be ignored for non-list tags

Dec. 16, 2011 - Version 8.73

- Added read support for OpenEXR and Radiance RGBE images
- Added a couple of new Nikon LensID's (thanks Robert Rottmerhusen)
- Added a new PentaxModelID
- Added a new Olympus CameraType
- Created new FileSequence tag for use in batch processing
- Decode maker notes from Pentax Optio RZ18 AVI videos
- Tolerate unrecognized IPTC records (but still issue warning)
- Changed ScaleFactor35efl calculation to also use Pentax SensorSize
- Minor changes to two Samsung lens names (thanks Pascal de Bruijn)

Dec. 8, 2011 - Version 8.72

- Added support for reading XMP from INX files
- Added PDF HasXFA tag
- Added a new XMP Colorants field (not in 2010 XMP specification)
- Decode Casio BestShotMode for yet more cameras
- Decode a few more Casio ImageStabilization values
- Decode a few more Olympus tags and added conversion for CameraType
- Protect against reading insanely large XMP (> 300 MB) in INDD files
- Extract large (> 64 kB) unknown XMP tags as binary data
- Reduced memory requirements for XMP processing (by 1/10)
- Fixed another place where empty XMP structures could hide (in lists)

Nov. 19, 2011 - Version 8.71

- Added two new Olympus LensType values (thanks Martin Hilbers)
- Avoid recreating duplicate groups when deleting whole groups and adding back tags in the same step
- Fixed problem where the QuickTime -charset option didn't work for some tags
- Fixed bug introduced in 8.69 which could cause excessive memory usage when reading QuickTime videos with the -u option
- Fixed problem where existing empty XMP structure couldn't be deleted or overwritten as a structured tag

Nov. 15, 2011 - Version 8.70

- Compatibility Notice: Changed order of operations when batch processing with -tagsFromFile option to be consistent with non-batch mode
- Added -listItem option
- Added read support for IDML files
- Added a new Canon LensType (thanks Jon Charnas)
- Added a couple of new Samsung LensType's (thanks Tae-Sun Park)
- Added support for another DigiKam XMP tag
- Decode a couple more ID3 tags
- Decode Casio BestShotMode for more cameras
- Improved decoding of Casio AFMode
- Extract unknown FLAC blocks as binary data
- Changed ITC:ImageType to make "numerical" value more friendly
- Changed priority of two unreliable Samsung tags
- Fixed bug where ExifTool could produce improperly formatted XMP when writing structure elements to a previously empty XMP structure (the empty XMP structure was not being properly deleted). Affected XMP may be repaired by re-writing any element of the structure with this version of ExifTool
- API Changes:
  - Added ProtectSaved option to SetNewValue() and return save count from SaveNewValues()

Nov. 9, 2011 - Version 8.69

- IMPORTANT: Fixed bug which could corrupt GIF images when writing a Comment to a GIF image containing XMP metadata
- Added ability to read/write ICC_Profile in GIF images
- Added ability to specify internal encoding of EXIF "ASCII" strings and QuickTime strings
- Added a new DigiKam XMP tag
- Documented -echo option (has been an undocumented feature since 6.86)
- Decode a number of new Sony tags
- Decode a few new Pentax tags and added a few new values
- Decode a few new QuickTime and ID3 tags
- Decode Casio BestShotMode for a number of models
- Improved validity checking of ICC_Profile segments in JPEG image
- Tolerate UTF-8 byte order mark (BOM) in input CSV and JSON files
- No longer trim trailing spaces from arguments in -@ argfiles
- Upgraded Windows executable version to use PAR 1.002
- Changed priority of the Sony DynamicRangeOptimizer tags
- Changed MWG feature to use UTF8 encoding for EXIF strings by default
- Changed the -b option to avoid loading large binary values for tags that have been excluded with the -x option or --TAG
- Changed Canon AFMicroAdjActive to AFMicroAdjMode and improved decoding
- Fixed problem where the PreviewImage could be lost when writing to images from some newer Sony cameras
- Fixed problem reporting duplicate information when -if used with -TAG#
- Fixed incorrectly written XMP-tiff:YCbCrSubSampling tag
- Fixed problem opening files with names beginning and/or ending with some characters such as SPACE, '>', '<' and '|'; however file names ending with '|' are still not allowed
- API Changes:
  - Added CharsetEXIF and CharsetQuickTime options

Oct. 21, 2011 - Version 8.68

- Added a new CanonModelID and a new SonyModelID
- Added new Canon and Pentax LensType's
- Decode more makernote information from Nikon MOV videos
- Improved decoding of Sony LensSpec and enabled writing of this tag
- Overhauled Minolta/Sony LensType list for consistency with official Sony lens names and removed a couple of anomalous entries (thanks Jos Roost)
- Fixed problem with negative temperatures in Reconyx makernotes
- Fixed bug which could cause runtime warnings when -f used with -X and -l
- Fixed some minor problems when using -X with MWG option
- Fixed issue where some missing tags could be printed when -f option was used in combination with wildcard tag names

Oct. 13, 2011 - Version 8.67

- Added a new Canon LensType (thanks Norbert Wasser)
- Decode tags from FujiIFD in HS10 and X100 RAF images
- Decode LocationInfo tags from Nikon maker notes
- Decode GPS tags from Nikon MOV videos
- Decode information from Microsoft "Xtra" atom in QuickTime files
- Decode Sony LensSpec information (thanks Jos Roost)
- Use more specific MakerNotes names in warning messages and verbose output
- Updated Canon CustomFunctions for the EOS 600D and 1100D
- Improved handling of some corrupted RIFF files
- Improved decoding of Samsung manual lens types (thanks Pascal de Bruijn)
- Changed "No writable tags found" warning to "No writable tags set from"
- Fixed problem handling resource forks in newer versions of OS X
- Fixed problem writing XMP as a block to Jpeg2000 images
- Fixed problem which could cause XMP and IPTC to be ignored when using MWG feature with TIFF images and performing multiple operations in a single command

Oct. 3, 2011 - Version 8.66

- Added the ability to use "$GROUP:all" in -if and -p expressions (evaluates to "1" if any tag exists in the specified group, or "0" otherwise)
- Added a new Sony/Minolta LensType (thanks Florian Knorn)
- Added list of recommended modules to Perl installation
- Decode ColorBalance information for a few new Nikon models
- Updated Canon CustomFunctions for the EOS 600D and 1100D
- Fixed problem writing "now" to MWG date/time tags

Sept. 24, 2011 - Version 8.65 (production release)

- Added a few new CanonModelID's
- Added a new Sony/Minolta LensType
- Added a new Canon LensType (thanks Klaus Reinfeld)
- Added a number of new Olympus ArtFilter/MagicFilter values
- Included new .args files in distribution: exif2iptc.args and iptc2exif.args
- Enhanced writing of date/time tags to recognize "now" for the current time
- Improved decoding of H264 Gain
- Minor improvement to -htmlDump for some invalid IFD entries
- Allow PostScript date/time tags to be written without the -n option
- Allow NikonCapture:ExposureAdj2 to be written without the -n option
- Fixed problem introduced in version 8.62 where DateTimeOriginal in IFD0 of NEF images was no longer updated when shifting times
- Fixed problem where keywords could be duplicated when exporting to XMP while using the MWG module
- Fixed problem reading PDF images with extra whitespace before xref table
- Fixed format problem in CSV output for filenames containing a comma or quote
- Fixed problem reading concatenated AVI videos

Sept. 10, 2011 - Version 8.64

- Added 2 new ACDSee XMP tags (thanks Hannes Leubbers)
- Added a new Sony FileFormat value
- Added a new CanonModelID
- Added a few new Pentax DigitalFilter and ImageTone values
- Enhanced -execute option to allow a command ID number to be added
- Enhanced -csv and -json import features to also key on canonical SourceFile path (requires Cwd module)
- Improved Composite LensID logic for some Sony cameras
- Fixed misleading error message when using -if option on file that doesn't exist
- Fixed problems decoding a number of inconsistent tags in the Sigma SD1 maker notes

Aug. 27, 2011 - Version 8.63

- Added support for a number of new Open Document file extensions
- Added a few new CanonModelID and SonyModelID values
- Added a new Ricoh GXR LensID
- Added a new Sony/Minolta LensType (thanks Mladen Sever)
- Added patch to read the improperly formatted DateTimeOriginal in AVI videos written by the Kodak Easyshare Sport camera
- API Changes:
  - Added QuickTimeUTC option

Aug. 21, 2011 - Version 8.62 - "JPEG2000 Update"

- Added read support for JPEG2000 codestream format (J2C)
- Added a few new Nikon LensID's (thanks Robert Rottmerhusen)
- Added a few new Pentax LensType's
- Added a few new Sony/Minolta LensType's (thanks Wolfram for 2 of these)
- Added two new Sony Teleconverter values (thanks Wolfram)
- Decode a few more JPEG2000 UUID's written by Adobe JPEG2000 plugin
- Decode additional JPEG2000 ColorSpecification information
- Recognize a few more JPEG2000 file extensions
- Updated some CanonModelID's
- Tolerate extra comma at end of line in imported -csv files
- Changed name of Kodak Type9 SerialNumber tag to UnknownNumber
- Fixed bug which in rare situations could result in an erroneous "IFD pointer references previous IFD" warning
- Fixed another memory leak when writing and removed circular references from ExifTool object to prevent future bugs like this
- Fixed problem in Windows where values in the -X (XML) output containing CR+LF were converted to CR+CR+LF
- Fixed superfluous warning which could occur when using += to decrement a numerical tag
- Fixed an incorrectly spelt Pentax city name (thanks John Francis)

July 16, 2011 - Version 8.61

- Added the ability to increment/decrement tags with numerical values using +=
- Added support for Extensis Portfolio XMP tags plus a number of non-standard and/or undocumented XMP-xmp and XMP-xmpMM tags
- Added read support for Microsoft Compiled HTML (CHM) format
- Added read support for Ogg Video (OGV) files
- Added new LensType values for Pentax (thanks Heike Herrmann), Sony/Minolta (thanks Fabio Suprani and Florian Knorn), Nikon (thanks Jens Kriese), Olympus and Sigma cameras
- Added a new QuickTime VendorID
- Recognize DEX (Dalvik Executable) files
- Identify Windows 64-bit EXE/DLL files and relax EXE validation
- Validate date/time values when reading NMEA GPS log files
- Changed decoding of CFAPattern to return a string of numbers with -n option
- Extract all unknown makernote blocks as undef, regardless of actual format
- Improved print conversion of Pentax ShakeReduction
- Fixed problem processing some Ogg files with multiple streams
- Fixed incorrect namespace URI for stArea (used by MWG 2.0 regions)
- Fixed problem with spaces in -geotag path when using wildcards
- Fixed problem writing PDF:Keywords list items individually if they contain special characters
- API Changes:
  - Enhanced SetNewValue() to allow increment/decrement of numerical tags

June 25, 2011 - Version 8.60 (production release)

- Added Composite Flash tag to facilitate copying of flash information between XMP and EXIF
- Added new Pentax and Canon LensType values and fixed a Pentax lens name
- Added a few new Leica LensType's (thanks Olaf Ulrich)
- Added a new PentaxModelID
- Enhanced GPSDateStamp conversion to tolerate null separators (Casio EX-H20G)
- Made DNG LinearizationCurve and Nikon ContrastCurve writable but protected
- Renamed Nikon LinearizationTable to NEFLinearizationTable and made writable but protected
- Removed Leica M8 FrameSelector tag since it seems to have evolved into an extension of the LensType tag for newer lenses
- Fixed problem with order of operations when using multiple -if options

June 11, 2011 - Version 8.59

- Added new Composite:LensID derived from XMP-aux:LensID
- Added new PentaxModelID and CanonModelID values
- Added a new Pentax LensType (thanks Artur)
- Decode maker notes in Pentax Optio S1 AVI videos
- Extract PreviewWMF from DOCX files
- Recognize WMF images
- Fixed decoding of CanonVRD WBAdjRGBLevels and renamed to WBAdjRGGBLevels

June 2, 2011 - Version 8.58

- Decode a number of CameraInfo tags for the Canon EOS 600D and 1100D
- Improved speed by a factor of 2 when reading M2TS videos
- Fixed memory leak with -stay_open feature when writing

May 26, 2011 - Version 8.57

- Added a couple of new Canon LensType values
- Added a few new Nikon LensID's (thanks Robert Rottmerhusen)
- Added format string to -v2 output for IPTC tags
- Added extra logic to avoid misidentifying unknown IFD-style maker notes
- Decode custom settings for Nikon D700 and D7000
- Fixed problem recognizing NikonCaptureData for ViewNX version 2.1.1

Apr. 16, 2011 - Version 8.56

- Added a new Canon LensType (thanks Rodolfo Borges)
- Decode EXIF information in FujiFilm HS20EXR MOV videos
- Decode NikonCaptureEditVersions when ExtractEmbedded option is used (previously called NikonCaptureHistory)
- Decode another Samsung tag (thanks Tae-Sun Park)
- Recognize CaptureOne ".newer" COS files
- Reverted JSON output to pre-8.51 behaviour by removing '#' suffix from tag names when print conversion is disabled on a per-tag basis
- Fixed bug introduced in 8.32 interpreting some expressions when copying tags

Apr. 11, 2011 - Version 8.55

- Added write support for FujiFilm RAF version 0716 images
- Added support for a number of new LR3 XMP tags (thanks Wolfgang Guelcker)
- Decode some more Samsung tags (thanks Tae-Sun Park)
- Improved handling of incorrectly formatted XMP
- Recognize a few alternate PS and EPS file extensions (thanks Jeff Harmon)
- Reverted a few Pentax macro lens names (less consistent, but at least they match the official Pentax names)
- Fixed problem reading some XMP custom properties
- Fixed minor problem in HtmlDump output for Canon MakerNotes footer

Apr. 2, 2011 - Version 8.54

- Added a number of new values for various tags
- Added a new Nikon LensID
- Decode a number of encrypted Samsung SRW tags (thanks Tae-Sun Park)
- Enhanced -s option so allow a number to be specified
- Fixed problem reading some Casio EX-Z35 MakerNote values

Mar. 27, 2011 - Version 8.53

- Added a new Olympus LensType
- Added a new Nikon LensID
- Added a new PentaxModelID value
- Decode new Pentax MakerNotes format of Optio WG-1 GPS
- Decode Casio, Ricoh and Sanyo face detection information (thanks Jeffrey Friedl and Emilio for samples)
- Decode FujiFilm face recognition information (thanks Jeffrey Friedl)
- Decode a new FujiFilm tag for GE models
- Allow writing GPSLatitudeRef/GPSLongitudeRef with a signed number
- Return proper FileType for M4P audio files
- Combined Canon FaceDetectFrameWidth/FaceDetectFrameHeight tags into FaceDetectFrameSize for consistency with other makes
- API Changes:
  - Fixed problem when specifying family 1 group in call to SetNewValue() when tags were previously extracted with ExtractInfo()

Mar. 20, 2011 - Version 8.52

- Added -listr option and mechanism to recognize some unsupported file types
- Added read support for VSD (Microsoft Visio Drawing) files
- Added a new Pentax LensType and improved consistency of macro lens names
- Added another CanonModelID
- Calculate Duration for M2TS (AVCHD) videos
- Decode a new FujiFilm tag
- Recognize .TS extension
- Recognize FotoStation IPTC record 240
- Attempt to better identify FPX-format MSOffice documents with incorrect file extensions
- Fixed bug applying time shift to Nikon PowerUpTime
- API Changes:
  - Enhanced GetNewValues() to allow group name to be specified
  - Allow description flag to be set to '0' when calling GetFileType() to return types of recognized-yet-unsupported files

Mar. 12, 2011 - Version 8.51

- Added -csv option for import/export of CSV database files
- Added ability to import JSON files
- Added read support for APP1 "Ocad" segment
- Added a new Nikon LensID (thanks Robert Rottmerhusen)
- Decode more Reconyx MakerNotes tags (thanks Robert Hass of Reconyx!)
- Report the number of encryption bits in the PDF:Encryption tag value
- Allow empty group name when specifying a tag
- Improved decoding of Olympus ArtFilter and MagicFilter tags
- Improved exception handling to continue with next -execute command after aborting a command due to a serious error
- Fixed problem reading indexed PGF images

Mar. 1, 2011 - Version 8.50 (production release)

- Added Composite tags to convert QuickTime GPS information
- Added a couple new Sony PMP Orientation values (thanks Mike Battilana)
- Added a couple of new Nikon LensID's (thanks Rolando Ruzic)
- Added a new Canon LensType (thanks Gerald Kapounek)
- Decode new Nikon, Olympus, Pentax and Sony face detection tags (thanks Jeffrey Friedl)
- Decode Ricoh FirmwareRevision tags
- Allow GPSLatitudeRef and GPSLongitudeRef to be written with a GPS coordinate containing a N/S/E/W designator
- Removed Canon20D shortcut and changed Canon shortcut
- Removed LEGRIA/VIXIA/iVIS from CanonModelID names
- Renumbered Canon FacePosition tags to start at Face1Position

Feb. 12, 2011 - Version 8.49

- Added a number of new values for various Canon tags
- Added a new Pentax LensType
- Added ability to write Nikon PowerUpTime tag
- Added a number of MachO CPUSubtype's and improved handling of 64-bit flag
- Decode ColorData for the Canon EOS 600D and 1100D
- Decode a few new Sony tags
- Set document number for FlashPix tags extracted from embedded documents
- Attempted to patch OS X 10.6 quirk where FileModifyDate may not be preserved for some files when -P is combined with -overwrite_original_in_place

Feb. 3, 2011 - Version 8.48

- Added a new Canon LensType value
- Changed order of stored information when rewriting existing IPTC tags (to make the order of items in list-type tags consistent with XMP when deleting and adding back values in the same command)
- Fixed problems with format of binary data in lists for some output options

Jan. 29, 2011 - Version 8.47

- Added -args option
- Added read support for PGF (Progressive Graphics File) images
- Added write support for Phase One IIQ images
- Added ability to write XMP-xmpMM:Pantry
- Added print conversions for a number of closed-choice XMP properties
- Added some new CanonModelID's
- Included new argument files in distribution: pdf2xmp.args and xmp2pdf.args
- Avoid copying TIFF trailers containing nothing but zeros when rewriting
- Handle binary data in serialized structure output
- Moved BMP tags to the File group
- Fixed bug reading/writing some IPTC binary data tags
- Fixed problem copying XMP:Thumbnails structure
- Fixed conversion of MXF:ByteOrder value
- Fixed potential "Undefined subroutine ConvertStruct" crash bug
- API Changes:
  - Fixed bug introduced in 8.46 when calling GetValue(xxx,'Raw')

Jan. 22, 2011 - Version 8.46

- Simplified definition of user-defined XMP structures: flattened tags are now automatically generated, and UserDefined::xmpStruct is no longer needed (but backward compatibility is maintained with the old-style definitions)
- Added ability to handle multi-dimensional arrays in structured output
- Added a new Canon LensType (thanks Jean-Michel Dubois)
- Added some new XMP-xmpMM tags
- Enabled writing of a number of XMP-crs tags
- Decode Reconyx TriggerMode tag
- Relaxed structure validation to allow a structure to be written even if there were errors with some fields
- Patched problem with formatting of very large numbers in JSON (-j) output
- Fixed a few problems reading and writing structured information
- Fixed bug which could cause hang with some user-defined tag definitions

Jan. 12, 2011 - Version 8.45

- Fixed a couple of minor bugs with the new -struct option

Jan. 12, 2011 - Version 8.44 - "Structured XMP"

- Added ability to specify XMP structures when writing (yet another Christmas vacation spent adding a significant new feature to ExifTool)
- Added support for new XMP tags in the MWG 2.0 specification
- Added read support for DV video files
- Added support for Reconyx maker notes
- Added option to overwrite existing text output files (-w!)
- Added ability to ignore symbolic directory links with "-i SYMLINKS"
- Added support for Sony Ericsson XMP cell phone location tags
- Added a few new CanonModelID's
- Added a new Minolta/Sony LensType (thanks Jean-Michel Dubois)
- Added a new Olympus LensType
- Added print conversion for all Bitrate tags
- Decode a couple new RIFF tags
- Decode CameraTemperature for a few new Canon PowerShot models
- Improved -struct option to work with all text output formats
- Changed behaviour of XMP lang-alt lists to conform to the July 2010 specification (x-default item is no longer mandatory)
- Renamed AudioSampleBits tags to AudioBitsPerSample
- Renamed XMP-crs:Temperature tag to ColorTemperature
- Minor change to behaviour when replacing values in XMP lists: new list items are now all inserted in place of the first deleted item (previously new items were inserted one-by-one into the holes left by deleted items)
- Fixed bug writing alternate languages for XMP-iptcExt:ArtworkTitle tag
- Fixed problem where console echo was disabled when using -k option from a bash script
- Attempted to patch problem of -b option affecting newline sequence for subsequent -execute commands in Windows
- API Changes:
  - SetNewValue() now accepts structured values (as HASH references or serialized strings)
  - Struct option now has 3 settings (undef, 0 and 1)

Dec. 21, 2010 - Version 8.43

- Added read support for MXF (Material Exchange Format) files
- Added support for GE (General Imaging) maker notes
- Added a couple of new Pentax LensType's
- Added a couple of new CanonModelID's
- Added a few more values to Casio UnknownMode
- Recognize 3GPP and 3GP2 file extensions
- Improved handling of character encoding errors
- Changed Duration format to always include hours for times > 1 minute
- Fixed minor quirk in HtmlDump output
- Fixed race condition with -stay_open when reading options requiring additional arguments from the argfile

Dec. 11, 2010 - Version 8.42

- Added a couple more Samsung LensType values
- Added a few new Canon EasyMode values and a Canon LensType value
- Added a new PentaxModelID
- Decode some new H264 tags (thanks Dave Nicholson)
- Decode JUNK chunk in Pentax RS1000 AVI videos
- Flush console output before "{ready}" message when using -stay_open
- Improved decoding of some Canon and Pentax tags (thanks Dave Nicholson)
- Fixed problem copying makernotes from Nikon NRW image to JPEG
- Fixed incorrect decoding of some AEInfo tags for newer Pentax DSLR's

Dec. 3, 2010 - Version 8.41

- Added a new PentaxModelID
- Added a few new values for some Canon tags
- Added some non-standard values to a few XMP-exif tags
- Decode a new Ricoh tag and added a LensID
- Decode more Pentax K-5 tags and values
- Improved decoding of Battery tags for various Pentax DSLR models
- Fixed bug where time could be wrong by up to 2 seconds when shifting multiple date/time values containing fractional seconds

Nov. 21, 2010 - Version 8.40 (production release)

- Added -restore_original and -delete_original options
- Added new Canon, Pentax and Sony LensType values
- Decode more Pentax K-5 tags
- Decode a number of new tags in Nikon D7000 MOV videos
- Decode FocusDistance tags for the Canon EOS 60D
- Decode a few new Panasonic tags
- Decode a few maker note tags from Flip Video MP4 files
- Extract PDF PageMode and PageLayout tags
- Changed family 2 group names for a number of PDF tags
- Changed Canon LensType strings for a few lenses with updated models
- Patched problem reading GPX files which contain no newlines

Nov. 12, 2010 - Version 8.39

- Added read support for RAR archive files
- Added warning for non-standard XMP APP1 header in JPEG images
- Added a new Canon LensType (thanks Rolando Ruzic)
- Decode more Olympus WAV tags
- Decode a few more PDF document property tags
- Decode a new Canon tag
- Extract firmware revision letter with Nikon FirmwareVersion
- Improved decoding of some Pentax tags
- Changed names of a couple of Pentax tags
- Changed name of ASF:FileSize to FileLength to avoid conflict
- Fixed problem creating output files on network drives in Windows
- Fixed bug where MWG module wasn't loaded automatically when -execute was used

Nov. 7, 2010 - Version 8.38

- Added support for Nikon D3 firmware 2.02
- Decode many new Pentax K-5 tags and improved decoding of others
- Decode a few more Nikon D3 and D3S settings (thanks Warren Hatch)
- Decode some new Olympus WAV tags (thanks Tomasz Kawecki)
- Decode a few new Canon DPP 3.9.2 tags
- Decode PDF digital signature permission information
- Improved recognition of Adobe Illustrator PS-format AI files
- Disable writing XMP to Adobe Illustrator version 8 and older EPS files

Oct. 31, 2010 - Version 8.37

- Added ability to switch ARGFILE while -stay_open is active
- Fixed a couple of bugs with the new -stay_open option
- Fixed problem with -E option that caused double-escaping of Composite tags

Oct. 30, 2010 - Version 8.36

- Added ability to read/write metadata in Sigma X3F images containing a JpgFromRaw (eg. all Sigma models except the SD9 and SD10)
- Added -stay_open option to avoid startup delay when called from other applications
- Added a new Pentax LensType (thanks Hubert Meier)
- Decode a couple of new tags written by Sigma Photo Pro
- Changed family 0 group name for SonyIDC tags to "MakerNotes"
- Improved Composite:LensID to use LensModel if available when LensType is "Unknown"
- Fixed problem extracting ThumbnailImage from some FujiFilm RAF images
- Fixed problem calculating Red/BlueBalance for some newer Nikon models

Oct. 23, 2010 - Version 8.35 - "PDF Encryption"

- Added support for PDF AES-128 and AES-256 encryption (requires Digest::SHA for AES-256 support)
- Added -password option for processing password-protected PDF documents
- Added write support for a couple more FujiFilm RAF versions
- Added a number of new Olympus SceneMode values
- Added a few new SonyModelID's
- Added a new Nikon LensID (thanks marten)
- Added a Canon LensType and fixed an incorrect one (thanks Andreas Huggel)
- Decode a number of new Canon tags
- Decode a few new Nikon D3S settings (thanks Warren Hatch)
- Extract PDF UserAccess
- Extract Olympus ZoomedPreviewImage
- Updated decoding of Olympus AFPoint for recent E-models
- Avoid writing mandatory IPTC tags unless another IPTC tag actually changes (eg. trying to delete a non-existent IPTC tag will no longer have the side effect of generating mandatory IPTC tags)
- Improved language translations
- Improved error message when trying to write a file with the wrong extension
- Renamed a couple of Olympus tags
- Fixed problem reading/writing PDF tags from some encrypted stream objects
- API Changes:
  - Added Password option

Oct. 7, 2010 - Version 8.34

- Added read support for XCF and WebP images and WebM videos
- Added a couple of new PentaxModelID's
- Decode a number of new Canon 60D MakerNotes tags (thanks Bogdan for LensSerialNumber)
- Decode FrameCount from MakerNotes in Nikon MOV videos
- Decode Ambience and some video tags from Canon
- Decode more Canon EOS 1D Mark IV CameraInfo tags
- Updated decoding of Pentax HighISONoiseReduction for newer models
- Changed description of Canon SerialNumber tags
- Fixed problem with extra comma in JSON output when -w option was used

Oct. 3, 2010 - Version 8.33

- Added ability to specify numerator and denominator of rational values
- Decode more Canon custom picture style settings (thanks Tom Kawecki)
- Decode Samsung MP4 "TAGS" information from WP10 videos
- Decode thumbnail image and maker notes from Canon S95 MOV videos
- Decode Microsoft Photo 1.1 EXIF and XMP information
- Fixed problem copying tags dynamically from files with read errors
- Fixed problem setting FileName with a Windows UNC path (leading "\\")

Sept. 25, 2010 - Version 8.32

- Added the ability to use wildcards ('?' and '*') in tag names when extracting or copying information
- Added a number of new CanonModelID's
- Decode a few more QuickTime tags and improved decoding of others
- Decode UserDefPictureStyle tags for more Canon cameras (thanks Tom Kawecki)
- Extract unknown text-based maker notes under new MakerNoteUnknownText tag
- Tested writing of PDF 1.7 files and removed warning for this version
- Identify Canon MakerNote footer in HtmlDump of DNG images
- Updated MimeType for PSD, AVI, AIFF plus a number of raw file formats
- Changed FileType for Adobe Illustrator (AI) files
- Fixed "Can't handle XMP attribute 'rdf:xmlns'" error when writing some XMP

Sept. 17, 2010 - Version 8.31 - "CRW+XMP"

- Added ability to read/write XMP inside CanonVRD, which finally provides a technique to write XMP in CRW images! (thanks Mike Kobzar for help testing)
- Added a couple of new Canon LensType's and CanonModelID's
- Added a number of new Nikon LensID's (thanks Robert Rottmerhusen)
- Added a new Sony LensType (thanks Mladen Sever)
- Treat 'eng' as a default language in ID3v2 information
- Recognize AIT file extension (AI file)
- Fixed problem where ExifTool could refuse to write PDF files containing XMP-pdf:PDFVersion information

Sept. 11, 2010 - Version 8.30

- Added a couple of new Nikon LensID's (thanks Robert Rottmerhusen)
- Added a couple more Sigma LensType values
- Added a few more tag values for the new Sony SLT-A33, SLT-A55V and DSLR-A560
- Added a few more values for various Casio tags
- Added a new Canon LensType (thanks Guido)
- Decode Panasonic ContrastMode for the TZ10/ZS7
- Decode some Canon CameraInfo tags for the 60D
- Updated Canon custom functions for the 60D
- Updated Flash video to add some new values and decode some new tags
- Updated QuickTime decoding for new track and movie header formats
- Named a couple of unknown Canon tags
- Made Nikon PictureControl and NikonCaptureOutput directories block writable
- Fixed problem geotagging when any coordinate was exactly zero
- Fixed typo in Canon AFAssistBeam converted value
- Fixed problem displaying exiftool documentation on OS/2 (thanks Ilya Zakharevich)

Aug. 22, 2010 - Version 8.29

- Added a few new CanonModelID's
- Added verbose messages for "unsafe" and "protected" tags which are not copied
- Decode CameraTemperature for a few new Canon models
- Decode a few new Panasonic tags (thanks Zdenĕk Mihula)
- Decode a number of new 3rd party RIFF tags
- Recognize Casio-type maker notes in Concord cameras
- Handle "CDATA" sections in XML/XMP
- Fixed problem that could cause value to be added twice when writing MWG list-type tags without specifying a group
- Fixed bug extracting altitude from GPX files containing "rtept" nodes which could result in an altitude being associated with the next GPS fix
- Fixed problem deleting PreviewImage from MIE files

Aug. 14, 2010 - Version 8.28

- Added ability to specify Photoshop encoding (-charset Photoshop=CHARSET)
- Added support for maker notes of some Sony Ericsson phones
- Improved conversion for SigmaRaw:FocalLengthIn35mmFormat (thanks Niels Kristian Bech Jensen)
- Fixed bug in calculation of AvgBitrate for QuickTime videos (thanks Mats Peterson)
- Improved error handling when reading Matroska files
- Fixed -GROUP:geotag= to allow multiple geotag groups to be deleted separately

July 31, 2010 - Version 8.27

- Added support for QuickTime localized languages and character encodings
- Added support for alternate language ICC_Profile tags
- Added a new XMP-swf tag
- Added a new Sony LensType (thanks Mladen Sever)
- Added ability to specify any group (not only family 0 and 1) for source tag when copying
- Decode a number of new QuickTime tags
- Decode MakerNoteKodak9 maker notes in a few non-Kodak cameras
- Extract NikonCaptureHistory and drop when copying Nikon MakerNotes
- Calculate AvgBitrate for QuickTime movies
- Fixed names of a few recently added ICC_Profile tags (thanks Jeff Harmon)
- Fixed bug calculating duration of AVI videos for which FrameCount is zero
- Fixed tag ID for XMP-iptcExt:AdditionalModelInformation
- Fixed decoding of ShiftJIS character set

July 20, 2010 - Version 8.26

- Decode a number of new ICC_Profile tags added in approved revisions to the specification
- Drop NikonCaptureData when copying Nikon MakerNotes (it may be too large for a JPEG APP1 segment when copying from an NEF image)
- Made NikonCaptureData writable as a block and NikonCapture a deletable group
- Minor addition to tooltip for HtmlDump of offset values
- Fixed problem writing to an incorrectly-typed XMP list (patch for LR3 bug)
- Fixed problem setting file ownership on OS/2 systems when writing (thanks Ilya Zakharevich)
- Fixed incorrect ICC_Profile tag name (thanks Jeff Harmon)

July 13, 2010 - Version 8.25 (production release)

- Added CommonIFD0 shortcut tag to help when deleting metata from TIFF images
- Added a new Pentax LensType and fixed an incorrect one
- Added a new Panasonic ColorMode
- Decode FLAC picture metadata
- Changed ASF Preview tags to be consistent with ID3 and FLAC Picture tags
- Patched problem with funny dash character in cut-n-paste from documentation on some systems (by allowing the funny dash in command-line arguments)
- Fixed misleading warning message which could appear when writing MWG tags
- Fixed typo in an ID3 tag name (thanks Mats Peterson)
- Fixed an incorrect Sony lens name (thanks Stephen Bishop)
- Fixed problem misidentifying some other RAW files as Epson ERF

June 30, 2010 - Version 8.24

- Added ability to write some Kodak APP3 Meta tags
- Added a few new Olympus LensType's and new values for a couple of other tags
- Added support for yet another Kodak MakerNote variation (M580)
- Added conversion for OOXML DocSecurity tag (thanks Jeff Harmon)
- Added another Nikon ExternalFlashFlags value (thanks Warren Hatch)
- Decode more Canon VRD tags (thanks Gert Kello) and changed some tag names
- Decode a couple of new Canon 7D tags (thanks Vesa Kivisto)
- Decode a few more Sigma tags
- Decode HTML tags written by Microsoft Office
- Decode some MakerNotes tags from Samsung MP4 videos
- Allow RFC 8601 date/time values to be written without seconds
- Fixed conversion for Kodak Meta:SerialNumber
- Changed conversion of Canon FocusDistanceUpper/Lower tags to add units (m)
- Changed the names of some Nikon FlashExposureComp tags
- Changed name of RTF CharactersNoWhiteSpace tag to CharactersWithSpaces to conform with what Microsoft does with their software as opposed to what they say in their RTF specification
- Changed a few FlashPix tags for better consistency with OOXML and RTF
- Properly convert OOXML Unicode character entities
- Fixed problem writing some Sigma MakerNote tags
- Fixed problem writing incorrect value for "Uncalibrated" XMP:ColorSpace
- Fixed bug where some unknown Canon values were extracted twice with -U

June 20, 2010 - Version 8.23

- Added write support for FujiFilm RAF images from the HS10 and S100FS
- Added read support for RTF files
- Added read support for FPXR in JPEG APP4 as written by some HP cameras
- Added ability to copy files of any type (now does a straight copy instead of processing the file if no new values are set for any "real" tag)
- Added new values for CanonModelID, PentaxModelID and SonyModelID
- Added a new Ricoh LensID
- Added conversion for "Off" and "On" values when writing EXIF:Flash
- Added a new Canon LensType and changed the name of one Sigma lens
- Decode more Canon VRD tags and update to DPP 3.8 (thanks Gert Kello)
- Decode FujiFilm AutoDynamicRange
- Changed some DNG tags to make them writable (but "unsafe")

June 9, 2010 - Version 8.22

- Implemented PNG alternate language tags and special character translations
- Added print conversion for XMP-photoshop:ColorMode
- Decode some new Pentax 645D tags/values and added more PentaxModelID's
- Changed family 1 group names for Matroska Chapters
- Changed frame rate conversions to round to 3 decimal points
- Enable summary messages when -b is combined with -w
- Assume local system timezone on specified date (instead of current local timezone) when writing an IPTC time tag with a date/time value which doesn't include a timezone
- Fixed conversion of Matroska:ChapterTimeStart/End values
- Fixed an incorrect Panasonic Lens name (thanks Michael Byczkowski)

June 2, 2010 - Version 8.21

- Added read support for Matroska multimedia files (MKA, MKV and MKS)
- Added a new PentaxModelID (Optio E80)
- Decode some information from Casio EX-7000SX APP1 "QVCI", HP Photosmart R837 APP6 "TDHD" JPEG segments
- Extract more Samsung and HP PreviewImages hidden in other JPEG APP segments
- Extract unknown tags with numerical ID's by default when -v option is used
- Updated default GPSVersionID to 2.3.0.0 when writing
- Fixed bug geotagging from KML file (lat/long were swapped)

May 26, 2010 - Version 8.20 - "Exif 2.3"

- Added read support for Open Document files (ODP, ODS, ODT)
- Added Composite:AudioBitrate tag for VBR MPEG audio
- Added support for IPTC:CatalogSets written by iView MediaPro
- Decode Olympus MagicFilter tag and add a two new SceneMode values
- Decode a few new Sony tags written by NEX models
- Decode a number of new Sony A100 tags (thanks Igal Milchtaich)
- Decode some information from MPEG audio LAME header
- Updated to Exif 2.3 specification (!!)
- Allow date/time tags to be shifted by the values of other tags when using the -tagsFromFile feature
- Fixed formatting of QuickTime:CreateDate as written by iPhone
- Fixed problem conditionally replacing some blank EXIF tags and alternate language tags in XMP

May 11, 2010 - Version 8.19

- Added ability to read/write Samsung PreviewImage trailer
- Added two new PentaxModelID's (Optio H90 and W90)
- Added a new Canon LensType
- Added a new CanonModelID
- Decode more Sony tags/values (thanks Michael Reitinger)
- Decode more Leica M9 tags (thanks Michael Byczkowski and Carl Bretteville)
- Updated to XMP April 2010 specification
- Avoid extracting Sony DSLR-A100 tags which have "n/a" values
- Improved German language translations (thanks Herbert Kauer)
- Improved efficiency of Composite tag calculations
- Made RSRC a deletable group
- Tolerate extra white space at the start of an XMP file
- Changed MWG logic to ignore blank EXIF tags
- Changed a few print conversion strings to improve interoperability
- Changed XMP namespace prefix 'prismusagerights' to 'pur' as per most recent PRISM specification
- Patched memory problem in Windows when processing very large EPS files
- Fixed a couple of incorrectly named Sony Panorama tags
- Fixed bug which could prevent file from being updated when deleting mandatory tags and adding back tags in other locations

Apr. 16, 2010 - Version 8.18

- Added read support for Sony DSC-F1 PMP images
- Added a new Nikon LensID (thanks Jeffrey Friedl)
- Decode a number of new Sony tags (thanks Michael Reitinger)
- Decode a few more Leica M9 tags (thanks Michael Byczkowski)
- Preserve original file permissions and ownership when writing
- Made Canon DustRemovalData writable
- Changed some Pentax WhiteBalance strings for consistency
- Patched potential security problem when writing values
- Fixed bug extracting unsynchronized ID3v2.4 information

Apr. 9, 2010 - Version 8.17

- Added a new Sony ExposureMode (thanks Michael Reitinger)
- Decode Casio DriveMode (thanks Robert Chi)
- Decode CameraTemperature for more Canon EOS models (thanks Vesa Kivisto)
- Updated to the DICOM 2009 specification (Note: Changed some DICOM tag names)
- Improved conversions for XMP:LensInfo, EXIF:DNGLensInfo and Nikon:Lens
- Changed case of some Canon DriveMode strings
- Fixed divide-by-zero error when Geotagging from a track with only one point
- Fixed incorrect ImageHeight reported for top-to-bottom BMP images
- API Changes:
  - Fixed a problem passing options to Image::ExifTool::TagInfoXML::Write()

Mar. 31, 2010 - Version 8.16

- Preserve Mac OS resource fork when writing (OS X only)
- Added a number of new Nikon LensID's (thanks Robert Rottmerhusen)
- Decode a couple more Mac OS resources
- Decode Olympus LensModel tag (thanks Martin Hilbers)
- Extract PrintIMVersion tag from PrintIM information
- Separate extraction of Leica FrameSelector information from LensType tag
- Recognize Bitstream PFA/PFB font files
- Patched ActivePerl 5.10 bug which could cause Perl crash during Geotag tests
- Fixed another Geotag test that fails due to round-off errors on some systems

Mar. 18, 2010 - Version 8.15 (production release)

- Added read support for Macintosh resource files:
  - Generate ResourceForkSize tag if data exists in a file's resource fork
  - Enhanced -ee option to process resource fork as a sub-document
- Added a new PentaxModelID (Optio I-10)
- Decode Panasonic DMC-ZS7 landmark tags
- Fixed decoding of Pentax Optio 555 PictureMode and added a number of new values (thanks Ralf Medow)

Mar. 16, 2010 - Version 8.14

- Added some new Canon AFMode values for the EOS 7D (thanks Dieter Steiner) and renamed tag to AFAreaMode
- Decode ColorData and some new MOV tags for the production Canon EOS 550D
- Decode Panasonic IntelligentResolution tag
- Allow times with timezones in GPX track logs
- Improved handling of maker notes in Olympus MP4 videos
- Changed H264 GPS tags to the GPS group
- Fixed date/time format error in reverse geotagging GPX example
- Fixed problem introduced in version 8.09 where XMP:GPSLatitude/GPSLongitude require the -a option to be extracted
- API Changes:
  - Fixed bug where some options (Charset, Escape, Exclude and Lang) weren't activated properly when set via options hash in calls to some functions
  - Fixed some potential problems when used with mod_perl

Mar. 5, 2010 - Version 8.13

- Added read/write support for Samsung SRW images and decode some NX10 maker note tags (thanks Tae-Sun Park)
- Added new values for some Sony tags (thanks Michael Reitinger)
- Added a new Canon LensType
- Decode maker notes in Nikon Coolpix S8000 MOV videos
- Decode a number of obscure TIFF FX tags
- Implemented list-type behaviour for MWG:Creator tag
- More improvements to German translations (thanks Herbert Kauer)
- Changed name of NikonPreview group to PreviewIFD
- Fixed problem which prevented ThumbnailImage from being written to ARW, SR2 and PEF images

Feb. 26, 2010 - Version 8.12

- Added a number of missing ProgramMode values for the Sony DSLR-A330
- Added XMP-iptcCore:DigitalSourceType (IPTC Extension version 1.1)
- Added a couple more Nikon LensID's (thanks Jens Kriese and Robert Rottmerhusen)
- Improved German language tag descriptions (thanks Herbert Kauer)
- Improved identification of some RAW file types
- Moved MPF PreviewImage into the Composite group
- Fixed some problems in HtmlDump output
- Fixed problem copying makernotes as a block into DNGAdobeData

Feb. 20, 2010 - Version 8.11

- Added support for Leica S2 maker notes
- Added a bunch of new CanonModelID's
- Decode MacroMagnification for more Canon models (MP-E 65mm only)
- Decode a number of Canon CameraInfo tags for the 1DmkIV and 550D
- Updated CanonCustom tags for the 550D
- Improved parsing of Canon OriginalDecisionData
- Improved decoding of Canon CameraInfo LensType
- Improved decoding of some Sigma tags
- Recognize a number of new Paint Shop Pro file extensions
- Prevent a directory from being recreated in the wrong location when deleting a group and adding back information in the same step
- Changed -fileOrder option to sort numbers numerically
- Fixed bug in -fileOrder option when directory names are specified
- Fixed problem extracting information from some Panasonic AVCHD videos
- Fixed some minor compatibility problems with Perl 5.11
- Fixed problem which could result in runtime error when using MWG feature
- Fixed an inconsistency in the way duplicate tags were handled in the grouped JSON (-j -g) and short XML (-X -s) output formats

Feb. 8, 2010 - Version 8.10 (production release)

- Added read/write support for Photoshop PSB file format
- Added -fileOrder option to provide control over file processing order
- Added a few new Sony/Minolta LensTypes (thanks Marcin Krol)
- Added more Nikon LensID's (thanks Robert Rottmerhusen)
- Decode metadata from all frames in AVCHD H.264 video with -ee option
- Decode more H.264 tags and improved decoding of others
- Improved decoding of some Olympus E-P1 tags
- Improved handling of some types of unknown maker notes
- Enhanced -p option to support output file headers and footers, and to parse embedded documents as separate input files when combined with -ee
- Relaxed validation of PFM files to accommodate incorrect device type string written by FontForge software
- API Changes:
  - Enhanced GetFileType() to return descriptions for more file types

Jan. 29, 2010 - Version 8.09

- Added a number of new Nikon LensID's (thanks Robert Rottmerhusen)
- Decode GPS position and some camera settings from AVCHD (.M2TS) video
- Decode a few new PhotoMechanic tags
- Decode MacroMagnification for the Canon MP-E 65mm f/2.8 1-5x Macro Photo lens in EOS 5DmkII and 40D images
- Delete multiple Photoshop segments in JPEG images when deleting all Photoshop information and adding some back in one step
- Print warning message in Windows when there are no matching files to process
- Changed print conversion for PSP CreatorAppVersion
- Fixed problem rewriting NikonCapture information written by NX2

Jan. 25, 2010 - Version 8.08

- Added read support for Paint Shop Pro images (PSP and PSPIMAGE)
- Added ability to decode a number of new character sets including JIS, and completely overhauled character encoding routines
- Fixed problem reading old OS/2-format BMP images

Jan. 19, 2010 - Version 8.07

- Added read support for a number of font file formats (OTF, TTF, TTC, PFA, PFB, PFM, DFONT, AFM, ACFM and AMFM)
- Added (experimental) read support for FLA files
- Added a few new Sony LensType's (thanks Sander Stols)
- Added a new Canon LensType (thanks Mark Berger)
- Set BigTIFF MIME type to "image/x-tiff-big" (unofficial)
- Fixed bug in GPS time drift correction when dates are specified for both GPS and image times
- Fixed problem reading some IGC GPS logs

Jan. 12, 2010 - Version 8.06

- Added a few new CanonModelID's
- Fixed a bug introduced in 8.05 which broke rewriting of XMP in MWG mode

Jan. 10, 2010 - Version 8.05 - "Strict MWG"

- Improved MWG conformance by ignoring non-standard EXIF, IPTC and XMP when the MWG module is loaded
- CurrentIPTCDigest tag is now only generated for IPTC in the standard location (as specified by the MWG recommendation)
- Added support for 3rd party trailers on ARW images
- Changed names of Sony IDC date/time tags and decode the last unknown IDC tag
- Fixed "-TAG-= -TAG=VALUE" syntax to work with shiftable (date/time) tags and tags with conversions
- Fixed incorrect tag format when writing some PhotoMechanic tags
- Fixed problem where some tags couldn't be written in Olympus ORF images

Jan. 7, 2010 - Version 8.04 - "Write ARW"

- Added write support for Sony ARW and SR2 images (at long last!)
  - WARNING: Some Adobe utilities (Photoshop Camera Raw 5.6, DNG Converter 5.6, LightRoom 2.6) have a bug which causes the tone curve to be incorrect for edited ARW images from some Sony cameras (A500, A550, A700, A850, A900 and maybe others)
- Compatibility Notice: Embedded JPEG in ARW and SR2 images is now extracted as PreviewImage instead of JpgFromRaw
- Added read/write support for Sony IDC tags
- Added support for Leica X1 maker notes and decode a few tags
- Added support for DigiKam XMP schema
- Added a new Minolta/Sony LensType (thanks Jean-Michel Dubois)
- Decode Nikon D90 AFAreaModeSetting
- Decode Nikon NEFBitDepth (thanks Warren Hatch)
- Decode a few new Sony SRF, Casio AVI and MSOffice TIFF tags
- Enhanced Geosync tag to allow GPS time-drift correction
- Fixed Nikon D3 FlashSyncSpeed values (thanks Warren Hatch)

Dec. 19, 2009 - Version 8.03

- Added a new Nikon ExternalFlashFlags value (thanks Warren Hatch)
- Implemented -charset id3=CHARSET option in Windows version too (oops!)
- Improved heuristic for guessing EXIF "Unicode" string byte order
- Improved decoding of some obscure QuickTime tags
- Renamed Casio SelfTimer tag to ReleaseMode and added new values
- Fixed problem converting numerical M4P Genre values

Dec. 15, 2009 - Version 8.02

- Added MIME types for Apple iWork file formats
- Added bitmask to -v2 output for applicable tags
- Added a new Canon LensType and fixed an incorrect one (thanks Hugh Griffiths)
- Added a few new Ricoh Saturation values (written by GXR)
- Added ability to specify character set for ID3v1 information
- Added French translations for some Nikon tags (thanks Harry Nizard)
- Extract FilePermissions information
- Decode Nikon D90 custom settings
- Decode a few more Nikon tags and removed AutoBracketRelease (thanks Warren Hatch)
- Decode a few more GIF tags (and changed groups of some others)
- Decode some information from JPEG APP4 "SCALADO" segment
- Updated DICOM decoding to latest (2008) specification
- Enhanced -fast option to allow MakerNote information to be skipped
- Changed -v0 to enable output autoflushing for STDERR as well as STDOUT
- Improved decoding of some QuickTime tags (fixes M4P Genre problem)
- API Changes:
  - Added CharsetID3 option
  - Changed name of IPTCCharset option to CharsetIPTC (but IPTCCharset may still be used for backward compatibility)

Dec. 1, 2009 - Version 8.01

- Compatibility Notice: Extract full-sized preview from X3F images as JpgFromRaw instead of PreviewImage
- Added support for the new X3F version 2.3 files written by the Sigma DP2
- Added support for a few more XMP-acdsee tags
- Decode Nikon D3 custom settings (thanks Warren Hatch) and extrapolate to D3S, D3X and D300S
- Decode the few remaining Nikon D300 custom settings (thanks Stuart Solomon for providing sample images)
- Decode Nikon D5000 custom settings
- Decode Nikon FlashColorFilter tag (thanks Warren Hatch)
- Decode a few more PNG tags
- Created a new family 1 group for Nikon custom settings
- Improved write conversions for EXIF Contrast, Saturation and Sharpness
- Fixed problem with %f and %e when the source file has no extension
- Fixed problem decoding Nikon D3 flash group B and C intensities
- Fixed missing MIME type for XLT files

Nov. 20, 2009 - Version 8.00 (production release)

- Added read support for Apple iWork '09 files (Keynote, Pages and Numbers)
- Added ability to write Nikon SerialNumber and ShutterCount tags
- Added a few new Nikon LensID's and changed Tamron lens names to include model number (thanks Robert Rottmerhusen)
- Decode a number of new Nikon tags (thanks Warren Hatch for much of this)
- Decode a few new Sony tags and improved others (thanks Igal Milchtaich)
- Decode a few new Ricoh tags, renamed RicohDateTime1/2, Revision and MakerNoteVersion tags, and added some print conversions
- Decode Parallax in FujiFilm MPO MPImage2 images (thanks John Goodman)
- Decode Canon EOS 1D Mark IV custom functions
- Decode a number of new tags in MPEG-4 videos
- Decode a large number of private GE DICOM tags
- Decode a few more tags in AVI videos and attempt to fix problem calculating duration when multiple video streams exist
- Enhanced -ee option to extract information from embedded MPF images
- Improved Nikon LensID conversion to recognize user-defined lenses
- Improved decoding of a few Olympus tags (ArtFilter, FaceDetect and FocusProcess)
- Improved handling of warnings when processing corrupted ZIP files
- Improved recognition of Canon teleconverters in Composite LensID tag
- Added patch for Leica M8 bug which writes incorrect format for EXIF ExposureCompensation and ShutterSpeedValue
- Changed prefix of unknown Leica M9 tags from LeicaSubdir to Leica_Subdir
- Fixed problem writing encrypted Nikon WB Levels
- Fixed problems reading PDF tags written by OS X 10.6 utilities
- Fixed problem where the -charset option didn't work properly for some XML character entities when reading XMP

Nov. 6, 2009 - Version 7.99

- Added read support for Office Open XML files and improved recognition of many MS Office file types
- Added read support for Phase One IIQ and Capture One COS and EIP files
- Added read support for GZIP information (first archived file only)
- Added a new Canon LensType (thanks Karsten Söte)
- Added a new Nikon LensID (thanks Geert De Soete)
- Decode a few new Sony tags
- Decode MakerNotes in Pentax AVI videos
- Decode SerialNumber for newer Pentax cameras
- Decode Canon FlashMeteringMode for most EOS models
- Disabled some Sony A230 CameraInfo tags which weren't valid for this model
- Give names to a number of unknown QuickTime atoms
- Recognize VOB file extension (but audio information in MPEG private stream is not yet decoded)
- Tolerate extra white space in GPX attributes when geotagging (fixes problem reading GlobalSat GPX files)
- Minor improvements to FlashPix decoding
- Changed names of all ZIP tags to avoid name conflicts with other tags
- Changed Composite ImageSize to use ExifImageWidth/Height for CR2 images
- Changed names of QuickTime image and video track description ImageWidth/Height tags to SourceImageWidth/Height
- Fixed problems when -if option was combined with -v or -htmlDump
- Fixed problem parsing NMEA track logs where coordinates have the wrong number of digits due to missing leading zeros (Holux M-241)
- Fixed an incorrect Pentax LensType

Oct. 28, 2009 - Version 7.98

- Implemented MWG support via a plug-in module ("-use MWG")
- Added -config and -use options
- Added ability to read Sony Vegas tags in AVI videos
- Added a couple of new Canon LensType's
- Added a new Panasonic ShootingMode (thanks Joerg)
- Added a new PentaxModelID (Optio P80)
- Added a new CanonModelID
- Added a few new Canon 1D Mark IV custom functions values
- Added warning for superfluous tag names on the command line when writing
- Decode a few more tags for the Canon EOS 5D and 7D
- Decode a number of new tags in Quicktime-based files (including MP4 and JP2)
- Impose length limit on IPTC values when writing as per spec. (for backward compatibility, the length check may be disabled with the -m option)
- Improved checks for invalid EXIF offsets and changed some warning messages
- Improved decoding for a few Canon tags (and renamed NoiseReduction tag)
- Improved date/time formatting to accept date-only values
- Implemented print conversion for ID3 date/time tags
- Enhanced writing of Photoshop:IPTCDigest to allow a special value of 'old' to represent the digest of the IPTC from the original file
- Updated iptc2xmp.args and xmp2iptc.args to handle IPTC DigitalCreationDate/Time
- Recognize a number of Sigma LensType's in X3F images
- Recognize a large number of additional audio/video file extensions
- Minor improvements to -htmldump output
- Minor changes to some application warning messages
- Fixed problem writing Canon CameraTemperature tags
- Fixed "Error reading Info object" warning when reading a PDF file after deleting all PDF tags
- API Changes:
  - Added ability to specify config file via $Image::ExifTool::configFile
  - Added EditGroup option for SetNewValue()

Oct. 13, 2009 - Version 7.97

- Added ability to disable print conversion on a per-tag basis by suffixing the tag name with a '#' character
- Added a new PentaxModelID (Optio WS80)
- Decode a few more Sony tags
- Decode a number of new Casio tags and values
- Decode CameraTemperature for Canon PowerShot models (thanks Vesa Kivisto)
- Improved warning messages for the -ext option
- Improved DOF calculation to use ObjectDistance if SubjectDistance and FocusDistance are not available
- Improved -X output to support more of the new -charset encodings
- Made Composite:FileNumber writable
- Use more detailed makernote directory names in EXIF warning messages
- Decreased priority of tags in IFD1 of JPEG images to avoid taking precedence over tags from IFD0 or ExifIFD
- Changed print conversion strings for TIFF SampleFormat tag
- Renamed Casio ObjectDistance tag to FocusDistance
- Fixed invalid character in a Minolta/Sony LensType string
- Fixed bug decoding NITFVersion tag
- Fixed bug where binary data was returned without the -b option when using an expression involving tag names for some tags such as ThumbnailImage
- Fixed two problems which could result in runtime warnings when:
  - reading truncated ICC_Profile information
  - using -htmldump on an image containing invalid EXIF offsets
- API Changes:
  - Added ability to disable print conversion by suffixing tag name with '#'
  - Changed name of BigTIFF 'ifd8' format to 'ifd64' for consistency

Oct. 2, 2009 - Version 7.96

- Added new Geosync tag to allow geotagging of images with timestamps which are not pre-synchronized to GPS time
- Added patch to avoid crash bug in Canon DPP software when OwnerName is set to a value that is exactly 3 characters long (doh!)
- Added a few new Olympus LensType's (thanks Godfrey DiGiorgi)
- Added a couple more Nikon LensID's (thanks Robert Rottmerhusen)
- Added minor warning when fixing invalid counts in Kodak MakerNotes
- Decode a few new tags and values for the Panasonic GF1
- Improved parsing of command-line arguments to remove order dependencies of certain options
- Minor improvement to decoding of Olympus FaceDetect tag
- Changed "Error reading PreviewImage from file" to a minor warning
- Changed conversion of Canon MeasuredEV to correspond more closely to LightValue (by adding 5 to the MeasuredEV value, which seems to be good for all EOS models, but it may be high by up to 1 EV for some PowerShot models)
- Fixed problems decoding some CameraInfo tags for the Canon 7D with the new production firmware (1.0.7)
- Fixed problems writing some CameraInfo tags for the Canon 50D and 5DmkII

Sept. 24, 2009 - Version 7.95

- Added read support for LNK (Windows shortcut) file metadata
- Added patch to fix incorrect count written by a number of recent Kodak cameras to some tags in SubIFD3 of the MakerNotes
- Added a few more Sony/Minolta LensType's
- Added a couple more Canon LensType's (thanks Norbert Wasser)
- Added a PentaxModelID for the new K-x
- Decode a couple more Canon VignettingCorr tags
- Improved Canon FocusDistance conversions to indicate "inf" for maximum value
- Improved DOF calculation to use SubjectDistance if FocusDistance is not available
- Changed -fast, -scanForXMP and -unknown options to also apply when copying tags with -tagsFromFile

Sept. 11, 2009 - Version 7.94

- Added support for Leica M9 makernote format and decode a few new tags
- Added a few new Leica LensType's
- Added support for IGC GPS track logs (thanks Lionel Genet)
- Added a number of alternate Macintosh character sets and changed a couple of character set names for -charset option
- Decode even more Sony A100 tags (thanks Igal Milchtaich!)
- Improved handling of FlashPix character translations
- Changed a couple of Sony and Minolta AF tag names to be more consistent

Sept. 5, 2009 - Version 7.93

- Added a new CanonModelID
- Added a couple of new Nikon LensType's (thanks Robert Rottmerhusen)
- Added a few new Pentax LensType's
- Decode a number of new tags for the Canon EOS 7D
- Calculate Duration for WAV audio files
- Allow exponents when writing GPS coordinates (eg. "-gpslatitude=7.657e+01")
- Print available character sets if no CHARSET is given for -charset option
- Improved -v3 and -htmldump output to show MPF image data
- Fixed -E option to work with tag descriptions when -lang option used
- Fixed problem reading large FlashPix-format documents
- API Changes:
  - Added LargeFileSupport option

Aug. 29, 2009 - Version 7.92

- Fixed new "-charset iptc=CHARSET" feature to work with -tagsFromFile

Aug. 29, 2009 - Version 7.91

- Added -charset option and support for additional Windows and Mac character sets. Character sets now supported are: UTF-8, Latin1, Latin2, Cyrillic, Greek, Turkish, Hebrew, Arabic, Baltic, Vietnam, Thai and MacRoman
- Fixed problem with some duplicate Nikon LensID's
- Fixed incorrect Duration calculation for multi-channel FLAC audio files
- Compatibility Notice: Removed "CreatorContactInfo" shortcuts which were added to ease the transition when some Iptc4xmpCore tag names were changed in version 7.45
- API Changes:
  - Added IPTCCharset option and support for additional character sets

Aug. 24, 2009 - Version 7.90

- Added -ex (-escapeXML) option
- Added a few more Minolta M42-type lenses (thanks Lukasz Stelmach)
- Added a number of new CanonModelID's
- Decode more Sony A100 tags (thanks Igal Milchtaich)
- Decode a few more Kodak WhiteBalance tags
- Decode a couple more JPEG APP segments
- Internal changes to Composite tag calculation algorithm
- Patched problem with renaming files on OS/2 that caused failed tests

Aug. 18, 2009 - Version 7.89 (production release)

- IMPORTANT: Not quite done with NRW fixes -- fixed similar bug which could corrupt NRW images when writing new values larger than 10 MB

Aug. 17, 2009 - Version 7.88 (production release)

- IMPORTANT: Fixed bug introduced in version 7.77 which causes Nikon NRW images to be corrupted when writing
- Decode a number of Sony A100 Camera Settings tags (thanks Igal Milchtaich)
- Improved accuracy of some CameraInfo values for Canon PowerShot models
- Tolerate blank lines in PDF xref tables
- Fixed problem where -E didn't escape values when copying with -tagsFromFile
- Fixed bug identifying AF Micro-Nikkor 105mm f/2.8D lens

Aug. 14, 2009 - Version 7.87

- Added a new Sony lens (thanks Lukasz Stelmach)
- Added a few new Pentax City and PictureMode values (thanks Niels Kristian Bech Jensen)
- Added lookup for XMP-photoshop:Urgency
- Added a few new Nikon RetouchHistory values
- Decode a number of new Sony tags for the A700 (thanks Rüdiger Lange)
- Decode Canon PeripheralLighting tags
- Decode Olympus AFFineTuneAdj (thanks Yrjo Rauste)
- Extract System tags from unknown file types
- Enhanced -E option to work when writing, and when used in combination with other options such as -p
- Tolerate white space around "=" in XMP attributes (allowed by XML spec)
- Improved error handling when parsing bad EXIF IFD entries
- API Changes:
  - Added Escape option

July 25, 2009 - Version 7.86

- Added support for reading Garmin TCX track logs with the -geotag option
- Added a number of new Canon, Olympus and Pentax LensType's
- Enabled writing of .AI (Adobe Illustrator) files
- Minor changes to DICOM decoding

July 21, 2009 - Version 7.85

- Added a new Sony LensType
- Added a new Pentax LensType (thanks Albert Bogner)
- Added a new PentaxModelID value (Optio W80)
- Added a few new JPEGDigest values (thanks Franz Buchinger)
- Added check for proper support of IFD-format value types
- Decode Nikon D300 firmware 1.10 camera settings (thanks Stuart Solomon)
- Improved handling of Olympus makernotes for recent models and fixed error messages resulting from makernote format changes in Stylus 550WP images
- Improved geotagging by allowing different NMEA sentences with slightly different timestamps (within 10 seconds) in the same fix
- Fixed decoding of some CameraSettings tags for the new Sony A330 and A380
- API Changes:
  - Added GeoMinSats option

July 16, 2009 - Version 7.84 (Windows only)

- Fixed bug in -geotag option of Windows version when using wildcards in the GPS track filename

July 13, 2009 - Version 7.83

- Added preliminary read support for M2TS/AVCHD video files (much pain for little gain)
- Added family 4 group names (instance number) to provide a technique for differentiating same-named tags extracted from the same location via the command-line application
- Added a new family 1 group ("System") to differentiate tags obtained from the file system
- Added a couple of new Canon LensType values
- Decode ID3 Picture attributes
- Decode ICC_Profile ColorantTableOut
- Changed application to return a value of 1 if all files fail condition
- Made the IPTC CodedCharacterSet tag "unsafe" to copy by default (since this could result in incorrect encoding for existing IPTC in the destination image)
- Fixed bug handing some non-standard offset formats when writing EXIF
- Fixed problem with MakerNote warnings for Samsung WB500
- Fixed problem reading Leica M8 makernotes when copied between JPEG and DNG images
- Fixed problem extracting ThumbnailImage from Sanyo VPC-FH1 MP4 videos
- Fixed problem extracting ThumbnailImage from some Sony DSLR-A100 ARW images (due to a bug in some A100 firmware versions which results in incorrect ThumbnailOffset values)

July 2, 2009 - Version 7.82 (production release)

- Added a new Canon LensType (thanks Norbert Wasser)
- Decode another Nikon AVI tag
- A number of improvements, bug fixes and additions to ID3 decoding

June 28, 2009 - Version 7.81

- Added a few missing print conversions to Nikon, Kyocera and FlashPix date/time tags

June 26, 2009 - Version 7.80

- IMPORTANT: Fixed bug introduced in 7.77 which had the potential to corrupt TIFF-format images when writing to an image containing a SubIFD tag larger than 10 MB (not that I've ever seen one of these in the wild)
- Added support for DNG version 1.3
- Decode makernotes in Nikon AVI videos
- Decode QuickTime MatrixStructure tag and added Composite Rotation tag to calculate the rotation of the QuickTime video track
- Updated CanonCustom tags for the EOS 500D
- The -fast option now stops parsing of WAV and AVI files at audio/video data
- API Changes:
  - Improved handling of $/ by localizing internally

June 20, 2009 - Version 7.79

- Added read/write support for Adobe InDesign files (.IND, .INDD, .INDT)
- Added ability to geotag with KML files (Note: each Placemark must contain a TimeStamp for this to work)
- Added undocumented XMP-xmp PagInfo tags written by Adobe InDesign
- Added conversion for MPF:PanOrientation
- Many improvements and additions to Olympus and Panasonic makernote decoding
- Improved logic of -scanForXMP option
- Recognize MPO file extension (Extended Multi-Picture format)
- Distinguish between infinite (inf) and undefined (undef) rational values
- Changed namespace prefixes for xapG and xapGImg to match current XMP spec
- Changed print conversion for Casio AFPointPosition
- Made "Error reading value" warning minor when reading makernotes values
- Allow all tags to be deleted from an XMP file
- Fixed group names for a few Panasonic and Sony makernote tags

June 13, 2009 - Version 7.78

- Added read support for the new CIPA standards: Multi Picture Format (MPF) and Stereo Still Image format (Stim)
- Added support for Kodak type 10 makernotes (Z980)
- Added a new Pentax LensType and a new Nikon LensID (thanks Jens Duttke)
- Added %C format code for output file names
- Decode a number of camera settings from Sony DSLR images

June 7, 2009 - Version 7.77

- Added -struct option for JSON (-j) and XML (-X) outputs
- Added 2 new Pentax LensType's and a PentaxModelID (thanks Jens Duttke)
- Decode large preview in APP2 of images from newer Samsung models
- Extract FujiFilm PreviewImage from improperly written FPXR segment
- Improved decoding of Nikon WB levels for some models
- Reduced memory usage when writing DNG and some other RAW image files
- Changed format of Canon D30 SerialNumber to remove the hyphen and add leading 0's if less than 9 characters (now same format as printed on camera)
- Changed writing of GPSTimeStamp and GPSDateStamp to adjust date/time to UTC if it contains a timezone, and added timezone ("Z") to Composite:GPSDateTime
- Suppress "Unlisted FPXR segment (index 255)" warning from some Kodak images
- Suppress "Unrecognized MakerNotes" warning for Samsung STMN-type maker notes
- Made "Unrecognized MakerNotes" a minor warning
- Fixed problems reading/writing large PreviewImage in some Sony JPEG images
- Fixed problem decoding some base64 values in XML files
- API Changes:
  - Added Struct option (considered experimental)

May 20, 2009 - Version 7.76

- Added support for Leica RWL raw images (just RW2 with a different name -- Panasonic is pulling the same dumb stunt as Nikon with NRW)
- Added ability to specify geotagging parameters via config file
- Added two new Canon LensType's (thanks Jose Oliver-Didier)
- Added a couple more Panasonic FilmMode values
- Added bitmapped value lookups to -listx output
- Decode Panasonic face recognition information (DMC-TZ7)
- Decode some new FujiFilm face detection tags
- Implemented language translations for bitmapped values
- Enhanced -geotag option to allow wildcards in track file name
- Minor changes to Nikon AF point decoding
- Allow empty string when writing unknown values (ie. "Unknown ()")
- Pad numerical IPTC values with zeros if necessary when writing
- Fixed problem with -geotag feature interpolating in some NMEA logs
- API Changes:
  - Added GeoMaxHDOP, GeoMaxPDOP, GeoMaxIntSecs and GeoMaxExtSecs options

May 9, 2009 - Version 7.75

- Added a few new translations (thanks Jens Duttke et al)
- Added warning when stream mode data is encountered in a ZIP file (this is currently not supported)
- Added a couple of new Nikon ActiveD-Lighting values (thanks Werner Kober)
- Added and changed some Nikon LensID's (thanks Robert Rottmerhusen)
- Added ability to specify user-defined option defaults in config file
- Added write support for FujiFilm S5Pro firmware 1.11 RAF images
- Decode AF point information for more Nikon models (thanks Werner Kober)
- Improvements to new geotagging feature
- Changed language code for simplified Chinese from "zh_s" to "zh_cn"
- Changed user-defined shortcuts to Image::ExifTool::UserDefined::Shortcuts
- Limit PrintConv precision of Composite GPSAltitude to 1 decimal place
- API Changes:
  - Changed WriteInfo() to use a temporary file instead of a memory buffer when a source file name is given with no destination file
  - Attempt (yet again) to fix problems when UTF-8 encoded strings are passed to exiftool functions

Apr. 10, 2009 - Version 7.74

- Added geotagging feature and new -geotag option (guess who finally bought a hand-held GPS!)
- Added a few new Casio RecordMode values
- Decode FujiFilm EXRAuto and EXRMode tags (FinePix F200EXR)
- Decode Olympus ArtFilter tag
- Allow EXIF ISO to have multiple values as per EXIF spec
- Improved XMP-exif and XMP-tiff list-type tags to allow copying from EXIF
- Changed handling of ComponentsConfiguration to facilitate copying between EXIF and XMP
- Changed name of EXIF tag 0x9214 from SubjectLocation to SubjectArea to match EXIF specification
- Changed behaviour when writing pre-existing EXIF tags to use the standard EXIF field type instead of preserving the existing type (fixes problem rewriting some incorrectly typed EXIF tags)
- Fixed error if a shift value is not given when shifting a date/time tag
- Fixed makernote offsets error message when writing Pentax Optio WP images
- API Changes:
  - Added EditOnly option to SetNewValue()

Mar. 31, 2009 - Version 7.73

- Added write support for Panasonic RW2 images (including IPTC and XMP)
- Added ability to write IPTC and XMP to Panasonic/Leica RAW images and fixed bug introduced in version 7.64 which disabled write support for these images
- Added a new Canon EasyMode value (thanks Irwin Poche)
- Added a number of new Nikon LensID's (thanks Robert Rottmerhusen)
- Added CanonModelID for the new 500D
- Decode many CameraInfo and ColorData tags for the Canon EOS 500D
- Decode track-level 'meta' atom in MOV videos
- Enhanced Canon Composite:ShootingMode logic to distinguish Bulb mode
- Improved decoding of Canon TargetExposureTime
- Changed name of Panasonic RW2 PreviewImage to JpgFromRaw
- Fixed bug where JPEGDigest wasn't generated for some images
- Fixed problem where -F didn't permanently fix makernote offsets for some images when writing
- Fixed bug decoding Canon RawMeasuredRGGB and MeasuredRGGBData which resulted in a failed test on 64-bit systems

Mar. 20, 2009 - Version 7.72

- Added a new Minolta/Sony LensType (thanks Jens Duttke)
- Added support for localized language descriptions of "lang-alt" tags
- Added support for Nikon NRW files (please just kill me now)
- Added two new PentaxModelID's and a new PentaxImageSize
- Decode Pentax PEF HuffmanTable as Unknown Binary tag
- Decode Leaf and Kodak records in DNGAdobeData information
- Made "Empty PrintIM data" a minor warning
- Minor improvement to Canon lens recognition logic
- Changed Composite:LensID to also return a value for Olympus lenses
- Changed copying behaviour to preserve the specific location (family 1 group) when source group is specified and destination group is "all" or "*" (eg. "-exif:all>all:all" now preserves the IFD of each tag)
- Fixed a number of incorrect Minolta/Sony lens names (thanks Olaf Ulrich)
- Fixed bug rewriting MIE trailers on TIFF images

Mar. 12, 2009 - Version 7.71

- Added a new Pentax LensType (thanks Akos Szalkai)
- Added a new Canon LensType (thanks Kurt Garloff)
- Added new PentaxModelID for the Optio P70
- Added XMP list-type flag (Alt, Bag or Seq) to "-f -listx" output
- Decode a number of new Canon tags (thanks Vesa Kivisto)
- Removed unreliable Canon Composite FlashOn tag (use Flash instead)
- Removed Nikon FlashModel tag and replaced it with ExternalFlashFirmware
- Changed tags in Canon "ColorBalance" tables to signed integer and renamed the tables to "ColorData"
- Changed formatting for Canon FocalUnits
- Changes to -X output:
  - Now uses 'rdf:datatype' instead of 'et:encoding' (thanks Alexander Vonk)
  - Improved long (-l) output to produce valid RDF/XML, and added 'et:val'
- Improved handling of unknown XMP lang-alt tags
- Fixed family 2 group names for a few tags

Feb. 26, 2009 - Version 7.70

- Added a few new Nikon LensID's (thanks Robert Rottmerhusen)
- Added a number of new CanonModelID's
- Added ability to use -f before -listx to output 'flags' attribute
- Added xml:lang attribute to -X output (when used with -t, -H or -D) to identify alternate language entries for XMP lang-alt tags
- Decode Canon ImageUniqueID and added a new EasyMode value
- Created "unsafe" shortcut used when rebuilding JPEG EXIF metadata from scratch
- Changed Olympus lens "pre-release" designation to "release 1"
- Changed exiftool to continue after encountering "Error opening directory"
- Enhanced makernote-offset-fix logic to account for problems like those caused by bugs in Picasa and ACDSee
- API Changes:
  - Enhanced GetTagID() to also return language code in list context

Feb. 17, 2009 - Version 7.69

- Added a new Nikon LensID (thanks Jens Kriese)
- Added a new Pentax LensType (thanks Jens Duttke)
- Added Extra JPEGDigest tag
- Recognize new Panasonic APP2 MPF information written by FX40
- Improved -@ option to allow a UTF-8 BOM at the start of the input file
- Augmented -listx output to include indexed value conversions
- Changed Japanese and Chinese language codes to 'ja' and 'zh' (ISO 639-1)
- Fixed a few problems with some CanonCustom tags

Feb. 13, 2009 - Version 7.68

- Added French translations for XMP and Composite tags (thanks Jean Piquemal)
- Decode Panasonic AdvancedSceneMode, added a few more SceneMode values, and fixed incorrect format for TextStamp
- Decode a missing Canon 1DmkII custom function
- Changed Czech language code to 'cs' (as per ISO 639-1)
- Relaxed XMP date/time validation to allow writing year-only and year-month values (YYYY and YYYY:MM) without requiring the -n option
- More work on language translations (this will be ongoing)
- Fixed problem shifting XMP date/time values with missing seconds
- Fixed some family 1 group names in -listx output

Feb. 9, 2009 - Version 7.67 (production release)

- IMPORTANT: Fixed bug introduced in version 7.01 which could cause corruption of TIFF-format images in very rare situations when adding tags to an image containing very large (> 10 MB) binary data blocks

Feb. 7, 2009 - Version 7.66

- Improved language support
- Changed conversion for a couple of the EXIF Flash values
- Removed trailing white space from Make and Model values
- Removed null terminators that may be left on some string values
- Fixed problem with family 1 group names for QuickTime Date tags
- Fixed problem with invalid names being generated for some unknown tags
- Fixed decoding of ASF PreviewMimeType and PreviewDescription
- Fixed formatting problems with -j output when combined with some options

Feb. 5, 2009 - Version 7.65

- Added -j option for JSON (JavaScript Object Notation) output format
- Improved French language translation for File group (thanks Jean Piquemal)
- Enhanced -listx option to give short output when used after -s
- Renamed "tagid" attribute to "id" in -X output to match -listx output
- Fixed bug introduced in 7.64 which resulted in runtime warning when extracting non-existent tags with the -f option
- Fixed problem which could cause runtime error with -listx option on some systems

Feb. 3, 2009 - Version 7.64 - "Babel fish"

- Added -listx and -lang options
- Added preliminary support for the following languages (thanks Jens!):
  - en [default]
  - ch_s (thanks Haibing Zhong) [renamed 'zh_cn' in 7.75]
  - cz (thanks Petr Michálek) [renamed 'cs' in 7.68]
  - de (thanks Jens Duttke)
  - en_ca (for those of us who like to see "colour" spelled properly)
  - en_gb (correct "colour" plus a few other quirks)
  - es (thanks Santiago del Brío González)
  - fr (thanks Bernard Guillotin)
  - it (thanks Emilio Dati)
  - jp (thanks Kazunari Nishina) [renamed 'ja' in 7.69]
  - nl (thanks Peter Moonen and Herman Beld)
  - pl (thanks Przemyslaw Sulek)
- Added support for new XMP Windows Live Photo Gallery tags
- Decode two new Panasonic tags and improved decoding of some others
- Decode a few new 3rd party EXIF and IPTC tags
- Enhanced -X output by adding -t feature for tag table information
- Improved decoding of Photoshop ClippingPathName and remove Unknown flag
- Renamed Panasonic EXIF "Title" tag to "PanasonicTitle" and improved decoding
- Fixed problem which could cause crash if reading corrupted images on Windows
- Fixed inconsistencies rewriting XMP which uses extra rdf:Description elements instead of rdf:parseType='Resource' attribute
- Fixed decoding of Nikon D40 RemoteOnDuration
- API Changes:
  - Added Lang option

Jan. 23, 2009 - Version 7.63

- Added new Composite tags: SubSecCreateDate and SubSecModifyDate
- Decode Sony DSLR WB_RGBLevels tags (thanks Andrey Tverdokhleb)
- Decode a few more NikonScan tags (thanks Brendt Wohlberg)
- Included new argument files in distribution: xmp2exif.args and exif2xmp.args
- Improved decoding of PentaxModelID for K-m and K2000
- Minor change to decoding of Canon 1DmkIII ISOSpeedRange
- Downgrade "MRW format error" to a warning when reading ARW images containing MRW information that has been corrupted by the Sony IDC utility
- Renamed Kodak SubSecTime tag to Time
- Changed Composite DateTimeCreated tag to use only IPTC tags
- Changed name of Sony/Minolta MRW WBLevels tag to reflect ordering of color components
- Fixed problems recognizing some MP3 files

Jan. 16, 2009 - Version 7.62

- Decode a number of new tags for recent Canon EOS models
- Decode ID3v2.3 Compilation tag (written by iTunes)
- Added a number of new ID3 genre's and improved ID3v2 genre conversion
- Avoid converting MIE ISO 8859-1 string values
- Enhanced XML output (-X) to work with binary data (-b) option and encode values in base64 if necessary
- Fixed problem with invalid UTF-8 when writing XMP or using -X (XML) option

Jan. 10, 2009 - Version 7.61

- Added a new Pentax LensType and a new PentaxModelID (thanks Denis Bourez)
- Added ability to copy makernotes from Pentax or Samsung native DNG image
- Decode makernotes in Samsung GX model DNG images
- Decode CameraTemperature for Canon EOS cameras with Live View (thanks Karl-Heinz Klotz)
- Decode a number of Canon 5DmkII CameraInfo tags
- Included 2 new argument files in distribution: xmp2gps.args and gps2xmp.args
- Prevent writing of TIFF images containing the obsolete (and unsupported) TIFF 6.0 JPEG extensions
- Fixed bug which could result in runtime warning when writing makernotes as a block

Jan. 6, 2009 - Version 7.60 (production release)

- Decode a few more Nikon D700 FlashInfo tags (thanks Jens Duttke)
- Defined (empty) XMP-pdfx tag table, mainly for documentation purposes
- Fixed problem where the behaviour of -tagsFromFile changed to that of -addTagsFromFile if the first specified tag was an exclusion
- Fixed XMP writer to allow a namespace to be deleted after a mass copy
- Fixed bug introduced in 7.58 which could cause hang when using -tagsFromFile

Dec. 23, 2008 - Version 7.59

- Removed file size limit when setting tag value from contents of a file

Dec. 22, 2008 - Version 7.58

- Added new Canon, Nikon and Olympus lenses (thanks Jan Boelsma and Geert De Soete)
- Added write support for FujiFilm S5000 Ver3.00 and S9500 Ver1.01 RAF images
- Extract RAFVersion tag from FujiFilm RAF images
- Decode ColorBalance information for PowerShot G10
- Decode Sharpness for Canon EOS 50D
- More improvements to Canon 50D and 5DmkII makernote decoding
- Attempt to identify unknown Nikon lenses which exist in LensID list with a different LensIDNumber (to patch Sigma lens renumbering debacle)
- Removed limit of 1000 items in an XMP list-type tag when writing
- Increased maximum size of file from 16MB to 100MB when setting tag value from the contents of a file
- Improved performance when extracting a large number of same-named tags
- Fixed bug which resulted in "segment too large" error message when rewriting multi-segment XMP if XMP was edited but nothing was actually changed

Dec. 11, 2008 - Version 7.57

- Added read support for Panasonic RW2 raw images (and extract meta information from embedded PreviewImage as Doc1)
- Added new Pentax K-m PictureModes and new PentaxModelID for the Optio S12
- Decode ColorBalance information for Canon 50D and 5DmkII
- Decode Panasonic RAW/RW2 information from DNG images
- Decode Canon SRAWQuality tag
- Recognize DCP (DNG Camera Profile) files
- Updated Canon CustomFunctions for the EOS 5D Mark II
- Changed name of "OtherImage" tags to "JpgFromRaw" in IFD0 of SR2 and ARW images, and to "ThumbnailImage" in IFD0 of MRW images
- Changed EXIF DeviceSettingDescription and ProfileLookTableData to binary data tags
- Fixed problem reading/writing ThumbnailImage in Minolta A200 MRW images
- Fixed ColorBalance2 tags for AsShot and Auto modes of Canon 1DmkII/1DSmkII

Dec. 2, 2008 - Version 7.56

- Decode CompressorVersion from Canon 5D Mark II videos
- Fixed family 1 group classifications for tags in QuickTime video tracks
- Fixed problem with new -sep feature when separator contained spaces

Dec. 2, 2008 - Version 7.55

- Added a number of new CanonVRD tags for DPP 3.4/3.5 (thanks Bogdan)
- Added a new FocusMode for the Pentax K-m
- Added a new Nikon LensID (thanks Niels Kristian)
- Decode some tags from Kodak C1013 maker notes (type 9)
- Enhanced -sep option to allow list-type tag values to be split when writing
- API Changes:
  - Added ListSplit option

Nov. 26, 2008 - Version 7.54

- Added a few old XMP-crs tags that were missed
- Show numerator and denominator for rational EXIF values in verbose mode
- Changed htmldump tooltip font
- Fixed bugs in HTML reader that could cause runtime error or hang

Nov. 19, 2008 - Version 7.53

- Added read/write support for EXIF files
- Added ability to write EXIF as a block (finally!)
- Added ability to write CanonVRD information to MIE files
- Added timezone to "Now" tag value
- Added a new CanonModelID (FS100)
- Added write support for ACDSee XMP tags (XMP-acdsee:RPP)
- Added a few new XMP-cc tags
- Decode CameraOrientation for a number of Canon EOS models (thanks Bogdan)
- Allow XMP to be copied as a block with -tagsFromFile option
- Highlight odd value offsets in -htmldump output
- Improved htmldump tooltip display
- Minor improvements to MIE reader
- API Changes:
  - The full XMP block is now extracted with the Binary option, so the XMP block is marked as "unsafe" and the Protected flag must be set (as with other writable blocks) when calling SetNewValue()

Nov. 4, 2008 - Version 7.52

- Added ability to extract AI private data from PDF files
- Added extract embedded option (-ee, -extractEmbedded)
- Added new group family 3 and ability to specify multiple group names for a single tag when extracting information
- Added a new Sony lens and decode two new Sony tags (thanks Jens Duttke)
- Added a few new Nikon LensID's (thanks Robert Rottmerhusen)
- Added a new Olympus LensType (thanks Michael Meissner)
- Decode a few new Nikon tags (thanks Jens Duttke)
- Enhanced command line parsing to allow long names for most options
- Improved verbose output when writing makernotes
- Allow writing of empty string values in EXIF information
- Fixed problem rewriting XMP lists that contained no entries
- Fixed bug writing JpgFromRaw and ThumbnailImage to CRW files that could make the image unreadable by Canon utilities (affected images may be repaired by rewriting the same tag with this version of exiftool)
- Fixed bug where some Canon MakerNote values could not be written
- Fixed bug introduced in version 7.49 that broke the use of wildcards in filenames for the Windows version
- API Changes:
  - Enhanced a number of functions to accept multiple group names separated by colons

Oct. 27, 2008 - Version 7.51 (production release)

- Fixed problems which caused failed test or warning with Perl 5.6 or older (does do not affect Mac or Windows versions)
- Fixed Windows application so help is displayed when run with no options

Oct. 26, 2008 - Version 7.50 (production release) "XMP 2008"

- Added a number of new XMP tags from new XMP specification released Oct. 17
- Added support for extended XMP segment in JPEG images (as per new XMP spec)
- Added a number of new Minolta/Sony lenses (thanks Jens Duttke)
- Added a new Canon LensType (thanks Andreas Huggel and Pascal de Bruijn)
- Added new PRISM 2.1 XMP tags
- Added ability to read/write x:xmptk attribute (via XMP-x:XMPToolkit tag)
- Added ability to specify user-defined Lenses
- Decode XMP in ASF (WMA/WMV), FLV, SWF and MP4 audio and video files
- Preserve byte order of EXIF information when copying to MIE file
- Allow byte order for newly created MIE files to be set by ExifByteOrder tag (and API ByteOrder option)
- Allow backslashes in filenames on non-Windows-like systems
- Removed 's' from XMP-xmp:Thumbnails tag names and set Avoid flag for XMP-xmp:ThumbnailImage
- Fixed definitions of some XMP-xmpDM tags
- Fixed some PDF reader bugs (thanks Leonhard Zachl for one patch)
- API Changes:
  - Added ExtractEmbedded option

Oct. 16, 2008 - Version 7.49

- Added new PentaxModelID for K-m/K2000 plus a new LensID used by K-m
- Added --a option and made -a the default behaviour for the -X option
- Added ability to read/write XMP-rdf:about attribute
- Added new "Resource" flag which may be set in user-defined XMP tags to write a value as an rdf:resource instead of a normal string
- Allow decimal (real) values to be written to XMP-xmp:Rating (contrary to current XMP specification, but as per MWG recommendation)
- Fixed file renaming bug in Windows that caused the file to be moved into the current directory instead of leaving it in the original directory when the source file was specified using backslashes as directory separators

Oct. 14, 2008 - Version 7.48

- Added support for XMP PRISM 2.0 schema tags
- Added two more ZIP compression types
- Added conversions for XMP-plus date tags
- Changed conversion of all Digest tags to make the -n value readable
- Changed some error handling to avoid generating console warnings

Oct. 11, 2008 - Version 7.47 - "Jumbo"

- Added -X option to output extracted information in XML format
- Added -listwf option to list extensions of writable files
- Added a number of new Nikon and Pentax LensTypes (thanks Robert Rottmerhusen, Jens Duttke and Bozi)
- Decode Canon 1000D custom functions
- Decode a number of new tags written by Nikon Capture NX 2
- Decode many FlashInfo tags for the Nikon D90 and D700
- Implemented character set translation for MIE information (-L option)
- Improved speed when scanning unknown file to determine FileType
- Fixed bug where some writable EXIF tags gave a "not writable" message when reading tag value from a dynamic file (eg. "-TAG<=%f.txt")
- Fixed problem double-escaping characters when -h and -S were used together
- Fixed decoding of Nikon FlashModel for SU-800 Remote Commander
- Fixed swapped Nikon FlashGroupBControlMode/FlashGroupCControlMode tags
- Fixed bug reading PDF files that could cause "Argument isn't numeric in subtraction" warning (note that writing PDF files with this problem could cause format errors which may be fixed by reverting with "-pdf-update:all=")
- API Changes:
  - Fixed CanWrite() to be consistent with documentation

Oct. 2, 2008 - Version 7.46

- Fixed bug which could cause a runtime warning when writing images in a directory containing an unrecognized file type
- Fixed an IPTC-XMP test that failed in other time zones (this was a test problem, not an exiftool bug)

Oct. 1, 2008 - Version 7.45

- Added support for new XMP IPTC Extension 1.0 tags (rev 2)
- Added a few more TIFF Compression values (for MDI files)
- Decode a few new Nikon Flash tags
- Decode Canon 50D custom functions
- Calculate CurrentIPTCDigest tag (if Digest::MD5 is available)
- Renamed Photoshop CaptionDigest tag back to IPTCDigest again
- Avoid touching IPTC data block when only Photoshop information is changed
- Allow IPTCDigest to be set to the special value of 'new', representing the new IPTC digest of the output file
- Updated iptc2xmp.args and xmp2iptc.args to write IPTCDigest as per MWG recommendation
- Allow zone-less date/time values in XMP (as per MWG and upcoming XMP spec)
- Allow brackets in $$ and $/ expressions (eg. ${$} and ${/} now work)
- Changed decoding of EXIF:Copyright to allow two separate strings as per spec
- Changed a number of XMP Iptc4xmpCore tag names and added a corresponding set of aliases (shortcuts) for backward compatibility
- Changed some XMP xmpTPg tag names
- Fixed problem extracting lists from other information types in MIE files

Sept. 26, 2008 - Version 7.44

- Added read support for DjVu images
- Added two new Sony LensType's (thanks Mladen Sever)
- Added a new Pentax LensType (thanks Jens Duttke)
- Decode a few new Canon 450D and 1000D tags (thanks Bogdan)

Sept. 17, 2008 - Version 7.43

- Added two new Pentax LensTypes (thanks Jens Duttke and Anton Bondar)
- Added PentaxModelID's for the Optio E60 and M60
- Added a number of new CanonModelID's
- Extract XMP from MOV and AVI videos (as written by Adobe CS3 Bridge)
- Decode information from QuickTime HintInfo atoms (hinf and hnti)
- Decode Canon 50D/5DmkII AutoLightingOptimizer
- Enable writing of ThumbnailImage in CR2 images
- Avoid extracting invalid Canon FocusDistance tags
- Improved handling of timezones in date/time values (fixes failed EXE test)

Sept. 11, 2008 - Version 7.42

- Added read support for Windows, MacOS and Unix executable and library files
- Added read support for ZIP and RWZ (Rawzor) compressed files
- Added a number of new XMP tags written by PS Elements 4.0 (thanks Drew Holland) and LightRoom 2.0
- Added new Sony, Canon and Nikon LensTypes (thanks Jens Duttke and Werner Kober)
- Decode a few new Canon CameraInfo tags for the 40D, 50D, 450D and 1000D (thanks D.J. Cristi)
- Decode Nikon D90 LensData
- Define version number etc. in properties of exiftool Windows executable
- Improved handling of corrupted makernote offsets when writing
- Fixed problem where FileType could be incorrect for a TIFF-based file with the wrong extension

Aug. 28, 2008 - Version 7.41

- Added new Composite LensID tag and changed a number of LensType values in an attempt to disambiguate Canon, Pentax, Minolta and Sony 3rd party lenses
- Added -sep option to specify separator for values in list-type tags
- Added a new Nikon LensID (thanks Jens Duttke)
- Added CanonModelID values for new models (SX110, A1000, A2000, E1, 50D)
- Decode some CameraInfo tags of the Canon EOS 450D and 1000D (thanks Bogdan)
- Decode a few new tags in Kodak MOV videos
- Updated CanonVRD decoding for version 3.40 (DPP 3.4.1, thanks Bogdan)
- Allow writable EXIF properties to be overridden by user-defined tags
- Relaxed PDF parsing to allow xref tables with zero entries
- Renamed Sigma LensID tag to LensType
- Changed PDF update structure to better conform with PDF specification
- Changed conversion of Olympus ManometerReading values
- Reverted back to Perl 5.8 for Windows EXE version (fixes problem running exiftool.exe using a non-standard TEMP directory)
- Patched DST problem in Windows when "Automatically adjust clock for daylight savings time" is used in Windows Date and Time settings
- Fixed problems in the QuickTime parser that could cause exiftool to hang
- Fixed bug which could cause an error to be reported when writing a DNG image containing ProfileIFD information
- API Changes:
  - Added ListSep option

Aug. 17, 2008 - Version 7.40

- Fixed -p option in Windows executable version (caused by packaging problem with Perl 5.10 release)

July 30, 2008 - Version 7.39

- Added a number of new Canon LensType values (thanks Rich Taylor)
- Added a new Pentax LensType (thanks Jens Duttke)
- Added a new Sony LensType (thanks Mladen Sever)
- Added support for writing invalid IFD entries used by some Kodak Z cameras
- Updated Canon CustomFunctions for EOS 450D
- Made a few more DNG tags writable
- Renamed CIFF TvValue and AvValue tags to ShutterSpeedValue and ApertureValue and added conversions (to seconds and F-number) as with EXIF tags

July 18, 2008 - Version 7.38

- Same as version 7.37 except that Windows executable is packaged with Perl 5.10.0 instead of 5.8.7 -- this fixes a problem with FileModifyDate and DST

July 16, 2008 - Version 7.37

- Added -addTagsFromFile option (variant of -tagsFromFile which allows copying multiple tags into the values of a single list-type tag)
- Added a new Sony LensID (thanks Jens Duttke)
- Added PentaxModelID for the Optio W60
- Added a couple of new YCbCrSubSampling values (thanks Jens Duttke) and made values consistent across different types of meta information
- Decoded Canon Categories tag (thanks Darryl Zurn)
- Reduced priority of XMP-xmp date/time tags so the EXIF tags are preferred
- Fixed problem where time may be duplicated in Composite:DateTimeCreated
- API Changes:
  - Added ability to pass options to SetNewValuesFromFile

July 8, 2008 - Version 7.36

- Added a new Nikon LensID (thanks Jens Duttke)
- Fixed bug introduced in 7.33 where a SubIFD error was erroneously reported when writing an already edited NEF image

July 6, 2008 - Version 7.35

- Added two new Nikon LensIDs (thanks Geert De Soete and Jens Duttke)
- Added XMP-pdf:Trapped tag
- Added Composite:GPSAltitude tag (like Composite:GPSLatitude/GPSLongitude)
- Added a couple of new PentaxModelID values
- Decode Canon 450D Sharpness tag (thanks Bogdan)
- Decode Nikon D300 AFAreaMode and AutoFocus tags (thanks Jens Duttke)
- Extract Pentax SaturationInfo as an Unknown tag (thanks Dave Nicholson)
- Renamed Canon LensType string tag (ID 0x0095) to LensModel
- Changed JFIFVersion print conversion to match the formatting used in the JFIF specification
- Fixed a Minolta LensID entry for Tamron lenses
- Fixed problem excluding XMP family 1 groups from deletion in some file types

June 28, 2008 - Version 7.34

- Added names for a few more of the Unknown Photoshop tags
- Added support for XMP files with leading XML comments
- Added support for older XMP "x:xapmeta", and XMP without "x:xmpmeta" element
- Changed priority of XMP:Source tags when writing so XMP-photoshop:Source is now preferred over XMP-dc:Source
- Renamed Photoshop IPTCDigest to CaptionDigest and removed Unknown status
- Improved parsing of IPTC time values when writing, and assume the local timezone (if available) instead of UTC when a timezone is not specified
- Improved handling of lists that exist in multiple groups in the same file
- Disabled shifting of list-type date/time tags (allows += to add list items)
- Reduced priority of XMP-exif and XMP-tiff tags so these values don't override more reliable EXIF and TIFF tags when extracting information without specifying a group
- Fixed quirk where exiftool could add an extra padding byte to the makernotes
- Fixed incorrect tag ID that prevented ImageStabilization from being decoded in Sony DSLR-A100 images (thanks Ger Vermeulen)
- Fixed problem where error/warning messages could be duplicated for subsequent files when copying tags from multiple files

June 21, 2008 - Version 7.33

- WARNING: Older ExifTool versions will not properly rewrite DNG 1.2 images which contain multiple color profiles
- Added DNGVersion check to avoid future problems with major DNG revisions
- Added support for new DNG version 1.2.0.0 tags
- Added support for XMP PLUS License Data Format 1.2.0 tags
- Added a new Pentax LensType (thanks Peter)
- Added a new Canon LensType
- Added support for user-defined XMP structures
- Decode a few new Sony tags (thanks Marcus Holland-Moritz)
- Decode Nikon Capture NX 2 NikonICCProfile information (thanks Jens Duttke)
- Extract MP3 VBR and ID3Size tags
- Improved accuracy of MP3 Duration calculation (account for VBR and ID3Size)

June 12, 2008 - Version 7.32

- Added a new Pentax LensType (thanks yeryry)
- Decode ColorBalance information for Canon 450D and 1000D
- Fixed names of a few NikonCapture D-LightingHQ tags (thanks Jens Duttke)
- Fixed bug where a list-type tag was not created when simultaneously adding and deleting values from the list

June 10, 2008 - Version 7.31

- Added proper support for special characters in PDF text strings
- Added support for a number of new XMP tags written by Adobe Lightroom 1.4
- Added ability to write XMP-xmp:ThumbnailsImage
- Added Photoshop IPTCDigest tag
- Added two new Nikon LensID's (thanks Jens Duttke)
- Added a new Pentax LensType (thanks Bogdan)
- Added a new CanonModelID for the EOS 1000D
- Decode a few new Pentax tags (thanks Dave Nicholson)
- Increased precision of GPS coordinates when copying with -tagsFromFile
- Fixed problem which could result in "Argument isn't numeric" runtime warning when attempting to write an Unknown value to a bitmapped tag

May 31, 2008 - Version 7.30 (production release)

- Adjusted MakerNote error checks to be a compromise between 7.28 and 7.29
- Fixed various htmlDump problems
- Fixed bug which could cause runtime warnings when attempting to write certain types of unsupported images

May 28, 2008 - Version 7.29

- Renamed Pentax ModelRevision tag to ProductionCode and improved print conversion to indicate if camera has been serviced
- Added check to prevent EXIF tags from being written to JPEG images if they would obviously exceed the maximum JPEG segment size limit
- Relaxed error checks when writing JPEG images to allow MakerNotes to be rebuilt if the MakerNote IFD is not contained within the MakerNotes data
- Fixed decoding of Pentax ExternalFlashGuideNumber when AF360 is used with the wide angle panel
- Fixed unnecessary "Multiple new values for IFD0 tag 0x927c" warning which could occur when copying MakerNotes from some images

May 26, 2008 - Version 7.28

- Added new Canon CustomFunctions values from the EOS 1DmkIII firmware update, and a new CanonExposureMode value (thanks David Pitcher)
- Added a new Olympus LensType (thanks Виктор Лушников)
- Decode Pentax ExternalFlashBounce tag (thanks Cvetan Ivanov)
- Renamed Pentax ExternalFlashZoom tag to ExternalFlashGuideNumber and improved decoding (thanks Cvetan Ivanov)
- Fixed bug which could prevent maker notes from being copied when copying all tags from a file containing a PreviewImage
- Fixed problems decoding some Sony ARW images
- Fixed problem writing some makernote values in sub-IFD's
- Fixed "APP1 segment too large" problem where PreviewImage was not dropped as it should have been when copying all tags from some RAW images

May 24, 2008 - Version 7.27 - "GIF+XMP"

- Added ability to read/write XMP in GIF images
- Added ability to write to GIF87a images (by upgrading them to GIF89a)
- Added GIFVersion tag
- Improved decoding of Canon 1DmkIII/1DSmkIII TimeStamp tags
- Changed print conversion of EXIF/XMP GPSStatus tags to make more sense
- Fixed bug introduced in version 7.22 that could cause exiftool to abort with an "'x' outside string" error when processing some DNG images
- API Changes:
  - Extract FileSize information from images passed as a scalar reference

May 21, 2008 - Version 7.26

- Added write support for FujiFilm FinePix S5 Pro V1.04 RAF images
- Added support for new Kodak TIFF-format maker notes used by the Z1085
- Added new Pentax and Nikon LensType's (thanks Jens Duttke, Dave Nicholson and Robert Rottmerhusen)
- Added some new Minolta LensID's (thanks Thomas Käßner)
- Added new CanonModelID's and a 1DmkIII TimeStamp (thanks Ger Vermeulen)
- Decode a number of new Pentax K10D tags (thanks Dave Nicholson)
- Decode Panasonic Title tag (thanks Jens Duttke)
- Recognize a few more uncommon top-level QuickTime atoms
- Changed decoding of some Olympus tags for new E-520
- Changed warning when empty PrintIM data is encountered (eg. as written in Sony A700 ARW files when Adobe RGB color mode is used)
- Dropped Canon PreviewFocalPlaneX/YResolution tags since they never really existed (thanks Ger Vermeulen for pointing out the Canon bug which lead to this false assumption)
- Fixed duplicate tag problem with Pentax LensData when -U option used
- Fixed bug which could cause a runtime warning when copying Nikon maker notes
- Fixed bug in exiftool application which could cause all tags to be copied instead of just the specified tags when creating an output XMP or MIE file and using the -tagsFromFile option

Apr. 18, 2008 - Version 7.25 (production release)

- Added read support for DIVX video files
- Added a new Nikon LensID (thanks Tanel Kuusk)
- Decode a number of new Pentax K10D tags and values (thanks Dave Nicholson)
- Decode a few new Nikon tags (thanks Jens Duttke)
- Decode Nikon VignetteControl tag found in D3 images with new 1.10 firmware (thanks Alexandre Naaman)
- Improved formatting of video duration times
- Improved print conversion for video Compression values
- Apply print conversion for XMP:FocalLengthIn35mmFormat to add "mm"
- Fixed MIME type of JPEG 2000 images
- Fixed problem decoding new Nikon D300 AFPrioritySelection tags
- API Changes:
  - Fixed CanWrite so it returns false for non-writable TIFF-based files

Apr. 10, 2008 - Version 7.24

- Added read support for SVG (Scalable Vector Graphics) images
- Added support for non-standard Apple iPhone PNG images
- Added support for ISL maker note format
- Added a couple of new Olympus LensType's
- Added a few new Nikon LensID's (thanks Robert Rottmerhusen)
- Added values for various Sony tags (thanks Jens Duttke)
- Decode Nikon D300 custom settings (thanks Jens Duttke)
- Decode Nikon D300 AFFineTuneAdj (thanks Neil Nappe)
- Decode a number of new Pentax tags and values (thanks Jens Duttke)
- Decode a number of new QuickTime tags, including 'mdta' information
- Decode a missing Custom Function for Canon 450D
- Avoid extracting any unknown tag in binary data tables when -u option used
- Avoid writing Canon 1D/1DS RAW images masquerading as TIF (writing 1D RAW images is not yet supported)
- Improved parsing of AFCP ThumbnailImage and PreviewImage
- Downgraded errors in the NikonScan and NikonPreview IFD's to allow writing of images with these problems without requiring the -m option

Mar. 27, 2008 - Version 7.23

- Decode a number of new Pentax K20D/K200D tags and values
- Fixed bug introduced in 7.18 which caused "Error parsing XMP" warning when deleting all XMP and writing new XMP tags in the same step

Mar. 25, 2008 - Version 7.22

- Added support for Olympus-style Sony makernotes (DSC-S45/500/650/700/750)
- Added %c 'n' modifier to number output files from 1 instead of 0
- Added Extra "Now" tag used for setting a tag value to the current date/time
- Added a new Nikon LensID (thanks Jens Duttke)
- Added ability to specify byte order for EXIF Unicode text and fixed problem where text wasn't always written in EXIF byte order by default
- Added a new Canon LensType (thanks Hal Williamson)
- Added a few new CanonModelID values
- Decode a new Pentax K20D tag and add a few new values to other tags (thanks Jens Duttke)
- Recognize non-standard Nikon ICC Profile files
- Improved error checking when writing a JPEG image with a bad IFD
- Fixed bug where IFD0 could be deleted when writing JPEG with a bad IFD1
- Fixed some Olympus LensType names for Leica lenses
- Fixed problem extracting some writable directories as a block
- Fixed bug which could cause "Not an ARRAY" error when reading PDF files

Mar. 12, 2008 - Version 7.21 (production release)

- Added support for Leica M8 maker notes (in both DNG and JPEG images)
- Added ability to write encrypted Nikon makernote information (!!)
- Added a new Olympus Leica lens (thanks Chris Shaw)
- Decode a couple of new Canon 40D and 1DmkIII tags (thanks Chris Huebsch)
- Decode Adobe RAF data in DNG images
- Decode a few new Nikon D3 and D300 tags (thanks Jens Duttke)
- Calculate VideoFrameRate for QuickTime MOV videos
- Marked DNG OriginalRawFileName and OriginalRawFileData as "unsafe" to copy
- Changed decoding of Casio BestShotMode
- Renamed Nikon NEFCurve tags (thanks Jens Duttke)
- Patched problem parsing OriginalDecisionData for the Canon EOS 5D

Mar. 7, 2008 - Version 7.20

- Added a few new Minolta LensID's
- Added two more TIFF-IT tags to the EXIF table
- Added a number of new RIFF and ASF Audio Encoding values
- Added a new new values for some Canon tags (thanks Dave Nicholson)
- Decode a number of new Pentax K10D tags (thanks Dave Nicholson)
- Decode a number of new MP4/QuickTime tags
- Decode makernotes in Casio, Kodak, Minolta, Olympus and Ricoh AVI and MOV videos
- Improved decoding of Casio maker notes and decode a few new tags (thanks Jens Duttke)
- Removed incorrect CanonD30 ColorTemperature and ColorMatrix tags
- Fixed Location translation in iptc2xmp.args and xmp2iptc.args
- Fixed problem decoding some Nikon tags in images edited by Capture NX
- Fixed decoding of InternalSerialNumber for Canon 5D
- Fixed decoding of Nikon D3 color balance information
- Fixed decoding of Minolta 7D FocusMode (thanks Jens Duttke)

Feb. 25, 2008 - Version 7.19

- Added a new Pentax LensType and some new Panasonic NoiseReduction values (thanks Jens Duttke)
- Decode Nikon D40 and D40X custom settings plus a couple of other tags
- Decode a couple of new Pentax K10D tags (thanks Dave Nicholson)
- Improved reliability of Canon FocalPlaneXSize and FocalPlaneYSize tags
- Recognize HP Type2 maker notes in images from other makes
- Write TIFF ApplicationNotes in 'int8u' format as per XMP specification
- Made TIFF ApplicationNotes writable as a block
- Changed HtmlDump to show actual IFD format if different than read format
- Changed some MeteringMode strings to be more consistent
- Fixed problem adding back JFIF information after deleting JFIF group

Feb. 21, 2008 - Version 7.18

- Added ability to exclude XMP family 1 groups from deletion
- Added patch to recognize new Ricoh R50 maker notes
- Added a new Minolta LensID (thanks Jens Duttke)
- Decode AFPointsUsed for Nikon D3 and D300 (thanks Jens Duttke)
- Decode a couple of new Pentax K10D tags (thanks Dave Nicholson)
- Improved decoding of Nikon FlashInfo tags (thanks Jens Duttke)
- Renamed Olympus FlashExposureCompensation tag to FlashExposureComp
- Patched problem with Perl 5.10.x which broke conversion of UTF8 strings
- Fixed problem where an ExposureTime of 1 second was ignored in CRW images
- Fixed problem where special characters were not handled properly when using the -L option while copying IPTC tags
- Fixed bug which could cause a runtime error when attempting to write JFIF information after deleting JFIF:all in the same step

Feb. 16, 2008 - Version 7.17

- Extract duplicate tags when -p option is used
- Fixed bug introduced in 7.00 which broke the use of group family numbers and groups ending with a digit in tag format strings (eg. "$IFD0:Model")

Feb. 14, 2008 - Version 7.16

- Added a couple of new Pentax LensTypes (thanks Jens Duttke)
- Added a few more EXIF:Compression values
- Decode color balance levels in Leaf MOS images
- Decode a number of new tags from JPEG, TIFF, KDC and DCR images of older Kodak models
- Improved decoding of TIFF SampleFormat tag
- Made a number of DNG tags "unsafe" so they aren't copied by default
- Allow JPEG EXIF segment to be deleted and a new EXIF segment to be created with a different byte order in a single command
- Attempted to improve reliability of ScaleFactor35efl calculation for newer Canon models
- Fixed a couple more places where we still needed a space before "mm"
- Fixed problem with LightValue calculation which caused failed tests for Perl 5.6.2 on Darwin

Feb. 5, 2008 - Version 7.15 (production release)

- Added a few new CanonModelID's and PentaxModelID's
- Added support for new Pentax K20D/K200D values for some tags
- Added a few new Nikon LensID's (thanks Robert Rottmerhusen)
- Decode a few new Sigma tags, including PreviewImage
- Decode a few more tags in Canon CRW images (thanks Dave Nicholson)
- Improved Sony ARW parsing (fix some problems and extract more tags)
- Improved handling of timezone when writing EXIF and XMP information (the timezone is now added to XMP date/time values and removed from EXIF date/time values if necessary unless the -n option is used)
- Recognize a few more FLV AudioEncoding and VideoEncoding values
- Allow "pseudo" tags to be copied from unrecognized file types
- Made FileModifyDate an "unsafe" tag so it isn't copied unless specified
- Changed all "sec" units to "s" with a leading space for consistency
- Fixed bug introduced in version 6.91 that could prevent some XMP date/time tags from being written when copying with "-all:all"

Jan. 25, 2008 - Version 7.14

- Added read support for Kodak KDC raw images
- Added ability to read/write Canon OriginalDecisionData in JPEG, CR2 and DNG images
- Added ValueConv translations for some of the new Nikon PictureControl tags
- Decode a number of new Nikon tags (thanks Jens Duttke and Gregor Dorlars)
- Decode Canon CR2Segmentation tag
- Decode a new Canon CustomFunction of the EOS 450D
- Improved handling of mandatory tags in EXIF information
- Changed all FocalLength print conversions to add a space before "mm"
- Renamed Canon Self-timer tags to SelfTimer for consistency
- Fixed some problem with -htmlDump for some types of trailer information
- Fixed problem which could give a runtime warning when attempting to delete a permanent tag

Jan. 17, 2008 - Version 7.13

- Decode a couple more Nikon and Sony tags
- Decode Windows HD Photo "Padding" tag
- Recognize HDP (Windows HD Photo) file extension
- Designated EXIF CompressedBitsPerPixel and ComponentsConfiguration as "unsafe" tags so they aren't copied by -tagsFromFile by default
- Changed priority of new Nikon D3/D300 ISO tag
- Changed Canon LensType for a Tamron lens (thanks Monica Wallek)
- Fixed incorrect TagID for new Panasonic Sharpness tag

Jan. 15, 2008 - Version 7.12

- Added read support for ITC (iTunes Cover Flow) files
- Added ability to deal with corrupted IPTC written by Nikon Capture NX
- Added a few new Canon LensType's (thanks Steve Balcombe)
- Decode a number of new Nikon D3/D300 tags (thanks Gregor Dorlars)
- Decode a number of new FujiFilm and Panasonic tags and values
- Decode ColorBalance information for the Canon 40D, 1DmkIII and 1DSmkIII
- Improved decoding of Nikon D80 VibrationReduction tag (thanks Jens Duttke)
- Renamed Pentax WBShiftBA and WBShiftGM tags to WBShiftAB and WBShiftMG (now more consistent with Pentax software, but inconsistent with Canon naming)
- Fixed a CanonImageHeight tag which was incorrectly named CanonImageWidth

Jan. 10, 2008 - Version 7.11

- Decode a number of new Canon tags and improved decoding of many old tags
- Renamed EXIF:RelatedImageLength to RelatedImageHeight (hopefully all ImageWidth/Height tag names are now consistent)

Jan. 7, 2008 - Version 7.10

- Added support for escape sequences and continuation comments in EPS files
- Added ability to read/write Sony A700 PreviewImage (tag 0x2001)
- Added a new Sony ColorMode value (thanks Philippe Devaux)
- Decode a number of new Minolta tags
- Improved handling of newlines when writing PDF information
- Improved decoding of Canon 40D and 1DmkIII FocusDistance tags (thanks Wolfgang Hoffmann)
- Fixed problem creating multiple output meta files with some commands
- Fixed problem deleting XMP by value for strings with escaped characters
- Fixed bug when trying to write output image to console with "-o -"
- Fixed problem where %c (copy number) was changed when the new file name should have been the same as the source file

Jan. 3, 2008 - Version 7.09

- Decode Canon ThumbnailImageValidArea
- Improved decoding of some Olympus tags (thanks Frank Ledwon)
- Improved decoding of some Pentax tags (thanks Dave Nicholson)
- Improved error messages when writing PDF files
- Changed XMP-cc namespace URI (spec apparently changed for some reason)
- Changed Photoshop XMLData to a binary data tag
- Changed conversion strings for Canon ModifiedSharpnessFrequency values
- Changed Olympus NoiseReduction "ISO Boost" value back to "Noise Filter (ISO Boost)"
- Fixed minor problem writing PDF cross-reference stream after multiple edits
- Fixed problem redirecting some verbose output to an output text file

Dec. 21, 2007 - Version 7.08

- Added write support for PDF files which use only cross-reference streams
- Added a number of new Olympus tags, and changed names of some existing tags
- Fixed problem decoding some PDF cross-reference streams
- Fixed bug introduced in 7.07 which broke copying between two list-type tags

Dec. 18, 2007 - Version 7.07

- Added ability to write XMP and PDF information to PDF files, with revert capability! (use "-PDF-update:all=" to undo all exiftool edits)
- Added PDF:AppleKeywords tag (written by Apple Preview)
- Added Composite FOV (Field Of View) tag
- Added a few more Minolta/Sony LensID's
- Added new Canon and Pentax LensType's (thanks Magne Nilsen and Jens Duttke)
- Added "Nothing changed" message in verbose mode for files that weren't changed when writing
- Added minor warning when invalid IFD entries are removed during writing (you will get this, for instance, when ExifTool fixes the entry count problem in Canon EOS 40D firmware 1.0.4 maker notes)
- Patched Canon 40D firmware 1.0.4 problem for JPEG images too
- Decode specified "unknown" zero values for four EXIF tags (ExposureProgram, LightSource, MeteringMode and SubjectDistanceRange) instead of handling as a truly unknown value (if this makes sense)
- Extract PreviewImage from newer Panasonic RAW images (thanks Jens Duttke)
- Recognize Pentax-type Kodak maker notes (eg. Easyshare 883)
- Made "Entries out of sequence" a minor warning since this problem is fixed
- Allow decimal seconds to be written in time values without needing to use -n
- Improved parsing of PDF files
- Improved behaviour when copying list-type tags to to non-List tags
- Improved exiftool summary message for files that were copied without changes
- Adjusted Pentax K10D battery percentage calibration
- Changed names of Pentax FirmwareID tags
- Fixed runtime warning that could occur with some invalid tag names
- Fixed problem decoding Pentax:LensCodes for some images (thanks Jens Duttke)
- API Changes:
  - Also allow File::RandomAccess reference as argument to ImageInfo()

Dec. 7, 2007 - Version 7.06

- Permanently fix MakerNote offsets with -F option when writing
- A few more Pentax tag improvements (thanks Dave and Jens)

Dec. 6, 2007 - Version 7.05

- Patched problem rewriting Canon 40D CR2 images caused by bug in the 40D firmware 1.0.4 which writes an improperly formatted MakerNote IFD
- More improvements in decoding Pentax K10D tags (thanks Dave Nicholson)
- Translate non-standard XMP namespace prefixes
- Changed a couple of Kodak Meta tags to Binary data type
- Renamed Pentax MeasuredLV to EffectiveLV (thanks Jens Duttke)

Dec. 3, 2007 - Version 7.04

- COMPATIBILITY WARNING: Renamed EXIF:ExifImageLength to ExifImageHeight and XMP:GPSTimeStamp to GPSDateTime
- Added write support Minolta A200 MRW images
- Added read support for Hasselblad 3FR raw images
- Added a few new Nikon LensID's (thanks Robert Rottmerhusen)
- Added a new Canon LensType (thanks Bogdan)
- Added ability to insert a newline using "$/" in a print format string
- Decode some new FujiFilm and Pentax tags (thanks Jens Duttke)
- Decode some new Pentax and Canon tags (thanks Dave Nicholson)
- Recognize a few new Olympus lenses (thanks Michael Meissner)
- Improved decoding of Sony ARW images and added support for A700
- Improved warnings for HtmlDump option
- Improved string parsing when writing date/time tags
- Fixed problem extracting Canon CRW RGGB values from DNG images

Nov. 17, 2007 - Version 7.03

- Fixed problem deleting XMP family 1 groups from JPEG images

Nov. 16, 2007 - Version 7.02

- Added ability to delete XMP family 1 groups (eg. "-XMP-crss:all=")
- Fixed problem writing XMP as a block to XMP file

Nov. 15, 2007 - Version 7.01

- Added ability to write FujiFilm RAF images (thanks Jens Duttke)
- Added -T option (equivalent to -t -S -q -f)
- Decode a number of new Pentax tags and values (thanks Dave Nicholson)
- Decode a new Canon LensType value (thanks Bogdan)
- Decode the not-so-accurate FocusDistanceUpper and FocusDistanceLower in Canon EOS 1DmkIII and 40D images (thanks Heiko Hinrichs)
- Allow FileSource tag to be assigned values outside the EXIF standard
- Made ImageSourceData a protected tag
- Avoid loading huge binary data blocks into memory unless necessary (avoids out-of-memory problem when processing huge, layered Photoshop TIFF images)
- Improved HtmlDump speed and memory usage by not loading "snipped" data
- Improved decoding of Nikon ShootingMode
- Various improvements and bug fixes when reading FujiFilm RAF information
- Fixed problem decoding CRW images where ImageWidth wasn't extracted with -U

Oct. 23, 2007 - Version 7.00 (production release)

- IMPORTANT: Fixed problem writing ORF images from newer Olympus cameras which could lead to errors when the image is opened by another utility (affected images may be repaired by rewriting with this version of ExifTool)
- Added -ScanForXMP option
- Added ability to extract ID3v2 PRIV tags (including XMP) and the ID3:MCDI tag (plus unknown ID3v2 tags with the -u option)
- Added new PentaxModelID's for Optio V10 and A40
- Added support for Casio-like and HP-like Pentax maker notes
- Added ICC_Profile WCSProfiles tag (thanks Jens Duttke)
- Added ability to write and create CanonVRD as a block
- Added ability to shift GPSTimeStamp tag
- Added ability to write DNG AsShotICCProfile and CurrentICCProfile tags
- Decode VRDOffset tag in Canon MakerNotes
- Shortcuts may now be used in redirections and expressions, and with group names
- Improved decoding of CanonVRD information (also decode new DPP 3.0 tags and fixed a problem which could give a "Possibly corrupt CanonVRD" warning)
- Improved decoding of FujiFilm RAF images, and extract JPEG Preview
- Improved handling of Pentax Casio-style maker notes
- Improved conversion for Pentax K10D AFPointsInFocus
- Enhanced Composite tag syntax to simplify user-defined tag definitions
- Changed decoding of Nikon VibrationReduction 0x0075 tag
- Changed a number of Pentax and Casio tags to improve consistency
- Dump unsupported files with -htmlDump only if -u option is used
- Fixed problem which could cause a virtual hang when writing large EPS files
- Fixed problem of misleading error messages when attempting to write unsupported file formats
- Fixed problem outputting list-type tags with -b option
- Fixed bug where the "image files created" count could miss some files
- Fixed problem where "Error rebuilding maker notes" warning could be issued in cases where the maker notes do not need rebuilding

Oct. 6, 2007 - Version 6.99

- Added support for IView MediaPro XMP tags
- Added ability to read multiple comments from GIF89a images
- Added some new PentaxModelID's (Optio L20, T20, Z10)
- Added minor warning for unknown JPEG APP segments when -u option is used
- Extract information from JPEG APP13 "Adobe_CM" segment
- Improved -htmlDump output to show TIFF image data and trailer (the TIFF dump is now complete)
- Improved decoding of Minolta WhiteBalance for some DiMAGE models
- Improved decoding of Panasonic FirmwareVersion when -n option is used
- Increased precision of 64-bit rational conversion from 7 to 10 digits
- Fixed problem which caused failed tests with Perl 5.005_05
- Fixed problem where some groups could not easily be excluded when deleting all other information (eg. "-all= --exif:all" now behaves as expected)
- Fixed problem decoding ICC Profile "dtim" format values
- Fixed typo in a Minolta FlashMetering value (thanks Jens Duttke)
- Fixed problem in API which could result in a UTF-8 encoded file not being properly identified if it was passed as a scalar reference to WriteInfo()

Sept. 23, 2007 - Version 6.98

- Added ExifByteOrder tag (writable to set byte order for new Exif segments)
- Added CanonModelID for new EOS-1Ds Mark III
- Added value conversions for Pentax AEFlashTv, AEXv and AEBXv tags
- Decode Pentax ShutterCount (with help from Jens Duttke)
- Decode Pentax AFPointsInFocus for newer DSLR models (thanks Jens Duttke)
- Improved decoding of a Pentax LensType (thanks Jens Duttke)
- Renamed Pentax AutoAFPoint to AFPointsInFocus and improved conversion
- Renamed Pentax AEDump to AEMeteringSegments and converted values to approximate LV equivalent units
- Fixed problem where some warnings were not being properly handled when attempting to write an invalid value to some tags

Sept. 14, 2007 - Version 6.97

- Added support for Canon EOS 40D Custom Functions
- Added ability to decode new Nikon D3 and D300 LensData
- Added a few new Nikon LensID's (thanks Robert Rottmerhusen)
- Decode Olympus NoiseFilter tag (thanks Ioannis Panagiotopoulos)
- Decode a few new Nikon ShotInfo tags (thanks Jens Duttke)
- Improved decoding of Canon AF point information
- Improved decoding of Nikon HighISONoiseReduction
- Renamed Nikon VRState to VibrationReduction
- Fixed typo which prevented some Olympus MakerNote tags from being written

Sept. 5, 2007 - Version 6.96

- Added ability to read/write XMP alternate languages
- Added ability to create new GPS information in Panasonic RAW images
- Added a few new PentaxModelID's (Optio E40, M40 and S10)
- Added a couple of new Pentax LensType's (thanks Jens Duttke)
- Added a new Olympus Sigma LensType (thanks Jens Duttke)
- Added EOS 40D CanonModelID and prepared for new 40D custom functions
- Decode a large number of new Canon tags
- Decode SerialNumber from previously unknown maker notes of some Kodak models
- Decode Olympus ImageStabilization tag (thanks Jens Birch)
- Improved decoding of Canon Self-timer and AFPoint values
- Improved decoding of some tags for high end Canon EOS models
- Renamed Pentax LensCoefficients to LensCodes and print 16 values
- Renamed Panasonic ImageStabilizer to ImageStabilization
- Renamed all AFPointsUsed tags to AFPointsInFocus
- Fixed decoding of ICC_Profile DeviceAttributes

Aug. 21, 2007 - Version 6.95

- Added support for new Kodak IFD-format makernotes used by the P712, P850, P880, Z612 and Z712
- Added a few new Nikon LensID's (thanks Robert Rottmerhusen)
- Added LensType's for 2 new Pentax DA* lenses (thanks Jens Duttke)
- Added 2 new FujiFilm S5 WhiteBalance values (thanks Paul Samuelson)
- Added a number of new CanonModelID's
- Extract TIFFPreview from DOS EPS images
- Decode a number of new Panasonic tags, and added a number of new SceneMode's
- Decode FujiFilm S5 ColorTemperature tag (thanks Paul Samuelson)
- Improved handling of unknown XMP list-type tags
- Suppress EPS 'unterminated Document data' warning
- Fixed decoding of ASCII-type Panasonic FirmwareVersion
- Fixed bug calculating leap years for years outside the range 1601-2399
- API Changes:
  - Changed WriteInfo() behaviour to be more consistent when editing file in place and a new FileName is specified (original file is now deleted)
  - Improved warning message when trying to write an 'unsafe' tag

July 26, 2007 - Version 6.94

- Added a few new XMP-crs tags
- Added ability to create a new Photoshop IRB record in TIFF-format images
- Added a few new EXIF:Compression values (thanks Jens Duttke)
- Added a number of new Panasonic/Leica tags, and changed the names of some Panasonic tags, including reverting FirmwareVersion (thanks Jens Duttke)
- Added test for Unknown (Bulb) Pentax ExposureTime value (thanks Jens Duttke)
- Added a new Nikon LensID (thanks Vladimir Sauta)
- Avoid extracting information from documents embedded in EPS images (this is temporary; eventually I want to figure out a way to allow this information to be extracted separately)
- Decode Red/BlueBalance from Leica Digilux 2 RAW images (thanks Jens Duttke)
- Changed conversion for Sony A100 Rotation tag to conform to EXIF:Rotation
- Changed decoding of one of the Pentax ExternalFlashBounce tags (thanks Michael Meissner)
- Extract EncodingProcess, BitsPerSample, ColorComponents and YCbCrSubSampling from JPEG SOF segment
- Show raw horizontal/vertical widths in the converted YCbCrSubSampling value
- Improved conversion of some Pentax tags (thanks Jens Duttke)
- Avoid loading data blocks larger than 16MB from QuickTime images
- Allow PDF:Keywords to be comma-delimited
- Fixed problem where a tag would be removed from both IFD0 and ExifIFD even if only IFD0 or ExifIFD was specified
- Fixed problem with byte order mark showing up in output when decoding hex-encoded Unicode values from PDF images
- Fixed problem where ExifTool could hang when reading corrupted ASF files
- Fixed possible problem with infinite recursion in FlashPix-format files

July 6, 2007 - Version 6.93

- Added read support for BigTIFF images (with extensions BTF, TIF and TIFF)
- Added a number of new Olympus tags and fixed decoding of a few others (thanks Jens Duttke)
- Added a number of new SigmaRaw tags (found in SD14 X3F images)
- Changed conversion for Canon LensType 152 (used by various Sigma models)
- Fixed problem editing XMP containing new "Camera Raw Saved Settings" properties (written by Adobe Lightroom)

June 29, 2007 - Version 6.92

- Added read support for FLV (Flash Video) files
- Added read support for EXIF and IPTC and write support for EXIF, IPTC and XMP in JPEG 2000 images
- Added read/write support for Sinar CS1 raw images
- Added read support for Kodak DCR and K25 raw images
- Added ability to read/write improperly byte-swapped IPTC information
- Added check for infinity value of Casio ObjectDistance
- Added a new Nikon LensID (thanks Bruce Stevens)
- Improved decoding of APP12 "Ducky" segment (thanks Heinrich Giesen) and added write/create support
- Improved handling of warning messages when setting new values
- Changed print conversion for Olympus PictureModeSaturation, PictureModeContrast and PictureModeSharpness to label min and max values
- Fixed problem introduced in 6.91 when writing some EPS images
- Fixed group names for Pentax CameraInfo tags
- Fixed bug which could result in negative Canon SerialNumber values
- Fixed decoding of some Canon EOS 1DmkIII custom function values
- Fixed problem copying subdirectories in new-style Olympus maker notes
- Fixed problem of missing last character when decoding ID3 Unicode strings
- Fixed problems decoding some ID3 URL values
- Fixed inconsistency where the -if option may have used a different tag than the one normally extracted when a group name was specified and multiple matching tags existed in the group

June 5, 2007 - Version 6.91

- Added support for new XMP-lr, XMP-photoshop and XMP-DICOM tags of PS CS3
- Added new Sigma lens to Pentax LensID list
- Added a few new Nikon and Canon LensID's (thanks Jens Duttke)
- Added Canon IXY Digital 810 IS to CanonModelID
- Recognize Photoshop "AgHg" resource type
- Removed "warnings" dependency in exiftool application
- Updated XMP:FileSource values to match EXIF:FileSource
- Greatly improved processing speed for some large EPS images
- Improved handling of XMP date/time formatting
- Officially support writing of MEF images
- Applied patch to convert Pentax LensType for changes in K10D firmware 1.2
- Fixed decoding of Pentax BatteryBodyGripStates (thanks Jens Duttke)

May 10, 2007 - Version 6.90 (production release)

- Added CanonModelID values for new PowerShot S5 IS and SD850 IS
- Encode IPTC values in default CodedCharacterSet when writing new values at the same time as deleting the existing CodedCharacterSet
- Renamed Nikon FirmwareVersion to MakerNoteVersion and Panasonic FirmwareVersion to ProductionVersion (thanks Jens Duttke)
- Allow EXIF GPS coordinates to be negative when writing (take absolute value)
- Revert "$evalWarning" fix (false alarm)

May 7, 2007 - Version 6.89

- Added support for maker notes of some Hewlett-Packard models
- Decode Pentax ImageProcessing tag
- Fixed problem which gave "$evalWarning" errors on some systems

May 2, 2007 - Version 6.88

- Added read support for Mamiya MEF images
- Implement long overdue change to standardize FocalPlaneResolutionUnit values
- Decode Panasonic BabyAge + some new ShootingMode values (thanks Jens Duttke)
- Improved recognition of maker notes for some camera models
- Fixed bug that could cause an incorrect "tag is not writable" warning
- Fixed problems converting WDP PixelFormat values
- Fixed decoding of Canon 350D AFPointsUsed (thanks Bogdan)
- API Changes:
  - Added option to allow makernote block to be extracted without rebuilding

Apr. 26, 2007 - Version 6.87

- Added read/write/delete support for recognized trailers in PSD images
- Added PhotoMechanic IPTC:Prefs tag
- Added ability to decode double-UTF-encoded XMP files
- Added a few more Canon, Pentax and Nikon lens types (thanks Hayo Baan and Robert Rottmerhusen for Nikon entries)
- Added ability to create new user-defined MIE groups
- Decode a new Nikon lens tag: ExitPupilPosition (thanks Robert Rottmerhusen)
- Increased precision (from 20m to 2mm) when writing XMP GPS coordinates
- Renamed Panasonic SpotMode tag to AFMode and improved decoding
- The -e (Composite) option now also applies when copying tags
- Minor changes to IPTC verbose output and error handling
- Minor changes to a few warning messages
- Avoid converting XMP values as rational or date if tag is known and not specified with these formats
- Identify CR2 header and Canon MakerNote footer in -htmlDump output
- Reverted change from version 6.85 to once again allow JPEG thumbnails to be written to TIFF-type images (perfectly valid for many TIFF-based RAW formats even though it isn't technically correct in a proper TIFF)
- Added test to check for invalid encoding when Image::ExifTool is loaded
- Fixed problem shifting Canon:TimeStamp tag
- Fixed failed FlashPix test on Cygwin Perl 5.8.2 (roundoff errors again)
- Fixed problem where some types of write errors could result in exiftool reporting that a file was updated when it wasn't

Apr. 10, 2007 - Version 6.86

- Added -execute, -srcfile and -common_args options to allow complex processing with multiple commands in a single invocation
- Added ability to write Panasonic RAW files
- Added Panasonic ConversionLens tag
- Improved decoding of Panasonic/Leica Contrast and SpotMode tags
- Changed -@ to insert arguments at the current position in the command line (rather than at the end)
- Once again automatically fix Canon maker note offsets (this feature was removed in 6.84 due to a bug bug report that turned out to be a false alarm)
- Fixed bug in -if option which could incorrectly cause a failed condition when using expressions containing multiple tags with proper-case names
- Fixed problem extracting binary data when -if option was used
- Fixed bug which caused error when setting CodedCharacterSet to "UTF8"
- Fixed decoding of InternalSerialNumber for FujiFilm FinePix F40fd
- Fixed problem using "-TAG+<=FMT" or "-TAG-<=FMT" on command line

Apr. 3, 2007 - Version 6.85

- Prevent JPEG thumbnail image from being written to TIFF-type images
- Fixed a couple of problems decoding Canon EOS 1D Mark III tags
- Fixed bug which generated an error message when rewriting maker notes in Adobe-edited Pentax K10D native DNG images

Mar. 30, 2007 - Version 6.84

- Added a number of new XMP-crs tags, plus new XMP-lr (Adobe Lightroom) group
- No longer automatically fix Canon makernote offsets (but still use makernote footer if present to calculate recommended fix)
- Fixed problem where some errors were not properly counted in the summary statistics with the -overwrite_original_in_place option
- Fixed problem parsing XMP shorthand format for values containing '=' symbol

Mar. 24, 2007 - Version 6.83

- Automatically fix corrupted makernote offsets when reading images from Canon models which include a makernote offset footer
- Added CanonModelID and CameraType values for 2 new Canon DV cameras
- Renamed SPIFF ResolutionUnits tag to ResolutionUnit
- Fixed formatting of GPSTimeStamp value

Mar. 20, 2007 - Version 6.82

- Added read/write support for new Canon EOS-1D Mark III custom functions
- Made a few makernotes warnings minor when writing
- Append "mm" to FocalLengthIn25mmFormat value
- Fixed problem which could cause "uninitialized value" warning when writing
- Fixed problem writing Canon EOS D60 custom functions

Mar. 17, 2007 - Version 6.81

- Added l/u modifiers for lower/uppercase in filename format codes (eg. "%le")
- Added equivalent IXY names to CanonModelID for PowerShot SD750 and SD1000
- Added a few new Pentax ModelID's (Optio E30, T30, W30, A30)
- Allow non-encrypted Nikon ColorBalance values to be written
- Fixed problem where some encrypted Nikon information was not properly protected against writing

Mar. 14, 2007 - Version 6.80

- Added Olympus ManometerReading tag
- Added ability to edit private IPTC and XMP information found inside PhotoshopSettings record of TIFF images
- Renamed NikonShotInfoVers tag to ShotInfoVersion and added MultiExposureVersion tag
- Search further in MPEG file to look for first audio/video frame headers
- Use default resolution information from JPEG JFIF segment for mandatory EXIF resolution tags when creating new EXIF segment
- Enhanced %c format code so %+c adds an underline before the copy number

Mar. 7, 2007 - Version 6.79

- Translate special characters in ID3 information when reading
- Improved conversions for GPSTimeStamp and GPSDateStamp when writing so they can be set from a normal date/time tag (eg. "-gpstimestamp<createdate")
- Added support for Nikon D40X plus a new LensID (thanks Robert Rottmerhusen)
- Added a new Canon LensType (thanks Warren Stockton)
- Removed D70Boring shortcut tag
- Fixed minor problem in HtmlDump of MakerNotes header introduced in 6.78
- Fixed problem decoding second Pentax K10D LensType value for some lenses

Feb. 28, 2007 - Version 6.78

- Decode Nikon D200 multi-exposure tags
- Decode Canon BlackLevel tag and added a few new CanonModelID's
- Added support for new Olympus u760 maker note format (finally Olympus fixes the major blunders of their older maker note design!)
- Added support for the rare Canon EOS K236 (variation of EOS 400D)
- Improved decoding of Canon EOS 1D Mark III tags
- Included PDF version of MIE format specification in distribution
- Reformat invalid EXIF date/time values when writing (unless -n option used)
- Minor updates to some Pentax tags for Optio M30

Feb. 20, 2007 - Version 6.77 - "XML/HTML special characters"

- Translate numeric character references when reading XMP
- Translate all HTML 4 character references to UTF-8 when reading HTML
- Translate all non-ASCII characters to HTML character entities with -h or -E
- Added full UTF-8 translation support when run with Perl pre-5.6.1
- Decode a few new Sigma SD14 tags
- Decode a couple more Nikon tags (thanks Greg Troxel)

Feb. 16, 2007 - Version 6.76 (production release)

- Added patch for Perl 5.6.x bug which caused an HTML test to fail
- Added a few new Pentax tags and fixed a LensType value (thanks Axel Kellner)

Feb. 14, 2007 - Version 6.75 (production release)

- Added read support for DOC, XLS and PPT documents
- Added Composite GPS tags to facilitate copying GPS between EXIF and XMP
- Added patch for problems in Sanyo J1, J2, J4, S1, S3 and S4 maker notes
- Added new Microsoft OffsetSchema tag (new, ill-conceived PhotoInfo tag)
- Decode more Pentax tags and improved decoding for some K10D tags
- Shortened tag name of HTML:MSSmartTagsPreventParsing to NoMSSmartTags
- Fixed oversight to allow new IPTC and XMP records to be added to ORF images
- Fixed problem extracting RIFF MakerNotes by tag name
- Fixed problem with drag-n-drop of Windows files on a network drive
- Fixed problem copying GPSAltitude from EXIF to XMP

Feb. 2, 2007 - Version 6.74

- Added support for chained SubIFD's in TIFF images
- Updated GeoTiff support for new definitions in libgeotiff-1.2.3
- Fixed problem when rewriting unknown records in Adobe DNGPrivateData
- Fixed bug introduced in 6.47 that could prevent Photoshop EXIF CameraRAW tags from being extracted properly

Jan. 31, 2007 - Version 6.73

- Added read support for meta information in HTML and XHTML documents
- Added ability to write certain EXIF tags (eg. UserComment) as Unicode
- Added character set translation for XMP information; the -L option now works for all common meta information formats! (see updated FAQ #10 for details)
- Added a few more XMP-microsoft tags (thanks Kees Moerman)
- Decode FirmwareRevision found in some Canon PowerShot models
- Preserve date/time tags that exist in the wrong EXIF IFD when shifting times
- Fixed bug which could result in an incorrect value for the Directory tag
- Fixed problem parsing XMP with BOM introduced in 6.71

Jan. 25, 2007 - Version 6.72

- Added XMP-microsoft:LastKeywordIPTC tag
- Renamed new MicrosoftPhoto Rating2 tag to RatingPercent
- Fixed problem where rdf:about attribute could be lost when writing XMP

Jan. 24, 2007 - Version 6.71

- Decode a lot of new Pentax DSLR information (thanks Cvetan Ivanov)
- Patched Microsoft Photo bugs in XMP formatting
- Patched Microsoft Photo bug in EXIF Unicode text byte ordering
- Added support for XMP-microsoft tags and 2 new Microsoft EXIF tags
- Added a few new XMP tags (NativeDigest, ColorMode and ICCProfileName)
- Added ability to add or delete copied tags from list (eg. "-SRCTAG+>DSTTAG")
- Added a few more Canon EasyMode values (thanks Samson Tai)
- Added CanonModelID values for new A450, A460 and A550
- Changed the -if option so the condition automatically fails if the expression generates a warning (use -v to show the warning)
- Specified LF character (0x0a) for MIE text newline sequence
- Catch warnings if perldoc doesn't exist when running with no arguments
- Minor tweaks/fixes to htmldump output

Jan. 19, 2007 - Version 6.70 - "IPTC Character Coding"

- Translate coded characters in IPTC string values (UTF8 and Latin only), and assume Latin encoding if no CodedCharacterSet (see FAQ #10 for details)
- Enhanced IPTC:CodedCharacterSet print conversion so "ESC % G" is now printed as "UTF8" (either may be used when writing)
- Specified ISO 8859-1 character set for MIE ASCII string values
- Added warnings for UTF-8 conversion errors
- Decode a few new Pentax tags
- Decode maker notes in Pentax DNG images

Jan. 8, 2007 - Version 6.69

- Decode information in NikonScanIFD
- Enhanced -p option to allow expressions to be used
- The -p option no longer suppresses error and warning messages
- Made ImageSourceData writable
- Reduced font size of htmldump output
- Fixed "Argument isn't numeric" error when reading an image with a missing IFD offset

Jan. 3, 2007 - Version 6.68

- Added mechanism to allow Composite tags to be writable
- Recognize XMP sidecar files that begin with a UTF BOM (byte order mark)
- Changed TIFF ImageSourceData tag to a Binary data type
- Fixed problem which could cause warning when writing XMP in PNG images
- Fixed bug when shifting times in an XMP sidecar file that caused an invalid date/time to be written if the tag didn't previously exist
- Fixed problem where writing to a JPEG image containing a PreviewImage could report that the file was updated even if nothing was changed

Dec. 30, 2006 - Version 6.67 - "Adobe DNGPrivateData"

- Added ability to write MakerNote information written by Adobe DNG Converter
- Added ability to copy Adobe MakerNote and CRW information from DNG images
- Added ability to read/write Adobe CRW and MRW information in DNG images
- Added ability to read Adobe SR2 information in DNG images
- Added a few more Nikon LensID's (thanks Robert Rottmerhusen)
- Added ability to delete a specific MIE document in multi-document files
- Improved handling of tags in multi-document MIE files
- Improved verbose and htmlDump output for unknown JPEG trailers
- Improved handling of ignored minor errors when writing MakerNotes
- Decode Panasonic LensType tag
- Changed description for Canon:OwnerName tag
- Minor changes to HtmlDump output
- Fixed parsing of XMP date/time values with no seconds

Dec. 20, 2006 - Version 6.66 (production release)

- Added a few more Pentax K10D PictureMode's (thanks Axel Kellner)
- Added a few new Nikon LensID's and Olympus LensType's
- Added Canon 1D PictureStyle's
- Updated CanonModelID strings for a few new models
- Changed tagID for MIE:GPSDifferential
- Minor change to MIE specification for unknown data formats (MIE 1.1)

Dec. 15, 2006 - Version 6.65 - "MIE 1.0"

- Added ability to read/write MIE trailers in JPEG and TIFF images
- Added a number of new MIE tags and changed some existing tags
- Added support for units in MIE values
- Added new Pentax K10D PictureMode's (thanks Axel Kellner)
- Avoid creating non-native groups in MIE, PNG and EPS images unless necessary
- Fixed problem with -P option so it now works when -o option is used
- Fixed bug where 'all' was replaced with '*' in redirection expressions
- Fixed "APP1 segment too large" error when copying all tags from some Canon CR2 images to a JPEG (fixed initially in 6.08, but broken again in 6.47)

Dec. 8, 2006 - Version 6.64

- Added Nikon ImageAuthentication tag (thanks Jeffrey Friedl)
- Added Canon RecordMode and OpticalZoomCode and Composite DigitalZoom tag
- Applied FocalUnits scaling to Canon ShortFocal, LongFocal and ScaledFocalLength tags, and renamed ScaledFocalLength to FocalLength
- Allow (but ignore) leading family number on tag group when writing
- Fixed calculation of 35mm scaling factor when Canon digital zoom is applied
- Fixed bug which could cause "'x' outside of string" error when reading Nikon images with the -U option

Dec. 6, 2006 - Version 6.63

- Changed the sense of the '-' modifier for the new '%c' format code

Dec. 6, 2006 - Version 6.62

- Added '%c' format code to add copy number if output file exists
- Added a couple of new Nikon LensID's (Werner Kober, Robert Rottmerhusen)
- Made -htmlDump tag names purple if actual offset differs from stored offset

Dec. 4, 2006 - Version 6.61

- MakerNotes offsets are now permanently fixed when the makernotes are copied using -tagsFromFile with the -F option
- Fixed typo in MakerNoteSanyoC4 tag name of MakerNotes shortcut
- Minor improvements to htmldump style

Dec. 2, 2006 - Version 6.60

- Added -k option of stand-alone version to regular distribution
- Fixed bug adding/deleting XMP tags in a list (introduced in 6.50)
- Fixed decoding of Canon 5D LongExposureNoiseReduction
- Fixed problem writing AFCP where incorrect offset could be written
- Fixed bug in -p option which caused it to abort if all tag names were contained in braces (thanks Joel Becker)
- Stand-alone Windows executable:
  - Print application documentation after "No file specified" warning

Nov. 30, 2006 - Version 6.59

- Do not delete IFD1 when deleting all meta information from a TIFF image
- Added a couple of new CanonImageSize values: "Postcard" and "Widescreen"
- Added a few new Olympus LensType's (thanks Lilo Huang for one)
- Improved handling of invalid date values
- Fixed "divide by zero" warning if FocalPlaneXYResolution is "inf"
- Fixed incorrect "unknown trailer" verbose message when writing JPEG images
- Stand-alone Windows executable:
  - Allow quoting of options embedded in executable name

Nov. 25, 2006 - Version 6.58

- Added a few more Nikon LensID's (thanks Robert Rottmerhusen)
- Added missing print conversion for RIFF DateTimeOriginal
- Improved HTML 4.01 compliance of -htmlDump output
- Lowered priority of ID3v1 tags so ID3v2 takes precedence if both exist
- Minor change to names of some Vorbis and APE tags
- Made Ogg file type all capitals
- Patched problem which could cause ExifTool to die if input file is corrupt
- Fixed GPSDOP description (GPS Dilution of Precision, thanks Greg Troxel)
- Fixed problem which could generate a run-time error when attempting to write to a corrupted JPEG image
- API Changes:
  - GetFileType() may now also be used to return a file description

Nov. 19, 2006 - Version 6.57 (production release)

- Missing tags in -p and redirection expressions are now set to an empty string ('') by default, or a dash ('-') if the -f option is used
- Added ability to use %f,%d,%e tokens in "-TAG<=FILE" argument
- Added new Nikon LensID (thanks Werner Kober)
- Set missing tags to '' instead of '-' in redirected expressions if -m used
- Renamed LV tag to LightValue
- Improved decoding of Sony DSLR-A100 maker notes
- Attempted to clarify date/time shift documentation in Shift.pl
- Fixed bug which could result in CanonVRD information not being recognized
- Fixed bug in new SetResourceName feature of user-defined Photoshop tags
- First release of stand-alone Windows executable
- API Changes:
  - Added MissingTagValue option

Nov. 15, 2006 - Version 6.56 - "Audio Update"

- Added read support for a number of audio file formats: Ogg Vorbis, Ogg FLAC, FLAC, APE (Monkey's Audio) and MPC (Musepack)
- Improved parsing of ID3 v2.3 and v2.4 information
- Added a number of new Pentax *istD tags (thanks Douglas O'Brien)
- Added ability to print processed file names when writing (-v0 option)
- Patched problem with makernotes offsets in Sanyo C4 images
- Fixed problem that prevented some Olympus RAW files from being written
- Fixed bug where XMP values could be improperly converted as a rational

Nov. 8, 2006 - Version 6.55

- Added read/write support for Canon VRD (Recipe Data) files and trailers
- Changed name of CanonDPP module and group to CanonVRD

Nov. 3, 2006 - Version 6.54

- Added write support for ORF (Olympus RAW) images
- Added Panasonic TravelDay tag (thanks Marcel Coenen)
- Show Photoshop resource block names in verbose output, and preserve these names when copying tags from file
- Changed write format of Nikon WhiteBalanceFineTune from int16u to int16s (thanks Giridhar Appaji Nag)
- Allow Flags to be used in UserDefined tags
- Added trailer signature to MIE format specification
- Fixed problem with the -list and -listw options (dynamically loaded tags weren't appearing in the list)

Nov. 1, 2006 - Version 6.53

- IMPORTANT: Fixed bug introduced in 6.51 which could result in a corrupted image (!!) when rewriting TIFF-format files containing an unknown trailer (this includes all TIFF-based RAW formats except CR2). The good news is that unknown trailers should be very uncommon, and nobody has reported any problems yet, so with any luck I caught this before it affected anyone. But please update immediately to 6.53 if you downloaded 6.51 or 6.52.

Nov. 1, 2006 - Version 6.52

- Added read/write support for trailers in CRW images
- Dropped historic support for obsolete -group# option

Oct. 31, 2006 - Version 6.51 - "Trailer Update"

- Improved handling of trailers in JPEG and TIFF-format images:
  - Added read/write support for PhotoMechanic and FotoStation trailers
  - Recognize and handle Canon DPP trailers
  - Added AFCP trailer read/write support for TIFF (previously JPEG only)
  - Added ability to read/write multiple trailers in the same image
  - Trailers are now dumped with verbose and htmlDump options
  - Trailers are now deleted when deleting all tags
  - Added ability to delete trailers individually by group or altogether with "-Trailer:all="
- Changed reading/writing XMP in PNG images to conform with XMP specification (but continue to support the XMP profile format used previously)
- Avoid writing duplicate XMP tags in less common namespaces
- More consistent handling of unknown IPTC tags
- Added -listd option to list deletable groups
- IPTC time-only tags may now be set from date/time values (this already worked for date-only tags)
- Fixed problem rewriting international text (iTXt) chunks in PNG images
- API Changes:
  - Added GetDeleteGroups() routine

Oct. 26, 2006 - Version 6.50

- Changed name of new "-eval" option to "-if"
- Added read support for PhotoStudio Unicode comment (thanks Dec Anisimov)
- Recognize the "PHUT" Photoshop IRB resource type (thanks Dec Anisimov)
- Extract PhotoshopBGRThumbnail image from Photoshop information
- Write PNG compressed text for new tags when -z option is used
- Added ability to write PNG:ModifyDate
- Don't print Olympus LensType "release" if used to differentiate lenses
- Changed TagName documentation to show actual format written instead of format used to interpret the data (which differs only for a few odd tags)
- Fixed bug in PNG writer which could cause duplicate tags to be written
- Fixed minor problem in HtmlDump output
- Fixed logic bug when writing XMP using += or -=

Oct. 21, 2006 - Version 6.49

- Added -eval option for conditional batch processing [changed to -if in 6.50]
- Allow .ExifTool_config file to be placed in application directory
- Decode copyright information from JPEG APP12 "Ducky" segment
- Decode Casio FirmwareDate
- Added IFD0 ProcessingSoftware tag (0x000b, written by ACD Systems)
- Added print conversion for InteropIndex
- Write InteropVersion automatically when creating a new InteropIFD
- Made RelatedImageFileFormat writable
- Protect all InteropIFD tags from being copied by default with -TagsFromFile
- Renamed XMP ExifImageHeight to ExifImageLength (to correspond with EXIF tag)

Oct. 19, 2006 - Version 6.48

- Decode Minolta 7D FlashExposureComp (thanks Jeffery Small)
- Decode InternalSerialNumber from newer FujiFilm models
- Improved decoding of new Pentax PictureMode tag (thanks Doug O'Brien)
- Updated CustomFunctions in Canon CRW images and recognize CIFF extension
- Added a couple new Pentax LensType's (thanks Barney Garrett)
- Changed "AdobeRGB" to "Adobe RGB" in all ColorSpace values for consistency
- Fixed bug in recent update to extract large preview from Epson JPEG images
- Fixed problem in -htmldump output introduced in 6.46
- Various documentation improvements and updates

Oct. 15, 2006 - Version 6.47

- Decode JPEG APP6 "EPPIM" segment used in Toshiba images
- Process PICT images to extract JPEG preview when -u option is used
- Added OtherImage composite tag
- Added PentaxModelID for K110D and a new K110D PictureMode tag
- Fixed problem extracting CoverArt from some MP4 audio files
- Fixed problem decoding Canon BulbDuration (affects Composite ShutterSpeed)
- Fixed problem reading/writing large Epson preview image in R-D1 JPEG images and allow large (>64kB) preview images for all make/models

Oct. 11, 2006 - Version 6.46

- The "-ext" option now overrides internal file selection rules
- Expand filename wildcards on Windows command line (thanks Marjolein Katsma)
- Enhanced warnings when copying information to a specific tag
- Changed family 0 group name: GPS->EXIF
- Changed family 1 group names: APP12->PictureInfo,GraphicConverter->GraphConv
- Added a couple of new Pentax LensType's
- Added JPEG.pm module (mainly for documentation purposes)
- Fixed bug when re-writing NEF files which caused new preview image written by Nikon Capture 4.4.0 to be lost
- Fixed bug which could cause problems if a user-defined composite tag is created with the same name as an existing tag

Oct. 6, 2006 - Version 6.45

- Added ability to create JFIF segment
- Decode information in JPEG APP8 "SPIFF", APP12 "Ducky", and APP15 GraphicConverter segments
- Improved html dump feature to dump all JPEG APP segments
- Decode maker notes in FujiFilm AVI videos
- Renamed Nikon AFMode tag to AFAreaMode (thanks Tobias Briseno)
- Changed "Image Quality" description to "Quality"
- Added option to allow the htmlDump base offset to be specified
- Changed EV tag name to LV since this is technically more correct
- Print warnings if syntax problems are found in .ExifTool_config file
- Use HOMEDRIVE and HOMEPATH (Windows cmd shell environment variables) for .ExifTool_config path if neither EXIFTOOL_HOME nor HOME are available
- Fixed some problems which were causing failed tests when using ActivePerl
- User-defined Composite tags now override composite tags of the same name
- Added a few more PentaxModelID's (K10D, A20, M20, W20)

Oct. 2, 2006 - Version 6.44

- Now deletes all JPEG APP segments when deleting all information
- Decode Ricoh APP5 RMETA information (custom fields in Caplio Pro G3 images)
- Decode AVI Audio/Video stream headers
- Recognize and preserve PhotoMechanic trailer when editing TIFF-based images
- Added ability to delete JFIF, CIFF, Meta and FlashPix groups
- Added ability to exclude groups when deleting all information
- Added a number of new Canon, Nikon, Pentax, Sony and Minolta tags
- Added description for GPSDOP tag (GPS Degree Of Precision)

Sept. 26, 2006 - Version 6.43

- Added read support for M4A audio files
- Simplified and documented technique for adding user-defined Composite tags
- Issue minor warning when a tag used in an expression doesn't exist, instead of silently inserting a '-' (use -m option for previous behaviour)

Sept. 21, 2006 - Version 6.42 (production release)

- Re-worked Sony and Minolta LensID lists and added a number of new lenses
- Extract maker note information from Sanyo MOV and MP4 videos
- Recognize ARW extension of Sony Alpha-100 RAW images
- Improved extraction of PreviewImage from damaged Minolta images

Sept. 18, 2006 - Version 6.41

- Fixed calculation of Canon ISO in some images and renamed ShotISO to BaseISO
- Minor improvement to order of operations when deleting multiple groups and adding back information in batch mode

Sept. 14, 2006 - Version 6.40

- Added ability to delete a group and write back information in one step
  - Compatibility Warning: This changes previous behaviour when adding and deleting information in the same operation if new tag values are set after a group has been flagged for deletion
- Fixed problem writing to specific MIE groups
- Minor improvements to verbose output while writing
- Added a few new CanonModelID's (PowerShot G7, SD900, SD800IS, SD40)

Sept. 12, 2006 - Version 6.37

- Decode Sony LensID's (thanks Thomas Bodenmann)
- Added another Canon LensType
- Added shortcut MakerNotes tag to represent the maker notes tags from all manufacturers (useful when copying tags between files)
- Improved MPEG decoding and calculate approx. Duration based on avg. bitrate
- Issue a minor error when rewriting an empty IFD (previously this was fatal)
- Print 2 decimal points of MeasuredEV (avoids round-off errors resulting in failed tests on some systems)

Sept. 6, 2006 - Version 6.36 (production release)

- Added a few more Canon LensType's
- Improved decoding of Canon 400D ExposureTime and FileNumber
- Decode AFPointsUsed for PowerShot models with 9 AF points
- Fixed decoding of Canon 5D PictureStyle

Sept. 5, 2006 - Version 6.35

- Added Canon NumAFPoints tag
- Added support for Canon 400D custom functions
- Renamed Canon AFPointsUsed20D to AFPointsUsed and decode for 30D and 400D
- Changed phrasing in a text string to bypass bug in rpm build causing it to obtain incorrect dependencies

Sept. 3, 2006 - Version 6.34

- Removed empirical offset from Canon:MeasuredEV

Sept. 1, 2006 - Version 6.33

- Added Composite:EV and Canon:MeasuredEV tags [comments welcome]

Sept. 1, 2006 - Version 6.32

- Decode a new value of "Auto High" for Canon CameraISO
- Added new Canon AutoISO tag, renamed Canon:ISO tag to ShotISO, and added a new composite ISO tag to give the ISO that was actually used
- Decode CanonModelID's for recently announced Canon cameras (400D, etc)
- Decode PentaxModelID for Optio S7
- XMP Changes:
  - Added support for rdf:nodeID attribute in XMP information
  - Changed XMP file MIME type from application/xmp to application/rdf+xml to correspond with XMP specification
  - Write 'rdf:about' instead of 'about' (unqualified use now deprecated)
  - Don't write blank-line padding (as per XMP spec) for .XMP files
  - Fixed problem extracting XMP information from some EPS files
  - Fixed typos in some (not commonly used) XMP namespace URI's
- Fixed FocalLength conversion for some Pentax-built BenQ and Samsung models

Aug. 23, 2006 - Version 6.31

- Decode a number of new values for FujiFilm PictureMode (thanks Michael Meissner)
- Properly parse AVI DateTimeOriginal tag when month name is all capitals
- Improved compatibility when running "exiftool" with no arguments (thanks Jesse Zhang)
- Added support for Nikon D80 lens information and recognize a new lens (thanks Robert Rottmerhusen)
- Improvements to Pentax maker note decoding (thanks Ger Vermeulen)
- Fixed problem when extracting information from image in memory when the UTF-8 flag is set for the image data (fixes install on RHEL 3)

July 28, 2006 - Version 6.30

- Added ability to read/write APP0 CIFF segment (found in Canon PowerShot A5 and PowerShot Pro 70 images)
- Improved decoding of Canon 30D FileNumber (was ShutterCount)
- Made EXIF tags ImageNumber and ImageHistory writable
- Fixed decoding of TargetExposureTime for Canon 20D/250D and ExposureTime for Kiss Digital N
- Fixed problem processing GIF images which don't contain a color table
- Fixed bug in EXIF tag name documentation introduced in 6.12 where ExifIFD group was not properly shown
- Fixed typo in exiftool pod documentation ("GROUP:TAG" was reversed)

July 24, 2006 - Version 6.29 (production release)

- Added XMP-xmpMM:PreservedFileName tag (used by Photoshop CS)
- Fixed problem reading TIFF images which don't start at the beginning of the file

July 12, 2006 - Version 6.28

- Fixed bug introduced in 6.04 which prevented PNG tags from being deleted
- Improved decoding of Canon PictureStyle information

July 7, 2006 - Version 6.27

- Decode a number of new tags in Canon, Casio, FujiFilm, Minolta, Nikon, Panasonic, Pentax, Ricoh and Sony and maker notes
- Improved recognition of various Minolta maker note formats
- Added a number of new Nikon Capture tags
- Added support for XML-formatted XMP files
- Properly handle mixed linefeed characters in PostScript images
- Improved formatting of DICOM date/time values
- Added "Actual Offset" entry to HtmlDump tooltip information

June 27, 2006 - Version 6.26

- Avoid creating new SubIFD when copying all tags with "-all:all" from a RAW or TIFF image (this gave problems if image was subsequently edited by PSCS2)
- Fixed decoding of a few Nikon LensID strings
- Minor fixes and changes to htmlDump and verbose output
- Added a new Pentax LensType (thanks Kazumichi Kawabata)

June 19, 2006 - Version 6.25

- Added read/write support for WDP (Windows Media Photo) images
- Improved algorithm to recognize maker notes offsets which need fixing
- Properly handle maker notes which have value offsets relative to the individual IFD entries (Kyocera, Rollei and some Konica and Toshiba models)
- Decode a couple of new Sigma lens values in Canon LensType
- Decreased block size for buffered files to improve performance over slow pipes

June 9, 2006 - Version 6.24

- Added -fast option to avoid scanning to the end of JPEG images to check for an AFCP or PreviewImage trailer
- Recognize PS files which start with %!Adobe-PS instead of %!PS
- Improved FlashPix verbose output
- API Changes:
  - Added FastScan option

June 7, 2006 - Version 6.23

- Added new feature allowing tag-name expressions to be used with the -TagsFromFile option

June 5, 2006 - Version 6.22

- Added read support for FPX (FlashPix) images and FPXR (FlashPix Ready) JPEG APP2 meta information
- Added AllDates shortcut tag to allow DateTimeOriginal, CreateDate and ModifyDate to all be written via a single tag
- Added shortcuts to tag name documentation
- Return "0000:00:00 00:00:00" instead of "1970:01:01 00:00:00" as the string representation of numerical times with a value of zero

May 26, 2006 - Version 6.21

- Changed CR2 identification logic to properly identify CR2 images which have been edited by PhotoMechanic

May 24, 2006 - Version 6.20

- Added read support for Real audio/video (RA, RM, RV, RMVB, RAM, RPM) files
- Downgraded "Error reading value..." message from an error to a warning
- Fixed bug where IgnoreMinorErrors option could get set when writing images with NikonCapture information
- Fixed two ID3 tag names which contained spaces
- Fixed problem parsing DateTimeOriginal in Casio EX-Z30 AVI files (thanks Joachim Loehr)
- Fixed problem with apostrophes in HTML documentation for some browsers
- API Changes:
  - Can now call Options() with undefined value to set option value to undef

May 16, 2006 - Version 6.19

- Added read support for SWF (Shockwave Flash) files

May 15, 2006 - Version 6.18

- Added read support for MPEG audio/video files
- Decode audio information in MP3 files
- Print Nikon:LensPosition in hex

May 12, 2006 - Version 6.17 (production release)

- Fixed problem with rpmbuild on Mandriva 2006.0 (thanks Niels Kristian)
- Fixed typo in iptc2xmp.args and xmp2iptc.args which prevented the XMP Instructions from being copied properly (thanks Mark Tate)
- Handle byte order mark in unicode EXIF strings

May 8, 2006 - Version 6.16

- Write %ADO_ContainsXMP comment when adding XMP to EPS images
- Don't issue DSC warning when writing Adobe version 3.1 EPS images
- Added separate table for decoding tags in IFD0 of Panasonic RAW images
- Improvements to Nikon AF point decoding (thanks Roger Larsson)
- Allow .ExifTool_config directory to be specified by setting the EXIFTOOL_HOME environment variable
- Made all maker note write errors minor so they can be ignored if necessary, allowing information to be written to images with corrupted maker notes
- Minor change to perl-Image-ExifTool.spec to fix problem with rpmbuild (thanks Volker Kuhlmann)
- Fixed bug which could cause incorrect date to be calculated when shifting date/time values

Apr. 20, 2006 - Version 6.15

- Changes to MIE specification involving string lists and alternate languages

Apr. 18, 2006 - Version 6.14

- Fixed some problems with EPS writer and removed beta testing status (thanks to Tim Kordick for help with testing)
- Created new MIE meta information format [Note: The MIE module is fully functional but the MIE format specification is still in development]
- Added print conversion for SpatialFrequencyResponse
- Extended meaning of -z option when writing to allow compressed information to be written to MIE files
- Added Minolta FlashMetering tag
- API Changes:
  - Added 'Compress' option

Apr. 9, 2006 - Version 6.13

- Fixed problem with writing FileName that caused format codes not to be properly expanded if the specified filename already existed
- Standardized reported FileType for ACR, AIFC, CRW, JP2, PS and PSD files
- Allow 2 values to be written for EXIF TimeZoneOffset and make EXIF SecurityClassification writable

Apr. 5, 2006 - Version 6.12

- Avoid printing garbage for DNG maker note information that was not copied properly by the Adobe DNG converter (affects converted ORF images)
- Disabled "Possibly incorrect maker notes offsets" warning for a number of Olympus models
- Fixed bug introduced in 6.04 which could cause endless loop (eeek!) when writing tags with PostScript equivalents
- Fixed error reading some DICOM images

Apr. 3, 2006 - Version 6.11

- Added a few new Pentax LensType's
- Fixed bug rewriting MOS images (this bug introduced in version 5.95 caused an error message and prevented the file from being rewritten)

Mar. 31, 2006 - Version 6.10

- Added ability to use filename format codes %d, %f and %e in values written to FileName and Directory tags
- Fixed problem of odd filenames being generated when setting FileName from an invalid date/time tag
- Removed debugging print statement forgotten in Olympus code of 6.07 (oops)
- API Changes:
  - Added StrictDate option

Mar. 30, 2006 - Version 6.09

- Made FileName and Directory writable (enabling a whole new functionality!)
- Added ability to write DOS-style EPS images [Note: still in beta testing]
- Increased precision of Composite Red/BlueBalance print conversion
- When combining the -o and -overwrite_original options, the original file is now erased if the new file is written successfully
- Added a new Nikon lens (thanks Werner Kober)
- API Changes:
  - Added SetFileName() routine
  - In list context, CountNewValues() now also returns a "pseudo" tag count

Mar. 25, 2006 - Version 6.08

- Made YCbCrCoefficients and YCbCrPositioning protected when writing
- Decode some new Nikon-specific tags in QuickTime videos from Nikon cameras
- Calculate Red/BlueBalance for Olympus images
- Fixed "APP1 segment too large" problem when copying all tags from Canon EOS-5D or EOS-30D CR2 image to JPEG image
- Fixed problem running "exiftool" with no arguments in Windows cmd shell

Mar. 22, 2006 - Version 6.07

- Added a number of new Olympus tags (thanks Frank Ledwon)
- Decode Adobe JPEG APP14 segment (thanks Didier Giet)
- Made Rotation writable in CRW images
- Changed some FujiFilm WhiteBalance strings
- No longer return multiple tags when a group is specified unless the duplicates option is enabled or the group name is 'all' or '*'

Mar. 20, 2006 - Version 6.06

- Added validity check for Canon FocalPlaneX/YSize which resulted in incorrect values of FocalLength35efl being calculated for some PowerShot models
- Made Opto-ElectricConvFactor value binary

Mar. 18, 2006 - Version 6.05

- Improved JPEG writer to tolerate any segment ordering
- Fixed Olympus ExtenderStatus to work with E-330 (thanks Mark Dapoz)

Mar. 15, 2006 - Version 6.04

- Added write support for EPS and PS images [Note: still in beta testing -- must currently use the -m option to enable writing to EPS images]
- Added ability to write ICC_Profile data as a block
- Added read/write support for ICC and ICM color profile files
- Added read/write support for ERF (Epson Raw Format) images
- Added a couple of new Olympus tags and LensType's (thanks Mark Dapoz)
- Added ability to scan past unknown header to find JPEG or TIFF image
- Added Canon EOS 30D custom functions
- Renamed Panasonic SerialNumber tag to InternalSerialNumber
- Renamed Canon 5D PictureNumber tag to ImageNumber
- Improved MRW reading and writing
- Decode a number of new Minolta tags and changed names of some existing tags
- Decode some type-specific data in ASF StreamProperties, including video ImageWidth and ImageHeight
- Extract a few more PostScript tags and derive ImageWidth and ImageHeight for PostScript documents
- Some improvements to Panasonic decoding (thanks Tels)
- API Changes:
  - 'Unsafe' tags are now copied by SetNewValuesFromFile() if specified explicitly
- Internal Changes:
  - SubDirectory tags are no longer Writable by default in WRITABLE tables

Mar. 2, 2006 - Version 6.03

- Added print conversion for CFAPlaneColor
- Decode CFAPattern as written incorrectly in ASCII by some Panasonic cameras
- Added recently announced Canon cameras to CanonModelID list
- API Changes:
  - Added ability to prefix tag name with group in arguments to ImageInfo() (read/write symmetry is now improved since this feature already existed in the write routines, and now group names can be used in shortcuts)
  - Changed order of filtering for Group# option and tag exclusions to be applied after extracting tags specified in calls to ImageInfo()

Feb. 26, 2006 - Version 6.02

- Fixed problem rewriting Photoshop IRB resources as written by some applications (eg. PixVue)
- Improved decoding of AVI files to increase speed and extract more tags
- Added -overwrite_original_in_place option
- Added a number of new XMP tags and bring XMP support up to new specification, plus a few undocumented XMP-aux tags (thanks Lou Salkind)
- Added support for large DNG preview image (with JpgFromRaw tag)
- Added ability to decode DNG Adobe MakerNotes
- Added SEMInfo tag (thanks Robert Mucke)
- Decode (but don't rewrite) old PS APP13 "Adobe_Photoshop2.5:" segment

Feb. 20, 2006 - Version 6.01

- Added back RedBalance and BlueBalance as composite tags
- Fixed potential problem in File::RandomAccess which could cause a "substr outside of string" warning

Feb. 19, 2006 - Version 6.00 (production release)

- Added read support for Sony SR2 raw images (but most tags still unknown)
- Added read support for Kyocera Contax N Digital RAW images
- Added ability to write or delete shortcuts which reference multiple tags (previously only shortcuts referencing a single tag were writable)
- Changed descriptions of FNumber, ExposureTime, ISO, DateTimeOriginal, CreateDate and ModifyDate to more closely match their tag names
- Separated Canon and Nikon Red/BlueBalance information into individual components with tag names like WB_RGGBLevels
- Decoded a number of new Canon tags for EOS models, including ColorBalance tables, 20D AF points and SensorInfo (thanks Rainer Honle)
- Fixed incorrect decoding of EOS 10D/300D color balance modes
- More additions and minor fixes to Canon decoding
- Made EOS-1D personal functions writable
- Added ability to write bitmasks at the PrintConv level
- Set MIME type for all RAW image formats to "image/x-raw"
- The -f option is no longer implied when -S and -s are combined
- Fixed bug introduced in 5.99 which broke the "-tagsFromFile @" feature
- Fixed problem with offsets in verbose dump of CRW images
- Fixed problem with some tags in Canon images not printing without -a option
- Fixed problem with validation of Canon PictureInfo for images rotated by Canon ZoomBrowser EX (thanks Joshua Bixby)

Feb. 1, 2006 - Version 5.99

- Major additions to Canon maker note decoding, including EOS-1D personal functions (thanks Rainer Honle for decoding many 5D tags)
- Added Canon maker note footer when rewriting Canon maker notes
- Attempt to fix problem where ScaleFactor35efl was calculated incorrectly for some Canon images
- Reduce memory usage and speed up writing of large TIFF images
- Fixed problem with binary data offsets in verbose dump
- Fixed problem writing Comment if 'File' group specified
- Fixed bug which could cause formatting error in htmlDump output

Jan. 22, 2006 - Version 5.98

- Enhanced FMT syntax for -o, -w and -tagsFromFile options
- Decode maker notes of Samsung DX-1S
- Added ability to list tags in a specific group
- Recognize maker notes of a few more Kodak models
- Added a few more Canon LensType's
- Added missing semicolons in HtmlDump JavaScript output

Jan. 16, 2006 - Version 5.97

- Added support for Canon 5D custom functions (thanks Rainer Honle)
- Added support for Canon 1DmkII and 350D custom functions
- General fixes and improvements to Canon custom functions
- Renamed ICC_Profile Copyright to ProfileCopyright
- Report all extraction errors when copying only specified tags from file
- Avoid issuing "Error rebuilding maker notes" warning when copying maker notes that don't require rebuilding

Jan. 14, 2006 - Version 5.96

- Fixed problem where XMP information could be lost when writing PSD images

Jan. 12, 2006 - Version 5.95

- Decode AIFF SampleRate
- Fixed problem where FileType was being set twice for AIFF files
- Patched problem reading some file types through Windows cmd shell pipeline
- Properly identify CR2 images read via pipes (previously identified as TIFF)
- Improved formatting of printed values for some DNG tags
- Fixed problem with EXIF format of some tags when writing
- Changed 'rational' format names to match full bit size of value

Jan. 10, 2006 - Version 5.94

- Fixed problem extracting OriginalRawImage from little-endian DNG images
- Fixed problem where "unreferenced bytes" error could be incorrectly issued when deleting all EXIF from a TIFF image

Jan. 9, 2006 - Version 5.93

- Added ability to write JFIF information

Jan. 9, 2006 - Version 5.92

- Added ability to extract and decompress original raw image from DNG
- Fixed problem extracting information from some image types in pipelines
- Decode more information in PSD images

Jan. 7, 2006 - Version 5.91

- Added write support for PSD images
- Made a couple more Photoshop tags writable

Jan. 6, 2006 - Version 5.90

- Added read support for AIFF audio files
- Made Photoshop:XResolution and Photoshop:YResolution writable
- Fixed problem with processing some RIFF files
- Added a new Canon LensType
- API Changes:
  - SetNewValue() now accepts an ARRAY reference for setting list-type tags such as Keywords, or a SCALAR reference for binary data, so it may now be called directly with any value returned by GetValue().

Jan. 3, 2006 - Version 5.89

- Recognize Panasonic Type 2 maker notes
- Changed Nikon LensID to a composite tag to allow better decoding of non-Nikon lenses, and added a bunch of new lenses to the list

Jan. 1, 2006 - Version 5.88

- Added ability to read and write AFCP information in JPEG images
- Added read support for WMV video and WMA audio files (ASF format files)
- Added EXIF tags 0x82a5-0x82ac
- Fixed TagID of IntergraphPacketData tag
- Fixed problem in rewriting some types of JVC maker notes
- Renamed WAV module to RIFF

Dec. 22, 2005 - Version 5.87 (production release)

- Added support for JVC maker notes
- Extract a number of new DNG tags plus DNG JPEG preview image
- Renamed DNGCameraSerialNumber tag to CameraSerialNumber

Dec. 20, 2005 - Version 5.86

- Added support for AVI and MP4 videos
- Improved decoding of Olympus maker notes
- Improved APP12 decoding
- Improved CanonPictureInfo validation to work with more PowerShot models
- Display Canon 1D serial numbers with 6 digits
- Decode maker notes of Nikon D1
- Combining -t with -S now gives a single-line tab-delimited list of values
- Extract preview image for Samsung Digimax i5

Dec. 13, 2005 - Version 5.85

- Added ability to read and write XMP files which don't have an xpacket header
- Fixed problem deleting entire XMP data block using '-xmp=' syntax
- More minor HtmlDump improvements

Dec. 12, 2005 - Version 5.84

- Minor improvements to HtmlDump output

Dec. 12, 2005 - Version 5.83

- Added -F option to allow maker notes offsets to be fixed
- Added -htmlDump option to generate a verbose HTML-based hex dump of EXIF and/or TIFF information (cool new diagnostic tool)
- Attempt to validate maker notes offsets and issue warning if they look wrong
- Fixed problem rewriting PreviewImage in some Olympus and Pentax images
- Increased speed for extracting large preview images
- Improved synthetic maker notes when coping tags from CRW file
- Display absolute offsets for EXIF values in very very verbose mode
- Verbose option output is now written to file if -w option used
- Speed up rewriting of some TIFF images when using ActivePerl 5.8.x for Windows (image strips are now copied in a single block if they are contiguous in the file to avoid ActivePerl bug which causes extremely poor performance when concatenating a large number of memory blocks)
- Added a couple of new Nikon and Pentax lens ID's (thanks Robert Rottmerhusen and David Buret)
- Decode PrintIM information in Casio QV-4000
- Fixed Decoding of Canon EOS D60 serial numbers to agree with Canon utilities
- API Changes:
  - Added HtmlDump and TextOut options

Nov. 26, 2005 - Version 5.82

- Fixed bug which caused error rewriting Minolta MRW images
- Added MRW write test
- Improved MRW verbose output

Nov. 24, 2005 - Version 5.81

- Changed writing of TIFF so that existing IPTC will be rewritten as int32u whenever IPTC is edited, regardless of original format type. This allows files to be 'fixed' even if IPTC was previously another format (now we get to see if there is any software out there that barfs on int32u's...)
- Changed the -s option so tag names are displayed instead of descriptions (now similar to the -S option, but values are aligned in a column)
- Remove padding at the end of IPTC record when writing
- Fixed problem which was generating a warning with ActivePerl 5.6.1

Nov. 22, 2005 - Version 5.80

- Changed writing of new TIFF IPTC information to make it visible in Nikon Capture (for some reason requires int32u format)
- Installed patch for building of ExifTool RPMS on Mandriva Linux (thanks Niels Kristian)

Nov. 22, 2005 - Version 5.79

- Fixed problem which could render XMP information unreadable by Photoshop when editing some XMP written by Photoshop CS2

Nov. 21, 2005 - Version 5.78

- Fixed problem which could generate an error when adding IFD1 to an image

Nov. 18, 2005 - Version 5.77 (production release)

- Allow integer tag values to be specified in hex (with leading '0x')
- Fixed problem which generated warnings about symbol "@indent" in Nikon.pm when using older versions of Perl (observed with 5.6.1)

Nov. 16, 2005 - Version 5.76

- Tolerate extra null padding at end of TIFF images (as written by Photoshop CS) when rewriting TIFF images
- Minor improvements to DICOM image processing
- Updated FAQ

Nov. 14, 2005 - Version 5.75

- Fixed problem decompressing deflated DICOM images

Nov. 14, 2005 - Version 5.74

- Added read support for DICOM (DCM, DC3, DIC, DICM) and ACR-NEMA (ACR) medical image files
- Decode a lot more Nikon Capture information and add write ability
- Updated Nikon makernote decoding for D200 and new AF-S Nikkor 18-200 lens (thanks Werner Kober)
- Added a number of new Canon LensType's (thanks Volker Gering)
- Recognize file types even if they have the wrong extension

Nov. 7, 2005 - Version 5.73

- Added ability to shift date/time tag values
- Extract Red/BlueBalance tags for Nikon D2Hs, D50 and D2X
- Decode Nikon Capture Data to extract IPTC information and Rotation
- Added a new Olympus LensType (thanks Michael Meissner)

Oct. 28, 2005 - Version 5.72

- Added ability to create XMP data files. This is more significant than it sounds: The -o option may now be used to generate XMP files from information in any other format, or even to create an XMP file from nothing more than tags defined on the command line.
- Added printout of number of directories created with -w and -o options
- Improved error handling
- Effectively set preferred group to 'XMP' when writing XMP data files
- Fixed problem rewriting maker notes of some Pentax cameras
- API Changes:
  - Added CanWrite() and CanCreate() functions
  - Allow WriteInfo() source file to be undefined to create new file
  - Allow WriteInfo() output file to be undefined to edit file in place
  - Added extra argument to WriteInfo() to specify output file type

Oct. 24, 2005 - Version 5.71

- Added ability to read/write .XMP data files
- Added -listf option to print list of recognized file types
- Changed "-group#" option to "-listg#" (but still support old -group#)
- Moved Kodak APP3 "Meta" tags from EXIF to a new Kodak "Meta" group

Oct. 23, 2005 - Version 5.70

- Significant internal changes to improve speed and reduce memory usage
- Fixed a bug introduced in version 5.63 which caused incorrect XMP GPS coordinates to be returned
- Changed handling of Kodak date records
- API Changes:
  - Added ability to access original 'Raw' values via GetValue()
  - GetValue() now returns empty array in list context if value is undefined
  - Values are now converted as they are requested, so the PrintConv option now applies to GetInfo() and GetValue() instead of ExtractInfo()

Oct. 19, 2005 - Version 5.69

- Changed UTF-8 bug fix introduced in 5.67 to improve portability and allow it to work with Perl versions back to 5.6
- Changed some offsets in verbose output from relative to absolute addressing
- Improved APP12 decoding
- Changed technique for rounding off extracted rational values
- API Changes:
  - Changed handling of floating point numbers to tolerate locales where a comma is used instead of a decimal point

Oct. 17, 2005 - Version 5.68

- Added support for reading Sigma RAW (X3F) images

Oct. 13, 2005 - Version 5.67 (production release)

- Added support for reading PICT images
- Fixed a problem when writing information via the ExifTool API if using Perl 5.8 or later and passing a UTF-8 encoded string to SetNewValue(). The problem generated an error which prevented the file from being written
- Fixed timezone problem in timestamps of QuickTime images which was causing a failed test

Oct. 10, 2005 - Version 5.66

- Enhanced -tagsFromFile option to allow %d, %f and %e in filenames
- Extract a few more tags from Canon EOS 5D images
- Allow multiple ICC_Profiles to be extracted from same image and add a number to the group1 name for subsequent profiles to make the tag locations unique
- Changed Photoshop PixelsPerInchX/Y and QuickTime DotsPerInchX/Y tag names to X/YResolution. Neither has a corresponding ResolutionUnit tag, so inches should be assumed if no resolution unit is present
- Added tests of Nikon, Sony and PDF decryption algorithms

Oct. 7, 2005 - Version 5.65

- Added read support for QuickTime MOV videos (and QTIF images if anyone cares)
- Extract maker note information from Sony SRF raw images
- Improved Jpeg2000 decoding
- Decode a few more Photoshop tags
- Issue an error if there is extra data after the normal end of file when rewriting TIFF images (avoids possible data loss if attempting to write an unsupported RAW image with a TIFF-like data structure)
- Added ability to replace existing tags with user defined tags
- Denote minor errors/warnings by adding '[minor]' to the message (these are the errors which can be ignored with the -m option)
- Fixed problem of missing LeafSubIFD when rewriting MOS images
- Removed hack to write Leaf maker note information at start of image

Sept. 30, 2005 - Version 5.64

- Improved writing of Canon CR2 images to preserve CR2 header and editing information written by Canon Digital Photo Professional software
- Extract information from JPEG APP0 JFIF segments
- Added support for extracting Creo Leaf meta information from MOS images
- Added ability to define new tags in .ExifTool_config file and added a sample ExifTool_config file to the distribution
- Extended the -w option to allow an expression to be specified
- Allow tag aliases to be used when writing
- Changed print conversion of FileSize tag
- Internal changes to tag lookup to improve speed when writing information
- Decode Photoshop resolution information

Sept. 21, 2005 - Version 5.63

- Added read support for MP3 and WAV audio files (Oops... ExifTool has expanded beyond its "Image" roots!)
- Added write support for PNG and MRW (Minolta RAW) images
- Improved decoding of PNG profile information and added a few new PNG tags
- Changes to handling of GPS coordinates:
  - Added -c (CoordFormat) option to format output of GPS coordinates
  - Added GPSPosition composite tag
  - GPS coordinates now show as decimal degrees with the -n option
  - Much more flexible about the input coordinate format when writing
  - Enforce proper formatting of XMP GPS coordinates
- Added XMP-xmp Rating and Label tags, and a few missing XMP-exif GPS tags
- Added new XMP-dex group
- Added two new lenses to the Minolta LensID list (thanks Pedro Corte-Real)
- Added a new lens to the Olympus list (thanks Shingo Noguchi)

Sept. 7, 2005 - Version 5.62

- Fixed problem reading FujiFilm maker notes from RAF images
- Extract comments from PPM/PGM/PBM images and add write support
- Extract maker notes from Nikon Coolscan scanner images

Sept. 3, 2005 - Version 5.61

- Added read support for PBM, PGM and PPM file formats
- Added read support for RAF (FujiFilm RAW) file format

Sept. 2, 2005 - Version 5.60

- Fixed bug where tag was deleted if TAG+=VALUE used for a non-list type tag
- Fixed problem where reading some CRW files could generate a "Use of uninitialized value in concatenation" warning
- Restructured XMP to separate tags by namespace
- Added XMP-xmpTPg, XMP-cc, XMP-xmpPLUS and XMP-PixelLive groups
- Improved logic for editing XMP list-type tags
- Removed SubDirectory tags from -list option output
- More updates to Pentax LensType list
- Changed Nikon FileSystemVersion tag name to FirmwareVersion
- Added NikonCaptureData and NikonCaptureVersion tags

Aug. 24, 2005 - Version 5.55 (production release)

- Added patch to fix word ordering when unpacking doubles on ARM systems with little-endian byte order but big-endian word order (thanks Riku Voipio)
- Added another lens to the Pentax LensType list

Aug. 22, 2005 - Version 5.54

- Fixed problem introduced in version 5.50 which broke ability to delete groups of information
- Added a couple of new Pentax LensType's
- Renamed Olympus Lens tag to LensType

July 29, 2005 - Version 5.53

- Added -ext option to allow files to be processed or excluded from processing based on their extension
- Added MimeType tag
- Convert PDF UTF-16 character strings to UTF-8 (or Windows Latin1 if '-L' option used)

July 28, 2005 - Version 5.52

- Removed warning message when writing CR2 files that was intended only for Canon 1D TIFF files

July 27, 2005 - Version 5.51

- Assume '-TagsFromFile @' for any redirected tags (eg. '-SRCTAG>DSTTAG' or '-DSTTAG<SRCTAG') which are specified without a prior '-TagsFromFile'

July 27, 2005 - Version 5.50

- Don't rewrite entire file if only FileModifyDate is being changed
- API Changes:
  - Added CountNewValues() and SetFileModifyDate()

July 26, 2005 - Version 5.49

- Decode encrypted PDF documents
- Extract metadata from individual PDF pages
- Speed up parsing of PDF files which use cross-reference streams
- Improvements to verbose PDF output
- Updated Nikon LensID's (thanks Robert Rottmerhusen)
- Minor changes to Canon LensType strings (thanks Michael Tiemann)

July 21, 2005 - Version 5.48

- Fixed parsing of XMP-pdf CreationDate and ModDate tags

July 21, 2005 - Version 5.47

- Fixed problem where existing item in list was getting overwritten when adding to XMP lists with '-TAG+=VALUE' syntax
- Improved verbose output for PDF files and recurse into all Kids dictionaries
- Don't print warnings when setting the values of non-priority tags unless verbose
- Added support for PDF-like Adobe Illustrator (.AI) files

July 19, 2005 - Version 5.46 (production release)

- Fixed bug which could cause CRW file to be corrupted under some conditions when writing and rewriting the same file
- Added new Canon MaxAperture tag and a few more Canon LensType's (thanks Michael Tiemann)
- Changed PDF decoding to follow 'Next' links at the same level to avoid deep recursion in long linked lists

July 19, 2005 - Version 5.45

- Set FileType tags properly for newly added formats
- Added Canon TargetAperture and TargetExposureTime and decode Canon 1D Mark II lens information structure (thanks Michael Tiemann)
- Decode more Canon lenses and Canon TargetImageType
- Changed Priority of Error and Warning tags so that first message takes precedence
- Fixed problem where Nikon D70 files grew by 20 bytes each time they were written
- Minor changes to BMP tags
- Added support for AI (Adobe Illustrator) file format
- Added BMP, PDF, Photoshop and PostScript tests

July 16, 2005 - Version 5.44

- Added read support for BMP (and DIB) images

July 16, 2005 - Version 5.43

- Allow shortcut tags to be used with -tagsFromFile

July 15, 2005 - Version 5.42

- Added ability to read PostScript (EPS and PS) and PDF images
- Decode PhotoshopSettings in TIFF images

July 8, 2005 - Version 5.41

- Added ability to read Photoshop PSD images

July 8, 2005 - Version 5.40

- Improved decoding of Minolta MRW files to support new cameras
- Changed Minolta ImageQuality values to conform with Minolta terminology (thanks to Niels Kristian Bech Jensen)
- Write Windows XP tags to IFD0 instead of ExifIFD (they worked fine in the ExifIFD, but Windows writes them to IFD0 so they really should go there)
- Really quiet option (-q -q) still suppresses warnings, but no longer suppresses errors

July 6, 2005 - Version 5.39

- Using -b option now disables -h, -H and -g options
- Decode Canon Panorama information
- Improved maker note decoding for some Minolta camera models
- Changed base offset for Casio EX-Z3 to fix problems decoding some maker note information (it looks like the samples from dpreview.com I had used to code this originally had been corrupted by 3rd party software because new samples downloaded from another web site didn't have the same problem)
- Improved validation of PreviewImage

July 4, 2005 - Version 5.38

- Translate older 'xap' XMP namespace prefixes (xap, xapRights, xapMM and xapBJ) to their newer 'xmp' counterparts (xmp, xmpRights, xmpMM and xmpBJ) when generating XMP family 1 group names
- Added Minolta LensID (thanks to Shingo Noguchi)
- Other changes to Minolta tags (and fix incorrect spellings of Konica, thanks Niels Kristian Bech Jensen)
- Updated Nikon LensID's (thanks Robert Rottmerhusen)

June 29, 2005 - Version 5.37

- Removed unknown status from Photoshop CopyrightFlag and made it writable
- Decode a new Canon EasyMode value

June 28, 2005 - Version 5.36

- Added new composite tags: DOF, CircleOfConfusion and HyperfocalDistance
- Minor changes to simplify and improve generated XMP when writing
- Convert FocusDistance tag values to meters
- Reject ScaleFactor35efl if outside reasonable limits
- Added a few more Nikon LensID's (thanks Robert Rottmerhusen)
- Ignore white space around '=' sign of arguments in '-@' file

June 24, 2005 - Version 5.35

- Added support for MNG and JNG images
- Added a few new PNG tags

June 21, 2005 - Version 5.34

- Decode ASCII-based APP12 information (tested with Agfa and Polaroid images)
- Decode remaining PNG chunks in original spec except for IDAT (image data)
- Only generate FileSize and FileModifyDate tags for plain files

June 16, 2005 - Version 5.33

- Changed print conversions for Contrast, Saturation and Sharpness throughout to be more consistent and to better conform with the EXIF specification
- Decode Minolta Dimage Z2 MinoltaImageSize

June 15, 2005 - Version 5.32 (production release)

- Changes to a few PNG and MIFF tag names
- Improved PNG/MIFF documentation

June 14, 2005 - Version 5.31

- Decode compressed information in PNG images if Compress::Zlib is available
- Decode profile information (including EXIF, XMP, IPTC and ICC_Profile information) from PNG and MIFF images
- Updated Nikon LensID strings and decode D50 lens info (thanks Robert Rottmerhusen)

June 10, 2005 - Version 5.30

- Added PNG and MIFF read support
- Decode Nikon SensorPixelSize

June 9, 2005 - Version 5.27

- Added -q option

June 8, 2005 - Version 5.26

- Automatically fix out-of-sequence entries in IFD when writing to comply with the TIFF specification (but not in maker notes)
- Create new EXIF information using the same byte order as the maker notes when using -tagsFromFile to copy maker notes to a file which previously contained no EXIF information
- Fixed problem which could copy corrupted maker notes if using multiple -tagsFromFile options in a single command
- Changed Orientation "Rotate 90 CCW" to "Rotate 270 CW", and changed Canon AutoRotate strings to match
- Made StripOffsets and StripByteCounts binary data if output is too long
- Allow "-TagsFromFile '-TAG<SRCTAG'" as well as the current '-SRCTAG>TAG'
- Recognize some more Nikon lenses
- API Changes:
  - Added ByteOrder option to specify byte ordering when creating new EXIF segment in a JPEG file

June 3, 2005 - Version 5.25 (production release)

- Fixed problem with writing IPTC Time tags
- Changed Composite ShutterSpeed to ignore bulb duration if it is negative
- API Changes:
  - Allow tag name to be prefixed by group in calls to SetNewValue()

June 1, 2005 - Version 5.24

- Added new "XMP" tag to allow read/write of XMP data as a block
- Added numbers to subsequent SubIFD group names to allow tags in various SubIFD's to be accessed individually
- Give priority to tags in full resolution image (whichever TIFF directory this is in)
- Renamed ExifData tag to EXIF (but didn't make it writable as a block like XMP)
- Recognize maker notes from more Konica Minolta cameras
- Extract PreviewImage for Samsung Digimax V700, Kenox V10 and Digimax V10
- Changed validation of CanonPictureInfo to work with more PowerShot cameras (Note: for these cameras, CanonImageHeightAsShot may not be meaningful)
- Added a number of new IPTC ApplicationRecord tags
- Added Nikon ExposureDifference tag
- Removed trailing white space in values printed by exiftool

May 27, 2005 - Version 5.23

- Changed behaviour of -tagsfromfile slightly so that '-GROUP:TAG>DSTTAG' now commutes information between different groups unless a destination group is specified
- Improved reliability of calculating offsets in Pentax maker notes

May 26, 2005 - Version 5.22

- Fixed problem with new '-tagsFromFile @' feature which occurred when simultaneously copying tags and writing new values to multiple target files (the new values were only getting written to the first file)

May 25, 2005 - Version 5.21

- Allow target file to be specified by '@' with -TagsFromFile option
- Fixed bug which caused internal error when using -TagsFromFile option to copy PrintIM information to a file that already contained PrintIM data
- Fixed problem which broke the (now deprecated) -allTagsFromFile=FILE syntax
- Fixed problem decoding Pentax Date for some Optio cameras
- Fixed problem in GeoTiff decoding which could cause some tags to be missed
- Decode a number of new Pentax tags (using my new Optio WP!)
- Made Photoshop URL writable
- Limit length of JPEG segment dump at Verbose=4, and add Verbose=5 level
- API Changes:
  - Added SaveNewValues() and RestoreNewValues()

May 20, 2005 - Version 5.20

- Give names to many Photoshop tags, but leave them marked as 'Unknown' so they aren't extracted under normal circumstances (must use the -u option)
- Read/write Kyocera maker notes properly (although Kyocera information remains unknown)
- Changed installation tests to tolerate rounding-off errors or format differences in floating point numbers

May 17, 2005 - Version 5.19

- Added -overwrite_original option

May 16, 2005 - Version 5.18 (production release)

- Added -@ option and two utility files (iptc2xmp.args and xmp2iptc.args) to use with this option for translating between IPTC and XMP tag names
- Disable normal console output if -v option used and no tags specified
- Repair incorrect first byte of MRW preview images when extracting
- More tweaking of -TagsFromFile order of operations

May 14, 2005 - Version 5.17

- Allow 'All' to be used as a group name with '-TagsFromFile' option to preserve original tag groups (eg. '-all:all')
- PrintIM information is now copied with -TagsFromFile
- Decode EXIF:Gamma tag
- Decode Canon 350D FileNumber
- Made a few more tags writable
- Don't rewrite TIFF files which could be Canon 1D RAW files since this format currently isn't supported (can use the -m option to write anyway, which will remove the RAW image data if this is a 1D file)
- Don't add null terminator to UserComment, GPSProcessingMethod or GPSAreaInformation
- Improved logic for handling command line tag names and exclusions, especially when associated with the -TagsFromFile option

May 10, 2005 - Version 5.16

- Decode a number of new Nikon lens-related tags (thanks again Robert Rottmerhusen)
- Various other improvements

May 7, 2005 - Version 5.15

- Added powerful new information redirection feature to -TagsFromFile option
- Added writable File:FileModifyDate tag which represents the filesystem date/time of last modification
- Allow '*' to also be used as well as 'all' to represent all tags, although this feature is not documented for the command-line options because 'all' is more convenient since '*' must be quoted to prevent shell globbing

May 5, 2005 - Version 5.11

- Fixed problem where the proper tags weren't excluded from being extracted if -GROUP:All and --TAG options are used together on the command line

May 5, 2005 - Version 5.10

- Changed -AllTagsFromFile option to -TagsFromFile and allow copied tags to be specified on the command line. (-AllTagsFromFile is preserved as an alias to -TagsFromFile for backward compatibility.)
- Allow -GROUP:All and --GROUP:All on command line to extract or exclude all tags in specified group
- Allow family 1 group names to be used when deleting groups with -GROUP:All=
- Added composite CFAPattern derived from CFARepeatPatternDim and CFAPattern2
- Fixed problem where tags which can exist in both IFD0 and ExifIFD weren't being properly removed from one IFD when written to the other
- Added FAQ

May 2, 2005 - Version 5.06

- Made a few more EXIF tags writable
- No longer add null-terminator to JPEG comment (was confusing xv)

Apr. 20, 2005 - Version 5.05 (production release)

- Added Nikon LensFStops tag (thanks to Robert Rottmerhusen)
- Reliability improvements for writing maker notes information
- exiftool now returns error status if there were errors reading/writing files

Apr. 18, 2005 - Version 5.04

- Fixed problem where maker notes of Olympus C2500L could get corrupted when writing

Apr. 18, 2005 - Version 5.03

- ExifTool now requires Perl version 5.004 or higher (previously 5.002 was OK)
- Restrict the size of preview images where data is referenced directly as the value data of an IFD entry (only affects Casio images)
- Fixed problems rewriting some Casio maker notes
- Change priority of orientation (and a number of other tags which may appear in IFD1) so value in IFD0 takes precedence of value in IFD1 if it exists
- API Changes:
  - Allow any file reference, not only GLOB references, to be used in function calls

Apr. 16, 2005 - Version 5.02

- Fixed problem rewriting Pentax *istD preview image

Apr. 15, 2005 - Version 5.01

- Major speed improvements for writing large JPEG files with preview images
- Fixed problem rewriting preview in Olympus E-1 and E-300 images
- Old large preview is now properly removed when writing new small preview
- Allow PreviewImage to be deleted (ie. set length to zero)
- Don't extract images that have zero length
- Deleting MakerNotes group now works in conjunction with -allTagsFromFile
- Change image validation again to only validate images for tags that were specifically requested
- Separate lookups by manufacturer for Olympus lens information

Apr. 14, 2005 - Version 5.00

- ALL MAJOR PLANNED WRITING FEATURES NOW IMPLEMENTED!
- Finally solved problem of writing large preview images in JPEG files
- -AllTagsFromFile now sets PreviewImage to 'dummy' if it exists in the maker notes to avoid writing a large preview to the destination file (now you have to do this manually afterwards if this is what you want)
- Fixed problem rewriting Olympus E1 maker note subdirectories
- Only validate extracted images when Binary (-b) option is used
- Rename Olympus PreviewImageAvailable to PreviewImageValid, and check/set this tag when reading/writing the preview image
- Change priority of X/YResolution tags so IFD0 value takes precedence
- Changes to Olympus Lens decoding

Apr. 11, 2005 - Version 4.95

- Added ability to delete all meta information, or all information in a group
- Create some mandatory IPTC tags automatically when writing IPTC information
- Decoded a bunch more Olympus tags (thanks to Frank Ledwon)
- Decoded a couple more Canon 1D MkII tags (thanks to Denny Priebe)
- Fixed problem where Sony maker notes could be corrupted when rewriting file
- Fixed problem that could cause wrong tag description to be printed for missing tags when the -f option is used
- Account for different encoding of Canon ExposureTime in 20D and 350D, and lower priority of Canon ExposureTime and FNumber so regular EXIF values take precedence because it appears these values may be model dependent (I hate it when that happens)

Apr. 6, 2005 - Version 4.94

- Added support for Kodak DX3215 and DX3700
- Improved Kodak decoding and changed some Kodak tag names
- Improved logic to guard against cyclical recursion in EXIF directories
- Allow tags to be edited in IFD2, IFD3, etc...
- Patched problem when writing Canon 350D images due to probable bug in 350D firmware (version 1.0.1) that writes an incorrect ThumbnailLength in IFD1

Apr. 2, 2005 - Version 4.93 (production release)

- Added IPTC XMP Core support
- Added support for Kodak CX4200 plus other minor Kodak changes
- Made Kodak maker notes writable
- Minor changes to Olympus tag names and decoding
- Split HTML TagNames documentation into separate files

Mar. 31, 2005 - Version 4.92

- Added support for Kodak and Ricoh cameras
- Decode still more Olympus E-1/E-300 tags (thanks Markku Hänninen)
- Added 'Directory' tag
- Decode a few more Pentax tags (thanks to John Francis)
- Allow newlines in tag values on command line when writing
- Fixed problem rewriting makernotes with sub directories (eg. Olympus)

Mar. 28, 2005 - Version 4.91

- Decode yet more Olympus E-1/E-300 tags (thanks Markku Hänninen)
- Changed decoding of Olympus E-300 Quality tag
- Patched bug in Olympus maker notes that was causing ExifTool to report an error when reading ORF files
- Fixed problem where strings weren't being properly truncated at the null terminator if there was a newline after the terminator
- Improved decoding for some Nikon tags (thanks Tom Christiansen)
- Added Nikon shortcut
- Added composite SubSecDateTimeOriginal tag
- Fixed problem where CRW file without file extension wasn't being identified properly
- Fixed problem extracting thumbnail from some (specifically Olympus) images
- Changed verbose output to always show original EXIF format
- Skip over EXIF entries with unknown format instead of aborting (while reading only)
- Recognize TIFF field type 13

Mar. 24, 2005 - Version 4.90

- Extract Olympus PreviewImage, and decode a bunch more Olympus tags
- Improvements to documentation

Mar. 23, 2005 - Version 4.89

- Decode subdirectories in Olympus maker notes (now much more information is extracted for E-1 and E-300 cameras, although most is still unknown)

Mar. 22, 2005 - Version 4.88

- Convert exiftool help to POD format

Mar. 15, 2005 - Version 4.87 (production release)

- Added notes to TagNames documentation

Mar. 11, 2005 - Version 4.86

- Extract PreviewImage from CR2 files
- Create mandatory GPS tags when adding new GPS directory
- Bring IPTC newsphoto support up to spec (as if anyone uses this crap)
- Fixed problem when setting 8-bit integer IPTC values

Mar. 10, 2005 - Version 4.85

- Create most mandatory EXIF entries automatically when a new EXIF directory is created
- Fixed problem which caused an error when adding XMP information to a TIFF file which didn't previously contain XMP
- Made '=' optional with -AllTagsFromFile option
- Fixed problem with verbose dump of zero-length directory (eg. Sony F717 maker notes)

Mar. 9, 2005 - Version 4.84

- Interpret Olympus ImageQuality of 6 as RAW
- Remove validation of TIFF identifier to allow forward compatibility with untested RAW file formats (ORF files in particular seem to fiddle with this identifier)

Mar. 8, 2005 - Version 4.83

- Extract ThumbnailImage from Canon CRW files written by some cameras
- Recognize ORF files from Olympus C5060WZ (and hopefully some others too!)

Mar. 7, 2005 - Version 4.82

- Made a number of new EXIF tags writable, but classify them as 'unsafe' so they aren't copied over with the -AllTagsFromFile option
- Recognize a number of new and very uncommon EXIF tags
- Remove copy number from tag name when using the -S option
- Interpret Photoshop XMP:ColorSpace value of 4294967295 as 'Uncalibrated'

Mar. 4, 2005 - Version 4.81

- Added user-definable shortcuts
- Fixed problem with XMP:Identifier (should have existed in both XMP-dc and XMP-xmp)

Mar. 2, 2005 - Version 4.80

- The -n option now prints binary data values as "Binary data #### bytes"
- API Changes: (NOTE: Change in API behaviour for binary data values)
  - Changed returned ValueConv values so that binary data is now returned as a SCALAR reference, the same as with PrintConv values

Mar. 1, 2005 - Version 4.73 (production release)

- Minor changes to XMP parsing to increase speed and improve validation

Feb. 28, 2005 - Version 4.72

- Extract info from UTF-16 and UTF-32 encoded XMP
- Convert EXIF text fields if encoded in Unicode
- Fixed a few incorrect XP character translation codes
- Fixed name of Nikon ColorBalanceD2H tag

Feb. 25, 2005 - Version 4.71

- Fixed bug introduced in 4.70 which caused error when transferring information using -AllTagsFromFile from a RAW file to a JPEG file

Feb. 24, 2005 - Version 4.70

- Allow family 1 group name to be specified for any tag while writing
- Fixed problem with writing Nikon PreviewImage to NEF files

Feb. 23, 2005 - Version 4.67

- Added -L option to allow XP characters to be converted to Latin character set instead of UTF-8. (Now XP characters can be displayed properly in terminal windows which use either the UTF-8 or WinLatin1 character set.)
- Make JpgFromRaw image writable in Nikon NEF files

Feb. 21, 2005 - Version 4.66

- Recognize JPEG 2000 XMP UUID information
- Extract Meta information from JPEG APP3
- Yet more playing with XP characters (this has been a learning process for me). Now special characters show up properly in my OSX terminal window, and the reverse translation works so now they get written properly as well (for Perl 5.6.1 or greater anyway... Earlier versions don't have the required UTF-8 support to handle these special characters)
- Improvements to TagNames documentation (including changing format names to make them more consistent across different types of meta information)

Feb. 18, 2005 - Version 4.65

- Fixed problem in translating XP characters

Feb. 17, 2005 - Version 4.64 (production release)

- Added new tag name documentation (replaces old tag lists)
- Made a few more DNG tags writable

Feb. 15, 2005 - Version 4.63

- Remove null terminators in ICC_Profile 'desc' strings
- Treat Olympus CameraID as a string (why wasn't it written this way?)
- Added print conversion for EXIF:CFAPattern

Feb. 14, 2005 - Version 4.62

- Convert XPTitle, XPComment, XPKeywords etc from XP character codes and add write support for these tags
- Decode JPEG 2000 Resolution, Label and URL information
- Another try at patching 3 digit exponent situation which causes failed tests on MSWin32-x86
- Removed .J2K from recognized extensions (since apparently this is a raw JP2 codestream, and doesn't contain any metadata that ExifTool can extract)

Feb. 14, 2005 - Version 4.61

- Don't print filename line when -p option used
- JPEG 2000 improvements
- Also recognize .JPX and .J2K extensions

Feb. 11, 2005 - Version 4.60

- Added support for reading the JPEG 2000 (.JP2) files
- Improved warnings on errors while setting tag values

Feb. 10, 2005 - Version 4.54

- Added ColorTemperature tag for many Canon models
- Added AutoRotate for Canon 10D and 300D
- Lowered priority of Nikon ISO so that EXIF ISO is used instead if both exist
- Changed names of PentaxISO and Casio ISOSetting to ISO, and lowered priority as with Nikon ISO
- Made Photoshop EXIF Camera RAW tags writable

Feb. 7, 2005 - Version 4.53 (production release)

- Added FileNumber for Canon 20D (decoded by Juha Eskelinen)
- Removed CanonA0Tag

Feb. 4, 2005 - Version 4.52

- Added another CanonRaw test
- Changes to Canon CRW documentation

Feb. 4, 2005 - Version 4.51

- Finally found documentation for Canon CRW files (CIFF format)!!
- Changed CanonRaw to bring code up to CIFF specification
- Added a bunch more CanonRaw tags
- Updated Canon CRW documentation

Feb. 2, 2005 - Version 4.50

- Allow writing to specific IFD
- Allow permanent tags (eg. MakerNotes tags) 'deleted' by setting them to an empty string if '' is a valid value for the tag
- Added test for rewriting Nikon D70 information
- Added missing inverse conversion routines for GPS tags (now they are all writable)
- Decoded a few more Canon and CanonRaw tags
- Added -z option to extract information from images in compressed files
- Improved CanonRaw verbose output
- Remove garbage after null terminator in CanonRaw string-type tags

Jan. 30, 2005 - Version 4.45

- Added a few more Canon tags
- Fixed bug with divide by zero error (in Perl, '0.0' is a true value -- doh!)

Jan. 30, 2005 - Version 4.44

- Sort entries in synthesized Canon MakerNotes directory
- Interpret Canon custom functions for models other than 10D in CRW files

Jan. 29, 2005 - Version 4.43

- Synthesize Canon MakerNotes information when using -allTagsFromFile for a CRW file
- Decode WhiteBalance table in Canon maker notes
- Rename CanonRaw CanonFileType tag to CanonImageType

Jan. 28, 2005 - Version 4.42

- Fixed problem where multiple IPTC tags could be created if replacing specific IPTC tag values with 'TAG-=VALUE'
- Made EXIF SceneType writable
- Renamed Nikon ISOUsed tag to ISO
- Added documentation of Canon RAW (CRW) file format

Jan. 27, 2005 - Version 4.41

- Added write support for Canon exposure parameters
- Change validation of CanonPictureInfo to get it working for Canon 20D

Jan. 26, 2005 - Version 4.40

- Added ability to write Canon RAW (CRW) files. With this format you aren't allowed to add or delete any new tags (just as with the MakerNotes), except for JpgFromRaw, which I like to be able to delete to save disk space
- Added validation of JpgFromRaw images
- Relax filtering on non-ASCII characters by exiftool script to allow high-ASCII characters to be printed
- Changed the tense of Orientation values to try to make the meaning more clear. This tag can be a bit confusing. It gives the rotation that must be applied to the image to view it properly (hence the rotation of the camera when the picture was taken).
- Patched problem which was causing failed tests on some platforms (floating point format has 3 digits in exponent on Perl 5.8.5 MSWin32-x86, grrrr...)
- API Changes:
  - Added 'Compact' option to not write blank padding as per XMP and IPTC specs

Jan. 24, 2005 - Version 4.36 (production release)

- Added support for reading Olympus Raw Format (ORF)

Jan. 23, 2005 - Version 4.35

- Moved a couple of the informational warnings to verbose mode
- Suppress warnings an non-critical errors with -m option
- Made a few more of the EXIF tags writable
- Made model-dependent tags Pentax FocalLength and Olympus Quality writable
- Added ability to write CanonCustom tags
- Added range check for integer values

Jan. 21, 2005 - Version 4.34

- Fixed problem when writing Canon maker notes with -allTagsFromFile
- Added -o option to write to different file or directory
- Added handler to clean up temporary file on Ctrl-C
- Re-wrote routine to rationalize floating point values (it is slower now, but produces much prettier fractions)
- Other minor improvements to writer code

Jan. 19, 2005 - Version 4.33

- Added check at higher level and return warning if trying to delete information from maker notes
- Make GPS latitude and longitude a bit more flexible about the format they accept when writing
- Updates to documentation

Jan. 19, 2005 - Version 4.32

- Now rewrites Casio EX-Z3 maker notes properly (well, not actually 'properly', but the way they were written in the first place, which is wrong)
- Added warning when writing information if original IFD entries were not in the proper sequence, which is a violation of EXIF specs. (And surprise, you'll never guess who does this too... Yup, the EX-Z3.)
- Fixed parsing problem with GPSProcessingMethod and GPSAreaInformation
- No longer truncates 'undef' values at first null character
- Changed all DataDump tags to binary data types
- Changed some warning messages
- Documented the -m option (it's now official, even though it's been there since version 4.10)
- Added some more writer tests

Jan. 18, 2005 - Version 4.31

- Now also copies over preview image in Nikon NEF files

Jan. 18, 2005 - Version 4.30

- Now copies over preview images in EXIF data (large, external previews still not copied)
- Account for funny offsets in Casio EX-Z3 maker notes while extracting data (but haven't figured out how to handle them when writing)
- Fixed bug introduced in 4.20 that broke extraction of Canon PreviewImage

Jan. 17, 2005 - Version 4.23

- Improve handling of unrecognized maker notes when writing

Jan. 17, 2005 - Version 4.22

- Added check in -AllTagsFromFile to test for pointers in the maker notes directory running outside the maker notes data. If they do, a warning is issued and the maker notes are rebuilt properly before copying.
- Fixed problem which could corrupt some values when editing maker notes

Jan. 17, 2005 - Version 4.21

- Added Olympus Red/BlueBalance

Jan. 17, 2005 - Version 4.20

- Added ability to edit MakerNotes!
- Added more validation when writing IPTC information
- Fixed display of Nikon FlashExposureComp for negative values
- Fixed problem where the large JPEG image in Nikon and Pentax raw files was misidentified as the ThumbnailImage. It is now extracted as JpgFromRaw. This allows all 3 JPEG images contained in Pentax PEF files to be extracted: ThumbnailImage, PreviewImage and JpgFromRaw.
- Fixed problem on systems that use backslashes in directory names that prevented exiftool from finding its libraries if not installed
- Changed many Pentax tag names to remove "Pentax" prefix and conform more to the other tag names (moving information between files of different formats is much easier if tags have standardized names):
  - PentaxPictureMode => PictureMode
  - PentaxFocusMode => FocusMode
  - PentaxWhiteBalance => WhiteBalance
  - PentaxAEMetering => MeteringMode
  - PentaxFocalLength => FocalLength
  - PentaxZoom => DigitalZoom
  - PentaxSaturation => Saturation
  - PentaxContrast => Contrast
  - PentaxSharpness => Sharpness
- Fixed FocalLength conversion for Pentax Optio S
- Fixed printout of Nikon FileSystemVersion for older Nikon models
- More improvements to reliabilty of preview image extraction
- Fixed Quality for Olympus E-1

Jan. 12, 2005 - Version 4.15

- Added Pentax LensType and RawImageSize tags
- Change printing of some unknown values to hexadecimal
- Now recognizes Nikon PEF files
- More reliable extraction of preview and thumbnail images, particularly for the various models of Pentax cameras
- Added decoding of the Canon 20D custom functions and a new Canon20D shortcut (thanks to Christian Koller)
- Improved write logic for EXIF information
- Improved logic in determining byte ordering of maker notes

Jan. 10, 2005 - Version 4.14

- Fixed problem introduced in 4.13 that messed up new 4.12 features. doh. (and added test to keep this from happening again!).
- No longer store bad directory data as a tag (dump in verbose output instead)

Jan. 9, 2005 - Version 4.13

- Added check on size of new ThumbnailImage so ExifTool doesn't try to write an image that is too large (>60k) into the JPEG EXIF APP1 segment

Jan. 9, 2005 - Version 4.12

- -AllTagsFromFile option now copies over the maker notes
- Changed some misleading warning messages

Jan. 8, 2005 - Version 4.11

- Improved validation of tag values with -AllTagsFromFile option

Jan. 7, 2005 - Version 4.10

- Added ability to write EXIF, IPTC and XMP tags in JPEG and TIFF files!
- Allow Photoshop APP13 data to span multiple segments (read and write)
- Added -TAG+=VALUE, -TAG-=VALUE and -TAG<=VALUE syntaxes
- Added -GROUP:TAG syntax to allow tag group to be specified
- Added powerful -AllTagsFromFile=SRCFILE option to copy all tags from file
- Added -listw option to list all writable tags
- Added -E option to escape output values for HTML
- Fixed -w option to only replace extension after last '.' in filename if more than one '.'
- Unescape XMP character codes when extracting values (and escape again when writing)
- Now processes all IFD's of TIFF imags (not just IFD0)
- Added data length check in hex dump of verbose option
- Allow group name to be specified as prefix to tag name on command line
- Renamed a few Nikon tags: FlashExposureComp to FlashExposureBracketValue, FEC to FlashExposureComp, and ShutterReleaseMode to ShootingMode
- Extract Nikon preview image
- Changed descriptions for Aperture and Shutter Speed to drop the Av/Tv Canonism
- Improved logic to recognize more types of unknown maker notes
- Recognize a couple more values of the Canon WhiteBalance tag
- Renamed IPTC 'SupplementalCategory' to 'SupplementalCategories'
- Handle timezone in times
- API Changes:
  - Fixed problem where first tag name passed to GetInfo() was ignored
  - The values returned by ImageInfo() and GetInfo() may contain array references to indicate lists of values if PrintConv is disabled
  - Added a bunch of new stuff...

Dec. 15, 2004 - Version 4.05

- Added a couple of Nikon tags (thanks Brian Ristuccia)
- Now preserves original file by renaming to "NAME_original" when writing information
- Don't preserve file time by default when writing. Added -P option to do this.
- Changes to spec file

Dec. 11, 2004 - Version 4.04

- Fixed problem which could corrupt JPEG images when adding comments (Note: if done, the damage can reversed by removing the comments with the same version of ExifTool that added them.)

Dec. 6, 2004 - Version 4.03

- Major overhaul of verbose message output
- Change -v option to allow verbose level to be specified (eg. -v3 = very very verbose)
- Added a new Nikon tag (thanks Thomas Walter)
- Count images which were unchanged when writing tags
- Changed FileType 'JPG' to 'JPEG'

Dec. 2, 2004 - Version 4.02

- Fixed problem with rewriting some JPEG images
- Preserve original file modification time when updating tags in a file
- Report of number of files updated
- API Changes:
  - Changed arguments of WriteInfo() and allow scalar and file references to be used

Dec. 1, 2004 - Version 4.01

- Changed -o option to -w to avoid confusion since we now write image files too
- Added warning if specified image file doesn't exist

Dec. 1, 2004 - Version 4.00

- Started down the road of adding write support:
  - Allow writing of Comment tag to JPEG and GIF files
- API for write functions still under development and is likely to change
- Clean up formatting of Nikon string tags (fix case and remove trailing spaces)

Nov. 30, 2004 - Version 3.96

- Changed JPEG read routine to speed things up a bit
- Added a few more ICC_Profile tags

Nov. 25, 2004 - Version 3.95

- Improved compatibility with old Perl versions (now runs, albeit with warnings, on 5.003)

Nov. 25, 2004 - Version 3.94 (production release)

- Patched problem with reading XMP data using Perl 5.6.x (Perl bug)
- Put lib directory first in exiftool include list to take precedence over installed versions
- Continue trying to parse JPEG image after an unrecognized APP1 segment

Nov. 24, 2004 - Version 3.93 (production release)

- Final round of ICC_Profile updates
- Increase precision of extracted rational values
- Internal Changes:
  - Build in better support for all data formats
  - Standardize data format names
  - Clean up and streamline data read routine

Nov. 22, 2004 - Version 3.92

- Fixed problem with -p option when multiple files are specified
- Enhancements to ICC_Profile information, including extracting information from profile header
- Subdivide ICC_Profile group in family 1
- Added Minolta ImageStabilization tag

Nov. 20, 2004 - Version 3.91

- Fixed problem where some tags were not extracted properly from Canon CR2 files
- Internal Changes:
  - Cleaned up and simplified pointer calculations and dirInfo members

Nov. 20, 2004 - Version 3.90

- Extract information from ICC Profiles
- Extract undocumented IFD0 Photoshop tags
- Added support for Minolta RAW (MRW) file format
- Added support for Konica-Minolta cameras
- Improved decoding for Minolta maker notes
- Extract (the sometimes misleading) EXIF WhiteBalance tag even if WhiteBalance was extracted from the maker notes if the Duplicates option is set. (Previously it was only extracted as an Unknown tag in this case.)
- API Changes:
  - Return list of all tags in image if GetFoundTags() or GetTagList() are called before ImageInfo() or GetInfo()

Nov. 15, 2004 - Version 3.85

- Extract a couple more Photoshop tags (including PhotoshopQuality)
- All XMP lists now comma separated (previously, 'alt' lists were separated by '|')
- API Changes:
  - GetValue() now returns reference to array if values form a list and ValueConv is specified

Nov. 12, 2004 - Version 3.84

- Added test of GetTagID()
- Fixed bug in GetTagID() which was causing special tags to get overwritten

Nov. 12, 2004 - Version 3.83

- Added -D and -H command line options
- API Changes:
  - Added GetTagID()

Nov. 11, 2004 - Version 3.82 (production release)

- Improved diagnostic output for failed tests in installation

Nov. 11, 2004 - Version 3.81

- Updated Olympus module to also support Epson cameras
- Moved MakerNotes code into separate module
- Added tests for Sony and Unknown maker notes

Nov. 10, 2004 - Version 3.80

- Added support for Panasonic/Leica cameras
- Updated Pentax module to also support Asahi cameras
- Decode a couple more Minolta camera model types

Nov. 4, 2004 - Version 3.74 (production release)

- Properly localize $_ in public Image::ExifTool subroutines

Nov. 3, 2004 - Version 3.73

- Changes to tests to avoid false failures on MSWin32-x86-multi-thread 4.0

Nov. 1, 2004 - Version 3.72 (production release)

- Fixed minor bug in generation of family 1 XMP group names
- Changes to Photoshop family 2 groups

Oct. 30, 2004 - Version 3.71

- Switched group families 0 and 1 so the general location is now the default
- Fixed bug when sorting by order of group for any family other than 0
- Added test 17 to ExifTool.t

Oct. 29, 2004 - Version 3.70

- Major improvements to XMP parsing
- Divided XMP group in family 0 based on the XMP namespace prefix
- Changed a few long tables to binary type
- Recognize some new YCbCrSubSampling values
- Display DNG LocalizedCameraModel in plain text
- Patched problem in FileSource reported by Sigma cameras
- Added information about tag format to verbose hex dump

Oct. 22, 2004 - Version 3.61

- Added support for DNG file format
- Added and updated a number of EXIF tags for FAX and other uncommon images
- Added Photoshop URL tag
- Attempt to extract image from files with unrecognized extensions assuming TIFF format
- Added "Image format error" if the image type is recognized but the format is bad
- Changed "Unknown file type" error to "Unknown image type"
- Moved POD documentation into separate .pod files
- Started referencing sources for tag definitions in the source code

Oct. 1, 2004 - Version 3.60 (production release) - initial CPAN release!

- Changed group family 0 to divide EXIF group into individual IFD groups
- Fixed typos in some Casio tag names
- API Changes:
  - Changed name of File::RandomAccessFile to File::RandomAccess
  - Changed default setting of Duplicates to 1

Sept. 21, 2004 - Version 3.51

- Improvements to interpretation of Nikon D70 ISO settings

Sept. 16, 2004 - Version 3.50

- Fixed problem with duplicate tags showing up without the -a option
- Changed Nikon DataDump to a binary type
- Added D70Boring shortcut

Sept. 14, 2004 - Version 3.49

- Changed installation to also install the 'exiftool' script

Sept. 13, 2004 - Version 3.48

- Changed UserComment to skip first 8 bytes since the comments come after an 8 byte character code

Sept. 10, 2004 - Version 3.47

- Added support for second type of Casio maker notes (MakerNoteCasio2)

Sept. 1, 2004 - Version 3.46

- Fixed minor bug in PrintConv of FileNumber for CanonRaw files

June 3, 2004 - Version 3.45

- Recognize Canon 1D Mk II raw files (.CR2)
  (Note: Not properly decoding maker notes from these files yet)

May 28, 2004 - Version 3.44

- Improved validity check of Sony maker notes

May 18, 2004 - Version 3.43

- A couple more changes to the Nikon maker notes

May 17, 2004 - Version 3.42

- Additions to Nikon maker notes for values derived from D70

Apr. 28, 2004 - Version 3.41

- Fixed some errors when running on older Perl versions

Apr. 7, 2004 - Version 3.40

- Try to extract data from unrecognized maker notes (assuming standard EXIF format)
- Added tests for different maker notes

Apr. 6, 2004 - Version 3.37

- Added support for Sigma maker notes
- Remember to add new files to MANIFEST so they get included in release. Doh

Apr. 6, 2004 - Version 3.36

- Added support for Sanyo and Minolta maker notes
- Added skeleton for interpreting Sony maker notes
- Interpret Pentax PrintIM

Apr. 6, 2004 - Version 3.35

- Added support for Nikon PrintIM
- Changed names of duplicate EXIF tags

Apr. 5, 2004 - Version 3.34

- Added all missing tag definitions from TIFF 6 standard
- Added a few more EXIF tag definitions
- Interpret PrintIM IFD
- Fixed interpretation of Interoperability IFD
- Fixed potential endless loop bug introduced in version 3.33

Apr. 5, 2004 - Version 3.33

- Parse SubIFD of Nikon NEF file (now extracts raw image size and thumbnail image)

Apr. 2, 2004 - Version 3.32

- Changes to some Nikon tag names
- Added Nikon Saturation
- Documentation improvements

Mar. 31, 2004 - Version 3.31

- Now recognizes NEF (Nikon Electronic image Format) files

Mar. 29, 2004 - Version 3.30

- Removed -w option
- Fixed problem with some XMP tags being put in the EXIF group
- More minor speed improvements
- API Changes:
  - GetDescription() now requires an ExifTool object reference
  - Removed WarnDuplicateDescriptions()

Mar. 26, 2004 - Version 3.27

- Optimized a few routines to speed things up a bit
- API Changes:
  - Changed GetDescription() documentation to indicate it is called with an ExifTool object (this is still optional, but will be mandatory with the next version)

Mar. 25, 2004 - Version 3.26

- Don't generate warning if end of IPTC block is padded with nulls

Mar. 19, 2004 - Version 3.25

- Fixed problem with 'Input' sort order

Mar. 19, 2004 - Version 3.24

- Only return PreviewImage if it is a valid JPG (otherwise set 'Warning')

Mar. 16, 2004 - Version 3.23

- API Changes:
  - Added GetGroups()
  - GetGroup() now returns group names for all families if used in list context and family not specified

Mar. 12, 2004 - Version 3.22

- API Changes:
  - Changed GetInfo() to return list of tags like ImageInfo() if list reference provided
  - Fixed bug that caused GetInfo() to ignore specified tags

Mar. 11, 2004 - Version 3.21

- Fixed problem with Composite group in family 1
- Changed case of Exif to EXIF in family 1
- -group option now lists Composite group as it should
- Internal Changes:
  - Cleaned up handling of function arguments

Mar. 10, 2004 - Version 3.20

- Added -group option
- Added group families 1 and 2
- Can now specify excluded tags with leading '-' (replaces -x option)
- API Changes:
  - Added ClearOptions(), ExtractInfo(), GetInfo(), CombineInfo(), GetTagList() and GetAllGroups()
  - Removed IsVerbose() function (use Options('Verbose') instead)
  - Allow groups to be excluded by specifying leading '-' on group name
  - ImageInfo() and GetInfo() now use specified group order to set tag precedence if Duplicates option is not set
  - Change default value of Duplicates option back to 0

Mar. 1, 2004 - Version 3.15

- Changed format of all date and time tags to EXIF standard
- Added some composite date/time tags
- Fixed date formatting so -d option should now work with all combined date/time tags
- Other minor changes to GPS information
- Improvements to TIFF processing
- Set value to "Undefined" if PrintConv evaluates to undefined value
- Added -G option
- API Changes:
  - Changed all option names: shortened and changed to mixed case (sorry!)
- Internal changes:
  - Standardized arguments to all processing procedures
  - Made call to processing procedure more automatic
  - Removed TABLE_TYPE tag and added PROCESS_PROC
  - Added ProcessTagTable() member function

Feb. 27, 2004 - Version 3.14

- Added GPS tag conversions and GPS test
- Values that can't be converted now show up simply as "Unknown (X)"

Feb. 26, 2004 - Version 3.13

- Print out errors from exiftool script (since Image::ExifTool no longer prints them)
- Added more tests
- Failed tests now leave ".failed" file in "t" directory for post mortem

Feb. 25, 2004 - Version 3.12

- Moved all image-related warnings to new Warning tag

Feb. 25, 2004 - Version 3.11

- Added GeoTiff support
- Added -x option
- Improvements to documentation
- Improve XMP parsing for 'Bag' elements
- Capitalize first letter of XMP tag descriptions
- Patch problem with APP13 resource written by older Photoshop versions
- API Changes:
  - Added EXCLUDE and GROUP# options
  - Change default value of SAVE_DUPLICATES option to 1

Feb. 20, 2004 - Version 3.10

- Restructuring only -- the behaviour of the exiftool script was not changed
- Moved html documentation to new html directory
- API Changes:
  - Conform to standard Perl module mechanics:
    - Changed ExifTool package name to Image::ExifTool
    - Added Makefile.PL and other standard files
    - Added Perl pod documentation
    - Added standard test files
    - Moved modules into lib directory
    - Changed "TagTables" directory name to "ExifTool"
  - Added extra parameter in new RandomAccessFile

Feb. 20, 2004 - Version 3.05

- Fixed problem where output files (-o) weren't written if -p option used

Feb. 19, 2004 - Version 3.04

- Added -U option to allow display of unknown values in Canon binary data blocks
- Made unknown tag names more specific when -u or -U option used
- Added RawData and DecoderTable tags (for Canon RAW file)

Feb. 17, 2004 - Version 3.03

- Fixed RandomAccessFile package name (should have been File::RandomAccessFile)
- Added IxusAFPoint tag to Canon maker notes (thanks Michael Rommel)
- Avoid scanning past end of Canon binary data blocks
- API Changes:
  - GetFoundTags() and GetRequestedTags() now return list instead of list reference

Feb. 16, 2004 - Version 3.02

- Improved handling of Pentax maker notes

Feb. 15, 2004 - Version 3.01

- API Changes:
  - Added GetValue() function
  - Completed API documentation

Feb. 13, 2004 - Version 3.00

- Removed -all option (it is now the default -- specify -common for previous default behaviour)
- Added -a option to allow printout of duplicate tag values
- API Changes:
  - I am finally happy with the API, so future major changes are less likely (hence the major version number)
  - No longer return ARRAY reference for list of tags (Instead, tag values are joined in a comma separated list if tag 'List' flag is set)
  - Added SAVE_DUPLICATES option
  - Added BuildCompositeTags() to EXPORT_OK list
  - GetFoundTags() now sorts tags in specified order
  - GetDescriptions() longer returns undef if the description doesn't exist

Feb. 12, 2004 - Version 2.71

- Still more playing with Pentax maker notes
- More API Changes:
  - Added RandomAccessFile.pm
  - All image file i/o now done through a RandomAccessFile object
    --> allows proper piping and use of string i/o
  - Allow scalar reference to be passed to ImageInfo() (for string i/o)

Feb. 11, 2004 - Version 2.70

- More tweaking of Pentax maker notes
- Changed API to be more object oriented:
  - Removed SetVerbose(), ExtractUnknown(), SetDateFormat(), EnablePrintConversion(), EnableCompositeTags()
  - Added Options() to replace above functions
  - Changed WarnDuplicateTags() to WarnDuplicateDescriptions()
  - Added GetFoundTags() and GetRequestedTags()
  - Many functions now take ExifTool object reference as first argument
  - ImageInfo() no longer returns reference to ExifTool object when used in list context (you have to use "new ExifTool" and the OO form of ImageInfo() if you want the object)

Feb. 10, 2004 - Version 2.62

- Added -u option to allow display of unknown tags
- Major changes to Pentax maker notes (still needs work) (thanks Wayne Smith)

Feb. 09, 2004 - Version 2.61

- Allow file reference to be passed to ImageInfo()
- Allow file to be read from standard input by specifying "-" as file name
- Added FileType tag

Feb. 07, 2004 - Version 2.60

- Improve IPTC parsing and add support for more IPTC data types
- Read Photoshop APP13 records properly
- Added -g option
- Move shortcuts into separate module
- Changes to API:
  - Removed LoadAllTables() and added GetAllTags()
  - Removed GetDescriptions() and added GetDescription()
  - Changed GetShortcuts() to return a list
  - Added tag groups and GetGroup() function
  - Return object data from ImageInfo() for use in GetGroup()

Jan. 30, 2004 - Version 2.51

- Speed up JPG reading code
- API no longer returns references to image-specific static data
- Added ExifToolVersion tag

Jan. 29, 2004 - Version 2.50

- Changed API to return binary data as SCALAR reference and list of values as ARRAY reference (thanks Dan Heller for the suggestions)
- Attempt to make case of tag descriptions more consistent

Jan. 28, 2004 - Version 2.41

- Scan photoshop JPG 0xe1 garbage for possible XMP information

Jan. 27, 2004 - Version 2.40

- Improved handling of XMP data
- Changed output format and added -l option

Jan. 21, 2004 - Version 2.36

- Don't output trailing linefeed when -b option used

Jan. 19, 2004 - Version 2.35

- Changes to verbose output
- Added TagTables::CanonRaw::CleanRaw() as an API utility function

Jan. 16, 2004 - Version 2.34

- Added 'Validate' check for Canon data fields
- Changed ScaleFactor35efl to use FocalLengthIn35mmFormat if available

Jan. 15, 2004 - Version 2.33

- Added ScaleFactor35efl, FocalLength35efl, Lens35efl
- Allow Composite tags to Require/Desire each other
- Changed FlashType to use FlashBits instead of CanonFlashMode

Jan. 13, 2004 - Version 2.32

- Added -d (date format) option
- Added -p (print format file) option

Jan. 9, 2004 - Version 2.31

- Exif WhiteBalance no longer overrides maker-specific WhiteBalance

Jan. 8, 2004 - Version 2.30

- Added support for IPTC format information

Jan. 6, 2004 - Version 2.25

- Fixed problem with ImageInfo() function prototype
- Fixed printout of JpgFromRaw message (doesn't affect JPG extraction)
- Set output files to binmode (including STDOUT) if -b option used (thanks David Anson)

Jan. 1, 2004 - Version 2.24

- Fixed -list option to show all available tag names

Dec. 18, 2003 - Version 2.23

- Changed "Disable" routines to "Enable"

Dec. 17, 2003 - Version 2.22

- Fixed make/model tags which I broke with a recent change
- Removed null terminator from returned strings

Dec. 16, 2003 - Version 2.21

- Fixed problem with decoding some Nikon maker notes
- General improvements and tweaks to the code

Dec. 14, 2003 - Version 2.20

- Now extracts preview image from 300D JPG files (PreviewImage)
- Changed ThumbnailData tag name to ThumbnailImage

Dec. 12, 2003 - Version 2.10

- ExifTool::ImageInfo now returns reference to hash instead of hash

Dec. 10, 2003 - Version 2.01

- Minor fixes for reading of RAW files

Dec. 09, 2003 - Version 2.00

- Added support for Olympus, Casio and Nikon cameras
- Now recognizes GPS information
- Moved config information to TagTables modules
- Restructured API

Dec. 05, 2003 - Version 1.72

- Changes to composite Aperture and ShutterSpeed decisions

Dec. 05, 2003 - Version 1.71

- Read 10D Custom functions from CRW file too (thanks dpophyte)

Dec. 05, 2003 - Version 1.70

- Added custom functions for 10D and 1D

Dec. 04, 2003 - Version 1.62

- Decode known flash bits

Dec. 04, 2003 - Version 1.61

- Override ShutterSpeed with BulbDuration if available
- Change -s option to add tab-separated list

Dec. 03, 2003 - Version 1.60

- Big improvements in reading Canon RAW files

Nov. 29, 2003 - Version 1.50

- Added ability to extract JPG from RAW
- Added ExifData tag to allow entire EXIF block to be dumped

Nov. 26, 2003 - Version 1.40

- Split up config files to speed things up
- Added ability to extract binary data
- Added ThumbnailData tag (to allow extracting JPG thumbnails)

Nov. 25, 2003 - Version 1.30

- Added experimental Canon RAW (CRW) file support

Nov. 22, 2003 - Version 1.20

- Now reads TIFF files too

Nov. 20, 2003 - Version 1.12

- Don't translate Photoshop Brightness, etc

Nov. 20, 2003 - Version 1.11

- Attempt to fix problem on hp
- Clean up code a bit
- Added '-ver' command-line option

Nov. 20, 2003 - Version 1.10

- Added support for XMP format

Nov. 19, 2003 - Version 1.00

- Initial release (extracts information from JPEG and GIF images, with Canon, FujiFilm and Pentax makernote support)

<-- Back to recent history