exiftool_vendored 12.42.0 → 12.50.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (73) hide show
  1. checksums.yaml +4 -4
  2. data/bin/Changes +189 -6
  3. data/bin/MANIFEST +12 -0
  4. data/bin/META.json +1 -1
  5. data/bin/META.yml +1 -1
  6. data/bin/README +45 -44
  7. data/bin/config_files/acdsee.config +2 -1
  8. data/bin/config_files/frameCount.config +56 -0
  9. data/bin/config_files/tiff_version.config +1 -1
  10. data/bin/exiftool +113 -95
  11. data/bin/fmt_files/gpx.fmt +3 -0
  12. data/bin/fmt_files/gpx_wpt.fmt +3 -0
  13. data/bin/lib/Image/ExifTool/Apple.pm +16 -3
  14. data/bin/lib/Image/ExifTool/BuildTagLookup.pm +23 -12
  15. data/bin/lib/Image/ExifTool/Canon.pm +66 -37
  16. data/bin/lib/Image/ExifTool/CanonRaw.pm +8 -1
  17. data/bin/lib/Image/ExifTool/CanonVRD.pm +7 -8
  18. data/bin/lib/Image/ExifTool/DJI.pm +2 -1
  19. data/bin/lib/Image/ExifTool/DarwinCore.pm +13 -1
  20. data/bin/lib/Image/ExifTool/EXE.pm +9 -1
  21. data/bin/lib/Image/ExifTool/Exif.pm +17 -12
  22. data/bin/lib/Image/ExifTool/FLAC.pm +17 -3
  23. data/bin/lib/Image/ExifTool/FLIR.pm +4 -3
  24. data/bin/lib/Image/ExifTool/FlashPix.pm +26 -3
  25. data/bin/lib/Image/ExifTool/FujiFilm.pm +51 -4
  26. data/bin/lib/Image/ExifTool/GPS.pm +21 -1
  27. data/bin/lib/Image/ExifTool/Geotag.pm +25 -5
  28. data/bin/lib/Image/ExifTool/ICC_Profile.pm +3 -2
  29. data/bin/lib/Image/ExifTool/ICO.pm +143 -0
  30. data/bin/lib/Image/ExifTool/ID3.pm +6 -6
  31. data/bin/lib/Image/ExifTool/IPTC.pm +5 -1
  32. data/bin/lib/Image/ExifTool/LNK.pm +5 -2
  33. data/bin/lib/Image/ExifTool/M2TS.pm +98 -8
  34. data/bin/lib/Image/ExifTool/MIE.pm +9 -3
  35. data/bin/lib/Image/ExifTool/MISB.pm +494 -0
  36. data/bin/lib/Image/ExifTool/MakerNotes.pm +3 -1
  37. data/bin/lib/Image/ExifTool/Matroska.pm +24 -16
  38. data/bin/lib/Image/ExifTool/Motorola.pm +8 -2
  39. data/bin/lib/Image/ExifTool/Nikon.pm +288 -122
  40. data/bin/lib/Image/ExifTool/NikonSettings.pm +5 -3
  41. data/bin/lib/Image/ExifTool/Olympus.pm +3 -2
  42. data/bin/lib/Image/ExifTool/Panasonic.pm +21 -4
  43. data/bin/lib/Image/ExifTool/PanasonicRaw.pm +25 -5
  44. data/bin/lib/Image/ExifTool/Parrot.pm +96 -2
  45. data/bin/lib/Image/ExifTool/Pentax.pm +7 -2
  46. data/bin/lib/Image/ExifTool/Photoshop.pm +29 -3
  47. data/bin/lib/Image/ExifTool/QuickTime.pm +163 -13
  48. data/bin/lib/Image/ExifTool/QuickTimeStream.pl +119 -13
  49. data/bin/lib/Image/ExifTool/README +13 -3
  50. data/bin/lib/Image/ExifTool/RIFF.pm +106 -9
  51. data/bin/lib/Image/ExifTool/Samsung.pm +2 -2
  52. data/bin/lib/Image/ExifTool/Sigma.pm +27 -1
  53. data/bin/lib/Image/ExifTool/SigmaRaw.pm +37 -13
  54. data/bin/lib/Image/ExifTool/Sony.pm +71 -43
  55. data/bin/lib/Image/ExifTool/TagInfoXML.pm +3 -1
  56. data/bin/lib/Image/ExifTool/TagLookup.pm +4737 -4517
  57. data/bin/lib/Image/ExifTool/TagNames.pod +1837 -1417
  58. data/bin/lib/Image/ExifTool/Text.pm +3 -4
  59. data/bin/lib/Image/ExifTool/Torrent.pm +2 -3
  60. data/bin/lib/Image/ExifTool/Validate.pm +3 -3
  61. data/bin/lib/Image/ExifTool/WriteCanonRaw.pl +7 -0
  62. data/bin/lib/Image/ExifTool/WriteExif.pl +100 -23
  63. data/bin/lib/Image/ExifTool/WriteIPTC.pl +2 -6
  64. data/bin/lib/Image/ExifTool/WritePhotoshop.pl +5 -5
  65. data/bin/lib/Image/ExifTool/WriteRIFF.pl +359 -0
  66. data/bin/lib/Image/ExifTool/Writer.pl +13 -5
  67. data/bin/lib/Image/ExifTool/XMP.pm +78 -59
  68. data/bin/lib/Image/ExifTool/XMP2.pl +19 -4
  69. data/bin/lib/Image/ExifTool.pm +111 -24
  70. data/bin/lib/Image/ExifTool.pod +83 -69
  71. data/bin/perl-Image-ExifTool.spec +43 -43
  72. data/lib/exiftool_vendored/version.rb +1 -1
  73. metadata +9 -4
