exiftool_vendored 13.42.0 → 13.44.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 (60) hide show
  1. checksums.yaml +4 -4
  2. data/bin/Changes +30 -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 +48 -48
  7. data/bin/exiftool +85 -80
  8. data/bin/lib/Image/ExifTool/Apple.pm +0 -1
  9. data/bin/lib/Image/ExifTool/BuildTagLookup.pm +2 -2
  10. data/bin/lib/Image/ExifTool/Canon.pm +23 -1
  11. data/bin/lib/Image/ExifTool/CanonCustom.pm +1 -1
  12. data/bin/lib/Image/ExifTool/DarwinCore.pm +2 -2
  13. data/bin/lib/Image/ExifTool/EXE.pm +1 -1
  14. data/bin/lib/Image/ExifTool/Exif.pm +1 -0
  15. data/bin/lib/Image/ExifTool/FLIR.pm +1 -1
  16. data/bin/lib/Image/ExifTool/FlashPix.pm +1 -1
  17. data/bin/lib/Image/ExifTool/FujiFilm.pm +2 -2
  18. data/bin/lib/Image/ExifTool/Geolocation.dat +0 -0
  19. data/bin/lib/Image/ExifTool/Geolocation.pm +1 -1
  20. data/bin/lib/Image/ExifTool/Geotag.pm +1 -1
  21. data/bin/lib/Image/ExifTool/Google.pm +2 -2
  22. data/bin/lib/Image/ExifTool/ICC_Profile.pm +0 -1
  23. data/bin/lib/Image/ExifTool/Import.pm +1 -1
  24. data/bin/lib/Image/ExifTool/Jpeg2000.pm +1 -1
  25. data/bin/lib/Image/ExifTool/Kandao.pm +399 -0
  26. data/bin/lib/Image/ExifTool/LNK.pm +1 -1
  27. data/bin/lib/Image/ExifTool/MRC.pm +4 -4
  28. data/bin/lib/Image/ExifTool/MWG.pm +1 -1
  29. data/bin/lib/Image/ExifTool/MacOS.pm +1 -2
  30. data/bin/lib/Image/ExifTool/Matroska.pm +56 -15
  31. data/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
  32. data/bin/lib/Image/ExifTool/Nikon.pm +5 -5
  33. data/bin/lib/Image/ExifTool/NikonCustom.pm +5 -6
  34. data/bin/lib/Image/ExifTool/OpenEXR.pm +1 -1
  35. data/bin/lib/Image/ExifTool/PPM.pm +1 -1
  36. data/bin/lib/Image/ExifTool/Panasonic.pm +30 -6
  37. data/bin/lib/Image/ExifTool/PhaseOne.pm +17 -1
  38. data/bin/lib/Image/ExifTool/Plot.pm +2 -2
  39. data/bin/lib/Image/ExifTool/Protobuf.pm +2 -2
  40. data/bin/lib/Image/ExifTool/QuickTime.pm +48 -8
  41. data/bin/lib/Image/ExifTool/QuickTimeStream.pl +2 -2
  42. data/bin/lib/Image/ExifTool/README +5 -5
  43. data/bin/lib/Image/ExifTool/RIFF.pm +5 -4
  44. data/bin/lib/Image/ExifTool/Reconyx.pm +2 -2
  45. data/bin/lib/Image/ExifTool/Samsung.pm +11 -1
  46. data/bin/lib/Image/ExifTool/Sony.pm +13 -3
  47. data/bin/lib/Image/ExifTool/TNEF.pm +2 -2
  48. data/bin/lib/Image/ExifTool/TagLookup.pm +7129 -7108
  49. data/bin/lib/Image/ExifTool/TagNames.pod +257 -110
  50. data/bin/lib/Image/ExifTool/Text.pm +1 -1
  51. data/bin/lib/Image/ExifTool/Trailer.pm +1 -1
  52. data/bin/lib/Image/ExifTool/WriteQuickTime.pl +10 -2
  53. data/bin/lib/Image/ExifTool/Writer.pl +3 -2
  54. data/bin/lib/Image/ExifTool/XMP.pm +4 -2
  55. data/bin/lib/Image/ExifTool/ZIP.pm +1 -1
  56. data/bin/lib/Image/ExifTool.pm +5 -2
  57. data/bin/lib/Image/ExifTool.pod +79 -79
  58. data/bin/perl-Image-ExifTool.spec +47 -47
  59. data/lib/exiftool_vendored/version.rb +1 -1
  60. metadata +2 -1
