exiftool-vendored.exe 12.67.0 → 12.70.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 (42) hide show
  1. package/bin/exiftool_files/Changes +79 -10
  2. package/bin/exiftool_files/README +7 -7
  3. package/bin/exiftool_files/exiftool.pl +37 -31
  4. package/bin/exiftool_files/lib/Image/ExifTool/CBOR.pm +18 -2
  5. package/bin/exiftool_files/lib/Image/ExifTool/Canon.pm +87 -16
  6. package/bin/exiftool_files/lib/Image/ExifTool/DJI.pm +3 -2
  7. package/bin/exiftool_files/lib/Image/ExifTool/DNG.pm +25 -2
  8. package/bin/exiftool_files/lib/Image/ExifTool/EXE.pm +54 -6
  9. package/bin/exiftool_files/lib/Image/ExifTool/Exif.pm +175 -14
  10. package/bin/exiftool_files/lib/Image/ExifTool/FujiFilm.pm +158 -20
  11. package/bin/exiftool_files/lib/Image/ExifTool/GIF.pm +5 -1
  12. package/bin/exiftool_files/lib/Image/ExifTool/Geotag.pm +16 -11
  13. package/bin/exiftool_files/lib/Image/ExifTool/ID3.pm +70 -7
  14. package/bin/exiftool_files/lib/Image/ExifTool/InDesign.pm +1 -1
  15. package/bin/exiftool_files/lib/Image/ExifTool/JPEG.pm +1 -1
  16. package/bin/exiftool_files/lib/Image/ExifTool/Jpeg2000.pm +30 -15
  17. package/bin/exiftool_files/lib/Image/ExifTool/MakerNotes.pm +2 -2
  18. package/bin/exiftool_files/lib/Image/ExifTool/Nikon.pm +82 -22
  19. package/bin/exiftool_files/lib/Image/ExifTool/Olympus.pm +7 -1
  20. package/bin/exiftool_files/lib/Image/ExifTool/PNG.pm +3 -1
  21. package/bin/exiftool_files/lib/Image/ExifTool/Panasonic.pm +22 -9
  22. package/bin/exiftool_files/lib/Image/ExifTool/Pentax.pm +6 -1
  23. package/bin/exiftool_files/lib/Image/ExifTool/PhotoMechanic.pm +2 -1
  24. package/bin/exiftool_files/lib/Image/ExifTool/QuickTime.pm +92 -55
  25. package/bin/exiftool_files/lib/Image/ExifTool/README +14 -5
  26. package/bin/exiftool_files/lib/Image/ExifTool/RIFF.pm +60 -10
  27. package/bin/exiftool_files/lib/Image/ExifTool/Sony.pm +152 -46
  28. package/bin/exiftool_files/lib/Image/ExifTool/TagLookup.pm +6955 -6713
  29. package/bin/exiftool_files/lib/Image/ExifTool/TagNames.pod +878 -334
  30. package/bin/exiftool_files/lib/Image/ExifTool/Text.pm +4 -5
  31. package/bin/exiftool_files/lib/Image/ExifTool/Validate.pm +23 -20
  32. package/bin/exiftool_files/lib/Image/ExifTool/WriteCanonRaw.pl +2 -2
  33. package/bin/exiftool_files/lib/Image/ExifTool/WriteExif.pl +14 -4
  34. package/bin/exiftool_files/lib/Image/ExifTool/WriteQuickTime.pl +3 -0
  35. package/bin/exiftool_files/lib/Image/ExifTool/WriteRIFF.pl +31 -6
  36. package/bin/exiftool_files/lib/Image/ExifTool/Writer.pl +40 -14
  37. package/bin/exiftool_files/lib/Image/ExifTool/XISF.pm +185 -0
  38. package/bin/exiftool_files/lib/Image/ExifTool/XMP.pm +67 -2
  39. package/bin/exiftool_files/lib/Image/ExifTool/XMP2.pl +35 -0
  40. package/bin/exiftool_files/lib/Image/ExifTool.pm +92 -45
  41. package/bin/exiftool_files/lib/Image/ExifTool.pod +14 -8
  42. package/package.json +3 -3
@@ -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.62';
37
+ $VERSION = '3.64';
38
38
 
39
39
  sub ProcessSRF($$$);
40
40
  sub ProcessSR2($$$);
