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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ed8e2593ed82c4f03352524a9533ca0b8f58b029
4
- data.tar.gz: da4126b33c5a53e17233ee3edf5977f0b676ec97
3
+ metadata.gz: 7b7ab4c79fc1d811625bd4643955a68d924ef262
4
+ data.tar.gz: ac2f64040dc9f70ca62fd12d5945d25e18a99606
5
5
  SHA512:
6
- metadata.gz: ed09f33b6a3cff1381aa1e443ee3745e5d2ceb50746eb684bb3963128c283f3de519ed4850b992739f39ea7e4e5252f9a152c0362df7d61891a1d4be4c747e04
7
- data.tar.gz: 2df102f545c23263b6549115915df802023d9bc1c9c75992edda90d9b61e312b94180434e2f7599a38e9bf883046359f9535e812b9b47eb88edefb9c28929940
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
@@ -47,6 +47,6 @@
47
47
  }
48
48
  },
49
49
  "release_status" : "stable",
50
- "version" : "11.64",
50
+ "version" : "11.65",
51
51
  "x_serialization_backend" : "JSON::PP version 4.02"
52
52
  }
data/bin/META.yml CHANGED
@@ -28,5 +28,5 @@ recommends:
28
28
  Time::HiRes: '0'
29
29
  requires:
30
30
  perl: '5.004'
31
- version: '11.64'
31
+ version: '11.65'
32
32
  x_serialization_backend: 'CPAN::Meta::YAML version 0.018'
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.64.tar.gz | tar -xf -
108
- cd Image-ExifTool-11.64
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-2018, Phil Harvey
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.64';
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.64 --
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. After the
5942
- B<-geotag> option has been specified, the value of the C<Geotime> tag is
5943
- written to define a date/time for the position interpolation. If C<Geotime>
5944
- is not specified, the value is copied from C<DateTimeOriginal#> (the C<#> is
5945
- added to copy the unformatted value, avoiding potential conflicts with the
5946
- B<-d> option). For example, the following two commands are equivalent:
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 GPSRoll. By default, tags are created in
5959
- EXIF, and updated in XMP only if they already exist. However,
5960
- C<EXIF:Geotime> or C<XMP:Geotime> may be specified to write only EXIF or XMP
5961
- tags respectively. Note that GPSPitch and GPSRoll are non-standard, and
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 Beacon
5986
- text, and Bramor gEO log files. See L</GEOTAGGING EXAMPLES> for examples.
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
 
@@ -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.64';
30
+ $VERSION = '11.65';
31
31
  $RELEASE = '';
32
32
  @ISA = qw(Exporter);
33
33
  %EXPORT_TAGS = (
@@ -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 of extracting information from JPEG images. With
631
- this option set to 1, ExifTool will not scan to the end of a JPEG image to
632
- check for an AFCP, CanonVRD, FotoStation, PhotoMechanic, MIE or PreviewImage
633
- trailer. This also stops the parsing after the first comment in GIF images,
634
- and at the audio/video data with RIFF-format files (AVI, WAV, etc), so any
635
- trailing metadata (eg. XMP written by some utilities) may be missed. Also
636
- disables input buffering for some types of files to reduce memory usage when
637
- reading from a non-seekable stream. When combined with the ScanForXMP
638
- option, prevents scanning for XMP in recognized file types. With a value of
639
- 2, ExifTool will also avoid extracting any EXIF MakerNote information. When
640
- set to 3 or 4, only pseudo system tags and FileType are generated. For 3,
641
- the file header is read to provide an educated guess at FileType. For 4,
642
- the file is not read at all and FileType is determined based on the file's
643
- extension. Default is undef.
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 fix are taken.
685
- Default is 1800.
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.26';
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. B<Sequence>
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.23';
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.52';
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.15';
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 "PixelShifted" image
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/4}i;
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\s*0+/0*4\b}{Composed}i;
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/WX220/WX350/
7831
- WX500, ILCE-7/7R/7S/7M2/7M3/7RM2/7RM3/7RM4/7SM2/9/5000/5100/6000/6300/6400/
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, ILCE-7/
8225
- 7M2/7M3/7R/7RM2/7RM3/7RM4/7S/7SM2/9/5000/5100/6000/6300/6500/QX1, ILCA-68/
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, SEL50M28,
8628
- # SEL70200GM, SEL70300G, SEL85F14GM, SEL85F18, SEL100F28GM, SEL100400GM, SEL135F18GM, SEL200600G, SEL600F40GM,
8629
- # Sigma 16F14DCDN/30F14DCDN/35F12DGDN/45F28DGDN, Sigma MC-11, Samyang AF 14mm/50mm, Voigtlander 15mm, Viltrox 85mm MF
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. B<Sequence>
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/WX220/WX350/
17502
- WX500, ILCE-7/7R/7S/7M2/7M3/7RM2/7RM3/7RM4/7SM2/9/5000/5100/6000/6300/6400/
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, ILCE-7/
17602
- 7M2/7M3/7R/7RM2/7RM3/7RM4/7S/7SM2/9/5000/5100/6000/6300/6500/QX1, ILCA-68/
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 and $et->DeleteTag($key), next;
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] > $$et{FILE_ORDER}{$key}) {
780
- $var{$strInfo}[1] = $$et{FILE_ORDER}{$key} - 0.5;
786
+ if ($var{$strInfo}[1] > $$fileOrder{$key}) {
787
+ $var{$strInfo}[1] = $$fileOrder{$key} - 0.5;
781
788
  }
782
789
  } else {
783
- $var{$strInfo} = [ $strInfo, $$et{FILE_ORDER}{$key} - 0.5 ];
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
- $$et{FILE_ORDER}{$key} = $var{$si}[1];
820
+ $$fileOrder{$key} = $var{$si}[1];
814
821
  }
815
822
  }
816
823
 
@@ -1,6 +1,6 @@
1
1
  Summary: perl module for image data extraction
2
2
  Name: perl-Image-ExifTool
3
- Version: 11.64
3
+ Version: 11.65
4
4
  Release: 1
5
5
  License: Artistic/GPL
6
6
  Group: Development/Libraries/Perl
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ExiftoolVendored
4
- VERSION = Gem::Version.new('11.64.0')
4
+ VERSION = Gem::Version.new('11.65.0')
5
5
  end
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.64.0
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-28 00:00:00.000000000 Z
12
+ date: 2019-08-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: exiftool