exiftool_vendored 12.33.0 → 12.37.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. checksums.yaml +4 -4
  2. data/bin/Changes +66 -0
  3. data/bin/META.json +1 -1
  4. data/bin/META.yml +1 -1
  5. data/bin/README +2 -2
  6. data/bin/exiftool +65 -37
  7. data/bin/lib/Image/ExifTool/BuildTagLookup.pm +11 -2
  8. data/bin/lib/Image/ExifTool/Canon.pm +156 -10
  9. data/bin/lib/Image/ExifTool/Charset.pm +2 -0
  10. data/bin/lib/Image/ExifTool/DarwinCore.pm +2 -2
  11. data/bin/lib/Image/ExifTool/Exif.pm +13 -1
  12. data/bin/lib/Image/ExifTool/FLIR.pm +33 -8
  13. data/bin/lib/Image/ExifTool/GIF.pm +5 -1
  14. data/bin/lib/Image/ExifTool/GPS.pm +14 -10
  15. data/bin/lib/Image/ExifTool/ICC_Profile.pm +96 -4
  16. data/bin/lib/Image/ExifTool/Jpeg2000.pm +108 -11
  17. data/bin/lib/Image/ExifTool/Nikon.pm +992 -18
  18. data/bin/lib/Image/ExifTool/NikonCustom.pm +5 -1
  19. data/bin/lib/Image/ExifTool/NikonSettings.pm +135 -71
  20. data/bin/lib/Image/ExifTool/PDF.pm +5 -3
  21. data/bin/lib/Image/ExifTool/PNG.pm +1 -0
  22. data/bin/lib/Image/ExifTool/QuickTime.pm +17 -3
  23. data/bin/lib/Image/ExifTool/QuickTimeStream.pl +26 -1
  24. data/bin/lib/Image/ExifTool/README +4 -0
  25. data/bin/lib/Image/ExifTool/Sony.pm +29 -11
  26. data/bin/lib/Image/ExifTool/TagInfoXML.pm +9 -4
  27. data/bin/lib/Image/ExifTool/TagLookup.pm +6437 -5843
  28. data/bin/lib/Image/ExifTool/TagNames.pod +1292 -46
  29. data/bin/lib/Image/ExifTool/WriteQuickTime.pl +10 -0
  30. data/bin/lib/Image/ExifTool/WriteXMP.pl +10 -11
  31. data/bin/lib/Image/ExifTool/Writer.pl +50 -5
  32. data/bin/lib/Image/ExifTool/XMP.pm +119 -30
  33. data/bin/lib/Image/ExifTool/XMP2.pl +3 -2
  34. data/bin/lib/Image/ExifTool.pm +71 -8
  35. data/bin/lib/Image/ExifTool.pod +9 -1
  36. data/bin/perl-Image-ExifTool.spec +1 -1
  37. data/lib/exiftool_vendored/version.rb +1 -1
  38. metadata +2 -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.46';
37
+ $VERSION = '3.48';
38
38
 
39
39
  sub ProcessSRF($$$);
40
40
  sub ProcessSR2($$$);
@@ -198,6 +198,8 @@ sub PrintInvLensSpec($;$$);
198
198
  49466 => 'Tamron 150-500mm F5-6.7 Di III VC VXD', #JR (Model A057)
199
199
  49467 => 'Tamron 11-20mm F2.8 Di III-A RXD', #JR (Model B060)
200
200
  49468 => 'Tamron 18-300mm F3.5-6.3 Di III-A VC VXD', #JR (Model B061)
201
+ 49469 => 'Tamron 35-150mm F2-F2.8 Di III VXD', #JR (Model A058)
202
+ 49470 => 'Tamron 28-75mm F2.8 Di III VXD G2', #JR (Model A063)
201
203
 
202
204
  49473 => 'Tokina atx-m 85mm F1.8 FE or Viltrox lens', #JR
203
205
  49473.1 => 'Viltrox 23mm F1.4 E', #JR
@@ -241,7 +243,8 @@ sub PrintInvLensSpec($;$$);
241
243
  50528 => 'Sigma 35mm F1.4 DG DN | A', #IB/JR (021)
242
244
  50529 => 'Sigma 90mm F2.8 DG DN | C', #JR (021)
243
245
  50530 => 'Sigma 24mm F2 DG DN | C', #JR (021)
244
-
246
+ 50531 => 'Sigma 18-50mm F2.8 DC DN | C', #IB/JR (021)
247
+
245
248
  50992 => 'Voigtlander SUPER WIDE-HELIAR 15mm F4.5 III', #JR
246
249
  50993 => 'Voigtlander HELIAR-HYPER WIDE 10mm F5.6', #IB
247
250
  50994 => 'Voigtlander ULTRA WIDE-HELIAR 12mm F5.6 III', #IB
@@ -1580,6 +1583,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1580
1583
  65535 => 'n/a',
1581
1584
  },
1582
1585
  },
