exiftool-vendored.exe 12.60.0 → 12.65.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/LICENSE +254 -254
  2. package/bin/exiftool_files/Changes +110 -0
  3. package/bin/exiftool_files/LICENSE +674 -0
  4. package/bin/exiftool_files/Makefile.PL +7 -1
  5. package/bin/exiftool_files/README +50 -45
  6. package/bin/exiftool_files/config_files/guano.config +161 -0
  7. package/bin/exiftool_files/exiftool.pl +162 -104
  8. package/bin/exiftool_files/lib/Image/ExifTool/7Z.pm +793 -0
  9. package/bin/exiftool_files/lib/Image/ExifTool/Apple.pm +14 -7
  10. package/bin/exiftool_files/lib/Image/ExifTool/BMP.pm +0 -1
  11. package/bin/exiftool_files/lib/Image/ExifTool/BigTIFF.pm +8 -1
  12. package/bin/exiftool_files/lib/Image/ExifTool/BuildTagLookup.pm +4 -4
  13. package/bin/exiftool_files/lib/Image/ExifTool/Canon.pm +4 -1
  14. package/bin/exiftool_files/lib/Image/ExifTool/CanonRaw.pm +4 -4
  15. package/bin/exiftool_files/lib/Image/ExifTool/CanonVRD.pm +4 -1
  16. package/bin/exiftool_files/lib/Image/ExifTool/Exif.pm +31 -14
  17. package/bin/exiftool_files/lib/Image/ExifTool/FlashPix.pm +9 -2
  18. package/bin/exiftool_files/lib/Image/ExifTool/FujiFilm.pm +3 -3
  19. package/bin/exiftool_files/lib/Image/ExifTool/GPS.pm +5 -2
  20. package/bin/exiftool_files/lib/Image/ExifTool/Geotag.pm +4 -1
  21. package/bin/exiftool_files/lib/Image/ExifTool/Jpeg2000.pm +243 -20
  22. package/bin/exiftool_files/lib/Image/ExifTool/Lang/fr.pm +1467 -202
  23. package/bin/exiftool_files/lib/Image/ExifTool/MPF.pm +2 -1
  24. package/bin/exiftool_files/lib/Image/ExifTool/Matroska.pm +16 -1
  25. package/bin/exiftool_files/lib/Image/ExifTool/MinoltaRaw.pm +2 -2
  26. package/bin/exiftool_files/lib/Image/ExifTool/Nikon.pm +941 -33
  27. package/bin/exiftool_files/lib/Image/ExifTool/NikonCustom.pm +874 -63
  28. package/bin/exiftool_files/lib/Image/ExifTool/PDF.pm +39 -12
  29. package/bin/exiftool_files/lib/Image/ExifTool/PLIST.pm +8 -1
  30. package/bin/exiftool_files/lib/Image/ExifTool/PNG.pm +6 -6
  31. package/bin/exiftool_files/lib/Image/ExifTool/PhaseOne.pm +5 -5
  32. package/bin/exiftool_files/lib/Image/ExifTool/QuickTime.pm +96 -32
  33. package/bin/exiftool_files/lib/Image/ExifTool/QuickTimeStream.pl +68 -37
  34. package/bin/exiftool_files/lib/Image/ExifTool/README +2 -2
  35. package/bin/exiftool_files/lib/Image/ExifTool/RIFF.pm +11 -9
  36. package/bin/exiftool_files/lib/Image/ExifTool/Samsung.pm +227 -227
  37. package/bin/exiftool_files/lib/Image/ExifTool/Shortcuts.pm +2 -1
  38. package/bin/exiftool_files/lib/Image/ExifTool/SigmaRaw.pm +4 -4
  39. package/bin/exiftool_files/lib/Image/ExifTool/Sony.pm +237 -32
  40. package/bin/exiftool_files/lib/Image/ExifTool/TagLookup.pm +4762 -4629
  41. package/bin/exiftool_files/lib/Image/ExifTool/TagNames.pod +737 -20
  42. package/bin/exiftool_files/lib/Image/ExifTool/Validate.pm +17 -1
  43. package/bin/exiftool_files/lib/Image/ExifTool/WPG.pm +296 -0
  44. package/bin/exiftool_files/lib/Image/ExifTool/WriteExif.pl +9 -7
  45. package/bin/exiftool_files/lib/Image/ExifTool/WritePDF.pl +7 -8
  46. package/bin/exiftool_files/lib/Image/ExifTool/WriteQuickTime.pl +21 -9
  47. package/bin/exiftool_files/lib/Image/ExifTool/WriteXMP.pl +2 -2
  48. package/bin/exiftool_files/lib/Image/ExifTool/Writer.pl +47 -16
  49. package/bin/exiftool_files/lib/Image/ExifTool/XMP.pm +30 -6
  50. package/bin/exiftool_files/lib/Image/ExifTool/XMP2.pl +32 -0
  51. package/bin/exiftool_files/lib/Image/ExifTool/XMPStruct.pl +96 -28
  52. package/bin/exiftool_files/lib/Image/ExifTool/ZIP.pm +159 -41
  53. package/bin/exiftool_files/lib/Image/ExifTool.pm +280 -164
  54. package/bin/exiftool_files/lib/Image/ExifTool.pod +117 -52
  55. package/package.json +3 -2
@@ -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.59';
37
+ $VERSION = '3.62';
38
38
 
39
39
  sub ProcessSRF($$$);
40
40
  sub ProcessSR2($$$);
@@ -161,6 +161,8 @@ sub PrintInvLensSpec($;$$);
161
161
  32876 => 'Sony E 11mm F1.8', #JR
162
162
  32877 => 'Sony E 15mm F1.4 G', #JR