@@ -69,11 +69,13 @@ sub PrintInvLensSpec($;$$);
69
69
  '0.10' => 'Zeiss Touit 50mm F2.8 Macro', # (firmware Ver.00)
70
70
  '0.11' => 'Zeiss Loxia 50mm F2', # (firmware Ver.01)
71
71
  '0.12' => 'Zeiss Loxia 35mm F2', # (firmware Ver.01)
72
+ '0.13' => 'Viltrox 85mm F1.8', # original AF version; Mark II version is at 47473
72
73
  1 => 'Sony LA-EA1 or Sigma MC-11 Adapter', # MC-11 with not-supported lenses
73
74
  2 => 'Sony LA-EA2 Adapter',
74
75
  3 => 'Sony LA-EA3 Adapter',
75
76
  6 => 'Sony LA-EA4 Adapter',
76
77
  7 => 'Sony LA-EA5 Adapter', #JR
78
+ 13 => 'Samyang AF 35-150mm F2-2.8',
77
79
  # 27 => Venus Optics Laowa 12mm f2.8 Zero-D or 105mm f2 (T3.2) Smooth Trans Focus (ref IB)
78
80
  44 => 'Metabones Canon EF Smart Adapter', #JR
79
81
  78 => 'Metabones Canon EF Smart Adapter Mark III or Other Adapter', #PH/JR (also Mark IV, Fotodiox and Viltrox)
@@ -163,6 +165,8 @@ sub PrintInvLensSpec($;$$);
163
165
  32878 => 'Sony FE 20-70mm F4 G', #JR
164
166
  32879 => 'Sony FE 50mm F1.4 GM', #JR
165
167
  32884 => 'Sony FE 70-200mm F4 Macro G OSS II', #JR
168
+ 32885 => 'Sony FE 16-35mm F2.8 GM II', #JR
169
+ 32886 => 'Sony FE 300mm F2.8 OSS', #JR
166
170
 
167
171
  # (comment this out so LensID will report the LensModel, which is more useful)
168
172
  # 32952 => 'Metabones Canon EF Speed Booster Ultra', #JR (corresponds to 184, but 'Advanced' mode, LensMount reported as E-mount)
@@ -215,10 +219,22 @@ sub PrintInvLensSpec($;$$);
215
219
  49470 => 'Tamron 28-75mm F2.8 Di III VXD G2', #JR (Model A063)
216
220
  49471 => 'Tamron 50-400mm F4.5-6.3 Di III VC VXD', #JR (Model A067)
217
221
  49472 => 'Tamron 20-40mm F2.8 Di III VXD', #JR (Model A062)
222
+ 49473 => 'Tamron 17-50mm F4 Di III VXD or Tokina or Viltrox lens', #JR (Model A068)
223
+ 49473.1 => 'Tokina atx-m 85mm F1.8 FE', #JR
224
+ 49473.2 => 'Viltrox 23mm F1.4 E', #JR
225
+ 49473.3 => 'Viltrox 56mm F1.4 E', #JR
226
+ 49473.4 => 'Viltrox 85mm F1.8 II FE', #JR
227
+ 49474 => 'Tamron 70-180mm F2.8 Di III VXD G2 or Viltrox lens', #JR (Model A065)
228
+ 49474.1 => 'Viltrox 13mm F1.4 E',
229
+ 49474.2 => 'Viltrox 16mm F1.8 FE', #JR
230
+ 49474.3 => 'Viltrox 23mm F1.4 E', #JR
231
+ 49474.4 => 'Viltrox 24mm F1.8 FE', #JR
232
+ 49474.5 => 'Viltrox 28mm F1.8 FE', #JR
233
+ 49474.6 => 'Viltrox 33mm F1.4 E', #JR
234
+ 49474.7 => 'Viltrox 35mm F1.8 FE', #JR
235
+ 49474.8 => 'Viltrox 50mm F1.8 FE', #JR
236
+ 49474.9 => 'Viltrox 75mm F1.2 E', #JR
218
237
 
219
- 49473 => 'Tokina atx-m 85mm F1.8 FE or Viltrox lens', #JR
220
- 49473.1 => 'Viltrox 23mm F1.4 E', #JR
221
- 49473.2 => 'Viltrox 56mm F1.4 E', #JR
222
238
  49712 => 'Tokina FiRIN 20mm F2 FE AF', # (firmware Ver.01)
223
239
  49713 => 'Tokina FiRIN 100mm F2.8 FE MACRO', # (firmware Ver.01)