1586
+ # 0x203a - 0x2041: first seen October 2021 for ILCE-7M4
1583
1587
  0x3000 => {
1584
1588
  Name => 'ShotInfo',
1585
1589
  SubDirectory => { TagTable => 'Image::ExifTool::Sony::ShotInfo' },
@@ -1608,7 +1612,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1608
1612
  # from mid-2015: ILCE-7RM2/7SM2/6300 and newer models use different offsets
1609
1613
  {
1610
1614
  Name => 'Tag9050a',
1611
- Condition => '$$self{Model} !~ /^(DSC-|Stellar|ILCE-(1|6100|6300|6400|6500|6600|7C|7M3|7RM2|7RM3A?|7RM4A?|7SM2|7SM3|9|9M2)|ILCA-99M2|ILME-FX3|ZV-)/',
1615
+ 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-)/',
1612
1616
  SubDirectory => {
1613
1617
  TagTable => 'Image::ExifTool::Sony::Tag9050a',
1614
1618
  ByteOrder => 'LittleEndian',
@@ -1622,7 +1626,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1622
1626
  },
1623
1627
  },{
1624
1628
  Name => 'Tag9050c',
1625
- Condition => '$$self{Model} =~ /^(ILCE-(1|7SM3)|ILME-FX3)/',
1629
+ Condition => '$$self{Model} =~ /^(ILCE-(1|7M4|7SM3)|ILME-FX3)/',
1626
1630
  SubDirectory => {
1627
1631
  TagTable => 'Image::ExifTool::Sony::Tag9050c',
1628
1632
  ByteOrder => 'LittleEndian',
@@ -2032,6 +2036,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
2032
2036
  385 => 'ILME-FX3', #JR
2033
2037
  386 => 'ILCE-7RM3A', #JR
2034
2038
  387 => 'ILCE-7RM4A', #forum12542
2039
+ 388 => 'ILCE-7M4', #IB/JR
2035
2040
  },
2036
2041
  },
