exiftool_vendored 10.58.0 → 10.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.

Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/bin/Changes +100 -1
  3. data/bin/MANIFEST +2 -0
  4. data/bin/META.json +1 -1
  5. data/bin/META.yml +1 -1
  6. data/bin/README +39 -38
  7. data/bin/arg_files/exif2iptc.args +3 -0
  8. data/bin/arg_files/iptc2exif.args +3 -0
  9. data/bin/config_files/example.config +16 -14
  10. data/bin/config_files/photoshop_paths.config +10 -0
  11. data/bin/exiftool +71 -65
  12. data/bin/lib/Image/ExifTool/APE.pm +5 -0
  13. data/bin/lib/Image/ExifTool/BuildTagLookup.pm +31 -15
  14. data/bin/lib/Image/ExifTool/Canon.pm +18 -4
  15. data/bin/lib/Image/ExifTool/CanonCustom.pm +3 -0
  16. data/bin/lib/Image/ExifTool/Charset/DOSLatin1.pm +49 -0
  17. data/bin/lib/Image/ExifTool/Charset/DOSLatinUS.pm +49 -0
  18. data/bin/lib/Image/ExifTool/Charset.pm +8 -5
  19. data/bin/lib/Image/ExifTool/Exif.pm +37 -18
  20. data/bin/lib/Image/ExifTool/FLAC.pm +47 -37
  21. data/bin/lib/Image/ExifTool/FLIR.pm +3 -3
  22. data/bin/lib/Image/ExifTool/FujiFilm.pm +5 -2
  23. data/bin/lib/Image/ExifTool/GPS.pm +6 -6
  24. data/bin/lib/Image/ExifTool/Geotag.pm +1 -1
  25. data/bin/lib/Image/ExifTool/H264.pm +2 -0
  26. data/bin/lib/Image/ExifTool/ID3.pm +8 -3
  27. data/bin/lib/Image/ExifTool/IPTC.pm +1 -1
  28. data/bin/lib/Image/ExifTool/Import.pm +4 -1
  29. data/bin/lib/Image/ExifTool/InDesign.pm +11 -7
  30. data/bin/lib/Image/ExifTool/Kodak.pm +4 -1
  31. data/bin/lib/Image/ExifTool/Lang/de.pm +31 -31
  32. data/bin/lib/Image/ExifTool/MWG.pm +12 -4
  33. data/bin/lib/Image/ExifTool/MakerNotes.pm +3 -3
  34. data/bin/lib/Image/ExifTool/Matroska.pm +2 -1
  35. data/bin/lib/Image/ExifTool/Microsoft.pm +3 -3
  36. data/bin/lib/Image/ExifTool/Minolta.pm +71 -61
  37. data/bin/lib/Image/ExifTool/Nikon.pm +286 -43
  38. data/bin/lib/Image/ExifTool/NikonCustom.pm +1049 -0
  39. data/bin/lib/Image/ExifTool/Olympus.pm +4 -1
  40. data/bin/lib/Image/ExifTool/PNG.pm +4 -7
  41. data/bin/lib/Image/ExifTool/PanasonicRaw.pm +24 -1
  42. data/bin/lib/Image/ExifTool/Pentax.pm +20 -6
  43. data/bin/lib/Image/ExifTool/Photoshop.pm +24 -3
  44. data/bin/lib/Image/ExifTool/QuickTime.pm +545 -14
  45. data/bin/lib/Image/ExifTool/README +16 -9
  46. data/bin/lib/Image/ExifTool/RIFF.pm +8 -1
  47. data/bin/lib/Image/ExifTool/Samsung.pm +5 -4
  48. data/bin/lib/Image/ExifTool/Sigma.pm +9 -1
  49. data/bin/lib/Image/ExifTool/Sony.pm +327 -153
  50. data/bin/lib/Image/ExifTool/TagLookup.pm +3273 -3220
  51. data/bin/lib/Image/ExifTool/TagNames.pod +317 -38
  52. data/bin/lib/Image/ExifTool/Validate.pm +15 -1
  53. data/bin/lib/Image/ExifTool/WriteExif.pl +5 -0
  54. data/bin/lib/Image/ExifTool/WriteIPTC.pl +23 -1
  55. data/bin/lib/Image/ExifTool/WriteQuickTime.pl +8 -2
  56. data/bin/lib/Image/ExifTool/WriteXMP.pl +7 -0
  57. data/bin/lib/Image/ExifTool/Writer.pl +96 -18
  58. data/bin/lib/Image/ExifTool/XMP.pm +20 -11
  59. data/bin/lib/Image/ExifTool/XMP2.pl +634 -583
  60. data/bin/lib/Image/ExifTool.pm +124 -17
  61. data/bin/lib/Image/ExifTool.pod +86 -82
  62. data/bin/perl-Image-ExifTool.spec +38 -37
  63. data/lib/exiftool_vendored/version.rb +1 -1
  64. metadata +4 -2