224
240
  49714 => 'Tokina atx-m 11-18mm F2.8 E', #JR
@@ -269,7 +285,9 @@ sub PrintInvLensSpec($;$$);
269
285
  50538 => 'Sigma 17mm F4 DG DN | C', #JR (023)
270
286
  50539 => 'Sigma 50mm F1.4 DG DN | A', #JR (023)
271
287
  50540 => 'Sigma 14mm F1.4 DG DN | A', #JR (023)
288
+ 50543 => 'Sigma 70-200mm F2.8 DG DN OS | S', #JR (023)
272
289
  50544 => 'Sigma 23mm F1.4 DC DN | C', #JR (023)
290
+ 50547 => 'Sigma 10-18mm F2.8 DC DN | C', #JR (023)
273
291
 
274
292
  50992 => 'Voigtlander SUPER WIDE-HELIAR 15mm F4.5 III', #JR
275
293
  50993 => 'Voigtlander HELIAR-HYPER WIDE 10mm F5.6', #IB
@@ -1304,7 +1322,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1304
1322
  Name => 'AFPointSelected',
1305
1323
  # non-zero only when AFAreaMode is 'Zone', and 'Expanded-Flexible-Spot' for ILCE-6300/7RM2/7SM2
1306
1324
  # each Zone has 3x3 AF Areas --> 9 positions within 5x5 total Contrast AF Areas
1307
- Condition => '$$self{Model} =~ /^(NEX-|ILCE-|ILME-)/',
1325
+ Condition => '$$self{Model} =~ /^(NEX-|ILCE-|ILME-|ZV-|DSC-RX)/',
1308
1326
  Notes => 'NEX and ILCE models',
1309
1327
  Writable => 'int8u',
