exiftool-vendored.pl 12.33.0 → 12.40.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 (205) hide show
  1. package/LICENSE +10 -3
  2. package/bin/Changes +116 -0
  3. package/bin/MANIFEST +2 -0
  4. package/bin/META.json +1 -1
  5. package/bin/META.yml +1 -1
  6. package/bin/README +45 -45
  7. package/bin/config_files/acdsee.config +6 -6
  8. package/bin/config_files/photoshop_paths.config +30 -7
  9. package/bin/config_files/picasa_faces.config +1 -1
  10. package/bin/config_files/pix4d.config +2 -2
  11. package/bin/config_files/tiff_version.config +2 -2
  12. package/bin/exiftool +112 -82
  13. package/bin/lib/File/RandomAccess.pm +1 -1
  14. package/bin/lib/File/RandomAccess.pod +2 -2
  15. package/bin/lib/Image/ExifTool/AES.pm +1 -1
  16. package/bin/lib/Image/ExifTool/AFCP.pm +1 -1
  17. package/bin/lib/Image/ExifTool/AIFF.pm +1 -1
  18. package/bin/lib/Image/ExifTool/APE.pm +1 -1
  19. package/bin/lib/Image/ExifTool/APP12.pm +1 -1
  20. package/bin/lib/Image/ExifTool/ASF.pm +1 -1
  21. package/bin/lib/Image/ExifTool/Apple.pm +1 -1
  22. package/bin/lib/Image/ExifTool/Audible.pm +1 -1
  23. package/bin/lib/Image/ExifTool/BMP.pm +1 -1
  24. package/bin/lib/Image/ExifTool/BPG.pm +1 -1
  25. package/bin/lib/Image/ExifTool/BZZ.pm +1 -1
  26. package/bin/lib/Image/ExifTool/BigTIFF.pm +1 -1
  27. package/bin/lib/Image/ExifTool/BuildTagLookup.pm +15 -4
  28. package/bin/lib/Image/ExifTool/CBOR.pm +1 -1
  29. package/bin/lib/Image/ExifTool/Canon.pm +225 -13
  30. package/bin/lib/Image/ExifTool/CanonCustom.pm +13 -3
  31. package/bin/lib/Image/ExifTool/CanonRaw.pm +1 -1
  32. package/bin/lib/Image/ExifTool/CanonVRD.pm +1 -1
  33. package/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
  34. package/bin/lib/Image/ExifTool/Casio.pm +1 -1
  35. package/bin/lib/Image/ExifTool/Charset.pm +3 -1
  36. package/bin/lib/Image/ExifTool/DICOM.pm +1 -1
  37. package/bin/lib/Image/ExifTool/DJI.pm +1 -1
  38. package/bin/lib/Image/ExifTool/DNG.pm +1 -1
  39. package/bin/lib/Image/ExifTool/DPX.pm +1 -1
  40. package/bin/lib/Image/ExifTool/DV.pm +1 -1
  41. package/bin/lib/Image/ExifTool/DarwinCore.pm +3 -3
  42. package/bin/lib/Image/ExifTool/DjVu.pm +1 -1
  43. package/bin/lib/Image/ExifTool/EXE.pm +1 -1
  44. package/bin/lib/Image/ExifTool/Exif.pm +64 -20
  45. package/bin/lib/Image/ExifTool/FITS.pm +1 -1
  46. package/bin/lib/Image/ExifTool/FLAC.pm +1 -1
  47. package/bin/lib/Image/ExifTool/FLIF.pm +1 -1
  48. package/bin/lib/Image/ExifTool/FLIR.pm +48 -11
  49. package/bin/lib/Image/ExifTool/Fixup.pm +1 -1
  50. package/bin/lib/Image/ExifTool/Flash.pm +1 -1
  51. package/bin/lib/Image/ExifTool/FlashPix.pm +1 -1
  52. package/bin/lib/Image/ExifTool/Font.pm +1 -1
  53. package/bin/lib/Image/ExifTool/FotoStation.pm +1 -1
  54. package/bin/lib/Image/ExifTool/FujiFilm.pm +1 -1
  55. package/bin/lib/Image/ExifTool/GE.pm +1 -1
  56. package/bin/lib/Image/ExifTool/GIF.pm +6 -2
  57. package/bin/lib/Image/ExifTool/GIMP.pm +1 -1
  58. package/bin/lib/Image/ExifTool/GPS.pm +15 -11
  59. package/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
  60. package/bin/lib/Image/ExifTool/Geotag.pm +4 -3
  61. package/bin/lib/Image/ExifTool/GoPro.pm +1 -1
  62. package/bin/lib/Image/ExifTool/H264.pm +1 -1
  63. package/bin/lib/Image/ExifTool/HP.pm +1 -1
  64. package/bin/lib/Image/ExifTool/HTML.pm +1 -1
  65. package/bin/lib/Image/ExifTool/HtmlDump.pm +1 -1
  66. package/bin/lib/Image/ExifTool/ICC_Profile.pm +97 -5
  67. package/bin/lib/Image/ExifTool/ID3.pm +1 -1
  68. package/bin/lib/Image/ExifTool/IPTC.pm +1 -1
  69. package/bin/lib/Image/ExifTool/ISO.pm +1 -1
  70. package/bin/lib/Image/ExifTool/ITC.pm +1 -1
  71. package/bin/lib/Image/ExifTool/Import.pm +1 -1
  72. package/bin/lib/Image/ExifTool/InDesign.pm +1 -1
  73. package/bin/lib/Image/ExifTool/JPEG.pm +6 -2
  74. package/bin/lib/Image/ExifTool/JPEGDigest.pm +1 -1
  75. package/bin/lib/Image/ExifTool/JSON.pm +1 -1
  76. package/bin/lib/Image/ExifTool/JVC.pm +1 -1
  77. package/bin/lib/Image/ExifTool/Jpeg2000.pm +109 -12
  78. package/bin/lib/Image/ExifTool/Kodak.pm +1 -1
  79. package/bin/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
  80. package/bin/lib/Image/ExifTool/LIF.pm +1 -1
  81. package/bin/lib/Image/ExifTool/LNK.pm +1 -1
  82. package/bin/lib/Image/ExifTool/Lang/cs.pm +1 -1
  83. package/bin/lib/Image/ExifTool/Lang/de.pm +1 -1
  84. package/bin/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
  85. package/bin/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
  86. package/bin/lib/Image/ExifTool/Lang/es.pm +1 -1
  87. package/bin/lib/Image/ExifTool/Lang/fi.pm +1 -1
  88. package/bin/lib/Image/ExifTool/Lang/fr.pm +1 -1
  89. package/bin/lib/Image/ExifTool/Lang/it.pm +1 -1
  90. package/bin/lib/Image/ExifTool/Lang/ja.pm +1 -1
  91. package/bin/lib/Image/ExifTool/Lang/ko.pm +1 -1
  92. package/bin/lib/Image/ExifTool/Lang/nl.pm +1 -1
  93. package/bin/lib/Image/ExifTool/Lang/pl.pm +1 -1
  94. package/bin/lib/Image/ExifTool/Lang/ru.pm +1 -1
  95. package/bin/lib/Image/ExifTool/Lang/sv.pm +1 -1
  96. package/bin/lib/Image/ExifTool/Lang/tr.pm +1 -1
  97. package/bin/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
  98. package/bin/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
  99. package/bin/lib/Image/ExifTool/Leaf.pm +1 -1
  100. package/bin/lib/Image/ExifTool/Lytro.pm +1 -1
  101. package/bin/lib/Image/ExifTool/M2TS.pm +1 -1
  102. package/bin/lib/Image/ExifTool/MIE.pm +1 -1
  103. package/bin/lib/Image/ExifTool/MIEUnits.pod +1 -1
  104. package/bin/lib/Image/ExifTool/MIFF.pm +1 -1
  105. package/bin/lib/Image/ExifTool/MNG.pm +1 -1
  106. package/bin/lib/Image/ExifTool/MOI.pm +1 -1
  107. package/bin/lib/Image/ExifTool/MPC.pm +1 -1
  108. package/bin/lib/Image/ExifTool/MPEG.pm +1 -1
  109. package/bin/lib/Image/ExifTool/MPF.pm +1 -1
  110. package/bin/lib/Image/ExifTool/MRC.pm +1 -1
  111. package/bin/lib/Image/ExifTool/MWG.pm +1 -1
  112. package/bin/lib/Image/ExifTool/MXF.pm +1 -1
  113. package/bin/lib/Image/ExifTool/MacOS.pm +1 -1
  114. package/bin/lib/Image/ExifTool/MakerNotes.pm +1 -1
  115. package/bin/lib/Image/ExifTool/Matroska.pm +9 -5
  116. package/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
  117. package/bin/lib/Image/ExifTool/Minolta.pm +1 -1
  118. package/bin/lib/Image/ExifTool/MinoltaRaw.pm +1 -1
  119. package/bin/lib/Image/ExifTool/Motorola.pm +1 -1
  120. package/bin/lib/Image/ExifTool/Nikon.pm +1918 -72
  121. package/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
  122. package/bin/lib/Image/ExifTool/NikonCustom.pm +523 -6
  123. package/bin/lib/Image/ExifTool/NikonSettings.pm +150 -87
  124. package/bin/lib/Image/ExifTool/Nintendo.pm +1 -1
  125. package/bin/lib/Image/ExifTool/OOXML.pm +1 -1
  126. package/bin/lib/Image/ExifTool/Ogg.pm +1 -1
  127. package/bin/lib/Image/ExifTool/Olympus.pm +7 -7
  128. package/bin/lib/Image/ExifTool/OpenEXR.pm +5 -3
  129. package/bin/lib/Image/ExifTool/Opus.pm +1 -1
  130. package/bin/lib/Image/ExifTool/Other.pm +1 -1
  131. package/bin/lib/Image/ExifTool/PCX.pm +1 -1
  132. package/bin/lib/Image/ExifTool/PDF.pm +6 -4
  133. package/bin/lib/Image/ExifTool/PGF.pm +1 -1
  134. package/bin/lib/Image/ExifTool/PICT.pm +1 -1
  135. package/bin/lib/Image/ExifTool/PLIST.pm +1 -1
  136. package/bin/lib/Image/ExifTool/PLUS.pm +1 -1
  137. package/bin/lib/Image/ExifTool/PNG.pm +29 -8
  138. package/bin/lib/Image/ExifTool/PPM.pm +1 -1
  139. package/bin/lib/Image/ExifTool/PSP.pm +1 -1
  140. package/bin/lib/Image/ExifTool/Palm.pm +1 -1
  141. package/bin/lib/Image/ExifTool/Panasonic.pm +1 -1
  142. package/bin/lib/Image/ExifTool/PanasonicRaw.pm +1 -1
  143. package/bin/lib/Image/ExifTool/Parrot.pm +1 -1
  144. package/bin/lib/Image/ExifTool/Pentax.pm +3 -2
  145. package/bin/lib/Image/ExifTool/PhaseOne.pm +1 -1
  146. package/bin/lib/Image/ExifTool/PhotoCD.pm +1 -1
  147. package/bin/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
  148. package/bin/lib/Image/ExifTool/Photoshop.pm +1 -1
  149. package/bin/lib/Image/ExifTool/PostScript.pm +1 -1
  150. package/bin/lib/Image/ExifTool/PrintIM.pm +1 -1
  151. package/bin/lib/Image/ExifTool/Qualcomm.pm +1 -1
  152. package/bin/lib/Image/ExifTool/QuickTime.pm +25 -7
  153. package/bin/lib/Image/ExifTool/QuickTimeStream.pl +40 -4
  154. package/bin/lib/Image/ExifTool/README +4 -0
  155. package/bin/lib/Image/ExifTool/RIFF.pm +1 -1
  156. package/bin/lib/Image/ExifTool/RSRC.pm +1 -1
  157. package/bin/lib/Image/ExifTool/RTF.pm +1 -1
  158. package/bin/lib/Image/ExifTool/Radiance.pm +1 -1
  159. package/bin/lib/Image/ExifTool/Rawzor.pm +1 -1
  160. package/bin/lib/Image/ExifTool/Real.pm +1 -1
  161. package/bin/lib/Image/ExifTool/Reconyx.pm +1 -1
  162. package/bin/lib/Image/ExifTool/Red.pm +1 -1
  163. package/bin/lib/Image/ExifTool/Ricoh.pm +1 -1
  164. package/bin/lib/Image/ExifTool/Samsung.pm +6 -2
  165. package/bin/lib/Image/ExifTool/Sanyo.pm +1 -1
  166. package/bin/lib/Image/ExifTool/Scalado.pm +1 -1
  167. package/bin/lib/Image/ExifTool/Shift.pl +3 -1
  168. package/bin/lib/Image/ExifTool/Shortcuts.pm +1 -1
  169. package/bin/lib/Image/ExifTool/Sigma.pm +1 -1
  170. package/bin/lib/Image/ExifTool/SigmaRaw.pm +1 -1
  171. package/bin/lib/Image/ExifTool/Sony.pm +34 -12
  172. package/bin/lib/Image/ExifTool/SonyIDC.pm +1 -1
  173. package/bin/lib/Image/ExifTool/Stim.pm +1 -1
  174. package/bin/lib/Image/ExifTool/TagInfoXML.pm +11 -6
  175. package/bin/lib/Image/ExifTool/TagLookup.pm +6581 -5893
  176. package/bin/lib/Image/ExifTool/TagNames.pod +1641 -59
  177. package/bin/lib/Image/ExifTool/Text.pm +1 -1
  178. package/bin/lib/Image/ExifTool/Theora.pm +1 -1
  179. package/bin/lib/Image/ExifTool/Torrent.pm +1 -1
  180. package/bin/lib/Image/ExifTool/Unknown.pm +1 -1
  181. package/bin/lib/Image/ExifTool/VCard.pm +1 -1
  182. package/bin/lib/Image/ExifTool/Validate.pm +1 -1
  183. package/bin/lib/Image/ExifTool/Vorbis.pm +1 -1
  184. package/bin/lib/Image/ExifTool/WTV.pm +1 -1
  185. package/bin/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
  186. package/bin/lib/Image/ExifTool/WriteExif.pl +1 -1
  187. package/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
  188. package/bin/lib/Image/ExifTool/WritePDF.pl +1 -1
  189. package/bin/lib/Image/ExifTool/WritePNG.pl +30 -10
  190. package/bin/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
  191. package/bin/lib/Image/ExifTool/WritePostScript.pl +1 -1
  192. package/bin/lib/Image/ExifTool/WriteQuickTime.pl +19 -4
  193. package/bin/lib/Image/ExifTool/WriteXMP.pl +13 -12
  194. package/bin/lib/Image/ExifTool/Writer.pl +56 -10
  195. package/bin/lib/Image/ExifTool/XMP.pm +169 -54
  196. package/bin/lib/Image/ExifTool/XMP2.pl +6 -4
  197. package/bin/lib/Image/ExifTool/XMPStruct.pl +22 -8
  198. package/bin/lib/Image/ExifTool/ZIP.pm +10 -2
  199. package/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
  200. package/bin/lib/Image/ExifTool/iWork.pm +1 -1
  201. package/bin/lib/Image/ExifTool.pm +93 -13
  202. package/bin/lib/Image/ExifTool.pod +80 -70
  203. package/bin/perl-Image-ExifTool.spec +43 -43
  204. package/bin/pp_build_exe.args +5 -5
  205. package/package.json +3 -3
