exiftool_vendored 11.49.0 → 11.50.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/bin/Changes +16 -1
- data/bin/MANIFEST +2 -0
- data/bin/META.json +4 -3
- data/bin/META.yml +15 -14
- data/bin/README +7 -5
- data/bin/config_files/rotate_regions.config +173 -0
- data/bin/config_files/tiff_version.config +121 -0
- data/bin/exiftool +16 -15
- data/bin/lib/Image/ExifTool.pm +26 -19
- data/bin/lib/Image/ExifTool.pod +5 -2
- data/bin/lib/Image/ExifTool/Audible.pm +2 -2
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +25 -21
- data/bin/lib/Image/ExifTool/Canon.pm +13 -9
- data/bin/lib/Image/ExifTool/CanonVRD.pm +4 -4
- data/bin/lib/Image/ExifTool/DjVu.pm +1 -2
- data/bin/lib/Image/ExifTool/EXE.pm +1 -1
- data/bin/lib/Image/ExifTool/Exif.pm +44 -6
- data/bin/lib/Image/ExifTool/FLIR.pm +1 -1
- data/bin/lib/Image/ExifTool/FlashPix.pm +12 -9
- data/bin/lib/Image/ExifTool/GPS.pm +3 -3
- data/bin/lib/Image/ExifTool/GoPro.pm +4 -4
- data/bin/lib/Image/ExifTool/H264.pm +2 -2
- data/bin/lib/Image/ExifTool/HP.pm +1 -1
- data/bin/lib/Image/ExifTool/Kodak.pm +1 -1
- data/bin/lib/Image/ExifTool/MIE.pm +3 -3
- data/bin/lib/Image/ExifTool/MPF.pm +2 -2
- data/bin/lib/Image/ExifTool/MWG.pm +1 -1
- data/bin/lib/Image/ExifTool/MacOS.pm +2 -2
- data/bin/lib/Image/ExifTool/Matroska.pm +1 -1
- data/bin/lib/Image/ExifTool/Minolta.pm +58 -56
- data/bin/lib/Image/ExifTool/Nikon.pm +1 -1
- data/bin/lib/Image/ExifTool/Olympus.pm +2 -2
- data/bin/lib/Image/ExifTool/OpenEXR.pm +2 -2
- data/bin/lib/Image/ExifTool/PDF.pm +4 -4
- data/bin/lib/Image/ExifTool/PICT.pm +3 -3
- data/bin/lib/Image/ExifTool/PNG.pm +2 -2
- data/bin/lib/Image/ExifTool/Pentax.pm +1 -1
- data/bin/lib/Image/ExifTool/Photoshop.pm +1 -2
- data/bin/lib/Image/ExifTool/PostScript.pm +4 -4
- data/bin/lib/Image/ExifTool/QuickTime.pm +37 -15
- data/bin/lib/Image/ExifTool/RIFF.pm +3 -2
- data/bin/lib/Image/ExifTool/RSRC.pm +1 -1
- data/bin/lib/Image/ExifTool/Samsung.pm +1 -1
- data/bin/lib/Image/ExifTool/Sony.pm +4 -2
- data/bin/lib/Image/ExifTool/TagInfoXML.pm +2 -2
- data/bin/lib/Image/ExifTool/TagLookup.pm +9 -7
- data/bin/lib/Image/ExifTool/TagNames.pod +31 -21
- data/bin/lib/Image/ExifTool/VCard.pm +1 -1
- data/bin/lib/Image/ExifTool/Validate.pm +2 -2
- data/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
- data/bin/lib/Image/ExifTool/WriteQuickTime.pl +1 -1
- data/bin/lib/Image/ExifTool/Writer.pl +11 -6
- data/bin/lib/Image/ExifTool/XMP.pm +3 -7
- data/bin/lib/Image/ExifTool/XMPStruct.pl +2 -1
- data/bin/lib/Image/ExifTool/ZIP.pm +1 -1
- data/bin/lib/Image/ExifTool/iWork.pm +1 -1
- data/bin/perl-Image-ExifTool.spec +3 -3
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +4 -2
data/bin/exiftool
CHANGED
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
use strict;
|
|
13
13
|
require 5.004;
|
|
14
14
|
|
|
15
|
-
my $version = '11.
|
|
15
|
+
my $version = '11.50';
|
|
16
16
|
|
|
17
17
|
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
|
|
18
18
|
my $exeDir;
|
|
@@ -495,9 +495,7 @@ $xml = 0;
|
|
|
495
495
|
|
|
496
496
|
# define local variables used only in this command loop
|
|
497
497
|
my @fileOrder; # tags to use for ordering of input files
|
|
498
|
-
my %excludeGrp; # hash of tags excluded by group
|
|
499
498
|
my $addGeotime; # automatically added geotime argument
|
|
500
|
-
my $allInGroup; # flag to show all tags in a group
|
|
501
499
|
my $doGlob; # flag set to do filename wildcard expansion
|
|
502
500
|
my $escapeXML; # flag to escape printed values for xml
|
|
503
501
|
my $setTagsFile; # filename for last TagsFromFile option
|
|
@@ -879,6 +877,7 @@ for (;;) {
|
|
|
879
877
|
$showGroup = $3 || 0;
|
|
880
878
|
$allGroup = ($2 ? lc($2) eq 'roupnames' : $1 eq 'G');
|
|
881
879
|
$mt->Options(SavePath => 1) if $showGroup =~ /\b5\b/;
|
|
880
|
+
$mt->Options(SaveFormat => 1) if $showGroup =~ /\b6\b/;
|
|
882
881
|
next;
|
|
883
882
|
}
|
|
884
883
|
if ($a eq 'geotag') {
|
|
@@ -3136,6 +3135,7 @@ sub EscapeJSON($;$)
|
|
|
3136
3135
|
# escape special characters
|
|
3137
3136
|
$str =~ s/(["\t\n\r\\])/\\$jsonChar{$1}/sg;
|
|
3138
3137
|
if ($json < 2) { # JSON
|
|
3138
|
+
$str =~ tr/\0//d; # remove all nulls
|
|
3139
3139
|
# escape other control characters with \u
|
|
3140
3140
|
$str =~ s/([\0-\x1f])/sprintf("\\u%.4X",ord $1)/sge;
|
|
3141
3141
|
# JSON strings must be valid UTF8
|
|
@@ -4284,8 +4284,8 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
|
4284
4284
|
CRM r/w | GZ r | MOI r | PMP r | WAV r
|
|
4285
4285
|
CRW r/w | HDP r/w | MOS r/w | PNG r/w | WDP r/w
|
|
4286
4286
|
CS1 r/w | HDR r | MOV r/w | PPM r/w | WEBP r
|
|
4287
|
-
DCM r | HEIC r
|
|
4288
|
-
DCP r/w | HEIF r
|
|
4287
|
+
DCM r | HEIC r/w | MP3 r | PPT r | WEBM r
|
|
4288
|
+
DCP r/w | HEIF r/w | MP4 r/w | PPTX r | WMA r
|
|
4289
4289
|
DCR r | HTML r | MPC r | PS r/w | WMV r
|
|
4290
4290
|
DFONT r | ICC r/w/c | MPG r | PSB r/w | WTV r
|
|
4291
4291
|
DIVX r | ICS r | MPO r/w | PSD r/w | WV r
|
|
@@ -5119,7 +5119,7 @@ with this command:
|
|
|
5119
5119
|
|
|
5120
5120
|
produces output like this:
|
|
5121
5121
|
|
|
5122
|
-
-- Generated by ExifTool 11.
|
|
5122
|
+
-- Generated by ExifTool 11.50 --
|
|
5123
5123
|
File: a.jpg - 2003:10:31 15:44:19
|
|
5124
5124
|
(f/5.6, 1/60s, ISO 100)
|
|
5125
5125
|
File: b.jpg - 2006:05:23 11:57:38
|
|
@@ -5448,10 +5448,11 @@ B<-o> option with an XMP extension for the output file.
|
|
|
5448
5448
|
=item B<-a>, B<--a> (B<-duplicates>, B<--duplicates>)
|
|
5449
5449
|
|
|
5450
5450
|
Allow (B<-a>) or suppress (B<--a>) duplicate tag names to be extracted. By
|
|
5451
|
-
default, duplicate tags are suppressed unless the B<-ee> or
|
|
5452
|
-
are used or the Duplicates option is enabled in the
|
|
5453
|
-
This option
|
|
5454
|
-
messages to be shown.
|
|
5451
|
+
default, duplicate tags are suppressed when reading unless the B<-ee> or
|
|
5452
|
+
B<-X> options are used or the Duplicates option is enabled in the
|
|
5453
|
+
configuration file. This option has an affect when writing only to allow
|
|
5454
|
+
duplicate Warning messages to be shown. Duplicate tags are always extracted
|
|
5455
|
+
when copying.
|
|
5455
5456
|
|
|
5456
5457
|
=item B<-e> (B<--composite>)
|
|
5457
5458
|
|
|
@@ -6146,11 +6147,11 @@ placing braces around the tag name and inserting the expression after the
|
|
|
6146
6147
|
name, separated by a semicolon (ie. C<${TAG;EXPR}>). The expression acts on
|
|
6147
6148
|
the value of the tag through the default input variable (C<$_>), and has
|
|
6148
6149
|
access to the full ExifTool API through the current ExifTool object
|
|
6149
|
-
(C<$self>). It may contain any valid Perl code,
|
|
6150
|
-
(C<tr///>) and substitution (C<s///>) operations, but
|
|
6151
|
-
within the expression must be balanced. The example below
|
|
6152
|
-
Make with spaces translated to underlines, and multiple
|
|
6153
|
-
underlines replaced by a single underline:
|
|
6150
|
+
(C<$self>) and the tag key (C<$tag>). It may contain any valid Perl code,
|
|
6151
|
+
including translation (C<tr///>) and substitution (C<s///>) operations, but
|
|
6152
|
+
note that braces within the expression must be balanced. The example below
|
|
6153
|
+
prints the camera Make with spaces translated to underlines, and multiple
|
|
6154
|
+
consecutive underlines replaced by a single underline:
|
|
6154
6155
|
|
|
6155
6156
|
exiftool -p '${make;tr/ /_/;s/__+/_/g}' image.jpg
|
|
6156
6157
|
|
data/bin/lib/Image/ExifTool.pm
CHANGED
|
@@ -27,7 +27,7 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
|
|
|
27
27
|
%mimeType $swapBytes $swapWords $currentByteOrder %unpackStd
|
|
28
28
|
%jpegMarker %specialTags %fileTypeLookup);
|
|
29
29
|
|
|
30
|
-
$VERSION = '11.
|
|
30
|
+
$VERSION = '11.50';
|
|
31
31
|
$RELEASE = '';
|
|
32
32
|
@ISA = qw(Exporter);
|
|
33
33
|
%EXPORT_TAGS = (
|
|
@@ -980,7 +980,7 @@ sub DummyWriteProc { return 1; }
|
|
|
980
980
|
|
|
981
981
|
my %systemTagsNotes = (
|
|
982
982
|
Notes => q{
|
|
983
|
-
extracted only if specifically requested or the SystemTags or RequestAll API
|
|
983
|
+
extracted only if specifically requested or the L<SystemTags|../ExifTool.html#SystemTags> or L<RequestAll|../ExifTool.html#RequestAll> API
|
|
984
984
|
option is set
|
|
985
985
|
},
|
|
986
986
|
);
|
|
@@ -1014,7 +1014,7 @@ my %systemTagsNotes = (
|
|
|
1014
1014
|
Notes => q{
|
|
1015
1015
|
returns errors that may have occurred while reading or writing a file. Any
|
|
1016
1016
|
Error will prevent the file from being processed. Minor errors may be
|
|
1017
|
-
downgraded to warnings with the -m or IgnoreMinorErrors option
|
|
1017
|
+
downgraded to warnings with the -m or L<IgnoreMinorErrors|../ExifTool.html#IgnoreMinorErrors> option
|
|
1018
1018
|
},
|
|
1019
1019
|
},
|
|
1020
1020
|
Warning => {
|
|
@@ -1022,8 +1022,8 @@ my %systemTagsNotes = (
|
|
|
1022
1022
|
Groups => \%allGroupsExifTool,
|
|
1023
1023
|
Notes => q{
|
|
1024
1024
|
returns warnings that may have occurred while reading or writing a file.
|
|
1025
|
-
Use the -a or Duplicates option to see all warnings if more than one
|
|
1026
|
-
occurred. Minor warnings may be ignored with the -m or IgnoreMinorErrors
|
|
1025
|
+
Use the -a or L<Duplicates|../ExifTool.html#Duplicates> option to see all warnings if more than one
|
|
1026
|
+
occurred. Minor warnings may be ignored with the -m or L<IgnoreMinorErrors|../ExifTool.html#IgnoreMinorErrors>
|
|
1027
1027
|
option. Minor warnings with a capital "M" in the "[Minor]" designation
|
|
1028
1028
|
indicate that the processing is affected by ignoring the warning
|
|
1029
1029
|
},
|
|
@@ -1069,7 +1069,7 @@ my %systemTagsNotes = (
|
|
|
1069
1069
|
Groups => { 1 => 'System' },
|
|
1070
1070
|
Notes => q{
|
|
1071
1071
|
absolute path of source file. Not generated unless specifically requested or
|
|
1072
|
-
the RequestAll API option is set. Does not support Windows Unicode file
|
|
1072
|
+
the L<RequestAll|../ExifTool.html#RequestAll> API option is set. Does not support Windows Unicode file
|
|
1073
1073
|
names
|
|
1074
1074
|
},
|
|
1075
1075
|
},
|
|
@@ -1092,7 +1092,7 @@ my %systemTagsNotes = (
|
|
|
1092
1092
|
sequence number for each source file when extracting or copying information,
|
|
1093
1093
|
including files that fail the -if condition of the command-line application,
|
|
1094
1094
|
beginning at 0 for the first file. Not generated unless specifically
|
|
1095
|
-
requested or the RequestAll API option is set
|
|
1095
|
+
requested or the L<RequestAll|../ExifTool.html#RequestAll> API option is set
|
|
1096
1096
|
},
|
|
1097
1097
|
},
|
|
1098
1098
|
FileSize => {
|
|
@@ -1107,7 +1107,7 @@ my %systemTagsNotes = (
|
|
|
1107
1107
|
Groups => { 1 => 'System' },
|
|
1108
1108
|
Notes => q{
|
|
1109
1109
|
size of the file's resource fork if it contains data. Mac OS only. If this
|
|
1110
|
-
tag is generated the ExtractEmbedded option may be used to extract
|
|
1110
|
+
tag is generated the L<ExtractEmbedded|../ExifTool.html#ExtractEmbedded> option may be used to extract
|
|
1111
1111
|
resource-fork information as a sub-document. When writing, the resource
|
|
1112
1112
|
fork is preserved by default, but it may be deleted with C<-rsrc:all=> on
|
|
1113
1113
|
the command line
|
|
@@ -1163,7 +1163,7 @@ my %systemTagsNotes = (
|
|
|
1163
1163
|
the filesystem creation date/time. Windows/Mac only. In Windows, the file
|
|
1164
1164
|
creation date/time is preserved by default when writing if Win32API::File
|
|
1165
1165
|
and Win32::API are available. On Mac, this tag is extracted only if it or
|
|
1166
|
-
the MacOS group is specifically requested or the RequestAll API option is
|
|
1166
|
+
the MacOS group is specifically requested or the L<RequestAll|../ExifTool.html#RequestAll> API option is
|
|
1167
1167
|
set to 2 or higher. Requires "setfile" for writing on Mac
|
|
1168
1168
|
},
|
|
1169
1169
|
Groups => { 1 => 'System', 2 => 'Time' },
|
|
@@ -1230,7 +1230,7 @@ my %systemTagsNotes = (
|
|
|
1230
1230
|
FileAttributes => {
|
|
1231
1231
|
Groups => { 1 => 'System' },
|
|
1232
1232
|
Notes => q{
|
|
1233
|
-
extracted only if specifically requested or the SystemTags or RequestAll API
|
|
1233
|
+
extracted only if specifically requested or the L<SystemTags|../ExifTool.html#SystemTags> or L<RequestAll|../ExifTool.html#RequestAll> API
|
|
1234
1234
|
option is set. 2 or 3 values: 0. File type, 1. Attribute bits, 2. Windows
|
|
1235
1235
|
attribute bits if Win32API::File is available
|
|
1236
1236
|
},
|
|
@@ -1285,7 +1285,7 @@ my %systemTagsNotes = (
|
|
|
1285
1285
|
FileUserID => {
|
|
1286
1286
|
Groups => { 1 => 'System' },
|
|
1287
1287
|
Notes => q{
|
|
1288
|
-
extracted only if specifically requested or the SystemTags or RequestAll API
|
|
1288
|
+
extracted only if specifically requested or the L<SystemTags|../ExifTool.html#SystemTags> or L<RequestAll|../ExifTool.html#RequestAll> API
|
|
1289
1289
|
option is set. Returns user ID number with the -n option, or name
|
|
1290
1290
|
otherwise. May be written with either user name or number
|
|
1291
1291
|
},
|
|
@@ -1299,7 +1299,7 @@ my %systemTagsNotes = (
|
|
|
1299
1299
|
FileGroupID => {
|
|
1300
1300
|
Groups => { 1 => 'System' },
|
|
1301
1301
|
Notes => q{
|
|
1302
|
-
extracted only if specifically requested or the SystemTags or RequestAll API
|
|
1302
|
+
extracted only if specifically requested or the L<SystemTags|../ExifTool.html#SystemTags> or L<RequestAll|../ExifTool.html#RequestAll> API
|
|
1303
1303
|
option is set. Returns group ID number with the -n option, or name
|
|
1304
1304
|
otherwise. May be written with either group name or number
|
|
1305
1305
|
},
|
|
@@ -1526,7 +1526,7 @@ my %systemTagsNotes = (
|
|
|
1526
1526
|
Groups => { 0 => 'ExifTool', 1 => 'ExifTool', 2 => 'Other' },
|
|
1527
1527
|
Notes => q{
|
|
1528
1528
|
the clock time in seconds taken by ExifTool to extract information from this
|
|
1529
|
-
file. Not generated unless specifically requested or the RequestAll API
|
|
1529
|
+
file. Not generated unless specifically requested or the L<RequestAll|../ExifTool.html#RequestAll> API
|
|
1530
1530
|
option is set. Requires Time::HiRes
|
|
1531
1531
|
},
|
|
1532
1532
|
PrintConv => 'sprintf("%.3g s", $val)',
|
|
@@ -1538,7 +1538,7 @@ my %systemTagsNotes = (
|
|
|
1538
1538
|
sub-sampling values to generate the value of this tag. The result is
|
|
1539
1539
|
compared to known values in an attempt to deduce the originating software
|
|
1540
1540
|
based only on the JPEG image data. For performance reasons, this tag is
|
|
1541
|
-
generated only if specifically requested or the RequestAll API option is set
|
|
1541
|
+
generated only if specifically requested or the L<RequestAll|../ExifTool.html#RequestAll> API option is set
|
|
1542
1542
|
to 3 or higher
|
|
1543
1543
|
},
|
|
1544
1544
|
},
|
|
@@ -1546,14 +1546,14 @@ my %systemTagsNotes = (
|
|
|
1546
1546
|
Notes => q{
|
|
1547
1547
|
an estimate of the IJG JPEG quality setting for the image, calculated from
|
|
1548
1548
|
the quantization tables. For performance reasons, this tag is generated
|
|
1549
|
-
only if specifically requested or the RequestAll API option is set to 3 or
|
|
1549
|
+
only if specifically requested or the L<RequestAll|../ExifTool.html#RequestAll> API option is set to 3 or
|
|
1550
1550
|
higher
|
|
1551
1551
|
},
|
|
1552
1552
|
},
|
|
1553
1553
|
JPEGImageLength => {
|
|
1554
1554
|
Notes => q{
|
|
1555
1555
|
byte length of JPEG image without metadata. For performance reasons, this
|
|
1556
|
-
tag is generated only if specifically requested or the RequestAll API option
|
|
1556
|
+
tag is generated only if specifically requested or the L<RequestAll|../ExifTool.html#RequestAll> API option
|
|
1557
1557
|
is set to 3 or higher
|
|
1558
1558
|
},
|
|
1559
1559
|
},
|
|
@@ -1563,7 +1563,7 @@ my %systemTagsNotes = (
|
|
|
1563
1563
|
Notes => q{
|
|
1564
1564
|
the current date/time. Useful when setting the tag values, eg.
|
|
1565
1565
|
C<"-modifydate<now">. Not generated unless specifically requested or the
|
|
1566
|
-
RequestAll API option is set
|
|
1566
|
+
L<RequestAll|../ExifTool.html#RequestAll> API option is set
|
|
1567
1567
|
},
|
|
1568
1568
|
PrintConv => '$self->ConvertDateTime($val)',
|
|
1569
1569
|
},
|
|
@@ -1574,7 +1574,7 @@ my %systemTagsNotes = (
|
|
|
1574
1574
|
YYYYmmdd-HHMM-SSNN-PPPP-RRRRRRRRRRRR, where Y=year, m=month, d=day, H=hour,
|
|
1575
1575
|
M=minute, S=second, N=file sequence number in hex, P=process ID in hex, and
|
|
1576
1576
|
R=random hex number; without dashes with the -n option. Not generated
|
|
1577
|
-
unless specifically requested or the RequestAll API option is set
|
|
1577
|
+
unless specifically requested or the L<RequestAll|../ExifTool.html#RequestAll> API option is set
|
|
1578
1578
|
},
|
|
1579
1579
|
PrintConv => '$val =~ s/(.{8})(.{4})(.{4})(.{4})/$1-$2-$3-$4-/; $val',
|
|
1580
1580
|
},
|
|
@@ -2150,6 +2150,7 @@ sub ClearOptions($)
|
|
|
2150
2150
|
QuickTimeUTC=> undef, # assume that QuickTime date/time tags are stored as UTC
|
|
2151
2151
|
RequestAll => undef, # extract all tags that must be specifically requested
|
|
2152
2152
|
RequestTags => undef, # extra tags to request (on top of those in the tag list)
|
|
2153
|
+
SaveFormat => undef, # (undocumented) save family 6 tag TIFF format
|
|
2153
2154
|
SavePath => undef, # (undocumented) save family 5 location path
|
|
2154
2155
|
ScanForXMP => undef, # flag to scan for XMP information in all files
|
|
2155
2156
|
Sort => 'Input', # order to sort found tags (Input, File, Tag, Descr, Group#)
|
|
@@ -3225,6 +3226,10 @@ sub GetGroup($$;$)
|
|
|
3225
3226
|
$groups[1] = $$ex{G1} =~ /^\+(.*)/ ? "$groups[1]$1" : $$ex{G1} if $$ex{G1};
|
|
3226
3227
|
$groups[3] = 'Doc' . $$ex{G3} if $$ex{G3};
|
|
3227
3228
|
$groups[5] = $$ex{G5} || $groups[1] if defined $$ex{G5};
|
|
3229
|
+
if (defined $$ex{G6}) {
|
|
3230
|
+
$groups[5] = '' unless defined $groups[5]; # (can't leave a hole in the array)
|
|
3231
|
+
$groups[6] = $$ex{G6};
|
|
3232
|
+
}
|
|
3228
3233
|
}
|
|
3229
3234
|
if ($family) {
|
|
3230
3235
|
return $groups[$family] || '' if $family > 0;
|
|
@@ -7376,7 +7381,9 @@ sub GetTagInfo($$$;$$$)
|
|
|
7376
7381
|
next;
|
|
7377
7382
|
}
|
|
7378
7383
|
}
|
|
7379
|
-
if ($$tagInfo{Unknown} and not $$self{OPTIONS}{Unknown} and
|
|
7384
|
+
if ($$tagInfo{Unknown} and not $$self{OPTIONS}{Unknown} and
|
|
7385
|
+
not $$self{OPTIONS}{Verbose} and not $$self{HTML_DUMP})
|
|
7386
|
+
{
|
|
7380
7387
|
# don't return Unknown tags unless that option is set
|
|
7381
7388
|
return undef;
|
|
7382
7389
|
}
|
data/bin/lib/Image/ExifTool.pod
CHANGED
|
@@ -92,8 +92,8 @@ supported by ExifTool (r = read, w = write, c = create):
|
|
|
92
92
|
CRM r/w | GZ r | MOI r | PMP r | WAV r
|
|
93
93
|
CRW r/w | HDP r/w | MOS r/w | PNG r/w | WDP r/w
|
|
94
94
|
CS1 r/w | HDR r | MOV r/w | PPM r/w | WEBP r
|
|
95
|
-
DCM r | HEIC r
|
|
96
|
-
DCP r/w | HEIF r
|
|
95
|
+
DCM r | HEIC r/w | MP3 r | PPT r | WEBM r
|
|
96
|
+
DCP r/w | HEIF r/w | MP4 r/w | PPTX r | WMA r
|
|
97
97
|
DCR r | HTML r | MPC r | PS r/w | WMV r
|
|
98
98
|
DFONT r | ICC r/w/c | MPG r | PSB r/w | WTV r
|
|
99
99
|
DIVX r | ICS r | MPO r/w | PSD r/w | WV r
|
|
@@ -424,6 +424,9 @@ in the full ExifTool distribution for examples.
|
|
|
424
424
|
|
|
425
425
|
=item Option Parameters:
|
|
426
426
|
|
|
427
|
+
Note that these API options may also be used in the exiftool application via
|
|
428
|
+
the command-line B<-api> option.
|
|
429
|
+
|
|
427
430
|
=over 4
|
|
428
431
|
|
|
429
432
|
=item Binary
|
|
@@ -129,13 +129,13 @@ sub ProcessAudible_meta($$$)
|
|
|
129
129
|
for ($index=0; $index<$num; ++$index) {
|
|
130
130
|
last if $pos + 3 > $dirLen;
|
|
131
131
|
my $unk = Get8u($dataPt, $pos); # ? (0x80 or 0x00)
|
|
132
|
-
last unless $unk
|
|
132
|
+
last unless $unk == 0x80 or $unk == 0x00;
|
|
133
133
|
my $len = Get16u($dataPt, $pos + 1); # tag length
|
|
134
134
|
$pos += 3;
|
|
135
135
|
last if $pos + $len + 6 > $dirLen or not $len;
|
|
136
136
|
my $tag = substr($$dataPt, $pos, $len); # tag ID
|
|
137
137
|
my $ver = Get16u($dataPt, $pos + $len); # version?
|
|
138
|
-
last unless $ver
|
|
138
|
+
last unless $ver == 0x0001;
|
|
139
139
|
my $size = Get32u($dataPt, $pos + $len + 2);# data size
|
|
140
140
|
$pos += $len + 6;
|
|
141
141
|
last if $pos + $size > $dirLen;
|
|
@@ -176,7 +176,7 @@ tag ID. In these cases, the actual name used depends on the context in
|
|
|
176
176
|
which the information is found. Case is not significant for tag names. A
|
|
177
177
|
question mark (C<?>) after a tag name indicates that the information is
|
|
178
178
|
either not understood, not verified, or not very useful -- these tags are
|
|
179
|
-
not extracted by ExifTool unless the Unknown (-u) option is enabled. Be
|
|
179
|
+
not extracted by ExifTool unless the L<Unknown|../ExifTool.html#Unknown> (-u) option is enabled. Be
|
|
180
180
|
aware that some tag names are different than the descriptions printed out by
|
|
181
181
|
default when extracting information with exiftool. To see the tag names
|
|
182
182
|
instead of the descriptions, use C<exiftool -s>.
|
|
@@ -196,7 +196,7 @@ be added and deleted. A slash (C</>) indicates a tag that ExifTool will
|
|
|
196
196
|
I<Avoid> when writing. These will be edited but not created if another
|
|
197
197
|
same-named tag may be created instead. To create these tags, the group
|
|
198
198
|
should be specified. A tilde (C<~>) indicates a tag this is writable only
|
|
199
|
-
when the print conversion is disabled (by setting PrintConv to 0, using the
|
|
199
|
+
when the print conversion is disabled (by setting L<PrintConv|../ExifTool.html#PrintConv> to 0, using the
|
|
200
200
|
-n option, or suffixing the tag name with a C<#> character). An exclamation
|
|
201
201
|
point (C<!>) indicates a tag that is considered I<Unsafe> to write under
|
|
202
202
|
normal circumstances. These tags are not written unless specified
|
|
@@ -215,7 +215,7 @@ listed as the computer-readable and human-readable values on the left and
|
|
|
215
215
|
right hand side of an equals sign (C<=>) respectively. The human-readable
|
|
216
216
|
values are used by default when reading and writing, but the
|
|
217
217
|
computer-readable values may be accessed by disabling the value conversion
|
|
218
|
-
with the -n option on the command line, by setting the
|
|
218
|
+
with the -n option on the command line, by setting the L<PrintConv|../ExifTool.html#PrintConv> option to 0
|
|
219
219
|
in the API, or or on a per-tag basis by adding a hash (C<#>) after the tag
|
|
220
220
|
name.
|
|
221
221
|
|
|
@@ -273,7 +273,7 @@ Some GPS tags have values which are fixed-length strings. For these, the
|
|
|
273
273
|
indicated string lengths include a null terminator which is added
|
|
274
274
|
automatically by ExifTool. Remember that the descriptive values are used
|
|
275
275
|
when writing (eg. 'Above Sea Level', not '0') unless the print conversion is
|
|
276
|
-
disabled (with '-n' on the command line or the PrintConv option in the API,
|
|
276
|
+
disabled (with '-n' on the command line or the L<PrintConv|../ExifTool.html#PrintConv> option in the API,
|
|
277
277
|
or by suffixing the tag name with a C<#> character).
|
|
278
278
|
|
|
279
279
|
When adding GPS information to an image, it is important to set all of the
|
|
@@ -306,15 +306,15 @@ HH:MM:SS[.ss][+/-HH:MM]", C<boolean> is either "True" or "False", C<struct>
|
|
|
306
306
|
indicates a structured tag, and C<lang-alt> is a tag that supports alternate
|
|
307
307
|
languages.
|
|
308
308
|
|
|
309
|
-
When reading, C<struct> tags are extracted only if the Struct (-struct)
|
|
309
|
+
When reading, C<struct> tags are extracted only if the L<Struct|../ExifTool.html#Struct> (-struct)
|
|
310
310
|
option is used. Otherwise the corresponding I<Flattened> tags, indicated by
|
|
311
311
|
an underline (C<_>) after the B<Writable> type, are extracted. When
|
|
312
312
|
copying, by default both structured and flattened tags are available, but
|
|
313
313
|
the flattened tags are considered "unsafe" so they they aren't copied unless
|
|
314
|
-
specified explicitly. The Struct option may be disabled by setting Struct
|
|
314
|
+
specified explicitly. The L<Struct|../ExifTool.html#Struct> option may be disabled by setting Struct
|
|
315
315
|
to 0 via the API or with --struct on the command line to copy only flattened
|
|
316
316
|
tags, or enabled by setting Struct to 1 via the API or with -struct on the
|
|
317
|
-
command line to copy only as structures. When writing, the Struct option
|
|
317
|
+
command line to copy only as structures. When writing, the L<Struct|../ExifTool.html#Struct> option
|
|
318
318
|
has no effect, and both structured and flattened tags may be written. See
|
|
319
319
|
L<http://owl.phy.queensu.ca/~phil/exiftool/struct.html> for more details.
|
|
320
320
|
|
|
@@ -381,7 +381,7 @@ the B<Writable> format name. For tags where a range of lengths is allowed,
|
|
|
381
381
|
the minimum and maximum lengths are separated by a comma within the
|
|
382
382
|
brackets. When writing, ExifTool issues a minor warning and truncates the
|
|
383
383
|
value if it is longer than allowed by the IPTC specification. Minor errors
|
|
384
|
-
may be ignored with the IgnoreMinorErrors (-m) option, allowing longer
|
|
384
|
+
may be ignored with the L<IgnoreMinorErrors|../ExifTool.html#IgnoreMinorErrors> (-m) option, allowing longer
|
|
385
385
|
values to be written, but beware that values like this may cause problems
|
|
386
386
|
for some other IPTC readers. ExifTool will happily read IPTC values of any
|
|
387
387
|
length.
|
|
@@ -411,7 +411,7 @@ image files (most notably, MOV/MP4 videos and HEIC/CR3 images). Exiftool
|
|
|
411
411
|
extracts standard meta information and a variety of audio, video and image
|
|
412
412
|
parameters, as well as proprietary information written by many camera
|
|
413
413
|
models. Tags with a question mark after their name are not extracted unless
|
|
414
|
-
the Unknown option is set.
|
|
414
|
+
the L<Unknown|../ExifTool.html#Unknown> option is set.
|
|
415
415
|
|
|
416
416
|
When writing, ExifTool creates both QuickTime and XMP tags by default, but
|
|
417
417
|
the group may be specified to write one or the other separately. If no
|
|
@@ -428,20 +428,24 @@ QuickTime-based files; it extracts other track-specific and timed
|
|
|
428
428
|
metadata, but can not yet edit tags in these locations (with the
|
|
429
429
|
exception of track-level date/time tags).
|
|
430
430
|
|
|
431
|
-
Alternate language tags may be accessed for
|
|
431
|
+
Alternate language tags may be accessed for
|
|
432
|
+
L<ItemList|Image::ExifTool::TagNames/QuickTime ItemList Tags> and
|
|
433
|
+
L<Keys|Image::ExifTool::TagNames/QuickTime Keys Tags> tags by adding
|
|
432
434
|
a 3-character ISO 639-2 language code and an optional ISO 3166-1 alpha 2
|
|
433
435
|
country code to the tag name (eg. "ItemList:Artist-deu" or
|
|
434
|
-
"ItemList::Artist-deu-DE"). Most
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
|
|
438
|
-
|
|
436
|
+
"ItemList::Artist-deu-DE"). Most
|
|
437
|
+
L<UserData|Image::ExifTool::TagNames/QuickTime UserData Tags> tags support a
|
|
438
|
+
language code, but without a country code. If no language code is specified
|
|
439
|
+
when writing, alternate languages for the tag are deleted. Use the "und"
|
|
440
|
+
language code to write the default language without deleting alternate
|
|
441
|
+
languages. Note that "eng" is treated as a default language when reading,
|
|
442
|
+
but not when writing.
|
|
439
443
|
|
|
440
444
|
According to the specification, many QuickTime date/time tags should be
|
|
441
445
|
stored as UTC. Unfortunately, digital cameras often store local time values
|
|
442
446
|
instead (presumably because they don't know the time zone). For this
|
|
443
447
|
reason, by default ExifTool does not assume a time zone for these values.
|
|
444
|
-
However, if the QuickTimeUTC API option is set, then ExifTool will assume
|
|
448
|
+
However, if the L<QuickTimeUTC|../ExifTool.html#QuickTimeUTC> API option is set, then ExifTool will assume
|
|
445
449
|
these values are properly stored as UTC, and will convert them to local time
|
|
446
450
|
when extracting.
|
|
447
451
|
|
|
@@ -457,7 +461,7 @@ a few).
|
|
|
457
461
|
Many Photoshop tags are marked as Unknown (indicated by a question mark
|
|
458
462
|
after the tag name) because the information they provide is not very useful
|
|
459
463
|
under normal circumstances. These unknown tags are not extracted unless the
|
|
460
|
-
Unknown (-u) option is used. See
|
|
464
|
+
L<Unknown|../ExifTool.html#Unknown> (-u) option is used. See
|
|
461
465
|
L<http://www.adobe.com/devnet-apps/photoshop/fileformatashtml/> for the
|
|
462
466
|
official specification
|
|
463
467
|
|
|
@@ -468,7 +472,7 @@ access to this information.
|
|
|
468
472
|
},
|
|
469
473
|
PrintIM => q{
|
|
470
474
|
The format of the PrintIM information is known, however no PrintIM tags have
|
|
471
|
-
been decoded. Use the Unknown (-u) option to extract PrintIM information.
|
|
475
|
+
been decoded. Use the L<Unknown|../ExifTool.html#Unknown> (-u) option to extract PrintIM information.
|
|
472
476
|
},
|
|
473
477
|
GeoTiff => q{
|
|
474
478
|
ExifTool extracts the following tags from GeoTIFF images. See
|
|
@@ -533,7 +537,7 @@ settings have not been decoded for all models. The tables below list the
|
|
|
533
537
|
custom settings for the currently supported models.
|
|
534
538
|
},
|
|
535
539
|
Unknown => q{
|
|
536
|
-
The following tags are decoded in unsupported maker notes. Use the Unknown
|
|
540
|
+
The following tags are decoded in unsupported maker notes. Use the L<Unknown|../ExifTool.html#Unknown>
|
|
537
541
|
(-u) option to display other unknown tags.
|
|
538
542
|
},
|
|
539
543
|
PDF => q{
|
|
@@ -545,7 +549,7 @@ specification.
|
|
|
545
549
|
|
|
546
550
|
ExifTool supports reading and writing PDF documents up to version 1.7
|
|
547
551
|
extension level 3, including support for RC4, AES-128 and AES-256
|
|
548
|
-
encryption. A Password option is provided to allow processing of
|
|
552
|
+
encryption. A L<Password|../ExifTool.html#Password> option is provided to allow processing of
|
|
549
553
|
password-protected PDF files.
|
|
550
554
|
|
|
551
555
|
ExifTool may be used to write native PDF and XMP metadata to PDF files. It
|
|
@@ -712,7 +716,7 @@ sub new
|
|
|
712
716
|
my $that = shift;
|
|
713
717
|
my $class = ref($that) || $that || 'Image::ExifTool::BuildTagLookup';
|
|
714
718
|
my $self = bless {}, $class;
|
|
715
|
-
my (%subdirs, %isShortcut
|
|
719
|
+
my (%subdirs, %isShortcut);
|
|
716
720
|
my %count = (
|
|
717
721
|
'unique tag names' => 0,
|
|
718
722
|
'total tags' => 0,
|
|
@@ -88,7 +88,7 @@ sub ProcessCTMD($$$);
|
|
|
88
88
|
sub ProcessExifInfo($$$);
|
|
89
89
|
sub SwapWords($);
|
|
90
90
|
|
|
91
|
-
$VERSION = '4.
|
|
91
|
+
$VERSION = '4.15';
|
|
92
92
|
|
|
93
93
|
# Note: Removed 'USM' from 'L' lenses since it is redundant - PH
|
|
94
94
|
# (or is it? Ref 32 shows 5 non-USM L-type lenses)
|
|
@@ -429,10 +429,13 @@ $VERSION = '4.14';
|
|
|
429
429
|
250.1 => 'Sigma 20mm f/1.4 DG HSM | A', #IB
|
|
430
430
|
250.2 => 'Sigma 20mm f/1.5 FF High-Speed Prime | 017', #IB
|
|
431
431
|
250.3 => 'Tokina Opera 16-28mm f/2.8 FF', #IB
|
|
432
|
-
251 => 'Canon EF 70-200mm f/2.8L IS II USM',
|
|
432
|
+
251 => 'Canon EF 70-200mm f/2.8L IS II USM',
|
|
433
|
+
251.1 => 'Canon EF 70-200mm f/2.8L IS III USM', #IB
|
|
433
434
|
252 => 'Canon EF 70-200mm f/2.8L IS II USM + 1.4x', #50 (1.4x Mk II)
|
|
435
|
+
252.1 => 'Canon EF 70-200mm f/2.8L IS III USM + 1.4x', #PH (NC)
|
|
434
436
|
253 => 'Canon EF 70-200mm f/2.8L IS II USM + 2x', #PH (NC)
|
|
435
|
-
|
|
437
|
+
253.1 => 'Canon EF 70-200mm f/2.8L IS III USM + 2x', #PH (NC)
|
|
438
|
+
# 253.2 => 'Tamron SP 70-200mm f/2.8 Di VC USD G2 (A025) + 2x', #forum9367
|
|
436
439
|
254 => 'Canon EF 100mm f/2.8L Macro IS USM', #42
|
|
437
440
|
255 => 'Sigma 24-105mm f/4 DG OS HSM | A or Other Sigma Lens', #50
|
|
438
441
|
255.1 => 'Sigma 180mm f/2.8 EX DG OS HSM APO Macro', #50
|
|
@@ -6178,7 +6181,7 @@ my %ciMaxFocal = (
|
|
|
6178
6181
|
# DPP shows "On" for any value except 0xffff when bit 0x08 is set
|
|
6179
6182
|
my ($val, $inv) = @_;
|
|
6180
6183
|
if ($inv) {
|
|
6181
|
-
$val =~ /(0x[0-9a-f]+)/i or $val =~ /(\d+)
|
|
6184
|
+
$val =~ /(0x[0-9a-f]+)/i or $val =~ /(\d+)/ or return undef;
|
|
6182
6185
|
return $1;
|
|
6183
6186
|
} else {
|
|
6184
6187
|
return sprintf("On (0x%.2x)",$val) if $val & 0x08;
|
|
@@ -7316,7 +7319,7 @@ my %ciMaxFocal = (
|
|
|
7316
7319
|
NOTES => q{
|
|
7317
7320
|
Camera color calibration data. For the 20D, 350D, 1DmkII and 1DSmkII the
|
|
7318
7321
|
order of the coefficients is A, B, C, Temperature, but for newer models it
|
|
7319
|
-
is B, C, A, Temperature. These tags are extracted only when the Unknown
|
|
7322
|
+
is B, C, A, Temperature. These tags are extracted only when the L<Unknown|../ExifTool.html#Unknown>
|
|
7320
7323
|
option is used.
|
|
7321
7324
|
},
|
|
7322
7325
|
0x00 => { Name => 'CameraColorCalibration01', %cameraColorCalibration },
|
|
@@ -8497,7 +8500,7 @@ my %filterConv = (
|
|
|
8497
8500
|
GROUPS => { 0 => 'MakerNotes', 1 => 'Canon', 2 => 'Image' },
|
|
8498
8501
|
PROCESS_PROC => \&ProcessCTMD,
|
|
8499
8502
|
NOTES => q{
|
|
8500
|
-
Canon Timed MetaData tags found in CR3 images. The ExtractEmbedded option
|
|
8503
|
+
Canon Timed MetaData tags found in CR3 images. The L<ExtractEmbedded|../ExifTool.html#ExtractEmbedded> option
|
|
8501
8504
|
is automatically applied when reading CR3 files to be able to extract this
|
|
8502
8505
|
information.
|
|
8503
8506
|
},
|
|
@@ -8953,9 +8956,10 @@ sub PrintLensID(@)
|
|
|
8953
8956
|
}
|
|
8954
8957
|
@matches = @best if @best;
|
|
8955
8958
|
}
|
|
8959
|
+
@matches = @likely unless @matches;
|
|
8960
|
+
@matches = @maybe unless @matches;
|
|
8961
|
+
Image::ExifTool::Exif::MatchLensModel(\@matches, $lensModel);
|
|
8956
8962
|
return join(' or ', @matches) if @matches;
|
|
8957
|
-
return join(' or ', @likely) if @likely;
|
|
8958
|
-
return join(' or ', @maybe) if @maybe;
|
|
8959
8963
|
} elsif ($lensModel and $lensModel =~ /\d/) {
|
|
8960
8964
|
# use lens model as written by the camera
|
|
8961
8965
|
if ($printConv eq \%canonLensTypes) {
|
|
@@ -9303,7 +9307,7 @@ sub PrintAFPoints1D($)
|
|
|
9303
9307
|
$focusing = "$row$col" if $focus eq $focusPt;
|
|
9304
9308
|
push @points, "$row$col" if shift @bits;
|
|
9305
9309
|
}
|
|
9306
|
-
$focusing or $focusing = ($focus
|
|
9310
|
+
$focusing or $focusing = ($focus == 0xff) ? 'Auto' : sprintf('Unknown (0x%.2x)',$focus);
|
|
9307
9311
|
return "$focusing (" . join(',',@points) . ')';
|
|
9308
9312
|
}
|
|
9309
9313
|
|