@@ -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.50';
37
+ $VERSION = '3.55';
38
38
 
39
39
  sub ProcessSRF($$$);
40
40
  sub ProcessSR2($$$);
@@ -154,7 +154,12 @@ sub PrintInvLensSpec($;$$);
154
154
  32866 => 'Sony FE 24mm F2.8 G', #IB
155
155
  32867 => 'Sony FE 40mm F2.5 G', #IB
156
156
  32868 => 'Sony FE 50mm F2.5 G', #IB
157
+ 32871 => 'Sony FE PZ 16-35mm F4 G', #JR
158
+ 32873 => 'Sony E PZ 10-20mm F4 G', #JR
157
159
  32874 => 'Sony FE 70-200mm F2.8 GM OSS II', #IB
160
+ 32875 => 'Sony FE 24-70mm F2.8 GM II', #JR
161
+ 32876 => 'Sony E 11mm F1.8', #JR
162
+ 32877 => 'Sony E 15mm F1.4 G', #JR
158
163
 
159
164
  # (comment this out so LensID will report the LensModel, which is more useful)
160
165
  # 32952 => 'Metabones Canon EF Speed Booster Ultra', #JR (corresponds to 184, but 'Advanced' mode, LensMount reported as E-mount)
@@ -200,12 +205,15 @@ sub PrintInvLensSpec($;$$);
200
205
  49468 => 'Tamron 18-300mm F3.5-6.3 Di III-A VC VXD', #JR (Model B061)
201
206
  49469 => 'Tamron 35-150mm F2-F2.8 Di III VXD', #JR (Model A058)
202
207
  49470 => 'Tamron 28-75mm F2.8 Di III VXD G2', #JR (Model A063)
208
+ 49471 => 'Tamron 50-400mm F4.5-6.3 Di III VC VXD', #JR (Model A067)
209
+ 49472 => 'Tamron 20-40mm F2.8 Di III VXD', #JR (Model A062)
203
210
 
204
211
  49473 => 'Tokina atx-m 85mm F1.8 FE or Viltrox lens', #JR
205
212
  49473.1 => 'Viltrox 23mm F1.4 E', #JR
206
213
  49473.2 => 'Viltrox 56mm F1.4 E', #JR
207
214
  49712 => 'Tokina FiRIN 20mm F2 FE AF', # (firmware Ver.01)
208
215
  49713 => 'Tokina FiRIN 100mm F2.8 FE MACRO', # (firmware Ver.01)
216
+ 49714 => 'Tokina atx-m 11-18mm F2.8 E', #JR
209
217
 
210
218
  50480 => 'Sigma 30mm F1.4 DC DN | C', #IB/JR (016)
211
219
  50481 => 'Sigma 50mm F1.4 DG HSM | A', #JR (014 + MC-11 or 018)
@@ -245,6 +253,9 @@ sub PrintInvLensSpec($;$$);
245
253
  50530 => 'Sigma 24mm F2 DG DN | C', #JR (021)