163
163
  32878 => 'Sony FE 20-70mm F4 G', #JR
164
+ 32879 => 'Sony FE 50mm F1.4 GM', #JR
165
+ 32884 => 'Sony FE 70-200mm F4 Macro G OSS II', #JR
164
166
 
165
167
  # (comment this out so LensID will report the LensModel, which is more useful)
166
168
  # 32952 => 'Metabones Canon EF Speed Booster Ultra', #JR (corresponds to 184, but 'Advanced' mode, LensMount reported as E-mount)
@@ -177,6 +179,10 @@ sub PrintInvLensSpec($;$$);
177
179
  33082 => 'Sony FE 200-600mm F5.6-6.3 G OSS + 2X Teleconverter', #JR
178
180
  33083 => 'Sony FE 600mm F4 GM OSS + 1.4X Teleconverter', #JR (NC)
179
181
  33084 => 'Sony FE 600mm F4 GM OSS + 2X Teleconverter', #JR
182
+ 33085 => 'Sony FE 70-200mm F2.8 GM OSS II + 1.4X Teleconverter', #JR
183
+ 33086 => 'Sony FE 70-200mm F2.8 GM OSS II + 2X Teleconverter', #JR
184
+ 33087 => 'Sony FE 70-200mm F4 Macro G OSS II + 1.4X Teleconverter', #JR
185
+ 33088 => 'Sony FE 70-200mm F4 Macro G OSS II + 2X Teleconverter', #JR
180
186
 
181
187
  49201 => 'Zeiss Touit 12mm F2.8', #JR (lens firmware Ver.02)
182
188
  49202 => 'Zeiss Touit 32mm F1.8', #JR (lens firmware Ver.02)
@@ -259,7 +265,11 @@ sub PrintInvLensSpec($;$$);
259
265
  50534 => 'Sigma 20mm F1.4 DG DN | A', #JR (022)
260
266
  50535 => 'Sigma 24mm F1.4 DG DN | A', #JR (022)
261
267
  50536 => 'Sigma 60-600mm F4.5-6.3 DG DN OS | S', #JR (023)
268
+ 50537 => 'Sigma 50mm F2 DG DN | C', #JR (023)
269
+ 50538 => 'Sigma 17mm F4 DG DN | C', #JR (023)
262
270
  50539 => 'Sigma 50mm F1.4 DG DN | A', #JR (023)
271
+ 50540 => 'Sigma 14mm F1.4 DG DN | A', #JR (023)
272
+ 50544 => 'Sigma 23mm F1.4 DC DN | C', #JR (023)
263
273
 
264
274
  50992 => 'Voigtlander SUPER WIDE-HELIAR 15mm F4.5 III', #JR
265
275
  50993 => 'Voigtlander HELIAR-HYPER WIDE 10mm F5.6', #IB
@@ -1057,7 +1067,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1057
1067
  SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag2010h' },
1058
1068
  },{
1059
1069
  Name => 'Tag2010i', # ?
1060
- Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7C|7M3|7RM3A?|7RM4A?|9|9M2)|DSC-(RX10M4|RX100M6|RX100M5A|RX100M7|HX99|RX0M2)|ZV-(1F?|E10))\b/',
1070
+ Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7C|7M3|7RM3A?|7RM4A?|9|9M2)|DSC-(RX10M4|RX100M6|RX100M5A|RX100M7|HX95|HX99|RX0M2)|ZV-(1F?|1M2|E10))\b/',
1061
1071
  SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag2010i' },