@@ -39,7 +39,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
39
39
  use Image::ExifTool::Exif;
40
40
  use Image::ExifTool::APP12;
41
41
 
42
- $VERSION = '2.49';
42
+ $VERSION = '2.51';
43
43
 
44
44
  sub PrintLensInfo($$$);
45
45
 
@@ -101,7 +101,9 @@ my %olympusLensTypes = (
101
101
  '0 26 10' => 'Olympus M.Zuiko Digital ED 12-100mm F4.0 IS Pro', #IB/NJ
102
102
  '0 27 10' => 'Olympus M.Zuiko Digital ED 30mm F3.5 Macro', #IB/NJ
103
103
  '0 28 10' => 'Olympus M.Zuiko Digital ED 25mm F1.2 Pro', #IB/NJ
104
+ '0 29 10' => 'Olympus M.Zuiko Digital ED 17mm F1.2 Pro', #IB
104
105
  '0 30 00' => 'Olympus Zuiko Digital ED 50-200mm F2.8-3.5 SWD', #7
106
+ '0 30 10' => 'Olympus M.Zuiko Digital ED 45mm F1.2 Pro', #IB
105
107
  '0 31 00' => 'Olympus Zuiko Digital ED 12-60mm F2.8-4.0 SWD', #7
106
108
  '0 32 00' => 'Olympus Zuiko Digital ED 14-35mm F2.0 SWD', #PH
107
109
  '0 33 00' => 'Olympus Zuiko Digital 25mm F2.8', #PH
@@ -401,6 +403,7 @@ my %olympusCameraTypes = (
401
403
  S0061 => 'PEN-F', #forum7005
402
404
  S0065 => 'E-PL8',
403
405
  S0067 => 'E-M1MarkII',
406
+ S0068 => 'E-M10MarkIII',
404
407
  SR45 => 'D220',
405
408
  SR55 => 'D320L',
406
409
  SR83 => 'D340L',
@@ -26,7 +26,7 @@ use strict;
26
26
  use vars qw($VERSION $AUTOLOAD %stdCase);
27
27
  use Image::ExifTool qw(:DataAccess :Utils);
28
28
 
29
- $VERSION = '1.42';
29
+ $VERSION = '1.44';
30
30
 
31
31
  sub ProcessPNG_tEXt($$$);
32
32
  sub ProcessPNG_iTXt($$$);
@@ -41,7 +41,7 @@ sub GetLangInfo($$);
41
41
  sub BuildTextChunk($$$$$);
42
42
 
43
43
  # translate lower-case to actual case used for eXIf/zXIf chunks
44
- %stdCase = ( 'zxif' => 'zxIf', exif => 'exIf' );
44
+ %stdCase = ( 'zxif' => 'zxIf', exif => 'eXIf' );
45
45
 
46
46
  my $noCompressLib;
47
47
 
@@ -258,10 +258,7 @@ $Image::ExifTool::PNG::colorType = -1;
258
258
  # eXIf
259
259
  $stdCase{exif} => {
260
260
  Name => $stdCase{exif},
261
- Notes => q{
262
- proposed but not yet registered. This is where ExifTool will create new
263
- EXIF
264
- },
261
+ Notes => 'this is where ExifTool will create new EXIF',
265
262
  SubDirectory => {
266
263
  TagTable => 'Image::ExifTool::Exif::Main',
267
264
  DirName => 'EXIF', # (to write as a block)
@@ -984,7 +981,7 @@ sub ProcessProfile($$$)
984
981
  }
985
982
  } elsif ($buff =~ /^(MM\0\x2a|II\x2a\0)/) {
986
983
  # TIFF information
987
- return 1 if $outBuff and not $$editDirs{IFD0};
984
+ return 1 if $outBuff and not $$editDirs{IFD0};
988
985
  if ($outBuff) {
989
986
  # delete non-standard EXIF if recreating from scratch
990
987
  if ($$et{DEL_GROUP}{EXIF} or $$et{DEL_GROUP}{IFD0}) {
@@ -20,7 +20,7 @@ use vars qw($VERSION);
20
20
  use Image::ExifTool qw(:DataAccess :Utils);
21
21
  use Image::ExifTool::Exif;
22
22
 
23
- $VERSION = '1.10';
23
+ $VERSION = '1.11';
24
24
 
25
25
  sub ProcessJpgFromRaw($$$);
26
26
  sub WriteJpgFromRaw($$$);
@@ -223,6 +223,14 @@ my %wbTypeInfo = (
223
223
  SubDirectory => { TagTable => 'Image::ExifTool::PanasonicRaw::DistortionInfo' },
224
224
  },
225
225
  # 0x11b - chromatic aberration correction (ref 3)
226
+ 0x120 => {
227
+ Name => 'CameraIFD',
228
+ SubDirectory => {
229
+ TagTable => 'Image::ExifTool::PanasonicRaw::CameraIFD',
230
+ Base => '$start',
231
+ ProcessProc => \&Image::ExifTool::ProcessTIFF,
232
+ },
233
+ },
226
234
  0x2bc => { # PH Extension!!
227
235
  Name => 'ApplicationNotes', # (writable directory!)
228
236
  Writable => 'int8u',
@@ -379,6 +387,21 @@ my %wbTypeInfo = (
379
387
  # 14,15 - checksums
380
388
  );
381
389
 
390
+ # Panasonic RW2 camera IFD written by GH5 (ref PH)
391
+ # (doesn't seem to be valid for the GF7 or GM5 -- encrypted?)
392
+ %Image::ExifTool::PanasonicRaw::CameraIFD = (
393
+ GROUPS => { 0 => 'PanasonicRaw', 1 => 'CameraIFD', 2 => 'Camera'},
394
+ # (don't know what format codes 0x101 and 0x102 are for, so just
395
+ # map them into 4 = int32u for now)
396
+ VARS => { MAP_FORMAT => { 0x101 => 4, 0x102 => 4 } },
397
+ 0x1101 => { #forum8484 (Metabones EF-M43-BT2 adapter with Canon lenses)
398
+ Name => 'FocusDistance',
399
+ Writable => 'int16u',
400
+ ValueConv => '$val / 200',
401
+ PrintConv => '$val > 65534.5/200 ? "inf" : "$val m"',
402
+ },
403
+ );
404
+
382
405
  # PanasonicRaw composite tags
383
406
  %Image::ExifTool::PanasonicRaw::Composite = (
384
407
  ImageWidth => {
@@ -58,7 +58,7 @@ use Image::ExifTool::Exif;
58
58
  use Image::ExifTool::GPS;
59
59
  use Image::ExifTool::HP;
60
60
 
61
- $VERSION = '3.17';
61
+ $VERSION = '3.20';
62
62
 
63
63
  sub CryptShutterCount($$);
64
64
  sub PrintFilter($$$);
@@ -178,7 +178,8 @@ sub DecodeAFPoints($$$$;$);
178
178
  '4 2' => 'smc PENTAX-FA 80-320mm F4.5-5.6',
179
179
  '4 3' => 'smc PENTAX-FA 43mm F1.9 Limited',
180
180
  '4 6' => 'smc PENTAX-FA 35-80mm F4-5.6',
181
- '4 10' => 'Irix 15mm F2.4', #forum3833
181
+ '4 9' => 'Irix 11mm F4 Firefly', #27
182
+ '4 10' => 'Irix 15mm F2.4', #27
182
183
  '4 12' => 'smc PENTAX-FA 50mm F1.4', #17
183
184
  '4 15' => 'smc PENTAX-FA 28-105mm F4-5.6 [IF]',
184
185
  '4 16' => 'Tamron AF 80-210mm F4-5.6 (178D)', #13
@@ -325,6 +326,7 @@ sub DecodeAFPoints($$$$;$);
325
326
  '8 30' => 'Sigma 17-70mm F2.8-4 DC Macro HSM | C', #27
326
327
  '8 31' => 'Sigma 18-35mm F1.8 DC HSM', #27
327
328
  '8 32' => 'Sigma 30mm F1.4 DC HSM | A', #27
329
+ '8 33' => 'Sigma 18-200mm F3.5-6.3 DC MACRO HSM', #DieterPearcey (C014)
328
330
  '8 34' => 'Sigma 18-300mm F3.5-6.3 DC Macro HSM', #NJ
329
331
  '8 59' => 'HD PENTAX-D FA 150-450mm F4.5-5.6 ED DC AW', #29
330
332
  '8 60' => 'HD PENTAX-D FA* 70-200mm F2.8 ED DC AW', #29
@@ -1924,13 +1926,16 @@ my %binaryDataAttrs = (
1924
1926
  1 => 'Remote Control (3 s delay)', #19
1925
1927
  2 => 'Remote Control', #19
1926
1928
  4 => 'Remote Continuous Shooting', # (K-5)
1927
- 10 => 'Composite Average', #31
1928
- 11 => 'Composite Additive', #31
1929
- 12 => 'Composite Bright', #31
1930
1929
  },{
1931
1930
  0x00 => 'Single Exposure',
1932
1931
  0x01 => 'Multiple Exposure',
1932
+ 0x02 => 'Composite Average', #31
1933
+ 0x03 => 'Composite Additive', #31
1934
+ 0x04 => 'Composite Bright', #31
1933
1935
  0x08 => 'Interval Shooting', #31
1936
+ 0x0a => 'Interval Composite Average', #31
1937
+ 0x0b => 'Interval Composite Additive', #31
1938
+ 0x0c => 'Interval Composite Bright', #31
1934
1939
  0x0f => 'Interval Movie', #PH (K-01)
1935
1940
  0x10 => 'HDR', #PH (645D)
1936
1941
  0x20 => 'HDR Strong 1', #PH (NC) (K-5)
@@ -5750,7 +5755,16 @@ my %binaryDataAttrs = (
5750
5755
  TagTable => 'Image::ExifTool::Pentax::Main',
5751
5756
  Start => 10,
5752
5757
  Base => '$start',
5753
- ByteOrder => 'BigEndian',
5758
+ ByteOrder => 'Unknown', # K-70 is little-endian, K-x is big-endian
5759
+ },
5760
+ },
5761
+ mknt => { # (Q-S1)
5762
+ Name => 'MakerNotes',
5763
+ SubDirectory => {
5764
+ TagTable => 'Image::ExifTool::Pentax::Main',
5765
+ Start => 10,
5766
+ Base => '$start',
5767
+ ByteOrder => 'Unknown',
5754
5768
  },
5755
5769
  },
5756
5770
  );
@@ -28,7 +28,7 @@ use strict;
28
28
  use vars qw($VERSION $AUTOLOAD $iptcDigestInfo);
29
29
  use Image::ExifTool qw(:DataAccess :Utils);
30
30
 
31
- $VERSION = '1.55';
31
+ $VERSION = '1.56';
32
32
 
33
33
  sub ProcessPhotoshop($$$);
34
34
  sub WritePhotoshop($$$);
@@ -543,11 +543,32 @@ my %unicodeString = (
543
543
  Name => 'LayerUnicodeNames',
544
544
  List => 1,
545
545
  RawConv => q{
546
- return "" if length($val) < 4;
546
+ return '' if length($val) < 4;
547
547
  my $len = Get32u(\$val, 0);
548
548
  return $self->Decode(substr($val, 4, $len * 2), 'UCS2');
549
549
  },
550
550
  },
551
+ lyid => {
552
+ Name => 'LayerIDs',
553
+ Description => 'Layer IDs',
554
+ Format => 'int32u',
555
+ List => 1,
556
+ Unknown => 1,
557
+ },
558
+ shmd => { # layer metadata (undocumented structure)
559
+ # (for now, only extract layerTime. May also contain "layerXMP" --
560
+ # it would be nice to decode this but I need a sample)
561
+ Name => 'LayerModifyDates',
562
+ Groups => { 2 => 'Time' },
563
+ List => 1,
564
+ RawConv => q{
565
+ return '' unless $val =~ /layerTimedoub(.{8})/s;
566
+ my $tmp = $1;
567
+ return GetDouble(\$tmp, 0);
568
+ },
569
+ ValueConv => 'length $val ? ConvertUnixTime($val,1) : ""',
570
+ PrintConv => 'length $val ? $self->ConvertDateTime($val) : ""',
571
+ }
551
572
  );
552
573
 
553
574
  # image data
@@ -698,7 +719,7 @@ sub ProcessLayers($$$)
698
719
  $et->HandleTag($tagTablePtr, $tag, '');
699
720
  ++$count{$tag};
700
721
  }
701
- $et->HandleTag($tagTablePtr, $tag, $data, %dinfo);
722
+ $et->HandleTag($tagTablePtr, $tag, undef, %dinfo);
702
723
  ++$count{$tag};
703
724
  $pos += $n; # step to start of next structure
704
725
  }