246
254
  50531 => 'Sigma 18-50mm F2.8 DC DN | C', #IB/JR (021)
247
255
  50532 => 'Sigma 20mm F2 DG DN | C', #JR (022)
256
+ 50533 => 'Sigma 16-28mm F2.8 DG DN | C', #JR (022)
257
+ 50534 => 'Sigma 20mm F1.4 DG DN | A', #JR (022)
258
+ 50535 => 'Sigma 24mm F1.4 DG DN | A', #JR (022)
248
259
 
249
260
  50992 => 'Voigtlander SUPER WIDE-HELIAR 15mm F4.5 III', #JR
250
261
  50993 => 'Voigtlander HELIAR-HYPER WIDE 10mm F5.6', #IB
@@ -1042,7 +1053,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1042
1053
  SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag2010h' },
1043
1054
  },{
1044
1055
  Name => 'Tag2010i', # ?
1045
- Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7C|7M3|7RM3A?|7RM4A?|9|9M2)|DSC-(RX10M4|RX100M6|RX100M5A|RX100M7|HX99|RX0M2)|ZV-(1|E10))\b/',
1056
+ Condition => '$$self{Model} =~ /^(ILCE-(6100|6400|6600|7C|7M3|7RM3A?|7RM4A?|9|9M2)|DSC-(RX10M4|RX100M6|RX100M5A|RX100M7|HX99|RX0M2)|ZV-(1F?|E10))\b/',
1046
1057
  SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag2010i' },
