summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Changes33
-rw-r--r--META.json2
-rw-r--r--META.yml2
-rw-r--r--README4
-rw-r--r--arg_files/exif2xmp.args5
-rw-r--r--arg_files/xmp2exif.args6
-rwxr-xr-xexiftool73
-rw-r--r--html/ExifTool.pdf78
-rw-r--r--html/Shift.pdf6
-rw-r--r--html/TagNames/Canon.html12
-rw-r--r--html/TagNames/DNG.html6
-rw-r--r--html/TagNames/EXIF.html8
-rw-r--r--html/TagNames/Nikon.html3
-rw-r--r--html/TagNames/Olympus.html130
-rw-r--r--html/TagNames/Shortcuts.html3
-rw-r--r--html/TagNames/Sony.html4
-rw-r--r--html/exiftool_pod.html8
-rw-r--r--html/exiftool_pod.pdf1064
-rw-r--r--html/history.html34
-rw-r--r--html/index.html23
-rw-r--r--html/install.html22
-rw-r--r--html/sample_images.html12
-rw-r--r--lib/Image/ExifTool.pm2
-rw-r--r--lib/Image/ExifTool/Canon.pm12
-rw-r--r--lib/Image/ExifTool/Exif.pm4
-rw-r--r--lib/Image/ExifTool/MacOS.pm18
-rw-r--r--lib/Image/ExifTool/MakerNotes.pm13
-rw-r--r--lib/Image/ExifTool/Nikon.pm1
-rw-r--r--lib/Image/ExifTool/Olympus.pm3
-rw-r--r--lib/Image/ExifTool/QuickTime.pm2
-rw-r--r--lib/Image/ExifTool/QuickTimeStream.pl4
-rw-r--r--lib/Image/ExifTool/Shortcuts.pm3
-rw-r--r--lib/Image/ExifTool/Sony.pm10
-rw-r--r--lib/Image/ExifTool/TagLookup.pm1
-rw-r--r--lib/Image/ExifTool/TagNames.pod3
-rw-r--r--lib/Image/ExifTool/WriteQuickTime.pl4
-rw-r--r--perl-Image-ExifTool.spec2
-rw-r--r--pp_build_exe.args8
-rwxr-xr-xwindows_exiftool70
39 files changed, 939 insertions, 759 deletions
diff --git a/Changes b/Changes
index e20bbfc0..58c931ff 100644
--- a/Changes
+++ b/Changes
@@ -7,10 +7,33 @@ RSS feed: https://exiftool.org/rss.xml
Note: The most recent production release is Version 12.30. (Other versions are
considered development releases, and are not uploaded to MetaCPAN.)
+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 Gulcker)
+ - 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 2202.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 a new Nikon LensID (thanks Wolfgang Exler)
- 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)
@@ -20,14 +43,14 @@ Feb. 9, 2022 - Version 12.40
- 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 typo in the name of a new Nikon tag (thanks Herb)
- - Fixed description of GPR (General Purpose RAW) file type
+ - 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 deep recursion error when reading multi-page TIFF images with more
- than 100 pages
+ - 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
diff --git a/META.json b/META.json
index ef904b02..7821e3cb 100644
--- a/META.json
+++ b/META.json
@@ -47,6 +47,6 @@
}
},
"release_status" : "stable",
- "version" : "12.40",
+ "version" : "12.41",
"x_serialization_backend" : "JSON::PP version 4.02"
}
diff --git a/META.yml b/META.yml
index b21282c5..5ab111ab 100644
--- a/META.yml
+++ b/META.yml
@@ -28,5 +28,5 @@ recommends:
Time::HiRes: 0
requires:
perl: 5.004
-version: 12.40
+version: 12.41
x_serialization_backend: 'JSON::PP version 4.02'
diff --git a/README b/README
index f1d8a308..8e063a5c 100644
--- a/README
+++ b/README
@@ -107,8 +107,8 @@ your home directory, then you would type the following commands in a
terminal window to extract and run ExifTool:
cd ~/Desktop
- gzip -dc Image-ExifTool-12.40.tar.gz | tar -xf -
- cd Image-ExifTool-12.40
+ gzip -dc Image-ExifTool-12.41.tar.gz | tar -xf -
+ cd Image-ExifTool-12.41
./exiftool t/images/ExifTool.jpg
Note: These commands extract meta information from one of the test images.
diff --git a/arg_files/exif2xmp.args b/arg_files/exif2xmp.args
index f1085ed7..234a0cb5 100644
--- a/arg_files/exif2xmp.args
+++ b/arg_files/exif2xmp.args
@@ -12,8 +12,10 @@
# 2013/06/12 - PH Additions for the Exif 2.3 for XMP spec
# 2015/01/12 - PH Avoid copying to non-standard namespaces
# 2018/05/07 - PH Added support for GPSDestXxxRef tags
+# 2022/03/31 - PH IPTC Photometadata Mapping Guidelines 2202.1 update
#
# References: http://www.metadataworkinggroup.org/specs/
+# https://iptc.org/std/photometadata/documentation/mappingguidelines/
#
# Notes: 1) The first three arguments copy most of the EXIF and GPS tags to
# XMP-exif/XMP-tiff, and the remaining arguments handle tags
@@ -22,6 +24,8 @@
# 2) These arguments will not delete existing XMP tags which are
# missing from the EXIF. The XMP tags should be deleted
# beforehand if required.
+#
+# 3) EXIF:SubjectArea is not currently mapped into XMP-iptcExt:ImageRegion
#------------------------------------------------------------------------------
-XMP-exif:all < EXIF:all
-XMP-exifEX:all < EXIF:all
@@ -37,6 +41,7 @@
-XMP-xmp:CreatorTool < EXIF:Software
-XMP-dc:Rights < EXIF:Copyright
-XMP-dc:Creator < EXIF:Artist
+-XMP-iptcExt:DigitalImageGUID < EXIF:DigImageGUID
# XMP flash information is translated by the Composite Flash tag
-Composite:Flash < EXIF:Flash
# overwrite GPS tags which have different formats in XMP
diff --git a/arg_files/xmp2exif.args b/arg_files/xmp2exif.args
index 9d02030a..e06da76b 100644
--- a/arg_files/xmp2exif.args
+++ b/arg_files/xmp2exif.args
@@ -14,8 +14,10 @@
# 2016/09/26 - PH Write Composite SubSec tags
# 2018/05/07 - PH Added support for GPSDestXxxRef tags
# 2021/09/30 - PH Removed erroneous "-" when copying CreatorTool
+# 2022/03/31 - PH IPTC Photometadata Mapping Guidelines 2202.1 update
#
# References: http://www.metadataworkinggroup.org/specs/
+# https://iptc.org/std/photometadata/documentation/mappingguidelines/
#
# Notes: 1) The first three arguments copy the bulk of the EXIF and GPS
# information, and the remaining arguments handle the tags
@@ -24,6 +26,8 @@
# 2) These arguments will not delete existing EXIF tags which are
# missing from the XMP. The EXIF tags should be deleted
# beforehand if required.
+#
+# 3) XMP-iptcExt:ImageRegion is not currently mapped into EXIF:SubjectArea
#------------------------------------------------------------------------------
-EXIF:all < XMP-exif:all
-EXIF:all < XMP-exifEX:all
@@ -37,7 +41,9 @@
-Composite:SubSecModifyDate < XMP-xmp:ModifyDate
-EXIF:Software < XMP-xmp:CreatorTool
-EXIF:Copyright < XMP-dc:Rights
+-EXIF:Artist < XMP-plus:ImageCreatorName
-EXIF:Artist < XMP-dc:Creator
+-EXIF:DigImageGUID < XMP-iptcExt:DigitalImageGUID
# XMP flash information is translated by the Composite Flash tag
-EXIF:Flash < Composite:Flash
# generate GPS tags which have been combined into other XMP tags
diff --git a/exiftool b/exiftool
index ae227264..be827fbf 100755
--- a/exiftool
+++ b/exiftool
@@ -8,9 +8,10 @@
# (See html/history.html for revision history)
#------------------------------------------------------------------------------
use strict;
+use warnings;
require 5.004;
-my $version = '12.40';
+my $version = '12.41';
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
BEGIN {
@@ -109,6 +110,8 @@ my %database; # lookup for database information based on file name (in Exi
my %filterExt; # lookup for filtered extensions
my %ignore; # directory names to ignore
my $ignoreHidden; # flag to ignore hidden files
+my %outComma; # flag that output text file needs a comma
+my %outTrailer; # trailer for output text file
my %preserveTime; # preserved timestamps for files
my %printFmt; # the contents of the print format file
my %setTags; # hash of list references for tags to set from files
@@ -441,6 +444,8 @@ undef %database;
undef %endDir;
undef %filterExt;
undef %ignore;
+undef %outComma;
+undef %outTrailer;
undef %printFmt;
undef %preserveTime;
undef %setTags;
@@ -1821,8 +1826,21 @@ if ($filtered and not $validFile) {
PrintCSV() if $csv and not $isWriting;
# print folder/file trailer if necessary
-print $sectTrailer if $sectTrailer and not $textOut;
-print $fileTrailer if $fileTrailer and not $textOut and not $fileHeader;
+if ($textOut) {
+ foreach (keys %outTrailer) {
+ next unless $outTrailer{$_};
+ if ($mt->Open(\*OUTTRAIL, $_, '>>')) {
+ my $fp = \*OUTTRAIL;
+ print $fp $outTrailer{$_};
+ close $fp;
+ } else {
+ Error("Error appending to $_\n");
+ }
+ }
+} else {
+ print $sectTrailer if $sectTrailer;
+ print $fileTrailer if $fileTrailer and not $fileHeader;
+}
my $totWr = $countGoodWr + $countBadWr + $countSameWr + $countCopyWr +
$countGoodCr + $countBadCr;
@@ -2160,6 +2178,9 @@ sub GetImageInfo($$)
$tmpText = $outfile unless $append;
}
+ # restore state of comma flag for this file if appending
+ $comma = $outComma{$outfile} if $append and ($textOverwrite & 0x02);
+
# print the results for this file
if (%printFmt) {
# output using print format file (-p) option
@@ -2221,7 +2242,7 @@ sub GetImageInfo($$)
if ($fp) {
# print file header (only once)
if ($fileHeader) {
- print $fp $fileHeader;
+ print $fp $fileHeader unless defined $outfile and ($created{$outfile} or $appended{$outfile});
undef $fileHeader unless $textOut;
}
if ($html) {
@@ -2674,9 +2695,17 @@ TAG: foreach $tag (@foundTags) {
}
}
if ($outfile) {
- # write section and file trailers before closing the file
- print $fp $sectTrailer and $sectTrailer = '' if $sectTrailer;
- print $fp $fileTrailer if $fileTrailer;
+ if ($textOverwrite & 0x02) {
+ # save state of this file if we may be appending
+ $outComma{$outfile} = $comma;
+ $outTrailer{$outfile} = '';
+ $outTrailer{$outfile} .= $sectTrailer and $sectTrailer = '' if $sectTrailer;
+ $outTrailer{$outfile} .= $fileTrailer if $fileTrailer;
+ } else {
+ # write section and file trailers before closing the file
+ print $fp $sectTrailer and $sectTrailer = '' if $sectTrailer;
+ print $fp $fileTrailer if $fileTrailer;
+ }
close($fp);
undef $tmpText;
if ($lineCount) {
@@ -2926,7 +2955,7 @@ sub SetImageInfo($$$)
}
}
if (defined $outfile) {
- $verbose and print $vout "'${infile}' --> '${outfile}'\n";
+ defined $verbose and print $vout "'${infile}' --> '${outfile}'\n";
# create output directory if necessary
CreateDirectory($outfile);
# set temporary file (automatically erased on abnormal exit)
@@ -5136,13 +5165,14 @@ The following examples demonstrate basic use of the B<-csv> option:
# update metadata for all images in a directory from CSV file
exiftool -csv=a.csv dir
-Empty values are ignored when importing (unless the B<-f> option is used and
-the API MissingTagValue is set to an empty string, in which case the tag is
+When importing, empty values are ignored unless the B<-f> option is used and
+the API MissingTagValue is set to an empty string (in which case the tag is
deleted). Also, FileName and Directory columns are ignored if they exist
-(ie. ExifTool will not attempt to write these tags with a CSV import). To
-force a tag to be deleted, use the B<-f> option and set the value to "-" in
-the CSV file (or to the MissingTagValue if this API option was used).
-Multiple databases may be imported in a single command.
+(ie. ExifTool will not attempt to write these tags with a CSV import), but
+all other columns are imported. To force a tag to be deleted, use the B<-f>
+option and set the value to "-" in the CSV file (or to the MissingTagValue
+if this API option was used). Multiple databases may be imported in a
+single command.
When exporting a CSV file, the B<-g> or B<-G> option adds group names to the
tag headings. If the B<-a> option is used to allow duplicate tag names, the
@@ -5436,7 +5466,7 @@ with this command:
produces output like this:
- -- Generated by ExifTool 12.40 --
+ -- Generated by ExifTool 12.41 --
File: a.jpg - 2003:10:31 15:44:19
(f/5.6, 1/60s, ISO 100)
File: b.jpg - 2006:05:23 11:57:38
@@ -5555,7 +5585,9 @@ level greater than 0, most other options are ignored and normal console
output is suppressed unless specific tags are extracted. Using B<-v0>
causes the console output buffer to be flushed after each line (which may be
useful to avoid delays when piping exiftool output), and prints the name of
-each processed file when writing. Also see the B<-progress> option.
+each processed file when writing and the new file name when renaming,
+moving or copying. Verbose levels above B<-v0> do not flush after each
+line. Also see the B<-progress> option.
=item B<-w>[+|!] I<EXT> or I<FMT> (B<-textOut>)
@@ -5768,11 +5800,10 @@ an XMP extension for the output file.
=item B<-a>, B<--a> (B<-duplicates>, B<--duplicates>)
Allow (B<-a>) or suppress (B<--a>) duplicate tag names to be extracted. By
-default, duplicate tags are suppressed when reading unless the B<-ee> or
-B<-X> options are used or the Duplicates option is enabled in the
-configuration file. This option has an affect when writing only to allow
-duplicate Warning messages to be shown. Duplicate tags are always extracted
-when copying.
+default, duplicate tags are suppressed when reading unless the B<-ee> or B<-X>
+options are used or the Duplicates option is enabled in the configuration file.
+When writing, this option allows multiple Warning messages to be shown.
+Duplicate tags are always extracted when copying.
=item B<-e> (B<--composite>)
diff --git a/html/ExifTool.pdf b/html/ExifTool.pdf
index d899f11c..7d0c279f 100644
--- a/html/ExifTool.pdf
+++ b/html/ExifTool.pdf
@@ -12,7 +12,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.40 -- 1)Tj
+( -- Image::ExifTool 12.41 -- 1)Tj
/TT4 1 Tf
0 -1.6333 TD
(EXIFTOOL\(1\) User Contributed Perl Documentation EXIFTOOL\(1\))Tj
@@ -189,7 +189,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.40 -- 2)Tj
+( -- Image::ExifTool 12.41 -- 2)Tj
/TT4 1 Tf
0 -1.6333 TD
( ARW r/w | F4A/V r/w | M4A/V r/w | PBM r/w | SVG r)Tj
@@ -384,7 +384,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.40 -- 3)Tj
+( -- Image::ExifTool 12.41 -- 3)Tj
/TT4 1 Tf
0 -1.6333 TD
( Exports nothing by default, but "ImageInfo" and all static methods may)Tj
@@ -619,7 +619,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.40 -- 4)Tj
+( -- Image::ExifTool 12.41 -- 4)Tj
/TT4 1 Tf
0 -1.6333 TD
( are interpreted:)Tj
@@ -768,7 +768,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.40 -- 5)Tj
+( -- Image::ExifTool 12.41 -- 5)Tj
/TT4 1 Tf
0 -1.6333 TD
( There will be 1:1 correspondence between the requested tags and)Tj
@@ -923,7 +923,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.40 -- 6)Tj
+( -- Image::ExifTool 12.41 -- 6)Tj
/TT4 1 Tf
0 -1.6333 TD
( details about the encodings. By default, most returned values are)Tj
@@ -1114,7 +1114,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.40 -- 7)Tj
+( -- Image::ExifTool 12.41 -- 7)Tj
/TT4 1 Tf
0 -1.6333 TD
( name documentation\) as a block. Setting this to a value of 2)Tj
@@ -1267,7 +1267,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.40 -- 8)Tj
+( -- Image::ExifTool 12.41 -- 8)Tj
/TT4 1 Tf
0 -1.6333 TD
( Fallback internal IPTC character set to assume if IPTC)Tj
@@ -1414,7 +1414,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.40 -- 9)Tj
+( -- Image::ExifTool 12.41 -- 9)Tj
/TT4 1 Tf
0 -1.6333 TD
( format is different when copying tags with)Tj
@@ -1567,7 +1567,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.40 -- 10)Tj
+( -- Image::ExifTool 12.41 -- 10)Tj
/TT4 1 Tf
0 -1.6333 TD
( also avoid extracting any EXIF MakerNote information, and will)Tj
@@ -1720,7 +1720,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.40 -- 11)Tj
+( -- Image::ExifTool 12.41 -- 11)Tj
/TT4 1 Tf
0 -1.6333 TD
( Default is undef.)Tj
@@ -1911,7 +1911,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.40 -- 12)Tj
+( -- Image::ExifTool 12.41 -- 12)Tj
/TT4 1 Tf
0 -2.7333 TD
( ListJoin)Tj
@@ -2054,7 +2054,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.40 -- 13)Tj
+( -- Image::ExifTool 12.41 -- 13)Tj
/TT4 1 Tf
0 -1.6333 TD
( Flag set to assume that QuickTime date/time values are stored)Tj
@@ -2203,7 +2203,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.40 -- 14)Tj
+( -- Image::ExifTool 12.41 -- 14)Tj
/TT4 1 Tf
0 -1.6333 TD
( converted when the DateFormat option is used. Default is)Tj
@@ -2356,7 +2356,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.40 -- 15)Tj
+( -- Image::ExifTool 12.41 -- 15)Tj
/TT4 1 Tf
0 -1.6333 TD
( by prefixing the parameter name with a dollar sign just like)Tj
@@ -2541,7 +2541,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.40 -- 16)Tj
+( -- Image::ExifTool 12.41 -- 16)Tj
/TT4 1 Tf
0 -1.6333 TD
( Inputs:)Tj
@@ -2714,7 +2714,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.40 -- 17)Tj
+( -- Image::ExifTool 12.41 -- 17)Tj
/TT4 1 Tf
0 -2.7333 TD
( To be clear, it is NOT necessary to call "ExtractInfo" or "ImageInfo")Tj
@@ -2849,7 +2849,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.40 -- 18)Tj
+( -- Image::ExifTool 12.41 -- 18)Tj
/TT4 1 Tf
0 -2.7333 TD
( G)Tj
@@ -3070,7 +3070,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.40 -- 19)Tj
+( -- Image::ExifTool 12.41 -- 19)Tj
/TT4 1 Tf
0 -1.6333 TD
( is set, otherwise the ValueConv value is returned. The PrintConv)Tj
@@ -3213,7 +3213,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.40 -- 20)Tj
+( -- Image::ExifTool 12.41 -- 20)Tj
/TT4 1 Tf
0 -1.6333 TD
( undefined for any non-rational tag. The Raw value should always)Tj
@@ -3370,7 +3370,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.40 -- 21)Tj
+( -- Image::ExifTool 12.41 -- 21)Tj
/TT4 1 Tf
0 -1.6333 TD
( # write structured information as a serialized string)Tj
@@ -3517,7 +3517,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.40 -- 22)Tj
+( -- Image::ExifTool 12.41 -- 22)Tj
/TT4 1 Tf
0 -1.6333 TD
( NoFlat)Tj
@@ -3708,7 +3708,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.40 -- 23)Tj
+( -- Image::ExifTool 12.41 -- 23)Tj
/TT4 1 Tf
0 -2.7333 TD
( G)Tj
@@ -3899,7 +3899,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.40 -- 24)Tj
+( -- Image::ExifTool 12.41 -- 24)Tj
/TT4 1 Tf
0 -1.6333 TD
( tag names are not case sensitive, and may be prefixed by one or)Tj
@@ -4050,7 +4050,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.40 -- 25)Tj
+( -- Image::ExifTool 12.41 -- 25)Tj
/TT4 1 Tf
0 -1.6333 TD
( between groups.)Tj
@@ -4303,7 +4303,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.40 -- 26)Tj
+( -- Image::ExifTool 12.41 -- 26)Tj
/TT4 1 Tf
0 -1.6333 TD
( 0\) ExifTool object reference)Tj
@@ -4484,7 +4484,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.40 -- 27)Tj
+( -- Image::ExifTool 12.41 -- 27)Tj
/TT4 1 Tf
0 -2.7333 TD
( 1-N\) Groups in order of priority. If no groups are specified, the)Tj
@@ -4695,7 +4695,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.40 -- 28)Tj
+( -- Image::ExifTool 12.41 -- 28)Tj
/TT4 1 Tf
0 -1.6333 TD
( 0\) ExifTool object reference)Tj
@@ -4842,7 +4842,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.40 -- 29)Tj
+( -- Image::ExifTool 12.41 -- 29)Tj
/TT4 1 Tf
0 -1.6333 TD
( the format type of the extracted value. Generated only if the)Tj
@@ -5067,7 +5067,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.40 -- 30)Tj
+( -- Image::ExifTool 12.41 -- 30)Tj
/TT4 1 Tf
0 -1.6333 TD
( Inputs:)Tj
@@ -5362,7 +5362,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.40 -- 31)Tj
+( -- Image::ExifTool 12.41 -- 31)Tj
/TT4 1 Tf
0 -1.6333 TD
( RAF, RIFF, RSRC, RTF, Radiance, Rawzor, Real, Red, SVG, SigmaRaw,)Tj
@@ -5517,7 +5517,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.40 -- 32)Tj
+( -- Image::ExifTool 12.41 -- 32)Tj
/TT4 1 Tf
0 -1.6333 TD
( a group name are returned as 2 hex digits.\))Tj
@@ -5772,7 +5772,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.40 -- 33)Tj
+( -- Image::ExifTool 12.41 -- 33)Tj
/TT4 1 Tf
0 -1.6333 TD
( Can the specified file be written?)Tj
@@ -6029,7 +6029,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.40 -- 34)Tj
+( -- Image::ExifTool 12.41 -- 34)Tj
/TT4 1 Tf
0 -1.6333 TD
( The encoding of file names is specified via the "CharsetFileName")Tj
@@ -6242,7 +6242,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.40 -- 35)Tj
+( -- Image::ExifTool 12.41 -- 35)Tj
/TT4 1 Tf
0 -1.6333 TD
( ISO 2022 character set shifting is not supported. Instead, a warning)Tj
@@ -6423,7 +6423,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- Image::ExifTool 12.40 -- 36)Tj
+( -- Image::ExifTool 12.41 -- 36)Tj
/TT4 1 Tf
0 -2.7333 TD
( P)Tj
@@ -7322,8 +7322,8 @@ endobj
endobj
121 0 obj
<<
-/CreationDate (D:20220209071759-05'00')
-/ModDate (D:20220209071759-05'00')
+/CreationDate (D:20220407133711-04'00')
+/ModDate (D:20220407133711-04'00')
/Producer (Apple pstopdf)
>>
endobj
@@ -7464,7 +7464,7 @@ trailer
/Size 123
/Root 122 0 R
/Info 121 0 R
-/ID [<1dfa2704643968625360efa8137aec83><1dfa2704643968625360efa8137aec83>]
+/ID [<701c1af50404a6d60be858476cbfc14b><701c1af50404a6d60be858476cbfc14b>]
>>
startxref
175378
diff --git a/html/Shift.pdf b/html/Shift.pdf
index 5e01d3ea..3cd6de20 100644
--- a/html/Shift.pdf
+++ b/html/Shift.pdf
@@ -593,8 +593,8 @@ endobj
endobj
16 0 obj
<<
-/CreationDate (D:20220209071800-05'00')
-/ModDate (D:20220209071800-05'00')
+/CreationDate (D:20220407133711-04'00')
+/ModDate (D:20220407133711-04'00')
/Producer (Apple pstopdf)
>>
endobj
@@ -630,7 +630,7 @@ trailer
/Size 18
/Root 17 0 R
/Info 16 0 R
-/ID [<8a6b1cc7c134ddd2a21736301b7957c8><8a6b1cc7c134ddd2a21736301b7957c8>]
+/ID [<6d156f2b2da41f7f9bde1bbc9e4cbea9><6d156f2b2da41f7f9bde1bbc9e4cbea9>]
>>
startxref
11800
diff --git a/html/TagNames/Canon.html b/html/TagNames/Canon.html
index 0fb72b6a..1e02e1c4 100644
--- a/html/TagNames/Canon.html
+++ b/html/TagNames/Canon.html
@@ -992,6 +992,7 @@
<br>4 = Continuous, Low
<br>5 = Continuous, High
<br>6 = Silent Single
+ <br>8 = Continuous, High+
<br>9 = Single, Silent
<br>10 = Continuous, Silent</td></tr></table>
</td></tr>
@@ -1477,6 +1478,7 @@ attempting to identify the specific lens model.</p>
</tr><tr><td>53</td><td>= Canon EF-S 18-55mm f/3.5-5.6 III</td>
</tr><tr><td>54</td><td>= Canon EF-S 55-250mm f/4-5.6 IS II</td>
</tr><tr><td>60</td><td>= Irix 11mm f/4</td>
+</tr><tr><td>63</td><td>= Irix 30mm F1.4 Dragonfly</td>
</tr><tr><td>80</td><td>= Canon TS-E 50mm f/2.8L Macro</td>
</tr><tr><td>81</td><td>= Canon TS-E 90mm f/2.8L Macro</td>
</tr><tr><td>82</td><td>= Canon TS-E 135mm f/4L Macro</td>
@@ -1853,6 +1855,9 @@ attempting to identify the specific lens model.</p>
</tr><tr><td>61182.25</td><td>= Canon RF 100-400mm F5.6-8 IS USM + RF1.4x</td>
</tr><tr><td>61182.26</td><td>= Canon RF 100-400mm F5.6-8 IS USM + RF2x</td>
</tr><tr><td>61182.27</td><td>= Canon RF 16mm F2.8 STM</td>
+</tr><tr><td>61182.28</td><td>= Canon RF 400mm F2.8L IS USM</td>
+</tr><tr><td>61182.29</td><td>= Canon RF 400mm F2.8L IS USM + RF1.4x</td>
+</tr><tr><td>61182.30</td><td>= Canon RF 400mm F2.8L IS USM + RF2x</td>
</tr><tr><td>61491</td><td>= Canon CN-E 14mm T3.1 L F</td>
</tr><tr><td>61492</td><td>= Canon CN-E 24mm T1.5 L F</td>
</tr><tr><td>61494</td><td>= Canon CN-E 85mm T1.3 L F</td>
@@ -6549,7 +6554,10 @@ valid for all camera models)</span></span></td></tr>
<br>283 = Canon RF 100-400mm F5.6-8 IS USM
<br>284 = Canon RF 100-400mm F5.6-8 IS USM + RF1.4x
<br>285 = Canon RF 100-400mm F5.6-8 IS USM + RF2x
- <br>288 = Canon RF 16mm F2.8 STM</span></td></tr>
+ <br>288 = Canon RF 16mm F2.8 STM
+ <br>289 = Canon RF 400mm F2.8L IS USM
+ <br>290 = Canon RF 400mm F2.8L IS USM + RF1.4x
+ <br>291 = Canon RF 400mm F2.8L IS USM + RF2x</span></td></tr>
</table></td></tr></table></blockquote>
<h2><a name='SerialInfo'>Canon SerialInfo Tags</a></h2>
@@ -11612,7 +11620,7 @@ SX280, and CR3 images from cameras such as the EOS M50.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
-<br><i>Last revised Feb 9, 2022</i>
+<br><i>Last revised Apr 7, 2022</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>
diff --git a/html/TagNames/DNG.html b/html/TagNames/DNG.html
index ba3f3162..e78316ce 100644
--- a/html/TagNames/DNG.html
+++ b/html/TagNames/DNG.html
@@ -99,6 +99,7 @@ still proprietary) Adobe format.</p>
<br>MakerNoteNintendo
<br>MakerNoteOlympus
<br>MakerNoteOlympus2
+ <br>MakerNoteOlympus3
<br>MakerNoteLeica
<br>MakerNoteLeica2
<br>MakerNoteLeica3
@@ -143,7 +144,7 @@ still proprietary) Adobe format.</p>
<br>MakerNoteUnknownText
<br>MakerNoteUnknownBinary
<br>MakerNoteUnknown</td>
-<td class=c>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef</td>
+<td class=c>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef</td>
<td>--&gt; <a href='Apple.html'>Apple Tags</a>
<br>--&gt; <a href='Nikon.html'>Nikon Tags</a>
<br>--&gt; <a href='Canon.html'>Canon Tags</a>
@@ -189,6 +190,7 @@ still proprietary) Adobe format.</p>
<br>--&gt; <a href='Nintendo.html'>Nintendo Tags</a>
<br>--&gt; <a href='Olympus.html'>Olympus Tags</a>
<br>--&gt; <a href='Olympus.html'>Olympus Tags</a>
+ <br>--&gt; <a href='Olympus.html'>Olympus Tags</a>
<br>--&gt; <a href='Panasonic.html'>Panasonic Tags</a>
<br>--&gt; <a href='Panasonic.html#Leica2'>Panasonic Leica2 Tags</a>
<br>--&gt; <a href='Panasonic.html#Leica3'>Panasonic Leica3 Tags</a>
@@ -302,7 +304,7 @@ information.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
-<br><i>Last revised Oct 22, 2019</i>
+<br><i>Last revised Apr 7, 2022</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>
diff --git a/html/TagNames/EXIF.html b/html/TagNames/EXIF.html
index 48dcdada..540c0e76 100644
--- a/html/TagNames/EXIF.html
+++ b/html/TagNames/EXIF.html
@@ -1885,6 +1885,7 @@ hours, 2. If present, the time zone offset of ModifyDate)</span></span></td></tr
<br>MakerNoteNintendo
<br>MakerNoteOlympus
<br>MakerNoteOlympus2
+ <br>MakerNoteOlympus3
<br>MakerNoteLeica
<br>MakerNoteLeica2
<br>MakerNoteLeica3
@@ -1929,8 +1930,8 @@ hours, 2. If present, the time zone offset of ModifyDate)</span></span></td></tr
<br>MakerNoteUnknownText
<br>MakerNoteUnknownBinary
<br><u>MakerNoteUnknown</u></td>
-<td class=c>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef</td>
-<td class=c>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD</td>
+<td class=c>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef<br>undef</td>
+<td class=c>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD<br>ExifIFD</td>
<td>--&gt; <a href='Apple.html'>Apple Tags</a>
<br>--&gt; <a href='Nikon.html'>Nikon Tags</a>
<br>--&gt; <a href='Canon.html'>Canon Tags</a>
@@ -1976,6 +1977,7 @@ hours, 2. If present, the time zone offset of ModifyDate)</span></span></td></tr
<br>--&gt; <a href='Nintendo.html'>Nintendo Tags</a>
<br>--&gt; <a href='Olympus.html'>Olympus Tags</a>
<br>--&gt; <a href='Olympus.html'>Olympus Tags</a>
+ <br>--&gt; <a href='Olympus.html'>Olympus Tags</a>
<br>--&gt; <a href='Panasonic.html'>Panasonic Tags</a>
<br>--&gt; <a href='Panasonic.html#Leica2'>Panasonic Leica2 Tags</a>
<br>--&gt; <a href='Panasonic.html#Leica3'>Panasonic Leica3 Tags</a>
@@ -3812,7 +3814,7 @@ these unless they already exist in the file)</span></span></td></tr>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
-<br><i>Last revised Oct 16, 2021</i>
+<br><i>Last revised Apr 7, 2022</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>
diff --git a/html/TagNames/Nikon.html b/html/TagNames/Nikon.html
index 90c50786..c11c2e7b 100644
--- a/html/TagNames/Nikon.html
+++ b/html/TagNames/Nikon.html
@@ -8732,6 +8732,7 @@ used to specify the lens for ExifTool to choose in these cases (see the
</tr><tr><td>'82 34 76 A6 38 40 4B 0E'</td><td>= Sigma 150-600mm F5-6.3 DG OS HSM | C</td>
</tr><tr><td>'82 48 8E 8E 24 24 87 0E'</td><td>= AF-S VR Nikkor 300mm f/2.8G IF-ED</td>
</tr><tr><td>'83 00 B0 B0 5A 5A 88 04'</td><td>= FSA-L2, EDG 65, 800mm F13 G</td>
+</tr><tr><td>'87 2C 2D 8E 2C 40 4B 0E'</td><td>= Sigma 18-300mm F3.5-6.3 DC Macro HSM</td>
</tr><tr><td>'88 54 50 50 0C 0C 4B 06'</td><td>= Sigma 50mm F1.4 DG HSM | A</td>
</tr><tr><td>'89 30 2D 80 2C 40 4B 0E'</td><td>= Sigma 18-200mm F3.5-6.3 DC Macro OS HS | C</td>
</tr><tr><td>'89 3C 53 80 30 3C 8B 06'</td><td>= AF-S DX Zoom-Nikkor 55-200mm f/4-5.6G ED</td>
@@ -8949,7 +8950,7 @@ used to specify the lens for ExifTool to choose in these cases (see the
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
-<br><i>Last revised Feb 9, 2022</i>
+<br><i>Last revised Apr 7, 2022</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>
diff --git a/html/TagNames/Olympus.html b/html/TagNames/Olympus.html
index a6e864cc..a20778f8 100644
--- a/html/TagNames/Olympus.html
+++ b/html/TagNames/Olympus.html
@@ -845,196 +845,196 @@ Vivitar are not listed.</p>
<td>'S0093'</td><td>= E-P7</td>
</tr><tr><td>'D4311'</td><td>= FE-140,X-725</td>
<td class=b>'D4479'</td><td class=b>= VG130,D710</td>
-<td>'SR45'</td><td>= D220</td>
+<td>'S0095'</td><td>= OM-1</td>
</tr><tr><td>'D4312'</td><td>= FE150,X730</td>
<td class=b>'D4480'</td><td class=b>= VG120,D705</td>
-<td>'SR55'</td><td>= D320L</td>
+<td>'SR45'</td><td>= D220</td>
</tr><tr><td>'D4313'</td><td>= FE160,X735</td>
<td class=b>'D4482'</td><td class=b>= VR310,D720</td>
-<td>'SR83'</td><td>= D340L</td>
+<td>'SR55'</td><td>= D320L</td>
</tr><tr><td>'D4314'</td><td>= u740,S740</td>
<td class=b>'D4484'</td><td class=b>= VR320,D725</td>
-<td>'SR85'</td><td>= C830L,D340R</td>
+<td>'SR83'</td><td>= D340L</td>
</tr><tr><td>'D4315'</td><td>= u750,S750</td>
<td class=b>'D4486'</td><td class=b>= VR330,D730</td>
-<td>'SR852'</td><td>= C860L,D360L</td>
+<td>'SR85'</td><td>= C830L,D340R</td>
</tr><tr><td>'D4316'</td><td>= u730/S730</td>
<td class=b>'D4488'</td><td class=b>= VG110,D700</td>
-<td>'SR872'</td><td>= C900Z,D400Z</td>
+<td>'SR852'</td><td>= C860L,D360L</td>
</tr><tr><td>'D4317'</td><td>= FE115,X715</td>
<td class=b>'D4490'</td><td class=b>= SP-610UZ</td>
-<td>'SR874'</td><td>= C960Z,D460Z</td>
+<td>'SR872'</td><td>= C900Z,D400Z</td>
</tr><tr><td>'D4321'</td><td>= SP550UZ</td>
<td class=b>'D4492'</td><td class=b>= SZ-10</td>
-<td>'SR951'</td><td>= C2000Z</td>
+<td>'SR874'</td><td>= C960Z,D460Z</td>
</tr><tr><td>'D4322'</td><td>= SP510UZ</td>
<td class=b>'D4494'</td><td class=b>= SZ-20</td>
-<td>'SR952'</td><td>= C21</td>
+<td>'SR951'</td><td>= C2000Z</td>
</tr><tr><td>'D4324'</td><td>= FE170,X760</td>
<td class=b>'D4496'</td><td class=b>= SZ-30MR</td>
-<td>'SR953'</td><td>= C21T.commu</td>
+<td>'SR952'</td><td>= C21</td>
</tr><tr><td>'D4326'</td><td>= FE200</td>
<td class=b>'D4498'</td><td class=b>= SP-810UZ</td>
-<td>'SR954'</td><td>= C2020Z</td>
+<td>'SR953'</td><td>= C21T.commu</td>
</tr><tr><td>'D4327'</td><td>= FE190/X750</td>
<td class=b>'D4500'</td><td class=b>= SZ-11</td>
-<td>'SR955'</td><td>= C990Z,D490Z</td>
+<td>'SR954'</td><td>= C2020Z</td>
</tr><tr><td>'D4328'</td><td>= u760,S760</td>
<td class=b>'D4504'</td><td class=b>= TG-615</td>
-<td>'SR956'</td><td>= C211Z</td>
+<td>'SR955'</td><td>= C990Z,D490Z</td>
</tr><tr><td>'D4330'</td><td>= FE180/X745</td>
<td class=b>'D4508'</td><td class=b>= TG-620</td>
-<td>'SR959'</td><td>= C990ZS,D490Z</td>
+<td>'SR956'</td><td>= C211Z</td>
</tr><tr><td>'D4331'</td><td>= u1000/S1000</td>
<td class=b>'D4510'</td><td class=b>= TG-820</td>
-<td>'SR95A'</td><td>= C2100UZ</td>
+<td>'SR959'</td><td>= C990ZS,D490Z</td>
</tr><tr><td>'D4332'</td><td>= u770SW,S770SW</td>
<td class=b>'D4512'</td><td class=b>= TG-1</td>
-<td>'SR971'</td><td>= C100,D370</td>
+<td>'SR95A'</td><td>= C2100UZ</td>
</tr><tr><td>'D4333'</td><td>= FE240/X795</td>
<td class=b>'D4516'</td><td class=b>= SH-21</td>
-<td>'SR973'</td><td>= C2,D230</td>
+<td>'SR971'</td><td>= C100,D370</td>
</tr><tr><td>'D4334'</td><td>= FE210,X775</td>
<td class=b>'D4519'</td><td class=b>= SZ-14</td>
-<td>'SX151'</td><td>= E100RS</td>
+<td>'SR973'</td><td>= C2,D230</td>
</tr><tr><td>'D4336'</td><td>= FE230/X790</td>
<td class=b>'D4520'</td><td class=b>= SZ-31MR</td>
-<td>'SX351'</td><td>= C3000Z / C3030Z</td>
+<td>'SX151'</td><td>= E100RS</td>
</tr><tr><td>'D4337'</td><td>= FE220,X785</td>
<td class=b>'D4521'</td><td class=b>= SH-25MR</td>
-<td>'SX354'</td><td>= C3040Z</td>
+<td>'SX351'</td><td>= C3000Z / C3030Z</td>
</tr><tr><td>'D4338'</td><td>= u725SW,S725SW</td>
<td class=b>'D4523'</td><td class=b>= SP-720UZ</td>
-<td>'SX355'</td><td>= C2040Z</td>
+<td>'SX354'</td><td>= C3040Z</td>
</tr><tr><td>'D4339'</td><td>= FE250/X800</td>
<td class=b>'D4529'</td><td class=b>= VG170</td>
-<td>'SX357'</td><td>= C700UZ</td>
+<td>'SX355'</td><td>= C2040Z</td>
</tr><tr><td>'D4341'</td><td>= u780,S780</td>
<td class=b>'D4531'</td><td class=b>= XZ-2</td>
-<td>'SX358'</td><td>= C200Z,D510Z</td>
+<td>'SX357'</td><td>= C700UZ</td>
</tr><tr><td>'D4343'</td><td>= u790SW,S790SW</td>
<td class=b>'D4535'</td><td class=b>= SP-620UZ</td>
-<td>'SX374'</td><td>= C3100Z,C3020Z</td>
+<td>'SX358'</td><td>= C200Z,D510Z</td>
</tr><tr><td>'D4344'</td><td>= u1020,S1020</td>
<td class=b>'D4536'</td><td class=b>= TG-320</td>
-<td>'SX552'</td><td>= C4040Z</td>
+<td>'SX374'</td><td>= C3100Z,C3020Z</td>
</tr><tr><td>'D4346'</td><td>= FE15,X10</td>
<td class=b>'D4537'</td><td class=b>= VR340,D750</td>
-<td>'SX553'</td><td>= C40Z,D40Z</td>
+<td>'SX552'</td><td>= C4040Z</td>
</tr><tr><td>'D4348'</td><td>= FE280,X820,C520</td>
<td class=b>'D4538'</td><td class=b>= VG160,X990,D745</td>
-<td>'SX556'</td><td>= C730UZ</td>
+<td>'SX553'</td><td>= C40Z,D40Z</td>
</tr><tr><td>'D4349'</td><td>= FE300,X830</td>
<td class=b>'D4541'</td><td class=b>= SZ-12</td>
-<td>'SX558'</td><td>= C5050Z</td>
+<td>'SX556'</td><td>= C730UZ</td>
</tr><tr><td>'D4350'</td><td>= u820,S820</td>
<td class=b>'D4545'</td><td class=b>= VH410</td>
-<td>'SX571'</td><td>= C120,D380</td>
+<td>'SX558'</td><td>= C5050Z</td>
</tr><tr><td>'D4351'</td><td>= u1200,S1200</td>
<td class=b>'D4546'</td><td class=b>= XZ-10</td>
-<td>'SX574'</td><td>= C300Z,D550Z</td>
+<td>'SX571'</td><td>= C120,D380</td>
</tr><tr><td>'D4352'</td><td>= FE270,X815,C510</td>
<td class=b>'D4547'</td><td class=b>= TG-2</td>
-<td>'SX575'</td><td>= C4100Z,C4000Z</td>
+<td>'SX574'</td><td>= C300Z,D550Z</td>
</tr><tr><td>'D4353'</td><td>= u795SW,S795SW</td>
<td class=b>'D4548'</td><td class=b>= TG-830</td>
-<td>'SX751'</td><td>= X200,D560Z,C350Z</td>
+<td>'SX575'</td><td>= C4100Z,C4000Z</td>
</tr><tr><td>'D4354'</td><td>= u1030SW,S1030SW</td>
<td class=b>'D4549'</td><td class=b>= TG-630</td>
-<td>'SX752'</td><td>= X300,D565Z,C450Z</td>
+<td>'SX751'</td><td>= X200,D560Z,C350Z</td>
</tr><tr><td>'D4355'</td><td>= SP560UZ</td>
<td class=b>'D4550'</td><td class=b>= SH-50</td>
-<td>'SX753'</td><td>= C750UZ</td>
+<td>'SX752'</td><td>= X300,D565Z,C450Z</td>
</tr><tr><td>'D4356'</td><td>= u1010,S1010</td>
<td class=b>'D4553'</td><td class=b>= SZ-16,DZ-105</td>
-<td>'SX754'</td><td>= C740UZ</td>
+<td>'SX753'</td><td>= C750UZ</td>
</tr><tr><td>'D4357'</td><td>= u830,S830</td>
<td class=b>'D4562'</td><td class=b>= SP-820UZ</td>
-<td>'SX755'</td><td>= C755UZ</td>
+<td>'SX754'</td><td>= C740UZ</td>
</tr><tr><td>'D4359'</td><td>= u840,S840</td>
<td class=b>'D4566'</td><td class=b>= SZ-15</td>
-<td>'SX756'</td><td>= C5060WZ</td>
+<td>'SX755'</td><td>= C755UZ</td>
</tr><tr><td>'D4360'</td><td>= FE350WIDE,X865</td>
<td class=b>'D4572'</td><td class=b>= STYLUS1</td>
-<td>'SX757'</td><td>= C8080WZ</td>
+<td>'SX756'</td><td>= C5060WZ</td>
</tr><tr><td>'D4361'</td><td>= u850SW,S850SW</td>
<td class=b>'D4574'</td><td class=b>= TG-3</td>
-<td>'SX758'</td><td>= X350,D575Z,C360Z</td>
+<td>'SX757'</td><td>= C8080WZ</td>
</tr><tr><td>'D4362'</td><td>= FE340,X855,C560</td>
<td class=b>'D4575'</td><td class=b>= TG-850</td>
-<td>'SX759'</td><td>= X400,D580Z,C460Z</td>
+<td>'SX758'</td><td>= X350,D575Z,C360Z</td>
</tr><tr><td>'D4363'</td><td>= FE320,X835,C540</td>
<td class=b>'D4579'</td><td class=b>= SP-100EE</td>
-<td>'SX75A'</td><td>= AZ-2ZOOM</td>
+<td>'SX759'</td><td>= X400,D580Z,C460Z</td>
</tr><tr><td>'D4364'</td><td>= SP570UZ</td>
<td class=b>'D4580'</td><td class=b>= SH-60</td>
-<td>'SX75B'</td><td>= D595Z,C500Z</td>
+<td>'SX75A'</td><td>= AZ-2ZOOM</td>
</tr><tr><td>'D4366'</td><td>= FE330,X845,C550</td>
<td class=b>'D4581'</td><td class=b>= SH-1</td>
-<td>'SX75C'</td><td>= X550,D545Z,C480Z</td>
+<td>'SX75B'</td><td>= D595Z,C500Z</td>
</tr><tr><td>'D4368'</td><td>= FE310,X840,C530</td>
<td class=b>'D4582'</td><td class=b>= TG-835</td>
-<td>'SX75D'</td><td>= IR-300</td>
+<td>'SX75C'</td><td>= X550,D545Z,C480Z</td>
</tr><tr><td>'D4370'</td><td>= u1050SW,S1050SW</td>
<td class=b>'D4585'</td><td class=b>= SH-2 / SH-3</td>
-<td>'SX75F'</td><td>= C55Z,C5500Z</td>
+<td>'SX75D'</td><td>= IR-300</td>
</tr><tr><td>'D4371'</td><td>= u1060,S1060</td>
<td class=b>'D4586'</td><td class=b>= TG-4</td>
-<td>'SX75G'</td><td>= C170,D425</td>
+<td>'SX75F'</td><td>= C55Z,C5500Z</td>
</tr><tr><td>'D4372'</td><td>= FE370,X880,C575</td>
<td class=b>'D4587'</td><td class=b>= TG-860</td>
-<td>'SX75J'</td><td>= C180,D435</td>
+<td>'SX75G'</td><td>= C170,D425</td>
</tr><tr><td>'D4374'</td><td>= SP565UZ</td>
<td class=b>'D4591'</td><td class=b>= TG-870</td>
-<td>'SX771'</td><td>= C760UZ</td>
+<td>'SX75J'</td><td>= C180,D435</td>
</tr><tr><td>'D4377'</td><td>= u1040,S1040</td>
<td class=b>'D4593'</td><td class=b>= TG-5</td>
-<td>'SX772'</td><td>= C770UZ</td>
+<td>'SX771'</td><td>= C760UZ</td>
</tr><tr><td>'D4378'</td><td>= FE360,X875,C570</td>
<td class=b>'D4603'</td><td class=b>= TG-6</td>
-<td>'SX773'</td><td>= C745UZ</td>
+<td>'SX772'</td><td>= C770UZ</td>
</tr><tr><td>'D4379'</td><td>= FE20,X15,C25</td>
<td class=b>'D4809'</td><td class=b>= C2500L</td>
-<td>'SX774'</td><td>= X250,D560Z,C350Z</td>
+<td>'SX773'</td><td>= C745UZ</td>
</tr><tr><td>'D4380'</td><td>= uT6000,ST6000</td>
<td class=b>'D4842'</td><td class=b>= E-10</td>
-<td>'SX775'</td><td>= X100,D540Z,C310Z</td>
+<td>'SX774'</td><td>= X250,D560Z,C350Z</td>
</tr><tr><td>'D4381'</td><td>= uT8000,ST8000</td>
<td class=b>'D4856'</td><td class=b>= C-1</td>
-<td>'SX776'</td><td>= C460ZdelSol</td>
+<td>'SX775'</td><td>= X100,D540Z,C310Z</td>
</tr><tr><td>'D4382'</td><td>= u9000,S9000</td>
<td class=b>'D4857'</td><td class=b>= C-1Z,D-150Z</td>
-<td>'SX777'</td><td>= C765UZ</td>
+<td>'SX776'</td><td>= C460ZdelSol</td>
</tr><tr><td>'D4384'</td><td>= SP590UZ</td>
<td class=b>'DCHC'</td><td class=b>= D500L</td>
-<td>'SX77A'</td><td>= D555Z,C315Z</td>
+<td>'SX777'</td><td>= C765UZ</td>
</tr><tr><td>'D4385'</td><td>= FE3010,X895</td>
<td class=b>'DCHT'</td><td class=b>= D600L / D620L</td>
-<td>'SX851'</td><td>= C7070WZ</td>
+<td>'SX77A'</td><td>= D555Z,C315Z</td>
</tr><tr><td>'D4386'</td><td>= FE3000,X890</td>
<td class=b>'K0055'</td><td class=b>= AIR-A01</td>
-<td>'SX852'</td><td>= C70Z,C7000Z</td>
+<td>'SX851'</td><td>= C7070WZ</td>
</tr><tr><td>'D4387'</td><td>= FE35,X30</td>
<td class=b>'S0003'</td><td class=b>= E-330</td>
-<td>'SX853'</td><td>= SP500UZ</td>
+<td>'SX852'</td><td>= C70Z,C7000Z</td>
</tr><tr><td>'D4388'</td><td>= u550WP,S550WP</td>
<td class=b>'S0004'</td><td class=b>= E-500</td>
-<td>'SX854'</td><td>= SP310</td>
+<td>'SX853'</td><td>= SP500UZ</td>
</tr><tr><td>'D4390'</td><td>= FE5000,X905</td>
<td class=b>'S0009'</td><td class=b>= E-400</td>
-<td>'SX855'</td><td>= SP350</td>
+<td>'SX854'</td><td>= SP310</td>
</tr><tr><td>'D4391'</td><td>= u5000</td>
<td class=b>'S0010'</td><td class=b>= E-510</td>
-<td>'SX873'</td><td>= SP320</td>
+<td>'SX855'</td><td>= SP350</td>
</tr><tr><td>'D4392'</td><td>= u7000,S7000</td>
<td class=b>'S0011'</td><td class=b>= E-3</td>
-<td>'SX875'</td><td>= FE180/X745</td>
+<td>'SX873'</td><td>= SP320</td>
</tr><tr><td>'D4396'</td><td>= FE5010,X915</td>
<td class=b>'S0013'</td><td class=b>= E-410</td>
-<td>'SX876'</td><td>= FE190/X750</td>
+<td>'SX875'</td><td>= FE180/X745</td>
</tr><tr><td>'D4397'</td><td>= FE25,X20</td>
<td class=b>'S0016'</td><td class=b>= E-420</td>
-<td>&nbsp;</td><td>&nbsp;</td>
+<td>'SX876'</td><td>= FE190/X750</td>
</tr></table></td></tr></table></blockquote>
<h2><a name='TextInfo'>Olympus TextInfo Tags</a></h2>
@@ -3717,7 +3717,7 @@ like the LS-5, LS-10, LS-11.</p>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
-<br><i>Last revised Oct 16, 2021</i>
+<br><i>Last revised Apr 7, 2022</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>
diff --git a/html/TagNames/Shortcuts.html b/html/TagNames/Shortcuts.html
index 7bdf049c..06a2a10f 100644
--- a/html/TagNames/Shortcuts.html
+++ b/html/TagNames/Shortcuts.html
@@ -184,6 +184,7 @@ memory limitations are a problem)</span></span></td></tr>
<br>MakerNoteNintendo
<br>MakerNoteOlympus
<br>MakerNoteOlympus2
+ <br>MakerNoteOlympus3
<br>MakerNoteLeica
<br>MakerNoteLeica2
<br>MakerNoteLeica3
@@ -294,7 +295,7 @@ is enabled)</span></span></td></tr>
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
-<br><i>Last revised Feb 18, 2021</i>
+<br><i>Last revised Apr 7, 2022</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>
diff --git a/html/TagNames/Sony.html b/html/TagNames/Sony.html
index aef27070..3545ea8a 100644
--- a/html/TagNames/Sony.html
+++ b/html/TagNames/Sony.html
@@ -4960,6 +4960,7 @@ multi-frame noise reduction)</span></span></td></tr>
</tr><tr><td>50529</td><td>= Sigma 90mm F2.8 DG DN | C</td>
</tr><tr><td>50530</td><td>= Sigma 24mm F2 DG DN | C</td>
</tr><tr><td>50531</td><td>= Sigma 18-50mm F2.8 DC DN | C</td>
+</tr><tr><td>50532</td><td>= Sigma 20mm F2 DG DN | C</td>
</tr><tr><td>50992</td><td>= Voigtlander SUPER WIDE-HELIAR 15mm F4.5 III</td>
</tr><tr><td>50993</td><td>= Voigtlander HELIAR-HYPER WIDE 10mm F5.6</td>
</tr><tr><td>50994</td><td>= Voigtlander ULTRA WIDE-HELIAR 12mm F5.6 III</td>
@@ -4986,6 +4987,7 @@ multi-frame noise reduction)</span></span></td></tr>
</tr><tr><td>51515</td><td>= Samyang AF 12mm F2.0</td>
</tr><tr><td>51516</td><td>= Samyang AF 24-70mm F2.8</td>
</tr><tr><td>51517</td><td>= Samyang AF 50mm F1.4 II</td>
+</tr><tr><td>51518</td><td>= Samyang AF 135mm F1.8</td>
</tr></table></td></tr></table></blockquote>
<h2><a name='CameraSettingsUnknown'>Sony CameraSettingsUnknown Tags</a></h2>
@@ -11821,7 +11823,7 @@ some models when the <a href="../ExifTool.html#ExtractEmbedded">ExtractEmbedded<
<hr>
(This document generated automatically by Image::ExifTool::BuildTagLookup)
-<br><i>Last revised Feb 9, 2022</i>
+<br><i>Last revised Apr 7, 2022</i>
<p class=lf><a href='index.html'>&lt;-- ExifTool Tag Names</a></p>
</body>
</html>
diff --git a/html/exiftool_pod.html b/html/exiftool_pod.html
index d0acbc2d..7fd295a2 100644
--- a/html/exiftool_pod.html
+++ b/html/exiftool_pod.html
@@ -507,7 +507,7 @@
# update metadata for all images in a directory from CSV file
exiftool -csv=a.csv dir</code></pre>
-<p>Empty values are ignored when importing (unless the <b>-f</b> option is used and the API MissingTagValue is set to an empty string, in which case the tag is deleted). Also, FileName and Directory columns are ignored if they exist (ie. ExifTool will not attempt to write these tags with a CSV import). To force a tag to be deleted, use the <b>-f</b> option and set the value to &quot;-&quot; in the CSV file (or to the MissingTagValue if this API option was used). Multiple databases may be imported in a single command.</p>
+<p>When importing, empty values are ignored unless the <b>-f</b> option is used and the API MissingTagValue is set to an empty string (in which case the tag is deleted). Also, FileName and Directory columns are ignored if they exist (ie. ExifTool will not attempt to write these tags with a CSV import), but all other columns are imported. To force a tag to be deleted, use the <b>-f</b> option and set the value to &quot;-&quot; in the CSV file (or to the MissingTagValue if this API option was used). Multiple databases may be imported in a single command.</p>
<p>When exporting a CSV file, the <b>-g</b> or <b>-G</b> option adds group names to the tag headings. If the <b>-a</b> option is used to allow duplicate tag names, the duplicate tags are only included in the CSV output if the column headings are unique. Adding the <b>-G4</b> option ensures a unique column heading for each tag. The <b>-b</b> option may be added to output binary data, encoded in base64 if necessary (indicated by ASCII &quot;base64:&quot; as the first 7 bytes of the value). Values may also be encoded in base64 if the <b>-charset</b> option is used and the value contains invalid characters.</p>
@@ -688,7 +688,7 @@
<p>produces output like this:</p>
-<pre><code> -- Generated by ExifTool 12.40 --
+<pre><code> -- Generated by ExifTool 12.41 --
File: a.jpg - 2003:10:31 15:44:19
(f/5.6, 1/60s, ISO 100)
File: b.jpg - 2006:05:23 11:57:38
@@ -770,7 +770,7 @@
<dt id="v-NUM--verbose"><b>-v</b>[<i>NUM</i>] (<b>-verbose</b>)</dt>
<dd>
-<p>Print verbose messages. <i>NUM</i> specifies the level of verbosity in the range 0-5, with higher numbers being more verbose. If <i>NUM</i> is not given, then each <b>-v</b> option increases the level of verbosity by 1. With any level greater than 0, most other options are ignored and normal console output is suppressed unless specific tags are extracted. Using <b>-v0</b> causes the console output buffer to be flushed after each line (which may be useful to avoid delays when piping exiftool output), and prints the name of each processed file when writing. Also see the <b>-progress</b> option.</p>
+<p>Print verbose messages. <i>NUM</i> specifies the level of verbosity in the range 0-5, with higher numbers being more verbose. If <i>NUM</i> is not given, then each <b>-v</b> option increases the level of verbosity by 1. With any level greater than 0, most other options are ignored and normal console output is suppressed unless specific tags are extracted. Using <b>-v0</b> causes the console output buffer to be flushed after each line (which may be useful to avoid delays when piping exiftool output), and prints the name of each processed file when writing and the new file name when renaming, moving or copying. Verbose levels above <b>-v0</b> do not flush after each line. Also see the <b>-progress</b> option.</p>
</dd>
<dt id="w-EXT-or-FMT--textOut"><b>-w</b>[+|!] <i>EXT</i> or <i>FMT</i> (<b>-textOut</b>)</dt>
@@ -903,7 +903,7 @@
<dt id="a---a--duplicates---duplicates"><b>-a</b>, <b>--a</b> (<b>-duplicates</b>, <b>--duplicates</b>)</dt>
<dd>
-<p>Allow (<b>-a</b>) or suppress (<b>--a</b>) duplicate tag names to be extracted. By default, duplicate tags are suppressed when reading unless the <b>-ee</b> or <b>-X</b> options are used or the Duplicates option is enabled in the configuration file. This option has an affect when writing only to allow duplicate Warning messages to be shown. Duplicate tags are always extracted when copying.</p>
+<p>Allow (<b>-a</b>) or suppress (<b>--a</b>) duplicate tag names to be extracted. By default, duplicate tags are suppressed when reading unless the <b>-ee</b> or <b>-X</b> options are used or the Duplicates option is enabled in the configuration file. When writing, this option allows multiple Warning messages to be shown. Duplicate tags are always extracted when copying.</p>
</dd>
<dt id="e---composite"><b>-e</b> (<b>--composite</b>)</dt>
diff --git a/html/exiftool_pod.pdf b/html/exiftool_pod.pdf
index 0bad5886..b9766425 100644
--- a/html/exiftool_pod.pdf
+++ b/html/exiftool_pod.pdf
@@ -12,7 +12,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 1)Tj
+( -- ExifTool 12.41 -- 1)Tj
/TT4 1 Tf
0 -1.6333 TD
(EXIFTOOL\(1\) User Contributed Perl Documentation EXIFTOOL\(1\))Tj
@@ -637,7 +637,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 2)Tj
+( -- ExifTool 12.41 -- 2)Tj
/TT4 1 Tf
0 -1.6333 TD
( AVIF r/w | FLA r | MEF r/w | PDB r | TIFF r/w)Tj
@@ -834,7 +834,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 3)Tj
+( -- ExifTool 12.41 -- 3)Tj
/TT4 1 Tf
0 -1.6333 TD
( -c FMT \(-coordFormat\) Set format for GPS coordinates)Tj
@@ -991,7 +991,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 4)Tj
+( -- ExifTool 12.41 -- 4)Tj
/TT4 1 Tf
0 -1.6333 TD
( -geotag TRKFILE Geotag images from specified GPS log)Tj
@@ -1282,7 +1282,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 5)Tj
+( -- ExifTool 12.41 -- 5)Tj
/TT4 1 Tf
0 -1.6333 TD
( note 4 below\). Instead, individual tags may be recovered using)Tj
@@ -1617,7 +1617,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 6)Tj
+( -- ExifTool 12.41 -- 6)Tj
/TT4 1 Tf
0 -1.6333 TD
( information it expects to find in the maker notes.)Tj
@@ -1998,7 +1998,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 7)Tj
+( -- ExifTool 12.41 -- 7)Tj
/TT4 1 Tf
0 -1.6333 TD
( _)Tj
@@ -2543,7 +2543,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 8)Tj
+( -- ExifTool 12.41 -- 8)Tj
/TT4 1 Tf
0 -1.6333 TD
( order One, Two, Three then Four with this command:)Tj
@@ -3036,7 +3036,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 9)Tj
+( -- ExifTool 12.41 -- 9)Tj
/TT4 1 Tf
0 -1.6333 TD
( Output information in the form of exiftool arguments, suitable for)Tj
@@ -3449,7 +3449,7 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 10)Tj
+( -- ExifTool 12.41 -- 10)Tj
/TT4 1 Tf
0 -1.6333 TD
( Valid _)Tj
@@ -3720,7 +3720,7 @@ endobj
endobj
36 0 obj
<<
-/Length 6576
+/Length 6447
>>
stream
BT
@@ -3730,34 +3730,36 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 11)Tj
+( -- ExifTool 12.41 -- 11)Tj
/TT4 1 Tf
0 -1.6333 TD
( exiftool -csv=a.csv dir)Tj
0 -2.2 TD
-( Empty values are ignored when importing \(unless the -)Tj
+( When importing, empty values are ignored unless the -)Tj
38.4 0 TD
(-f)Tj
0.6 0 TD
(f option is)Tj
-39 -1.1 TD
-( used and the API MissingTagValue is set to an empty string, in)Tj
+( used and the API MissingTagValue is set to an empty string \(in)Tj
T*
( which case the tag is deleted\). Also, FileName and Directory)Tj
T*
( columns are ignored if they exist \(ie. ExifTool will not attempt)Tj
T*
-( to write these tags with a CSV import\). To force a tag to be)Tj
+( to write these tags with a CSV import\), but all other columns are)Tj
T*
-( deleted, use the -)Tj
-17.4 0 TD
+( imported. To force a tag to be deleted, use the -)Tj
+36.6 0 TD
(-f)Tj
0.6 0 TD
-(f option and set the value to "-" in the CSV)Tj
--18 -1.1 TD
-( file \(or to the MissingTagValue if this API option was used\).)Tj
+(f option and set)Tj
+-37.2 -1.1 TD
+( the value to "-" in the CSV file \(or to the MissingTagValue if)Tj
+T*
+( this API option was used\). Multiple databases may be imported in)Tj
T*
-( Multiple databases may be imported in a single command.)Tj
+( a single command.)Tj
0 -2.2 TD
( When exporting a CSV file, the -)Tj
25.8 0 TD
@@ -4040,28 +4042,6 @@ T*
( per command. Requires POSIX::strptime or Time::Piece for the)Tj
T*
( inversion conversion when writing.)Tj
-0 -2.2 TD
-( -)Tj
-4.2 0 TD
-(-D)Tj
-0.6 0 TD
-(D \(-)Tj
-1.8 0 TD
-(-d)Tj
-0.6 0 TD
-(de)Tj
-0.6 0 TD
-(ec)Tj
-0.6 0 TD
-(ci)Tj
-0.6 0 TD
-(im)Tj
-0.6 0 TD
-(ma)Tj
-0.6 0 TD
-(al)Tj
-0.6 0 TD
-(l\))Tj
ET
endstream
endobj
@@ -4079,7 +4059,7 @@ endobj
endobj
41 0 obj
<<
-/Length 9052
+/Length 9121
>>
stream
BT
@@ -4089,9 +4069,31 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 12)Tj
+( -- ExifTool 12.41 -- 12)Tj
/TT4 1 Tf
0 -1.6333 TD
+( -)Tj
+4.2 0 TD
+(-D)Tj
+0.6 0 TD
+(D \(-)Tj
+1.8 0 TD
+(-d)Tj
+0.6 0 TD
+(de)Tj
+0.6 0 TD
+(ec)Tj
+0.6 0 TD
+(ci)Tj
+0.6 0 TD
+(im)Tj
+0.6 0 TD
+(ma)Tj
+0.6 0 TD
+(al)Tj
+0.6 0 TD
+(l\))Tj
+-10.8 -1.1 TD
( Show tag ID number in decimal when extracting information.)Tj
0 -2.2 TD
( -)Tj
@@ -4733,12 +4735,6 @@ T*
(L_)Tj
0.6 0 TD
(E is specified. This option)Tj
--30 -1.1 TD
-( may be combined with -)Tj
-19.8 0 TD
-(-g)Tj
-0.6 0 TD
-(g to organize the output into objects by)Tj
ET
endstream
endobj
@@ -4756,7 +4752,7 @@ endobj
endobj
44 0 obj
<<
-/Length 7676
+/Length 7711
>>
stream
BT
@@ -4766,9 +4762,15 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 13)Tj
+( -- ExifTool 12.41 -- 13)Tj
/TT4 1 Tf
0 -1.6333 TD
+( may be combined with -)Tj
+19.8 0 TD
+(-g)Tj
+0.6 0 TD
+(g to organize the output into objects by)Tj
+-20.4 -1.1 TD
( group, or -)Tj
13.2 0 TD
(-G)Tj
@@ -5206,8 +5208,6 @@ T*
( available to help preserve the column alignment of the plain text)Tj
T*
( output for languages with a variable-width character set.)Tj
-0 -2.2 TD
-( Currently, the language support is not complete, but users are)Tj
ET
endstream
endobj
@@ -5225,7 +5225,7 @@ endobj
endobj
47 0 obj
<<
-/Length 4194
+/Length 4276
>>
stream
BT
@@ -5235,11 +5235,13 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 14)Tj
+( -- ExifTool 12.41 -- 14)Tj
/TT4 1 Tf
0 -1.6333 TD
-( welcome to help improve this by submitting their own translations.)Tj
+( Currently, the language support is not complete, but users are)Tj
0 -1.1 TD
+( welcome to help improve this by submitting their own translations.)Tj
+T*
( To submit a translation, follow these steps \(you must have Perl)Tj
T*
( installed for this\):)Tj
@@ -5430,7 +5432,7 @@ endobj
endobj
50 0 obj
<<
-/Length 6102
+/Length 6066
>>
stream
BT
@@ -5440,9 +5442,9 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 15)Tj
+( -- ExifTool 12.41 -- 15)Tj
/TT4 1 Tf
-0 -1.6333 TD
+0 -2.7333 TD
( -)Tj
4.2 0 TD
(-p)Tj
@@ -5557,7 +5559,7 @@ T*
T*
( produces output like this:)Tj
T*
-( -- Generated by ExifTool 12.40 --)Tj
+( -- Generated by ExifTool 12.41 --)Tj
0 -1.1 TD
( File: a.jpg - 2003:10:31 15:44:19)Tj
T*
@@ -5758,8 +5760,6 @@ T*
(t for details\). Here is a simple)Tj
-24 -1.1 TD
( example showing how this could be used in a PHP script:)Tj
-0 -2.2 TD
-( <?php)Tj
ET
endstream
endobj
@@ -5777,7 +5777,7 @@ endobj
endobj
53 0 obj
<<
-/Length 7377
+/Length 7406
>>
stream
BT
@@ -5787,11 +5787,13 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 16)Tj
+( -- ExifTool 12.41 -- 16)Tj
/TT4 1 Tf
0 -1.6333 TD
-( eval\('$array=' . `exiftool -php -q image.jpg`\);)Tj
+( <?php)Tj
0 -1.1 TD
+( eval\('$array=' . `exiftool -php -q image.jpg`\);)Tj
+T*
( print_r\($array\);)Tj
T*
( ?>)Tj
@@ -6270,7 +6272,7 @@ endobj
endobj
56 0 obj
<<
-/Length 6281
+/Length 6439
>>
stream
BT
@@ -6280,9 +6282,9 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 17)Tj
+( -- ExifTool 12.41 -- 17)Tj
/TT4 1 Tf
-0 -1.6333 TD
+0 -2.7333 TD
( -)Tj
4.2 0 TD
(-T)Tj
@@ -6385,8 +6387,18 @@ T*
T*
( piping exiftool output\), and prints the name of each processed)Tj
T*
-( file when writing. Also see the -)Tj
-27 0 TD
+( file when writing and the new file name when renaming, moving or)Tj
+T*
+( copying. Verbose levels above -)Tj
+25.8 0 TD
+(-v)Tj
+0.6 0 TD
+(v0)Tj
+0.6 0 TD
+(0 do not flush after each line.)Tj
+-27 -1.1 TD
+( Also see the -)Tj
+15 0 TD
(-p)Tj
0.6 0 TD
(pr)Tj
@@ -6404,7 +6416,7 @@ T*
(ss)Tj
0.6 0 TD
(s option.)Tj
--31.8 -2.2 TD
+-19.8 -2.2 TD
( -)Tj
4.2 0 TD
(-w)Tj
@@ -6620,8 +6632,6 @@ T*
( # 3. With the -W option \(see the -W option below\))Tj
0 -1.1 TD
( exiftool -W+! out.txt FILE1 FILE2 ...)Tj
-0 -2.2 TD
-( Advanced features:)Tj
ET
endstream
endobj
@@ -6639,7 +6649,7 @@ endobj
endobj
59 0 obj
<<
-/Length 4999
+/Length 4777
>>
stream
BT
@@ -6649,9 +6659,11 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 18)Tj
+( -- ExifTool 12.41 -- 18)Tj
/TT4 1 Tf
-0 -1.6333 TD
+0 -2.7333 TD
+( Advanced features:)Tj
+0 -2.2 TD
( A substring of the original file name, directory or extension may)Tj
0 -1.1 TD
( be taken by specifying a field width immediately following the '%')Tj
@@ -6765,12 +6777,6 @@ T*
( -w %.3C-%f.txt # 000-rose.txt, 001-star.txt, 002-jet.txt)Tj
T*
( -w %57.4C%f.txt # 0057rose.txt, 0058star.txt, 0059jet.txt)Tj
-0 -2.2 TD
-( All format codes may be modified by 'l' or 'u' to specify lower or)Tj
-0 -1.1 TD
-( upper case respectively \(ie. %le for a lower case file extension\).)Tj
-T*
-( When used to modify %c or %C, the numbers are changed to an)Tj
ET
endstream
endobj
@@ -6788,7 +6794,7 @@ endobj
endobj
62 0 obj
<<
-/Length 7539
+/Length 7535
>>
stream
BT
@@ -6798,11 +6804,17 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 19)Tj
+( -- ExifTool 12.41 -- 19)Tj
/TT4 1 Tf
0 -1.6333 TD
-( alphabetical base \(see example H above\). Also, %c and %C may be)Tj
+( All format codes may be modified by 'l' or 'u' to specify lower or)Tj
0 -1.1 TD
+( upper case respectively \(ie. %le for a lower case file extension\).)Tj
+T*
+( When used to modify %c or %C, the numbers are changed to an)Tj
+T*
+( alphabetical base \(see example H above\). Also, %c and %C may be)Tj
+T*
( modified by 'n' to count using natural numbers starting from 1,)Tj
T*
( instead of 0 \(see example F above\).)Tj
@@ -7240,26 +7252,6 @@ T*
(s is that only one tag with a given group)Tj
-21.6 -1.1 TD
( and name may appear in the output. Note that the tag ID options)Tj
-T*
-( \(-)Tj
-7.8 0 TD
-(-D)Tj
-0.6 0 TD
-(D, -)Tj
-1.8 0 TD
-(-H)Tj
-0.6 0 TD
-(H and -)Tj
-3.6 0 TD
-(-t)Tj
-0.6 0 TD
-(t\) will produce non-standard RDF/XML unless the -)Tj
-28.8 0 TD
-(-l)Tj
-0.6 0 TD
-(l)Tj
--44.4 -1.1 TD
-( option is also used.)Tj
ET
endstream
endobj
@@ -7277,7 +7269,7 @@ endobj
endobj
65 0 obj
<<
-/Length 7813
+/Length 7802
>>
stream
BT
@@ -7287,9 +7279,29 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 20)Tj
+( -- ExifTool 12.41 -- 20)Tj
/TT4 1 Tf
0 -1.6333 TD
+( \(-)Tj
+7.8 0 TD
+(-D)Tj
+0.6 0 TD
+(D, -)Tj
+1.8 0 TD
+(-H)Tj
+0.6 0 TD
+(H and -)Tj
+3.6 0 TD
+(-t)Tj
+0.6 0 TD
+(t\) will produce non-standard RDF/XML unless the -)Tj
+28.8 0 TD
+(-l)Tj
+0.6 0 TD
+(l)Tj
+-44.4 -1.1 TD
+( option is also used.)Tj
+0 -2.2 TD
( By default, -)Tj
14.4 0 TD
(-X)Tj
@@ -7508,11 +7520,11 @@ T*
0.6 0 TD
(X options are used or the Duplicates option is enabled in)Tj
-12 -1.1 TD
-( the configuration file. This option has an affect when writing)Tj
+( the configuration file. When writing, this option allows multiple)Tj
T*
-( only to allow duplicate Warning messages to be shown. Duplicate)Tj
+( Warning messages to be shown. Duplicate tags are always extracted)Tj
T*
-( tags are always extracted when copying.)Tj
+( when copying.)Tj
0 -2.2 TD
( -)Tj
4.2 0 TD
@@ -7779,12 +7791,6 @@ T*
( three examples:)Tj
0 -2.2 TD
( exiftool -ext JPG DIR # process only JPG files)Tj
-0 -1.1 TD
-( exiftool --ext cr2 --ext dng DIR # supported files but CR2/DNG)Tj
-T*
-( exiftool -ext+ txt DIR # supported files plus TXT)Tj
-T*
-( exiftool -ext "*" DIR # process all files)Tj
ET
endstream
endobj
@@ -7802,7 +7808,7 @@ endobj
endobj
68 0 obj
<<
-/Length 8151
+/Length 8091
>>
stream
BT
@@ -7812,11 +7818,17 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 21)Tj
+( -- ExifTool 12.41 -- 21)Tj
/TT4 1 Tf
0 -1.6333 TD
-( exiftool -ext "*" --ext xml DIR # process all but XML files)Tj
+( exiftool --ext cr2 --ext dng DIR # supported files but CR2/DNG)Tj
0 -1.1 TD
+( exiftool -ext+ txt DIR # supported files plus TXT)Tj
+T*
+( exiftool -ext "*" DIR # process all files)Tj
+T*
+( exiftool -ext "*" --ext xml DIR # process all but XML files)Tj
+T*
( exiftool -ext "*" --ext . DIR # all but those with no ext)Tj
0 -2.2 TD
( Using this option has two main advantages over specifying "*.EXT")Tj
@@ -8312,22 +8324,6 @@ T*
(er)Tj
0.6 0 TD
(r options are)Tj
--39 -1.1 TD
-( used, the extraction is done at the lowest -)Tj
-33 0 TD
-(-f)Tj
-0.6 0 TD
-(fa)Tj
-0.6 0 TD
-(as)Tj
-0.6 0 TD
-(st)Tj
-0.6 0 TD
-(t level. Note that)Tj
--35.4 -1.1 TD
-( files are sorted across directory boundaries if multiple input)Tj
-T*
-( directories are specified.)Tj
ET
endstream
endobj
@@ -8345,7 +8341,7 @@ endobj
endobj
72 0 obj
<<
-/Length 6497
+/Length 6554
>>
stream
BT
@@ -8355,9 +8351,25 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 22)Tj
+( -- ExifTool 12.41 -- 22)Tj
/TT4 1 Tf
-0 -2.7333 TD
+0 -1.6333 TD
+( used, the extraction is done at the lowest -)Tj
+33 0 TD
+(-f)Tj
+0.6 0 TD
+(fa)Tj
+0.6 0 TD
+(as)Tj
+0.6 0 TD
+(st)Tj
+0.6 0 TD
+(t level. Note that)Tj
+-35.4 -1.1 TD
+( files are sorted across directory boundaries if multiple input)Tj
+T*
+( directories are specified.)Tj
+0 -2.2 TD
( -)Tj
4.2 0 TD
(-i)Tj
@@ -8671,12 +8683,6 @@ T*
(-p)Tj
0.6 0 TD
(p)Tj
--43.8 -1.1 TD
-( before the expression is evaluated. In this interpolation, $/ is)Tj
-T*
-( converted to a newline and $$ represents a single "$" symbol \(so)Tj
-T*
-( Perl variables, if used, require a double "$"\).)Tj
ET
endstream
endobj
@@ -8694,7 +8700,7 @@ endobj
endobj
75 0 obj
<<
-/Length 7307
+/Length 6989
>>
stream
BT
@@ -8704,9 +8710,15 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 23)Tj
+( -- ExifTool 12.41 -- 23)Tj
/TT4 1 Tf
-0 -2.7333 TD
+0 -1.6333 TD
+( before the expression is evaluated. In this interpolation, $/ is)Tj
+0 -1.1 TD
+( converted to a newline and $$ represents a single "$" symbol \(so)Tj
+T*
+( Perl variables, if used, require a double "$"\).)Tj
+0 -2.2 TD
( 4\) The condition may only test tags from the file being processed.)Tj
0 -1.1 TD
( To process one file based on tags from another, two steps are)Tj
@@ -9096,7 +9108,36 @@ T*
(E is specified, the output file may be)Tj
-21.6 -1.1 TD
( created from scratch using only tags assigned on the command line.)Tj
-0 -2.2 TD
+ET
+endstream
+endobj
+76 0 obj
+<<
+/ProcSet [/PDF /Text ]
+/Font <<
+/TT2 4 0 R
+/TT4 5 0 R
+>>
+/ExtGState <<
+/GS1 6 0 R
+>>
+>>
+endobj
+78 0 obj
+<<
+/Length 8770
+>>
+stream
+BT
+/TT2 1 Tf
+10 0 0 10 29 806.3333 Tm
+0 g
+/GS1 gs
+0 Tc
+0 Tw
+( -- ExifTool 12.41 -- 24)Tj
+/TT4 1 Tf
+0 -1.6333 TD
( -)Tj
4.2 0 TD
(-o)Tj
@@ -9148,38 +9189,9 @@ T*
(E \(instead of preserving it by adding)Tj
-22.8 -1.1 TD
( "_original" to the file name\) when writing information to an)Tj
-ET
-endstream
-endobj
-76 0 obj
-<<
-/ProcSet [/PDF /Text ]
-/Font <<
-/TT2 4 0 R
-/TT4 5 0 R
->>
-/ExtGState <<
-/GS1 6 0 R
->>
->>
-endobj
-78 0 obj
-<<
-/Length 8469
->>
-stream
-BT
-/TT2 1 Tf
-10 0 0 10 29 806.3333 Tm
-0 g
-/GS1 gs
-0 Tc
-0 Tw
-( -- ExifTool 12.40 -- 24)Tj
-/TT4 1 Tf
-0 -1.6333 TD
+T*
( image. Caution: This option should only be used if you already)Tj
-0 -1.1 TD
+T*
( have separate backup copies of your image files. The overwrite is)Tj
T*
( implemented by renaming a temporary file to replace the original.)Tj
@@ -9733,16 +9745,6 @@ T*
(-q)Tj
0.6 0 TD
(q suppresses warnings as well. Error)Tj
--21.6 -1.1 TD
-( messages can not be suppressed, although minor errors may be)Tj
-T*
-( downgraded to warnings with the -)Tj
-26.4 0 TD
-(-m)Tj
-0.6 0 TD
-(m option, which may then be)Tj
--27 -1.1 TD
-( suppressed with "-q -q".)Tj
ET
endstream
endobj
@@ -9760,7 +9762,7 @@ endobj
endobj
81 0 obj
<<
-/Length 6357
+/Length 6371
>>
stream
BT
@@ -9770,9 +9772,19 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 25)Tj
+( -- ExifTool 12.41 -- 25)Tj
/TT4 1 Tf
-0 -2.7333 TD
+0 -1.6333 TD
+( messages can not be suppressed, although minor errors may be)Tj
+0 -1.1 TD
+( downgraded to warnings with the -)Tj
+26.4 0 TD
+(-m)Tj
+0.6 0 TD
+(m option, which may then be)Tj
+-27 -1.1 TD
+( suppressed with "-q -q".)Tj
+0 -2.2 TD
( -)Tj
4.2 0 TD
(-r)Tj
@@ -10126,12 +10138,6 @@ T*
( the rest of the line is treated as a C string, allowing standard C)Tj
T*
( escape sequences such as "\\n" for a newline\). White space at the)Tj
-T*
-( start of a line is removed. Normal shell processing of arguments)Tj
-T*
-( is not performed, which among other things means that arguments)Tj
-T*
-( should not be quoted and spaces are treated as any other)Tj
ET
endstream
endobj
@@ -10149,7 +10155,7 @@ endobj
endobj
84 0 obj
<<
-/Length 8720
+/Length 8764
>>
stream
BT
@@ -10159,9 +10165,15 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 26)Tj
+( -- ExifTool 12.41 -- 26)Tj
/TT4 1 Tf
0 -1.6333 TD
+( start of a line is removed. Normal shell processing of arguments)Tj
+0 -1.1 TD
+( is not performed, which among other things means that arguments)Tj
+T*
+( should not be quoted and spaces are treated as any other)Tj
+T*
( character. _)Tj
14.4 0 TD
(A_)Tj
@@ -10767,14 +10779,6 @@ T*
(2 to)Tj
-44.4 -1.1 TD
( also list the Perl include directories.)Tj
-0 -2.2 TD
-( -)Tj
-4.2 0 TD
-(--)Tj
-0.6 0 TD
-(- Indicates the end of options. Any remaining arguments are treated)Tj
--4.8 -1.1 TD
-( as file names, even if they begin with a dash \("-"\).)Tj
ET
endstream
endobj
@@ -10792,7 +10796,7 @@ endobj
endobj
87 0 obj
<<
-/Length 6136
+/Length 6213
>>
stream
BT
@@ -10802,9 +10806,17 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 27)Tj
+( -- ExifTool 12.41 -- 27)Tj
/TT4 1 Tf
0 -2.7333 TD
+( -)Tj
+4.2 0 TD
+(--)Tj
+0.6 0 TD
+(- Indicates the end of options. Any remaining arguments are treated)Tj
+-4.8 -1.1 TD
+( as file names, even if they begin with a dash \("-"\).)Tj
+0 -2.2 TD
( _)Tj
4.2 0 TD
(S_)Tj
@@ -11114,10 +11126,6 @@ T*
(F_)Tj
0.6 0 TD
(T)Tj
--45.6 -1.1 TD
-( string. For example:)Tj
-0 -2.2 TD
-( # return all date/times, shifted back by 1 hour)Tj
ET
endstream
endobj
@@ -11135,7 +11143,7 @@ endobj
endobj
90 0 obj
<<
-/Length 7677
+/Length 7428
>>
stream
BT
@@ -11145,9 +11153,13 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 28)Tj
+( -- ExifTool 12.41 -- 28)Tj
/TT4 1 Tf
0 -1.6333 TD
+( string. For example:)Tj
+0 -2.2 TD
+( # return all date/times, shifted back by 1 hour)Tj
+0 -1.1 TD
( exiftool -globalTimeShift -1 -time:all a.jpg)Tj
0 -2.2 TD
( # set the file name from the shifted CreateDate \(-1 day\) for)Tj
@@ -11665,28 +11677,6 @@ T*
(L_)Tj
0.6 0 TD
(E)Tj
--12.6 -1.1 TD
-( Load specified configuration file instead of the default)Tj
-T*
-( ".ExifTool_config". If used, this option must come before all)Tj
-T*
-( other arguments on the command line and applies to all -)Tj
-40.2 0 TD
-(-e)Tj
-0.6 0 TD
-(ex)Tj
-0.6 0 TD
-(xe)Tj
-0.6 0 TD
-(ec)Tj
-0.6 0 TD
-(cu)Tj
-0.6 0 TD
-(ut)Tj
-0.6 0 TD
-(te)Tj
-0.6 0 TD
-(e'd)Tj
ET
endstream
endobj
@@ -11704,7 +11694,7 @@ endobj
endobj
93 0 obj
<<
-/Length 9214
+/Length 9345
>>
stream
BT
@@ -11714,9 +11704,31 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 29)Tj
+( -- ExifTool 12.41 -- 29)Tj
/TT4 1 Tf
0 -1.6333 TD
+( Load specified configuration file instead of the default)Tj
+0 -1.1 TD
+( ".ExifTool_config". If used, this option must come before all)Tj
+T*
+( other arguments on the command line and applies to all -)Tj
+40.2 0 TD
+(-e)Tj
+0.6 0 TD
+(ex)Tj
+0.6 0 TD
+(xe)Tj
+0.6 0 TD
+(ec)Tj
+0.6 0 TD
+(cu)Tj
+0.6 0 TD
+(ut)Tj
+0.6 0 TD
+(te)Tj
+0.6 0 TD
+(e'd)Tj
+-44.4 -1.1 TD
( commands. The _)Tj
16.2 0 TD
(C_)Tj
@@ -12370,26 +12382,6 @@ T*
(e option is specified, the files are)Tj
-21.6 -1.1 TD
( tested in order and the first existing source file is processed.)Tj
-T*
-( If none of the source files already exist, then exiftool uses the)Tj
-T*
-( first -)Tj
-10.8 0 TD
-(-s)Tj
-0.6 0 TD
-(sr)Tj
-0.6 0 TD
-(rc)Tj
-0.6 0 TD
-(cf)Tj
-0.6 0 TD
-(fi)Tj
-0.6 0 TD
-(il)Tj
-0.6 0 TD
-(le)Tj
-0.6 0 TD
-(e specified.)Tj
ET
endstream
endobj
@@ -12407,7 +12399,7 @@ endobj
endobj
96 0 obj
<<
-/Length 8009
+/Length 7923
>>
stream
BT
@@ -12417,9 +12409,29 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 30)Tj
+( -- ExifTool 12.41 -- 30)Tj
/TT4 1 Tf
0 -1.6333 TD
+( If none of the source files already exist, then exiftool uses the)Tj
+0 -1.1 TD
+( first -)Tj
+10.8 0 TD
+(-s)Tj
+0.6 0 TD
+(sr)Tj
+0.6 0 TD
+(rc)Tj
+0.6 0 TD
+(cf)Tj
+0.6 0 TD
+(fi)Tj
+0.6 0 TD
+(il)Tj
+0.6 0 TD
+(le)Tj
+0.6 0 TD
+(e specified.)Tj
+-15 -2.2 TD
( A _)Tj
8.4 0 TD
(F_)Tj
@@ -12943,22 +12955,6 @@ T*
(-p)Tj
0.6 0 TD
(p)Tj
--43.2 -1.1 TD
-( options as if they were any other tag. Appending a hash tag \("#"\))Tj
-T*
-( to _)Tj
-9 0 TD
-(P_)Tj
-0.6 0 TD
-(A_)Tj
-0.6 0 TD
-(R_)Tj
-0.6 0 TD
-(A_)Tj
-0.6 0 TD
-(M \(eg. "-userParam MyTag#=yes"\) also causes the parameter)Tj
--11.4 -1.1 TD
-( to be extracted as a normal tag in the UserParam group. Similar)Tj
ET
endstream
endobj
@@ -12976,7 +12972,7 @@ endobj
endobj
99 0 obj
<<
-/Length 5175
+/Length 5299
>>
stream
BT
@@ -12986,9 +12982,25 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 31)Tj
+( -- ExifTool 12.41 -- 31)Tj
/TT4 1 Tf
0 -1.6333 TD
+( options as if they were any other tag. Appending a hash tag \("#"\))Tj
+0 -1.1 TD
+( to _)Tj
+9 0 TD
+(P_)Tj
+0.6 0 TD
+(A_)Tj
+0.6 0 TD
+(R_)Tj
+0.6 0 TD
+(A_)Tj
+0.6 0 TD
+(M \(eg. "-userParam MyTag#=yes"\) also causes the parameter)Tj
+-11.4 -1.1 TD
+( to be extracted as a normal tag in the UserParam group. Similar)Tj
+T*
( to the -)Tj
11.4 0 TD
(-a)Tj
@@ -13218,18 +13230,6 @@ T*
( For example, the following command may be used to remove duplicate)Tj
T*
( Keywords:)Tj
-0 -2.2 TD
-( exiftool -sep '##' '-keywords<${keywords;NoDups}' a.jpg)Tj
-T*
-( The -)Tj
-6.6 0 TD
-(-s)Tj
-0.6 0 TD
-(se)Tj
-0.6 0 TD
-(ep)Tj
-0.6 0 TD
-(p option is necessary to split the string back into individual)Tj
ET
endstream
endobj
@@ -13247,7 +13247,7 @@ endobj
endobj
103 0 obj
<<
-/Length 6338
+/Length 5987
>>
stream
BT
@@ -13257,9 +13257,21 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 32)Tj
+( -- ExifTool 12.41 -- 32)Tj
/TT4 1 Tf
0 -1.6333 TD
+( exiftool -sep '##' '-keywords<${keywords;NoDups}' a.jpg)Tj
+0 -2.2 TD
+( The -)Tj
+6.6 0 TD
+(-s)Tj
+0.6 0 TD
+(se)Tj
+0.6 0 TD
+(ep)Tj
+0.6 0 TD
+(p option is necessary to split the string back into individual)Tj
+-8.4 -1.1 TD
( list items when writing to a list-type tag.)Tj
0 -2.2 TD
( An optional flag argument may be set to 1 to cause "NoDups" to set $_)Tj
@@ -13585,7 +13597,36 @@ T*
( provided that the user has write permission in the directory. However,)Tj
T*
( there are three cases where file write permission is also required:)Tj
-0 -2.2 TD
+ET
+endstream
+endobj
+104 0 obj
+<<
+/ProcSet [/PDF /Text ]
+/Font <<
+/TT2 4 0 R
+/TT4 5 0 R
+>>
+/ExtGState <<
+/GS1 6 0 R
+>>
+>>
+endobj
+106 0 obj
+<<
+/Length 5695
+>>
+stream
+BT
+/TT2 1 Tf
+10 0 0 10 29 806.3333 Tm
+0 g
+/GS1 gs
+0 Tc
+0 Tw
+( -- ExifTool 12.41 -- 33)Tj
+/TT4 1 Tf
+0 -1.6333 TD
( 1\) When using the -)Tj
15 0 TD
(-o)Tj
@@ -13645,36 +13686,7 @@ T*
(e option.)Tj
-31.2 -2.2 TD
( 2\) When writing only pseudo System tags \(eg. FileModifyDate\).)Tj
-ET
-endstream
-endobj
-104 0 obj
-<<
-/ProcSet [/PDF /Text ]
-/Font <<
-/TT2 4 0 R
-/TT4 5 0 R
->>
-/ExtGState <<
-/GS1 6 0 R
->>
->>
-endobj
-106 0 obj
-<<
-/Length 5282
->>
-stream
-BT
-/TT2 1 Tf
-10 0 0 10 29 806.3333 Tm
-0 g
-/GS1 gs
-0 Tc
-0 Tw
-( -- ExifTool 12.40 -- 33)Tj
-/TT4 1 Tf
-0 -2.7333 TD
+T*
( 3\) On Windows if the file has Unicode characters in its name, and a\))Tj
0 -1.1 TD
( the -)Tj
@@ -13918,10 +13930,6 @@ T*
( Print formatted date/time for all JPG files in the current)Tj
T*
( directory.)Tj
-0 -2.2 TD
-( exiftool -IFD1:XResolution -IFD1:YResolution image.jpg)Tj
-0 -1.1 TD
-( Extract image resolution from EXIF IFD1 information \(thumbnail)Tj
ET
endstream
endobj
@@ -13939,7 +13947,7 @@ endobj
endobj
109 0 obj
<<
-/Length 4301
+/Length 4294
>>
stream
BT
@@ -13949,9 +13957,13 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 34)Tj
+( -- ExifTool 12.41 -- 34)Tj
/TT4 1 Tf
-0 -1.6333 TD
+0 -2.7333 TD
+( exiftool -IFD1:XResolution -IFD1:YResolution image.jpg)Tj
+0 -1.1 TD
+( Extract image resolution from EXIF IFD1 information \(thumbnail)Tj
+T*
( image IFD\).)Tj
0 -2.2 TD
( exiftool '-*resolution*' image.jpg)Tj
@@ -14085,10 +14097,6 @@ T*
( Delete Credit information from all files in a directory where the)Tj
T*
( Credit value was "xxx".)Tj
-0 -2.2 TD
-( exiftool -xmp:description-de='k&uuml;hl' -E dst.jpg)Tj
-0 -1.1 TD
-( Write alternate language for XMP:Description, using HTML character)Tj
ET
endstream
endobj
@@ -14106,7 +14114,7 @@ endobj
endobj
112 0 obj
<<
-/Length 4091
+/Length 4065
>>
stream
BT
@@ -14116,9 +14124,13 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 35)Tj
+( -- ExifTool 12.41 -- 35)Tj
/TT4 1 Tf
-0 -1.6333 TD
+0 -2.7333 TD
+( exiftool -xmp:description-de='k&uuml;hl' -E dst.jpg)Tj
+0 -1.1 TD
+( Write alternate language for XMP:Description, using HTML character)Tj
+T*
( escaping to input special characters.)Tj
0 -2.2 TD
( exiftool -all= dst.jpg)Tj
@@ -14220,12 +14232,6 @@ T*
( exiftool -o %d%f.xmp dir)Tj
0 -1.1 TD
( Create XMP meta information data files for all images in "dir".)Tj
-0 -2.2 TD
-( exiftool -o test.xmp -owner=Phil -title='XMP File')Tj
-0 -1.1 TD
-( Create an XMP data file only from tags defined on the command)Tj
-T*
-( line.)Tj
ET
endstream
endobj
@@ -14243,7 +14249,7 @@ endobj
endobj
115 0 obj
<<
-/Length 4713
+/Length 4729
>>
stream
BT
@@ -14253,9 +14259,15 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 36)Tj
+( -- ExifTool 12.41 -- 36)Tj
/TT4 1 Tf
-0 -2.7333 TD
+0 -1.6333 TD
+( exiftool -o test.xmp -owner=Phil -title='XMP File')Tj
+0 -1.1 TD
+( Create an XMP data file only from tags defined on the command)Tj
+T*
+( line.)Tj
+0 -2.2 TD
( exiftool '-ICC_Profile<=%d%f.icc' image.jpg)Tj
0 -1.1 TD
( Write ICC_Profile to an image from a ".icc" file of the same name.)Tj
@@ -14417,10 +14429,6 @@ T*
(le)Tj
0.6 0 TD
(e)Tj
--45.6 -1.1 TD
-( is specified when redirecting information as in this example.\))Tj
-0 -2.2 TD
-( exiftool -TagsFromFile src.jpg '-xmp:all<all' dst.jpg)Tj
ET
endstream
endobj
@@ -14438,7 +14446,7 @@ endobj
endobj
118 0 obj
<<
-/Length 5510
+/Length 5395
>>
stream
BT
@@ -14448,11 +14456,15 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 37)Tj
+( -- ExifTool 12.41 -- 37)Tj
/TT4 1 Tf
0 -1.6333 TD
-( Copy all possible information from "src.jpg" and write in XMP)Tj
+( is specified when redirecting information as in this example.\))Tj
+0 -2.2 TD
+( exiftool -TagsFromFile src.jpg '-xmp:all<all' dst.jpg)Tj
0 -1.1 TD
+( Copy all possible information from "src.jpg" and write in XMP)Tj
+T*
( format to "dst.jpg".)Tj
0 -2.2 TD
( exiftool '-Description<${FileName;s/\\.[^.]*$//}' dir)Tj
@@ -14660,16 +14672,6 @@ T*
( New directories are created as necessary, but existing files will not)Tj
T*
( be overwritten. The format codes %d, %f and %e may be used in the new)Tj
-T*
-( file name to represent the directory, name and extension of the)Tj
-T*
-( original file, and %c may be used to add a copy number if the file)Tj
-T*
-( already exists \(see the -)Tj
-18.6 0 TD
-(-w)Tj
-0.6 0 TD
-(w option for details\). Note that if used)Tj
ET
endstream
endobj
@@ -14687,7 +14689,7 @@ endobj
endobj
121 0 obj
<<
-/Length 4843
+/Length 4974
>>
stream
BT
@@ -14697,11 +14699,21 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 38)Tj
+( -- ExifTool 12.41 -- 38)Tj
/TT4 1 Tf
0 -1.6333 TD
-( within a date format string, an extra '%' must be added to pass these)Tj
+( file name to represent the directory, name and extension of the)Tj
0 -1.1 TD
+( original file, and %c may be used to add a copy number if the file)Tj
+T*
+( already exists \(see the -)Tj
+18.6 0 TD
+(-w)Tj
+0.6 0 TD
+(w option for details\). Note that if used)Tj
+-19.2 -1.1 TD
+( within a date format string, an extra '%' must be added to pass these)Tj
+T*
( codes through the date/time parser. \(And further note that in a)Tj
T*
( Windows batch file, all '%' characters must also be escaped, so in this)Tj
@@ -14845,10 +14857,6 @@ T*
( Geotag all images in directory "dir" with XMP tags instead of EXIF)Tj
T*
( tags, based on the image CreateDate.)Tj
-0 -2.2 TD
-( exiftool -geotag a.log -geosync=-20 dir)Tj
-0 -1.1 TD
-( Geotag images in directory "dir", accounting for image timestamps)Tj
ET
endstream
endobj
@@ -14866,7 +14874,7 @@ endobj
endobj
124 0 obj
<<
-/Length 4890
+/Length 4628
>>
stream
BT
@@ -14876,9 +14884,13 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 39)Tj
+( -- ExifTool 12.41 -- 39)Tj
/TT4 1 Tf
-0 -1.6333 TD
+0 -2.7333 TD
+( exiftool -geotag a.log -geosync=-20 dir)Tj
+0 -1.1 TD
+( Geotag images in directory "dir", accounting for image timestamps)Tj
+T*
( which were 20 seconds ahead of GPS.)Tj
0 -2.2 TD
( exiftool -geotag a.log -geosync=1.jpg -geosync=2.jpg dir)Tj
@@ -15080,34 +15092,6 @@ T*
(US)Tj
0.6 0 TD
(S)Tj
--6 -1.1 TD
-( The exiftool application exits with a status of 0 on success, or 1 if)Tj
-T*
-( an error occurred, or 2 if all files failed the -)Tj
-33 0 TD
-(-i)Tj
-0.6 0 TD
-(if)Tj
-0.6 0 TD
-(f condition \(for any)Tj
--34.2 -1.1 TD
-( of the commands if -)Tj
-15.6 0 TD
-(-e)Tj
-0.6 0 TD
-(ex)Tj
-0.6 0 TD
-(xe)Tj
-0.6 0 TD
-(ec)Tj
-0.6 0 TD
-(cu)Tj
-0.6 0 TD
-(ut)Tj
-0.6 0 TD
-(te)Tj
-0.6 0 TD
-(e was used\).)Tj
ET
endstream
endobj
@@ -15125,7 +15109,7 @@ endobj
endobj
127 0 obj
<<
-/Length 1859
+/Length 2277
>>
stream
BT
@@ -15135,9 +15119,37 @@ BT
/GS1 gs
0 Tc
0 Tw
-( -- ExifTool 12.40 -- 40)Tj
+( -- ExifTool 12.41 -- 40)Tj
/TT4 1 Tf
-0 -2.7333 TD
+0 -1.6333 TD
+( The exiftool application exits with a status of 0 on success, or 1 if)Tj
+0 -1.1 TD
+( an error occurred, or 2 if all files failed the -)Tj
+33 0 TD
+(-i)Tj
+0.6 0 TD
+(if)Tj
+0.6 0 TD
+(f condition \(for any)Tj
+-34.2 -1.1 TD
+( of the commands if -)Tj
+15.6 0 TD
+(-e)Tj
+0.6 0 TD
+(ex)Tj
+0.6 0 TD
+(xe)Tj
+0.6 0 TD
+(ec)Tj
+0.6 0 TD
+(cu)Tj
+0.6 0 TD
+(ut)Tj
+0.6 0 TD
+(te)Tj
+0.6 0 TD
+(e was used\).)Tj
+-19.8 -2.2 TD
(A)Tj
0 0 TD
(AU)Tj
@@ -15310,7 +15322,7 @@ BT
0.6 0 TD
(s\(3pm\), Image::ExifTool::Shift.pl)Tj
-19.2 -4.4 TD
-(perl v5.18.4 2022-02-09 EXIFTOOL\(1\))Tj
+(perl v5.18.4 2022-04-07 EXIFTOOL\(1\))Tj
ET
endstream
endobj
@@ -15778,8 +15790,8 @@ endobj
endobj
133 0 obj
<<
-/CreationDate (D:20220209071758-05'00')
-/ModDate (D:20220209071758-05'00')
+/CreationDate (D:20220407133709-04'00')
+/ModDate (D:20220407133709-04'00')
/Producer (Apple pstopdf)
>>
endobj
@@ -15793,147 +15805,147 @@ endobj
xref
0 135
0000000000 65535 f
-0000265222 00000 n
+0000265445 00000 n
0000000016 00000 n
0000007982 00000 n
-0000264233 00000 n
-0000264622 00000 n
-0000263698 00000 n
-0000268676 00000 n
-0000265302 00000 n
+0000264456 00000 n
+0000264845 00000 n
+0000263921 00000 n
+0000268899 00000 n
+0000265525 00000 n
0000008088 00000 n
0000013522 00000 n
-0000265383 00000 n
+0000265606 00000 n
0000013629 00000 n
0000018988 00000 n
-0000265466 00000 n
+0000265689 00000 n
0000019095 00000 n
0000025069 00000 n
-0000265549 00000 n
+0000265772 00000 n
0000025176 00000 n
0000031707 00000 n
-0000265632 00000 n
+0000265855 00000 n
0000031814 00000 n
0000038712 00000 n
-0000265715 00000 n
+0000265938 00000 n
0000038819 00000 n
0000047193 00000 n
-0000265798 00000 n
+0000266021 00000 n
0000047300 00000 n
0000054586 00000 n
-0000265881 00000 n
+0000266104 00000 n
0000054693 00000 n
0000061565 00000 n
-0000265964 00000 n
+0000266187 00000 n
0000061672 00000 n
0000067624 00000 n
-0000266047 00000 n
+0000266270 00000 n
0000067731 00000 n
-0000074360 00000 n
-0000269235 00000 n
-0000268811 00000 n
-0000266131 00000 n
-0000074467 00000 n
-0000083572 00000 n
-0000266215 00000 n
-0000083679 00000 n
-0000091408 00000 n
-0000266299 00000 n
-0000091515 00000 n
-0000095762 00000 n
-0000266383 00000 n
-0000095869 00000 n
-0000102024 00000 n
-0000266467 00000 n
-0000102131 00000 n
-0000109561 00000 n
-0000266551 00000 n
-0000109668 00000 n
-0000116002 00000 n
-0000266635 00000 n
-0000116109 00000 n
-0000121161 00000 n
-0000266719 00000 n
-0000121268 00000 n
-0000128860 00000 n
-0000266803 00000 n
-0000128967 00000 n
-0000136833 00000 n
-0000266887 00000 n
-0000136940 00000 n
-0000145144 00000 n
-0000268949 00000 n
-0000266971 00000 n
-0000145251 00000 n
-0000151801 00000 n
-0000267055 00000 n
-0000151908 00000 n
-0000159268 00000 n
-0000267139 00000 n
-0000159375 00000 n
-0000167897 00000 n
-0000267223 00000 n
-0000168004 00000 n
-0000174414 00000 n
-0000267307 00000 n
-0000174521 00000 n
-0000183294 00000 n
-0000267391 00000 n
-0000183401 00000 n
-0000189590 00000 n
-0000267475 00000 n
-0000189697 00000 n
-0000197427 00000 n
-0000267559 00000 n
-0000197534 00000 n
-0000206801 00000 n
-0000267643 00000 n
-0000206908 00000 n
-0000214970 00000 n
-0000267727 00000 n
-0000215077 00000 n
-0000220305 00000 n
-0000269087 00000 n
-0000267813 00000 n
-0000220413 00000 n
-0000226805 00000 n
-0000267901 00000 n
-0000226913 00000 n
-0000232249 00000 n
-0000267989 00000 n
-0000232357 00000 n
-0000236712 00000 n
-0000268077 00000 n
-0000236820 00000 n
-0000240965 00000 n
-0000268165 00000 n
-0000241073 00000 n
-0000245840 00000 n
-0000268253 00000 n
-0000245948 00000 n
-0000251512 00000 n
-0000268341 00000 n
-0000251620 00000 n
-0000256517 00000 n
-0000268429 00000 n
-0000256625 00000 n
-0000261569 00000 n
-0000268517 00000 n
-0000261677 00000 n
-0000263590 00000 n
-0000263838 00000 n
-0000264041 00000 n
-0000268605 00000 n
-0000268634 00000 n
-0000269341 00000 n
-0000269465 00000 n
+0000074231 00000 n
+0000269458 00000 n
+0000269034 00000 n
+0000266354 00000 n
+0000074338 00000 n
+0000083512 00000 n
+0000266438 00000 n
+0000083619 00000 n
+0000091383 00000 n
+0000266522 00000 n
+0000091490 00000 n
+0000095819 00000 n
+0000266606 00000 n
+0000095926 00000 n
+0000102045 00000 n
+0000266690 00000 n
+0000102152 00000 n
+0000109611 00000 n
+0000266774 00000 n
+0000109718 00000 n
+0000116210 00000 n
+0000266858 00000 n
+0000116317 00000 n
+0000121147 00000 n
+0000266942 00000 n
+0000121254 00000 n
+0000128842 00000 n
+0000267026 00000 n
+0000128949 00000 n
+0000136804 00000 n
+0000267110 00000 n
+0000136911 00000 n
+0000145055 00000 n
+0000269172 00000 n
+0000267194 00000 n
+0000145162 00000 n
+0000151769 00000 n
+0000267278 00000 n
+0000151876 00000 n
+0000158918 00000 n
+0000267362 00000 n
+0000159025 00000 n
+0000167848 00000 n
+0000267446 00000 n
+0000167955 00000 n
+0000174379 00000 n
+0000267530 00000 n
+0000174486 00000 n
+0000183303 00000 n
+0000267614 00000 n
+0000183410 00000 n
+0000189676 00000 n
+0000267698 00000 n
+0000189783 00000 n
+0000197264 00000 n
+0000267782 00000 n
+0000197371 00000 n
+0000206769 00000 n
+0000267866 00000 n
+0000206876 00000 n
+0000214852 00000 n
+0000267950 00000 n
+0000214959 00000 n
+0000220311 00000 n
+0000269310 00000 n
+0000268036 00000 n
+0000220419 00000 n
+0000226460 00000 n
+0000268124 00000 n
+0000226568 00000 n
+0000232317 00000 n
+0000268212 00000 n
+0000232425 00000 n
+0000236773 00000 n
+0000268300 00000 n
+0000236881 00000 n
+0000241000 00000 n
+0000268388 00000 n
+0000241108 00000 n
+0000245891 00000 n
+0000268476 00000 n
+0000245999 00000 n
+0000251448 00000 n
+0000268564 00000 n
+0000251556 00000 n
+0000256584 00000 n
+0000268652 00000 n
+0000256692 00000 n
+0000261374 00000 n
+0000268740 00000 n
+0000261482 00000 n
+0000263813 00000 n
+0000264061 00000 n
+0000264264 00000 n
+0000268828 00000 n
+0000268857 00000 n
+0000269564 00000 n
+0000269688 00000 n
trailer
<<
/Size 135
/Root 134 0 R
/Info 133 0 R
-/ID [<54b87f65229364d114fade349ebf01be><54b87f65229364d114fade349ebf01be>]
+/ID [<18bcc9929989f7f4164d557daf357d07><18bcc9929989f7f4164d557daf357d07>]
>>
startxref
-269537
+269760
%%EOF
diff --git a/html/history.html b/html/history.html
index af3aac46..574e3802 100644
--- a/html/history.html
+++ b/html/history.html
@@ -17,10 +17,34 @@ considered development releases, and are not uploaded to <a href="https://metacp
<!-- Use line width of 80 -->
<!-- *********************************************************************** -->
+<a name='v12.41'><b>Apr. 7, 2022 - Version 12.41</b></a>
+<ul>
+<li>Added support for "OM SYSTEM" maker notes
+<li>Added 2 new Sony LensType values (thanks Jos Roost)
+<li>Added some new Canon lenses (thanks LibRaw)
+<li>Added a new Nikon LensID (thanks Bert Ligtvoet)
+<li>Added a new Canon ContinuousDrive value (thanks Wolfgang G&uuml;lcker)
+<li>Enhanced -v0 option to also print new file name when renaming, moving or
+ copying a file
+<li>Updated xmp2exif.args and exif2xmp.args helper files to reflect the IPTC
+ Photometadata Mapping Guidelines version 2202.1
+<li>Made "Invalid Xxx data" a minor warning for MakerNote data
+<li>Patched to allow writing of MP4 videos which have other tracks with a
+ missing sample description entry
+<li>Patched MacOS version to specify directory for external utilities (setfile,
+ xattr, stat, mdls and osascript from /usr/bin, and tag from /usr/local/bin)
+<li>Fixed long-standing problem where Windows version could behave differently
+ for -if conditions containing undefined tags
+<li>Fixed problem where -W+! combined with -j or -X produced invalid JSON or XML
+ when processing multiple files
+<li>Fixed potential "uninitialized value $time in division" runtime warning when
+ reading MP4 videos
+</ul>
+
<a name='v12.40'><b>Feb. 9, 2022 - Version 12.40</b></a>
<ul>
-<li>Added a new Nikon LensID (thanks Wolfgang Exler)
<li>Added PageCount tag to return the number of pages in a multi-page TIFF
+<li>Added a new Nikon LensID (thanks Wolfgang Exler)
<li>Added a few more Sony LensTypes (thanks Jos Roost)
<li>Decode some new Canon tags (thanks Mark Reid)
<li>Decode another Nikon Z9 tag (thanks Warren Hatch)
@@ -30,14 +54,14 @@ considered development releases, and are not uploaded to <a href="https://metacp
<li>Updated photoshop_paths.config to include WorkingPath
<li>Patched to allow writing of MP4 videos which have url tracks with a missing
sample description entry
-<li>Fixed typo in the name of a new Nikon tag (thanks Herb)
-<li>Fixed description of GPR (General Purpose RAW) file type
+<li>Fixed deep recursion error when reading multi-page TIFF images with more
+ than 100 pages
<li>Fixed potential deep recursion runtime error when writing nested XMP
structures
<li>Fixed warning which could be generated when writing new
Composite:GPSCoordinates tag
-<li>Fixed deep recursion error when reading multi-page TIFF images with more
- than 100 pages
+<li>Fixed description of GPR (General Purpose RAW) file type
+<li>Fixed typo in the name of a new Nikon tag (thanks Herb)
</ul>
<a name='v12.39'><b>Jan. 13, 2022 - Version 12.39</b></a>
diff --git a/html/index.html b/html/index.html
index 3a8571eb..a852fb61 100644
--- a/html/index.html
+++ b/html/index.html
@@ -45,6 +45,7 @@ table.sticky th { position: sticky; top: 0; background: #ddd; z-index: 1; border
table.sticky td { border-bottom: 1px solid gray; border-right: 1px solid gray }
table.sticky th:first-child,
table.sticky td:first-child { border-left: 1px solid gray}
+table.sticky td.nb { border-bottom: 0px }
span.sup { font-size: 0.8em; font-weight: normal; position: relative; top: -.4em }
i.orng { color: #c60 }
-->
@@ -92,9 +93,9 @@ the site with a moderate load. An alternate ExifTool homepage is available at
</div>
<blockquote><table class='dl lg'><tr><td><b>
-<a href="http://sourceforge.net/projects/exiftool/files/Image-ExifTool-12.40.tar.gz/download">
-Download Version 12.40</a> (4.8 MB) -
-<a href="history.html">Feb. 9, 2022</a></b></td></tr></table></blockquote>
+<a href="http://sourceforge.net/projects/exiftool/files/Image-ExifTool-12.41.tar.gz/download">
+Download Version 12.41</a> (4.8 MB) -
+<a href="history.html">Apr. 7, 2022</a></b></td></tr></table></blockquote>
<p><b>ExifTool is a platform-independent <a href="ExifTool.html">Perl
library</a> plus a <a href="exiftool_pod.html">command-line application</a> for
@@ -147,8 +148,8 @@ distribution above.)</i></p>
<blockquote><table class='dl lg'><tr><td><b>
<a name="alone">Windows Executable:</a>
-<a href="http://sourceforge.net/projects/exiftool/files/exiftool-12.40.zip/download">
- exiftool-12.40.zip</a> (6.4 MB)</b></td></tr></table></blockquote>
+<a href="http://sourceforge.net/projects/exiftool/files/exiftool-12.41.zip/download">
+ exiftool-12.41.zip</a> (6.4 MB)</b></td></tr></table></blockquote>
<p><b>The stand-alone Windows executable</b> does not require Perl. Just
download and un-zip the archive then double-click on
@@ -166,7 +167,7 @@ if you have any problems/comments with this version.)</i></p>
<blockquote><table class='dl lg'><tr><td><b>
MacOS Package:
<a href="http://sourceforge.net/projects/exiftool/files/ExifTool-9.70.dmg/download">
- ExifTool-12.40.dmg</a> (3.1 MB)</b></td></tr></table></blockquote>
+ ExifTool-12.41.dmg</a> (3.1 MB)</b></td></tr></table></blockquote>
<p><b>The MacOS package</b> installs the ExifTool command-line application and
libraries in /usr/local/bin. After installing, type "<code>exiftool</code>" in a
@@ -502,7 +503,7 @@ for each file format.</p>
<h3><a name="JPEG">Supported JPEG Meta Information</a></h3>
<p>ExifTool can <b>R</b>ead, <b>W</b>rite and/or <b>C</b>reate the following types
of meta information in JPEG images:</p>
-<blockquote><table class='norm tight sm bm'>
+<blockquote><table class='sticky tight sm bm'>
<tr><th>JPEG Meta Information</th><th>Support</th><th>Description</th></tr>
<tr><td>APP0 - <a href="TagNames/JFIF.html">JFIF</a></td><td>R/W/C</td><td>JPEG File Interchange Format</td></tr>
<tr><td>APP0 - <a href="TagNames/JFIF.html#Extension">JFXX</a></td><td>R</td><td>Extended JFIF</td></tr>
@@ -552,8 +553,8 @@ of meta information in JPEG images:</p>
<tr><td>APP15 - <a href="TagNames/JPEG.html#GraphConv">GraphicConverter</a></td><td>R</td><td>GraphicConverter quality</td></tr>
<tr><td>COM</td><td>R/W/C</td><td>JPEG Comment (multi-segment)</td></tr>
<tr><td>DQT</td><td>R</td><td>(used to calculate the <a href="TagNames/Extra.html">Extra:JPEGDigest</a> tag value)</td></tr>
-<tr><td><a href="TagNames/JPEG.html#SOF">SOF</a></td><td>R</td><td>JPEG Start Of Frame</td></tr>
-<tr><th colspan=3><a name="Trailers">Trailers <span class=sup>1</span></a></th></tr>
+<tr><td class='nb'><a href="TagNames/JPEG.html#SOF">SOF</a></td><td class='nb'>R</td><td class='nb'>JPEG Start Of Frame</td></tr>
+<tr><th><a name="Trailers">JPEG Trailer <span class=sup>1</span></a></th><th>Support</th><th>Description</th></tr>
<tr><td><a href="TagNames/AFCP.html">AFCP trailer</a></td><td>R/W</td><td>AXS File Concatenation Protocol (includes <a href="TagNames/IPTC.html">IPTC</a>)</td></tr>
<tr><td><a href="TagNames/CanonVRD.html">CanonVRD trailer</a></td><td>R/W/C</td><td>Canon DPP Recipe Data (includes <a href="TagNames/CanonVRD.html#DR4">DR4</a>)</td></tr>
<tr><td><a href="TagNames/FotoStation.html">FotoStation trailer</a></td><td>R/W</td><td>FotoWare FotoStation (includes <a href="TagNames/IPTC.html">IPTC</a>)</td></tr>
@@ -1284,7 +1285,7 @@ binary data. The simple script above does not handle this case.</p>
<p><b><a name="related_win">Windows</a></b></p>
<ul>
<li><a href="https://oliverbetz.de/pages/Artikel/ExifTool-for-Windows">Alternate ExifTool Windows Installer and Portable Package</a> by Oliver Betz</li>
-<li><a href="http://wxutils.com/wxeti.php">wxETI</a>: A wxWidgets-based Windows interface for Exiftool</a></li>
+<li><a href="http://wxutils.com/wxeti.php">wxETI</a>: A wxWidgets-based Windows interface for Exiftool</li>
<li><a href="https://exiftool.org/gui/">ExifTool GUI for Windows</a>: GUI for viewing meta information with some editing features</li>
<li><a href="https://www.logipole.com/metadata++-en.htm">Metadata++</a>: View, edit, extract, copy metadata metadata</li>
<!-- dead <li><a href="http://www.thezeal.com/software/?Exif_Stats_Utility">Exif Stats Utility</a>: Analyzes images to tabulate apertures, exposure times, etc</li> -->
@@ -1333,6 +1334,7 @@ three droplets to extract information [exiftool must be installed] (thanks to Ro
<li><a href="http://marc.vos.net/downloads/setexifdata/">SetEXIFData</a>: Add/modify EXIF data in images</li>
<li><a href="https://itunes.apple.com/us/app/geotagster/id1180435565">GeoTagster</a>: Geotagging from GPX files ($0.99 paid app)</li>
<li><a href="http://www.exifphotoworker.com/">Exif Photoworker</a>: Smart rename and organize your photos and videos in a few clicks</li>
+<li><a href="https://neededapps.com/metaimage/">MetaImage</a>: Reads, writes and edits your image metadata in a familiar interface</li>
</ul>
<p><b><a name="related_linux">Linux</a></b></p>
@@ -1421,6 +1423,7 @@ three droplets to extract information [exiftool must be installed] (thanks to Ro
<li><a href="https://github.com/mceachen/exiftool-vendored">exiftool-vendored</a>: Blazing-fast, cross-platform Node.js access to ExifTool</li>
<li><a href="https://exiftool.org/gui/articles/delphi01.html">How to call ExifTool from Delphi</a>, by Bogdan Hrastnik</li>
<li><a href="https://github.com/philvl/ZExifTool">Qt5 and Qt6 interface for ExifTool</a>, by Philippe Vianney-Liaud</li>
+<li><a href="https://github.com/JoshOBrien/exiftoolr">exiftoolr</a>: ExifTool functionality from R</li>
</ul>
<h3><a name="other_links">Other Links</a></h3>
diff --git a/html/install.html b/html/install.html
index 17bbdb5e..6248dc4e 100644
--- a/html/install.html
+++ b/html/install.html
@@ -52,10 +52,10 @@ documentation or some other files of the full distribution.</p>
<h3>Stand-Alone Executable</h3>
<ol>
<li><b>Download</b> the <b>Windows Executable</b> from the <a href="index.html">ExifTool home page</a>.
-<br><span class=lt>(The file you download should be named "<code>exiftool-12.40.zip</code>".)</span></li>
+<br><span class=lt>(The file you download should be named "<code>exiftool-12.41.zip</code>".)</span></li>
<li><b>Extract "<code>exiftool(-k).exe</code>"</b> from the
"<code>.zip</code>" file, and place it <b>on your Desktop</b>.
-<br><span class=lt>(Double-click on "<code>exiftool-12.40.zip</code>" to open
+<br><span class=lt>(Double-click on "<code>exiftool-12.41.zip</code>" to open
the archive, then drag "<code>exiftool(-k).exe</code>" to your Desktop.)</span></li>
</ol>
<p>You can now double-click on "<code>exiftool(-k).exe</code>" to read the
@@ -109,7 +109,7 @@ can be downloaded from
<a href="http://www.activestate.com/activeperl/">activeperl.com</a>.)</p>
<ol>
<li><b>Download</b> the <b>Image-ExifTool distribution</b> from the <a href="index.html">ExifTool home page</a>
-<br><span class=lt>(The file you download should be named "<code>Image-ExifTool-12.40.tar.gz</code>".)</span></li>
+<br><span class=lt>(The file you download should be named "<code>Image-ExifTool-12.41.tar.gz</code>".)</span></li>
<li><b>Extract the ExifTool files</b> from the archive.
<br><span class=lt>(The archive is a gzipped tar file, and can be opened with
various Windows utilities, including WinZip.)</span></li>
@@ -151,7 +151,7 @@ in the MacOS package. Both versions run natively on PPC and Intel Macs.</p>
<h3>MacOS Package</h3>
<ol>
<li><b>Download</b> the <b>ExifTool MacOS Package</b> from the <a href="index.html">ExifTool home page</a>.
-<br><span class=lt>(The file you download should be named "<code>ExifTool-12.40.dmg</code>".)</span></li>
+<br><span class=lt>(The file you download should be named "<code>ExifTool-12.41.dmg</code>".)</span></li>
<li><b>Install</b> as a normal <b>MacOS package</b>.
<br><span class=lt>(Open the disk image, double-click on the install package, and follow the instructions.
See the second item in the Notes section below if you are stopped with an "unidentified developer" message.)
@@ -167,12 +167,12 @@ See the second item in the Notes section below if you are stopped with an "unide
<ol>
<li><b>Download</b> the <b>Image-ExifTool distribution</b> from the <a href="index.html">ExifTool home page</a>
to your Desktop.
-<br><span class=lt>(The file you download should be named "<code>Image-ExifTool-12.40.tar.gz</code>".)</span></li>
+<br><span class=lt>(The file you download should be named "<code>Image-ExifTool-12.41.tar.gz</code>".)</span></li>
<li><b>Launch</b> the <b>Terminal</b> application from the Utilities folder in your Applications folder.</li>
<li>In the Terminal window, <b>type the following</b>:
<pre class='code'> cd ~/Desktop
- tar -xzf Image-ExifTool-12.40.tar.gz
- cd Image-ExifTool-12.40
+ tar -xzf Image-ExifTool-12.41.tar.gz
+ cd Image-ExifTool-12.41
sudo cp -r exiftool lib /usr/local/bin
</pre>
<span class=lt>(Note: The last step above will require you to enter your
@@ -188,7 +188,7 @@ your Perl version. If both sets of libraries exist, /usr/local/bin/lib takes
precedence for exiftool, but /Library/Perl/#.#.# is the default for any other
Perl scripts.</li>
<li>In MacOS 10.8 or later, you may see this message when you try to open the install package:
-<blockquote class=red>"ExifTool-12.40.pkg" can't be opened because it is from an
+<blockquote class=red>"ExifTool-12.41.pkg" can't be opened because it is from an
unidentified developer.</blockquote> The solution is to control-click on the pkg
then select "Open" from the pop-up menu instead of just double-clicking. An alternative
is to lower the security settings by changing "Allow applications downloaded from" to
@@ -215,11 +215,11 @@ have the wrong "<code>lib</code>" folder.</li>
<ol>
<li><b>Download</b> the <b>Image-ExifTool distribution</b> from the <a href="index.html">ExifTool home page</a>
-<br><span class=lt>(The file you download should be named "<code>Image-ExifTool-12.40.tar.gz</code>".)</span></li>
+<br><span class=lt>(The file you download should be named "<code>Image-ExifTool-12.41.tar.gz</code>".)</span></li>
<li><b>Unpack the distribution</b> and <b>make it your current directory</b> by typing:
<pre class='code'> cd <i>&lt;your download directory&gt;</i>
- gzip -dc Image-ExifTool-12.40.tar.gz | tar -xf -
- cd Image-ExifTool-12.40
+ gzip -dc Image-ExifTool-12.41.tar.gz | tar -xf -
+ cd Image-ExifTool-12.41
</pre>
<span class=lt>(At this point you may run exiftool by typing
"<code>./exiftool <i>&lt;image file name&gt;</i></code>".)</span></li>
diff --git a/html/sample_images.html b/html/sample_images.html
index 2d8a5d46..d556527c 100644
--- a/html/sample_images.html
+++ b/html/sample_images.html
@@ -8,7 +8,7 @@
<body>
<h1 class='up'>ExifTool Meta Information Repository</h1>
<p>The following archives contain sample JPEG images with the original meta
-information from 6931 different models of digital cameras, DV recorders,
+information from 6932 different models of digital cameras, DV recorders,
scanners and cell phones from 103 manufacturers. To conserve space and avoid
copyright problems, the main image has been replaced, and the large preview
image (and any other information found after the JPEG EOI) has been removed.
@@ -258,10 +258,10 @@ repository as more suitable samples become available.</p>
<td align='right'>47 kB&nbsp;</td>
<td>&nbsp;<a href='ODYS.tar.gz'>ODYS.tar.gz</a></td>
<td align='center'>2011-10-12</td></tr>
-<tr><td>&nbsp;Olympus</td><td align='center'>309</td>
+<tr><td>&nbsp;Olympus</td><td align='center'>310</td>
<td align='right'>2.9 MB&nbsp;</td>
<td>&nbsp;<a href='Olympus.tar.gz'>Olympus.tar.gz</a></td>
-<td align='center'>2021-07-21</td></tr>
+<td align='center'>2022-04-05</td></tr>
<tr><td>&nbsp;OMG Life</td><td align='center'>1</td>
<td align='right'>0.6 kB&nbsp;</td>
<td>&nbsp;<a href='OMG.tar.gz'>OMG.tar.gz</a></td>
@@ -434,12 +434,12 @@ repository as more suitable samples become available.</p>
<td align='right'>351 kB&nbsp;</td>
<td>&nbsp;<a href='ZTE.tar.gz'>ZTE.tar.gz</a></td>
<td align='center'>2015-07-27</td></tr>
-<tr bgcolor='#dddddd'><th>Total</th><td align='center'>6931 models</td>
+<tr bgcolor='#dddddd'><th>Total</th><td align='center'>6932 models</td>
<td align='right'>140.1 MB&nbsp;</td><td align='center'>103 makes</td>
-<td align='center'>2022-01-12</td></tr>
+<td align='center'>2022-04-05</td></tr>
</table></blockquote><hr>
<i>Created May 15, 2006</i><br>
-<i>Last revised Jan 12, 2022</i>
+<i>Last revised Apr 5, 2022</i>
<p class='lf'><a href='index.html'>&lt;-- Back to ExifTool home page</a></p>
</body>
</html>
diff --git a/lib/Image/ExifTool.pm b/lib/Image/ExifTool.pm
index 7789b125..7be47cea 100644
--- a/lib/Image/ExifTool.pm
+++ b/lib/Image/ExifTool.pm
@@ -29,7 +29,7 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
%jpegMarker %specialTags %fileTypeLookup $testLen $exeDir
%static_vars);
-$VERSION = '12.40';
+$VERSION = '12.41';
$RELEASE = '';
@ISA = qw(Exporter);
%EXPORT_TAGS = (
diff --git a/lib/Image/ExifTool/Canon.pm b/lib/Image/ExifTool/Canon.pm
index e66ed8c4..e042c12b 100644
--- a/lib/Image/ExifTool/Canon.pm
+++ b/lib/Image/ExifTool/Canon.pm
@@ -88,7 +88,7 @@ sub ProcessCTMD($$$);
sub ProcessExifInfo($$$);
sub SwapWords($);
-$VERSION = '4.56';
+$VERSION = '4.57';
# Note: Removed 'USM' from 'L' lenses since it is redundant - PH
# (or is it? Ref 32 shows 5 non-USM L-type lenses)
@@ -208,6 +208,7 @@ $VERSION = '4.56';
53 => 'Canon EF-S 18-55mm f/3.5-5.6 III', #Jon Charnas
54 => 'Canon EF-S 55-250mm f/4-5.6 IS II', #47
60 => 'Irix 11mm f/4', #50
+ 63 => 'Irix 30mm F1.4 Dragonfly', #IB
80 => 'Canon TS-E 50mm f/2.8L Macro', #42
81 => 'Canon TS-E 90mm f/2.8L Macro', #42
82 => 'Canon TS-E 135mm f/4L Macro', #42
@@ -599,6 +600,9 @@ $VERSION = '4.56';
'61182.25' => 'Canon RF 100-400mm F5.6-8 IS USM + RF1.4x', #42 (NC)
'61182.26' => 'Canon RF 100-400mm F5.6-8 IS USM + RF2x', #42 (NC)
'61182.27' => 'Canon RF 16mm F2.8 STM', #42
+ '61182.28' => 'Canon RF 400mm F2.8L IS USM', #IB
+ '61182.29' => 'Canon RF 400mm F2.8L IS USM + RF1.4x', #IB
+ '61182.30' => 'Canon RF 400mm F2.8L IS USM + RF2x', #IB
#'61182.xx' => 'Canon RF 100mm F2.8L MACRO IS USM',
65535 => 'n/a',
);
@@ -1018,7 +1022,7 @@ my %canonWhiteBalance = (
20 => 'PC Set4', #PH
21 => 'PC Set5', #PH
# 22 - Custom 2?
- 23 => 'Auto (ambience priority)', #PH (5DS)
+ 23 => 'Auto (ambience priority)', #PH (5DS) (perhaps this needs re-thinking?: forum13295)
# 30 - Click White Balance?
# 31 - Shot Settings?
# 137 - Tungsten?
@@ -2133,6 +2137,7 @@ my %offOn = ( 0 => 'Off', 1 => 'On' );
4 => 'Continuous, Low', #PH
5 => 'Continuous, High', #PH
6 => 'Silent Single', #PH
+ 8 => 'Continuous, High+', #WolfgangGulcker
# ref A: https://exiftool.org/forum/index.php/topic,5701.msg27843.html#msg27843
9 => 'Single, Silent', #A
10 => 'Continuous, Silent', #A
@@ -6796,6 +6801,9 @@ my %ciMaxFocal = (
284 => 'Canon RF 100-400mm F5.6-8 IS USM + RF1.4x', #42 (NC)
285 => 'Canon RF 100-400mm F5.6-8 IS USM + RF2x', #42 (NC)
288 => 'Canon RF 16mm F2.8 STM', #42
+ 289 => 'Canon RF 400mm F2.8L IS USM', #IB
+ 290 => 'Canon RF 400mm F2.8L IS USM + RF1.4x', #IB
+ 291 => 'Canon RF 400mm F2.8L IS USM + RF2x', #IB
#xxx => 'Canon RF 100mm F2.8L MACRO IS USM',
# Note: add new RF lenses to %canonLensTypes with ID 61182
},
diff --git a/lib/Image/ExifTool/Exif.pm b/lib/Image/ExifTool/Exif.pm
index b6dab1cd..ed9c626a 100644
--- a/lib/Image/ExifTool/Exif.pm
+++ b/lib/Image/ExifTool/Exif.pm
@@ -56,7 +56,7 @@ use vars qw($VERSION $AUTOLOAD @formatSize @formatName %formatNumber %intFormat
use Image::ExifTool qw(:DataAccess :Utils);
use Image::ExifTool::MakerNotes;
-$VERSION = '4.39';
+$VERSION = '4.40';
sub ProcessExif($$$);
sub WriteExif($$$);
@@ -6605,7 +6605,7 @@ sub ProcessExif($$$)
#### eval Validate ($val, $dirData, $subdirStart, $size)
my $ok = 0;
if (defined $$subdir{Validate} and not eval $$subdir{Validate}) {
- $et->Warn("Invalid $tagStr data");
+ $et->Warn("Invalid $tagStr data", $inMakerNotes);
$invalid = 1;
} else {
if (not $subdirInfo{DirName} and $inMakerNotes) {
diff --git a/lib/Image/ExifTool/MacOS.pm b/lib/Image/ExifTool/MacOS.pm
index d221d0a6..7803f334 100644
--- a/lib/Image/ExifTool/MacOS.pm
+++ b/lib/Image/ExifTool/MacOS.pm
@@ -12,7 +12,7 @@ use strict;
use vars qw($VERSION);
use Image::ExifTool qw(:DataAccess :Utils);
-$VERSION = '1.11';
+$VERSION = '1.12';
sub MDItemLocalTime($);
sub ProcessATTR($$$);
@@ -381,7 +381,7 @@ sub SetMacOSTags($$$)
$val = Image::ExifTool::ConvertUnixTime($time, 1) if $time;
}
$val =~ s{(\d{4}):(\d{2}):(\d{2})}{$2/$3/$1}; # reformat for setfile
- $cmd = "setfile -d '${val}' '${f}'";
+ $cmd = "/usr/bin/setfile -d '${val}' '${f}'";
} elsif ($tag eq 'MDItemUserTags') {
# (tested with "tag" version 0.9.0)
($f = $file) =~ s/'/'\\''/g;
@@ -391,7 +391,7 @@ sub SetMacOSTags($$$)
my @dels = @{$$nvHash{DelValue}};
s/'/'\\''/g foreach @dels;
my $del = join ',', @dels;
- $err = system "tag -r '${del}' '${f}'>/dev/null 2>&1";
+ $err = system "/usr/local/bin/tag -r '${del}' '${f}'>/dev/null 2>&1";
unless ($err) {
$et->VerboseValue("- $tag", $del);
$result = 1;
@@ -403,13 +403,13 @@ sub SetMacOSTags($$$)
s/'/'\\''/g foreach @vals;
my $opt = $overwrite > 0 ? '-s' : '-a';
$val = @vals ? join(',', @vals) : '';
- $cmd = "tag $opt '${val}' '${f}'";
+ $cmd = "/usr/local/bin/tag $opt '${val}' '${f}'";
$et->VPrint(1," - $tag = (all)\n") if $overwrite > 0;
undef $val if $val eq '';
}
} elsif ($tag eq 'XAttrQuarantine') {
($f = $file) =~ s/'/'\\''/g;
- $cmd = "xattr -d com.apple.quarantine '${f}'";
+ $cmd = "/usr/bin/xattr -d com.apple.quarantine '${f}'";
$silentErr = 256; # (will get this error if attribute doesn't exist)
} else {
($f = $file) =~ s/(["\\])/\\$1/g; # escape necessary characters for script
@@ -426,7 +426,7 @@ sub SetMacOSTags($$$)
$v = $val ? 8 - $val : 0; # convert from label to label index (0 for no label)
$attr = 'label index';
}
- $cmd = qq(osascript -e 'set fp to POSIX file "$f" as alias' -e \\
+ $cmd = qq(/usr/bin/osascript -e 'set fp to POSIX file "$f" as alias' -e \\
'tell application "Finder" to set $attr of file fp to "$v"');
}
if (defined $cmd) {
@@ -455,7 +455,7 @@ sub ExtractMDItemTags($$)
($fn = $file) =~ s/([`"\$\\])/\\$1/g; # escape necessary characters
$et->VPrint(0, '(running mdls)');
- my @mdls = `mdls "$fn" 2> /dev/null`; # get MacOS metadata
+ my @mdls = `/usr/bin/mdls "$fn" 2> /dev/null`; # get MacOS metadata
if ($? or not @mdls) {
$et->Warn('Error running "mdls" to extract MDItem tags');
return;
@@ -565,7 +565,7 @@ sub ExtractXAttrTags($$)
($fn = $file) =~ s/([`"\$\\])/\\$1/g; # escape necessary characters
$et->VPrint(0, '(running xattr)');
- my @xattr = `xattr -lx "$fn" 2> /dev/null`; # get MacOS extended attributes
+ my @xattr = `/usr/bin/xattr -lx "$fn" 2> /dev/null`; # get MacOS extended attributes
if ($? or not @xattr) {
$? and $et->Warn('Error running "xattr" to extract XAttr tags');
return;
@@ -611,7 +611,7 @@ sub GetFileCreateDate($$)
($fn = $file) =~ s/([`"\$\\])/\\$1/g; # escape necessary characters
$et->VPrint(0, '(running stat)');
- my $time = `stat -f '%SB' -t '%Y:%m:%d %H:%M:%S%z' "$fn" 2> /dev/null`;
+ my $time = `/usr/bin/stat -f '%SB' -t '%Y:%m:%d %H:%M:%S%z' "$fn" 2> /dev/null`;
if ($? or not $time or $time !~ s/([-+]\d{2})(\d{2})\s*$/$1:$2/) {
$et->Warn('Error running "stat" to extract FileCreateDate');
return;
diff --git a/lib/Image/ExifTool/MakerNotes.pm b/lib/Image/ExifTool/MakerNotes.pm
index ce8166dd..b5757801 100644
--- a/lib/Image/ExifTool/MakerNotes.pm
+++ b/lib/Image/ExifTool/MakerNotes.pm
@@ -21,7 +21,7 @@ sub ProcessKodakPatch($$$);
sub WriteUnknownOrPreview($$$);
sub FixLeicaBase($$;$);
-$VERSION = '2.10';
+$VERSION = '2.11';
my $debug; # set to 1 to enable debugging code
@@ -571,6 +571,17 @@ my $debug; # set to 1 to enable debugging code
},
},
{
+ Name => 'MakerNoteOlympus3',
+ # new Olympus maker notes start with "OLYMPUS\0"
+ Condition => '$$valPt =~ /^OM SYSTEM\0/',
+ SubDirectory => {
+ TagTable => 'Image::ExifTool::Olympus::Main',
+ Start => '$valuePtr + 16',
+ Base => '$start - 16',
+ ByteOrder => 'Unknown',
+ },
+ },
+ {
Name => 'MakerNoteLeica',
# (starts with "LEICA\0\0\0")
Condition => '$$self{Make} eq "LEICA"',
diff --git a/lib/Image/ExifTool/Nikon.pm b/lib/Image/ExifTool/Nikon.pm
index fd9d7d2f..863c3993 100644
--- a/lib/Image/ExifTool/Nikon.pm
+++ b/lib/Image/ExifTool/Nikon.pm
@@ -437,6 +437,7 @@ sub GetAFPointGrid($$;$);
'A5 40 2D 88 2C 40 4B 0E' => 'Sigma 18-250mm F3.5-6.3 DC OS HSM',
# LensFStops varies with FocalLength for this lens (ref 2):
'92 2C 2D 88 2C 40 4B 0E' => 'Sigma 18-250mm F3.5-6.3 DC Macro OS HSM', #2
+ '87 2C 2D 8E 2C 40 4B 0E' => 'Sigma 18-300mm F3.5-6.3 DC Macro HSM', #30
# '92 2C 2D 88 2C 40 4B 0E' (250mm)
# '92 2B 2D 88 2C 40 4B 0E' (210mm)
# '92 2C 2D 88 2C 40 4B 0E' (185mm)
diff --git a/lib/Image/ExifTool/Olympus.pm b/lib/Image/ExifTool/Olympus.pm
index 9ebed706..dc7d16d9 100644
--- a/lib/Image/ExifTool/Olympus.pm
+++ b/lib/Image/ExifTool/Olympus.pm
@@ -40,7 +40,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
use Image::ExifTool::Exif;
use Image::ExifTool::APP12;
-$VERSION = '2.76';
+$VERSION = '2.77';
sub PrintLensInfo($$$);
@@ -432,6 +432,7 @@ my %olympusCameraTypes = (
S0089 => 'E-M5MarkIII',
S0092 => 'E-M1MarkIII', #IB
S0093 => 'E-P7', #IB
+ S0095 => 'OM-1', #IB
SR45 => 'D220',
SR55 => 'D320L',
SR83 => 'D340L',
diff --git a/lib/Image/ExifTool/QuickTime.pm b/lib/Image/ExifTool/QuickTime.pm
index 85b8718d..d51c9b3a 100644
--- a/lib/Image/ExifTool/QuickTime.pm
+++ b/lib/Image/ExifTool/QuickTime.pm
@@ -2232,7 +2232,7 @@ my %eeBox2 = (
# 4 ? - "1e 00"
# 6 int16u - record length in bytes
# 8 ? - "23 01 00 00 00 00 00 00"
- # 16 - start of records (each record ends in an int64u timestamp in ns)
+ # 16 - start of records (each record ends in an int64u timestamp "ts" in ns)
# RDTA - float[4],ts: "-0.31289672 -0.2245330 11.303817 0 775.780"
# RDTB - float[4],ts: "-0.04841613 -0.2166595 0.0724792 0 775.780"
# RDTC - float[4],ts: "27.60925 -27.10037 -13.27285 0 775.829"
diff --git a/lib/Image/ExifTool/QuickTimeStream.pl b/lib/Image/ExifTool/QuickTimeStream.pl
index d080b7f6..a2273743 100644
--- a/lib/Image/ExifTool/QuickTimeStream.pl
+++ b/lib/Image/ExifTool/QuickTimeStream.pl
@@ -1144,13 +1144,13 @@ sub ProcessSamples($)
}
@$size < @$start + $samplesPerChunk and $et->WarnOnce('Sample size error'), last;
my $sampleStart = $chunkStart;
- for ($i=0; ; ) {
+Sample: for ($i=0; ; ) {
push @$start, $sampleStart;
if (defined $time) {
until ($timeCount) {
if (@$stts < 2) {
undef $time;
- last;
+ last Sample;
}
$timeCount = shift @$stts;
$timeDelta = shift @$stts;
diff --git a/lib/Image/ExifTool/Shortcuts.pm b/lib/Image/ExifTool/Shortcuts.pm
index d765598d..b0f7889d 100644
--- a/lib/Image/ExifTool/Shortcuts.pm
+++ b/lib/Image/ExifTool/Shortcuts.pm
@@ -19,7 +19,7 @@ package Image::ExifTool::Shortcuts;
use strict;
use vars qw($VERSION);
-$VERSION = '1.65';
+$VERSION = '1.66';
# this is a special table used to define command-line shortcuts
# (documentation Notes may be added for these via %shortcutNotes in BuildTagLookup.pm)
@@ -158,6 +158,7 @@ $VERSION = '1.65';
'MakerNoteNintendo',
'MakerNoteOlympus',
'MakerNoteOlympus2',
+ 'MakerNoteOlympus3',
'MakerNoteLeica',
'MakerNoteLeica2',
'MakerNoteLeica3',
diff --git a/lib/Image/ExifTool/Sony.pm b/lib/Image/ExifTool/Sony.pm
index 424a7a19..d96eaf45 100644
--- a/lib/Image/ExifTool/Sony.pm
+++ b/lib/Image/ExifTool/Sony.pm
@@ -34,7 +34,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
use Image::ExifTool::Exif;
use Image::ExifTool::Minolta;
-$VERSION = '3.49';
+$VERSION = '3.50';
sub ProcessSRF($$$);
sub ProcessSR2($$$);
@@ -244,7 +244,8 @@ sub PrintInvLensSpec($;$$);
50529 => 'Sigma 90mm F2.8 DG DN | C', #JR (021)
50530 => 'Sigma 24mm F2 DG DN | C', #JR (021)
50531 => 'Sigma 18-50mm F2.8 DC DN | C', #IB/JR (021)
-
+ 50532 => 'Sigma 20mm F2 DG DN | C', #JR (022)
+
50992 => 'Voigtlander SUPER WIDE-HELIAR 15mm F4.5 III', #JR
50993 => 'Voigtlander HELIAR-HYPER WIDE 10mm F5.6', #IB
50994 => 'Voigtlander ULTRA WIDE-HELIAR 12mm F5.6 III', #IB
@@ -278,6 +279,7 @@ sub PrintInvLensSpec($;$$);
51515 => 'Samyang AF 12mm F2.0', #JR
51516 => 'Samyang AF 24-70mm F2.8', #JR
51517 => 'Samyang AF 50mm F1.4 II', #JR
+ 51518 => 'Samyang AF 135mm F1.8', #JR
);
# ExposureProgram values (ref PH, mainly decoded from A200)
@@ -1790,7 +1792,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
# 15 0 35 2 2 ILCA-68/77M2, ILCE-5000/5100/6000/7/7R/7S/7M2/QX1, DSC-HX60V/HX350/HX400V/QX30/RX10/RX100M3/WX220/WX350
# 16 0 85 2 2 DSC-HX80/HX90V/WX500
# 17 0 232 1 2 DSC-RX0/RX0M2/RX1RM2/RX10M2/RX10M3/RX10M4/RX100M4/RX100M5/RX100M5A/RX100M6/RX100M7/HX99, ILCE-6100/6300/6400/6500/6600/7C/7M3/7RM2/7RM3/7RM4/7SM2/9/9M2, ILCA-99M2, ZV-1
- # 18 0 20 0 164 ILCE-7SM3
+ # 18 0 20 0 164 ILCE-7SM3
# other values for Panorama images and several other models
0x9404 => [{
Name => 'Tag9404a',
@@ -8386,7 +8388,7 @@ my %isoSetting2010 = (
DATAMEMBER => [ 0x04 ],
0x04 => {
# seen values 0,2,3,18,19,32,49,50,83,130,132,148,213,229,255
- # CameraTemperature is valid for all values above except ==0 and >=130
+ # CameraTemperature is valid for all values above except ==0 and >=130
Name => 'TempTest2',
DataMember => 'TempTest2',
Hidden => 1,
diff --git a/lib/Image/ExifTool/TagLookup.pm b/lib/Image/ExifTool/TagLookup.pm
index 2a2f2f60..5c07879c 100644
--- a/lib/Image/ExifTool/TagLookup.pm
+++ b/lib/Image/ExifTool/TagLookup.pm
@@ -4075,6 +4075,7 @@ my %tagLookup = (
'makernoteoffset' => { 396 => 0xff },
'makernoteolympus' => { 117 => 'MakN', 119 => 0x927c },
'makernoteolympus2' => { 117 => 'MakN', 119 => 0x927c },
+ 'makernoteolympus3' => { 117 => 'MakN', 119 => 0x927c },
'makernotepanasonic' => { 117 => 'MakN', 119 => 0x927c },
'makernotepanasonic2' => { 117 => 'MakN', 119 => 0x927c },
'makernotepanasonic3' => { 117 => 'MakN', 119 => 0x927c },
diff --git a/lib/Image/ExifTool/TagNames.pod b/lib/Image/ExifTool/TagNames.pod
index f1f5c8bf..456bc209 100644
--- a/lib/Image/ExifTool/TagNames.pod
+++ b/lib/Image/ExifTool/TagNames.pod
@@ -669,6 +669,7 @@ for the official EXIF 2.32 specification.
MakerNoteNintendo ExifIFD Nintendo
MakerNoteOlympus ExifIFD Olympus
MakerNoteOlympus2 ExifIFD Olympus
+ MakerNoteOlympus3 ExifIFD Olympus
MakerNoteLeica ExifIFD Panasonic
MakerNoteLeica2 ExifIFD Panasonic Leica2
MakerNoteLeica3 ExifIFD Panasonic Leica3
@@ -20994,6 +20995,7 @@ still proprietary) Adobe format.
MakerNoteNintendo Nintendo
MakerNoteOlympus Olympus
MakerNoteOlympus2 Olympus
+ MakerNoteOlympus3 Olympus
MakerNoteLeica Panasonic
MakerNoteLeica2 Panasonic Leica2
MakerNoteLeica3 Panasonic Leica3
@@ -37534,6 +37536,7 @@ for more details.
MakerNoteNintendo
MakerNoteOlympus
MakerNoteOlympus2
+ MakerNoteOlympus3
MakerNoteLeica
MakerNoteLeica2
MakerNoteLeica3
diff --git a/lib/Image/ExifTool/WriteQuickTime.pl b/lib/Image/ExifTool/WriteQuickTime.pl
index e61f7d6d..fbfa0d3c 100644
--- a/lib/Image/ExifTool/WriteQuickTime.pl
+++ b/lib/Image/ExifTool/WriteQuickTime.pl
@@ -1391,8 +1391,8 @@ sub WriteQuickTime($$$)
$pos += $siz;
}
if ($msg) {
- # (allow empty sample description for 'url ' handler type)
- if ($$et{HandlerType} or length($buff) > 8) {
+ # (allow empty sample description for non-audio/video handler types, eg. 'url ', 'meta')
+ if ($$et{HandlerType}) {
my $grp = $$et{CUR_WRITE_GROUP} || $parent;
$et->Error("$msg for $grp");
return $rtnErr;
diff --git a/perl-Image-ExifTool.spec b/perl-Image-ExifTool.spec
index dfab78be..2a3bf15e 100644
--- a/perl-Image-ExifTool.spec
+++ b/perl-Image-ExifTool.spec
@@ -1,6 +1,6 @@
Summary: perl module for image data extraction
Name: perl-Image-ExifTool
-Version: 12.40
+Version: 12.41
Release: 1
License: Artistic/GPL
Group: Development/Libraries/Perl
diff --git a/pp_build_exe.args b/pp_build_exe.args
index 5bc3cea5..30a9ba16 100644
--- a/pp_build_exe.args
+++ b/pp_build_exe.args
@@ -21,10 +21,10 @@
# 10) Copy zip archive to web servers.
# 11) Update zip file version in link and text of html/index.html.
#------------------------------------------------------------------------------
--T exiftool-12.40
-#--info=FileVersion=12.4.0.0
-#--info=ProductVersion=12.4.0.0
-##"--info=Build Date=2022:02:08 10:30:47-05:00"
+-T exiftool-12.41
+#--info=FileVersion=12.4.1.0
+#--info=ProductVersion=12.4.1.0
+##"--info=Build Date=2022:04:07 11:32:41-04:00"
##"--info=Bundled Perl Version=ActivePerl 5.24.0"
##"--info=LegalCopyright=Copyright (c) 2003-2022, Phil Harvey"
##"--info=ProductName=ExifTool"
diff --git a/windows_exiftool b/windows_exiftool
index b1cdb840..ba8acb14 100755
--- a/windows_exiftool
+++ b/windows_exiftool
@@ -8,9 +8,10 @@
# (See html/history.html for revision history)
#------------------------------------------------------------------------------
use strict;
+use warnings;
require 5.004;
-my $version = '12.40';
+my $version = '12.41';
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
my $exePath;
@@ -102,6 +103,8 @@ my %database; # lookup for database information based on file name (in Exi
my %filterExt; # lookup for filtered extensions
my %ignore; # directory names to ignore
my $ignoreHidden; # flag to ignore hidden files
+my %outComma; # flag that output text file needs a comma
+my %outTrailer; # trailer for output text file
my %preserveTime; # preserved timestamps for files
my %printFmt; # the contents of the print format file
my %setTags; # hash of list references for tags to set from files
@@ -455,6 +458,8 @@ undef %database;
undef %endDir;
undef %filterExt;
undef %ignore;
+undef %outComma;
+undef %outTrailer;
undef %printFmt;
undef %preserveTime;
undef %setTags;
@@ -1819,8 +1824,21 @@ if ($filtered and not $validFile) {
PrintCSV() if $csv and not $isWriting;
# print folder/file trailer if necessary
-print $sectTrailer if $sectTrailer and not $textOut;
-print $fileTrailer if $fileTrailer and not $textOut and not $fileHeader;
+if ($textOut) {
+ foreach (keys %outTrailer) {
+ next unless $outTrailer{$_};
+ if ($mt->Open(\*OUTTRAIL, $_, '>>')) {
+ my $fp = \*OUTTRAIL;
+ print $fp $outTrailer{$_};
+ close $fp;
+ } else {
+ Error("Error appending to $_\n");
+ }
+ }
+} else {
+ print $sectTrailer if $sectTrailer;
+ print $fileTrailer if $fileTrailer and not $fileHeader;
+}
my $totWr = $countGoodWr + $countBadWr + $countSameWr + $countCopyWr +
$countGoodCr + $countBadCr;
@@ -2158,6 +2176,9 @@ sub GetImageInfo($$)
$tmpText = $outfile unless $append;
}
+ # restore state of comma flag for this file if appending
+ $comma = $outComma{$outfile} if $append and ($textOverwrite & 0x02);
+
# print the results for this file
if (%printFmt) {
# output using print format file (-p) option
@@ -2219,7 +2240,7 @@ sub GetImageInfo($$)
if ($fp) {
# print file header (only once)
if ($fileHeader) {
- print $fp $fileHeader;
+ print $fp $fileHeader unless defined $outfile and ($created{$outfile} or $appended{$outfile});
undef $fileHeader unless $textOut;
}
if ($html) {
@@ -2672,9 +2693,17 @@ TAG: foreach $tag (@foundTags) {
}
}
if ($outfile) {
- # write section and file trailers before closing the file
- print $fp $sectTrailer and $sectTrailer = '' if $sectTrailer;
- print $fp $fileTrailer if $fileTrailer;
+ if ($textOverwrite & 0x02) {
+ # save state of this file if we may be appending
+ $outComma{$outfile} = $comma;
+ $outTrailer{$outfile} = '';
+ $outTrailer{$outfile} .= $sectTrailer and $sectTrailer = '' if $sectTrailer;
+ $outTrailer{$outfile} .= $fileTrailer if $fileTrailer;
+ } else {
+ # write section and file trailers before closing the file
+ print $fp $sectTrailer and $sectTrailer = '' if $sectTrailer;
+ print $fp $fileTrailer if $fileTrailer;
+ }
close($fp);
undef $tmpText;
if ($lineCount) {
@@ -2924,7 +2953,7 @@ sub SetImageInfo($$$)
}
}
if (defined $outfile) {
- $verbose and print $vout "'${infile}' --> '${outfile}'\n";
+ defined $verbose and print $vout "'${infile}' --> '${outfile}'\n";
# create output directory if necessary
CreateDirectory($outfile);
# set temporary file (automatically erased on abnormal exit)
@@ -5155,14 +5184,15 @@ OPTIONS
# update metadata for all images in a directory from CSV file
exiftool -csv=a.csv dir
- Empty values are ignored when importing (unless the -f option is
- used and the API MissingTagValue is set to an empty string, in
+ When importing, empty values are ignored unless the -f option is
+ used and the API MissingTagValue is set to an empty string (in
which case the tag is deleted). Also, FileName and Directory
columns are ignored if they exist (ie. ExifTool will not attempt to
- write these tags with a CSV import). To force a tag to be deleted,
- use the -f option and set the value to "-" in the CSV file (or to
- the MissingTagValue if this API option was used). Multiple
- databases may be imported in a single command.
+ write these tags with a CSV import), but all other columns are
+ imported. To force a tag to be deleted, use the -f option and set
+ the value to "-" in the CSV file (or to the MissingTagValue if this
+ API option was used). Multiple databases may be imported in a
+ single command.
When exporting a CSV file, the -g or -G option adds group names to
the tag headings. If the -a option is used to allow duplicate tag
@@ -5461,7 +5491,7 @@ OPTIONS
produces output like this:
- -- Generated by ExifTool 12.40 --
+ -- Generated by ExifTool 12.41 --
File: a.jpg - 2003:10:31 15:44:19
(f/5.6, 1/60s, ISO 100)
File: b.jpg - 2006:05:23 11:57:38
@@ -5576,7 +5606,9 @@ OPTIONS
extracted. Using -v0 causes the console output buffer to be flushed
after each line (which may be useful to avoid delays when piping
exiftool output), and prints the name of each processed file when
- writing. Also see the -progress option.
+ writing and the new file name when renaming, moving or copying.
+ Verbose levels above -v0 do not flush after each line. Also see the
+ -progress option.
-w[+|!] *EXT* or *FMT* (-textOut)
Write console output to files with names ending in *EXT*, one for
@@ -5794,9 +5826,9 @@ OPTIONS
Allow (-a) or suppress (--a) duplicate tag names to be extracted.
By default, duplicate tags are suppressed when reading unless the
-ee or -X options are used or the Duplicates option is enabled in
- the configuration file. This option has an affect when writing only
- to allow duplicate Warning messages to be shown. Duplicate tags are
- always extracted when copying.
+ the configuration file. When writing, this option allows multiple
+ Warning messages to be shown. Duplicate tags are always extracted
+ when copying.
-e (--composite)
Extract existing tags only -- don't generate composite tags.