1310
1328
  PrintConv => {
@@ -1326,7 +1344,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1326
1344
  # but not used by ILCA-99M2 anymore ... ?
1327
1345
  0x2020 => [{
1328
1346
  Name => 'AFPointsUsed',
1329
- Condition => '$$self{Model} !~ /^(ILCA-|DSC-)/', # (doesn't seem to apply to DSC-models)
1347
+ Condition => '$$self{Model} !~ /^(ILCA-|DSC-|ZV-)/', # (doesn't seem to apply to DSC-models)
1330
1348
  Notes => 'SLT models, or NEX/ILCE with A-mount lenses',
1331
1349
  BitsPerWord => 8,
1332
1350
  BitsTotal => 80,
@@ -1618,7 +1636,25 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1618
1636
  65535 => 'n/a',
1619
1637
  },
1620
1638
  },
1621
- # 0x203a - 0x2041: first seen October 2021 for ILCE-7M4
1639
+ # 0x203a - 0x2044: seen from October 2021 for ILCE-7M4 and newer
1640
+ # 0x203a - int8u[32]
1641
+ # 0x203c - undef[26] only non-zero data in Continuous drive mode
1642
+ # 0x203d - int32u
1643
+ # 0x203e - int8u: seen 0, 1, 2, 3, 4 and 255: possibly nr. of detected/tracked faces?
1644
+ # 0x203f - int16u
1645
+ # 0x2041 - int8u
1646
+ # 0x2044 - int32u[2] in ILCE-6700/7CM2/7CR, ILCE-7M4 v1.10, ILCE-7RM5 JPG and ZV-E1:
1647
+ # ARW: seen 143360 53248 and 139264 53248
1648
+ # JPG: [~filesize] 53248
1649
+ # 0x2047 - first seen for ILCE-9M3, November 2023
1650
+ # 0x2048 - first seen for ILCE-9M3
1651
+ # 0x2049 - undef[2]
1652
+ 0x204a => { #JR
1653
+ Name => 'FocusLocation2',
1654
+ Writable => 'int16u',
1655
+ Count => 4,
1656
+ NOTES => 'same as FocusLocation within one pixel',
1657
+ },
1622
1658
  0x3000 => {
1623
1659
  Name => 'ShotInfo',
1624
1660
  SubDirectory => { TagTable => 'Image::ExifTool::Sony::ShotInfo' },
@@ -1654,7 +1690,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1654
1690
  },
1655
1691
  },{
1656
1692
  Name => 'Tag9050b',
1657
- Condition => '$$self{Model} =~ /^(ILCE-(6100|6300|6400|6500|6600|7C|7M3|7RM2|7RM3A?|7RM4A?|7SM2|9|9M2)|ILCA-99M2|ZV-E10)/',
1693
+ Condition => '$$self{Model} =~ /^(ILCE-(6100|6300|6400|6500|6600|7C|7M3|7RM2|7RM3A?|7RM4A?|7SM2|9|9M2)|ILCA-99M2|ZV-E10)\b/',
1658
1694
  SubDirectory => {
1659
1695
  TagTable => 'Image::ExifTool::Sony::Tag9050b',
1660
1696
  ByteOrder => 'LittleEndian',
@@ -1668,7 +1704,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1668
1704
  },
1669
1705
  },{
1670
1706
  Name => 'Tag9050d',
1671
- Condition => '$$self{Model} =~ /^(ILCE-6700|ZV-E1)/',
1707
+ Condition => '$$self{Model} =~ /^(ILCE-(6700|7CM2|7CR)|ZV-E1)\b/',
1672
1708
  SubDirectory => {
1673
1709
  TagTable => 'Image::ExifTool::Sony::Tag9050d',
1674
1710
  ByteOrder => 'LittleEndian',
@@ -1690,7 +1726,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1690
1726
  # 0x28 (e) for ILCE-7RM4/9M2, DSC-RX100M7, ZV-1/1F/1M2/E10
1691
1727
  # 0x31 (e) for ILCE-1/7M4/7SM3, ILME-FX3
1692
1728
  # 0x32 (e) for ILCE-7RM5, ILME-FX30
1693
- # 0x33 (e) for ILCE-6700, ZV-E1
1729
+ # 0x33 (e) for ILCE-6700/7CM2/7CR/9M3, ZV-E1
1694
1730
  # first byte decoded: 40, 204, 202, 27, 58, 62, 48, 215, 28, 106, 89, 63 respectively
1695
1731
  {
1696
1732
  Name => 'Tag9400a',
@@ -1807,7 +1843,12 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1807
1843
  # 0x1f 0x01 DSC-HX95/HX99
1808
1844
  # 0x20 0x01 ILCE-6100/6400/6600/7RM4/9M2, ILCE-9 v5.00-v6.00, DSC-RX0M2/RX100M7
1809
1845
  # 0x21 0x01 ZV-1/1F/1M2/E10
1810
- # 0x27 0x01 ZV-E1
1846
+ # 0x22 (34) ILCE-7SM3, ILME-FX3
1847
+ # 0x24 (36) ILCE-1
1848
+ # 0x25 (37) ILCE-7M4
1849
+ # 0x26 (38) ILCE-7RM5, ILME-FX30
1850
+ # 0x27 (39) ILCE-6700/7CM2/7CR, ZV-E1
1851
+ # 0x28 (40) ILCE-9M3
1811
1852
  # var var SLT-A58/A99V, HV, ILCA-68/77M2/99M2
1812
1853
  # 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)
1813
1854
  # 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/',
@@ -1886,11 +1927,15 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1886
1927
  Name => 'Tag9406',
1887
1928
  # - first byte must be 0x01 or 0x02 (enciphered 0x01 or 0x08),
1888
1929
  # 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
1890
1930
  # third byte must be 0x02 or 0x03 (enciphered 0x08 or 0x1b) - ref JR
1891
1931
  # (applies to most SLT/ILCA and NEX/ILCE models, but no DSC models)
1892
- Condition => '$$valPt =~ /^[\x01\x08\x1b].[\x08\x1b]/s or $$valPt =~ /^[\x40]/s',
1932
+ Condition => '$$valPt =~ /^[\x01\x08\x1b].[\x08\x1b]/s',
1893
1933
  SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag9406' },
1934
+ },{
1935
+ Name => 'Tag9406b',
1936
+ # - first byte 0x04 (enc. 0x40) for ILCE-6700/7CM2/7CR/9M3, ZV-E1
1937
+ Condition => '$$valPt =~ /^[\x40]/s',
1938
+ SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag9406b' },
1894
1939
  },{
1895
1940
  Name => 'Sony_0x9406',
1896
1941
  %unknownCipherData,
@@ -1983,6 +2028,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1983
2028
  '3 3 5 0' => 'ARW 2.3.5', #JR (DSC-HX99)
1984
2029
  '4 0 0 0' => 'ARW 4.0', # (ILCE-7SM3)
1985
2030
  '4 0 1 0' => 'ARW 4.0.1', #github#195 (ZV-E1)
2031
+ '5 0 0 0' => 'ARW 5.0', # (ILCE-9M3)
1986
2032
  # what about cRAW images?
1987
2033
  },
1988
2034
  },
@@ -2089,9 +2135,12 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
2089
2135
  389 => 'ZV-1F', #IB
2090
2136
  390 => 'ILCE-7RM5', #IB
2091
2137
  391 => 'ILME-FX30', #JR
2138
+ 392 => 'ILCE-9M3', #JR
2092
2139
  393 => 'ZV-E1', #JR
2093
2140
  394 => 'ILCE-6700', #JR
2094
2141
  395 => 'ZV-1M2', #JR
2142
+ 396 => 'ILCE-7CR', #JR
2143
+ 397 => 'ILCE-7CM2', #JR
2095
2144
  },