@@ -8,7 +8,7 @@
8
8
  # Revisions: Nov. 12/2003 - P. Harvey Created
9
9
  # (See html/history.html for revision history)
10
10
  #
11
- # Legal: Copyright (c) 2003-2021, Phil Harvey (philharvey66 at gmail.com)
11
+ # Legal: Copyright (c) 2003-2022, Phil Harvey (philharvey66 at gmail.com)
12
12
  # This library is free software; you can redistribute it and/or
13
13
  # modify it under the same terms as Perl itself.
14
14
  #------------------------------------------------------------------------------
@@ -26,10 +26,10 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
26
26
  $psAPP13hdr $psAPP13old @loadAllTables %UserDefined $evalWarning
27
27
  %noWriteFile %magicNumber @langs $defaultLang %langName %charsetName
28
28
  %mimeType $swapBytes $swapWords $currentByteOrder %unpackStd
29
- %jpegMarker %specialTags %fileTypeLookup $testLen $exePath
29
+ %jpegMarker %specialTags %fileTypeLookup $testLen $exeDir
30
30
  %static_vars);
31
31
 
32
- $VERSION = '12.33';
32
+ $VERSION = '12.40';
33
33
  $RELEASE = '';
34
34
  @ISA = qw(Exporter);
35
35
  %EXPORT_TAGS = (
@@ -320,7 +320,7 @@ my %createTypes = map { $_ => 1 } qw(XMP ICC MIE VRD DR4 EXIF EXV);
320
320
  FPF => ['FPF', 'FLIR Public image Format'],
321
321
  FPX => ['FPX', 'FlashPix'],
322
322
  GIF => ['GIF', 'Compuserve Graphics Interchange Format'],
323
- GPR => ['TIFF', 'GoPro RAW'],
323
+ GPR => ['TIFF', 'General Purpose RAW'], # https://gopro.github.io/gpr/
324
324
  GZ => 'GZIP',
325
325
  GZIP => ['GZIP', 'GNU ZIP compressed archive'],
326
326
  HDP => ['TIFF', 'Windows HD Photo'],
@@ -406,6 +406,8 @@ my %createTypes = map { $_ => 1 } qw(XMP ICC MIE VRD DR4 EXIF EXV);
406
406
  # NDPI => ['TIFF', 'Hamamatsu NanoZoomer Digital Pathology Image'],
407
407
  NEF => ['TIFF', 'Nikon (RAW) Electronic Format'],
408
408
  NEWER => 'COS',
409
+ NKSC => ['XMP', 'Nikon Sidecar'],
410
+
409
411
  NMBTEMPLATE => ['ZIP','Apple Numbers Template'],
410
412
  NRW => ['TIFF', 'Nikon RAW (2)'],
411
413
  NUMBERS => ['ZIP','Apple Numbers spreadsheet'],
@@ -691,6 +693,7 @@ my %fileDescription = (
691
693
  MRW => 'image/x-minolta-mrw',
692
694
  MXF => 'application/mxf',
693
695
  NEF => 'image/x-nikon-nef',
696
+ NKSC => 'application/x-nikon-nxstudio',
694
697
  NRW => 'image/x-nikon-nrw',
695
698
  NUMBERS => 'application/x-iwork-numbers-sffnumbers',
696
699
  ODB => 'application/vnd.oasis.opendocument.database',
@@ -909,7 +912,7 @@ $testLen = 1024; # number of bytes to read when testing for magic number
909
912
  GZIP => '\x1f\x8b\x08',
910
913
  HDR => '#\?(RADIANCE|RGBE)\x0a',
911
914
  HTML => '(\xef\xbb\xbf)?\s*(?i)<(!DOCTYPE\s+HTML|HTML|\?xml)', # (case insensitive)
912
- ICC => '.{12}(scnr|mntr|prtr|link|spac|abst|nmcl|nkpf)(XYZ |Lab |Luv |YCbr|Yxy |RGB |GRAY|HSV |HLS |CMYK|CMY |[2-9A-F]CLR){2}',
915
+ ICC => '.{12}(scnr|mntr|prtr|link|spac|abst|nmcl|nkpf|cenc|mid |mlnk|mvis)(XYZ |Lab |Luv |YCbr|Yxy |RGB |GRAY|HSV |HLS |CMYK|CMY |[2-9A-F]CLR|nc..|\0{4}){2}',
913
916
  IND => '\x06\x06\xed\xf5\xd8\x1d\x46\xe5\xbd\x31\xef\xe7\xfe\x74\xb7\x1d',
914
917
  # ISO => signature is at byte 32768
915
918
  ITC => '.{4}itch',
@@ -1208,6 +1211,18 @@ my %systemTagsNotes = (
1208
1211
  },
1209
1212
  PrintConv => \&ConvertFileSize,
1210
1213
  },
1214
+ ZoneIdentifier => {
1215
+ Groups => { 1 => 'System', 2 => 'Other' },
1216
+ Notes => q{
1217
+ Windows only. Existence indicates that the file has a Zone.Identifier
1218
+ alternate data stream, which is used by some Windows browsers to mark
1219
+ downloaded files as possibly unsafe to run. May be deleted to remove this
1220
+ stream. Requires Win32API::File
1221
+ },
1222
+ Writable => 1,
1223
+ WritePseudo => 1,
1224
+ Protected => 1,
1225
+ },
1211
1226
  FileType => {
1212
1227
  Groups => { 2 => 'Other' },
1213
1228
  Notes => q{
@@ -1784,6 +1799,7 @@ my %systemTagsNotes = (
1784
1799
  Writable => 1,
1785
1800
  Protected => 1,
1786
1801
  },
1802
+ PageCount => { Notes => 'the number of pages in a multi-page TIFF document' },
1787
1803
  );
1788
1804
 
1789
1805
  # tags defined by UserParam option (added at runtime)
@@ -2320,6 +2336,7 @@ sub ClearOptions($)
2320
2336
  Password => undef, # password for password-protected PDF documents
2321
2337
  PrintConv => 1, # flag to enable print conversion
2322
2338
  QuickTimeHandler => 1, # flag to add mdir Handler to newly created Meta box
2339
+ QuickTimePad=> undef, # flag to preserve padding of QuickTime CR3 tags
2323
2340
  QuickTimeUTC=> undef, # assume that QuickTime date/time tags are stored as UTC
2324
2341
  RequestAll => undef, # extract all tags that must be specifically requested
2325
2342
  RequestTags => undef, # extra tags to request (on top of those in the tag list)
@@ -2369,7 +2386,7 @@ sub ExtractInfo($;@)
2369
2386
  my $fast = $$options{FastScan} || 0;
2370
2387
  my $req = $$self{REQ_TAG_LOOKUP};
2371
2388
  my $reqAll = $$options{RequestAll} || 0;
2372
- my (%saveOptions, $reEntry, $rsize, $type, @startTime, $saveOrder, $isDir);
2389
+ my (%saveOptions, $reEntry, $rsize, $zid, $type, @startTime, $saveOrder, $isDir);
2373
2390
 
2374
2391
  # check for internal ReEntry option to allow recursive calls to ExtractInfo
2375
2392
  if (ref $_[1] eq 'HASH' and $_[1]{ReEntry} and
@@ -2461,6 +2478,17 @@ sub ExtractInfo($;@)
2461
2478
  }
2462
2479
  # get size of resource fork on Mac OS
2463
2480
  $rsize = -s "$filename/..namedfork/rsrc" if $^O eq 'darwin' and not $$self{IN_RESOURCE};
2481
+ # check to see if Zone.Identifier file exists in Windows
2482
+ if ($^O eq 'MSWin32' and eval { require Win32API::File }) {
2483
+ my $wattr;
2484
+ my $zfile = "${filename}:Zone.Identifier";
2485
+ if ($self->EncodeFileName($zfile)) {
2486
+ $wattr = eval { Win32API::File::GetFileAttributesW($zfile) };
2487
+ } else {
2488
+ $wattr = eval { Win32API::File::GetFileAttributes($zfile) };
2489
+ }
2490
+ $zid = 1 unless $wattr == Win32API::File::INVALID_FILE_ATTRIBUTES();
2491
+ }
2464
2492
  }
2465
2493
  # open the file
2466
2494
  if ($self->Open(\*EXIFTOOL_FILE, $filename)) {
@@ -2503,6 +2531,7 @@ sub ExtractInfo($;@)
2503
2531
  my $fileSize = $stat[7];
2504
2532
  $self->FoundTag('FileSize', $stat[7]) if defined $stat[7];
2505
2533
  $self->FoundTag('ResourceForkSize', $rsize) if $rsize;
2534
+ $self->FoundTag('ZoneIdentifier', 'Exists') if $zid;
2506
2535
  $self->FoundTag('FileModifyDate', $stat[9]) if defined $stat[9];
2507
2536
  $self->FoundTag('FileAccessDate', $stat[8]) if defined $stat[8];
2508
2537
  my $cTag = $^O eq 'MSWin32' ? 'FileCreateDate' : 'FileInodeChangeDate';
@@ -4063,8 +4092,9 @@ sub Open($*$;$)
4063
4092
  my ($self, $fh, $file, $mode) = @_;
4064
4093
 
4065
4094
  $file =~ s/^([\s&])/.\/$1/; # protect leading whitespace or ampersand
4066
- # default to read mode ('<') unless input is a pipe
4067
- $mode = ($file =~ /\|$/ ? '' : '<') unless $mode;
4095
+ # default to read mode ('<') unless input is a trusted pipe
4096
+ $mode = (($file =~ /\|$/ and $$self{TRUST_PIPE}) ? '' : '<') unless $mode;
4097
+ delete $$self{TRUST_PIPE};
4068
4098
  if ($mode) {
4069
4099
  if ($self->EncodeFileName($file)) {
4070
4100
  # handle Windows Unicode file name
@@ -4227,6 +4257,7 @@ sub ParseArguments($;@)
4227
4257
  $$self{REQ_TAG_LOOKUP} = { };
4228
4258
  $$self{EXCL_TAG_LOOKUP} = { };
4229
4259
  $$self{IO_TAG_LIST} = undef;
4260
+ delete $$self{EXCL_XMP_LOOKUP};
4230
4261
 
4231
4262
  # handle our input arguments
4232
4263
  while (@_) {
@@ -4310,7 +4341,11 @@ sub ParseArguments($;@)
4310
4341
  # generate lookup for excluded tags
4311
4342
  if ($$options{Exclude}) {
4312
4343
  foreach (@{$$options{Exclude}}) {
4313
- /([-\w]+)#?$/ and $$self{EXCL_TAG_LOOKUP}{lc($1)} = 1;
4344
+ /([-\w]+)#?$/ and $$self{EXCL_TAG_LOOKUP}{lc $1} = 1;
4345
+ if (/(xmp-.*:[-\w]+)#?/i) {
4346
+ $$self{EXCL_XMP_LOOKUP} or $$self{EXCL_XMP_LOOKUP} = { };
4347
+ $$self{EXCL_XMP_LOOKUP}{lc $1} = 1;
4348
+ }
4314
4349
  }
4315
4350
  # exclude list is used only for EXCL_TAG_LOOKUP when TAGS_FROM_FILE is set
4316
4351
  undef $$options{Exclude} if $$self{TAGS_FROM_FILE};
@@ -5652,6 +5687,38 @@ sub ConvertDateTime($$)
5652
5687
  unshift @a, 1 while @a < 3; # add month and day if necessary
5653
5688
  unshift @a, 0 while @a < 6; # add h,m,s if necessary
5654
5689
  $a[4] -= 1; # base month is 1
5690
+ # parse our %f fractional seconds first (and round up seconds if necessary)
5691
+ # - if there are multiple %f codes, they all get the same number of digits as the first
5692
+ if ($fmt =~ /%\.?(\d*)f/) {
5693
+ my $dig = $1;
5694
+ my $frac = $date =~ /(\.\d+)/ ? $1 : '';
5695
+ if (not $frac) {
5696
+ $frac = '.' . ('0' x $dig) if $dig;
5697
+ } elsif (length $dig) {
5698
+ if ($dig+1 > length($frac)) {
5699
+ $frac .= '0' x ($dig+1-length($frac));
5700
+ } elsif ($dig+1 < length($frac)) {
5701
+ $frac = sprintf("%.${dig}f", $frac);
5702
+ while ($frac =~ s/^(\d)// and $1 ne '0') {
5703
+ # this is a pain, but we must round up to the next second
5704
+ ++$a[0] < 60 and last;
5705
+ $a[0] = 0;
5706
+ ++$a[1] < 60 and last;
5707
+ $a[1] = 0;
5708
+ ++$a[2] < 24 and last;
5709
+ $a[2] = 0;
5710
+ require 'Image/ExifTool/Shift.pl';
5711
+ ++$a[3] <= DaysInMonth($a[4]+1, $a[5]) and last;
5712
+ $a[3] = 1;
5713
+ ++$a[4] < 12 and last;
5714
+ $a[4] = 0;
5715
+ ++$a[5];
5716
+ last; # (this was a goto)
5717
+ }
5718
+ }
5719
+ }
5720
+ $fmt =~ s/(^|[^%])((%%)*)%\.?\d*f/$1$2$frac/g;
5721
+ }
5655
5722
  # parse %z and %s ourself (to handle time zones properly)
5656
5723
  if ($fmt =~ /%[sz]/) {
5657
5724
  # use system time zone unless otherwise specified
@@ -5966,6 +6033,8 @@ sub IdentifyTrailer($;$)
5966
6033
  $type = 'Samsung';
5967
6034
  } elsif ($buff =~ /8db42d694ccc418790edff439fe026bf$/s) {
5968
6035
  $type = 'Insta360';
6036
+ } elsif ($buff =~ m(\0{6}/NIKON APP$)) {
6037
+ $type = 'NikonApp';
5969
6038
  }
5970
6039
  last;
5971
6040
  }
@@ -6001,6 +6070,9 @@ sub ProcessTrailers($$)
6001
6070
  if ($dirName eq 'Insta360') {
6002
6071
  require 'Image/ExifTool/QuickTimeStream.pl';
6003
6072
  $proc = 'Image::ExifTool::QuickTime::ProcessInsta360';
6073
+ } elsif ($dirName eq 'NikonApp') {
6074
+ require Image::ExifTool::Nikon;
6075
+ $proc = 'Image::ExifTool::Nikon::ProcessNikonApp';
6004
6076
  } else {
6005
6077
  require "Image/ExifTool/$dirName.pm";
6006
6078
  $proc = "Image::ExifTool::${dirName}::Process$dirName";
@@ -6252,7 +6324,7 @@ sub ProcessJPEG($$)
6252
6324
  my $markerName = JpegMarkerName($marker);
6253
6325
  $$path[$pn] = $markerName;
6254
6326
  # issue warning if we skipped some garbage
6255
- if ($skipped and not $foundSOS) {
6327
+ if ($skipped and not $foundSOS and $markerName ne 'SOS') {
6256
6328
  $self->Warn("Skipped unknown $skipped bytes after JPEG $markerName segment", 1);
6257
6329
  if ($htmlDump) {
6258
6330
  $self->HDump($nextSegPos-4-$skipped, $skipped, "[unknown $skipped bytes]", undef, 0x08);
@@ -7377,7 +7449,11 @@ sub DoProcessTIFF($$;$)
7377
7449
  # this looks like a BigTIFF image
7378
7450
  $raf->Seek(0);
7379
7451
  require Image::ExifTool::BigTIFF;
7380
- return 1 if Image::ExifTool::BigTIFF::ProcessBTF($self, $dirInfo);
7452
+ my $result = Image::ExifTool::BigTIFF::ProcessBTF($self, $dirInfo);
7453
+ if ($result) {
7454
+ $self->FoundTag(PageCount => $$self{PageCount}) if $$self{MultiPage};
7455
+ return 1;
7456
+ }
7381
7457
  } elsif ($identifier == 0x4f52 or $identifier == 0x5352) {
7382
7458
  # Olympus ORF image (set FileType now because base type is 'ORF')
7383
7459
  $self->SetFileType($fileType = 'ORF');
@@ -7470,6 +7546,9 @@ sub DoProcessTIFF($$;$)
7470
7546
  # override whatever FileType we set since we now know it is DNG
7471
7547
  $self->OverrideFileType($$self{TIFF_TYPE} = 'DNG');
7472
7548
  }
7549
+ if ($$self{TIFF_TYPE} eq 'TIFF') {
7550
+ $self->FoundTag(PageCount => $$self{PageCount}) if $$self{MultiPage};
7551
+ }
7473
7552
  return 1;
7474
7553
  }
7475
7554
  #
@@ -8711,6 +8790,7 @@ sub ProcessBinaryData($$$)
8711
8790
  # read value now if necessary
8712
8791
  unless (defined $val and not $$tagInfo{SubDirectory}) {
8713
8792
  $val = ReadValue($dataPt, $entry+$offset, $format, $count, $more, \$rational);
8793
+ next unless defined $val;
8714
8794
  $mask = $$tagInfo{Mask};
8715
8795
  $val = ($val & $mask) >> $$tagInfo{BitShift} if $mask;
8716
8796
  }
@@ -8812,8 +8892,8 @@ until ($Image::ExifTool::noConfig) {
8812
8892
  $file = $config;
8813
8893
  }
8814
8894
  # also check executable directory unless path is absolute
8815
- $exePath = $0 unless defined $exePath; # (undocumented $exePath setting)
8816
- -r $file or $config =~ /^\// or $file = ($exePath =~ /(.*[\\\/])/ ? $1 : './') . $config;
8895
+ $exeDir = ($0 =~ /(.*)[\\\/]/) ? $1 : '.' unless defined $exeDir;
8896
+ -r $file or $config =~ /^\// or $file = "$exeDir/$config";
8817
8897
  unless (-r $file) {
8818
8898
  warn("Config file not found\n") if defined $Image::ExifTool::configFile;
8819
8899
  last;
@@ -5,7 +5,7 @@
5
5
  #
6
6
  # URL: https://exiftool.org/
7
7
  #
8
- # Legal: Copyright (c) 2003-2021, Phil Harvey (philharvey66 at gmail.com)
8
+ # Legal: Copyright (c) 2003-2022, Phil Harvey (philharvey66 at gmail.com)
9
9
  # This library is free software; you can redistribute it and/or
10
10
  # modify it under the same terms as Perl itself.
11
11
  #------------------------------------------------------------------------------
@@ -65,48 +65,48 @@ supported by ExifTool (r = read, w = write, c = create):
65
65
 
66
66
  File Types
67
67
  ------------+-------------+-------------+-------------+------------
68
- 360 r/w | DR4 r/w/c | JNG r/w | ODP r | RIFF r
69
- 3FR r | DSS r | JP2 r/w | ODS r | RSRC r
70
- 3G2 r/w | DV r | JPEG r/w | ODT r | RTF r
71
- 3GP r/w | DVB r/w | JSON r | OFR r | RW2 r/w
72
- A r | DVR-MS r | JXL r | OGG r | RWL r/w
73
- AA r | DYLIB r | K25 r | OGV r | RWZ r
74
- AAE r | EIP r | KDC r | ONP r | RM r
75
- AAX r/w | EPS r/w | KEY r | OPUS r | SEQ r
76
- ACR r | EPUB r | LA r | ORF r/w | SKETCH r
77
- AFM r | ERF r/w | LFP r | ORI r/w | SO r
78
- AI r/w | EXE r | LIF r | OTF r | SR2 r/w
79
- AIFF r | EXIF r/w/c | LNK r | PAC r | SRF r
80
- APE r | EXR r | LRV r/w | PAGES r | SRW r/w
81
- ARQ r/w | EXV r/w/c | M2TS r | PBM r/w | SVG r
82
- ARW r/w | F4A/V r/w | M4A/V r/w | PCD r | SWF r
83
- ASF r | FFF r/w | MACOS r | PCX r | THM r/w
84
- AVI r | FITS r | MAX r | PDB r | TIFF r/w
85
- AVIF r/w | FLA r | MEF r/w | PDF r/w | TORRENT r
86
- AZW r | FLAC r | MIE r/w/ | PEF r/w | TTC r
87
- BMP r | FLIF r/w | MIFF r c | PFA r | TTF r
88
- BPG r | FLV r | MKA r | PFB r | TXT r
89
- BTF r | FPF r | MKS r | PFM r | VCF r
90
- CHM r | FPX r | MKV r | PGF r | VRD r/w/c
91
- COS r | GIF r/w | MNG r/w | PGM r/w | VSD r
92
- CR2 r/w | GPR r/w | MOBI r | PLIST r | WAV r
93
- CR3 r/w | GZ r | MODD r | PICT r | WDP r/w
94
- CRM r/w | HDP r/w | MOI r | PMP r | WEBP r
95
- CRW r/w | HDR r | MOS r/w | PNG r/w | WEBM r
96
- CS1 r/w | HEIC r/w | MOV r/w | PPM r/w | WMA r
97
- CSV r | HEIF r/w | MP3 r | PPT r | WMV r
98
- CZI r | HTML r | MP4 r/w | PPTX r | WTV r
99
- DCM r | ICC r/w/c | MPC r | PS r/w | WV r
100
- DCP r/w | ICS r | MPG r | PSB r/w | X3F r/w
101
- DCR r | IDML r | MPO r/w | PSD r/w | XCF r
102
- DFONT r | IIQ r/w | MQV r/w | PSP r | XLS r
103
- DIVX r | IND r/w | MRC r | QTIF r/w | XLSX r
104
- DJVU r | INSP r/w | MRW r/w | R3D r | XMP r/w/c
105
- DLL r | INSV r | MXF r | RA r | ZIP r
106
- DNG r/w | INX r | NEF r/w | RAF r/w |
107
- DOC r | ISO r | NRW r/w | RAM r |
108
- DOCX r | ITC r | NUMBERS r | RAR r |
109
- DPX r | J2C r | O r | RAW r/w |
68
+ 360 r/w | DR4 r/w/c | JNG r/w | O r | RAW r/w
69
+ 3FR r | DSS r | JP2 r/w | ODP r | RIFF r
70
+ 3G2 r/w | DV r | JPEG r/w | ODS r | RSRC r
71
+ 3GP r/w | DVB r/w | JSON r | ODT r | RTF r
72
+ A r | DVR-MS r | JXL r | OFR r | RW2 r/w
73
+ AA r | DYLIB r | K25 r | OGG r | RWL r/w
74
+ AAE r | EIP r | KDC r | OGV r | RWZ r
75
+ AAX r/w | EPS r/w | KEY r | ONP r | RM r
76
+ ACR r | EPUB r | LA r | OPUS r | SEQ r
77
+ AFM r | ERF r/w | LFP r | ORF r/w | SKETCH r
78
+ AI r/w | EXE r | LIF r | ORI r/w | SO r
79
+ AIFF r | EXIF r/w/c | LNK r | OTF r | SR2 r/w
80
+ APE r | EXR r | LRV r/w | PAC r | SRF r
81
+ ARQ r/w | EXV r/w/c | M2TS r | PAGES r | SRW r/w
82
+ ARW r/w | F4A/V r/w | M4A/V r/w | PBM r/w | SVG r
83
+ ASF r | FFF r/w | MACOS r | PCD r | SWF r
84
+ AVI r | FITS r | MAX r | PCX r | THM r/w
85
+ AVIF r/w | FLA r | MEF r/w | PDB r | TIFF r/w
86
+ AZW r | FLAC r | MIE r/w/ | PDF r/w | TORRENT r
87
+ BMP r | FLIF r/w | MIFF r c | PEF r/w | TTC r
88
+ BPG r | FLV r | MKA r | PFA r | TTF r
89
+ BTF r | FPF r | MKS r | PFB r | TXT r
90
+ CHM r | FPX r | MKV r | PFM r | VCF r
91
+ COS r | GIF r/w | MNG r/w | PGF r | VRD r/w/c
92
+ CR2 r/w | GPR r/w | MOBI r | PGM r/w | VSD r
93
+ CR3 r/w | GZ r | MODD r | PLIST r | WAV r
94
+ CRM r/w | HDP r/w | MOI r | PICT r | WDP r/w
95
+ CRW r/w | HDR r | MOS r/w | PMP r | WEBP r
96
+ CS1 r/w | HEIC r/w | MOV r/w | PNG r/w | WEBM r
97
+ CSV r | HEIF r/w | MP3 r | PPM r/w | WMA r
98
+ CZI r | HTML r | MP4 r/w | PPT r | WMV r
99
+ DCM r | ICC r/w/c | MPC r | PPTX r | WTV r
100
+ DCP r/w | ICS r | MPG r | PS r/w | WV r
101
+ DCR r | IDML r | MPO r/w | PSB r/w | X3F r/w
102
+ DFONT r | IIQ r/w | MQV r/w | PSD r/w | XCF r
103
+ DIVX r | IND r/w | MRC r | PSP r | XLS r
104
+ DJVU r | INSP r/w | MRW r/w | QTIF r/w | XLSX r
105
+ DLL r | INSV r | MXF r | R3D r | XMP r/w/c
106
+ DNG r/w | INX r | NEF r/w | RA r | ZIP r
107
+ DOC r | ISO r | NKSC r/w | RAF r/w |
108
+ DOCX r | ITC r | NRW r/w | RAM r |
109
+ DPX r | J2C r | NUMBERS r | RAR r |
110
110
 
111
111
  Meta Information
112
112
  ----------------------+----------------------+---------------------
@@ -593,12 +593,13 @@ different when copying tags with L</SetNewValuesFromFile>.
593
593
  =item DateFormat
594
594
 
595
595
  Format for printing date/time values. See C<strftime> in the L<POSIX>
596
- package for details about the format string. If date can not be converted,
597
- value is left unchanged unless the StrictDate option is set. Timezones are
598
- ignored. The inverse conversion (ie. when calling L</SetNewValue>) is
599
- performed only if POSIX::strptime or Time::Piece is installed. The default
600
- setting of undef causes date/time values to remain in standard EXIF format
601
- (similar to a DateFormat of "%Y:%m:%d %H:%M:%S").
596
+ package and L<https://exiftool.org/filename.html#codes> for details about
597
+ the format string. If the date can not be converted, the value is left
598
+ unchanged unless the StrictDate option is set. Timezones are ignored. The
599
+ inverse conversion (ie. when calling L</SetNewValue>) is performed only if
600
+ POSIX::strptime or Time::Piece is installed. The default setting of undef
601
+ causes date/time values to remain in standard EXIF format (similar to a
602
+ DateFormat of "%Y:%m:%d %H:%M:%S").
602
603
 
603
604
  =item Duplicates
604
605
 
@@ -860,6 +861,14 @@ commonly found in samples from other software, and it has been reported that
860
861
  Apple QuickTime Player and Photos.apps will ignore ItemList tags if this is
861
862
  missing. Default is 1.
862
863
 
864
+ =item QuickTimePad
865
+
866
+ Flag to preserve the padding of some QuickTime atoms when writing.
867
+ QuickTime-based Canon CR3 files pad the values of container atoms with null
868
+ bytes. This padding is removed by default when the file is rewritten, but
869
+ setting this option to 1 adds padding to preserve the original atom size if
870
+ the new atom would be smaller than the original. Default is undef.
871
+
863
872
  =item QuickTimeUTC
864
873
 
865
874
  Flag set to assume that QuickTime date/time values are stored as UTC,
@@ -1236,7 +1245,7 @@ The following ExifTool options are effective in the call to L</WriteInfo>:
1236
1245
 
1237
1246
  ByteOrder, Charset, CharsetEXIF, CharsetFileName, CharsetIPTC, Compact,
1238
1247
  Compress, FixBase, IgnoreMinorErrors, NoMultiExif, NoPDFList, Password,
1239
- QuickTimeHandler, Verbose and WriteMode.
1248
+ QuickTimeHandler, QuickTimePad, Verbose and WriteMode.
1240
1249
 
1241
1250
  =head2 GetTagList
1242
1251
 
@@ -2317,25 +2326,26 @@ MIE-Orient, MIE-Preview, MIE-Thumbnail, MIE-UTM, MIE-Unknown, MIE-Video,
2317
2326
  MIFF, MNG, MOBI, MOI, MPC, MPEG, MPF0, MPImage, MS-DOC, MXF, MacOS,
2318
2327
  MakerNotes, MakerUnknown, Matroska, MediaJukebox, Meta, MetaIFD, Microsoft,
2319
2328
  Minolta, MinoltaRaw, Motorola, NITF, Nikon, NikonCapture, NikonCustom,
2320
- NikonScan, NikonSettings, Nintendo, Ocad, Ogg, Olympus, OpenEXR, Opus, PDF,
2321
- PICT, PNG, PNG-pHYs, PSP, Palm, Panasonic, PanasonicRaw, Pentax, PhaseOne,
2322
- PhotoCD, PhotoMechanic, Photoshop, PictureInfo, PostScript, PreviewIFD,
2323
- PrintIM, ProfileIFD, Qualcomm, QuickTime, RAF, RAF2, RIFF, RMETA, RSRC, RTF,
2324
- Radiance, Rawzor, Real, Real-CONT, Real-MDPR, Real-PROP, Real-RA3, Real-RA4,
2325
- Real-RA5, Real-RJMD, Reconyx, Red, Ricoh, SPIFF, SR2, SR2DataIFD, SR2SubIFD,
2326
- SRF#, SVG, Samsung, Sanyo, Scalado, Sigma, SigmaRaw, Sony, SonyIDC, Stim,
2327
- SubIFD, System, Theora, Torrent, Track#, UserData, UserParam, VCalendar,
2328
- VCard, Version0, Vorbis, WTV, XML, XMP, XMP-DICOM, XMP-Device, XMP-GAudio,
2329
- XMP-GDepth, XMP-GFocus, XMP-GImage, XMP-GPano, XMP-GSpherical, XMP-LImage,
2330
- XMP-MP, XMP-MP1, XMP-PixelLive, XMP-aas, XMP-acdsee, XMP-album,
2331
- XMP-apple-fi, XMP-aux, XMP-cc, XMP-cell, XMP-creatorAtom, XMP-crs, XMP-dc,
2332
- XMP-dex, XMP-digiKam, XMP-drone-dji, XMP-dwc, XMP-exif, XMP-exifEX,
2333
- XMP-expressionmedia, XMP-extensis, XMP-fpv, XMP-getty, XMP-ics,
2334
- XMP-iptcCore, XMP-iptcExt, XMP-lr, XMP-mediapro, XMP-microsoft,
2335
- XMP-mwg-coll, XMP-mwg-kw, XMP-mwg-rs, XMP-pdf, XMP-pdfx, XMP-photomech,
2336
- XMP-photoshop, XMP-plus, XMP-pmi, XMP-prism, XMP-prl, XMP-prm, XMP-pur,
2337
- XMP-rdf, XMP-swf, XMP-tiff, XMP-x, XMP-xmp, XMP-xmpBJ, XMP-xmpDM, XMP-xmpMM,
2338
- XMP-xmpNote, XMP-xmpPLUS, XMP-xmpRights, XMP-xmpTPg, ZIP, iTunes
2329
+ NikonScan, NikonSettings, NineEdits, Nintendo, Ocad, Ogg, Olympus, OpenEXR,
2330
+ Opus, PDF, PICT, PNG, PNG-pHYs, PSP, Palm, Panasonic, PanasonicRaw, Pentax,
2331
+ PhaseOne, PhotoCD, PhotoMechanic, Photoshop, PictureInfo, PostScript,
2332
+ PreviewIFD, PrintIM, ProfileIFD, Qualcomm, QuickTime, RAF, RAF2, RIFF,
2333
+ RMETA, RSRC, RTF, Radiance, Rawzor, Real, Real-CONT, Real-MDPR, Real-PROP,
2334
+ Real-RA3, Real-RA4, Real-RA5, Real-RJMD, Reconyx, Red, Ricoh, SPIFF, SR2,
2335
+ SR2DataIFD, SR2SubIFD, SRF#, SVG, Samsung, Sanyo, Scalado, Sigma, SigmaRaw,
2336
+ Sony, SonyIDC, Stim, SubIFD, System, Theora, Torrent, Track#, UserData,
2337
+ UserParam, VCalendar, VCard, Version0, Vorbis, WTV, XML, XMP, XMP-DICOM,
2338
+ XMP-Device, XMP-GAudio, XMP-GDepth, XMP-GFocus, XMP-GImage, XMP-GPano,
2339
+ XMP-GSpherical, XMP-LImage, XMP-MP, XMP-MP1, XMP-PixelLive, XMP-aas,
2340
+ XMP-acdsee, XMP-album, XMP-apple-fi, XMP-aux, XMP-cc, XMP-cell,
2341
+ XMP-creatorAtom, XMP-crs, XMP-dc, XMP-dex, XMP-digiKam, XMP-drone-dji,
2342
+ XMP-dwc, XMP-exif, XMP-exifEX, XMP-expressionmedia, XMP-extensis, XMP-fpv,
2343
+ XMP-getty, XMP-ics, XMP-iptcCore, XMP-iptcExt, XMP-lr, XMP-mediapro,
2344
+ XMP-microsoft, XMP-mwg-coll, XMP-mwg-kw, XMP-mwg-rs, XMP-pdf, XMP-pdfx,
2345
+ XMP-photomech, XMP-photoshop, XMP-plus, XMP-pmi, XMP-prism, XMP-prl,
2346
+ XMP-prm, XMP-pur, XMP-rdf, XMP-swf, XMP-tiff, XMP-x, XMP-xmp, XMP-xmpBJ,
2347
+ XMP-xmpDM, XMP-xmpMM, XMP-xmpNote, XMP-xmpPLUS, XMP-xmpRights, XMP-xmpTPg,
2348
+ ZIP, iTunes
2339
2349
 
2340
2350
  =item Family 2 (Category):
2341
2351
 
@@ -2734,7 +2744,7 @@ specified by the L</Charset> option.
2734
2744
 
2735
2745
  =head1 AUTHOR
2736
2746
 
2737
- Copyright 2003-2021, Phil Harvey
2747
+ Copyright 2003-2022, Phil Harvey
2738
2748
 
2739
2749
  This library is free software; you can redistribute it and/or modify it
2740
2750
  under the same terms as Perl itself.
@@ -1,6 +1,6 @@
1
1
  Summary: perl module for image data extraction
2
2
  Name: perl-Image-ExifTool
3
- Version: 12.33
3
+ Version: 12.40
4
4
  Release: 1
5
5
  License: Artistic/GPL
6
6
  Group: Development/Libraries/Perl
@@ -22,48 +22,48 @@ supported by ExifTool (r = read, w = write, c = create):
22
22
 
23
23
  File Types
24
24
  ------------+-------------+-------------+-------------+------------
25
- 360 r/w | DR4 r/w/c | JNG r/w | ODP r | RIFF r
26
- 3FR r | DSS r | JP2 r/w | ODS r | RSRC r
27
- 3G2 r/w | DV r | JPEG r/w | ODT r | RTF r
28
- 3GP r/w | DVB r/w | JSON r | OFR r | RW2 r/w
29
- A r | DVR-MS r | JXL r | OGG r | RWL r/w
30
- AA r | DYLIB r | K25 r | OGV r | RWZ r
31
- AAE r | EIP r | KDC r | ONP r | RM r
32
- AAX r/w | EPS r/w | KEY r | OPUS r | SEQ r
33
- ACR r | EPUB r | LA r | ORF r/w | SKETCH r
34
- AFM r | ERF r/w | LFP r | ORI r/w | SO r
35
- AI r/w | EXE r | LIF r | OTF r | SR2 r/w
36
- AIFF r | EXIF r/w/c | LNK r | PAC r | SRF r
37
- APE r | EXR r | LRV r/w | PAGES r | SRW r/w
38
- ARQ r/w | EXV r/w/c | M2TS r | PBM r/w | SVG r
39
- ARW r/w | F4A/V r/w | M4A/V r/w | PCD r | SWF r
40
- ASF r | FFF r/w | MACOS r | PCX r | THM r/w
41
- AVI r | FITS r | MAX r | PDB r | TIFF r/w
42
- AVIF r/w | FLA r | MEF r/w | PDF r/w | TORRENT r
43
- AZW r | FLAC r | MIE r/w/ | PEF r/w | TTC r
44
- BMP r | FLIF r/w | MIFF r c | PFA r | TTF r
45
- BPG r | FLV r | MKA r | PFB r | TXT r
46
- BTF r | FPF r | MKS r | PFM r | VCF r
47
- CHM r | FPX r | MKV r | PGF r | VRD r/w/c
48
- COS r | GIF r/w | MNG r/w | PGM r/w | VSD r
49
- CR2 r/w | GPR r/w | MOBI r | PLIST r | WAV r
50
- CR3 r/w | GZ r | MODD r | PICT r | WDP r/w
51
- CRM r/w | HDP r/w | MOI r | PMP r | WEBP r
52
- CRW r/w | HDR r | MOS r/w | PNG r/w | WEBM r
53
- CS1 r/w | HEIC r/w | MOV r/w | PPM r/w | WMA r
54
- CSV r | HEIF r/w | MP3 r | PPT r | WMV r
55
- CZI r | HTML r | MP4 r/w | PPTX r | WTV r
56
- DCM r | ICC r/w/c | MPC r | PS r/w | WV r
57
- DCP r/w | ICS r | MPG r | PSB r/w | X3F r/w
58
- DCR r | IDML r | MPO r/w | PSD r/w | XCF r
59
- DFONT r | IIQ r/w | MQV r/w | PSP r | XLS r
60
- DIVX r | IND r/w | MRC r | QTIF r/w | XLSX r
61
- DJVU r | INSP r/w | MRW r/w | R3D r | XMP r/w/c
62
- DLL r | INSV r | MXF r | RA r | ZIP r
63
- DNG r/w | INX r | NEF r/w | RAF r/w |
64
- DOC r | ISO r | NRW r/w | RAM r |
65
- DOCX r | ITC r | NUMBERS r | RAR r |
66
- DPX r | J2C r | O r | RAW r/w |
25
+ 360 r/w | DR4 r/w/c | JNG r/w | O r | RAW r/w
26
+ 3FR r | DSS r | JP2 r/w | ODP r | RIFF r
27
+ 3G2 r/w | DV r | JPEG r/w | ODS r | RSRC r
28
+ 3GP r/w | DVB r/w | JSON r | ODT r | RTF r
29
+ A r | DVR-MS r | JXL r | OFR r | RW2 r/w
30
+ AA r | DYLIB r | K25 r | OGG r | RWL r/w
31
+ AAE r | EIP r | KDC r | OGV r | RWZ r
32
+ AAX r/w | EPS r/w | KEY r | ONP r | RM r
33
+ ACR r | EPUB r | LA r | OPUS r | SEQ r
34
+ AFM r | ERF r/w | LFP r | ORF r/w | SKETCH r
35
+ AI r/w | EXE r | LIF r | ORI r/w | SO r
36
+ AIFF r | EXIF r/w/c | LNK r | OTF r | SR2 r/w
37
+ APE r | EXR r | LRV r/w | PAC r | SRF r
38
+ ARQ r/w | EXV r/w/c | M2TS r | PAGES r | SRW r/w
39
+ ARW r/w | F4A/V r/w | M4A/V r/w | PBM r/w | SVG r
40
+ ASF r | FFF r/w | MACOS r | PCD r | SWF r
41
+ AVI r | FITS r | MAX r | PCX r | THM r/w
42
+ AVIF r/w | FLA r | MEF r/w | PDB r | TIFF r/w
43
+ AZW r | FLAC r | MIE r/w/ | PDF r/w | TORRENT r
44
+ BMP r | FLIF r/w | MIFF r c | PEF r/w | TTC r
45
+ BPG r | FLV r | MKA r | PFA r | TTF r
46
+ BTF r | FPF r | MKS r | PFB r | TXT r
47
+ CHM r | FPX r | MKV r | PFM r | VCF r
48
+ COS r | GIF r/w | MNG r/w | PGF r | VRD r/w/c
49
+ CR2 r/w | GPR r/w | MOBI r | PGM r/w | VSD r
50
+ CR3 r/w | GZ r | MODD r | PLIST r | WAV r
51
+ CRM r/w | HDP r/w | MOI r | PICT r | WDP r/w
52
+ CRW r/w | HDR r | MOS r/w | PMP r | WEBP r
53
+ CS1 r/w | HEIC r/w | MOV r/w | PNG r/w | WEBM r
54
+ CSV r | HEIF r/w | MP3 r | PPM r/w | WMA r
55
+ CZI r | HTML r | MP4 r/w | PPT r | WMV r
56
+ DCM r | ICC r/w/c | MPC r | PPTX r | WTV r
57
+ DCP r/w | ICS r | MPG r | PS r/w | WV r
58
+ DCR r | IDML r | MPO r/w | PSB r/w | X3F r/w
59
+ DFONT r | IIQ r/w | MQV r/w | PSD r/w | XCF r
60
+ DIVX r | IND r/w | MRC r | PSP r | XLS r
61
+ DJVU r | INSP r/w | MRW r/w | QTIF r/w | XLSX r
62
+ DLL r | INSV r | MXF r | R3D r | XMP r/w/c
63
+ DNG r/w | INX r | NEF r/w | RA r | ZIP r
64
+ DOC r | ISO r | NKSC r/w | RAF r/w |
65
+ DOCX r | ITC r | NRW r/w | RAM r |
66
+ DPX r | J2C r | NUMBERS r | RAR r |
67
67
 
68
68
  Meta Information
69
69
  ----------------------+----------------------+---------------------
@@ -21,12 +21,12 @@
21
21
  # 10) Copy zip archive to web servers.
22
22
  # 11) Update zip file version in link and text of html/index.html.
23
23
  #------------------------------------------------------------------------------
24
- -T exiftool-12.33
25
- #--info=FileVersion=12.3.3.0
26
- #--info=ProductVersion=12.3.3.0
27
- ##"--info=Build Date=2021:10:16 13:22:24-04:00"
24
+ -T exiftool-12.40
25
+ #--info=FileVersion=12.4.0.0
26
+ #--info=ProductVersion=12.4.0.0
27
+ ##"--info=Build Date=2022:02:08 10:30:47-05:00"
28
28
  ##"--info=Bundled Perl Version=ActivePerl 5.24.0"
29
- ##"--info=LegalCopyright=Copyright (c) 2003-2021, Phil Harvey"
29
+ ##"--info=LegalCopyright=Copyright (c) 2003-2022, Phil Harvey"
30
30
  ##"--info=ProductName=ExifTool"
31
31
  ##"--info=Comments=ExifTool EXE for Windows"
32
32
  ##"--info=Home Page=https://exiftool.org/"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "exiftool-vendored.pl",
3
- "version": "12.33.0",
3
+ "version": "12.40.0",
4
4
  "description": "Vendored perl ExifTool for Node.js",
5
5
  "main": "./index.js",
6
6
  "homepage": "https://github.com/mceachen/exiftool-vendored.pl#readme",
@@ -31,8 +31,8 @@
31
31
  "update": "bash -c ./update.sh"
32
32
  },
33
33
  "devDependencies": {
34
- "mocha": "^9.1.3",
35
- "prettier": "^2.4.1",
34
+ "mocha": "^9.2.0",
35
+ "prettier": "^2.5.1",
36
36
  "rimraf": "^3.0.2"
37
37
  }
38
38
  }