@@ -111,7 +111,7 @@ my %insvLimit = (
111
111
  The tags below are extracted from timed metadata in QuickTime and other
112
112
  formats of video files when the ExtractEmbedded option is used. Although
113
113
  most of these tags are combined into the single table below, ExifTool
114
- currently reads 116 different types of timed GPS metadata from video files.
114
+ currently reads 117 different types of timed GPS metadata from video files.
115
115
  },
116
116
  GPSLatitude => { PrintConv => 'Image::ExifTool::GPS::ToDMS($self, $val, 1, "N")', RawConv => '$$self{FoundGPSLatitude} = 1; $val' },
117
117
  GPSLongitude => { PrintConv => 'Image::ExifTool::GPS::ToDMS($self, $val, 1, "E")' },
@@ -211,7 +211,7 @@ my %insvLimit = (
211
211
  },
212
212
  },{
213
213
  Name => 'gpmd_Wolfbox', # Wolfbox G900 Dashcam and Redtiger F9 4K
214
- Condition => '$$valPt =~ /^.{136}0{16}(HYTH|XXXX)/s',
214
+ Condition => '$$valPt =~ /^.{136}(0{16}[A-Z]{4}|https:\/\/www.redtiger\0)/s',
215
215
  SubDirectory => {
216
216
  TagTable => 'Image::ExifTool::QuickTime::Stream',
217
217
  ProcessProc => \&ProcessWolfbox,
@@ -348,7 +348,7 @@ numerical, and generated automatically otherwise.
348
348
  but applied automatically to individual tags. Value specifies
349
349
  pattern for split, or 1 for default pattern ',?\\s+'.
350
350
 
351
- 'Avoid' - avoid creating this tag when writing if possible.
351
+ 'Avoid' - avoid creating this tag when writing if possible.
352
352
  This is only effective if another tag exists with the same
353
353
  name. Setting this flag also sets the default Priority to 0
354
354
  for this tag.
@@ -632,7 +632,7 @@ numerical, and generated automatically otherwise.
632
632
  value, and $tag is the tag key. The subroutine takes 2
633
633
  arguments: the Raw value and a reference to the current
634
634
  ExifTool object. The advanced formatting expression (if any)
635
- may be accessed via the ExifTool "FMT_EXPR" member variable.
635
+ may be accessed via the ExifTool "FMT_EXPR" member variable.
636
636
  The expression or subroutine is evaluated if and when the tag
637
637
  value is requested (ie. only after all extraction is
638
638
  complete), so if necessary at this time the values of all
@@ -650,7 +650,7 @@ numerical, and generated automatically otherwise.
650
650
  enabled. If this isn't possible (as with Composite tags where
651
651
  the converted values of the source tags are needed), set the
652
652
  Priority to 0 to avoid taking priority over a valid tag. If
653
- ValueConv is not specified, the Raw value is not converted.
653
+ ValueConv is not specified, the Raw value is not converted.
654
654
  Composite tags which Require or Desire other tags may access
655
655
  the ValueConv, PrintConv and Raw values of these tags through
656
656
  the elements of the @val, @prt and @raw lists respectively
@@ -822,7 +822,7 @@ numerical, and generated automatically otherwise.
822
822
  SubDirectory is writable as a block, or if the SubDirectory
823
823
  can not be edited (in which case Writable is set to 0). If
824
824
  non-zero, the SubDirectory is also extracted as a block, so
825
- the Binary and Protected flags should usually set as well.
825
+ the Binary and Protected flags should usually set as well.
826
826
  There is currently no way to specify a write format for a
827
827
  SubDirectory that is not writable as a block (the default is
828
828
  'int32u' for IFD-type SubDirectories, and 'undef' for all
@@ -970,7 +970,7 @@ numerical, and generated automatically otherwise.
970
970
  data record), $dataPt (reference to the data block), and $pos
971
971
  (position of this tag in the data block), and assign a new
972
972
  value to $format to dynamically set the tag format, and/or
973
- increment $varSize to add a byte offset to subsequent tags.
973
+ increment $varSize to add a byte offset to subsequent tags.
974
974
  $varSize may be set to a large number to effectively abort
975
975
  processing of the directory after this tag. Must have
976
976
  corresponding DATAMEMBER entry in writable tables. Must not
@@ -30,7 +30,7 @@ use strict;
30
30
  use vars qw($VERSION $AUTOLOAD);
31
31
  use Image::ExifTool qw(:DataAccess :Utils);
32
32
 
33
- $VERSION = '1.72';
33
+ $VERSION = '1.73';
34
34
 
35
35
  sub ConvertTimecode($);
36
36
  sub ProcessSGLT($$$);
@@ -391,7 +391,7 @@ my %code2charset = (
391
391
  smpl => { #16
392
392
  Name => 'Sampler',
393
393
  SubDirectory => { TagTable => 'Image::ExifTool::RIFF::Sampler' },
394
- },
394
+ },
395
395
  inst => { #16
396
396
  Name => 'Instrument',
397
397
  SubDirectory => { TagTable => 'Image::ExifTool::RIFF::Instrument' },
@@ -546,11 +546,11 @@ my %code2charset = (
546
546
  'id3 ' => {
547
547
  Name => 'ID3',
548
548
  SubDirectory => { TagTable => 'Image::ExifTool::ID3::Main' },
549
- },
549
+ },
550
550
  'ID3 ' => { # (NC)
551
551
  Name => 'ID3-2',
552
552
  SubDirectory => { TagTable => 'Image::ExifTool::ID3::Main' },
553
- },
553
+ },
554
554
  #
555
555
  # WebP-specific tags
556
556
  #
@@ -851,6 +851,7 @@ my %code2charset = (
851
851
  Name => 'DateCreated',
852
852
  Groups => { 2 => 'Time' },
853
853
  ValueConv => '$_=$val; s/-/:/g; $_',
854
+ PrintConv => '$self->ConvertDateTime($val)',
854
855
  },
855
856
  ICRP => 'Cropped',
856
857
  IDIM => 'Dimensions',
@@ -420,7 +420,7 @@ my %convUnicode = (
420
420
  WRITABLE => 1,
421
421
  FIRST_ENTRY => 0,
422
422
  NOTES => 'Maker notes tags for Reconyx MicroFire cameras.',
423
- 0x10 => { Name => 'FileNumber', Format => 'int16u' },
423
+ 0x10 => { Name => 'FileNumber', Format => 'int16u' },
424
424
  0x12 => { Name => 'DirectoryNumber', Format => 'int16u' },
425
425
  0x14 => {
426
426
  Name => 'DirectoryCreateDate',
@@ -695,7 +695,7 @@ my %convUnicode = (
695
695
  0x51 => { Name => 'UserLabel', Format => 'string[51]' },
696
696
  0x84 => { Name => 'SerialNumber', Format => 'string[15]' },
697
697
  0x93 => { Name => 'DirectoryNumber', Format => 'int16u' },
698
- 0x95 => { Name => 'FileNumber', Format => 'int16u' },
698
+ 0x95 => { Name => 'FileNumber', Format => 'int16u' },
699
699
  );
700
700
 
701
701
  __END__
@@ -23,7 +23,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
23
23
  use Image::ExifTool::Exif;
24
24
  use Image::ExifTool::JSON;
25
25
 
26
- $VERSION = '1.59';
26
+ $VERSION = '1.60';
27
27
 
28
28
  sub WriteSTMN($$$);
29
29
  sub ProcessINFO($$$);
@@ -1314,7 +1314,17 @@ my %formatMinMax = (
1314
1314
  # 0x0da1-name - seen 'Captured_App_Info' #forum16086
1315
1315
  # 0xa050-name - seen 'Jpeg360_2D_Info' (Samsung Gear 360)
1316
1316
  # 0xa050 - seen 'Jpeg3602D' (Samsung Gear 360)
1317
+ # 0x0c61-name - seen 'Camera_Capture_Mode_Info'
1318
+ # 0x0c61 - seen '1'
1317
1319
  # 0x0c81-name - seen 'Watermark_Info'
1320
+ # 0x0ce1-name - seen 'Gallery_DC_Data'
1321
+ # 0x0ce1 - seen '0,109,2,19010102,4000,3000,0,0,0,0;116.284004;1.0'
1322
+ # 0x0e41-name - seen 'Video_Edited_UTC_Offset'
1323
+ # 0x0e41 - seen '+0800'
1324
+ '0x0e41' => {
1325
+ Name => 'VideoEditedTimeZone',
1326
+ Groups => { 2 => 'Time' },
1327
+ },
1318
1328
  );
1319
1329
 
1320
1330
  # DualShot Extra Info (ref PH)
@@ -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.80';
37
+ $VERSION = '3.82';
38
38
 
39
39
  sub ProcessSRF($$$);
40
40
  sub ProcessSR2($$$);
@@ -261,7 +261,7 @@ sub PrintInvLensSpec($;$$);
261
261
  49475 => 'Tamron 50-300mm F4.5-6.3 Di III VC VXD', #JR (Model A069)
262
262
  49476 => 'Tamron 28-300mm F4-7.1 Di III VC VXD', #JR (Model A074)
263
263
  49477 => 'Tamron 90mm F2.8 Di III Macro VXD', #JR (Model F072)
264
- 49478 => 'Tamron 16-30mm F2.8 Di III VXD G2', #JR (Model A064)
264
+ 49478 => 'Tamron 16-30mm F2.8 Di III VXD G2', #JR (Model A064)
265
265
 
266
266
  49712 => 'Tokina FiRIN 20mm F2 FE AF', # (firmware Ver.01)
267
267
  49713 => 'Tokina FiRIN 100mm F2.8 FE MACRO', # (firmware Ver.01)
@@ -1534,6 +1534,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
1534
1534
  0 => 'Compressed RAW',
1535
1535
  1 => 'Uncompressed RAW',
1536
1536
  2 => 'Lossless Compressed RAW', #JR (NC) seen for ILCE-1
1537
+ 3 => 'Compressed RAW (HQ)', # ILCE-7M5
1537
1538
  65535 => 'n/a', # seen for ILCE-7SM3 JPEG-only
1538
1539
  },
1539
1540
  },
@@ -2095,6 +2096,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
2095
2096
  '4 0 1 0' => 'ARW 4.0.1', #github195 (ZV-E1)
2096
2097
  '5 0 0 0' => 'ARW 5.0', # (ILCE-9M3)
2097
2098
  '5 0 1 0' => 'ARW 5.0.1', # (ILCE-1 with FirmWare 2.0)
2099
+ '6 0 0 0' => 'ARW 6.0.0', # (ILCE-7M5)
2098
2100
  # what about cRAW images?
2099
2101
  },
