exiftool_vendored 11.54.0 → 11.55.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 +15 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +2 -2
- data/bin/exiftool +35 -11
- data/bin/lib/Image/ExifTool.pm +66 -31
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +1 -1
- data/bin/lib/Image/ExifTool/Canon.pm +2 -1
- data/bin/lib/Image/ExifTool/Kodak.pm +2 -1
- data/bin/lib/Image/ExifTool/Lang/de.pm +2 -1
- data/bin/lib/Image/ExifTool/Lang/ru.pm +2 -2
- data/bin/lib/Image/ExifTool/Minolta.pm +68 -64
- data/bin/lib/Image/ExifTool/Panasonic.pm +22 -5
- data/bin/lib/Image/ExifTool/QuickTime.pm +121 -2
- data/bin/lib/Image/ExifTool/README +19 -12
- data/bin/lib/Image/ExifTool/Samsung.pm +1 -1
- data/bin/lib/Image/ExifTool/Sony.pm +14 -13
- data/bin/lib/Image/ExifTool/TagInfoXML.pm +9 -5
- data/bin/lib/Image/ExifTool/TagLookup.pm +1459 -1437
- data/bin/lib/Image/ExifTool/TagNames.pod +515 -91
- data/bin/lib/Image/ExifTool/Validate.pm +2 -2
- data/bin/lib/Image/ExifTool/WriteExif.pl +2 -2
- data/bin/lib/Image/ExifTool/Writer.pl +3 -3
- data/bin/lib/Image/ExifTool/XMP.pm +8 -1
- data/bin/lib/Image/ExifTool/XMP2.pl +32 -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: ca643f48cd99f626cafd714a0230746f924c78b8
|
4
|
+
data.tar.gz: 1137ba4c8cd0933438aa92693d935e206fdad16d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 962ca6806904c5cfb58b7d3de17b0c0f38e3513916063176eafae50fe7b9defa5cefcabc4440ad4e217750c05ce3012650b003689201d6fd65e98d4fec247552
|
7
|
+
data.tar.gz: 0b8396e912710c0ede3045ef65e08085d24a3d045594eda46b20192587159cb0601f0f3cec590a738a8d110e4d608f2b78875209a1a0f0adf6e69c13faf092d3
|
data/bin/Changes
CHANGED
@@ -7,6 +7,21 @@ RSS feed: http://owl.phy.queensu.ca/~phil/exiftool/rss.xml
|
|
7
7
|
Note: The most recent production release is Version 11.50. (Other versions are
|
8
8
|
considered development releases, and are not uploaded to CPAN.)
|
9
9
|
|
10
|
+
July 12, 2019 - Version 11.55
|
11
|
+
|
12
|
+
- Added write support for XMP-crs:Texture and XMP-drs tags
|
13
|
+
- Added a number of new Panasonic NoiseReduction values
|
14
|
+
- Added definition for a new Kodak tag (thanks LibRaw)
|
15
|
+
- Added a couple of new Panasonic AFAreaMode values (thanks Daniel Beichl)
|
16
|
+
- Added a couple of new Sony/Minolta LensTypes (thanks Jos Roost and LibRaw)
|
17
|
+
- Added a new CanonModelID
|
18
|
+
- Decode HEVCConfiguration record from HEIC images
|
19
|
+
- Decode a new Panasonic tag
|
20
|
+
- Decode a new QuickTime tag
|
21
|
+
- Changed internal handling of Composite tag ID's to include module name
|
22
|
+
- Removed "FE" designation from Samyang E-mount lenses
|
23
|
+
- Dropped Validate warning about missing GPSProcessingMethod tag
|
24
|
+
|
10
25
|
July 2, 2019 - Version 11.54
|
11
26
|
|
12
27
|
- Added new Canon and Sony/Minolta LensType values (thanks LibRaw)
|
data/bin/META.json
CHANGED
data/bin/META.yml
CHANGED
data/bin/README
CHANGED
@@ -104,8 +104,8 @@ your home directory, then you would type the following commands in a
|
|
104
104
|
terminal window to extract and run ExifTool:
|
105
105
|
|
106
106
|
cd ~/Desktop
|
107
|
-
gzip -dc Image-ExifTool-11.
|
108
|
-
cd Image-ExifTool-11.
|
107
|
+
gzip -dc Image-ExifTool-11.55.tar.gz | tar -xf -
|
108
|
+
cd Image-ExifTool-11.55
|
109
109
|
./exiftool t/images/ExifTool.jpg
|
110
110
|
|
111
111
|
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 = '11.
|
15
|
+
my $version = '11.55';
|
16
16
|
|
17
17
|
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
|
18
18
|
my $exeDir;
|
@@ -5054,18 +5054,42 @@ been implemented. May also be combined with B<-listx> to output
|
|
5054
5054
|
descriptions in one language only.
|
5055
5055
|
|
5056
5056
|
By default, ExifTool uses UTF-8 encoding for special characters, but the
|
5057
|
-
the B<-L> or B<-charset> option may be used to invoke other encodings.
|
5057
|
+
the B<-L> or B<-charset> option may be used to invoke other encodings. Note
|
5058
|
+
that ExifTool uses Unicode::LineBreak if available to help preserve the
|
5059
|
+
column alignment of the plain text output for languages with a
|
5060
|
+
variable-width character set.
|
5058
5061
|
|
5059
5062
|
Currently, the language support is not complete, but users are welcome to
|
5060
|
-
help improve this by submitting their own translations. To submit a
|
5061
|
-
|
5062
|
-
file to generate an XML tag database, then add entries for other languages,
|
5063
|
-
zip this file, and email it to phil at owl.phy.queensu.ca for inclusion in
|
5064
|
-
ExifTool.
|
5063
|
+
help improve this by submitting their own translations. To submit a
|
5064
|
+
translation, follow these steps (you must have Perl installed for this):
|
5065
5065
|
|
5066
|
-
|
5067
|
-
|
5068
|
-
|
5066
|
+
1. Download and unpack the latest Image-ExifTool full distribution.
|
5067
|
+
|
5068
|
+
2. 'cd' into the Image-ExifTool directory.
|
5069
|
+
|
5070
|
+
3. Run this command to make an XML file of the desired tags (eg. EXIF):
|
5071
|
+
|
5072
|
+
./exiftool -listx -exif:all > out.xml
|
5073
|
+
|
5074
|
+
4. Copy this text into a file called 'import.pl' in the exiftool directory:
|
5075
|
+
|
5076
|
+
push @INC, 'lib';
|
5077
|
+
require Image::ExifTool::TagInfoXML;
|
5078
|
+
my $file = shift or die "Expected XML file name\n";
|
5079
|
+
$Image::ExifTool::TagInfoXML::makeMissing = shift;
|
5080
|
+
Image::ExifTool::TagInfoXML::BuildLangModules($file,8);
|
5081
|
+
|
5082
|
+
5. Run the 'import.pl' script to Import the XML file, generating the
|
5083
|
+
'MISSING' entries for your language (eg. Russian):
|
5084
|
+
|
5085
|
+
perl import.pl out.xml ru
|
5086
|
+
|
5087
|
+
6. Edit the generated language module lib/Image/ExifTool/Lang/ru.pm, and
|
5088
|
+
search and replace all 'MISSING' strings in the file with your translations.
|
5089
|
+
|
5090
|
+
7. Email the module ('ru.pm' in this example) to phil at owl.phy.queensu.ca
|
5091
|
+
|
5092
|
+
8. Thank you!!
|
5069
5093
|
|
5070
5094
|
=item B<-listItem> I<INDEX>
|
5071
5095
|
|
@@ -5134,7 +5158,7 @@ with this command:
|
|
5134
5158
|
|
5135
5159
|
produces output like this:
|
5136
5160
|
|
5137
|
-
-- Generated by ExifTool 11.
|
5161
|
+
-- Generated by ExifTool 11.55 --
|
5138
5162
|
File: a.jpg - 2003:10:31 15:44:19
|
5139
5163
|
(f/5.6, 1/60s, ISO 100)
|
5140
5164
|
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);
|
29
29
|
|
30
|
-
$VERSION = '11.
|
30
|
+
$VERSION = '11.55';
|
31
31
|
$RELEASE = '';
|
32
32
|
@ISA = qw(Exporter);
|
33
33
|
%EXPORT_TAGS = (
|
@@ -979,7 +979,7 @@ my %allGroupsExifTool = ( 0 => 'ExifTool', 1 => 'ExifTool', 2 => 'ExifTool' );
|
|
979
979
|
WRITABLE TABLE_DESC NOTES IS_OFFSET IS_SUBDIR
|
980
980
|
EXTRACT_UNKNOWN NAMESPACE PREFERRED SRC_TABLE PRIORITY
|
981
981
|
AVOID WRITE_GROUP LANG_INFO VARS DATAMEMBER
|
982
|
-
SET_GROUP1 PERMANENT
|
982
|
+
SET_GROUP1 PERMANENT INIT_TABLE
|
983
983
|
);
|
984
984
|
|
985
985
|
# headers for various segment types
|
@@ -1845,6 +1845,8 @@ my %systemTagsNotes = (
|
|
1845
1845
|
WRITE_PROC => \&DummyWriteProc,
|
1846
1846
|
);
|
1847
1847
|
|
1848
|
+
my %compositeID; # lookup for new ID's of Composite tags based on original ID
|
1849
|
+
|
1848
1850
|
# static private ExifTool variables
|
1849
1851
|
|
1850
1852
|
%allTables = ( ); # list of all tables loaded (except Composite tags)
|
@@ -3369,16 +3371,19 @@ sub BuildCompositeTags($)
|
|
3369
3371
|
my $compTable = GetTagTable('Image::ExifTool::Composite');
|
3370
3372
|
my @tagList = sort keys %$compTable;
|
3371
3373
|
my $rawValue = $$self{VALUE};
|
3372
|
-
my (%tagsUsed, %cache);
|
3374
|
+
my (%tagsUsed, %cache, $allBuilt);
|
3373
3375
|
|
3374
3376
|
for (;;) {
|
3375
3377
|
my (%notBuilt, $tag, @deferredTags);
|
3376
|
-
|
3378
|
+
foreach (@tagList) {
|
3379
|
+
$notBuilt{$$compTable{$_}{Name}} = 1 unless $specialTags{$_};
|
3380
|
+
}
|
3377
3381
|
COMPOSITE_TAG:
|
3378
3382
|
foreach $tag (@tagList) {
|
3379
3383
|
next if $specialTags{$tag};
|
3380
3384
|
my $tagInfo = $self->GetTagInfo($compTable, $tag);
|
3381
3385
|
next unless $tagInfo;
|
3386
|
+
my $tagName = $$compTable{$tag}{Name};
|
3382
3387
|
# put required tags into array and make sure they all exist
|
3383
3388
|
my $subDoc = ($$tagInfo{SubDoc} and $$self{DOC_COUNT});
|
3384
3389
|
my $require = $$tagInfo{Require} || { };
|
@@ -3429,8 +3434,12 @@ COMPOSITE_TAG:
|
|
3429
3434
|
} elsif ($reqTag =~ /^(.*):(.+)/) {
|
3430
3435
|
my ($reqGroup, $name) = ($1, $2);
|
3431
3436
|
if ($reqGroup eq 'Composite' and $notBuilt{$name}) {
|
3432
|
-
|
3433
|
-
|
3437
|
+
# defer only until all other tags are built if
|
3438
|
+
# we are inhibiting based on another Composite tag
|
3439
|
+
unless ($$inhibit{$index} and $allBuilt) {
|
3440
|
+
push @deferredTags, $tag;
|
3441
|
+
next COMPOSITE_TAG;
|
3442
|
+
}
|
3434
3443
|
}
|
3435
3444
|
# (CAREFUL! keys may not be sequential if one was deleted)
|
3436
3445
|
my ($i, $key, @keys);
|
@@ -3470,13 +3479,13 @@ COMPOSITE_TAG:
|
|
3470
3479
|
next if ++$docNum <= $$self{DOC_COUNT};
|
3471
3480
|
last;
|
3472
3481
|
} elsif ($found) {
|
3473
|
-
delete $notBuilt{$
|
3482
|
+
delete $notBuilt{$tagName}; # this tag is OK to build now
|
3474
3483
|
# keep track of all Require'd tag keys
|
3475
3484
|
foreach (keys %tagKey) {
|
3476
3485
|
# only tag keys with same name as a Composite tag
|
3477
3486
|
# can be replaced (also eliminates keys with
|
3478
3487
|
# instance numbers which can't be replaced either)
|
3479
|
-
next unless
|
3488
|
+
next unless $compositeID{$tagKey{$_}};
|
3480
3489
|
my $keyRef = \$tagKey{$_};
|
3481
3490
|
$tagsUsed{$$keyRef} or $tagsUsed{$$keyRef} = [ ];
|
3482
3491
|
push @{$tagsUsed{$$keyRef}}, $keyRef;
|
@@ -3491,7 +3500,7 @@ COMPOSITE_TAG:
|
|
3491
3500
|
delete $tagsUsed{$key}; # can't be replaced again
|
3492
3501
|
}
|
3493
3502
|
} elsif (not defined $found) {
|
3494
|
-
delete $notBuilt{$
|
3503
|
+
delete $notBuilt{$tagName}; # tag can't be built anyway
|
3495
3504
|
}
|
3496
3505
|
last unless $subDoc;
|
3497
3506
|
# don't process sub-documents if there is no chance to build this tag
|
@@ -3517,16 +3526,30 @@ COMPOSITE_TAG:
|
|
3517
3526
|
}
|
3518
3527
|
last unless @deferredTags;
|
3519
3528
|
if (@deferredTags == @tagList) {
|
3520
|
-
|
3521
|
-
|
3522
|
-
|
3523
|
-
|
3529
|
+
if ($allBuilt) {
|
3530
|
+
# everything was deferred in the last pass,
|
3531
|
+
# must be a circular dependency
|
3532
|
+
warn "Circular dependency in Composite tags\n";
|
3533
|
+
last;
|
3534
|
+
}
|
3535
|
+
$allBuilt = 1; # try once more, ignoring Composite Inhibit tags
|
3524
3536
|
}
|
3525
3537
|
@tagList = @deferredTags; # calculate deferred tags now
|
3526
3538
|
}
|
3527
3539
|
delete $$self{BuildingComposite};
|
3528
3540
|
}
|
3529
3541
|
|
3542
|
+
#------------------------------------------------------------------------------
|
3543
|
+
# Get reference to Composite tag info hash
|
3544
|
+
# Inputs: 0) case-sensitive Composite tag name
|
3545
|
+
# Returns: tagInfo hash or undef
|
3546
|
+
sub GetCompositeTagInfo($)
|
3547
|
+
{
|
3548
|
+
my $tag = shift;
|
3549
|
+
return undef unless $compositeID{$tag};
|
3550
|
+
return $Image::ExifTool::Composite{$compositeID{$tag}[0]};
|
3551
|
+
}
|
3552
|
+
|
3530
3553
|
#------------------------------------------------------------------------------
|
3531
3554
|
# Get tag name (removes copy index)
|
3532
3555
|
# Inputs: 0) Tag key
|
@@ -4571,12 +4594,16 @@ sub AddCompositeTags($;$)
|
|
4571
4594
|
{
|
4572
4595
|
local $_;
|
4573
4596
|
my ($add, $override) = @_;
|
4574
|
-
my $module;
|
4597
|
+
my ($module, $prefix, $tagID);
|
4575
4598
|
unless (ref $add) {
|
4599
|
+
($prefix = $add) =~ s/.*:://;
|
4600
|
+
$prefix .= '::';
|
4576
4601
|
$module = $add;
|
4577
4602
|
$add .= '::Composite';
|
4578
4603
|
no strict 'refs';
|
4579
4604
|
$add = \%$add;
|
4605
|
+
} else {
|
4606
|
+
$prefix = 'UserDefined::';
|
4580
4607
|
}
|
4581
4608
|
my $defaultGroups = $$add{GROUPS};
|
4582
4609
|
my $compTable = GetTagTable('Image::ExifTool::Composite');
|
@@ -4590,31 +4617,38 @@ sub AddCompositeTags($;$)
|
|
4590
4617
|
$defaultGroups = $$add{GROUPS} = { 0 => 'Composite', 1 => 'Composite', 2 => 'Other' };
|
4591
4618
|
}
|
4592
4619
|
SetupTagTable($add); # generate Name, TagID, etc
|
4593
|
-
my $tagID;
|
4594
4620
|
foreach $tagID (sort keys %$add) {
|
4595
4621
|
next if $specialTags{$tagID}; # must skip special tags
|
4596
4622
|
my $tagInfo = $$add{$tagID};
|
4597
|
-
|
4598
|
-
my $tag = $$tagInfo{Name};
|
4623
|
+
my $new = $prefix . $tagID; # new tag ID for Composite table
|
4599
4624
|
$$tagInfo{Module} = $module if $$tagInfo{Writable};
|
4600
4625
|
$$tagInfo{Override} = 1 if $override and not defined $$tagInfo{Override};
|
4601
4626
|
$$tagInfo{IsComposite} = 1;
|
4602
|
-
#
|
4603
|
-
if (
|
4627
|
+
# handle Composite tags with the same name
|
4628
|
+
if ($compositeID{$tagID}) {
|
4604
4629
|
# determine if we want to override this tag
|
4605
4630
|
# (=0 keep both, >0 override, <0 keep existing)
|
4606
|
-
my $over = ($$tagInfo{Override} || 0) - ($$compTable{$
|
4631
|
+
my $over = ($$tagInfo{Override} || 0) - ($$compTable{$compositeID{$tagID}[0]}{Override} || 0);
|
4607
4632
|
next if $over < 0;
|
4608
|
-
|
4609
|
-
|
4610
|
-
|
4611
|
-
delete
|
4612
|
-
$n = ($n || 1) + 1;
|
4613
|
-
$new = "${tag}-$n";
|
4633
|
+
if ($over) {
|
4634
|
+
# remove existing tags with this ID
|
4635
|
+
delete $$compTable{$_} foreach @{$compositeID{$tagID}};
|
4636
|
+
delete $compositeID{$tagID};
|
4614
4637
|
}
|
4615
|
-
# use new ID and save it so we can use it in TagLookup
|
4616
|
-
$$tagInfo{NewTagID} = $tag = $new unless $over;
|
4617
4638
|
}
|
4639
|
+
# make sure new TagID is unique by adding index if necessary
|
4640
|
+
my $n = 0;
|
4641
|
+
while ($$compTable{$new}) {
|
4642
|
+
$new =~ s/-\d+$// if $n++;
|
4643
|
+
$new .= "-$n";
|
4644
|
+
}
|
4645
|
+
# use new ID and save it so we can use it in TagLookup
|
4646
|
+
$$tagInfo{NewTagID} = $new unless $tagID eq $new;
|
4647
|
+
|
4648
|
+
# add new ID to lookup of Composite tag ID's
|
4649
|
+
$compositeID{$tagID} = [ ] unless $compositeID{$tagID};
|
4650
|
+
unshift @{$compositeID{$tagID}}, $new; # (most recent one first)
|
4651
|
+
|
4618
4652
|
# convert scalar Require/Desire/Inhibit entries
|
4619
4653
|
my ($type, @hashes, @scalars, %used);
|
4620
4654
|
foreach $type ('Require','Desire','Inhibit') {
|
@@ -4635,9 +4669,9 @@ sub AddCompositeTags($;$)
|
|
4635
4669
|
# add this Composite tag to our main Composite table
|
4636
4670
|
$$tagInfo{Table} = $compTable;
|
4637
4671
|
# (use the original TagID, even if we changed it, so don't do this:)
|
4638
|
-
|
4639
|
-
# save tag under
|
4640
|
-
$$compTable{$
|
4672
|
+
$$tagInfo{TagID} = $new;
|
4673
|
+
# save tag under new ID in Composite table
|
4674
|
+
$$compTable{$new} = $tagInfo;
|
4641
4675
|
# set all default groups in tag
|
4642
4676
|
my $groups = $$tagInfo{Groups};
|
4643
4677
|
$groups or $groups = $$tagInfo{Groups} = { };
|
@@ -7248,6 +7282,7 @@ sub GetTagTable($)
|
|
7248
7282
|
no strict 'refs';
|
7249
7283
|
$table = \%$tableName;
|
7250
7284
|
use strict 'refs';
|
7285
|
+
&{$$table{INIT_TABLE}}($table) if $$table{INIT_TABLE};
|
7251
7286
|
$$table{TABLE_NAME} = $tableName; # set table name
|
7252
7287
|
($$table{SHORT_NAME} = $tableName) =~ s/^Image::ExifTool:://;
|
7253
7288
|
# set default group 0 and 1 from module name unless already specified
|
@@ -88,7 +88,7 @@ sub ProcessCTMD($$$);
|
|
88
88
|
sub ProcessExifInfo($$$);
|
89
89
|
sub SwapWords($);
|
90
90
|
|
91
|
-
$VERSION = '4.
|
91
|
+
$VERSION = '4.17';
|
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)
|
@@ -769,6 +769,7 @@ $VERSION = '4.16';
|
|
769
769
|
0x6040000 => 'PowerShot S100 / Digital IXUS / IXY Digital',
|
770
770
|
0x801 => 'PowerShot SX740 HS',
|
771
771
|
0x805 => 'PowerShot SX70 HS',
|
772
|
+
0x808 => 'PowerShot G7 X Mark III',
|
772
773
|
|
773
774
|
# (see http://cweb.canon.jp/e-support/faq/answer/digitalcamera/10447-1.html for PowerShot/IXUS/IXY names)
|
774
775
|
|
@@ -25,7 +25,7 @@ use vars qw($VERSION);
|
|
25
25
|
use Image::ExifTool qw(:DataAccess :Utils);
|
26
26
|
use Image::ExifTool::Exif;
|
27
27
|
|
28
|
-
$VERSION = '1.
|
28
|
+
$VERSION = '1.46';
|
29
29
|
|
30
30
|
sub ProcessKodakIFD($$$);
|
31
31
|
sub ProcessKodakText($$$);
|
@@ -2661,6 +2661,7 @@ my %sceneModeUsed = (
|
|
2661
2661
|
'Image Number' => 'ImageNumber',
|
2662
2662
|
'ISO' => 'ISO',
|
2663
2663
|
'ISO Speed' => 'ISO',
|
2664
|
+
'Lens' => { Name => 'Lens', Priority => 0 },
|
2664
2665
|
'Max Aperture' => {
|
2665
2666
|
Name => 'MaxAperture',
|
2666
2667
|
ValueConv => '$val=~s/^f//i; $val',
|
@@ -8707,7 +8707,8 @@ under the same terms as Perl itself.
|
|
8707
8707
|
|
8708
8708
|
=head1 ACKNOWLEDGEMENTS
|
8709
8709
|
|
8710
|
-
Thanks to Jens Duttke
|
8710
|
+
Thanks to Jens Duttke, Herbert Kauer and Jobi for providing this
|
8711
|
+
translation.
|
8711
8712
|
|
8712
8713
|
=head1 SEE ALSO
|
8713
8714
|
|
@@ -1983,8 +1983,8 @@ under the same terms as Perl itself.
|
|
1983
1983
|
|
1984
1984
|
=head1 ACKNOWLEDGEMENTS
|
1985
1985
|
|
1986
|
-
Thanks to Jens Duttke, Sergey Shemetov, Dmitry Yerokhin
|
1987
|
-
for providing this translation.
|
1986
|
+
Thanks to Jens Duttke, Sergey Shemetov, Dmitry Yerokhin, Anton Sukhinov and
|
1987
|
+
Alexander for providing this translation.
|
1988
1988
|
|
1989
1989
|
=head1 SEE ALSO
|
1990
1990
|
|
@@ -49,7 +49,7 @@ use vars qw($VERSION %minoltaLensTypes %minoltaTeleconverters %minoltaColorMode
|
|
49
49
|
use Image::ExifTool qw(:DataAccess :Utils);
|
50
50
|
use Image::ExifTool::Exif;
|
51
51
|
|
52
|
-
$VERSION = '2.
|
52
|
+
$VERSION = '2.77';
|
53
53
|
|
54
54
|
# Full list of product codes for Sony-compatible Minolta lenses
|
55
55
|
# (ref http://www.kb.sony.com/selfservice/documentLink.do?externalId=C1000570)
|
@@ -590,75 +590,79 @@ $VERSION = '2.76';
|
|
590
590
|
'65535.46' => 'Sony E 18-135mm F3.5-5.6 OSS', #JR (32849 - SEL18135)
|
591
591
|
'65535.47' => 'Sony FE 135mm F1.8 GM', #IB (32850 - SEL135F18GM)
|
592
592
|
'65535.48' => 'Sony FE 200-600mm F5.6-6.3 G OSS',#IB (32851 - SEL200600G)
|
593
|
-
'65535.49' => 'Sony FE 600mm F4 GM OSS', #IB (32852 -
|
594
|
-
'65535.50' => 'Sony FE
|
595
|
-
'65535.51' => 'Sony FE 70-200mm F2.8 GM OSS +
|
596
|
-
'65535.52' => 'Sony FE
|
597
|
-
'65535.53' => 'Sony FE 100-400mm F4.5-5.6 GM OSS +
|
598
|
-
'65535.54' => 'Sony FE 400mm
|
599
|
-
'65535.55' => 'Sony FE 400mm F2.8 GM OSS +
|
600
|
-
'65535.56' => 'Sony FE
|
601
|
-
'65535.57' => 'Sony FE 200-600mm F5.6-6.3 G OSS +
|
602
|
-
'65535.58' => 'Sony FE 600mm
|
603
|
-
'65535.59' => 'Sony FE 600mm F4 GM OSS +
|
593
|
+
'65535.49' => 'Sony FE 600mm F4 GM OSS', #IB (32852 - SEL600F40GM)
|
594
|
+
'65535.50' => 'Sony FE 35mm F1.8', #JR/IB (32858 - SEL35F18F)
|
595
|
+
'65535.51' => 'Sony FE 70-200mm F2.8 GM OSS + 1.4X Teleconverter', #JR (33072 - SEL70200GM + SEL14TC)
|
596
|
+
'65535.52' => 'Sony FE 70-200mm F2.8 GM OSS + 2X Teleconverter', #JR (33073 - SEL70200GM + SEL20TC)
|
597
|
+
'65535.53' => 'Sony FE 100-400mm F4.5-5.6 GM OSS + 1.4X Teleconverter', #JR (33077 - SEL100400GM + SEL14TC)
|
598
|
+
'65535.54' => 'Sony FE 100-400mm F4.5-5.6 GM OSS + 2X Teleconverter', #JR (33078 - SEL100400GM + SEL20TC)
|
599
|
+
'65535.55' => 'Sony FE 400mm F2.8 GM OSS + 1.4X Teleconverter', #IB (33079 - SEL400F28GM + SEL14TC)
|
600
|
+
'65535.56' => 'Sony FE 400mm F2.8 GM OSS + 2X Teleconverter', #JR (33080 - SEL400F28GM + SEL20TC)
|
601
|
+
'65535.57' => 'Sony FE 200-600mm F5.6-6.3 G OSS + 1.4X Teleconverter', #JR (33081 - SEL200600G + SEL14TC) (NC)
|
602
|
+
'65535.58' => 'Sony FE 200-600mm F5.6-6.3 G OSS + 2X Teleconverter', #JR (33082 - SEL200600G + SEL20TC)
|
603
|
+
'65535.59' => 'Sony FE 600mm F4 GM OSS + 1.4X Teleconverter', #JR (33083 - SEL600F40GM + SEL14TC) (NC)
|
604
|
+
'65535.60' => 'Sony FE 600mm F4 GM OSS + 2X Teleconverter', #JR (33084 - SEL600F40GM + SEL20TC)
|
604
605
|
#
|
605
606
|
# 3rd party E lenses
|
606
607
|
#
|
607
|
-
'65535.
|
608
|
-
'65535.
|
609
|
-
'65535.
|
610
|
-
'65535.
|
611
|
-
'65535.
|
612
|
-
'65535.
|
613
|
-
'65535.
|
614
|
-
'65535.
|
615
|
-
'65535.
|
616
|
-
'65535.
|
617
|
-
'65535.
|
618
|
-
'65535.
|
619
|
-
'65535.
|
620
|
-
'65535.
|
621
|
-
'65535.
|
622
|
-
'65535.
|
623
|
-
'65535.
|
624
|
-
'65535.
|
625
|
-
'65535.
|
626
|
-
'65535.
|
627
|
-
'65535.
|
628
|
-
'65535.
|
629
|
-
'65535.
|
630
|
-
'65535.
|
631
|
-
'65535.
|
632
|
-
'65535.
|
633
|
-
'65535.
|
634
|
-
'65535.
|
635
|
-
'65535.
|
636
|
-
'65535.
|
637
|
-
'65535.
|
638
|
-
'65535.
|
639
|
-
'65535.
|
640
|
-
'65535.
|
641
|
-
'65535.
|
642
|
-
'65535.
|
643
|
-
'65535.
|
644
|
-
'65535.
|
645
|
-
'65535.
|
646
|
-
'65535.
|
647
|
-
'65535.
|
648
|
-
'65535.
|
649
|
-
'65535.
|
650
|
-
'65535.
|
651
|
-
'65535.
|
608
|
+
'65535.61' => 'Samyang AF 50mm F1.4', #JR (32789)
|
609
|
+
'65535.62' => 'Samyang AF 14mm F2.8', #JR (32790 and 51505)
|
610
|
+
'65535.63' => 'Samyang AF 24mm F2.8', #JR (32794)
|
611
|
+
'65535.64' => 'Samyang AF 35mm F2.8', #PH (51505)
|
612
|
+
'65535.65' => 'Samyang AF 35mm F1.4', #IB (51507)
|
613
|
+
'65535.66' => 'Samyang AF 85mm F1.4', #IB (32823)
|
614
|
+
'65535.67' => 'Sigma 19mm F2.8 [EX] DN', #JR (0)
|
615
|
+
'65535.68' => 'Sigma 30mm F2.8 [EX] DN', #JR (0)
|
616
|
+
'65535.69' => 'Sigma 60mm F2.8 DN', #JR (0)
|
617
|
+
'65535.70' => 'Sigma 30mm F1.4 DC DN | C', #IB (50480) (016)
|
618
|
+
'65535.71' => 'Sigma 85mm F1.4 DG HSM | A', #JR (50499) (018)
|
619
|
+
'65535.72' => 'Sigma 16mm F1.4 DC DN | C', #JR (50503) (017)
|
620
|
+
'65535.73' => 'Sigma 105mm F1.4 DG HSM | A', #IB (50507) (018)
|
621
|
+
'65535.74' => 'Sigma 56mm F1.4 DC DN | C', #JR (50508) (018)
|
622
|
+
'65535.75' => 'Sigma 70-200mm F2.8 DG OS HSM | S',#IB (50512) (018)
|
623
|
+
'65535.76' => 'Sigma 70mm F2.8 DG MACRO | A', #JR (50513) (018)
|
624
|
+
'65535.77' => 'Sigma 50mm F1.4 DG HSM | A', #JR (50481) (018)
|
625
|
+
'65535.78' => 'Sigma 35mm F1.4 DG HSM | A', #JR (50488) (018)
|
626
|
+
'65535.79' => 'Tamron 18-200mm F3.5-6.3 Di III VC', #JR (0 - Model B011)
|
627
|
+
'65535.80' => 'Tamron 28-75mm F2.8 Di III RXD', #JR (49457 - Model A036)
|
628
|
+
'65535.81' => 'Tamron 17-28mm F2.8 Di III RXD', #JR (49458 - Model A046)
|
629
|
+
'65535.82' => 'Tokina FiRIN 20mm F2 FE MF', #JR (0)
|
630
|
+
'65535.83' => 'Tokina FiRIN 20mm F2 FE AF', #JR (49712 or 0)
|
631
|
+
'65535.84' => 'Tokina FiRIN 100mm F2.8 FE MACRO',#JR (49713)
|
632
|
+
'65535.85' => 'Voigtlander SUPER WIDE-HELIAR 15mm F4.5 III', #JR (50992)
|
633
|
+
'65535.86' => 'Voigtlander HELIAR-HYPER WIDE 10mm F5.6', #IB (50993)
|
634
|
+
'65535.87' => 'Voigtlander ULTRA WIDE-HELIAR 12mm F5.6 III', #IB (50994)
|
635
|
+
'65535.88' => 'Voigtlander MACRO APO-LANTHAR 65mm F2 Aspherical', #JR (50995)
|
636
|
+
'65535.89' => 'Voigtlander NOKTON 40mm F1.2 Aspherical', #JR (50996)
|
637
|
+
'65535.90' => 'Voigtlander NOKTON classic 35mm F1.4', #JR (50997)
|
638
|
+
'65535.91' => 'Voigtlander MACRO APO-LANTHAR 110mm F2.5', #JR (50998)
|
639
|
+
'65535.92' => 'Voigtlander COLOR-SKOPAR 21mm F3.5 Aspherical', #IB (50999)
|
640
|
+
'65535.93' => 'Voigtlander NOKTON 50mm F1.2 Aspherical', #JR (51000)
|
641
|
+
'65535.94' => 'Voigtlander NOKTON 21mm F1.4 Aspherical', #JR (51001)
|
642
|
+
'65535.95' => 'Viltrox PFU RBMH 85mm F1.8', #JR (32796)
|
643
|
+
'65535.96' => 'Zeiss Touit 12mm F2.8', #JR (49201 or 0)
|
644
|
+
'65535.97' => 'Zeiss Touit 32mm F1.8', #JR (49202 or 0)
|
645
|
+
'65535.98' => 'Zeiss Touit 50mm F2.8 Macro', #JR (49203 or 0)
|
646
|
+
'65535.99' => 'Zeiss Batis 25mm F2', #JR (49216)
|
647
|
+
'65535.100' => 'Zeiss Batis 85mm F1.8', #JR (49217)
|
648
|
+
'65535.101' => 'Zeiss Batis 18mm F2.8', #IB (49218)
|
649
|
+
'65535.102' => 'Zeiss Batis 135mm F2.8', #IB (49219)
|
650
|
+
'65535.103' => 'Zeiss Batis 40mm F2 CF', #JR (49220)
|
651
|
+
'65535.104' => 'Zeiss Loxia 50mm F2', #JR (49232 or 0)
|
652
|
+
'65535.105' => 'Zeiss Loxia 35mm F2', #JR (49233 or 0)
|
653
|
+
'65535.106' => 'Zeiss Loxia 21mm F2.8', #JR (49234)
|
654
|
+
'65535.107' => 'Zeiss Loxia 85mm F2.4', #JR (49235)
|
655
|
+
'65535.108' => 'Zeiss Loxia 25mm F2.4', #JR (49236)
|
652
656
|
#
|
653
657
|
# other lenses
|
654
658
|
#
|
655
|
-
'65535.
|
656
|
-
'65535.
|
657
|
-
'65535.
|
658
|
-
'65535.
|
659
|
-
'65535.
|
660
|
-
'65535.
|
661
|
-
'65535.
|
659
|
+
'65535.109' => 'Arax MC 35mm F2.8 Tilt+Shift', #JD
|
660
|
+
'65535.110' => 'Arax MC 80mm F2.8 Tilt+Shift', #JD
|
661
|
+
'65535.111' => 'Zenitar MF 16mm F2.8 Fisheye M42', #JD
|
662
|
+
'65535.112' => 'Samyang 500mm Mirror F8.0', #19
|
663
|
+
'65535.113' => 'Pentacon Auto 135mm F2.8', #19
|
664
|
+
'65535.114' => 'Pentacon Auto 29mm F2.8', #19
|
665
|
+
'65535.115' => 'Helios 44-2 58mm F2.0', #19
|
662
666
|
);
|
663
667
|
|
664
668
|
%minoltaTeleconverters = (
|