exiftool_vendored 11.64.0 → 11.65.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 +11 -0
- data/bin/META.json +1 -1
- data/bin/META.yml +1 -1
- data/bin/README +3 -3
- data/bin/exiftool +16 -17
- data/bin/lib/Image/ExifTool.pm +1 -1
- data/bin/lib/Image/ExifTool.pod +20 -16
- data/bin/lib/Image/ExifTool/BuildTagLookup.pm +4 -2
- data/bin/lib/Image/ExifTool/Canon.pm +4 -1
- data/bin/lib/Image/ExifTool/PNG.pm +10 -5
- data/bin/lib/Image/ExifTool/Sony.pm +52 -43
- data/bin/lib/Image/ExifTool/TagNames.pod +11 -9
- data/bin/lib/Image/ExifTool/XMPStruct.pl +12 -5
- 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: 7b7ab4c79fc1d811625bd4643955a68d924ef262
|
4
|
+
data.tar.gz: ac2f64040dc9f70ca62fd12d5945d25e18a99606
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e5e788b7497fa5a9d369efda1acf944a21f19d7859ef04660000f40fdd96b9a7db9844cd949b813ff32f8dc8ce451fecead32d16704fca9af17b3e493670e695
|
7
|
+
data.tar.gz: a1ff8ddd79c87d6489f1c109739f1ceb90cf2257921b266b26e79f1d16b7ef19f572f2e9640078e80e39de7ff4a40f0253432ba39e240e87bb335578be73d592
|
data/bin/Changes
CHANGED
@@ -11,6 +11,17 @@ considered development releases, and are not uploaded to CPAN.)
|
|
11
11
|
from Sept. 3-24, so don't expect any updates or email/forum responses from
|
12
12
|
me during this time - PH]
|
13
13
|
|
14
|
+
Aug. 29, 2019 - Version 11.65
|
15
|
+
|
16
|
+
- Added some new SonyModelID and Sony LensType values (thanks LibRaw and Jos
|
17
|
+
Roost)
|
18
|
+
- Added support for some new Sony models (thanks Jos Roost)
|
19
|
+
- Added a couple of new CanonModelID values (thanks LibRaw)
|
20
|
+
- Added a new Canon ColorDataVersion value
|
21
|
+
- Enhanced FastScan option so a setting of 2 stops processing PNG images at
|
22
|
+
the IDAT chunk when reading
|
23
|
+
- Preserve order of nested lang-alt list entries when -struct option is used
|
24
|
+
|
14
25
|
Aug. 28, 2019 - Version 11.64
|
15
26
|
|
16
27
|
- Added a new Canon LensType (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.65.tar.gz | tar -xf -
|
108
|
+
cd Image-ExifTool-11.65
|
109
109
|
./exiftool t/images/ExifTool.jpg
|
110
110
|
|
111
111
|
Note: These commands extract meta information from one of the test images.
|
@@ -159,7 +159,7 @@ for calculating digest values and providing other features listed below:
|
|
159
159
|
|
160
160
|
COPYRIGHT AND LICENSE
|
161
161
|
|
162
|
-
Copyright 2003-
|
162
|
+
Copyright 2003-2019, Phil Harvey
|
163
163
|
|
164
164
|
This is free software; you can redistribute it and/or modify it under the
|
165
165
|
same terms as Perl itself.
|
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.65';
|
14
14
|
|
15
15
|
# add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
|
16
16
|
my $exeDir;
|
@@ -5171,7 +5171,7 @@ with this command:
|
|
5171
5171
|
|
5172
5172
|
produces output like this:
|
5173
5173
|
|
5174
|
-
-- Generated by ExifTool 11.
|
5174
|
+
-- Generated by ExifTool 11.65 --
|
5175
5175
|
File: a.jpg - 2003:10:31 15:44:19
|
5176
5176
|
(f/5.6, 1/60s, ISO 100)
|
5177
5177
|
File: b.jpg - 2006:05:23 11:57:38
|
@@ -5938,12 +5938,12 @@ include directories.
|
|
5938
5938
|
=item B<-geotag> I<TRKFILE>
|
5939
5939
|
|
5940
5940
|
Geotag images from the specified GPS track log file. Using the B<-geotag>
|
5941
|
-
option is equivalent to writing a value to the C<Geotag> tag.
|
5942
|
-
|
5943
|
-
written to
|
5944
|
-
|
5945
|
-
|
5946
|
-
|
5941
|
+
option is equivalent to writing a value to the C<Geotag> tag. The GPS
|
5942
|
+
position is interpolated from the track at a time specified by the value
|
5943
|
+
written to the C<Geotime> tag. If C<Geotime> is not specified, the value is
|
5944
|
+
copied from C<DateTimeOriginal#> (the C<#> is added to copy the unformatted
|
5945
|
+
value, avoiding potential conflicts with the B<-d> option). For example,
|
5946
|
+
the following two commands are equivalent:
|
5947
5947
|
|
5948
5948
|
exiftool -geotag trk.log image.jpg
|
5949
5949
|
exiftool -geotag trk.log "-Geotime<DateTimeOriginal#" image.jpg
|
@@ -5955,11 +5955,11 @@ from the track log, and they are supported by the destination metadata
|
|
5955
5955
|
format): GPSLatitude, GPSLatitudeRef, GPSLongitude, GPSLongitudeRef,
|
5956
5956
|
GPSAltitude, GPSAltitudeRef, GPSDateStamp, GPSTimeStamp, GPSDateTime,
|
5957
5957
|
GPSTrack, GPSTrackRef, GPSSpeed, GPSSpeedRef, GPSImgDirection,
|
5958
|
-
GPSImgDirectionRef, GPSPitch and
|
5959
|
-
EXIF, and updated in XMP only if they already exist.
|
5960
|
-
C<EXIF:Geotime> or C<XMP:Geotime> may be specified to write only
|
5961
|
-
tags respectively. Note that GPSPitch and GPSRoll are
|
5962
|
-
require user-defined tags in order to be written.
|
5958
|
+
GPSImgDirectionRef, GPSPitch, GPSRoll and AmbientTemperature. By default,
|
5959
|
+
tags are created in EXIF, and updated in XMP only if they already exist.
|
5960
|
+
However, C<EXIF:Geotime> or C<XMP:Geotime> may be specified to write only
|
5961
|
+
EXIF or XMP tags respectively. Note that GPSPitch and GPSRoll are
|
5962
|
+
non-standard, and require user-defined tags in order to be written.
|
5963
5963
|
|
5964
5964
|
The C<Geosync> tag may be used to specify a time correction which is applied
|
5965
5965
|
to each C<Geotime> value for synchronization with GPS time. For example,
|
@@ -5968,7 +5968,6 @@ seconds behind GPS:
|
|
5968
5968
|
|
5969
5969
|
exiftool -geosync=+1:20 -geotag a.log DIR
|
5970
5970
|
|
5971
|
-
C<Geosync> must be set before C<Geotime> (if specified) to be effective.
|
5972
5971
|
Advanced C<Geosync> features allow a linear time drift correction and
|
5973
5972
|
synchronization from previously geotagged images. See "geotag.html" in the
|
5974
5973
|
full ExifTool distribution for more information.
|
@@ -5982,9 +5981,9 @@ Windows) to prevent filename expansion. For example:
|
|
5982
5981
|
exiftool -geotag "TRACKDIR/*.log" IMAGEDIR
|
5983
5982
|
|
5984
5983
|
Currently supported track file formats are GPX, NMEA RMC/GGA/GLL, KML, IGC,
|
5985
|
-
Garmin XML and TCX, Magellan PMGNTRK, Honeywell PTNTHPR, Winplus
|
5986
|
-
|
5987
|
-
Also see "geotag.html" in the full ExifTool distribution and the
|
5984
|
+
Garmin XML and TCX, Magellan PMGNTRK, Honeywell PTNTHPR, Bramor gEO, Winplus
|
5985
|
+
Beacon TXT, and GPS/IMU CSV files. See L</GEOTAGGING EXAMPLES> for
|
5986
|
+
examples. Also see "geotag.html" in the full ExifTool distribution and the
|
5988
5987
|
L<Image::ExifTool Options|Image::ExifTool/Options> for more details and for
|
5989
5988
|
information about geotag configuration options.
|
5990
5989
|
|
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.65';
|
31
31
|
$RELEASE = '';
|
32
32
|
@ISA = qw(Exporter);
|
33
33
|
%EXPORT_TAGS = (
|
data/bin/lib/Image/ExifTool.pod
CHANGED
@@ -627,20 +627,23 @@ fork of Mac OS files. Default is undef.
|
|
627
627
|
|
628
628
|
=item FastScan
|
629
629
|
|
630
|
-
Flag to increase speed
|
631
|
-
this option set to 1, ExifTool will not scan to the
|
632
|
-
check for an AFCP, CanonVRD, FotoStation,
|
633
|
-
trailer. This also stops the parsing
|
634
|
-
and at the audio/video data
|
635
|
-
trailing metadata (eg. XMP written
|
636
|
-
|
637
|
-
reading from a non-seekable
|
638
|
-
option, prevents scanning for XMP
|
639
|
-
2, ExifTool will also avoid
|
640
|
-
|
641
|
-
|
642
|
-
|
643
|
-
|
630
|
+
Flag to increase speed when reading files by avoiding extraction of some
|
631
|
+
types of metadata. With this option set to 1, ExifTool will not scan to the
|
632
|
+
end of a JPEG image to check for an AFCP, CanonVRD, FotoStation,
|
633
|
+
PhotoMechanic, MIE or PreviewImage trailer. This also stops the parsing
|
634
|
+
after the first comment in GIF images, and at the audio/video data of
|
635
|
+
RIFF-format files (AVI, WAV, etc), so any trailing metadata (eg. XMP written
|
636
|
+
by some utilities) may be missed. Also disables input buffering for some
|
637
|
+
types of files to reduce memory usage when reading from a non-seekable
|
638
|
+
stream. When combined with the ScanForXMP option, prevents scanning for XMP
|
639
|
+
in recognized file types. With a value of 2, ExifTool will also avoid
|
640
|
+
extracting any EXIF MakerNote information, and will stop parsing at the IDAT
|
641
|
+
chunk of PNG images. (By the PNG specification, metadata is allowed after
|
642
|
+
IDAT, but ExifTool always writes it before because some utilities will
|
643
|
+
ignore it otherwise.) When set to 3 or 4, only pseudo system tags and
|
644
|
+
FileType are generated. For 3, the file header is read to provide an
|
645
|
+
educated guess at FileType. For 4, the file is not read at all and FileType
|
646
|
+
is determined based on the file's extension. Default is undef.
|
644
647
|
|
645
648
|
=item Filter
|
646
649
|
|
@@ -681,8 +684,9 @@ it is within GeoMaxExtSecs, otherwise geotagging fails). Default is 1800.
|
|
681
684
|
|
682
685
|
Maximum extrapolation time in seconds for geotagging. Geotagging fails if
|
683
686
|
the Geotime value lies outside a GPS track by a number of seconds greater
|
684
|
-
than this. Otherwise, the coordinates of the nearest
|
685
|
-
|
687
|
+
than this. Otherwise, for an extrapolation the coordinates of the nearest
|
688
|
+
fix are taken (ie. it is assumed that you weren't moving during this
|
689
|
+
period). Default is 1800.
|
686
690
|
|
687
691
|
=item GeoMaxHDOP
|
688
692
|
|
@@ -35,7 +35,7 @@ use Image::ExifTool::Sony;
|
|
35
35
|
use Image::ExifTool::Validate;
|
36
36
|
use Image::ExifTool::MacOS;
|
37
37
|
|
38
|
-
$VERSION = '3.
|
38
|
+
$VERSION = '3.27';
|
39
39
|
@ISA = qw(Exporter);
|
40
40
|
|
41
41
|
sub NumbersFirst($$);
|
@@ -171,7 +171,9 @@ is the identifier that is actually stored in the file. B<Index#> refers to
|
|
171
171
|
the offset of a value when found at a fixed position within a data block
|
172
172
|
(B<#> is the multiplier for calculating a byte offset: B<1>, B<2>, B<4> or
|
173
173
|
B<8>). These offsets may have a decimal part which is used only to
|
174
|
-
differentiate tags with values stored at the same position.
|
174
|
+
differentiate tags with values stored at the same position. (Note that
|
175
|
+
writable tags within binary data blocks are not individually deletable,
|
176
|
+
and the usual alternative is to set them to a value of zero.) B<Sequence>
|
175
177
|
gives the order of values for a serial data stream.
|
176
178
|
|
177
179
|
A B<Tag Name> is the handle by which the information is accessed in
|
@@ -88,7 +88,7 @@ sub ProcessCTMD($$$);
|
|
88
88
|
sub ProcessExifInfo($$$);
|
89
89
|
sub SwapWords($);
|
90
90
|
|
91
|
-
$VERSION = '4.
|
91
|
+
$VERSION = '4.24';
|
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)
|
@@ -810,6 +810,7 @@ $VERSION = '4.23';
|
|
810
810
|
0x804 => 'PowerShot G5 X Mark II',
|
811
811
|
0x805 => 'PowerShot SX70 HS',
|
812
812
|
0x808 => 'PowerShot G7 X Mark III',
|
813
|
+
0x811 => 'EOS M6 Mark II', #IB
|
813
814
|
|
814
815
|
# (see http://cweb.canon.jp/e-support/faq/answer/digitalcamera/10447-1.html for PowerShot/IXUS/IXY names)
|
815
816
|
|
@@ -911,6 +912,7 @@ $VERSION = '4.23';
|
|
911
912
|
0x80000432 => 'EOS Rebel T7 / 2000D / 1500D / Kiss X90', #IB
|
912
913
|
0x80000433 => 'EOS RP',
|
913
914
|
0x80000436 => 'EOS SL3 / 250D / Kiss X10', #25
|
915
|
+
0x80000437 => 'EOS 90D', #IB
|
914
916
|
);
|
915
917
|
|
916
918
|
my %canonQuality = (
|
@@ -7878,6 +7880,7 @@ my %ciMaxFocal = (
|
|
7878
7880
|
16 => '16 (M50)',
|
7879
7881
|
17 => '17 (EOS R)', # (and PowerShot SX740HS)
|
7880
7882
|
18 => '18 (EOS RP)', # (and PowerShot SX70HS)
|
7883
|
+
19 => '19 (90D/M6mkII)',# (and PowerShot G7XmkIII)
|
7881
7884
|
},
|
7882
7885
|
},
|
7883
7886
|
0x47 => { Name => 'WB_RGGBLevelsAsShot', Format => 'int16s[4]' },
|
@@ -36,7 +36,7 @@ use strict;
|
|
36
36
|
use vars qw($VERSION $AUTOLOAD %stdCase);
|
37
37
|
use Image::ExifTool qw(:DataAccess :Utils);
|
38
38
|
|
39
|
-
$VERSION = '1.
|
39
|
+
$VERSION = '1.53';
|
40
40
|
|
41
41
|
sub ProcessPNG_tEXt($$$);
|
42
42
|
sub ProcessPNG_iTXt($$$);
|
@@ -1248,15 +1248,12 @@ sub ProcessPNG($$)
|
|
1248
1248
|
my $datChunk = '';
|
1249
1249
|
my $datCount = 0;
|
1250
1250
|
my $datBytes = 0;
|
1251
|
-
my ($n, $sig, $err, $hbuf, $dbuf, $cbuf);
|
1251
|
+
my ($n, $sig, $err, $hbuf, $dbuf, $cbuf, $fastScan);
|
1252
1252
|
my ($wasHdr, $wasEnd, $wasDat, $doTxt, @txtOffset);
|
1253
1253
|
|
1254
1254
|
# check to be sure this is a valid PNG/MNG/JNG image
|
1255
1255
|
return 0 unless $raf->Read($sig,8) == 8 and $pngLookup{$sig};
|
1256
1256
|
|
1257
|
-
# disable buffering in FastScan mode
|
1258
|
-
$$raf{NoBuffer} = 1 if $et->Options('FastScan') and not $outfile;
|
1259
|
-
|
1260
1257
|
if ($outfile) {
|
1261
1258
|
delete $$et{TextChunkType};
|
1262
1259
|
Write($outfile, $sig) or $err = 1 if $outfile;
|
@@ -1266,6 +1263,10 @@ sub ProcessPNG($$)
|
|
1266
1263
|
\%Image::ExifTool::PNG::TextualData);
|
1267
1264
|
# initialize with same directories, with PNG tags taking priority
|
1268
1265
|
$et->InitWriteDirs(\%pngMap,'PNG');
|
1266
|
+
} else {
|
1267
|
+
$fastScan = $et->Options('FastScan');
|
1268
|
+
# disable buffering in FastScan mode
|
1269
|
+
$$raf{NoBuffer} = 1 if $fastScan;
|
1269
1270
|
}
|
1270
1271
|
my ($fileType, $hdrChunk, $endChunk) = @{$pngLookup{$sig}};
|
1271
1272
|
$et->SetFileType($fileType); # set the FileType tag
|
@@ -1347,6 +1348,10 @@ sub ProcessPNG($$)
|
|
1347
1348
|
next;
|
1348
1349
|
}
|
1349
1350
|
if ($isDatChunk{$chunk}) {
|
1351
|
+
if ($fastScan and $fastScan >= 2) {
|
1352
|
+
$et->VPrint(0,"End processing at $chunk chunk due to FastScan=$fastScan setting");
|
1353
|
+
last;
|
1354
|
+
}
|
1350
1355
|
$datChunk = $chunk;
|
1351
1356
|
$datCount++;
|
1352
1357
|
$datBytes += $len;
|
@@ -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.16';
|
38
38
|
|
39
39
|
sub ProcessSRF($$$);
|
40
40
|
sub ProcessSR2($$$);
|
@@ -139,6 +139,8 @@ sub PrintInvLensSpec($;$$);
|
|
139
139
|
32850 => 'Sony FE 135mm F1.8 GM', #IB
|
140
140
|
32851 => 'Sony FE 200-600mm F5.6-6.3 G OSS', #IB
|
141
141
|
32852 => 'Sony FE 600mm F4 GM OSS', #IB
|
142
|
+
32853 => 'Sony E 16-55mm F2.8 G', #IB/JR
|
143
|
+
32854 => 'Sony E 70-350mm F4.5-6.3 G OSS', #IB/JR
|
142
144
|
32858 => 'Sony FE 35mm F1.8', #JR/IB
|
143
145
|
|
144
146
|
# (comment this out so LensID will report the LensModel, which is more useful)
|
@@ -940,7 +942,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
940
942
|
# unknown offsets or values for DSC-HX60V/HX350/HX400V/QX10/QX30/QX100/RX10/RX100M2/RX100M3/WX220/WX350,
|
941
943
|
# ILCA-68/77M2, ILCE-5000/5100/6000/7/7M2/7R/7S/QX1, Stellar2, Lusso
|
942
944
|
# unknown offsets or values for DSC-HX80/HX90V/RX0/RX1RM2/RX10M2/RX10M3/RX100M4/RX100M5/WX500, ILCE-6300/6500/7RM2/7SM2, ILCA-99M2
|
943
|
-
# unknown offsets or values for ILCE-6400/7M3/7RM3/7RM4/9, DSC-RX0M2/RX10M4/RX100M6/RX100M5A/HX99
|
945
|
+
# unknown offsets or values for ILCE-6100/6400/6600/7M3/7RM3/7RM4/9, DSC-RX0M2/RX10M4/RX100M6/RX100M5A/RX100M7/HX99
|
944
946
|
{
|
945
947
|
Name => 'Tag2010a', # ad
|
946
948
|
Condition => '$$self{Model} =~ /^NEX-5N$/',
|
@@ -981,7 +983,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
981
983
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag2010h' },
|
982
984
|
},{
|
983
985
|
Name => 'Tag2010i', # ?
|
984
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6400|7M3|7RM3|7RM4|9)|DSC-(RX10M4|RX100M6|RX100M5A|RX100M7|HX99|RX0M2))\b/',
|
986
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7M3|7RM3|7RM4|9)|DSC-(RX10M4|RX100M6|RX100M5A|RX100M7|HX99|RX0M2))\b/',
|
985
987
|
SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag2010i' },
|
986
988
|
},{
|
987
989
|
Name => 'Tag_0x2010',
|
@@ -1436,8 +1438,9 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1436
1438
|
# first 4 bytes: GroupID, read as int32u
|
1437
1439
|
# the ID displayed by Sony ImageDataConverter appears to be based on the lower 22 bits:
|
1438
1440
|
# 5 bits, 5 bits, 6 bits, 6 bits
|
1439
|
-
# last 2 bytes: ShotNumber: (1 4) to (4 4) are the 4 source images,
|
1440
|
-
# (0 4) is combined
|
1441
|
+
# last 2 bytes: ShotNumber: (1 4) to (4 4) and (1 16) to (16 16) are the 4 or 16 source images,
|
1442
|
+
# (0 4) is the combined image for 4-shot PixelShift mode
|
1443
|
+
# (0 16) is the combined image for 16-shot PixelShift mode (ILCE-7RM4)
|
1441
1444
|
RawConv => q{
|
1442
1445
|
my ($a,$b,$c) = (Get32u(\$val,0), Get8u(\$val,4), Get8u(\$val,5));
|
1443
1446
|
sprintf("%.2d%.2d%.2d%.2d %d %d 0x%x",($a>>17)&0x1f,($a>>12)&0x1f,($a>>6)&0x3f,$a&0x3f,$b,$c,$a>>22);
|
@@ -1453,11 +1456,11 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1453
1456
|
OTHER => sub {
|
1454
1457
|
my ($val, $inv) = @_;
|
1455
1458
|
if ($inv) {
|
1456
|
-
$val =~ s{Composed}{Shot 0
|
1459
|
+
$val =~ s{Composed (\d+)-shot}{Shot 0/$1}i;
|
1457
1460
|
$val =~ s{^(?:Group)?\s*(\d+)[, ]+(?:Shot\s*)?(\d+)[/ ](\d+)\s*\(?(\w+)\)?}{$1 $2 $3 $4}i or return undef;
|
1458
1461
|
} else {
|
1459
1462
|
$val =~ s{(\d+) (\d+) (\d+) (\w+)}{Group $1, Shot $2/$3 ($4)} or return undef;
|
1460
|
-
$val =~ s{Shot
|
1463
|
+
$val =~ s{Shot 0+/0*(\d+)\b}{Composed $1-shot}i;
|
1461
1464
|
}
|
1462
1465
|
return $val;
|
1463
1466
|
},
|
@@ -1499,14 +1502,14 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1499
1502
|
# from mid-2015: ILCE-7RM2/7SM2/6300 and newer models use different offsets
|
1500
1503
|
{
|
1501
1504
|
Name => 'Tag9050a',
|
1502
|
-
Condition => '$$self{Model} !~ /^(DSC-|Stellar|ILCE-(6300|6400|6500|7M3|7RM2|7RM3|7RM4|7SM2|9)|ILCA-99M2)/',
|
1505
|
+
Condition => '$$self{Model} !~ /^(DSC-|Stellar|ILCE-(6100|6300|6400|6500|6600|7M3|7RM2|7RM3|7RM4|7SM2|9)|ILCA-99M2)/',
|
1503
1506
|
SubDirectory => {
|
1504
1507
|
TagTable => 'Image::ExifTool::Sony::Tag9050a',
|
1505
1508
|
ByteOrder => 'LittleEndian',
|
1506
1509
|
},
|
1507
1510
|
},{
|
1508
1511
|
Name => 'Tag9050b',
|
1509
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6300|6400|6500|7M3|7RM2|7RM3|7RM4|7SM2|9)|ILCA-99M2)/',
|
1512
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6100|6300|6400|6500|6600|7M3|7RM2|7RM3|7RM4|7SM2|9)|ILCA-99M2)/',
|
1510
1513
|
SubDirectory => {
|
1511
1514
|
TagTable => 'Image::ExifTool::Sony::Tag9050b',
|
1512
1515
|
ByteOrder => 'LittleEndian',
|
@@ -1524,9 +1527,9 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1524
1527
|
# 0xd0 (e) H90, W650, W690: tag9400 decoding appears not valid/different
|
1525
1528
|
# 0x23 (e) for DSC-RX10/HX60V/HX350/HX400V/WX220/WX350, ILCE-7/7R/5000/6000, ILCA-68/77M2
|
1526
1529
|
# 0x24 (e) for ILCA-99M2,ILCE-5100/6300/6500/7M2/7RM2/7S/7SM2/QX1, DSC-HX80/HX90V/QX30/RX0/RX100M3/RX100M4/RX100M5/RX10M2/RX10M3/RX1RM2/WX500
|
1527
|
-
# 0x26 (e) for ILCE-6400/7M3/7RM3/9, DSC-RX0M2/RX10M4/RX100M5A/RX100M6/HX99
|
1528
|
-
# 0x28 (e) for ILCE-7RM4
|
1529
|
-
# first byte decoded: 40, 204, 202, 27, 58, 62, 48, 215 respectively
|
1530
|
+
# 0x26 (e) for ILCE-6100/6400/6600/7M3/7RM3/9, DSC-RX0M2/RX10M4/RX100M5A/RX100M6/HX99
|
1531
|
+
# 0x28 (e) for ILCE-7RM4, DSC-RX100M7
|
1532
|
+
# first byte decoded: 40, 204, 202, 27, 58, 62, 48, 215, 28 respectively
|
1530
1533
|
{
|
1531
1534
|
Name => 'Tag9400a',
|
1532
1535
|
Condition => q{
|
@@ -1598,9 +1601,10 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1598
1601
|
# 80 00 fa 0f 0x0add (x) ILCE-7M3/7RM3 v1.00-v3.01
|
1599
1602
|
# 82 00 fc 0f 0x0ad9 (y) DSC-RX100M5A v1.00, DSC-RX100M6 v1.00
|
1600
1603
|
# 90 00 fe 0f 0x098f? (z) DSC-HX99 v1.00
|
1601
|
-
# 92 10 ff 0f 0x0990 (za) ILCE-6400 v1.00
|
1604
|
+
# 92 10 ff 0f 0x0990 (za) ILCE-6100/6400/6600 v1.00
|
1602
1605
|
# 94 00 ce 0b 0x0879 (zb) ILCE-9 v5.0x, DSC-RX0M2
|
1603
1606
|
# 98 00 db 0c 0x088a (zc) ILCE-7RM4 v1.00
|
1607
|
+
# 9a 00 e3 0c 0x088a (zc) DSC-RX100M7 v1.00
|
1604
1608
|
#
|
1605
1609
|
# 0x0004 - (RX100: 0 or 1. subsequent data valid only if 1 - PH)
|
1606
1610
|
# 0x0007 => {
|
@@ -1639,7 +1643,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1639
1643
|
# 0x1d 0x01 DSC-RX10M4
|
1640
1644
|
# 0x1e 0x01 ILCE-7M3/7RM3, DSC-RX100M5A/RX100M6
|
1641
1645
|
# 0x1f 0x01 DSC-HX99
|
1642
|
-
# 0x20 0x01 ILCE-6400/7RM4, ILCE-9 v5.0x, DSC-RX0M2
|
1646
|
+
# 0x20 0x01 ILCE-6100/6400/6600/7RM4, ILCE-9 v5.0x, DSC-RX0M2/RX100M7
|
1643
1647
|
# var var SLT-A58/A99V, HV, ILCA-68/77M2/99M2
|
1644
1648
|
# only valid when first byte 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x17, 0x19, 0x1a, 0x1c (enciphered 0x8a, 0x70, 0xb6, 0x69, 0x88, 0x20, 0x30, 0xd7, 0xbb, 0x92, 0x28)
|
1645
1649
|
# Condition => '$$self{DoubleCipher} ? $$valPt =~ /^[\x7e\x46\x1d\x18\x3a\x95\x24\x26\xd6]\x01/ : $$valPt =~ /^[\x8a\x70\xb6\x69\x88\x20\x30\xd7\xbb\x92\x28]\x01/',
|
@@ -1663,7 +1667,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1663
1667
|
# 13 0 9 2 2 DSC-QX10/QX100/RX100M2
|
1664
1668
|
# 15 0 35 2 2 ILCA-68/77M2, ILCE-5000/5100/6000/7/7R/7S/7M2/QX1, DSC-HX60V/HX350/HX400V/QX30/RX10/RX100M3/WX220/WX350
|
1665
1669
|
# 16 0 85 2 2 DSC-HX80/HX90V/WX500
|
1666
|
-
# 17 0 232 1 2 DSC-RX0/RX0M2/RX1RM2/RX10M2/RX10M3/RX10M4/RX100M4/RX100M5/RX100M5A/RX100M6/HX99, ILCE-6300/6400/6500/7M3/7RM2/7RM3/7RM4/7SM2/9, ILCA-99M2
|
1670
|
+
# 17 0 232 1 2 DSC-RX0/RX0M2/RX1RM2/RX10M2/RX10M3/RX10M4/RX100M4/RX100M5/RX100M5A/RX100M6/RX100M7/HX99, ILCE-6100/6300/6400/6500/6600/7M3/7RM2/7RM3/7RM4/7SM2/9, ILCA-99M2
|
1667
1671
|
# other values for Panorama images and several other models
|
1668
1672
|
0x9404 => [{
|
1669
1673
|
Name => 'Tag9404a',
|
@@ -1697,7 +1701,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1697
1701
|
# 142 var (0x25 = 37 var enc.) DSC-HX80/HX90V/RX1RM2/RX10M2/RX10M3/RX100M4/WX500, ILCE-6300/7RM2/7SM2
|
1698
1702
|
# 144 var (0xe1 = 225 var enc.) DSC-RX100M5
|
1699
1703
|
# 145 var (0x76 = 118 var enc.) ILCA-99M2, ILCE-6500, DSC-RX0
|
1700
|
-
# 163 var (0x8b = 139 var enc.) ILCE-6400/7M3/7RM3/7RM4/9, DSC-RX0M2/RX10M4/RX100M5A/RX100M6/HX99
|
1704
|
+
# 163 var (0x8b = 139 var enc.) ILCE-6100/6400/6600/7M3/7RM3/7RM4/9, DSC-RX0M2/RX10M4/RX100M5A/RX100M6/RX100M7/HX99
|
1701
1705
|
0x9405 => [{
|
1702
1706
|
Name => 'Tag9405a',
|
1703
1707
|
# first byte must be 0x1b or 0x40 or 0x7d
|
@@ -1715,7 +1719,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1715
1719
|
0x9406 => [{
|
1716
1720
|
Name => 'Tag9406',
|
1717
1721
|
# - first byte must be 0x01 or 0x02 (enciphered 0x01 or 0x08),
|
1718
|
-
# or 0x03 (enc. 0x1b) for ILCE-6300/6400/6500/7M3/7RM2/7RM3/7RM4/7SM2/9, and ILCA-99M2
|
1722
|
+
# or 0x03 (enc. 0x1b) for ILCE-6100/6300/6400/6500/6600/7M3/7RM2/7RM3/7RM4/7SM2/9, and ILCA-99M2
|
1719
1723
|
# third byte must be 0x02 or 0x03 (enciphered 0x08 or 0x1b) - ref JR
|
1720
1724
|
# (applies to most SLT/ILCA and NEX/ILCE models, but no DSC models)
|
1721
1725
|
Condition => '$$valPt =~ /^[\x01\x08\x1b].[\x08\x1b]/s',
|
@@ -1896,6 +1900,8 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
1896
1900
|
372 => 'DSC-RX0M2', #JR
|
1897
1901
|
374 => 'DSC-RX100M7', #IB
|
1898
1902
|
375 => 'ILCE-7RM4', #IB
|
1903
|
+
378 => 'ILCE-6600', #IB/JR
|
1904
|
+
379 => 'ILCE-6100', #IB/JR
|
1899
1905
|
},
|
1900
1906
|
},
|
1901
1907
|
0xb020 => { #2
|
@@ -2193,6 +2199,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
|
|
2193
2199
|
4 => '+4/3', #JR (NC)
|
2194
2200
|
5 => '+5/3', #JR (NC)
|
2195
2201
|
6 => '+6/3', #JR
|
2202
|
+
9 => '+9/3', #JR
|
2196
2203
|
128 => 'n/a', #JR (HX9V)
|
2197
2204
|
32767 => 'High',
|
2198
2205
|
},
|
@@ -6794,7 +6801,7 @@ my %isoSetting2010 = (
|
|
6794
6801
|
CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
|
6795
6802
|
FORMAT => 'int8u',
|
6796
6803
|
NOTES => q{
|
6797
|
-
Valid for ILCE-6400/7M3/7RM3/7RM4/9, DSC-RX0M2/RX10M4/RX100M6/RX100M5A/HX99.
|
6804
|
+
Valid for ILCE-6100/6400/6600/7M3/7RM3/7RM4/9, DSC-RX0M2/RX10M4/RX100M6/RX100M5A/RX100M7/HX99.
|
6798
6805
|
},
|
6799
6806
|
WRITABLE => 1,
|
6800
6807
|
FIRST_ENTRY => 0,
|
@@ -7366,7 +7373,7 @@ my %isoSetting2010 = (
|
|
7366
7373
|
CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
|
7367
7374
|
FORMAT => 'int8u',
|
7368
7375
|
NOTES => q{
|
7369
|
-
Valid from July 2015 for ILCE-6300/6400/6500/7M3/7RM2/7RM3/7RM4/7SM2/9,
|
7376
|
+
Valid from July 2015 for ILCE-6100/6300/6400/6500/6600/7M3/7RM2/7RM3/7RM4/7SM2/9,
|
7370
7377
|
ILCA-99M2.
|
7371
7378
|
},
|
7372
7379
|
WRITABLE => 1,
|
@@ -7455,7 +7462,7 @@ my %isoSetting2010 = (
|
|
7455
7462
|
# March 2019: ILCE-9 with v5.0x firmware follows ILCE-6400 in many tags ...
|
7456
7463
|
0x0050 => {
|
7457
7464
|
Name => 'ShutterCount2',
|
7458
|
-
Condition => '(($$self{FlashFired} & 0x01) != 1) and ($$self{Model} =~ /^(ILCE-(6400|7RM4))/ or $$self{Software} =~ /^ILCE-9 v5.0/)',
|
7465
|
+
Condition => '(($$self{FlashFired} & 0x01) != 1) and ($$self{Model} =~ /^(ILCE-(6100|6400|6600|7RM4))/ or $$self{Software} =~ /^ILCE-9 v5.0/)',
|
7459
7466
|
Format => 'int32u',
|
7460
7467
|
RawConv => '$val & 0x00ffffff',
|
7461
7468
|
},
|
@@ -7472,13 +7479,13 @@ my %isoSetting2010 = (
|
|
7472
7479
|
# 0x0058, 0x0061: E-Mount: ShutterCount and dateTime
|
7473
7480
|
0x0058 => { # appears not valid when flash is used ... not for ILCA-99M2
|
7474
7481
|
Name => 'ShutterCount2',
|
7475
|
-
Condition => '(($$self{FlashFired} & 0x01) != 1) and ($$self{Model} !~ /^(ILCA-99M2|ILCE-(6400|7M3|7RM3|7RM4))/) and $$self{Software} !~ /^ILCE-9 v5.0/',
|
7482
|
+
Condition => '(($$self{FlashFired} & 0x01) != 1) and ($$self{Model} !~ /^(ILCA-99M2|ILCE-(6100|6400|6600|7M3|7RM3|7RM4))/) and $$self{Software} !~ /^ILCE-9 v5.0/',
|
7476
7483
|
Format => 'int32u',
|
7477
7484
|
RawConv => '$val & 0x00ffffff',
|
7478
7485
|
},
|
7479
7486
|
0x0061 => { # only minutes-seconds, not for ILCA-99M2, ILCE-9
|
7480
7487
|
Name => 'SonyTimeMinSec',
|
7481
|
-
Condition => '$$self{Model} !~ /^(ILCA-99M2|ILCE-(6400|7M3|7RM3|7RM4|9))/',
|
7488
|
+
Condition => '$$self{Model} !~ /^(ILCA-99M2|ILCE-(6100|6400|6600|7M3|7RM3|7RM4|9))/',
|
7482
7489
|
Format => 'undef[2]',
|
7483
7490
|
ValueConv => q{
|
7484
7491
|
my @v = unpack('C*', $val);
|
@@ -7487,7 +7494,7 @@ my %isoSetting2010 = (
|
|
7487
7494
|
},
|
7488
7495
|
0x006b => {
|
7489
7496
|
Name => 'ReleaseMode2',
|
7490
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6400|7RM4))/ or $$self{Software} =~ /^ILCE-9 v5.0/',
|
7497
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7RM4))/ or $$self{Software} =~ /^ILCE-9 v5.0/',
|
7491
7498
|
%releaseMode2,
|
7492
7499
|
},
|
7493
7500
|
0x006d => {
|
@@ -7497,7 +7504,7 @@ my %isoSetting2010 = (
|
|
7497
7504
|
},
|
7498
7505
|
0x0073 => {
|
7499
7506
|
Name => 'ReleaseMode2',
|
7500
|
-
Condition => '$$self{Model} !~ /^(ILCE-(6400|7M3|7RM3|7RM4))/ and $$self{Software} !~ /^ILCE-9 v5.0/',
|
7507
|
+
Condition => '$$self{Model} !~ /^(ILCE-(6100|6400|6600|7M3|7RM3|7RM4))/ and $$self{Software} !~ /^ILCE-9 v5.0/',
|
7501
7508
|
%releaseMode2,
|
7502
7509
|
},
|
7503
7510
|
0x0088 => {
|
@@ -7568,7 +7575,7 @@ my %isoSetting2010 = (
|
|
7568
7575
|
#
|
7569
7576
|
0x019f => {
|
7570
7577
|
Name => 'ShutterCount3',
|
7571
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6400|7M3|7RM3|7RM4|9))/',
|
7578
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7M3|7RM3|7RM4|9))/',
|
7572
7579
|
Format => 'int32u',
|
7573
7580
|
RawConv => '$val == 0 ? undef : $val',
|
7574
7581
|
},
|
@@ -7620,7 +7627,7 @@ my %isoSetting2010 = (
|
|
7620
7627
|
},
|
7621
7628
|
0x01f0 => {
|
7622
7629
|
Name => 'LensSpecFeatures',
|
7623
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6400|7M3|7RM3|9))/ and $$self{Software} !~ /^ILCE-9 v5.0/',
|
7630
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7M3|7RM3|9))/ and $$self{Software} !~ /^ILCE-9 v5.0/',
|
7624
7631
|
Priority => 0,
|
7625
7632
|
Format => 'undef[2]',
|
7626
7633
|
ValueConv => 'join " ", unpack "H2H2", $val',
|
@@ -7827,15 +7834,15 @@ my %isoSetting2010 = (
|
|
7827
7834
|
WRITABLE => 1,
|
7828
7835
|
NOTES => q{
|
7829
7836
|
Valid for DSC-HX60V/HX80/HX90V/HX99/HX350/HX400V/QX30/RX0/RX1RM2/RX10/
|
7830
|
-
RX10M2/RX10M3/RX10M4/RX100M3/RX100M4/RX100M5/RX100M5A/RX100M6/
|
7831
|
-
WX500, ILCE-7/7R/7S/7M2/7M3/7RM2/7RM3/7RM4/7SM2/9/5000/5100/
|
7832
|
-
6500/QX1, ILCA-68/77M2/99M2.
|
7837
|
+
RX10M2/RX10M3/RX10M4/RX100M3/RX100M4/RX100M5/RX100M5A/RX100M6/RX100M7/
|
7838
|
+
WX220/WX350/WX500, ILCE-7/7R/7S/7M2/7M3/7RM2/7RM3/7RM4/7SM2/9/5000/5100/
|
7839
|
+
6000/6100/6300/6400/6500/6600/QX1, ILCA-68/77M2/99M2.
|
7833
7840
|
},
|
7834
7841
|
FIRST_ENTRY => 0,
|
7835
7842
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
7836
7843
|
0x0009 => { %releaseMode2 },
|
7837
7844
|
0x000a => [{
|
7838
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6400|7M3|7RM3|7RM4|9)|DSC-(RX10M4|RX100M6|RX100M7|RX100M5A|HX99|RX0M2))\b/',
|
7845
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7M3|7RM3|7RM4|9)|DSC-(RX10M4|RX100M6|RX100M7|RX100M5A|HX99|RX0M2))\b/',
|
7839
7846
|
Name => 'ShotNumberSincePowerUp',
|
7840
7847
|
Format => 'int8u',
|
7841
7848
|
},{
|
@@ -7857,6 +7864,7 @@ my %isoSetting2010 = (
|
|
7857
7864
|
9 => '9 shots', # ILCE-7RM2 9-shot bracketing
|
7858
7865
|
10 => '10 shots',
|
7859
7866
|
12 => '12 shots', # ILCA-77M2 12-shot MFNR-mode
|
7867
|
+
16 => '16 shots', # ILCE-7RM4 16-shot PixelShift
|
7860
7868
|
100 => 'Continuous - iSweep Panorama',
|
7861
7869
|
200 => 'Continuous - Sweep Panorama',
|
7862
7870
|
},
|
@@ -8221,9 +8229,9 @@ my %isoSetting2010 = (
|
|
8221
8229
|
DATAMEMBER => [ 0x005e ],
|
8222
8230
|
NOTES => q{
|
8223
8231
|
Valid for DSC-HX60V/HX80/HX90V/HX99/HX350/HX400V/QX30/RX0/RX10/RX10M2/
|
8224
|
-
RX10M3/RX10M4/RX100M3/RX100M4/RX100M5/RX100M5A/RX100M6/WX220/WX350,
|
8225
|
-
7M2/7M3/7R/7RM2/7RM3/7RM4/7S/7SM2/9/5000/5100/6000/6300/
|
8226
|
-
77M2/99M2.
|
8232
|
+
RX10M3/RX10M4/RX100M3/RX100M4/RX100M5/RX100M5A/RX100M6/RX100M7/WX220/WX350,
|
8233
|
+
ILCE-7/7M2/7M3/7R/7RM2/7RM3/7RM4/7S/7SM2/9/5000/5100/6000/6100/6300/6400/
|
8234
|
+
6500/6600/QX1, ILCA-68/77M2/99M2.
|
8227
8235
|
},
|
8228
8236
|
0x0004 => {
|
8229
8237
|
Name => 'SonyISO',
|
@@ -8376,7 +8384,7 @@ my %isoSetting2010 = (
|
|
8376
8384
|
},
|
8377
8385
|
0x0342 => {
|
8378
8386
|
Name => 'LensZoomPosition',
|
8379
|
-
Condition => '$$self{Model} !~ /^(ILCA-|ILCE-(7RM2|7M3|7RM3|7RM4|7SM2|6300|6400|6500|9)|DSC-(HX80|HX90V|HX99|RX0|RX10M2|RX10M3|RX10M4|RX100M4|RX100M5|RX100M5A|RX100M6|RX100M7|WX500))/',
|
8387
|
+
Condition => '$$self{Model} !~ /^(ILCA-|ILCE-(7RM2|7M3|7RM3|7RM4|7SM2|6100|6300|6400|6500|6600|9)|DSC-(HX80|HX90V|HX99|RX0|RX10M2|RX10M3|RX10M4|RX100M4|RX100M5|RX100M5A|RX100M6|RX100M7|WX500))/',
|
8380
8388
|
Format => 'int16u',
|
8381
8389
|
PrintConv => 'sprintf("%.0f%%",$val/10.24)',
|
8382
8390
|
PrintConvInv => '$val=~s/ ?%$//; $val * 10.24',
|
@@ -8388,7 +8396,7 @@ my %isoSetting2010 = (
|
|
8388
8396
|
},
|
8389
8397
|
0x034e => {
|
8390
8398
|
Name => 'LensZoomPosition',
|
8391
|
-
Condition => '$$self{Model} =~ /^(DSC-(RX100M5|RX100M5A|RX100M6|RX100M7|RX10M4|HX99)|ILCE-(6400|7M3|7RM3|7RM4))/',
|
8399
|
+
Condition => '$$self{Model} =~ /^(DSC-(RX100M5|RX100M5A|RX100M6|RX100M7|RX10M4|HX99)|ILCE-(6100|6400|6600|7M3|7RM3|7RM4))/',
|
8392
8400
|
Format => 'int16u',
|
8393
8401
|
PrintConv => 'sprintf("%.0f%%",$val/10.24)',
|
8394
8402
|
PrintConvInv => '$val=~s/ ?%$//; $val * 10.24',
|
@@ -8400,7 +8408,7 @@ my %isoSetting2010 = (
|
|
8400
8408
|
},
|
8401
8409
|
0x035c => {
|
8402
8410
|
Name => 'VignettingCorrParams',
|
8403
|
-
Condition => '$$self{Model} =~ /^(ILCA-99M2|ILCE-(6400|6500|7M3|7RM3|7RM4|9))/',
|
8411
|
+
Condition => '$$self{Model} =~ /^(ILCA-99M2|ILCE-(6100|6400|6500|6600|7M3|7RM3|7RM4|9))/',
|
8404
8412
|
Format => 'int16s[16]',
|
8405
8413
|
},
|
8406
8414
|
0x035a => {
|
@@ -8437,7 +8445,7 @@ my %isoSetting2010 = (
|
|
8437
8445
|
},
|
8438
8446
|
0x03b8 => {
|
8439
8447
|
Name => 'ChromaticAberrationCorrParams',
|
8440
|
-
Condition => '$$self{Model} =~ /^(ILCE-(6400|7M3|7RM3|7RM4|9))/',
|
8448
|
+
Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7M3|7RM3|7RM4|9))/',
|
8441
8449
|
Format => 'int16s[32]',
|
8442
8450
|
},
|
8443
8451
|
);
|
@@ -8453,7 +8461,7 @@ my %isoSetting2010 = (
|
|
8453
8461
|
GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
|
8454
8462
|
# 0x0000: 1 for SLT-A37/A57/A65/A77, NEX-5N/7/F3/VG20
|
8455
8463
|
# 2 for SLT-A58/99V, NEX-3N/5R/5T/6/VG30/VG900, ILCA-68/77M2, ILCE-3000/3500/7/7M2/7R/7S/5000/6000
|
8456
|
-
# 3 for ILCA-99M2, ILCE-6300/6400/6500/7M3/7RM2/7RM3/7RM4/7SM2/9
|
8464
|
+
# 3 for ILCA-99M2, ILCE-6100/6300/6400/6500/6600/7M3/7RM2/7RM3/7RM4/7SM2/9
|
8457
8465
|
# 0x0001+0x0002: Int16u, seen 580 - 770: similar to "BatteryUnknown" ??
|
8458
8466
|
# 0x0005: int8u, seen 73 - 117: maybe Fahrenheit? Higher than "AmbientTemperature", but same trend.
|
8459
8467
|
0x0005 => {
|
@@ -8601,7 +8609,7 @@ my %isoSetting2010 = (
|
|
8601
8609
|
# ILCE-6000 v1.20-v3.20
|
8602
8610
|
# 1.60: ILCE-6300/6500, ILCE-7RM2 v3.05-v4.00
|
8603
8611
|
# 1.70: ILCE-7M3/7RM3, ILCE-9 v1.00-v4.10
|
8604
|
-
# 1.80: ILCE-6400/7RM4, ILCE-9 v5.0x
|
8612
|
+
# 1.80: ILCE-6100/6400/6600/7RM4, ILCE-9 v5.0x
|
8605
8613
|
},
|
8606
8614
|
0x000d => {
|
8607
8615
|
Name => 'LensE-mountVersion',
|
@@ -8624,9 +8632,10 @@ my %isoSetting2010 = (
|
|
8624
8632
|
# 1.41: SELP18105G Ver.02
|
8625
8633
|
# 1.50: SEL28F20, SEL90M28G, Zeiss Batis 18mm/25mm/85mm/135mm, Zeiss Loxia 21mm, Zeiss Loxia 35mm/50mm Ver.02,
|
8626
8634
|
# Tokina FiRIN 20mm
|
8627
|
-
# 1.60: SEL1224G, SEL1635GM, SELP18110G, SEL18135, SEL2470GM, SEL24105G, SEL35F18F, SEL50F14Z, SEL50F18F,
|
8628
|
-
# SEL70200GM, SEL70300G, SEL85F14GM, SEL85F18, SEL100F28GM, SEL100400GM, SEL135F18GM,
|
8629
|
-
# Sigma 16F14DCDN/30F14DCDN/35F12DGDN/45F28DGDN, Sigma MC-11, Samyang AF 14mm/50mm,
|
8635
|
+
# 1.60: SEL1224G, SEL1635GM, SEL1655G, SELP18110G, SEL18135, SEL2470GM, SEL24105G, SEL35F18F, SEL50F14Z, SEL50F18F,
|
8636
|
+
# SEL50M28, SEL70200GM, SEL70300G, SEL70350G, SEL85F14GM, SEL85F18, SEL100F28GM, SEL100400GM, SEL135F18GM,
|
8637
|
+
# SEL200600G, SEL600F40GM, Sigma 16F14DCDN/30F14DCDN/35F12DGDN/45F28DGDN, Sigma MC-11, Samyang AF 14mm/50mm,
|
8638
|
+
# Voigtlander 15mm, Viltrox 85mm MF
|
8630
8639
|
# 1.70: LA-EA3 Ver.02, Samyang AF 24mm/35mm/85mm, Tamron 17-28mm, 28-75mm, Tokina FiRIN 20mm AF Ver.01, Tokina FiRIN 100mm Macro,
|
8631
8640
|
# Voigtlander 10mm/12mm/40mm/65mm, Zeiss Loxia 25mm/85mm, Sigma 14-24mm
|
8632
8641
|
# 1.80: Voigtlander 21mm
|
@@ -8671,7 +8680,7 @@ my %isoSetting2010 = (
|
|
8671
8680
|
# 1 1 3 0 for ILCA-68/77M2/99M2
|
8672
8681
|
# 0 0 0 0 for NEX and ILCE-3000/3500, also seen for SLT/ILCA with non-AF lens
|
8673
8682
|
# 1 0 0 0 for ILCE-5000/5100/6000/7/7M2/7R/7S/QX1
|
8674
|
-
# 6 0 0 0 for ILCE-6300/6400/6500/7M3/7RM2/7RM3/7RM4/7SM2/9
|
8683
|
+
# 6 0 0 0 for ILCE-6100/6300/6400/6500/6600/7M3/7RM2/7RM3/7RM4/7SM2/9
|
8675
8684
|
# 0 2 0 0 for NEX/ILCE with LA-EA2/EA4 Phase-AF adapter
|
8676
8685
|
# 2 0 0 0 seen for a few NEX-5N images
|
8677
8686
|
# 2 2 0 0 seen for a few NEX-5N/7 images with LA-EA2 adapter
|
@@ -20,7 +20,9 @@ is the identifier that is actually stored in the file. B<Index#> refers to
|
|
20
20
|
the offset of a value when found at a fixed position within a data block
|
21
21
|
(B<#> is the multiplier for calculating a byte offset: B<1>, B<2>, B<4> or
|
22
22
|
B<8>). These offsets may have a decimal part which is used only to
|
23
|
-
differentiate tags with values stored at the same position.
|
23
|
+
differentiate tags with values stored at the same position. (Note that
|
24
|
+
writable tags within binary data blocks are not individually deletable,
|
25
|
+
and the usual alternative is to set them to a value of zero.) B<Sequence>
|
24
26
|
gives the order of values for a serial data stream.
|
25
27
|
|
26
28
|
A B<Tag Name> is the handle by which the information is accessed in
|
@@ -17264,7 +17266,7 @@ ILCE-6300/6500/7RM2/7SM2, ILCA-99M2.
|
|
17264
17266
|
|
17265
17267
|
=head3 Sony Tag2010i Tags
|
17266
17268
|
|
17267
|
-
Valid for ILCE-6400/7M3/7RM3/7RM4/9, DSC-RX0M2/RX10M4/RX100M6/RX100M5A/HX99.
|
17269
|
+
Valid for ILCE-6100/6400/6600/7M3/7RM3/7RM4/9, DSC-RX0M2/RX10M4/RX100M6/RX100M5A/RX100M7/HX99.
|
17268
17270
|
|
17269
17271
|
Index1 Tag Name Writable
|
17270
17272
|
------ -------- --------
|
@@ -17425,7 +17427,7 @@ substitution cipher, but the deciphered values are listed below.
|
|
17425
17427
|
|
17426
17428
|
=head3 Sony Tag9050b Tags
|
17427
17429
|
|
17428
|
-
Valid from July 2015 for ILCE-6300/6400/6500/7M3/7RM2/7RM3/7RM4/7SM2/9,
|
17430
|
+
Valid from July 2015 for ILCE-6100/6300/6400/6500/6600/7M3/7RM2/7RM3/7RM4/7SM2/9,
|
17429
17431
|
ILCA-99M2.
|
17430
17432
|
|
17431
17433
|
Index1 Tag Name Writable
|
@@ -17498,9 +17500,9 @@ DSC-HX50V, DSC-QX10/QX100.
|
|
17498
17500
|
=head3 Sony Tag9400c Tags
|
17499
17501
|
|
17500
17502
|
Valid for DSC-HX60V/HX80/HX90V/HX99/HX350/HX400V/QX30/RX0/RX1RM2/RX10/
|
17501
|
-
RX10M2/RX10M3/RX10M4/RX100M3/RX100M4/RX100M5/RX100M5A/RX100M6/
|
17502
|
-
WX500, ILCE-7/7R/7S/7M2/7M3/7RM2/7RM3/7RM4/7SM2/9/5000/5100/
|
17503
|
-
6500/QX1, ILCA-68/77M2/99M2.
|
17503
|
+
RX10M2/RX10M3/RX10M4/RX100M3/RX100M4/RX100M5/RX100M5A/RX100M6/RX100M7/
|
17504
|
+
WX220/WX350/WX500, ILCE-7/7R/7S/7M2/7M3/7RM2/7RM3/7RM4/7SM2/9/5000/5100/
|
17505
|
+
6000/6100/6300/6400/6500/6600/QX1, ILCA-68/77M2/99M2.
|
17504
17506
|
|
17505
17507
|
Index1 Tag Name Writable
|
17506
17508
|
------ -------- --------
|
@@ -17598,9 +17600,9 @@ Valid for SLT, NEX, ILCE-3000/3500 and several DSC models.
|
|
17598
17600
|
=head3 Sony Tag9405b Tags
|
17599
17601
|
|
17600
17602
|
Valid for DSC-HX60V/HX80/HX90V/HX99/HX350/HX400V/QX30/RX0/RX10/RX10M2/
|
17601
|
-
RX10M3/RX10M4/RX100M3/RX100M4/RX100M5/RX100M5A/RX100M6/WX220/WX350,
|
17602
|
-
7M2/7M3/7R/7RM2/7RM3/7RM4/7S/7SM2/9/5000/5100/6000/6300/
|
17603
|
-
77M2/99M2.
|
17603
|
+
RX10M3/RX10M4/RX100M3/RX100M4/RX100M5/RX100M5A/RX100M6/RX100M7/WX220/WX350,
|
17604
|
+
ILCE-7/7M2/7M3/7R/7RM2/7RM3/7RM4/7S/7SM2/9/5000/5100/6000/6100/6300/6400/
|
17605
|
+
6500/6600/QX1, ILCA-68/77M2/99M2.
|
17604
17606
|
|
17605
17607
|
Index1 Tag Name Writable
|
17606
17608
|
------ -------- --------
|
@@ -622,6 +622,7 @@ sub RestoreStruct($;$)
|
|
622
622
|
my ($key, %structs, %var, %lists, $si, %listKeys, @siList);
|
623
623
|
my $ex = $$et{TAG_EXTRA};
|
624
624
|
my $valueHash = $$et{VALUE};
|
625
|
+
my $fileOrder = $$et{FILE_ORDER};
|
625
626
|
my $tagExtra = $$et{TAG_EXTRA};
|
626
627
|
foreach $key (keys %{$$et{TAG_INFO}}) {
|
627
628
|
$$ex{$key} or next;
|
@@ -765,7 +766,13 @@ sub RestoreStruct($;$)
|
|
765
766
|
# everything else, and this is really what we care about)
|
766
767
|
my $k = $listKeys{$oldStruct};
|
767
768
|
if ($k) { # ($k will be undef for an empty structure)
|
768
|
-
$k lt $key
|
769
|
+
if ($k lt $key) {
|
770
|
+
# keep lowest file order
|
771
|
+
$$fileOrder{$k} = $$fileOrder{$key} if $$fileOrder{$k} > $$fileOrder{$key};
|
772
|
+
$et->DeleteTag($key);
|
773
|
+
next;
|
774
|
+
}
|
775
|
+
$$fileOrder{$key} = $$fileOrder{$k} if $$fileOrder{$key} > $$fileOrder{$k};
|
769
776
|
$et->DeleteTag($k); # remove tag with greater copy number
|
770
777
|
}
|
771
778
|
}
|
@@ -776,11 +783,11 @@ sub RestoreStruct($;$)
|
|
776
783
|
# save strInfo ref and file order
|
777
784
|
if ($var{$strInfo}) {
|
778
785
|
# set file order to just before the first associated flattened tag
|
779
|
-
if ($var{$strInfo}[1] > $$
|
780
|
-
$var{$strInfo}[1] = $$
|
786
|
+
if ($var{$strInfo}[1] > $$fileOrder{$key}) {
|
787
|
+
$var{$strInfo}[1] = $$fileOrder{$key} - 0.5;
|
781
788
|
}
|
782
789
|
} else {
|
783
|
-
$var{$strInfo} = [ $strInfo, $$
|
790
|
+
$var{$strInfo} = [ $strInfo, $$fileOrder{$key} - 0.5 ];
|
784
791
|
}
|
785
792
|
# preserve original flattened tags if requested
|
786
793
|
if ($keepFlat) {
|
@@ -810,7 +817,7 @@ sub RestoreStruct($;$)
|
|
810
817
|
foreach $si (sort { $var{$a}[1] <=> $var{$b}[1] } @siList) {
|
811
818
|
$key = $et->FoundTag($var{$si}[0], '');
|
812
819
|
$$valueHash{$key} = $structs{$si};
|
813
|
-
$$
|
820
|
+
$$fileOrder{$key} = $var{$si}[1];
|
814
821
|
}
|
815
822
|
}
|
816
823
|
|
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.65.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-08-
|
12
|
+
date: 2019-08-29 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: exiftool
|