1047
1058
  },{
1048
1059
  Name => 'Tag_0x2010',
@@ -1618,7 +1629,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1618
1629
  # from mid-2015: ILCE-7RM2/7SM2/6300 and newer models use different offsets
1619
1630
  {
1620
1631
  Name => 'Tag9050a',
1621
- Condition => '$$self{Model} !~ /^(DSC-|Stellar|ILCE-(1|6100|6300|6400|6500|6600|7C|7M3|7M4|7RM2|7RM3A?|7RM4A?|7SM2|7SM3|9|9M2)|ILCA-99M2|ILME-FX3|ZV-)/',
1632
+ 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-)/',
1622
1633
  SubDirectory => {
1623
1634
  TagTable => 'Image::ExifTool::Sony::Tag9050a',
1624
1635
  ByteOrder => 'LittleEndian',
@@ -1632,7 +1643,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1632
1643
  },
1633
1644
  },{
1634
1645
  Name => 'Tag9050c',
1635
- Condition => '$$self{Model} =~ /^(ILCE-(1|7M4|7SM3)|ILME-FX3)/',
1646
+ Condition => '$$self{Model} =~ /^(ILCE-(1|7M4|7RM5|7SM3)|ILME-FX3)/',
1636
1647
  SubDirectory => {
1637
1648
  TagTable => 'Image::ExifTool::Sony::Tag9050c',
1638
1649
  ByteOrder => 'LittleEndian',
@@ -1652,8 +1663,9 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1652
1663
  # 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
1653
1664
  # 0x26 (e) for ILCE-6100/6400/6600/7M3/7RM3/9, DSC-RX0M2/RX10M4/RX100M5A/RX100M6/HX99
1654
1665
  # 0x28 (e) for ILCE-7RM4/9M2, DSC-RX100M7, ZV-1/E10
1655
- # 0x31 (e) for ILCE-1/7SM3, ILME-FX3
1656
- # first byte decoded: 40, 204, 202, 27, 58, 62, 48, 215, 28, 106 respectively
1666
+ # 0x31 (e) for ILCE-1/7M4/7SM3, ILME-FX3
1667
+ # 0x32 (e) for ILCE-7RM5, ILME-FX30
1668
+ # first byte decoded: 40, 204, 202, 27, 58, 62, 48, 215, 28, 106, 89 respectively
1657
1669
  {
1658
1670
  Name => 'Tag9400a',
1659
1671
  Condition => q{
@@ -1667,7 +1679,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1667
1679
  SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag9400b' },
1668
1680
  },{
1669
1681
  Name => 'Tag9400c',
1670
- Condition => '$$valPt =~ /^[\x23\x24\x26\x28\x31]/',
1682
+ Condition => '$$valPt =~ /^[\x23\x24\x26\x28\x31\x32]/',
1671
1683
  SubDirectory => { TagTable => 'Image::ExifTool::Sony::Tag9400c' },
1672
1684
  },{
1673
1685
  Name => 'Sony_0x9400',
@@ -2043,6 +2055,9 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
2043
2055
  386 => 'ILCE-7RM3A', #JR
2044
2056
  387 => 'ILCE-7RM4A', #forum12542
2045
2057
  388 => 'ILCE-7M4', #IB/JR
2058
+ 389 => 'ZV-1F', #IB
2059
+ 390 => 'ILCE-7RM5', #IB
2060
+ 391 => 'ILME-FX30', #JR
2046
2061
  },
2047
2062
  },
2048
2063
  0xb020 => { #2
@@ -7965,7 +7980,7 @@ my %isoSetting2010 = (
7965
7980
  },
7966
7981
  0x0088 => {
7967
7982
  Name => 'InternalSerialNumber', #(NC)
7968
- Condition => '$$self{Model} =~ /^(ILCE-(7M4|7SM3)|ILME-FX3)/',
7983
+ Condition => '$$self{Model} =~ /^(ILCE-(7M4|7RM5|7SM3)|ILME-FX3)/',
7969
7984
  Format => 'int8u[6]',
7970
7985
  PrintConv => 'unpack "H*", pack "C*", split " ", $val',
7971
7986
  },
@@ -8203,7 +8218,7 @@ my %isoSetting2010 = (
8203
8218
  },
8204
8219
  0x002a => [{
8205
8220
  Name => 'Quality2',
8206
- Condition => '$$self{Model} !~ /^(ILCE-(1|7M4|7SM3)|ILME-FX3)\b/',
8221
+ Condition => '$$self{Model} !~ /^(ILCE-(1|7M4|7RM5|7SM3)|ILME-FX3)\b/',
8207
8222
  PrintConv => {
8208
8223
  0 => 'JPEG',
8209
8224
  1 => 'RAW',
@@ -8212,7 +8227,7 @@ my %isoSetting2010 = (
8212
8227
  },
8213
8228
  },{
8214
8229
  Name => 'Quality2',
8215
- Condition => '$$self{Model} =~ /^(ILCE-(1|7M4|7SM3)|ILME-FX3)\b/',
8230
+ Condition => '$$self{Model} =~ /^(ILCE-(1|7M4|7RM5|7SM3)|ILME-FX3)\b/',
8216
8231
  PrintConv => {
8217
8232
  1 => 'JPEG',
8218
8233
  2 => 'RAW',
@@ -8223,13 +8238,13 @@ my %isoSetting2010 = (
8223
8238
  }],
8224
8239
  0x0047 => {
8225
8240
  Name => 'SonyImageHeight',
8226
- Condition => '$$self{Model} !~ /^(ILCE-(1|7M4|7SM3)|ILME-FX3)\b/',
8241
+ Condition => '$$self{Model} !~ /^(ILCE-(1|7M4|7RM5|7SM3)|ILME-FX3)\b/',
8227
8242
  Format => 'int16u',
8228
8243
  PrintConv => '$val > 0 ? 8*$val : "n.a."',
8229
8244
  },
8230
8245
  0x0053 => {
8231
8246
  Name => 'ModelReleaseYear',
8232
- Condition => '$$self{Model} !~ /^(ILCE-(1|7M4|7SM3)|ILME-FX3)\b/',
8247
+ Condition => '$$self{Model} !~ /^(ILCE-(1|7M4|7RM5|7SM3)|ILME-FX3)\b/',
8233
8248
  Format => 'int8u',
8234
8249
  PrintConv => 'sprintf("20%.2d", $val)',
8235
8250
  },
@@ -8244,9 +8259,10 @@ my %isoSetting2010 = (
8244
8259
  FIRST_ENTRY => 0,
8245
8260
  GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
8246
8261
  DATAMEMBER => [ 0 ],
8247
- IS_SUBDIR => [ 0x0498, 0x049d, 0x04a1, 0x04a2, 0x059d, 0x0634, 0x0636, 0x064c, 0x0653, 0x0678, 0x06b8, 0x06de, 0x06e7 ],
8262
+ IS_SUBDIR => [ 0x044e, 0x0498, 0x049d, 0x04a1, 0x04a2, 0x059d, 0x0634, 0x0636, 0x064c, 0x0653, 0x0678, 0x06b8, 0x06de, 0x06e7 ],
8248
8263
  0x0000 => { Name => 'Ver9401', Hidden => 1, RawConv => '$$self{Ver9401} = $val; $$self{OPTIONS}{Unknown}<2 ? undef : $val' },
8249
8264
 
8265
+ 0x044e => { Name => 'ISOInfo', Condition => '$$self{Ver9401} == 178', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
8250
8266
  0x0498 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} == 148', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
8251
8267
  0x049d => { Name => 'ISOInfo', Condition => '$$self{Ver9401} == 167', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
8252
8268
  0x04a1 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} =~ /^(160|164)/', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
@@ -9517,7 +9533,7 @@ my %isoSetting2010 = (
9517
9533
  WRITE_PROC => \&WriteEnciphered,
9518
9534
  CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
9519
9535
  FORMAT => 'int8u',
9520
- NOTES => 'Valid for the ILCE-1/7M4/7SM3, ILME-FX3.',
9536
+ NOTES => 'Valid for the ILCE-1/7M4/7RM5/7SM3, ILME-FX3.',
9521
9537
  FIRST_ENTRY => 0,
9522
9538
  GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
9523
9539
  0x0000 => { Name => 'Tag9416_0000', PrintConv => 'sprintf("%3d",$val)', RawConv => '$$self{TagVersion} = $val' },
@@ -9644,7 +9660,7 @@ my %isoSetting2010 = (
9644
9660
  },
9645
9661
  0x088f => {
9646
9662
  Name => 'VignettingCorrParams',
9647
- Condition => '$$self{Model} !~ /^(ILCE-7M4)/',
9663
+ Condition => '$$self{Model} =~ /^(ILCE-(1|7SM3)|ILME-FX3)\b/',
9648
9664
  Format => 'int16s[16]',
9649
9665
  },
9650
9666
  0x0891 => {
@@ -9652,9 +9668,14 @@ my %isoSetting2010 = (
9652
9668
  Condition => '$$self{Model} =~ /^(ILCE-7M4)/',
9653
9669
  Format => 'int16s[16]',
9654
9670
  },
9671
+ 0x089b => {
9672
+ Name => 'VignettingCorrParams',
9673
+ Condition => '$$self{Model} =~ /^(ILCE-7RM5|ILME-FX30)\b/',
9674
+ Format => 'int16s[16]',
9675
+ },
9655
9676
  0x0914 => {
9656
9677
  Name => 'ChromaticAberrationCorrParams',
9657
- Condition => '$$self{Model} !~ /^(ILCE-7M4)/',
9678
+ Condition => '$$self{Model} =~ /^(ILCE-(1|7SM3)|ILME-FX3)\b/',
9658
9679
  Format => 'int16s[32]',
9659
9680
  },
9660
9681
  0x0916 => {
@@ -9662,6 +9683,11 @@ my %isoSetting2010 = (
9662
9683
  Condition => '$$self{Model} =~ /^(ILCE-7M4)/',
9663
9684
  Format => 'int16s[32]',
9664
9685
  },
9686
+ 0x0945 => {
9687
+ Name => 'ChromaticAberrationCorrParams',
9688
+ Condition => '$$self{Model} =~ /^(ILCE-7RM5|ILME-FX30)\b/',
9689
+ Format => 'int16s[32]',
9690
+ },
9665
9691
  );
9666
9692
 
9667
9693
  %Image::ExifTool::Sony::FaceInfo1 = (
@@ -9937,20 +9963,22 @@ my %isoSetting2010 = (
9937
9963
  WRITE_PROC => \&Image::ExifTool::Exif::WriteExif,
9938
9964
  CHECK_PROC => \&Image::ExifTool::Exif::CheckExif,
9939
9965
  GROUPS => { 0 => 'MakerNotes', 1 => 'SR2SubIFD', 2 => 'Camera' },
9966
+ WRITE_GROUP => 'SR2SubIFD',
9967
+ PERMANENT => 1,
9940
9968
  SET_GROUP1 => 1, # set group1 name to directory name for all tags in table
9941
9969
  NOTES => 'Tags in the encrypted SR2SubIFD',
9942
- 0x7300 => 'BlackLevel', #IB (R1)
9943
- 0x7302 => 'WB_GRBGLevelsAuto', #IB (R1)
9944
- 0x7303 => 'WB_GRBGLevels', #1 (R1 "as shot", ref IB)
9945
- 0x7310 => 'BlackLevel', #IB (divide by 4)
9946
- 0x7312 => 'WB_RGGBLevelsAuto', #IB
9947
- 0x7313 => 'WB_RGGBLevels', #6
9948
- 0x7480 => 'WB_RGBLevelsDaylight', #IB (R1)
9949
- 0x7481 => 'WB_RGBLevelsCloudy', #IB (R1)
9950
- 0x7482 => 'WB_RGBLevelsTungsten', #IB (R1)
9951
- 0x7483 => 'WB_RGBLevelsFlash', #IB (R1)
9952
- 0x7484 => 'WB_RGBLevels4500K', #IB (R1)
9953
- 0x7486 => 'WB_RGBLevelsFluorescent', #IB (R1)
9970
+ 0x7300 => { Name => 'BlackLevel', Writable => 'int16u', Count => 4, Protected => 1 },
9971
+ 0x7302 => { Name => 'WB_GRBGLevelsAuto', Writable => 'int16s', Count => 4, Protected => 1 }, #IB (R1)
9972
+ 0x7303 => { Name => 'WB_GRBGLevels', Writable => 'int16s', Count => 4, Protected => 1 }, #1 (R1 "as shot", ref IB)
9973
+ 0x7310 => { Name => 'BlackLevel', Writable => 'int16u', Count => 4, Protected => 1 }, #IB (divide by 4)
9974
+ 0x7312 => { Name => 'WB_RGGBLevelsAuto', Writable => 'int16s', Count => 4, Protected => 1 }, #IB
9975
+ 0x7313 => { Name => 'WB_RGGBLevels', Writable => 'int16s', Count => 4, Protected => 1 }, #6
9976
+ 0x7480 => { Name => 'WB_RGBLevelsDaylight', Writable => 'int16s', Count => 4, Protected => 1 }, #IB (R1)
9977
+ 0x7481 => { Name => 'WB_RGBLevelsCloudy', Writable => 'int16s', Count => 4, Protected => 1 }, #IB (R1)
9978
+ 0x7482 => { Name => 'WB_RGBLevelsTungsten', Writable => 'int16s', Count => 4, Protected => 1 }, #IB (R1)
9979
+ 0x7483 => { Name => 'WB_RGBLevelsFlash', Writable => 'int16s', Count => 4, Protected => 1 }, #IB (R1)
9980
+ 0x7484 => { Name => 'WB_RGBLevels4500K', Writable => 'int16s', Count => 4, Protected => 1 }, #IB (R1)
9981
+ 0x7486 => { Name => 'WB_RGBLevelsFluorescent', Writable => 'int16s', Count => 4, Protected => 1 }, #IB (R1)
9954
9982
  0x74a0 => 'MaxApertureAtMaxFocal', #PH
9955
9983
  0x74a1 => 'MaxApertureAtMinFocal', #PH
9956
9984
  0x74a2 => { #IB (R1)
@@ -9972,21 +10000,21 @@ my %isoSetting2010 = (
9972
10000
  },
9973
10001
  },
9974
10002
  0x7800 => 'ColorMatrix', #IB (divide by 1024)
9975
- 0x7820 => 'WB_RGBLevelsDaylight', #6 (or 5300K, ref IB)
9976
- 0x7821 => 'WB_RGBLevelsCloudy', #6 (or 6100K, ref IB)
9977
- 0x7822 => 'WB_RGBLevelsTungsten', #6
9978
- 0x7823 => 'WB_RGBLevelsFlash', #IB
9979
- 0x7824 => 'WB_RGBLevels4500K', #IB
9980
- 0x7825 => 'WB_RGBLevelsShade', #6 (or 7500K, ref IB)
9981
- 0x7826 => 'WB_RGBLevelsFluorescent', #6 (~4000K)
9982
- 0x7827 => 'WB_RGBLevelsFluorescentP1', #IB (~5000K)
9983
- 0x7828 => 'WB_RGBLevelsFluorescentP2', #IB (~6500K) (was Flash, ref 6)
9984
- 0x7829 => 'WB_RGBLevelsFluorescentM1', #IB (~3500K)
9985
- 0x782a => 'WB_RGBLevels8500K', #IB
9986
- 0x782b => 'WB_RGBLevels6000K', #IB
9987
- 0x782c => 'WB_RGBLevels3200K', #IB
9988
- 0x782d => 'WB_RGBLevels2500K', #IB
9989
- 0x787f => 'WhiteLevel', #IB (divide by 4)
10003
+ 0x7820 => { Name => 'WB_RGBLevelsDaylight', Writable => 'int16s', Count => 3, Protected => 1 }, #6 (or 5300K, ref IB)
10004
+ 0x7821 => { Name => 'WB_RGBLevelsCloudy', Writable => 'int16s', Count => 3, Protected => 1 }, #6 (or 6100K, ref IB)
10005
+ 0x7822 => { Name => 'WB_RGBLevelsTungsten', Writable => 'int16s', Count => 3, Protected => 1 }, #6
10006
+ 0x7823 => { Name => 'WB_RGBLevelsFlash', Writable => 'int16s', Count => 3, Protected => 1 }, #IB
10007
+ 0x7824 => { Name => 'WB_RGBLevels4500K', Writable => 'int16s', Count => 3, Protected => 1 }, #IB
10008
+ 0x7825 => { Name => 'WB_RGBLevelsShade', Writable => 'int16s', Count => 3, Protected => 1 }, #6 (or 7500K, ref IB)
10009
+ 0x7826 => { Name => 'WB_RGBLevelsFluorescent', Writable => 'int16s', Count => 3, Protected => 1 }, #6 (~4000K)
10010
+ 0x7827 => { Name => 'WB_RGBLevelsFluorescentP1', Writable => 'int16s', Count => 3, Protected => 1 }, #IB (~5000K)
10011
+ 0x7828 => { Name => 'WB_RGBLevelsFluorescentP2', Writable => 'int16s', Count => 3, Protected => 1 }, #IB (~6500K) (was Flash, ref 6)
10012
+ 0x7829 => { Name => 'WB_RGBLevelsFluorescentM1', Writable => 'int16s', Count => 3, Protected => 1 }, #IB (~3500K)
10013
+ 0x782a => { Name => 'WB_RGBLevels8500K', Writable => 'int16s', Count => 3, Protected => 1 }, #IB
10014
+ 0x782b => { Name => 'WB_RGBLevels6000K', Writable => 'int16s', Count => 3, Protected => 1 }, #IB
10015
+ 0x782c => { Name => 'WB_RGBLevels3200K', Writable => 'int16s', Count => 3, Protected => 1 }, #IB
10016
+ 0x782d => { Name => 'WB_RGBLevels2500K', Writable => 'int16s', Count => 3, Protected => 1 }, #IB
10017
+ 0x787f => { Name => 'WhiteLevel', Writable => 'int16u', Count => 3, Protected => 1 }, #IB (divide by 4)
9990
10018
  0x797d => 'VignettingCorrParams', #forum7640
9991
10019
  0x7980 => 'ChromaticAberrationCorrParams', #forum6509 (Sony A7 ARW)
9992
10020
  0x7982 => 'DistortionCorrParams', #forum6509 (Sony A7 ARW)
@@ -15,7 +15,7 @@ use vars qw($VERSION @ISA $makeMissing);
15
15
  use Image::ExifTool qw(:Utils :Vars);
16
16
  use Image::ExifTool::XMP;
17
17
 
18
- $VERSION = '1.32';
18
+ $VERSION = '1.33';
19
19
  @ISA = qw(Exporter);
20
20
 
21
21
  # set this to a language code to generate Lang module with 'MISSING' entries
@@ -204,6 +204,8 @@ PTILoop: for ($index=0; $index<@infoArray; ++$index) {
204
204
  push @flags, 'Permanent' if $$tagInfo{Permanent} or
205
205
  ($groups[0] eq 'MakerNotes' and not defined $$tagInfo{Permanent});
206
206
  $grp = " flags='" . join(',', sort @flags) . "'$grp" if @flags;
207
+ # add parent structure tag ID
208
+ $grp .= " struct='$$tagInfo{ParentTagInfo}{TagID}'" if $$tagInfo{ParentTagInfo};
207
209
  }
208
210
  print $fp " <tag id='${xmlID}' name='${name}'$ind type='${format}'$count writable='${writable}'$grp";
209
211
  if ($opts{NoDesc}) {