1062
1072
  },{
1063
1073
  Name => 'Tag_0x2010',
@@ -1133,7 +1143,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1133
1143
  # FocusMode for SLT/HV/ILCA and NEX/ILCE; doesn't seem to apply to DSC models (always 0)
1134
1144
  # from 2018: at least DSC-RX10M4 and RX100M6 also use this tag
1135
1145
  Name => 'FocusMode',
1136
- Condition => '($$self{Model} !~ /^DSC-/) or ($$self{Model} =~ /^DSC-(RX10M4|RX100M6|RX100M7|RX100M5A|HX99|RX0M2)/)',
1146
+ Condition => '($$self{Model} !~ /^DSC-/) or ($$self{Model} =~ /^DSC-(RX10M4|RX100M6|RX100M7|RX100M5A|HX95|HX99|RX0M2)/)',
1137
1147
  Writable => 'int8u',
1138
1148
  Priority => 0,
1139
1149
  PrintConv => {
@@ -1165,7 +1175,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1165
1175
  },
1166
1176
  },{
1167
1177
  Name => 'AFAreaModeSetting',
1168
- Condition => '$$self{Model} =~ /^(NEX-|ILCE-|ILME-|DSC-(RX10M4|RX100M6|RX100M7|RX100M5A|HX99|RX0M2))/',
1178
+ Condition => '$$self{Model} =~ /^(NEX-|ILCE-|ILME-|ZV-|DSC-(RX10M4|RX100M6|RX100M7|RX100M5A|HX95|HX99|RX0M2))/',
1169
1179
  Notes => 'NEX, ILCE and some DSC models',
1170
1180
  RawConv => '$$self{AFAreaILCE} = $val',
1171
1181
  DataMember => 'AFAreaILCE',
@@ -1201,7 +1211,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1201
1211
  # observed values in range (0 0) to (640 480), with center (320 240) often seen
1202
1212
  # for NEX-5R/6, positions appear to be in an 11x9 grid
1203
1213
  Name => 'FlexibleSpotPosition',
1204
- Condition => '$$self{Model} =~ /^(NEX-|ILCE-|ILME-|DSC-(RX10M4|RX100M6|RX100M7|RX100M5A|HX99|RX0M2))/',
1214
+ Condition => '$$self{Model} =~ /^(NEX-|ILCE-|ILME-|ZV-|DSC-(RX10M4|RX100M6|RX100M7|RX100M5A|HX95|HX99|RX0M2))/',
1205
1215
  Writable => 'int16u',
1206
1216
  Count => 2,
1207
1217
  Notes => q{
@@ -1361,7 +1371,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1361
1371
  # from 2018: at least DSC-RX10M4 and RX100M6 also use this tag
1362
1372
  0x2021 => { #JR
1363
1373
  Name => 'AFTracking',
1364
- Condition => '($$self{Model} !~ /^DSC-/) or ($$self{Model} =~ /^DSC-(RX10M4|RX100M6|RX100M7|RX100M5A|HX99|RX0M2)/)',
1374
+ Condition => '($$self{Model} !~ /^DSC-/) or ($$self{Model} =~ /^DSC-(RX10M4|RX100M6|RX100M7|RX100M5A|HX95|HX99|RX0M2)/)',
1365
1375
  Writable => 'int8u',
1366
1376
  PrintConv => {
1367
1377
  0 => 'Off',
@@ -1508,6 +1518,10 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1508
1518
  '1 2' => 'RAW + Fine',
1509
1519
  '1 3' => 'RAW + Extra Fine',
1510
1520
  '1 4' => 'RAW + Light', #JR
1521
+ '2 0' => 'S-size RAW',
1522
+ '3 0' => 'M-size RAW', # ILCE-1/7RM5, APS-C mode
1523
+ '3 2' => 'M-size RAW + Fine',
1524
+ '3 3' => 'M-size RAW + Extra Fine',
1511
1525
  },
1512
1526
  },
1513
1527
  0x202f => { #JR (ILCE-7RM3)
@@ -1633,7 +1647,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1633
1647
  # from mid-2015: ILCE-7RM2/7SM2/6300 and newer models use different offsets
1634
1648
  {
1635
1649
  Name => 'Tag9050a',
1636
- Condition => '$$self{Model} !~ /^(DSC-|Stellar|ILCE-(1|6100|6300|6400|6500|6600|7C|7M3|7M4|7RM2|7RM3A?|7RM4A?|7RM5|7SM2|7SM3|9|9M2)|ILCA-99M2|ILME-FX3|ZV-)/',
1650
+ Condition => '$$self{Model} !~ /^(DSC-|Stellar|ILCE-(1|6100|6300|6400|6500|6600|6700|7C|7M3|7M4|7RM2|7RM3A?|7RM4A?|7RM5|7SM2|7SM3|9|9M2)|ILCA-99M2|ILME-FX3|ZV-)/',
1637
1651
  SubDirectory => {
1638
1652
  TagTable => 'Image::ExifTool::Sony::Tag9050a',
1639
1653
  ByteOrder => 'LittleEndian',
@@ -1652,6 +1666,13 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1652
1666
  TagTable => 'Image::ExifTool::Sony::Tag9050c',
1653
1667
  ByteOrder => 'LittleEndian',
1654
1668
  },
1669
+ },{
1670
+ Name => 'Tag9050d',
1671
+ Condition => '$$self{Model} =~ /^(ILCE-6700|ZV-E1)/',
1672
+ SubDirectory => {
1673
+ TagTable => 'Image::ExifTool::Sony::Tag9050d',
1674
+ ByteOrder => 'LittleEndian',
1675
+ },
1655
1676
  },{
1656
1677
  Name => 'Sony_0x9050',
1657
1678
  %unknownCipherData,
@@ -1665,11 +1686,12 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1665
1686
  # 0xd0 (e) H90, W650, W690: tag9400 decoding appears not valid/different
1666
1687
  # 0x23 (e) for DSC-RX10/HX60V/HX350/HX400V/WX220/WX350, ILCE-7/7R/5000/6000, ILCA-68/77M2
1667
1688
  # 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
1668
- # 0x26 (e) for ILCE-6100/6400/6600/7M3/7RM3/9, DSC-RX0M2/RX10M4/RX100M5A/RX100M6/HX99
1669
- # 0x28 (e) for ILCE-7RM4/9M2, DSC-RX100M7, ZV-1/E10
1689
+ # 0x26 (e) for ILCE-6100/6400/6600/7M3/7RM3/9, DSC-RX0M2/RX10M4/RX100M5A/RX100M6/HX95/HX99
1690
+ # 0x28 (e) for ILCE-7RM4/9M2, DSC-RX100M7, ZV-1/1F/1M2/E10
1670
1691
  # 0x31 (e) for ILCE-1/7M4/7SM3, ILME-FX3
1671
1692
  # 0x32 (e) for ILCE-7RM5, ILME-FX30
1672
- # first byte decoded: 40, 204, 202, 27, 58, 62, 48, 215, 28, 106, 89 respectively
1693
+ # 0x33 (e) for ILCE-6700, ZV-E1
1694
+ # first byte decoded: 40, 204, 202, 27, 58, 62, 48, 215, 28, 106, 89, 63 respectively
1673
1695
  {
1674
1696
  Name => 'Tag9400a',
1675
1697
  Condition => q{
@@ -1683,7 +1705,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1683
1705
  SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag9400b' },
1684
1706
  },{
1685
1707
  Name => 'Tag9400c',
1686
- Condition => '$$valPt =~ /^[\x23\x24\x26\x28\x31\x32]/',
1708
+ Condition => '$$valPt =~ /^[\x23\x24\x26\x28\x31\x32\x33]/',
1687
1709
  SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag9400c' },
1688
1710
  },{
1689
1711
  Name => 'Sony_0x9400',
@@ -1782,8 +1804,10 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1782
1804
  # 0x1c 0x01 ILCE-9
1783
1805
  # 0x1d 0x01 DSC-RX10M4
1784
1806
  # 0x1e 0x01 ILCE-7M3/7RM3, DSC-RX100M5A/RX100M6
1785
- # 0x1f 0x01 DSC-HX99
1807
+ # 0x1f 0x01 DSC-HX95/HX99
1786
1808
  # 0x20 0x01 ILCE-6100/6400/6600/7RM4/9M2, ILCE-9 v5.00-v6.00, DSC-RX0M2/RX100M7
1809
+ # 0x21 0x01 ZV-1/1F/1M2/E10
1810
+ # 0x27 0x01 ZV-E1
1787
1811
  # var var SLT-A58/A99V, HV, ILCA-68/77M2/99M2
1788
1812
  # 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)
1789
1813
  # 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/',
@@ -1807,8 +1831,8 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1807
1831
  # 13 0 9 2 2 DSC-QX10/QX100/RX100M2
1808
1832
  # 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
1809
1833
  # 16 0 85 2 2 DSC-HX80/HX90V/WX500
1810
- # 17 0 232 1 2 DSC-RX0/RX0M2/RX1RM2/RX10M2/RX10M3/RX10M4/RX100M4/RX100M5/RX100M5A/RX100M6/RX100M7/HX99, ILCE-6100/6300/6400/6500/6600/7C/7M3/7RM2/7RM3/7RM4/7SM2/9/9M2, ILCA-99M2, ZV-1
1811
- # 18 0 20 0 164 ILCE-7SM3
1834
+ # 17 0 232 1 2 DSC-RX0/RX0M2/RX1RM2/RX10M2/RX10M3/RX10M4/RX100M4/RX100M5/RX100M5A/RX100M6/RX100M7/HX95/HX99, ILCE-6100/6300/6400/6500/6600/7C/7M3/7RM2/7RM3/7RM4/7SM2/9/9M2, ILCA-99M2, ZV-1/1F/1M2/E10
1835
+ # 18 0 20 0 164 ILCE-7SM3, ZV-E1
1812
1836
  # other values for Panorama images and several other models
1813
1837
  0x9404 => [{
1814
1838
  Name => 'Tag9404a',
@@ -1842,7 +1866,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1842
1866
  # 142 var (0x25 = 37 var enc.) DSC-HX80/HX90V/RX1RM2/RX10M2/RX10M3/RX100M4/WX500, ILCE-6300/7RM2/7SM2
1843
1867
  # 144 var (0xe1 = 225 var enc.) DSC-RX100M5
1844
1868
  # 145 var (0x76 = 118 var enc.) ILCA-99M2, ILCE-6500, DSC-RX0
1845
- # 163 var (0x8b = 139 var enc.) ILCE-6100/6400/6600/7C/7M3/7RM3/7RM4/9/9M2, DSC-RX0M2/RX10M4/RX100M5A/RX100M6/RX100M7/HX99, ZV-1/E10
1869
+ # 163 var (0x8b = 139 var enc.) ILCE-6100/6400/6600/7C/7M3/7RM3/7RM4/9/9M2, DSC-RX0M2/RX10M4/RX100M5A/RX100M6/RX100M7/HX95/HX99, ZV-1/1F/1M2/E10
1846
1870
  # July 2020: ILCE-7SM3 doesn't write this tag anymore, but writes 0x9416
1847
1871
  0x9405 => [{
1848
1872
  Name => 'Tag9405a',
@@ -1862,9 +1886,10 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1862
1886
  Name => 'Tag9406',
1863
1887
  # - first byte must be 0x01 or 0x02 (enciphered 0x01 or 0x08),
1864
1888
  # or 0x03 (enc. 0x1b) for ILCE-6100/6300/6400/6500/6600/7M3/7RM2/7RM3/7RM4/7SM2/9/9M2, and ILCA-99M2
1889
+ # or 0x04 (enc. 0x40) for ILCE-6700, ZV-E1
1865
1890
  # third byte must be 0x02 or 0x03 (enciphered 0x08 or 0x1b) - ref JR
1866
1891
  # (applies to most SLT/ILCA and NEX/ILCE models, but no DSC models)
1867
- Condition => '$$valPt =~ /^[\x01\x08\x1b].[\x08\x1b]/s',
1892
+ Condition => '$$valPt =~ /^[\x01\x08\x1b].[\x08\x1b]/s or $$valPt =~ /^[\x40]/s',
1868
1893
  SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag9406' },
1869
1894
  },{
1870
1895
  Name => 'Sony_0x9406',
@@ -1896,7 +1921,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1896
1921
  },
1897
1922
  0x940c => [{
1898
1923
  Name => 'Tag940c',
1899
- Condition => '$$self{Model} =~ /^(NEX-|ILCE-|ILME-|Lunar|ZV-E10)\b/',
1924
+ Condition => '$$self{Model} =~ /^(NEX-|ILCE-|ILME-|Lunar|ZV-E10|ZV-E1)\b/',
1900
1925
  SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag940c' },
1901
1926
  },{
1902
1927
  Name => 'Sony_0x940c',
@@ -2064,6 +2089,9 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
2064
2089
  389 => 'ZV-1F', #IB
2065
2090
  390 => 'ILCE-7RM5', #IB
2066
2091
  391 => 'ILME-FX30', #JR
2092
+ 393 => 'ZV-E1', #JR
2093
+ 394 => 'ILCE-6700', #JR
2094
+ 395 => 'ZV-1M2', #JR
2067
2095
  },
2068
2096
  },
2069
2097
  0xb020 => { #2
@@ -2096,7 +2124,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
2096
2124
  FL => 'FL', # "moody finish with sharp contrast and calm coloring as well as the impressive sky and colors of the greens"
2097
2125
  IN => 'IN', # "matte textures by suppressing the contrast and saturation"
2098
2126
  SH => 'SH', # "bright, transparent, soft, and vivid mood"
2099
- # (...also Custom Look 1-6, but don't konw the values)
2127
+ # (...also Custom Look 1-6, but don't know the values)
2100
2128
  },
2101
2129
  },
2102
2130
  0xb021 => { #2
@@ -2355,6 +2383,8 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
2355
2383
  PrintConv => {
2356
2384
  -32768 => 'Low',
2357
2385
  -9 => '-9/3', #JR
2386
+ -8 => '-8/3', #JR
2387
+ -7 => '-7/3', #JR
2358
2388
  -6 => '-6/3', #JR
2359
2389
  -5 => '-5/3', #JR
2360
2390
  -4 => '-4/3', #JR
@@ -6176,6 +6206,7 @@ my %pictureProfile2010 = (
6176
6206
  31 => 'Gamma S-Log3 (PP8 or PP9)', #14
6177
6207
  33 => 'Gamma HLG2 (PP10)', #14
6178
6208
  34 => 'Gamma HLG3', #IB
6209
+ 36 => 'Off',
6179
6210
  37 => 'FL',
6180
6211
  38 => 'VV2',
6181
6212
  39 => 'IN',
@@ -6631,8 +6662,30 @@ my %isoSetting2010 = (
6631
6662
  },
6632
6663
  #0x1914 => { Name => 'SonyImageWidth', Format => 'int16u' },
6633
6664
  #0x1918 => { Name => 'SonyImageHeight', Format => 'int16u' },
6665
+ 0x192c => {
6666
+ Name => 'AspectRatio',
6667
+ Condition => '$$self{Model} !~ /^(DSC-RX100|Stellar)\b/',
6668
+ PrintConv => {
6669
+ 0 => '16:9',
6670
+ 1 => '4:3',
6671
+ 2 => '3:2',
6672
+ 3 => '1:1',
6673
+ 5 => 'Panorama',
6674
+ },
6675
+ },
6634
6676
  #0x192e => { Name => 'SonyImageWidth', Format => 'int16u' },
6635
6677
  #0x1930 => { Name => 'SonyImageHeight', Format => 'int16u' },
6678
+ 0x1a88 => {
6679
+ Name => 'AspectRatio',
6680
+ Condition => '$$self{Model} =~ /^(DSC-RX100|Stellar)\b/',
6681
+ PrintConv => {
6682
+ 0 => '16:9',
6683
+ 1 => '4:3',
6684
+ 2 => '3:2',
6685
+ 3 => '1:1',
6686
+ 5 => 'Panorama',
6687
+ },
6688
+ },
6636
6689
  );
6637
6690
 
6638
6691
  %Image::ExifTool::Sony::Tag2010f = ( #JR
@@ -6708,6 +6761,16 @@ my %isoSetting2010 = (
6708
6761
  },
6709
6762
  #0x1914 => { Name => 'SonyImageWidth', Format => 'int16u' },
6710
6763
  #0x1918 => { Name => 'SonyImageHeight', Format => 'int16u' },
6764
+ 0x192c => {
6765
+ Name => 'AspectRatio',
6766
+ PrintConv => {
6767
+ 0 => '16:9',
6768
+ 1 => '4:3',
6769
+ 2 => '3:2',
6770
+ 3 => '1:1',
6771
+ 5 => 'Panorama',
6772
+ },
6773
+ },
6711
6774
  #0x192e => { Name => 'SonyImageWidth', Format => 'int16u' },
6712
6775
  #0x1930 => { Name => 'SonyImageHeight', Format => 'int16u' },
6713
6776
  );
@@ -6839,6 +6902,16 @@ my %isoSetting2010 = (
6839
6902
  },
6840
6903
  # 0x1940 => { Name => 'SonyImageWidth', Format => 'int16u' },
6841
6904
  # 0x1944 => { Name => 'SonyImageHeight', Format => 'int16u' },
6905
+ 0x1958 => {
6906
+ Name => 'AspectRatio',
6907
+ PrintConv => {
6908
+ 0 => '16:9',
6909
+ 1 => '4:3',
6910
+ 2 => '3:2',
6911
+ 3 => '1:1',
6912
+ 5 => 'Panorama',
6913
+ },
6914
+ },
6842
6915
  # 0x195a => { Name => 'SonyImageWidth', Format => 'int16u' },
6843
6916
  # 0x195c => { Name => 'SonyImageHeight', Format => 'int16u' },
6844
6917
  );
@@ -6976,6 +7049,16 @@ my %isoSetting2010 = (
6976
7049
  Condition => '$$self{Model} !~ /^DSC-/',
6977
7050
  PrintConv => { 11 => '11 (APS-C)', 16 => '16 (Full-frame)'},
6978
7051
  },
7052
+ 0x192c => {
7053
+ Name => 'AspectRatio',
7054
+ PrintConv => {
7055
+ 0 => '16:9',
7056
+ 1 => '4:3',
7057
+ 2 => '3:2',
7058
+ 3 => '1:1',
7059
+ 5 => 'Panorama',
7060
+ },
7061
+ },
6979
7062
  # 0x1970 => { Name => 'SonyImageWidth', Format => 'int16u' },
6980
7063
  # 0x1974 => { Name => 'SonyImageHeight', Format => 'int16u' },
6981
7064
  # 0x198a => { Name => 'SonyImageWidth', Format => 'int16u' },
@@ -7107,6 +7190,16 @@ my %isoSetting2010 = (
7107
7190
  Condition => '$$self{Model} !~ /^DSC-/',
7108
7191
  PrintConv => { 11 => '11 (APS-C)', 16 => '16 (Full-frame)'},
7109
7192
  },
7193
+ 0x188c => {
7194
+ Name => 'AspectRatio',
7195
+ PrintConv => {
7196
+ 0 => '16:9',
7197
+ 1 => '4:3',
7198
+ 2 => '3:2',
7199
+ 3 => '1:1',
7200
+ 5 => 'Panorama',
7201
+ },
7202
+ },
7110
7203
  );
7111
7204
 
7112
7205
  %Image::ExifTool::Sony::Tag202a = (
@@ -8012,6 +8105,52 @@ my %isoSetting2010 = (
8012
8105
  },
8013
8106
  );
8014
8107
 
8108
+ %Image::ExifTool::Sony::Tag9050d = ( #JR
8109
+ PROCESS_PROC => \&ProcessEnciphered,
8110
+ WRITE_PROC => \&WriteEnciphered,
8111
+ CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
8112
+ FORMAT => 'int8u',
8113
+ NOTES => 'Valid for ILCE-6700/ZV-E1.',
8114
+ WRITABLE => 1,
8115
+ FIRST_ENTRY => 0,
8116
+ GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
8117
+ 0x000a => {
8118
+ Name => 'ShutterCount',
8119
+ # number of mechanical shutter actuations, does not increase during electronic shutter / Silent Shooting
8120
+ Condition => '$$self{Model} =~ /^(ILCE-6700)/',
8121
+ Format => 'int32u',
8122
+ Notes => 'total number of image exposures made by the camera',
8123
+ RawConv => '$val & 0x00ffffff',
8124
+ PrintConv => 'sprintf("%6d",$val)',
8125
+ PrintConvInv => '$val',
8126
+ },
8127
+ 0x001a => { # appr. same value as Exif ExposureTime, but not valid in HDR-modes
8128
+ Name => 'SonyExposureTime',
8129
+ Format => 'int16u',
8130
+ ValueConv => '$val ? 2 ** (16 - $val/256) : 0',
8131
+ ValueConvInv => '$val ? int((16 - log($val) / log(2)) * 256 + 0.5) : 0',
8132
+ PrintConv => '$val ? Image::ExifTool::Exif::PrintExposureTime($val) : "Bulb"',
8133
+ PrintConvInv => 'lc($val) eq "bulb" ? 0 : Image::ExifTool::Exif::ConvertFraction($val)',
8134
+ },
8135
+ 0x001c => { # appr. same value as Exif ExposureTime, but not valid in HDR-modes
8136
+ Name => 'SonyFNumber',
8137
+ Format => 'int16u',
8138
+ ValueConv => '2 ** (($val/256 - 16) / 2)',
8139
+ ValueConvInv => '(log($val)*2/log(2)+16)*256',
8140
+ PrintConv => 'sprintf("%.1f",$val)',
8141
+ PrintConvInv => '$val',
8142
+ },
8143
+ 0x001f => {
8144
+ Name => 'ReleaseMode2',
8145
+ %releaseMode2,
8146
+ },
8147
+ 0x0038 => {
8148
+ Name => 'InternalSerialNumber', #(NC)
8149
+ Format => 'int8u[6]',
8150
+ PrintConv => 'unpack "H*", pack "C*", split " ", $val',
8151
+ },
8152
+ );
8153
+
8015
8154
  %Image::ExifTool::Sony::Tag9400a = ( #JR
8016
8155
  PROCESS_PROC => \&ProcessEnciphered,
8017
8156
  WRITE_PROC => \&WriteEnciphered,
@@ -8238,7 +8377,7 @@ my %isoSetting2010 = (
8238
8377
  },
8239
8378
  0x002a => [{
8240
8379
  Name => 'Quality2',
8241
- Condition => '$$self{Model} !~ /^(ILCE-(1|7M4|7RM5|7SM3)|ILME-FX3)\b/',
8380
+ Condition => '$$self{Model} !~ /^(ILCE-(1|6700|7M4|7RM5|7SM3)|ILME-(FX3|FX30)|ZV-E1)\b/',
8242
8381
  PrintConv => {
8243
8382
  0 => 'JPEG',
8244
8383
  1 => 'RAW',
@@ -8247,7 +8386,6 @@ my %isoSetting2010 = (
8247
8386
  },
8248
8387
  },{
8249
8388
  Name => 'Quality2',
8250
- Condition => '$$self{Model} =~ /^(ILCE-(1|7M4|7RM5|7SM3)|ILME-FX3)\b/',
8251
8389
  PrintConv => {
8252
8390
  1 => 'JPEG',
8253
8391
  2 => 'RAW',
@@ -8258,16 +8396,40 @@ my %isoSetting2010 = (
8258
8396
  }],
8259
8397
  0x0047 => {
8260
8398
  Name => 'SonyImageHeight',
8261
- Condition => '$$self{Model} !~ /^(ILCE-(1|7M4|7RM5|7SM3)|ILME-FX3)\b/',
8399
+ Condition => '$$self{Model} !~ /^(ILCE-(1|6700|7M4|7RM5|7SM3)|ILME-(FX3|FX30)|ZV-E1)\b/',
8262
8400
  Format => 'int16u',
8263
8401
  PrintConv => '$val > 0 ? 8*$val : "n.a."',
8264
8402
  },
8265
8403
  0x0053 => {
8266
8404
  Name => 'ModelReleaseYear',
8267
- Condition => '$$self{Model} !~ /^(ILCE-(1|7M4|7RM5|7SM3)|ILME-FX3)\b/',
8405
+ Condition => '$$self{Model} !~ /^(ILCE-(1|6700|7M4|7RM5|7SM3)|ILME-(FX3|FX30)|ZV-E1)\b/',
8268
8406
  Format => 'int8u',
8269
8407
  PrintConv => 'sprintf("20%.2d", $val)',
8270
8408
  },
8409
+ 0x0133 => {
8410
+ Name => 'ShutterType',
8411
+ Condition => '$$self{Model} =~ /^(DSC-(HX350|HX400V|HX60V|HX80|HX90|HX90V|QX30|RX10|RX10M2|RX10M3|RX100M3|RX100M4))\b/',
8412
+ PrintConv => {
8413
+ 7 => 'Electronic',
8414
+ 23 => 'Mechanical',
8415
+ },
8416
+ },
8417
+ 0x0139 => {
8418
+ Name => 'ShutterType',
8419
+ Condition => '$$self{Model} =~ /^(DSC-(HX95|HX99|RX0|RX0M2|RX10M4|RX100M5|RX100M5A|RX100M6))\b/',
8420
+ PrintConv => {
8421
+ 7 => 'Electronic',
8422
+ 23 => 'Mechanical',
8423
+ },
8424
+ },
8425
+ 0x013f => {
8426
+ Name => 'ShutterType',
8427
+ Condition => '$$self{Model} =~ /^(DSC-RX100M7|ZV-(1|1F|1M2))\b/',
8428
+ PrintConv => {
8429
+ 7 => 'Electronic',
8430
+ 23 => 'Mechanical',
8431
+ },
8432
+ },
8271
8433
  );
8272
8434
 
8273
8435
  %Image::ExifTool::Sony::Tag9401 = ( # JR
@@ -8279,14 +8441,16 @@ my %isoSetting2010 = (
8279
8441
  FIRST_ENTRY => 0,
8280
8442
  GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
8281
8443
  DATAMEMBER => [ 0 ],
8282
- IS_SUBDIR => [ 0x044e, 0x0498, 0x049d, 0x04a1, 0x04a2, 0x059d, 0x0634, 0x0636, 0x064c, 0x0653, 0x0678, 0x06b8, 0x06de, 0x06e7 ],
8444
+ IS_SUBDIR => [ 0x03e2, 0x044e, 0x0498, 0x049d, 0x04a1, 0x04a2, 0x04ba, 0x059d, 0x0634, 0x0636, 0x064c, 0x0653, 0x0678, 0x06b8, 0x06de, 0x06e7 ],
8283
8445
  0x0000 => { Name => 'Ver9401', Hidden => 1, RawConv => '$$self{Ver9401} = $val; $$self{OPTIONS}{Unknown}<2 ? undef : $val' },
8284
8446
 
8447
+ 0x03e2 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} == 181', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
8285
8448
  0x044e => { Name => 'ISOInfo', Condition => '$$self{Ver9401} == 178', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
8286
8449
  0x0498 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} == 148', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
8287
8450
  0x049d => { Name => 'ISOInfo', Condition => '$$self{Ver9401} == 167', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
8288
8451
  0x04a1 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} =~ /^(160|164)/', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
8289
- 0x04a2 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} =~ /^(152|154|155)/', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
8452
+ 0x04a2 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} =~ /^(152|154|155)/ and $$self{Model} !~ /^ZV-1M2/', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
8453
+ 0x04ba => { Name => 'ISOInfo', Condition => '$$self{Ver9401} == 155 and $$self{Model} =~ /^ZV-1M2/', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
8290
8454
  0x059d => { Name => 'ISOInfo', Condition => '$$self{Ver9401} =~ /^(144|146)/', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
8291
8455
  0x0634 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} == 68', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
8292
8456
  0x0636 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} =~ /^(73|74)/', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
@@ -8357,7 +8521,8 @@ my %isoSetting2010 = (
8357
8521
  14 => 'Tracking',
8358
8522
  15 => 'Face Tracking',
8359
8523
  20 => 'Animal Eye Tracking',
8360
- # 21 => '???', # (ILCE-7SM3)
8524
+ # 21 => '???', # (ILCE-1/6700/7SM3, ILME-FX3, ZV-E1: tracking ... mostly human face ...)
8525
+ # 22 => '???', # (ILCE-6700, ZV-E1: tracking ...)
8361
8526
  255 => 'Manual',
8362
8527
  },
8363
8528
  },
@@ -8684,6 +8849,11 @@ my %isoSetting2010 = (
8684
8849
  10 => 'Night View/Portrait',
8685
8850
  11 => 'Autumn Leaves',
8686
8851
  13 => 'Sepia',
8852
+ 15 => 'FL',
8853
+ 16 => 'VV2',
8854
+ 17 => 'IN',
8855
+ 18 => 'SH',
8856
+ 255 => 'Off',
8687
8857
  },
8688
8858
  },
8689
8859
  0x0052 => {
@@ -8823,19 +8993,29 @@ my %isoSetting2010 = (
8823
8993
  FORMAT => 'int8u',
8824
8994
  WRITABLE => 1,
8825
8995
  FIRST_ENTRY => 0,
8996
+ DATAMEMBER => [ 0 ],
8826
8997
  GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
8827
8998
  # 0x0000: 1 for SLT-A37/A57/A65/A77, NEX-5N/7/F3/VG20
8828
8999
  # 2 for SLT-A58/99V, NEX-3N/5R/5T/6/VG30/VG900, ILCA-68/77M2, ILCE-3000/3500/7/7M2/7R/7S/5000/6000
8829
9000
  # 3 for ILCA-99M2, ILCE-6100/6300/6400/6500/6600/7M3/7RM2/7RM3/7RM4/7SM2/9/9M2
9001
+ # 4 for ILCE-6700, ZV-E1
9002
+ 0x0000 => { Name => 'Ver9406', Hidden => 1, RawConv => '$$self{Ver9406} = $val; $$self{OPTIONS}{Unknown}<2 ? undef : $val' },
8830
9003
  # 0x0001+0x0002: Int16u, seen 580 - 770: similar to "BatteryUnknown" ??
8831
9004
  # 0x0005: int8u, seen 73 - 117: maybe Fahrenheit? Higher than "AmbientTemperature", but same trend.
8832
- 0x0005 => {
9005
+ 0x0005 => [{
8833
9006
  Name => 'BatteryTemperature',
9007
+ Condition => '$$self{Ver9406} != 4',
8834
9008
  ValueConv => '($val - 32) / 1.8', # convert to Celsius
8835
9009
  ValueConvInv => '$val * 1.8 + 32',
8836
9010
  PrintConv => 'sprintf("%.1f C",$val)',
8837
9011
  PrintConvInv => '$val=~s/\s*C//; $val',
8838
- },
9012
+ },{
9013
+ Name => 'BatteryLevel',
9014
+ Condition => '$$self{Ver9406} == 4',
9015
+ RawConv => '$val ? $val : undef', # only valid when not 0
9016
+ PrintConv => '"$val%"',
9017
+ PrintConvInv => '$val=~s/\s*\%//; $val',
9018
+ }],
8839
9019
  # 0x0006: usually 0, seen non-zero values only for SLT-A99V, ILCA-77M2/99M2 and ILCE-7/7R/7RM2/9: BatteryLevel Grip ?
8840
9020
  0x0006 => {
8841
9021
  Name => 'BatteryLevelGrip1',
@@ -8846,6 +9026,7 @@ my %isoSetting2010 = (
8846
9026
  # 0x0007: seen values from 8 - 105, decreasing in sequences of images: BatteryLevel
8847
9027
  0x0007 => {
8848
9028
  Name => 'BatteryLevel',
9029
+ Condition => '$$self{Ver9406} != 4',
8849
9030
  PrintConv => '"$val%"',
8850
9031
  PrintConvInv => '$val=~s/\s*\%//; $val',
8851
9032
  },
@@ -9558,7 +9739,7 @@ my %isoSetting2010 = (
9558
9739
  WRITE_PROC => \&WriteEnciphered,
9559
9740
  CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
9560
9741
  FORMAT => 'int8u',
9561
- NOTES => 'Valid for the ILCE-1/7M4/7RM5/7SM3, ILME-FX3.',
9742
+ NOTES => 'Valid for the ILCE-1/6700/7M4/7RM5/7SM3, ILME-FX3/FX30, ZV-E1.',
9562
9743
  FIRST_ENTRY => 0,
9563
9744
  GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
9564
9745
  0x0000 => { Name => 'Tag9416_0000', PrintConv => 'sprintf("%3d",$val)', RawConv => '$$self{TagVersion} = $val' },
@@ -9695,10 +9876,34 @@ my %isoSetting2010 = (
9695
9876
  Condition => '$$self{Model} =~ /^(ILCE-7M4)/',
9696
9877
  Format => 'int16s[16]',
9697
9878
  },
9698
- 0x089b => {
9879
+ 0x089d => { # Note: 32 values for these newer models, and 32 non-zero values present for new lenses like SEL2470GM2 and SEL2470G
9699
9880
  Name => 'VignettingCorrParams',
9700
- Condition => '$$self{Model} =~ /^(ILCE-7RM5|ILME-FX30)\b/',
9701
- Format => 'int16s[16]',
9881
+ Condition => '$$self{Model} =~ /^(ILCE-(6700|7RM5)|ILME-FX30|ZV-E1)\b/',
9882
+ Format => 'int16s[32]',
9883
+ },
9884
+ 0x08b5 => {
9885
+ Name => 'APS-CSizeCapture',
9886
+ Condition => '$$self{Model} =~ /^(ILCE-(1|7SM3)|ILME-FX3)\b/',
9887
+ PrintConv => {
9888
+ 0 => 'Off',
9889
+ 1 => 'On',
9890
+ },
9891
+ },
9892
+ 0x08b7 => {
9893
+ Name => 'APS-CSizeCapture',
9894
+ Condition => '$$self{Model} =~ /^(ILCE-7M4)/',
9895
+ PrintConv => {
9896
+ 0 => 'Off',
9897
+ 1 => 'On',
9898
+ },
9899
+ },
9900
+ 0x08e5 => {
9901
+ Name => 'APS-CSizeCapture',
9902
+ Condition => '$$self{Model} =~ /^(ILCE-7RM5|ZV-E1)\b/',
9903
+ PrintConv => {
9904
+ 0 => 'Off',
9905
+ 1 => 'On',
9906
+ },
9702
9907
  },
9703
9908
  0x0914 => {
9704
9909
  Name => 'ChromaticAberrationCorrParams',
@@ -9712,7 +9917,7 @@ my %isoSetting2010 = (
9712
9917
  },
9713
9918
  0x0945 => {
9714
9919
  Name => 'ChromaticAberrationCorrParams',
9715
- Condition => '$$self{Model} =~ /^(ILCE-7RM5|ILME-FX30)\b/',
9920
+ Condition => '$$self{Model} =~ /^(ILCE-(6700|7RM5)|ILME-FX30|ZV-E1)\b/',
9716
9921
  Format => 'int16s[32]',
9717
9922
  },
9718
9923
  );