2096
2145
  },
2097
2146
  0xb020 => { #2
@@ -7896,7 +7945,7 @@ my %isoSetting2010 = (
7896
7945
  },
7897
7946
  0x01eb => {
7898
7947
  Name => 'APS-CSizeCapture',
7899
- Condition => '$$self{Model} =~ /^ILCE-(7RM4A?|7C|9M2)|ZV-E10/ or $$self{Software} =~ /^ILCE-9 (v5.0|v6.0)/',
7948
+ Condition => '$$self{Model} =~ /^ILCE-(7RM4A?|7C|9M2)/ or $$self{Software} =~ /^ILCE-9 (v5.0|v6.0)/',
7900
7949
  PrintConv => {
7901
7950
  0 => 'Off',
7902
7951
  1 => 'On',
@@ -8110,14 +8159,14 @@ my %isoSetting2010 = (
8110
8159
  WRITE_PROC => \&WriteEnciphered,
8111
8160
  CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
8112
8161
  FORMAT => 'int8u',
8113
- NOTES => 'Valid for ILCE-6700/ZV-E1.',
8162
+ NOTES => 'Valid for ILCE-6700/7CM2/7CR/ZV-E1.',
8114
8163
  WRITABLE => 1,
8115
8164
  FIRST_ENTRY => 0,
8116
8165
  GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
8117
8166
  0x000a => {
8118
8167
  Name => 'ShutterCount',
8119
8168
  # number of mechanical shutter actuations, does not increase during electronic shutter / Silent Shooting
8120
- Condition => '$$self{Model} =~ /^(ILCE-6700)/',
8169
+ Condition => '$$self{Model} =~ /^(ILCE-(6700|7CM2|7CR))/',
8121
8170
  Format => 'int32u',
8122
8171
  Notes => 'total number of image exposures made by the camera',
8123
8172
  RawConv => '$val & 0x00ffffff',
@@ -8377,7 +8426,7 @@ my %isoSetting2010 = (
8377
8426
  },
8378
8427
  0x002a => [{
8379
8428
  Name => 'Quality2',
8380
- Condition => '$$self{Model} !~ /^(ILCE-(1|6700|7M4|7RM5|7SM3)|ILME-(FX3|FX30)|ZV-E1)\b/',
8429
+ Condition => '$$self{Model} !~ /^(ILCE-(1|6700|7CM2|7CR|7M4|7RM5|7SM3|9M3)|ILME-(FX3|FX30)|ZV-E1)\b/',
8381
8430
  PrintConv => {
8382
8431
  0 => 'JPEG',
8383
8432
  1 => 'RAW',
@@ -8394,15 +8443,15 @@ my %isoSetting2010 = (
8394
8443
  6 => 'RAW + HEIF',
8395
8444
  },
8396
8445
  }],
8397
- 0x0047 => {
8398
- Name => 'SonyImageHeight',
8399
- Condition => '$$self{Model} !~ /^(ILCE-(1|6700|7M4|7RM5|7SM3)|ILME-(FX3|FX30)|ZV-E1)\b/',
8400
- Format => 'int16u',
8401
- PrintConv => '$val > 0 ? 8*$val : "n.a."',
8402
- },
8446
+ # 0x0047 => { # often incorrect, requires 16x for some models
8447
+ # Name => 'SonyImageHeight',
8448
+ # Condition => '$$self{Model} !~ /^(ILCE-(1|6700|7CM2|7CR|7M4|7RM5|7SM3|9M3)|ILME-(FX3|FX30)|ZV-E1)\b/',
8449
+ # Format => 'int16u',
8450
+ # PrintConv => '$val > 0 ? 8*$val : "n.a."',
8451
+ # },
8403
8452
  0x0053 => {
8404
8453
  Name => 'ModelReleaseYear',
8405
- Condition => '$$self{Model} !~ /^(ILCE-(1|6700|7M4|7RM5|7SM3)|ILME-(FX3|FX30)|ZV-E1)\b/',
8454
+ Condition => '$$self{Model} !~ /^(ILCE-(1|6700|7CM2|7CR|7M4|7RM5|7SM3|9M3)|ILME-(FX3|FX30)|ZV-E1)\b/',
8406
8455
  Format => 'int8u',
8407
8456
  PrintConv => 'sprintf("20%.2d", $val)',
8408
8457
  },
@@ -8441,10 +8490,11 @@ my %isoSetting2010 = (
8441
8490
  FIRST_ENTRY => 0,
8442
8491
  GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
8443
8492
  DATAMEMBER => [ 0 ],
8444
- IS_SUBDIR => [ 0x03e2, 0x044e, 0x0498, 0x049d, 0x04a1, 0x04a2, 0x04ba, 0x059d, 0x0634, 0x0636, 0x064c, 0x0653, 0x0678, 0x06b8, 0x06de, 0x06e7 ],
8493
+ IS_SUBDIR => [ 0x03e2, 0x03f4, 0x044e, 0x0498, 0x049d, 0x04a1, 0x04a2, 0x04ba, 0x059d, 0x0634, 0x0636, 0x064c, 0x0653, 0x0678, 0x06b8, 0x06de, 0x06e7 ],
8445
8494
  0x0000 => { Name => 'Ver9401', Hidden => 1, RawConv => '$$self{Ver9401} = $val; $$self{OPTIONS}{Unknown}<2 ? undef : $val' },
8446
8495
 
8447
8496
  0x03e2 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} == 181', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
8497
+ 0x03f4 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} == 185', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
8448
8498
  0x044e => { Name => 'ISOInfo', Condition => '$$self{Ver9401} == 178', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
8449
8499
  0x0498 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} == 148', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
8450
8500
  0x049d => { Name => 'ISOInfo', Condition => '$$self{Ver9401} == 167', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
@@ -8521,8 +8571,8 @@ my %isoSetting2010 = (
8521
8571
  14 => 'Tracking',
8522
8572
  15 => 'Face Tracking',
8523
8573
  20 => 'Animal Eye Tracking',
8524
- # 21 => '???', # (ILCE-1/6700/7SM3, ILME-FX3, ZV-E1: tracking ... mostly human face ...)
8525
- # 22 => '???', # (ILCE-6700, ZV-E1: tracking ...)
8574
+ 21 => 'Human Eye Tracking', # always "Face tracking", seen for ILCE-7SM3, ILCE-1 and newer
8575
+ # 22 => 'Object Tracking???', # always "Lock On AF", seen for ILCE-6700, ZV-E1 (no animal or human in picture)
8526
8576
  255 => 'Manual',
8527
8577
  },
8528
8578
  },
@@ -8993,29 +9043,19 @@ my %isoSetting2010 = (
8993
9043
  FORMAT => 'int8u',
8994
9044
  WRITABLE => 1,
8995
9045
  FIRST_ENTRY => 0,
8996
- DATAMEMBER => [ 0 ],
8997
9046
  GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
8998
9047
  # 0x0000: 1 for SLT-A37/A57/A65/A77, NEX-5N/7/F3/VG20
8999
9048
  # 2 for SLT-A58/99V, NEX-3N/5R/5T/6/VG30/VG900, ILCA-68/77M2, ILCE-3000/3500/7/7M2/7R/7S/5000/6000
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' },
9049
+ # 3 for ILCA-99M2, ILCE-6100/6300/6400/6500/6600/7C/7M3/7M4/7RM2/7RM3/7RM4/7RM5/7SM2/7SM3/9/9M2/1
9003
9050
  # 0x0001+0x0002: Int16u, seen 580 - 770: similar to "BatteryUnknown" ??
9004
9051
  # 0x0005: int8u, seen 73 - 117: maybe Fahrenheit? Higher than "AmbientTemperature", but same trend.
9005
- 0x0005 => [{
9052
+ 0x0005 => {
9006
9053
  Name => 'BatteryTemperature',
9007
- Condition => '$$self{Ver9406} != 4',
9008
9054
  ValueConv => '($val - 32) / 1.8', # convert to Celsius
9009
9055
  ValueConvInv => '$val * 1.8 + 32',
9010
9056
  PrintConv => 'sprintf("%.1f C",$val)',
9011
9057
  PrintConvInv => '$val=~s/\s*C//; $val',
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
- }],
9058
+ },
9019
9059
  # 0x0006: usually 0, seen non-zero values only for SLT-A99V, ILCA-77M2/99M2 and ILCE-7/7R/7RM2/9: BatteryLevel Grip ?
9020
9060
  0x0006 => {
9021
9061
  Name => 'BatteryLevelGrip1',
@@ -9026,7 +9066,6 @@ my %isoSetting2010 = (
9026
9066
  # 0x0007: seen values from 8 - 105, decreasing in sequences of images: BatteryLevel
9027
9067
  0x0007 => {
9028
9068
  Name => 'BatteryLevel',
9029
- Condition => '$$self{Ver9406} != 4',
9030
9069
  PrintConv => '"$val%"',
9031
9070
  PrintConvInv => '$val=~s/\s*\%//; $val',
9032
9071
  },
@@ -9045,6 +9084,49 @@ my %isoSetting2010 = (
9045
9084
  # 0x0025: 0 or 1 for other SLT and NEX (0x0022, 0x0023, 0x0024 = 255)
9046
9085
  );
9047
9086
 
9087
+ # Tag9406b (ref JR)
9088
+ %Image::ExifTool::Sony::Tag9406b = (
9089
+ PROCESS_PROC => \&ProcessEnciphered,
9090
+ WRITE_PROC => \&WriteEnciphered,
9091
+ CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
9092
+ FORMAT => 'int8u',
9093
+ WRITABLE => 1,
9094
+ FIRST_ENTRY => 0,
9095
+ DATAMEMBER => [ 1, 4, 6 ],
9096
+ GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
9097
+ # 0x0000: 4 for ILCE-6700/7CM2/7CR/9M3, ZV-E1
9098
+ 0x0001 => {
9099
+ Name => 'Battery2',
9100
+ Hidden => 1,
9101
+ RawConv => '$$self{Battery2} = $val; $$self{OPTIONS}{Unknown}<2 ? undef : $val',
9102
+ # 0 for single battery, 1 for 2 batteries
9103
+ },
9104
+ 0x0004 => {
9105
+ Name => 'BatteryStatus1',
9106
+ Hidden => 1,
9107
+ # seen 3, 5, 7: when 3 or 7 0x0005 appears valid; when 5, 0x0005 always 0
9108
+ RawConv => '$$self{BatteryStatus1} = $val; $$self{OPTIONS}{Unknown}<2 ? undef : $val',
9109
+ },
9110
+ 0x0005 => {
9111
+ Name => 'BatteryLevel',
9112
+ Condition => '$$self{BatteryStatus1} != 5',
9113
+ PrintConv => '"$val%"',
9114
+ PrintConvInv => '$val=~s/\s*\%//; $val',
9115
+ },
9116
+ 0x0006 => {
9117
+ Name => 'BatteryStatus2',
9118
+ Condition => '$$self{Battery2} == 1',
9119
+ Hidden => 1,
9120
+ RawConv => '$$self{BatteryStatus2} = $val; $$self{OPTIONS}{Unknown}<2 ? undef : $val',
9121
+ },
9122
+ 0x0007 => {
9123
+ Name => 'BatteryLevel2',
9124
+ Condition => '$$self{Battery2} == 1 and $$self{BatteryStatus2} != 5',
9125
+ PrintConv => '"$val%"',
9126
+ PrintConvInv => '$val=~s/\s*\%//; $val',
9127
+ },
9128
+ );
9129
+
9048
9130
  # Tag940a (ref PH, decoded mainly from A77)
9049
9131
  %Image::ExifTool::Sony::Tag940a = (
9050
9132
  PROCESS_PROC => \&ProcessEnciphered,
@@ -9739,7 +9821,7 @@ my %isoSetting2010 = (
9739
9821
  WRITE_PROC => \&WriteEnciphered,
9740
9822
  CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
9741
9823
  FORMAT => 'int8u',
9742
- NOTES => 'Valid for the ILCE-1/6700/7M4/7RM5/7SM3, ILME-FX3/FX30, ZV-E1.',
9824
+ NOTES => 'Valid for the ILCE-1/6700/7CM2/7CR/7M4/7RM5/7SM3/9M3, ILME-FX3/FX30, ZV-E1.',
9743
9825
  FIRST_ENTRY => 0,
9744
9826
  GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
9745
9827
  0x0000 => { Name => 'Tag9416_0000', PrintConv => 'sprintf("%3d",$val)', RawConv => '$$self{TagVersion} = $val' },
@@ -9783,12 +9865,36 @@ my %isoSetting2010 = (
9783
9865
  PrintConvInv => '$val',
9784
9866
  },
9785
9867
  0x001d => { %sequenceImageNumber },
9868
+ 0x002b => { %releaseMode2 },
9786
9869
  0x0035 => {
9787
9870
  Name => 'ExposureProgram',
9788
9871
  Priority => 0,
9789
9872
  SeparateTable => 'ExposureProgram3',
9790
9873
  PrintConv => \%sonyExposureProgram3,
9791
9874
  },
9875
+ 0x0037 => {
9876
+ Name => 'CreativeStyle',
9877
+ PrintConv => {
9878
+ 0 => 'Standard',
9879
+ 1 => 'Vivid',
9880
+ 2 => 'Neutral',
9881
+ 3 => 'Portrait',
9882
+ 4 => 'Landscape',
9883
+ 5 => 'B&W',
9884
+ 6 => 'Clear',
9885
+ 7 => 'Deep',
9886
+ 8 => 'Light',
9887
+ 9 => 'Sunset',
9888
+ 10 => 'Night View/Portrait',
9889
+ 11 => 'Autumn Leaves',
9890
+ 13 => 'Sepia',
9891
+ 15 => 'FL',
9892
+ 16 => 'VV2',
9893
+ 17 => 'IN',
9894
+ 18 => 'SH',
9895
+ 255 => 'Off',
9896
+ },
9897
+ },
9792
9898
  0x0048 => {
9793
9899
  Name => 'LensMount',
9794
9900
  Condition => '$$self{Model} !~ /^(DSC-)/',
@@ -9876,9 +9982,9 @@ my %isoSetting2010 = (
9876
9982
  Condition => '$$self{Model} =~ /^(ILCE-7M4)/',
9877
9983
  Format => 'int16s[16]',
9878
9984
  },
9879
- 0x089d => { # Note: 32 values for these newer models, and 32 non-zero values present for new lenses like SEL2470GM2 and SEL2470G
9985
+ 0x089d => { # Note: 32 values for these newer models, and 32 non-zero values present for new lenses like SEL2470GM2 and SEL2070G
9880
9986
  Name => 'VignettingCorrParams',
9881
- Condition => '$$self{Model} =~ /^(ILCE-(6700|7RM5)|ILME-FX30|ZV-E1)\b/',
9987
+ Condition => '$$self{Model} =~ /^(ILCE-(6700|7CM2|7CR|7RM5)|ILME-FX30|ZV-E1)\b/',
9882
9988
  Format => 'int16s[32]',
9883
9989
  },
9884
9990
  0x08b5 => {
@@ -9899,7 +10005,7 @@ my %isoSetting2010 = (
9899
10005
  },
9900
10006
  0x08e5 => {
9901
10007
  Name => 'APS-CSizeCapture',
9902
- Condition => '$$self{Model} =~ /^(ILCE-7RM5|ZV-E1)\b/',
10008
+ Condition => '$$self{Model} =~ /^(ILCE-(7CM2|7CR|7RM5)|ZV-E1)\b/',
9903
10009
  PrintConv => {
9904
10010
  0 => 'Off',
9905
10011
  1 => 'On',
@@ -9917,7 +10023,7 @@ my %isoSetting2010 = (
9917
10023
  },
9918
10024
  0x0945 => {
9919
10025
  Name => 'ChromaticAberrationCorrParams',
9920
- Condition => '$$self{Model} =~ /^(ILCE-(6700|7RM5)|ILME-FX30|ZV-E1)\b/',
10026
+ Condition => '$$self{Model} =~ /^(ILCE-(6700|7CM2|7CR|7RM5)|ILME-FX30|ZV-E1)\b/',
9921
10027
  Format => 'int16s[32]',
9922
10028
  },
9923
10029
  );