2037
2042
  0xb020 => { #2
@@ -7954,7 +7959,7 @@ my %isoSetting2010 = (
7954
7959
  },
7955
7960
  0x0088 => {
7956
7961
  Name => 'InternalSerialNumber', #(NC)
7957
- Condition => '$$self{Model} =~ /^(ILCE-7SM3|ILME-FX3)/',
7962
+ Condition => '$$self{Model} =~ /^(ILCE-(7M4|7SM3)|ILME-FX3)/',
7958
7963
  Format => 'int8u[6]',
7959
7964
  PrintConv => 'unpack "H*", pack "C*", split " ", $val',
7960
7965
  },
@@ -8192,7 +8197,7 @@ my %isoSetting2010 = (
8192
8197
  },
8193
8198
  0x002a => [{
8194
8199
  Name => 'Quality2',
8195
- Condition => '$$self{Model} !~ /^(ILCE-(1|7SM3)|ILME-FX3)\b/',
8200
+ Condition => '$$self{Model} !~ /^(ILCE-(1|7M4|7SM3)|ILME-FX3)\b/',
8196
8201
  PrintConv => {
8197
8202
  0 => 'JPEG',
8198
8203
  1 => 'RAW',
@@ -8201,7 +8206,7 @@ my %isoSetting2010 = (
8201
8206
  },
8202
8207
  },{
8203
8208
  Name => 'Quality2',
8204
- Condition => '$$self{Model} =~ /^(ILCE-(1|7SM3)|ILME-FX3)\b/',
8209
+ Condition => '$$self{Model} =~ /^(ILCE-(1|7M4|7SM3)|ILME-FX3)\b/',
8205
8210
  PrintConv => {
8206
8211
  1 => 'JPEG',
8207
8212
  2 => 'RAW',
@@ -8212,13 +8217,13 @@ my %isoSetting2010 = (
8212
8217
  }],
8213
8218
  0x0047 => {
8214
8219
  Name => 'SonyImageHeight',
8215
- Condition => '$$self{Model} !~ /^(ILCE-(1|7SM3)|ILME-FX3)\b/',
8220
+ Condition => '$$self{Model} !~ /^(ILCE-(1|7M4|7SM3)|ILME-FX3)\b/',
8216
8221
  Format => 'int16u',
8217
8222
  PrintConv => '$val > 0 ? 8*$val : "n.a."',
8218
8223
  },
8219
8224
  0x0053 => {
8220
8225
  Name => 'ModelReleaseYear',
8221
- Condition => '$$self{Model} !~ /^(ILCE-(1|7SM3)|ILME-FX3)\b/',
8226
+ Condition => '$$self{Model} !~ /^(ILCE-(1|7M4|7SM3)|ILME-FX3)\b/',
8222
8227
  Format => 'int8u',
8223
8228
  PrintConv => 'sprintf("20%.2d", $val)',
8224
8229
  },
@@ -8233,10 +8238,11 @@ my %isoSetting2010 = (
8233
8238
  FIRST_ENTRY => 0,
8234
8239
  GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
8235
8240
  DATAMEMBER => [ 0 ],
8236
- IS_SUBDIR => [ 0x0498, 0x04a1, 0x04a2, 0x059d, 0x0634, 0x0636, 0x064c, 0x0653, 0x0678, 0x06b8, 0x06de, 0x06e7 ],
8241
+ IS_SUBDIR => [ 0x0498, 0x049d, 0x04a1, 0x04a2, 0x059d, 0x0634, 0x0636, 0x064c, 0x0653, 0x0678, 0x06b8, 0x06de, 0x06e7 ],
8237
8242
  0x0000 => { Name => 'Ver9401', Hidden => 1, RawConv => '$$self{Ver9401} = $val; $$self{OPTIONS}{Unknown}<2 ? undef : $val' },
8238
8243
 
8239
8244
  0x0498 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} == 148', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
8245
+ 0x049d => { Name => 'ISOInfo', Condition => '$$self{Ver9401} == 167', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
8240
8246
  0x04a1 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} =~ /^(160|164)/', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
8241
8247
  0x04a2 => { Name => 'ISOInfo', Condition => '$$self{Ver9401} =~ /^(152|154|155)/', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
8242
8248
  0x059d => { Name => 'ISOInfo', Condition => '$$self{Ver9401} =~ /^(144|146)/', Format => 'int8u[5]', SubDirectory => { TagTable => 'Image::ExifTool::Sony::ISOInfo' } },
@@ -9505,7 +9511,7 @@ my %isoSetting2010 = (
9505
9511
  WRITE_PROC => \&WriteEnciphered,
9506
9512
  CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
9507
9513
  FORMAT => 'int8u',
9508
- NOTES => 'Valid for the ILCE-1/7SM3, ILME-FX3.',
9514
+ NOTES => 'Valid for the ILCE-1/7M4/7SM3, ILME-FX3.',
9509
9515
  FIRST_ENTRY => 0,
9510
9516
  GROUPS => { 0 => 'MakerNotes', 2 => 'Image' },
9511
9517
  0x0000 => { Name => 'Tag9416_0000', PrintConv => 'sprintf("%3d",$val)', RawConv => '$$self{TagVersion} = $val' },
@@ -9632,10 +9638,22 @@ my %isoSetting2010 = (
9632
9638
  },
9633
9639
  0x088f => {
9634
9640
  Name => 'VignettingCorrParams',
9641
+ Condition => '$$self{Model} !~ /^(ILCE-7M4)/',
9642
+ Format => 'int16s[16]',
9643
+ },
9644
+ 0x0891 => {
9645
+ Name => 'VignettingCorrParams',
9646
+ Condition => '$$self{Model} =~ /^(ILCE-7M4)/',
9635
9647
  Format => 'int16s[16]',
9636
9648
  },
9637
9649
  0x0914 => {
9638
9650
  Name => 'ChromaticAberrationCorrParams',
9651
+ Condition => '$$self{Model} !~ /^(ILCE-7M4)/',
9652
+ Format => 'int16s[32]',
9653
+ },
9654
+ 0x0916 => {
9655
+ Name => 'ChromaticAberrationCorrParams',
9656
+ Condition => '$$self{Model} =~ /^(ILCE-7M4)/',
9639
9657
  Format => 'int16s[32]',
9640
9658
  },
9641
9659
  );
@@ -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.31';
18
+ $VERSION = '1.32';
19
19
  @ISA = qw(Exporter);
20
20
 
21
21
  # set this to a language code to generate Lang module with 'MISSING' entries
@@ -58,6 +58,12 @@ my %translateLang = (
58
58
  my $numbersFirst = 1; # set to -1 to sort numbers last, or 2 to put negative numbers last
59
59
  my $caseInsensitive; # used internally by sort routine
60
60
 
61
+ # write groups that don't represent real family 1 group names
62
+ my %fakeWriteGroup = (
63
+ Comment => 1, # (JPEG Comment)
64
+ colr => 1, # (Jpeg2000 'colr' box)
65
+ );
66
+
61
67
  #------------------------------------------------------------------------------
62
68
  # Utility to print tag information database as an XML list
63
69
  # Inputs: 0) output file name (undef to send to console),
@@ -178,9 +184,8 @@ PTILoop: for ($index=0; $index<@infoArray; ++$index) {
178
184
  }
179
185
  my @groups = $et->GetGroup($tagInfo);
180
186
  my $writeGroup = $$tagInfo{WriteGroup} || $$table{WRITE_GROUP};
181
- if ($writeGroup and $writeGroup ne 'Comment') {
182
- $groups[1] = $writeGroup; # use common write group for group 1
183
- }
187
+ # use common write group for group 1 (unless fake)
188
+ $groups[1] = $writeGroup if $writeGroup and not $fakeWriteGroup{$writeGroup};
184
189
  # add group names if different from table defaults
185
190
  my $grp = '';
186
191
  for ($fam=0; $fam<3; ++$fam) {