exiftool_vendored 10.56.0 → 10.58.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of exiftool_vendored might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/bin/Changes +32 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +2 -2
- data/bin/exiftool +31 -28
- data/bin/lib/Image/ExifTool.pm +41 -14
- data/bin/lib/Image/ExifTool.pod +4 -3
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +17 -9
- data/bin/lib/Image/ExifTool/Canon.pm +17 -5
- data/bin/lib/Image/ExifTool/DJI.pm +20 -1
- data/bin/lib/Image/ExifTool/EXE.pm +2 -2
- data/bin/lib/Image/ExifTool/Exif.pm +5 -0
- data/bin/lib/Image/ExifTool/FujiFilm.pm +40 -3
- data/bin/lib/Image/ExifTool/GIF.pm +2 -2
- data/bin/lib/Image/ExifTool/ICC_Profile.pm +2 -2
- data/bin/lib/Image/ExifTool/Import.pm +13 -3
- data/bin/lib/Image/ExifTool/Minolta.pm +47 -41
- data/bin/lib/Image/ExifTool/PNG.pm +8 -7
- data/bin/lib/Image/ExifTool/Panasonic.pm +1 -1
- data/bin/lib/Image/ExifTool/Pentax.pm +19 -3
- data/bin/lib/Image/ExifTool/README +49 -47
- data/bin/lib/Image/ExifTool/RIFF.pm +62 -4
- data/bin/lib/Image/ExifTool/Sony.pm +7 -4
- data/bin/lib/Image/ExifTool/TagLookup.pm +4187 -4166
- data/bin/lib/Image/ExifTool/TagNames.pod +71 -24
- data/bin/lib/Image/ExifTool/WritePNG.pl +8 -7
- data/bin/lib/Image/ExifTool/XMP.pm +6 -1
- data/bin/perl-Image-ExifTool.spec +1 -1
- data/lib/exiftool_vendored/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 72daef9a11b65e07249202a45cd992a51acb07b6
|
4
|
+
data.tar.gz: 62cdaa5125babfc3efcc8e8813a0392fcc373074
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e69f4f592268effb10cd7b4b9ca7c75307806cc3605836861a3ac6bf8d7781707939b64d05b7e11d99521add8ef5c7b9bac02ca24cee205aabfe7f8a3b2cf6a4
|
7
|
+
data.tar.gz: 4d8198e2a6fbd32b0fa85e76bf4261c8984aabb549ceba9c7a2a6ed1af0a38084d6d8fafe96f3afbc73acd48b97b0d94ae20a2b2cc2641e0a1d02513730ef4bc
|
data/bin/Changes
CHANGED
@@ -7,6 +7,37 @@ RSS feed: http://owl.phy.queensu.ca/~phil/exiftool/rss.xml
|
|
7
7
|
Note: The most recent production release is Version 10.55. (Other versions are
|
8
8
|
considered development releases, and are not uploaded to CPAN.)
|
9
9
|
|
10
|
+
June 29, 2017 - Version 10.58
|
11
|
+
|
12
|
+
- Added read support for RIFF-format MBWF/RF64 files
|
13
|
+
- Added write support for dji-drone XMP tags
|
14
|
+
- Added a new Canon LensType (thanks Steve Bates)
|
15
|
+
- Added a few new Sony/Minolta LensType values (thanks Jos Roost)
|
16
|
+
- Added a new Canon LensType
|
17
|
+
- Added a couple of new CanonModelID values (thanks LibRaw and Norbert Wasser)
|
18
|
+
- Decode some new FujiFilm tags (thanks Chris Schucker)
|
19
|
+
- Enhanced FileSize print conversion to show in "GB" for large files
|
20
|
+
- Fixed "outside of string in unpack" errors when reading some corrupted
|
21
|
+
EXE/ICC files
|
22
|
+
- Fixed problem extracting GIF MIDISong metadata
|
23
|
+
|
24
|
+
June 20, 2017 - Version 10.57
|
25
|
+
|
26
|
+
- Added a new Canon LensType (thanks Norbert Wasser)
|
27
|
+
- Added write support for PNG Collection tag
|
28
|
+
- Added a few new CanonModelID values
|
29
|
+
- Added some new Pentax ShakeReduction values
|
30
|
+
- Removed ability to create PNG zxIf chunks
|
31
|
+
- Documented -progress:%b feature (added in 10.26)
|
32
|
+
- No longer report FileType, FileTypeExtension or MIMEType for JPEG/TIFF
|
33
|
+
images with an unknown header
|
34
|
+
- Relaxed case requirement for "SourceFile" header in CSV and JSON import
|
35
|
+
- Fixed decoding of Pentax ExposureCompensation for newer Ricoh models
|
36
|
+
- Fixed some incorrect "Wrong IFD" messages with experimental -validate
|
37
|
+
feature
|
38
|
+
- Fixed a couple of Sony/Minolta lens names (thanks Jos Roost)
|
39
|
+
- Fixed "Error reading PreviewImage" warning for some Sony models
|
40
|
+
|
10
41
|
June 6, 2017 - Version 10.56
|
11
42
|
|
12
43
|
- Removed ordering constraints between Geotag/Geosync and Geotime assignments
|
@@ -201,6 +232,7 @@ Jan. 13, 2017 - Version 10.39
|
|
201
232
|
|
202
233
|
- Added Perl version and Unicode settings to -ver -v output
|
203
234
|
- Added a new Sony LensType2 value
|
235
|
+
- Added a new Canon LensType (thanks Norbert Wasser)
|
204
236
|
- More improvements to sample time_zone.config file (thanks Hayo Baan)
|
205
237
|
- Fixed problem with MWG date/time tags introduced in version 10.34
|
206
238
|
- Fixed problem setting the value of a tag from a binary file when the
|
data/bin/META.json
CHANGED
data/bin/META.yml
CHANGED
data/bin/README
CHANGED
@@ -101,8 +101,8 @@ your home directory, then you would type the following commands in a
|
|
101
101
|
terminal window to extract and run ExifTool:
|
102
102
|
|
103
103
|
cd ~/Desktop
|
104
|
-
gzip -dc Image-ExifTool-10.
|
105
|
-
cd Image-ExifTool-10.
|
104
|
+
gzip -dc Image-ExifTool-10.58.tar.gz | tar -xf -
|
105
|
+
cd Image-ExifTool-10.58
|
106
106
|
./exiftool t/images/ExifTool.jpg
|
107
107
|
|
108
108
|
Note: These commands extract meta information from one of the test images.
|
data/bin/exiftool
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
use strict;
|
13
13
|
require 5.004;
|
14
14
|
|
15
|
-
my $version = '10.
|
15
|
+
my $version = '10.58';
|
16
16
|
|
17
17
|
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
|
18
18
|
my $exeDir;
|
@@ -4779,17 +4779,18 @@ group names to each tag. List-type tags with multiple items are output as
|
|
4779
4779
|
JSON arrays unless B<-sep> is used. By default XMP structures are flattened
|
4780
4780
|
into individual tags in the JSON output, but the original structure may be
|
4781
4781
|
preserved with the B<-struct> option (this also causes all list-type XMP
|
4782
|
-
tags to be output as JSON arrays, otherwise single-item lists
|
4783
|
-
simple strings). The B<-a> option is implied if the B<-g> or
|
4784
|
-
are used, otherwise it is ignored and duplicate tags are
|
4785
|
-
the B<-D> or B<-H> option changes tag values to JSON
|
4786
|
-
"id" fields, and adding B<-l> adds a "desc" field,
|
4787
|
-
numerical value is different from the converted
|
4788
|
-
be added to output binary data, encoded in
|
4789
|
-
"base64:" as the first 7 bytes of the
|
4790
|
-
include tag table information (see B<-t>
|
4791
|
-
UTF-8 regardless of any B<-L> or
|
4792
|
-
|
4782
|
+
tags to be output as JSON arrays, otherwise single-item lists would be
|
4783
|
+
output as simple strings). The B<-a> option is implied if the B<-g> or
|
4784
|
+
B<-G> options are used, otherwise it is ignored and duplicate tags are
|
4785
|
+
suppressed. Adding the B<-D> or B<-H> option changes tag values to JSON
|
4786
|
+
objects with "val" and "id" fields, and adding B<-l> adds a "desc" field,
|
4787
|
+
and a "num" field if the numerical value is different from the converted
|
4788
|
+
"val". The B<-b> option may be added to output binary data, encoded in
|
4789
|
+
base64 if necessary (indicated by "base64:" as the first 7 bytes of the
|
4790
|
+
value), and B<-t> may be added to include tag table information (see B<-t>
|
4791
|
+
for details). The JSON output is UTF-8 regardless of any B<-L> or
|
4792
|
+
B<-charset> option setting, but the UTF-8 validation is disabled if a
|
4793
|
+
character set other than UTF-8 is specified.
|
4793
4794
|
|
4794
4795
|
If I<JSONFILE> is specified, the file is imported and the tag definitions
|
4795
4796
|
from the file are used to set tag values on a per-file basis. The special
|
@@ -4799,7 +4800,7 @@ of "*" defines default tags for all target files which are combined with any
|
|
4799
4800
|
tags specified for the specific SourceFile processed. The imported JSON
|
4800
4801
|
file must have the same format as the exported JSON files with the exception
|
4801
4802
|
that the B<-g> option is not compatible with the import file format (use
|
4802
|
-
B<-G> instead).
|
4803
|
+
B<-G> instead). Additionally, tag names in the input JSON file may be
|
4803
4804
|
suffixed with a C<#> to disable print conversion.
|
4804
4805
|
|
4805
4806
|
Unlike CSV import, empty values are not ignored, and will cause an empty
|
@@ -4908,7 +4909,7 @@ with this command:
|
|
4908
4909
|
|
4909
4910
|
produces output like this:
|
4910
4911
|
|
4911
|
-
-- Generated by ExifTool 10.
|
4912
|
+
-- Generated by ExifTool 10.58 --
|
4912
4913
|
File: a.jpg - 2003:10:31 15:44:19
|
4913
4914
|
(f/5.6, 1/60s, ISO 100)
|
4914
4915
|
File: b.jpg - 2006:05:23 11:57:38
|
@@ -4988,8 +4989,8 @@ with B<--sort>.
|
|
4988
4989
|
|
4989
4990
|
Output structured XMP information instead of flattening to individual tags.
|
4990
4991
|
This option works well when combined with the XML (B<-X>) and JSON (B<-j>)
|
4991
|
-
output formats. For other output formats,
|
4992
|
-
into the same format as when writing structured information (see
|
4992
|
+
output formats. For other output formats, XMP structures and lists are
|
4993
|
+
serialized into the same format as when writing structured information (see
|
4993
4994
|
L<http://owl.phy.queensu.ca/~phil/exiftool/struct.html> for details). When
|
4994
4995
|
copying, structured tags are copied by default unless B<--struct> is used to
|
4995
4996
|
disable this feature (although flattened tags may still be copied by
|
@@ -5284,7 +5285,8 @@ small when reading images directly from disk, but can be substantial if
|
|
5284
5285
|
piping images through a network connection. For more substantial speed
|
5285
5286
|
benefits, B<-fast2> also causes exiftool to avoid extracting any EXIF
|
5286
5287
|
MakerNote information. B<-fast3> avoids processing the file entirely, and
|
5287
|
-
returns only an initial guess at FileType and the pseudo System tags.
|
5288
|
+
returns only an initial guess at FileType and the pseudo System tags. Has
|
5289
|
+
no effect when writing.
|
5288
5290
|
|
5289
5291
|
=item B<-fileOrder> [-]I<TAG>
|
5290
5292
|
|
@@ -5464,10 +5466,10 @@ If followed by a colon (ie. B<-progress:>), the console window title is set
|
|
5464
5466
|
according to the specified I<TITLE> string. If no I<TITLE> is given, a
|
5465
5467
|
default I<TITLE> string of "ExifTool %p%%" is assumed. In the string, %f
|
5466
5468
|
represents the file name, %p is the progress as a percent, %r is the
|
5467
|
-
progress as a ratio,
|
5468
|
-
|
5469
|
-
messages. (Note: For this feature
|
5470
|
-
stderr must go to the console.)
|
5469
|
+
progress as a ratio, %[##]b is a progress bar of width ## (default 20), and
|
5470
|
+
%% is a % character. May be combined with the normal B<-progress> option to
|
5471
|
+
also show the progress count in console messages. (Note: For this feature
|
5472
|
+
to function correctly on Mac/Linux, stderr must go to the console.)
|
5471
5473
|
|
5472
5474
|
=item B<-q> (B<-quiet>)
|
5473
5475
|
|
@@ -5926,10 +5928,11 @@ Note that function names are case sensitive.
|
|
5926
5928
|
|
5927
5929
|
=head1 WINDOWS UNICODE FILE NAMES
|
5928
5930
|
|
5929
|
-
In Windows,
|
5930
|
-
|
5931
|
-
|
5932
|
-
|
5931
|
+
In Windows, command-line arguments are specified using the current code page
|
5932
|
+
and are recoded automatically to the system code page. This recoding is not
|
5933
|
+
done for arguments in ExifTool arg files, so by default filenames in arg
|
5934
|
+
files use the system code page. Unfortunately, these code pages are not
|
5935
|
+
complete character sets, so not all file names may be represented.
|
5933
5936
|
|
5934
5937
|
ExifTool 9.79 and later allow the file name encoding to be specified with
|
5935
5938
|
C<-charset filename=CHARSET>, where C<CHARSET> is the name of a valid
|
@@ -5938,8 +5941,8 @@ complete list). Setting this triggers the use of Windows wide-character i/o
|
|
5938
5941
|
routines, thus providing support for all Unicode file names. But note that
|
5939
5942
|
it is not trivial to pass properly encoded file names on the Windows command
|
5940
5943
|
line (see L<http://owl.phy.queensu.ca/~phil/exiftool/faq.html#Q18> for
|
5941
|
-
details), so placing them in a UTF-8 encoded B<-@> argfile
|
5942
|
-
possible.
|
5944
|
+
details), so placing them in a UTF-8 encoded B<-@> argfile and using
|
5945
|
+
C<-charset filename=utf8> is recommended if possible.
|
5943
5946
|
|
5944
5947
|
A warning is issued if a specified filename contains special characters and
|
5945
5948
|
the filename character set was not provided. However, the warning may be
|
@@ -6542,7 +6545,7 @@ flexibility of ExifTool.)
|
|
6542
6545
|
|
6543
6546
|
=back
|
6544
6547
|
|
6545
|
-
=head1
|
6548
|
+
=head1 EXIT STATUS
|
6546
6549
|
|
6547
6550
|
The exiftool application exits with a status of 0 on success, or 1 if an
|
6548
6551
|
error occurred or if all files failed the B<-if> condition (for any of the
|
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);
|
29
29
|
|
30
|
-
$VERSION = '10.
|
30
|
+
$VERSION = '10.58';
|
31
31
|
$RELEASE = '';
|
32
32
|
@ISA = qw(Exporter);
|
33
33
|
%EXPORT_TAGS = (
|
@@ -509,7 +509,6 @@ my %fileTypeExt = (
|
|
509
509
|
my %fileDescription = (
|
510
510
|
DICOM => 'Digital Imaging and Communications in Medicine',
|
511
511
|
XML => 'Extensible Markup Language',
|
512
|
-
'DJVU (multi-page)' => 'DjVu multi-page image',
|
513
512
|
'Win32 EXE' => 'Windows 32-bit Executable',
|
514
513
|
'Win32 DLL' => 'Windows 32-bit Dynamic Link Library',
|
515
514
|
'Win64 EXE' => 'Windows 64-bit Executable',
|
@@ -834,7 +833,7 @@ my %moduleName = (
|
|
834
833
|
RAR => 'Rar!\x1a\x07\0',
|
835
834
|
RAW => '(.{25}ARECOYK|II|MM)',
|
836
835
|
Real => '(\.RMF|\.ra\xfd|pnm://|rtsp://|http://)',
|
837
|
-
RIFF => '(RIFF|LA0[234]|OFR |LPAC|wvpk)', # RIFF plus other variants
|
836
|
+
RIFF => '(RIFF|LA0[234]|OFR |LPAC|wvpk|RF64)', # RIFF plus other variants
|
838
837
|
RSRC => '(....)?\0\0\x01\0',
|
839
838
|
RTF => '[\n\r]*\\{[\n\r]*\\\\rtf',
|
840
839
|
RWZ => 'rawzor',
|
@@ -1097,9 +1096,10 @@ my %systemTagsNotes = (
|
|
1097
1096
|
FileCreateDate => {
|
1098
1097
|
Description => 'File Creation Date/Time',
|
1099
1098
|
Notes => q{
|
1100
|
-
the filesystem creation date/time. Windows only.
|
1101
|
-
and Win32::API
|
1102
|
-
for the Mac OS X
|
1099
|
+
the filesystem creation date/time. Windows only. This tag is writable and
|
1100
|
+
is preserved by default when writing if Win32API::File and Win32::API are
|
1101
|
+
available. See L<MDItemFSCreationDate|MacOS.html#MDItem> for the Mac OS X
|
1102
|
+
equivalent
|
1103
1103
|
},
|
1104
1104
|
Groups => { 1 => 'System', 2 => 'Time' },
|
1105
1105
|
Writable => 1,
|
@@ -1452,6 +1452,7 @@ my %systemTagsNotes = (
|
|
1452
1452
|
higher
|
1453
1453
|
},
|
1454
1454
|
},
|
1455
|
+
# Validate (added from Validate.pm)
|
1455
1456
|
Now => {
|
1456
1457
|
Groups => { 0 => 'ExifTool', 1 => 'ExifTool', 2 => 'Time' },
|
1457
1458
|
Notes => q{
|
@@ -2215,6 +2216,7 @@ sub ExtractInfo($;@)
|
|
2215
2216
|
$raf->Read($buff, 1024) or $buff = '';
|
2216
2217
|
$raf->Seek($pos, 0) or $seekErr = 1;
|
2217
2218
|
until ($seekErr) {
|
2219
|
+
my $unkHeader;
|
2218
2220
|
$type = shift @fileTypeList;
|
2219
2221
|
if ($type) {
|
2220
2222
|
# do quick test for this file type to avoid loading module unnecessarily
|
@@ -2232,7 +2234,8 @@ sub ExtractInfo($;@)
|
|
2232
2234
|
my $skip = pos($buff) - length($1);
|
2233
2235
|
$dirInfo{Base} = $pos + $skip;
|
2234
2236
|
$raf->Seek($pos + $skip, 0) or $seekErr = 1, last;
|
2235
|
-
$self->Warn("
|
2237
|
+
$self->Warn("Processing $type-like data after unknown $skip-byte header");
|
2238
|
+
$unkHeader = 1 unless $$self{DOC_NUM};
|
2236
2239
|
}
|
2237
2240
|
# save file type in member variable
|
2238
2241
|
$$self{FILE_TYPE} = $type;
|
@@ -2266,8 +2269,15 @@ sub ExtractInfo($;@)
|
|
2266
2269
|
|
2267
2270
|
pop @{$$self{PATH}};
|
2268
2271
|
|
2269
|
-
|
2270
|
-
|
2272
|
+
if ($result) { # all done if successful
|
2273
|
+
if ($unkHeader) {
|
2274
|
+
$self->DeleteTag('FileType');
|
2275
|
+
$self->DeleteTag('FileTypeExtension');
|
2276
|
+
$self->DeleteTag('MIMEType');
|
2277
|
+
$self->VPrint(0,"Reset file type due to unknown header\n");
|
2278
|
+
}
|
2279
|
+
last;
|
2280
|
+
}
|
2271
2281
|
# seek back to try again from the same position in the file
|
2272
2282
|
$raf->Seek($pos, 0) or $seekErr = 1, last;
|
2273
2283
|
}
|
@@ -2787,7 +2797,14 @@ sub GetValue($$;$)
|
|
2787
2797
|
last;
|
2788
2798
|
}
|
2789
2799
|
$val = $$vals[$i];
|
2790
|
-
|
2800
|
+
if ($convList) {
|
2801
|
+
my $nextConv = $$convList[$i];
|
2802
|
+
if ($nextConv and $nextConv eq 'REPEAT') {
|
2803
|
+
undef $convList;
|
2804
|
+
} else {
|
2805
|
+
$conv = $nextConv;
|
2806
|
+
}
|
2807
|
+
}
|
2791
2808
|
}
|
2792
2809
|
# return undefined now if no value
|
2793
2810
|
return () unless defined $value;
|
@@ -3222,15 +3239,23 @@ sub GetFileType(;$$)
|
|
3222
3239
|
}
|
3223
3240
|
return @types;
|
3224
3241
|
}
|
3225
|
-
my $fileType;
|
3242
|
+
my ($fileType, $subType);
|
3226
3243
|
my $fileExt = GetFileExtension($file);
|
3227
|
-
|
3244
|
+
unless ($fileExt) {
|
3245
|
+
if ($file =~ s/ \((.*)\)$//) {
|
3246
|
+
$subType = $1;
|
3247
|
+
$fileExt = GetFileExtension($file);
|
3248
|
+
}
|
3249
|
+
$fileExt = uc($file) unless $fileExt;
|
3250
|
+
}
|
3228
3251
|
$fileExt and $fileType = $fileTypeLookup{$fileExt}; # look up the file type
|
3229
3252
|
$fileType = $fileTypeLookup{$fileType} while $fileType and not ref $fileType;
|
3230
3253
|
# return description if specified
|
3231
3254
|
# (allow input $file to be a FileType for this purpose)
|
3232
3255
|
if ($desc) {
|
3233
|
-
|
3256
|
+
$desc = $fileType ? $$fileType[1] : $fileDescription{$file};
|
3257
|
+
$desc .= ", $subType" if $subType;
|
3258
|
+
return $desc;
|
3234
3259
|
} elsif ($fileType and (not defined $desc or $desc ne '0')) {
|
3235
3260
|
# return only supported file types
|
3236
3261
|
my $mod = $moduleName{$$fileType[0]};
|
@@ -5119,7 +5144,9 @@ sub ConvertFileSize($)
|
|
5119
5144
|
$val < 10240 and return sprintf('%.1f kB', $val / 1024);
|
5120
5145
|
$val < 2097152 and return sprintf('%.0f kB', $val / 1024);
|
5121
5146
|
$val < 10485760 and return sprintf('%.1f MB', $val / 1048576);
|
5122
|
-
return sprintf('%.0f MB', $val / 1048576);
|
5147
|
+
$val < 2147483648 and return sprintf('%.0f MB', $val / 1048576);
|
5148
|
+
$val < 10737418240 and return sprintf('%.1f GB', $val / 1073741824);
|
5149
|
+
return sprintf('%.0f GB', $val / 1073741824);
|
5123
5150
|
}
|
5124
5151
|
|
5125
5152
|
#------------------------------------------------------------------------------
|
data/bin/lib/Image/ExifTool.pod
CHANGED
@@ -2180,9 +2180,10 @@ RMETA, RSRC, RTF, Radiance, Rawzor, Real, Real-CONT, Real-MDPR, Real-PROP,
|
|
2180
2180
|
Real-RA3, Real-RA4, Real-RA5, Real-RJMD, Reconyx, Ricoh, SPIFF, SR2,
|
2181
2181
|
SR2DataIFD, SR2SubIFD, SRF#, SVG, Samsung, Sanyo, Scalado, Sigma, SigmaRaw,
|
2182
2182
|
Sony, SonyIDC, Stim, SubIFD, System, Theora, Torrent, Track#, VCalendar,
|
2183
|
-
VCard, Version0, Vorbis, XML, XMP, XMP-DICOM, XMP-
|
2184
|
-
XMP-
|
2185
|
-
XMP-
|
2183
|
+
VCard, Version0, Vorbis, XML, XMP, XMP-DICOM, XMP-GAudio, XMP-GImage,
|
2184
|
+
XMP-GPano, XMP-GSpherical, XMP-MP, XMP-MP1, XMP-PixelLive, XMP-aas,
|
2185
|
+
XMP-acdsee, XMP-album, XMP-apple-fi, XMP-aux, XMP-cc, XMP-cell,
|
2186
|
+
XMP-creatorAtom, XMP-crs, XMP-dc, XMP-dex, XMP-digiKam, XMP-drone-dji,
|
2186
2187
|
XMP-dwc, XMP-exif, XMP-exifEX, XMP-expressionmedia, XMP-extensis, XMP-fpv,
|
2187
2188
|
XMP-getty, XMP-ics, XMP-iptcCore, XMP-iptcExt, XMP-lr, XMP-mediapro,
|
2188
2189
|
XMP-microsoft, XMP-mwg-coll, XMP-mwg-kw, XMP-mwg-rs, XMP-pdf, XMP-pdfx,
|
@@ -34,7 +34,7 @@ use Image::ExifTool::Nikon;
|
|
34
34
|
use Image::ExifTool::Validate;
|
35
35
|
use Image::ExifTool::MacOS;
|
36
36
|
|
37
|
-
$VERSION = '3.
|
37
|
+
$VERSION = '3.09';
|
38
38
|
@ISA = qw(Exporter);
|
39
39
|
|
40
40
|
sub NumbersFirst($$);
|
@@ -501,7 +501,9 @@ must be subsequently re-linearized if this is required.
|
|
501
501
|
|
502
502
|
2) All metadata edits are reversible. While this would normally be
|
503
503
|
considered an advantage, it is a potential security problem because old
|
504
|
-
information is never actually deleted from the file.
|
504
|
+
information is never actually deleted from the file. (However, after
|
505
|
+
running ExifTool the old information may be removed permanently using the
|
506
|
+
"qpdf" utility with this command: "qpdf --linearize in.pdf out.pdf".)
|
505
507
|
},
|
506
508
|
DNG => q{
|
507
509
|
The main DNG tags are found in the EXIF table. The tables below define only
|
@@ -1004,10 +1006,16 @@ TagID: foreach $tagID (@keys) {
|
|
1004
1006
|
my (@printConvList, @indexList, $index, $valueConvHash);
|
1005
1007
|
if (ref $printConv eq 'ARRAY') {
|
1006
1008
|
for ($index=0; $index<@$printConv; ++$index) {
|
1007
|
-
|
1008
|
-
|
1009
|
-
|
1010
|
-
|
1009
|
+
if (ref $$printConv[$index] eq 'HASH') {
|
1010
|
+
next unless %{$$printConv[$index]};
|
1011
|
+
push @printConvList, $$printConv[$index];
|
1012
|
+
push @indexList, $index;
|
1013
|
+
} elsif ($$printConv[$index] and $$printConv[$index] eq 'REPEAT' and $index) {
|
1014
|
+
push @printConvList, $$printConv[$index-1];
|
1015
|
+
push @indexList, 'N';
|
1016
|
+
} else {
|
1017
|
+
next;
|
1018
|
+
}
|
1011
1019
|
# collapse values with identical PrintConv's
|
1012
1020
|
if (@printConvList >= 2 and $printConvList[-1] eq $printConvList[-2]) {
|
1013
1021
|
if (ref $indexList[-2]) {
|
@@ -1034,11 +1042,11 @@ TagID: foreach $tagID (@keys) {
|
|
1034
1042
|
# collapse consecutive number ranges
|
1035
1043
|
my ($i, @i, $rngStart);
|
1036
1044
|
for ($i=0; $i<@$idx; ++$i) {
|
1037
|
-
if ($i < @$idx - 1 and $$idx[$i+1] == $$idx[$i] + 1) {
|
1038
|
-
$rngStart = $i unless defined $rngStart;
|
1045
|
+
if ($i < @$idx - 1 and ($$idx[$i+1] eq 'N' or $$idx[$i+1] == $$idx[$i] + 1)) {
|
1046
|
+
$rngStart = $$idx[$i] unless defined $rngStart;
|
1039
1047
|
next;
|
1040
1048
|
}
|
1041
|
-
push @i, defined($rngStart) ? "$rngStart
|
1049
|
+
push @i, (defined($rngStart) ? "$rngStart-" : '') . $$idx[$i];
|
1042
1050
|
}
|
1043
1051
|
($idx = join ', ', @i) =~ s/(.*),/$1 and/;
|
1044
1052
|
} elsif (not $$tagInfo{Relist}) {
|
@@ -85,7 +85,7 @@ sub ProcessSerialData($$$);
|
|
85
85
|
sub ProcessFilters($$$);
|
86
86
|
sub SwapWords($);
|
87
87
|
|
88
|
-
$VERSION = '3.
|
88
|
+
$VERSION = '3.77';
|
89
89
|
|
90
90
|
# Note: Removed 'USM' from 'L' lenses since it is redundant - PH
|
91
91
|
# (or is it? Ref 32 shows 5 non-USM L-type lenses)
|
@@ -335,6 +335,7 @@ $VERSION = '3.75';
|
|
335
335
|
183.3 => 'Sigma 180mm f/2.8 EX DG OS HSM APO Macro', #IB
|
336
336
|
183.4 => 'Sigma 150-600mm f/5-6.3 DG OS HSM | C', #47
|
337
337
|
183.5 => 'Sigma 150-600mm f/5-6.3 DG OS HSM | S', #forum7109 (Sports 014)
|
338
|
+
183.6 => 'Sigma 100-400mm f/5-6.3 DG OS HSM', #PH ("| C" ?)
|
338
339
|
184 => 'Canon EF 400mm f/2.8L + 2x', #15
|
339
340
|
185 => 'Canon EF 600mm f/4L IS', #32
|
340
341
|
186 => 'Canon EF 70-200mm f/4L', #9
|
@@ -347,7 +348,8 @@ $VERSION = '3.75';
|
|
347
348
|
194 => 'Canon EF 80-200mm f/4.5-5.6 USM', #32
|
348
349
|
195 => 'Canon EF 35-105mm f/4.5-5.6 USM', #32
|
349
350
|
196 => 'Canon EF 75-300mm f/4-5.6 USM', #15/32
|
350
|
-
197 => 'Canon EF 75-300mm f/4-5.6 IS USM',
|
351
|
+
197 => 'Canon EF 75-300mm f/4-5.6 IS USM or Sigma Lens',
|
352
|
+
197.1 => 'Sigma 18-300mm f/3.5-6.3 DC Macro OS HS', #50
|
351
353
|
198 => 'Canon EF 50mm f/1.4 USM or Zeiss Lens',
|
352
354
|
198.1 => 'Zeiss Otus 55mm f/1.4 ZE', #JR (seen only on Sony camera)
|
353
355
|
198.2 => 'Zeiss Otus 85mm f/1.4 ZE', #JR (NC)
|
@@ -423,14 +425,15 @@ $VERSION = '3.75';
|
|
423
425
|
505 => 'Canon EF 35mm f/2 IS USM', #PH
|
424
426
|
506 => 'Canon EF 400mm f/4 DO IS II USM', #42
|
425
427
|
507 => 'Canon EF 16-35mm f/4L IS USM', #42
|
426
|
-
508 => 'Canon EF 11-24mm f/4L USM', #PH
|
428
|
+
508 => 'Canon EF 11-24mm f/4L USM or Tamron Lens', #PH
|
429
|
+
508.1 => 'Tamron 10-24mm f/3.5-4.5 Di II VC HLD', #PH (B023)
|
427
430
|
747 => 'Canon EF 100-400mm f/4.5-5.6L IS II USM or Tamron Lens', #JR
|
428
431
|
747.1 => 'Tamron SP 150-600mm F5-6.3 Di VC USD G2', #50
|
429
432
|
748 => 'Canon EF 100-400mm f/4.5-5.6L IS II USM + 1.4x', #JR (1.4x Mk III)
|
430
433
|
750 => 'Canon EF 35mm f/1.4L II USM', #42
|
431
434
|
751 => 'Canon EF 16-35mm f/2.8L III USM', #42
|
432
435
|
752 => 'Canon EF 24-105mm f/4L IS II USM', #42
|
433
|
-
# (STM lenses
|
436
|
+
# (STM lenses - 0x10xx)
|
434
437
|
4142 => 'Canon EF-S 18-135mm f/3.5-5.6 IS STM',
|
435
438
|
4143 => 'Canon EF-M 18-55mm f/3.5-5.6 IS STM or Tamron Lens',
|
436
439
|
4143.1 => 'Tamron 18-200mm F/3.5-6.3 Di III VC', #42
|
@@ -448,8 +451,11 @@ $VERSION = '3.75';
|
|
448
451
|
4156 => 'Canon EF 50mm f/1.8 STM', #42
|
449
452
|
4157 => 'Canon EF-M 18-150mm 1:3.5-6.3 IS STM', #42
|
450
453
|
4158 => 'Canon EF-S 18-55mm f/4-5.6 IS STM', #PH
|
454
|
+
4160 => 'Canon EF-S 35mm f/2.8 Macro IS STM', #42
|
455
|
+
# (Nano USM lenses - 0x90xx)
|
451
456
|
36910 => 'Canon EF 70-300mm f/4-5.6 IS II USM', #42
|
452
457
|
36912 => 'Canon EF-S 18-135mm f/3.5-5.6 IS USM', #42
|
458
|
+
# (CN-E lenses - 0xf0xx)
|
453
459
|
61494 => 'Canon CN-E 85mm T1.3 L F', #PH
|
454
460
|
65535 => 'n/a',
|
455
461
|
);
|
@@ -686,6 +692,9 @@ $VERSION = '3.75';
|
|
686
692
|
0x4060000 => 'PowerShot SX620 HS',
|
687
693
|
0x4070000 => 'EOS M6',
|
688
694
|
0x4100000 => 'PowerShot G9 X Mark II',
|
695
|
+
0x4150000 => 'PowerShot ELPH 185 / IXUS 185 / IXY 200',
|
696
|
+
0x4160000 => 'PowerShot SX430 IS',
|
697
|
+
0x4170000 => 'PowerShot SX730 HS',
|
689
698
|
0x6040000 => 'PowerShot S100 / Digital IXUS / IXY Digital',
|
690
699
|
|
691
700
|
# (see http://cweb.canon.jp/e-support/faq/answer/digitalcamera/10447-1.html for PowerShot/IXUS/IXY names)
|
@@ -778,7 +787,9 @@ $VERSION = '3.75';
|
|
778
787
|
0x80000401 => 'EOS 5DS R',
|
779
788
|
0x80000404 => 'EOS Rebel T6 / 1300D / Kiss X80',
|
780
789
|
0x80000405 => 'EOS Rebel T7i / 800D / Kiss X9i',
|
790
|
+
0x80000406 => 'EOS 6D Mark II', #IB/42
|
781
791
|
0x80000408 => 'EOS 77D / 9000D',
|
792
|
+
0x80000417 => 'EOS Rebel SL2 / 200D / Kiss X9', #IB/42
|
782
793
|
);
|
783
794
|
|
784
795
|
my %canonQuality = (
|
@@ -7438,7 +7449,7 @@ my %ciMaxFocal = (
|
|
7438
7449
|
12 => '12 (5DS/5DSR)',
|
7439
7450
|
13 => '13 (80D)', #PH
|
7440
7451
|
14 => '14 (1300D)', #IB
|
7441
|
-
15 => '15 (77D/800D)', #IB
|
7452
|
+
15 => '15 (6DmkII/77D/200D/800D)', #IB
|
7442
7453
|
},
|
7443
7454
|
},
|
7444
7455
|
0x3f => { Name => 'WB_RGGBLevelsAsShot', Format => 'int16s[4]' },
|
@@ -7628,6 +7639,7 @@ my %ciMaxFocal = (
|
|
7628
7639
|
0 => 'Disable',
|
7629
7640
|
1 => 'Adjust all by the same amount',
|
7630
7641
|
2 => 'Adjust by lens',
|
7642
|
+
# 3 - seen this for EOS 77D, which doesn't have an AF Micro Adjust feature - PH
|
7631
7643
|
},
|
7632
7644
|
},
|
7633
7645
|
2 => {
|