exiftool_vendored 11.79.0 → 11.80.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 +13 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +2 -2
- data/bin/exiftool +21 -11
- data/bin/lib/Image/ExifTool.pm +26 -15
- data/bin/lib/Image/ExifTool/Canon.pm +23 -22
- data/bin/lib/Image/ExifTool/Nikon.pm +2 -1
- data/bin/lib/Image/ExifTool/README +9 -7
- data/bin/lib/Image/ExifTool/Samsung.pm +23 -24
- data/bin/lib/Image/ExifTool/Sony.pm +4 -1
- data/bin/lib/Image/ExifTool/TagLookup.pm +0 -1
- data/bin/lib/Image/ExifTool/TagNames.pod +1 -8
- data/bin/lib/Image/ExifTool/WriteQuickTime.pl +29 -9
- data/bin/lib/Image/ExifTool/WriteXMP.pl +3 -3
- data/bin/lib/Image/ExifTool/XMP.pm +2 -2
- 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: 31e5c0c123db980d212dfb83add8dd6fa6134d00
|
4
|
+
data.tar.gz: 551490100ae182f14dc7096534861c60b0e5aed9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b1ab651417aea07d82635d2152192dfb48f566d088fe36d717066ef5ab26e0d288501c7c331597f2d7fda28cd8fd513c42b2456cc59aca197917fa7790e1a643
|
7
|
+
data.tar.gz: 427b08f65545027e38e3078e50e8dab78adb4de80a3cd64094a0171556092ec9250b4049a5f6d6878664ba9bbf6582a78066e9a76eb399165b114fbd426de974
|
data/bin/Changes
CHANGED
@@ -7,6 +7,19 @@ RSS feed: https://exiftool.org/rss.xml
|
|
7
7
|
Note: The most recent production release is Version 11.70. (Other versions are
|
8
8
|
considered development releases, and are not uploaded to CPAN.)
|
9
9
|
|
10
|
+
Dec. 17, 2019 - Version 11.80
|
11
|
+
|
12
|
+
- Added a new Canon LensType
|
13
|
+
- Added a new Nikon Z LensID (thanks LibRaw)
|
14
|
+
- Added a few new Sony LensType values (thanks Jos Roost)
|
15
|
+
- Attempt to improve reliability of Samsung DepthMapWidth/Height decoding
|
16
|
+
- Updated a number of Canon-mount Tamron lens names to include the Tamron
|
17
|
+
model number
|
18
|
+
- Patched MOV/MP4 writer to allow a small amount of garbage at the end of a
|
19
|
+
file to be deleted when writing with the -m option
|
20
|
+
- Fixed bug where some Composite tags may not have taken priority over other
|
21
|
+
tags as they should have
|
22
|
+
|
10
23
|
Dec. 12, 2019 - Version 11.79
|
11
24
|
|
12
25
|
- Added support for AVIF files
|
data/bin/META.json
CHANGED
data/bin/META.yml
CHANGED
data/bin/README
CHANGED
@@ -105,8 +105,8 @@ your home directory, then you would type the following commands in a
|
|
105
105
|
terminal window to extract and run ExifTool:
|
106
106
|
|
107
107
|
cd ~/Desktop
|
108
|
-
gzip -dc Image-ExifTool-11.
|
109
|
-
cd Image-ExifTool-11.
|
108
|
+
gzip -dc Image-ExifTool-11.80.tar.gz | tar -xf -
|
109
|
+
cd Image-ExifTool-11.80
|
110
110
|
./exiftool t/images/ExifTool.jpg
|
111
111
|
|
112
112
|
Note: These commands extract meta information from one of the test images.
|
data/bin/exiftool
CHANGED
@@ -10,7 +10,7 @@
|
|
10
10
|
use strict;
|
11
11
|
require 5.004;
|
12
12
|
|
13
|
-
my $version = '11.
|
13
|
+
my $version = '11.80';
|
14
14
|
|
15
15
|
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
|
16
16
|
my $exeDir;
|
@@ -4481,15 +4481,15 @@ C<-1IPTC:City>). Use the B<-listg> option to list available group names by
|
|
4481
4481
|
family.
|
4482
4482
|
|
4483
4483
|
A special tag name of C<All> may be used to indicate all meta information
|
4484
|
-
(ie. B<-All>).
|
4485
|
-
extract all information in a group (but beware that unless the B<-a>
|
4486
|
-
is also used, some tags in the group may be suppressed by same-named
|
4487
|
-
other groups). The wildcard characters C<?> and C<*> may be used in
|
4488
|
-
name to match any single character and zero or more characters
|
4489
|
-
These may not be used in a group name, with the exception that
|
4490
|
-
of C<*> (or C<All>) may be used to extract all instances of a
|
4491
|
-
B<-a> was used).
|
4492
|
-
the command line of most systems to prevent shell globbing.
|
4484
|
+
(ie. B<-All>). This is particularly useful when a group name is specified
|
4485
|
+
to extract all information in a group (but beware that unless the B<-a>
|
4486
|
+
option is also used, some tags in the group may be suppressed by same-named
|
4487
|
+
tags in other groups). The wildcard characters C<?> and C<*> may be used in
|
4488
|
+
a tag name to match any single character and zero or more characters
|
4489
|
+
respectively. These may not be used in a group name, with the exception that
|
4490
|
+
a group name of C<*> (or C<All>) may be used to extract all instances of a
|
4491
|
+
tag (as if B<-a> was used). Note that arguments containing wildcards must
|
4492
|
+
be quoted on the command line of most systems to prevent shell globbing.
|
4493
4493
|
|
4494
4494
|
A C<#> may be appended to the tag name to disable the print conversion on a
|
4495
4495
|
per-tag basis (see the B<-n> option). This may also be used when writing or
|
@@ -4745,6 +4745,16 @@ in a string. Another difference is that a minor warning is generated if a
|
|
4745
4745
|
tag doesn't exist when interpolating its value in a string (with C<$>), but
|
4746
4746
|
isn't when copying the tag directly.
|
4747
4747
|
|
4748
|
+
Finally, the behaviour is different when a destination tag or group of
|
4749
|
+
C<All> is used. When copying directly, a destination group and/or tag name
|
4750
|
+
of C<All> writes to the same family 1 group and/or tag name as the source.
|
4751
|
+
But when interpolated in a string, the identity of the source tags are lost
|
4752
|
+
and the value is written to all possible groups/tags. For example, the
|
4753
|
+
string form must be used in the following command since the intent is to set
|
4754
|
+
the value of all existing date/time tags from C<CreateDate>:
|
4755
|
+
|
4756
|
+
exiftool "-time:all<$createdate" -wm w FILE
|
4757
|
+
|
4748
4758
|
=item B<-x> I<TAG> (B<-exclude>)
|
4749
4759
|
|
4750
4760
|
Exclude the specified tag. There may be multiple B<-x> options. This has
|
@@ -5180,7 +5190,7 @@ with this command:
|
|
5180
5190
|
|
5181
5191
|
produces output like this:
|
5182
5192
|
|
5183
|
-
-- Generated by ExifTool 11.
|
5193
|
+
-- Generated by ExifTool 11.80 --
|
5184
5194
|
File: a.jpg - 2003:10:31 15:44:19
|
5185
5195
|
(f/5.6, 1/60s, ISO 100)
|
5186
5196
|
File: b.jpg - 2006:05:23 11:57:38
|
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 $testLen);
|
29
29
|
|
30
|
-
$VERSION = '11.
|
30
|
+
$VERSION = '11.80';
|
31
31
|
$RELEASE = '';
|
32
32
|
@ISA = qw(Exporter);
|
33
33
|
%EXPORT_TAGS = (
|
@@ -3401,7 +3401,8 @@ sub BuildCompositeTags($)
|
|
3401
3401
|
my $compTable = GetTagTable('Image::ExifTool::Composite');
|
3402
3402
|
my @tagList = sort keys %$compTable;
|
3403
3403
|
my $rawValue = $$self{VALUE};
|
3404
|
-
my
|
3404
|
+
my $compKeys = $$self{COMP_KEYS};
|
3405
|
+
my (%cache, $allBuilt);
|
3405
3406
|
|
3406
3407
|
for (;;) {
|
3407
3408
|
my (%notBuilt, $tag, @deferredTags);
|
@@ -3503,6 +3504,11 @@ COMPOSITE_TAG:
|
|
3503
3504
|
if ($docNum) {
|
3504
3505
|
if ($found) {
|
3505
3506
|
$$self{DOC_NUM} = $docNum;
|
3507
|
+
# save pointers to all used tag keys
|
3508
|
+
foreach (keys %tagKey) {
|
3509
|
+
$$compKeys{$_} or $$compKeys{$_} = [ ];
|
3510
|
+
push @{$$compKeys{$tagKey{$_}}}, [ \%tagKey, $_ ];
|
3511
|
+
}
|
3506
3512
|
$self->FoundTag($tagInfo, \%tagKey);
|
3507
3513
|
delete $$self{DOC_NUM};
|
3508
3514
|
}
|
@@ -3516,19 +3522,14 @@ COMPOSITE_TAG:
|
|
3516
3522
|
# can be replaced (also eliminates keys with
|
3517
3523
|
# instance numbers which can't be replaced either)
|
3518
3524
|
next unless $compositeID{$tagKey{$_}};
|
3519
|
-
|
3520
|
-
|
3521
|
-
|
3525
|
+
}
|
3526
|
+
# save pointers to all used tag keys
|
3527
|
+
foreach (keys %tagKey) {
|
3528
|
+
$$compKeys{$_} or $$compKeys{$_} = [ ];
|
3529
|
+
push @{$$compKeys{$tagKey{$_}}}, [ \%tagKey, $_ ];
|
3522
3530
|
}
|
3523
3531
|
# save reference to tag key lookup as value for Composite tag
|
3524
3532
|
my $key = $self->FoundTag($tagInfo, \%tagKey);
|
3525
|
-
# check to see if we just replaced one of the tag keys we Require'd
|
3526
|
-
if (defined $key and $tagsUsed{$key}) {
|
3527
|
-
foreach (@{$tagsUsed{$key}}) {
|
3528
|
-
$$_ = $$self{MOVED_KEY}; # replace with new tag key
|
3529
|
-
}
|
3530
|
-
delete $tagsUsed{$key}; # can't be replaced again
|
3531
|
-
}
|
3532
3533
|
} elsif (not defined $found) {
|
3533
3534
|
delete $notBuilt{$tagName}; # tag can't be built anyway
|
3534
3535
|
}
|
@@ -3733,6 +3734,7 @@ sub Init($)
|
|
3733
3734
|
$$self{WRITTEN} = { }; # list of tags written (selected tags only)
|
3734
3735
|
$$self{FORCE_WRITE}= { }; # ForceWrite lookup (set from ForceWrite tag)
|
3735
3736
|
$$self{FOUND_DIR} = { }; # hash of directory names found in file
|
3737
|
+
$$self{COMP_KEYS} = { }; # lookup for tag keys used in Composite tags
|
3736
3738
|
$$self{PATH} = [ ]; # current subdirectory path in file when reading
|
3737
3739
|
$$self{NUM_FOUND} = 0; # total number of tags found (incl. duplicates)
|
3738
3740
|
$$self{CHANGED} = 0; # number of tags changed (writer only)
|
@@ -7867,10 +7869,12 @@ sub FoundTag($$$;@)
|
|
7867
7869
|
} else {
|
7868
7870
|
$priority = 1; # the normal default
|
7869
7871
|
}
|
7870
|
-
if ($priority >= $oldPriority and not $$self{DOC_NUM}
|
7872
|
+
if ($priority >= $oldPriority and (not $$self{DOC_NUM} or
|
7873
|
+
($$self{TAG_EXTRA}{$tag} and $$self{TAG_EXTRA}{$tag}{G3} and
|
7874
|
+
$$self{DOC_NUM} eq $$self{TAG_EXTRA}{$tag}{G3})) and not $noListDel)
|
7875
|
+
{
|
7871
7876
|
# move existing tag out of the way since this tag is higher priority
|
7872
7877
|
# (NOTE: any new members added here must also be added to DeleteTag())
|
7873
|
-
$$self{MOVED_KEY} = $nextTag; # used in BuildCompositeTags()
|
7874
7878
|
$$self{PRIORITY}{$nextTag} = $$self{PRIORITY}{$tag};
|
7875
7879
|
$$valueHash{$nextTag} = $$valueHash{$tag};
|
7876
7880
|
$$self{FILE_ORDER}{$nextTag} = $$self{FILE_ORDER}{$tag};
|
@@ -7884,6 +7888,12 @@ sub FoundTag($$$;@)
|
|
7884
7888
|
delete $$self{BOTH}{$tag};
|
7885
7889
|
# update tag key for list if necessary
|
7886
7890
|
$$self{LIST_TAGS}{$oldInfo} = $nextTag if $$self{LIST_TAGS}{$oldInfo};
|
7891
|
+
# update this key if used in a Composite tag
|
7892
|
+
if ($$self{COMP_KEYS}{$tag}) {
|
7893
|
+
$$_[0]{$$_[1]} = $nextTag foreach @{$$self{COMP_KEYS}{$tag}};
|
7894
|
+
$$self{COMP_KEYS}{$nextTag} = $$self{COMP_KEYS}{$tag};
|
7895
|
+
delete $$self{COMP_KEYS}{$tag};
|
7896
|
+
}
|
7887
7897
|
} else {
|
7888
7898
|
$tag = $nextTag; # don't override the existing tag
|
7889
7899
|
}
|
@@ -8338,7 +8348,8 @@ sub ProcessBinaryData($$$)
|
|
8338
8348
|
# hook to allow format, etc to be set dynamically
|
8339
8349
|
if (defined $$tagInfo{Hook}) {
|
8340
8350
|
my $oldVarSize = $varSize;
|
8341
|
-
|
8351
|
+
my $pos = $entry + $offset;
|
8352
|
+
#### eval Hook ($format, $varSize, $size, $dataPt, $pos)
|
8342
8353
|
eval $$tagInfo{Hook};
|
8343
8354
|
# save variable size data if required for writing (in case changed by Hook)
|
8344
8355
|
if ($$dirInfo{VarFormatData}) {
|
@@ -88,7 +88,7 @@ sub ProcessCTMD($$$);
|
|
88
88
|
sub ProcessExifInfo($$$);
|
89
89
|
sub SwapWords($);
|
90
90
|
|
91
|
-
$VERSION = '4.
|
91
|
+
$VERSION = '4.30';
|
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)
|
@@ -184,7 +184,7 @@ $VERSION = '4.29';
|
|
184
184
|
36 => 'Canon EF 38-76mm f/4.5-5.6', #32
|
185
185
|
37 => 'Canon EF 35-80mm f/4-5.6 or Tamron Lens', #32
|
186
186
|
37.1 => 'Tamron 70-200mm f/2.8 Di LD IF Macro', #PH
|
187
|
-
37.2 => 'Tamron AF 28-300mm f/3.5-6.3 XR Di VC LD Aspherical [IF] Macro
|
187
|
+
37.2 => 'Tamron AF 28-300mm f/3.5-6.3 XR Di VC LD Aspherical [IF] Macro (A20)', #38
|
188
188
|
37.3 => 'Tamron SP AF 17-50mm f/2.8 XR Di II VC LD Aspherical [IF]', #34
|
189
189
|
37.4 => 'Tamron AF 18-270mm f/3.5-6.3 Di II VC LD Aspherical [IF] Macro', #forum2937
|
190
190
|
38 => 'Canon EF 80-200mm f/4.5-5.6', #32
|
@@ -192,7 +192,7 @@ $VERSION = '4.29';
|
|
192
192
|
40 => 'Canon EF 28-80mm f/3.5-5.6',
|
193
193
|
41 => 'Canon EF 28-90mm f/4-5.6', #32
|
194
194
|
42 => 'Canon EF 28-200mm f/3.5-5.6 or Tamron Lens', #32
|
195
|
-
42.1 => 'Tamron AF 28-300mm f/3.5-6.3 XR Di VC LD Aspherical [IF] Macro
|
195
|
+
42.1 => 'Tamron AF 28-300mm f/3.5-6.3 XR Di VC LD Aspherical [IF] Macro (A20)', #15
|
196
196
|
43 => 'Canon EF 28-105mm f/4-5.6', #10
|
197
197
|
44 => 'Canon EF 90-300mm f/4.5-5.6', #32
|
198
198
|
45 => 'Canon EF-S 18-55mm f/3.5-5.6 [II]', #PH (same ID for version II, ref 20)
|
@@ -220,13 +220,13 @@ $VERSION = '4.29';
|
|
220
220
|
112 => 'Sigma 28mm f/1.5 FF High-speed Prime or other Sigma Lens', #IB
|
221
221
|
112.1 => 'Sigma 40mm f/1.5 FF High-speed Prime', #IB
|
222
222
|
112.2 => 'Sigma 105mm f/1.5 FF High-speed Prime', #IB
|
223
|
-
117 => 'Tamron 35-150mm f/2.8-4.0 Di VC OSD or other Tamron Lens', #IB
|
224
|
-
117.1 => 'Tamron SP 35mm f/1.4 Di USD', #
|
223
|
+
117 => 'Tamron 35-150mm f/2.8-4.0 Di VC OSD (A043) or other Tamron Lens', #IB
|
224
|
+
117.1 => 'Tamron SP 35mm f/1.4 Di USD (F045)', #Exiv2#1064
|
225
225
|
124 => 'Canon MP-E 65mm f/2.8 1-5x Macro Photo', #9
|
226
226
|
125 => 'Canon TS-E 24mm f/3.5L',
|
227
227
|
126 => 'Canon TS-E 45mm f/2.8', #15
|
228
228
|
127 => 'Canon TS-E 90mm f/2.8 or Tamron Lens', #15
|
229
|
-
127.1 => 'Tamron 18-200mm f/3.5-6.3 Di II VC', #TomLachecki
|
229
|
+
127.1 => 'Tamron 18-200mm f/3.5-6.3 Di II VC (B018)', #TomLachecki
|
230
230
|
129 => 'Canon EF 300mm f/2.8L USM', #32
|
231
231
|
130 => 'Canon EF 50mm f/1.0L USM', #10/15
|
232
232
|
131 => 'Canon EF 28-80mm f/2.8-4L USM or Sigma Lens', #32
|
@@ -244,7 +244,7 @@ $VERSION = '4.29';
|
|
244
244
|
134 => 'Canon EF 600mm f/4L IS USM', #15
|
245
245
|
135 => 'Canon EF 200mm f/1.8L USM',
|
246
246
|
136 => 'Canon EF 300mm f/2.8L USM',
|
247
|
-
136.1 => 'Tamron SP 15-30mm f/2.8 Di VC USD', #TomLachecki
|
247
|
+
136.1 => 'Tamron SP 15-30mm f/2.8 Di VC USD (A012)', #TomLachecki
|
248
248
|
137 => 'Canon EF 85mm f/1.2L USM or Sigma or Tamron Lens', #10
|
249
249
|
137.1 => 'Sigma 18-50mm f/2.8-4.5 DC OS HSM', #PH
|
250
250
|
137.2 => 'Sigma 50-200mm f/4-5.6 DC OS HSM', #PH
|
@@ -254,10 +254,10 @@ $VERSION = '4.29';
|
|
254
254
|
137.6 => 'Sigma 17-70mm f/2.8-4 DC Macro OS HSM | C', #forum2819 (Contemporary version has this ID - PH)
|
255
255
|
137.7 => 'Sigma 17-50mm f/2.8 OS HSM', #47
|
256
256
|
137.8 => 'Sigma 18-200mm f/3.5-6.3 DC OS HSM [II]', #PH
|
257
|
-
137.9 => 'Tamron AF 18-270mm f/3.5-6.3 Di II VC PZD', #
|
257
|
+
137.9 => 'Tamron AF 18-270mm f/3.5-6.3 Di II VC PZD (B008)', #forum3090
|
258
258
|
'137.10' => 'Sigma 8-16mm f/4.5-5.6 DC HSM', #50-Zwielicht
|
259
|
-
'137.11' => 'Tamron SP 17-50mm f/2.8 XR Di II VC', #50
|
260
|
-
'137.12' => 'Tamron SP 60mm f/2 Macro Di II', #50
|
259
|
+
'137.11' => 'Tamron SP 17-50mm f/2.8 XR Di II VC (B005)', #50
|
260
|
+
'137.12' => 'Tamron SP 60mm f/2 Macro Di II (G005)', #50
|
261
261
|
'137.13' => 'Sigma 10-20mm f/3.5 EX DC HSM', #Gerald Erdmann
|
262
262
|
'137.14' => 'Tamron SP 24-70mm f/2.8 Di VC USD', #PH
|
263
263
|
'137.15' => 'Sigma 18-35mm f/1.8 DC HSM', #David Monro
|
@@ -292,7 +292,7 @@ $VERSION = '4.29';
|
|
292
292
|
153 => 'Canon EF 35-350mm f/3.5-5.6L USM or Sigma or Tamron Lens', #PH
|
293
293
|
153.1 => 'Sigma 50-500mm f/4-6.3 APO HSM EX', #15
|
294
294
|
153.2 => 'Tamron AF 28-300mm f/3.5-6.3 XR LD Aspherical [IF] Macro',
|
295
|
-
153.3 => 'Tamron AF 18-200mm f/3.5-6.3 XR Di II LD Aspherical [IF] Macro
|
295
|
+
153.3 => 'Tamron AF 18-200mm f/3.5-6.3 XR Di II LD Aspherical [IF] Macro (A14)', #15
|
296
296
|
153.4 => 'Tamron 18-250mm f/3.5-6.3 Di II LD Aspherical [IF] Macro', #PH
|
297
297
|
154 => 'Canon EF 20mm f/2.8 USM or Zeiss Lens', #15
|
298
298
|
154.1 => 'Zeiss Milvus 21mm f/2.8', #IB
|
@@ -301,8 +301,8 @@ $VERSION = '4.29';
|
|
301
301
|
155 => 'Canon EF 85mm f/1.8 USM or Sigma Lens',
|
302
302
|
155.1 => 'Sigma 14mm f/1.8 DG HSM | A', #IB (A017)
|
303
303
|
156 => 'Canon EF 28-105mm f/3.5-4.5 USM or Tamron Lens',
|
304
|
-
156.1 => 'Tamron SP 70-300mm f/4-5.6 Di VC USD', #PH
|
305
|
-
156.2 => 'Tamron SP AF 28-105mm f/2.8 LD Aspherical IF', #JR
|
304
|
+
156.1 => 'Tamron SP 70-300mm f/4-5.6 Di VC USD (A005)', #PH
|
305
|
+
156.2 => 'Tamron SP AF 28-105mm f/2.8 LD Aspherical IF (176D)', #JR
|
306
306
|
160 => 'Canon EF 20-35mm f/3.5-4.5 USM or Tamron or Tokina Lens',
|
307
307
|
160.1 => 'Tamron AF 19-35mm f/3.5-4.5', #44
|
308
308
|
160.2 => 'Tokina AT-X 124 AF Pro DX 12-24mm f/4', #49
|
@@ -315,7 +315,7 @@ $VERSION = '4.29';
|
|
315
315
|
161.3 => 'Sigma 24-60mm f/2.8 EX DG', #PH (http://www.lensrentals.com/blog/2012/08/canon-illumination-correction-and-third-party-lenses)
|
316
316
|
161.4 => 'Tamron AF 17-50mm f/2.8 Di-II LD Aspherical', #40
|
317
317
|
161.5 => 'Tamron 90mm f/2.8',
|
318
|
-
161.6 => 'Tamron SP AF 17-35mm f/2.8-4 Di LD Aspherical IF', #IB
|
318
|
+
161.6 => 'Tamron SP AF 17-35mm f/2.8-4 Di LD Aspherical IF (A05)', #IB
|
319
319
|
161.7 => 'Tamron SP AF 28-75mm f/2.8 XR Di LD Aspherical [IF] Macro', #IB/NJ
|
320
320
|
161.8 => 'Tokina AT-X 24-70mm f/2.8 PRO FX (IF)', #IB
|
321
321
|
162 => 'Canon EF 200mm f/2.8L USM', #32
|
@@ -419,10 +419,10 @@ $VERSION = '4.29';
|
|
419
419
|
211 => 'Canon EF 28-200mm f/3.5-5.6 USM', #15
|
420
420
|
212 => 'Canon EF 28-105mm f/4-5.6 USM', #15
|
421
421
|
213 => 'Canon EF 90-300mm f/4.5-5.6 USM or Tamron Lens',
|
422
|
-
213.1 => 'Tamron SP 150-600mm f/5-6.3 Di VC USD', #
|
423
|
-
213.2 => 'Tamron 16-300mm f/3.5-6.3 Di II VC PZD Macro', #PH
|
424
|
-
213.3 => 'Tamron SP 35mm f/1.8 Di VC USD', #PH
|
425
|
-
213.4 => 'Tamron SP 45mm f/1.8 Di VC USD', #PH
|
422
|
+
213.1 => 'Tamron SP 150-600mm f/5-6.3 Di VC USD (A011)', #forum5565
|
423
|
+
213.2 => 'Tamron 16-300mm f/3.5-6.3 Di II VC PZD Macro (B016)', #PH
|
424
|
+
213.3 => 'Tamron SP 35mm f/1.8 Di VC USD (F012)', #PH
|
425
|
+
213.4 => 'Tamron SP 45mm f/1.8 Di VC USD (F013)', #PH
|
426
426
|
214 => 'Canon EF-S 18-55mm f/3.5-5.6 USM', #PH/34
|
427
427
|
215 => 'Canon EF 55-200mm f/4.5-5.6 II USM',
|
428
428
|
217 => 'Tamron AF 18-270mm f/3.5-6.3 Di II VC PZD', #47
|
@@ -503,7 +503,7 @@ $VERSION = '4.29';
|
|
503
503
|
493.1 => 'Canon EF 24-105mm f/4L IS USM', #PH (should recheck this)
|
504
504
|
494 => 'Canon EF 600mm f/4L IS II USM', #PH
|
505
505
|
495 => 'Canon EF 24-70mm f/2.8L II USM or Sigma Lens', #PH
|
506
|
-
495.1 => 'Sigma 24-70mm
|
506
|
+
495.1 => 'Sigma 24-70mm f/2.8 DG OS HSM | A', #IB (017)
|
507
507
|
496 => 'Canon EF 200-400mm f/4L IS USM', #PH
|
508
508
|
499 => 'Canon EF 200-400mm f/4L IS USM + 1.4x', #50
|
509
509
|
502 => 'Canon EF 28mm f/2.8 IS USM or Tamron Lens', #PH
|
@@ -514,15 +514,16 @@ $VERSION = '4.29';
|
|
514
514
|
506 => 'Canon EF 400mm f/4 DO IS II USM', #42
|
515
515
|
507 => 'Canon EF 16-35mm f/4L IS USM', #42
|
516
516
|
508 => 'Canon EF 11-24mm f/4L USM or Tamron Lens', #PH
|
517
|
-
508.1 => 'Tamron 10-24mm f/3.5-4.5 Di II VC HLD', #PH
|
518
|
-
624 => 'Sigma 70-200mm
|
517
|
+
508.1 => 'Tamron 10-24mm f/3.5-4.5 Di II VC HLD (B023)', #PH
|
518
|
+
624 => 'Sigma 70-200mm f/2.8 DG OS HSM | S', #IB (018)
|
519
519
|
747 => 'Canon EF 100-400mm f/4.5-5.6L IS II USM or Tamron Lens', #JR
|
520
520
|
747.1 => 'Tamron SP 150-600mm f/5-6.3 Di VC USD G2', #50
|
521
521
|
748 => 'Canon EF 100-400mm f/4.5-5.6L IS II USM + 1.4x or Tamron Lens', #JR (1.4x Mk III)
|
522
522
|
748.1 => 'Tamron 100-400mm f/4.5-6.3 Di VC USD A035E + 1.4x', #IB
|
523
523
|
748.2 => 'Tamron 70-210mm f/4 Di VC USD (A034) + 2x', #IB
|
524
524
|
749 => 'Tamron 100-400mm f/4.5-6.3 Di VC USD A035E + 2x', #IB
|
525
|
-
750 => 'Canon EF 35mm f/1.4L II USM', #42
|
525
|
+
750 => 'Canon EF 35mm f/1.4L II USM or Tamron Lens', #42
|
526
|
+
750.1 => 'Tamron SP 85mm f/1.8 Di VC USD (F016)', #Exiv2#1072
|
526
527
|
751 => 'Canon EF 16-35mm f/2.8L III USM', #42
|
527
528
|
752 => 'Canon EF 24-105mm f/4L IS II USM', #42
|
528
529
|
753 => 'Canon EF 85mm f/1.4L IS USM', #42
|
@@ -61,7 +61,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
61
61
|
use Image::ExifTool::Exif;
|
62
62
|
use Image::ExifTool::GPS;
|
63
63
|
|
64
|
-
$VERSION = '3.
|
64
|
+
$VERSION = '3.76';
|
65
65
|
|
66
66
|
sub LensIDConv($$$);
|
67
67
|
sub ProcessNikonAVI($$$);
|
@@ -4493,6 +4493,7 @@ my %nikonFocalConversions = (
|
|
4493
4493
|
12 => 'Nikkor Z DX 50-250mm f/4.5-6.3 VR',
|
4494
4494
|
13 => 'Nikkor Z 24-70mm f/2.8 S',
|
4495
4495
|
14 => 'Nikkor Z 85mm f/1.8 S',
|
4496
|
+
15 => 'Nikkor Z 24mm f/1.8 S', #IB
|
4496
4497
|
},
|
4497
4498
|
},
|
4498
4499
|
0x36 => {
|
@@ -910,13 +910,15 @@ numerical, and generated automatically otherwise.
|
|
910
910
|
|
911
911
|
Hook : [BinaryData tags only] Expression to be evaluated when
|
912
912
|
extracting tag to allow dynamic Format, etc for BinaryData
|
913
|
-
tags. May access $self,
|
914
|
-
|
915
|
-
|
916
|
-
|
917
|
-
a
|
918
|
-
|
919
|
-
|
913
|
+
tags. May access $self, $size (the full size of the binary
|
914
|
+
data record), $dataPt (reference to the data block), and $pos
|
915
|
+
(position of this tag in the data block), and assign a new
|
916
|
+
value to $format to dynamically set the tag format, and/or
|
917
|
+
increment $varSize to add a byte offset to subsequent tags.
|
918
|
+
$varSize may be set to a large number to effectively abort
|
919
|
+
processing of the directory after this tag. Must have
|
920
|
+
corresponding DATAMEMBER entry in writable tables. Must not
|
921
|
+
have Unknown set.
|
920
922
|
|
921
923
|
LargeTag : [BinaryData tags only] Flag to indicate that the data for this
|
922
924
|
tag is large, and that it shouldn't be stored in the %val
|
@@ -22,7 +22,7 @@ use vars qw($VERSION %samsungLensTypes);
|
|
22
22
|
use Image::ExifTool qw(:DataAccess :Utils);
|
23
23
|
use Image::ExifTool::Exif;
|
24
24
|
|
25
|
-
$VERSION = '1.
|
25
|
+
$VERSION = '1.48';
|
26
26
|
|
27
27
|
sub WriteSTMN($$$);
|
28
28
|
sub ProcessINFO($$$);
|
@@ -1001,35 +1001,34 @@ my %formatMinMax = (
|
|
1001
1001
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
1002
1002
|
FIRST_ENTRY => 0,
|
1003
1003
|
FORMAT => 'int32u',
|
1004
|
-
|
1005
|
-
|
1006
|
-
|
1007
|
-
|
1008
|
-
|
1009
|
-
|
1010
|
-
|
1011
|
-
|
1012
|
-
|
1013
|
-
|
1014
|
-
|
1015
|
-
|
1016
|
-
|
1004
|
+
# This is a pain, but the DepthMapWidth/Height move around in this record.
|
1005
|
+
# In all of my samples so far, the bytes "01 00 ff ff" precede these tags.
|
1006
|
+
# I have seen this byte sequence at offsets 32, 60, 64 and 68, so look for
|
1007
|
+
# it in bytes 32-95, and use its location to adjust the tag positions
|
1008
|
+
8 => {
|
1009
|
+
Name => 'DualShotDummy',
|
1010
|
+
Format => 'undef[64]',
|
1011
|
+
Hidden => 1,
|
1012
|
+
Hook => q{
|
1013
|
+
if ($size >= 96) {
|
1014
|
+
my $tmp = substr($$dataPt, $pos, 64);
|
1015
|
+
if ($tmp =~ /\x01\0\xff\xff/g and not pos($tmp) % 4) {
|
1016
|
+
$$self{DepthMapTagPos} = pos($tmp);
|
1017
|
+
$varSize += $$self{DepthMapTagPos} - 32;
|
1018
|
+
}
|
1019
|
+
}
|
1020
|
+
},
|
1021
|
+
RawConv => 'undef', # not a real tag
|
1017
1022
|
},
|
1018
1023
|
16 => {
|
1019
1024
|
Name => 'DepthMapWidth',
|
1020
|
-
Condition => '$$self{
|
1025
|
+
Condition => '$$self{DepthMapTagPos}',
|
1026
|
+
Notes => 'index varies depending on model',
|
1021
1027
|
},
|
1022
1028
|
17 => {
|
1023
1029
|
Name => 'DepthMapHeight',
|
1024
|
-
Condition => '$$self{
|
1025
|
-
|
1026
|
-
18 => {
|
1027
|
-
Name => 'DepthMapWidth',
|
1028
|
-
Condition => '$$self{DualShotVersion} > 4',
|
1029
|
-
},
|
1030
|
-
19 => {
|
1031
|
-
Name => 'DepthMapHeight',
|
1032
|
-
Condition => '$$self{DualShotVersion} > 4',
|
1030
|
+
Condition => '$$self{DepthMapTagPos}',
|
1031
|
+
Notes => 'index varies depending on model',
|
1033
1032
|
},
|
1034
1033
|
);
|
1035
1034
|
|
@@ -34,7 +34,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
34
34
|
use Image::ExifTool::Exif;
|
35
35
|
use Image::ExifTool::Minolta;
|
36
36
|
|
37
|
-
$VERSION = '3.
|
37
|
+
$VERSION = '3.19';
|
38
38
|
|
39
39
|
sub ProcessSRF($$$);
|
40
40
|
sub ProcessSR2($$$);
|
@@ -176,6 +176,7 @@ sub PrintInvLensSpec($;$$);
|
|
176
176
|
49457 => 'Tamron 28-75mm F2.8 Di III RXD', #JR (Model A036)
|
177
177
|
49458 => 'Tamron 17-28mm F2.8 Di III RXD', #JR (Model A046)
|
178
178
|
49459 => 'Tamron 35mm F2.8 Di III OSD M1:2', #IB (Model F053)
|
179
|
+
49460 => 'Tamron 24mm F2.8 Di III OSD M1:2', #JR (Model F051)
|
179
180
|
|
180
181
|
49712 => 'Tokina FiRIN 20mm F2 FE AF', # (firmware Ver.01)
|
181
182
|
49713 => 'Tokina FiRIN 100mm F2.8 FE MACRO', # (firmware Ver.01)
|
@@ -215,6 +216,7 @@ sub PrintInvLensSpec($;$$);
|
|
215
216
|
50999 => 'Voigtlander COLOR-SKOPAR 21mm F3.5 Aspherical', #IB
|
216
217
|
51000 => 'Voigtlander NOKTON 50mm F1.2 Aspherical', #JR
|
217
218
|
51001 => 'Voigtlander NOKTON 21mm F1.4 Aspherical', #JR
|
219
|
+
51002 => 'Voigtlander APO-LANTHAR 50mm F2 Aspherical', #JR
|
218
220
|
|
219
221
|
# lenses listed in the Sigma MC-11 list, but not yet seen:
|
220
222
|
# 504xx => 'Sigma 18-200mm F3.5-6.3 DC MACRO OS HSM | C + MC-11', # (014)
|
@@ -225,6 +227,7 @@ sub PrintInvLensSpec($;$$);
|
|
225
227
|
51505.1 => 'Samyang AF 35mm F2.8', #PH (also 32794)
|
226
228
|
51507 => 'Samyang AF 35mm F1.4', #IB
|
227
229
|
51508 => 'Samyang AF 45mm F1.8',
|
230
|
+
51510 => 'Samyang AF 18mm F2.8', #JR
|
228
231
|
);
|
229
232
|
|
230
233
|
# ExposureProgram values (ref PH, mainly decoded from A200)
|
@@ -12,7 +12,7 @@ meta information extracted from or written to a file.
|
|
12
12
|
=head1 TAG TABLES
|
13
13
|
|
14
14
|
The tables listed below give the names of all tags recognized by ExifTool.
|
15
|
-
They contain a total of
|
15
|
+
They contain a total of 23192 tags, with 15163 unique tag names.
|
16
16
|
|
17
17
|
B<Tag ID>, B<Index#> or B<Sequence> is given in the first column of each
|
18
18
|
table. A B<Tag ID> is the computer-readable equivalent of a tag name, and
|
@@ -16054,17 +16054,10 @@ as the Galaxy S4 and Tab S.
|
|
16054
16054
|
|
16055
16055
|
=head3 Samsung DualShotExtra Tags
|
16056
16056
|
|
16057
|
-
These tags tested only for DualShotVersion numbers 1, 4 and 5.
|
16058
|
-
|
16059
16057
|
Index4 Tag Name Writable
|
16060
16058
|
------ -------- --------
|
16061
|
-
0 DualShotVersion no
|
16062
|
-
9 DepthMapWidth no
|
16063
|
-
10 DepthMapHeight no
|
16064
16059
|
16 DepthMapWidth no
|
16065
16060
|
17 DepthMapHeight no
|
16066
|
-
18 DepthMapWidth no
|
16067
|
-
19 DepthMapHeight no
|
16068
16061
|
|
16069
16062
|
=head3 Samsung SingleShotMeta Tags
|
16070
16063
|
|
@@ -82,6 +82,8 @@ my %qtFormat = (
|
|
82
82
|
);
|
83
83
|
my $undLang = 0x55c4; # numeric code for default ('und') language
|
84
84
|
|
85
|
+
my $maxReadLen = 100000000; # maximum size of atom to read into memory (100 MB)
|
86
|
+
|
85
87
|
# boxes that may exist in an "empty" Meta box:
|
86
88
|
my %emptyMeta = (
|
87
89
|
hdlr => 'Handler', 'keys' => 'Keys', lang => 'Language', ctry => 'Country', free => 'Free',
|
@@ -849,17 +851,35 @@ sub WriteQuickTime($$$)
|
|
849
851
|
}
|
850
852
|
|
851
853
|
# read the atom data
|
854
|
+
my $got;
|
852
855
|
if (not $size) {
|
853
856
|
$buff = '';
|
854
|
-
|
855
|
-
|
856
|
-
|
857
|
-
$
|
858
|
-
|
859
|
-
|
860
|
-
|
861
|
-
$
|
862
|
-
|
857
|
+
$got = 0;
|
858
|
+
} else {
|
859
|
+
# read the atom data (but only first 64kB if data is huge)
|
860
|
+
$got = $raf->Read($buff, $size > $maxReadLen ? 0x10000 : $size);
|
861
|
+
}
|
862
|
+
if ($got != $size) {
|
863
|
+
# ignore up to 256 bytes of garbage at end of file
|
864
|
+
if ($got <= 256 and $size >= 1024 and $tag ne 'mdat') {
|
865
|
+
my $bytes = $got + length $hdr;
|
866
|
+
if ($$et{OPTIONS}{IgnoreMinorErrors}) {
|
867
|
+
$et->Warn("Deleted garbage at end of file ($bytes bytes)");
|
868
|
+
$buff = $hdr = '';
|
869
|
+
} else {
|
870
|
+
$et->Error("Possible garbage at end of file ($bytes bytes)", 1);
|
871
|
+
return $rtnVal;
|
872
|
+
}
|
873
|
+
} else {
|
874
|
+
$tag = PrintableTagID($tag,3);
|
875
|
+
if ($size > $maxReadLen and $got == 0x10000) {
|
876
|
+
my $mb = int($size / 0x100000 + 0.5);
|
877
|
+
$et->Error("'${tag}' atom is too large for rewriting ($mb MB)");
|
878
|
+
} else {
|
879
|
+
$et->Error("Truncated '${tag}' atom");
|
880
|
+
}
|
881
|
+
return $rtnVal;
|
882
|
+
}
|
863
883
|
}
|
864
884
|
# save the handler type for this track
|
865
885
|
if ($tag eq 'hdlr' and length $buff >= 12) {
|
@@ -859,7 +859,7 @@ sub WriteXMP($$;$)
|
|
859
859
|
#
|
860
860
|
if (%{$$et{DEL_GROUP}} and (grep /^XMP-.+$/, keys %{$$et{DEL_GROUP}} or
|
861
861
|
# (logic is a bit more complex for group names in exiftool XML files)
|
862
|
-
grep m{^http://ns.exiftool.ca/}, values %nsUsed))
|
862
|
+
grep m{^http://ns.exiftool.(?:ca|org)/}, values %nsUsed))
|
863
863
|
{
|
864
864
|
my $del = $$et{DEL_GROUP};
|
865
865
|
my $path;
|
@@ -870,7 +870,7 @@ sub WriteXMP($$;$)
|
|
870
870
|
$ns = $stdXlatNS{$ns} if $stdXlatNS{$ns};
|
871
871
|
my ($grp, @g);
|
872
872
|
# no "XMP-" added to most groups in exiftool RDF/XML output file
|
873
|
-
if ($nsUsed{$ns} and (@g = ($nsUsed{$ns} =~ m{^http://ns.exiftool.ca/(.*?)/(.*?)/}))) {
|
873
|
+
if ($nsUsed{$ns} and (@g = ($nsUsed{$ns} =~ m{^http://ns.exiftool.(?:ca|org)/(.*?)/(.*?)/}))) {
|
874
874
|
if ($g[1] =~ /^\d/) {
|
875
875
|
$grp = "XML-$g[0]";
|
876
876
|
#(all XML-* groups stored as uppercase DEL_GROUP key)
|
@@ -1461,7 +1461,7 @@ sub WriteXMP($$;$)
|
|
1461
1461
|
my @ns = sort keys %nsCur;
|
1462
1462
|
$long[-2] .= "$nl$sp<$prop rdf:about='${about}'";
|
1463
1463
|
# generate et:toolkit attribute if this is an exiftool RDF/XML output file
|
1464
|
-
if (@ns and $nsCur{$ns[0]} =~ m{^http://ns.exiftool.ca/}) {
|
1464
|
+
if (@ns and $nsCur{$ns[0]} =~ m{^http://ns.exiftool.(?:ca|org)/}) {
|
1465
1465
|
$long[-2] .= "\n$sp${sp}xmlns:et='http://ns.exiftool.ca/1.0/'" .
|
1466
1466
|
" et:toolkit='Image::ExifTool $Image::ExifTool::VERSION'";
|
1467
1467
|
}
|
@@ -186,7 +186,7 @@ my %xmpNS = (
|
|
186
186
|
);
|
187
187
|
|
188
188
|
# build reverse namespace lookup
|
189
|
-
my %uri2ns;
|
189
|
+
my %uri2ns = ( 'http://ns.exiftool.org/1.0/' => 'et' ); # (allow exiftool.org as well as exiftool.ca)
|
190
190
|
{
|
191
191
|
my $ns;
|
192
192
|
foreach $ns (keys %nsURI) {
|
@@ -3103,7 +3103,7 @@ NoLoop:
|
|
3103
3103
|
|
3104
3104
|
# add tag Namespace entry for tags in variable-namespace tables
|
3105
3105
|
$$tagInfo{Namespace} = $xns if $xns;
|
3106
|
-
if ($$et{curURI}{$ns} and $$et{curURI}{$ns} =~ m{^http://ns.exiftool.ca/(.*?)/(.*?)/}) {
|
3106
|
+
if ($$et{curURI}{$ns} and $$et{curURI}{$ns} =~ m{^http://ns.exiftool.(?:ca|org)/(.*?)/(.*?)/}) {
|
3107
3107
|
my %grps = ( 0 => $1, 1 => $2 );
|
3108
3108
|
# apply a little magic to recover original group names
|
3109
3109
|
# from this exiftool-written RDF/XML file
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: exiftool_vendored
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 11.
|
4
|
+
version: 11.80.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matthew McEachen
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2019-12-
|
12
|
+
date: 2019-12-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: exiftool
|