2100
2102
  },
@@ -2215,6 +2217,7 @@ my %hidUnk = ( Hidden => 1, Unknown => 1 );
2215
2217
  403 => 'ILCE-6100A', #JR
2216
2218
  404 => 'DSC-RX100M7A', #github347
2217
2219
  406 => 'ILME-FX2', #JR
2220
+ 407 => 'ILCE-7M5', #PH
2218
2221
  408 => 'ZV-1A', #JR
2219
2222
  },
2220
2223
  },
@@ -7563,6 +7566,12 @@ my %isoSetting2010 = (
7563
7566
  # appears to be difference between used FNumber and MaxAperture, 256 being +1 APEX or stop
7564
7567
  # however, not always valid e.g. bracketing, Shutter-prio e.a.
7565
7568
  # difference between 0x0002 and 0x0004 mostly 0.0, 0.1 or 0.2 stops.
7569
+ 0x000a => { #github369
7570
+ Name => 'ShutterCount',
7571
+ Format => 'int32u',
7572
+ Condition => '$$self{Model} =~ /^ILCE-7M5$/',
7573
+ Notes => 'ILCE-7M5',
7574
+ },
7566
7575
  0x0020 => {
7567
7576
  Name => 'Shutter',
7568
7577
  Format => 'int16u[3]',
@@ -7593,6 +7602,7 @@ my %isoSetting2010 = (
7593
7602
  # NEX-5N/7. For the A99V it is definitely more than 16 bits, but it wraps at
7594
7603
  # 65536 for the A7R.
7595
7604
  Format => 'int32u',
7605
+ Condition => '$$self{Model} !~ /^ILCE-7M5$/',
7596
7606
  Notes => q{
7597
7607
  total number of image exposures made by the camera, modulo 65536 for some
7598
7608
  models
@@ -9987,7 +9997,7 @@ my %isoSetting2010 = (
9987
9997
  PrintConv => \%sonyExposureProgram3,
9988
9998
  },
9989
9999
  0x0037 => {
9990
- Name => 'CreativeStyle',
10000
+ Name => 'CreativeStyle',
9991
10001
  Notes => 'offsets after this are shifted by 1 for the ILME-FX2',
9992
10002
  Hook => '$varSize += 1 if $$self{Model} =~ /^(ILME-FX2)/',
9993
10003
  PrintConv => {
@@ -345,7 +345,7 @@ sub ProcessProps($$$)
345
345
  }
346
346
  }
347
347
  if (not defined $val) {
348
- $val = ReadValue($dataPt, $pos, $fmt, $count, $size);
348
+ $val = ReadValue($dataPt, $pos, $fmt, $count, $size);
349
349
  if ($type == 0x06 or $type == 0x07 or $type == 0x0b or $type == 0x40) {
350
350
  my @a = split ' ', $val;
351
351
  if ($type == 0x06) { # currency
@@ -377,7 +377,7 @@ sub ProcessProps($$$)
377
377
  my $copy = $val;
378
378
  $val = \$copy; # change to a binary data reference
379
379
  }
380
- $et->HandleTag($tagTbl, $tag, $val,
380
+ $et->HandleTag($tagTbl, $tag, $val,
381
381
  DataPt => $dataPt,
382
382
  DataPos => $dataPos,
383
383
  Start => $pos,