exiftool-vendored.pl 12.49.0 → 12.54.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 (203) hide show
  1. package/bin/Changes +107 -6
  2. package/bin/MANIFEST +5 -0
  3. package/bin/META.json +1 -1
  4. package/bin/META.yml +1 -1
  5. package/bin/README +3 -3
  6. package/bin/exiftool +39 -30
  7. package/bin/lib/File/RandomAccess.pm +1 -1
  8. package/bin/lib/File/RandomAccess.pod +2 -2
  9. package/bin/lib/Image/ExifTool/AES.pm +1 -1
  10. package/bin/lib/Image/ExifTool/AFCP.pm +1 -1
  11. package/bin/lib/Image/ExifTool/AIFF.pm +1 -1
  12. package/bin/lib/Image/ExifTool/APE.pm +1 -1
  13. package/bin/lib/Image/ExifTool/APP12.pm +1 -1
  14. package/bin/lib/Image/ExifTool/ASF.pm +1 -1
  15. package/bin/lib/Image/ExifTool/Apple.pm +197 -27
  16. package/bin/lib/Image/ExifTool/Audible.pm +1 -1
  17. package/bin/lib/Image/ExifTool/BMP.pm +1 -1
  18. package/bin/lib/Image/ExifTool/BPG.pm +1 -1
  19. package/bin/lib/Image/ExifTool/BZZ.pm +1 -1
  20. package/bin/lib/Image/ExifTool/BigTIFF.pm +1 -1
  21. package/bin/lib/Image/ExifTool/BuildTagLookup.pm +10 -7
  22. package/bin/lib/Image/ExifTool/CBOR.pm +1 -1
  23. package/bin/lib/Image/ExifTool/Canon.pm +26 -9
  24. package/bin/lib/Image/ExifTool/CanonCustom.pm +1 -1
  25. package/bin/lib/Image/ExifTool/CanonRaw.pm +1 -1
  26. package/bin/lib/Image/ExifTool/CanonVRD.pm +9 -9
  27. package/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
  28. package/bin/lib/Image/ExifTool/Casio.pm +4 -4
  29. package/bin/lib/Image/ExifTool/Charset.pm +1 -1
  30. package/bin/lib/Image/ExifTool/DICOM.pm +1 -1
  31. package/bin/lib/Image/ExifTool/DJI.pm +1 -1
  32. package/bin/lib/Image/ExifTool/DNG.pm +1 -1
  33. package/bin/lib/Image/ExifTool/DPX.pm +1 -1
  34. package/bin/lib/Image/ExifTool/DV.pm +1 -1
  35. package/bin/lib/Image/ExifTool/DarwinCore.pm +1 -1
  36. package/bin/lib/Image/ExifTool/DjVu.pm +1 -1
  37. package/bin/lib/Image/ExifTool/EXE.pm +1 -1
  38. package/bin/lib/Image/ExifTool/Exif.pm +11 -21
  39. package/bin/lib/Image/ExifTool/FITS.pm +1 -1
  40. package/bin/lib/Image/ExifTool/FLAC.pm +1 -1
  41. package/bin/lib/Image/ExifTool/FLIF.pm +1 -1
  42. package/bin/lib/Image/ExifTool/FLIR.pm +7 -6
  43. package/bin/lib/Image/ExifTool/Fixup.pm +1 -1
  44. package/bin/lib/Image/ExifTool/Flash.pm +1 -1
  45. package/bin/lib/Image/ExifTool/FlashPix.pm +1 -1
  46. package/bin/lib/Image/ExifTool/Font.pm +1 -1
  47. package/bin/lib/Image/ExifTool/FotoStation.pm +1 -1
  48. package/bin/lib/Image/ExifTool/FujiFilm.pm +20 -13
  49. package/bin/lib/Image/ExifTool/GE.pm +1 -1
  50. package/bin/lib/Image/ExifTool/GIF.pm +1 -1
  51. package/bin/lib/Image/ExifTool/GIMP.pm +1 -1
  52. package/bin/lib/Image/ExifTool/GPS.pm +12 -6
  53. package/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
  54. package/bin/lib/Image/ExifTool/Geotag.pm +14 -6
  55. package/bin/lib/Image/ExifTool/GoPro.pm +1 -1
  56. package/bin/lib/Image/ExifTool/H264.pm +1 -1
  57. package/bin/lib/Image/ExifTool/HP.pm +1 -1
  58. package/bin/lib/Image/ExifTool/HTML.pm +1 -1
  59. package/bin/lib/Image/ExifTool/HtmlDump.pm +1 -1
  60. package/bin/lib/Image/ExifTool/ICC_Profile.pm +1 -1
  61. package/bin/lib/Image/ExifTool/ICO.pm +3 -1
  62. package/bin/lib/Image/ExifTool/ID3.pm +1 -1
  63. package/bin/lib/Image/ExifTool/IPTC.pm +6 -2
  64. package/bin/lib/Image/ExifTool/ISO.pm +1 -1
  65. package/bin/lib/Image/ExifTool/ITC.pm +1 -1
  66. package/bin/lib/Image/ExifTool/Import.pm +1 -1
  67. package/bin/lib/Image/ExifTool/InDesign.pm +1 -1
  68. package/bin/lib/Image/ExifTool/JPEG.pm +2 -1
  69. package/bin/lib/Image/ExifTool/JPEGDigest.pm +1 -1
  70. package/bin/lib/Image/ExifTool/JSON.pm +1 -1
  71. package/bin/lib/Image/ExifTool/JVC.pm +1 -1
  72. package/bin/lib/Image/ExifTool/Jpeg2000.pm +35 -8
  73. package/bin/lib/Image/ExifTool/Kodak.pm +1 -1
  74. package/bin/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
  75. package/bin/lib/Image/ExifTool/LIF.pm +1 -1
  76. package/bin/lib/Image/ExifTool/LNK.pm +1 -1
  77. package/bin/lib/Image/ExifTool/Lang/cs.pm +1 -1
  78. package/bin/lib/Image/ExifTool/Lang/de.pm +2 -2
  79. package/bin/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
  80. package/bin/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
  81. package/bin/lib/Image/ExifTool/Lang/es.pm +1 -1
  82. package/bin/lib/Image/ExifTool/Lang/fi.pm +1 -1
  83. package/bin/lib/Image/ExifTool/Lang/fr.pm +6016 -760
  84. package/bin/lib/Image/ExifTool/Lang/it.pm +1 -1
  85. package/bin/lib/Image/ExifTool/Lang/ja.pm +1 -1
  86. package/bin/lib/Image/ExifTool/Lang/ko.pm +1 -1
  87. package/bin/lib/Image/ExifTool/Lang/nl.pm +1 -1
  88. package/bin/lib/Image/ExifTool/Lang/pl.pm +1 -1
  89. package/bin/lib/Image/ExifTool/Lang/ru.pm +1 -1
  90. package/bin/lib/Image/ExifTool/Lang/sk.pm +1806 -0
  91. package/bin/lib/Image/ExifTool/Lang/sv.pm +1 -1
  92. package/bin/lib/Image/ExifTool/Lang/tr.pm +1 -1
  93. package/bin/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
  94. package/bin/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
  95. package/bin/lib/Image/ExifTool/Leaf.pm +1 -1
  96. package/bin/lib/Image/ExifTool/Lytro.pm +1 -1
  97. package/bin/lib/Image/ExifTool/M2TS.pm +45 -2
  98. package/bin/lib/Image/ExifTool/MIE.pm +1 -1
  99. package/bin/lib/Image/ExifTool/MIEUnits.pod +1 -1
  100. package/bin/lib/Image/ExifTool/MIFF.pm +1 -1
  101. package/bin/lib/Image/ExifTool/MISB.pm +2 -2
  102. package/bin/lib/Image/ExifTool/MNG.pm +1 -1
  103. package/bin/lib/Image/ExifTool/MOI.pm +1 -1
  104. package/bin/lib/Image/ExifTool/MPC.pm +1 -1
  105. package/bin/lib/Image/ExifTool/MPEG.pm +1 -1
  106. package/bin/lib/Image/ExifTool/MPF.pm +1 -1
  107. package/bin/lib/Image/ExifTool/MRC.pm +1 -1
  108. package/bin/lib/Image/ExifTool/MWG.pm +1 -1
  109. package/bin/lib/Image/ExifTool/MXF.pm +1 -1
  110. package/bin/lib/Image/ExifTool/MacOS.pm +1 -1
  111. package/bin/lib/Image/ExifTool/MakerNotes.pm +1 -1
  112. package/bin/lib/Image/ExifTool/Matroska.pm +262 -46
  113. package/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
  114. package/bin/lib/Image/ExifTool/Minolta.pm +1 -1
  115. package/bin/lib/Image/ExifTool/MinoltaRaw.pm +1 -1
  116. package/bin/lib/Image/ExifTool/Motorola.pm +1 -1
  117. package/bin/lib/Image/ExifTool/Nikon.pm +845 -355
  118. package/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
  119. package/bin/lib/Image/ExifTool/NikonCustom.pm +140 -107
  120. package/bin/lib/Image/ExifTool/NikonSettings.pm +1 -1
  121. package/bin/lib/Image/ExifTool/Nintendo.pm +1 -1
  122. package/bin/lib/Image/ExifTool/OOXML.pm +1 -1
  123. package/bin/lib/Image/ExifTool/Ogg.pm +1 -1
  124. package/bin/lib/Image/ExifTool/Olympus.pm +6 -4
  125. package/bin/lib/Image/ExifTool/OpenEXR.pm +1 -1
  126. package/bin/lib/Image/ExifTool/Opus.pm +1 -1
  127. package/bin/lib/Image/ExifTool/Other.pm +1 -1
  128. package/bin/lib/Image/ExifTool/PCX.pm +1 -1
  129. package/bin/lib/Image/ExifTool/PDF.pm +1 -1
  130. package/bin/lib/Image/ExifTool/PGF.pm +1 -1
  131. package/bin/lib/Image/ExifTool/PICT.pm +1 -1
  132. package/bin/lib/Image/ExifTool/PLIST.pm +12 -7
  133. package/bin/lib/Image/ExifTool/PLUS.pm +1 -1
  134. package/bin/lib/Image/ExifTool/PNG.pm +9 -2
  135. package/bin/lib/Image/ExifTool/PPM.pm +1 -1
  136. package/bin/lib/Image/ExifTool/PSP.pm +1 -1
  137. package/bin/lib/Image/ExifTool/Palm.pm +1 -1
  138. package/bin/lib/Image/ExifTool/Panasonic.pm +1 -1
  139. package/bin/lib/Image/ExifTool/PanasonicRaw.pm +1 -1
  140. package/bin/lib/Image/ExifTool/Parrot.pm +1 -1
  141. package/bin/lib/Image/ExifTool/Pentax.pm +8 -3
  142. package/bin/lib/Image/ExifTool/PhaseOne.pm +1 -1
  143. package/bin/lib/Image/ExifTool/PhotoCD.pm +1 -1
  144. package/bin/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
  145. package/bin/lib/Image/ExifTool/Photoshop.pm +1 -1
  146. package/bin/lib/Image/ExifTool/PostScript.pm +1 -1
  147. package/bin/lib/Image/ExifTool/PrintIM.pm +1 -1
  148. package/bin/lib/Image/ExifTool/Qualcomm.pm +1 -1
  149. package/bin/lib/Image/ExifTool/QuickTime.pm +52 -9
  150. package/bin/lib/Image/ExifTool/QuickTimeStream.pl +95 -14
  151. package/bin/lib/Image/ExifTool/README +6 -1
  152. package/bin/lib/Image/ExifTool/RIFF.pm +1 -1
  153. package/bin/lib/Image/ExifTool/RSRC.pm +1 -1
  154. package/bin/lib/Image/ExifTool/RTF.pm +1 -1
  155. package/bin/lib/Image/ExifTool/Radiance.pm +1 -1
  156. package/bin/lib/Image/ExifTool/Rawzor.pm +1 -1
  157. package/bin/lib/Image/ExifTool/Real.pm +1 -1
  158. package/bin/lib/Image/ExifTool/Reconyx.pm +1 -1
  159. package/bin/lib/Image/ExifTool/Red.pm +1 -1
  160. package/bin/lib/Image/ExifTool/Ricoh.pm +1 -1
  161. package/bin/lib/Image/ExifTool/Samsung.pm +3 -1
  162. package/bin/lib/Image/ExifTool/Sanyo.pm +1 -1
  163. package/bin/lib/Image/ExifTool/Scalado.pm +1 -1
  164. package/bin/lib/Image/ExifTool/Shift.pl +1 -1
  165. package/bin/lib/Image/ExifTool/Shortcuts.pm +1 -1
  166. package/bin/lib/Image/ExifTool/Sigma.pm +1 -1
  167. package/bin/lib/Image/ExifTool/SigmaRaw.pm +1 -1
  168. package/bin/lib/Image/ExifTool/Sony.pm +35 -20
  169. package/bin/lib/Image/ExifTool/SonyIDC.pm +1 -1
  170. package/bin/lib/Image/ExifTool/Stim.pm +1 -1
  171. package/bin/lib/Image/ExifTool/TagInfoXML.pm +15 -8
  172. package/bin/lib/Image/ExifTool/TagLookup.pm +4672 -4568
  173. package/bin/lib/Image/ExifTool/TagNames.pod +357 -46
  174. package/bin/lib/Image/ExifTool/Text.pm +1 -1
  175. package/bin/lib/Image/ExifTool/Theora.pm +1 -1
  176. package/bin/lib/Image/ExifTool/Torrent.pm +1 -1
  177. package/bin/lib/Image/ExifTool/Unknown.pm +1 -1
  178. package/bin/lib/Image/ExifTool/VCard.pm +1 -1
  179. package/bin/lib/Image/ExifTool/Validate.pm +1 -1
  180. package/bin/lib/Image/ExifTool/Vorbis.pm +1 -1
  181. package/bin/lib/Image/ExifTool/WTV.pm +1 -1
  182. package/bin/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
  183. package/bin/lib/Image/ExifTool/WriteExif.pl +14 -1
  184. package/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
  185. package/bin/lib/Image/ExifTool/WritePDF.pl +5 -1
  186. package/bin/lib/Image/ExifTool/WritePNG.pl +1 -1
  187. package/bin/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
  188. package/bin/lib/Image/ExifTool/WritePostScript.pl +1 -1
  189. package/bin/lib/Image/ExifTool/WriteQuickTime.pl +30 -14
  190. package/bin/lib/Image/ExifTool/WriteRIFF.pl +1 -1
  191. package/bin/lib/Image/ExifTool/WriteXMP.pl +16 -2
  192. package/bin/lib/Image/ExifTool/Writer.pl +35 -15
  193. package/bin/lib/Image/ExifTool/XMP.pm +25 -4
  194. package/bin/lib/Image/ExifTool/XMP2.pl +29 -2
  195. package/bin/lib/Image/ExifTool/XMPStruct.pl +1 -1
  196. package/bin/lib/Image/ExifTool/ZIP.pm +20 -8
  197. package/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
  198. package/bin/lib/Image/ExifTool/iWork.pm +1 -1
  199. package/bin/lib/Image/ExifTool.pm +45 -20
  200. package/bin/lib/Image/ExifTool.pod +48 -46
  201. package/bin/perl-Image-ExifTool.spec +1 -1
  202. package/bin/pp_build_exe.args +6 -5
  203. package/package.json +3 -3
@@ -19,7 +19,7 @@ use strict;
19
19
  use vars qw($VERSION $warnString);
20
20
  use Image::ExifTool qw(:DataAccess :Utils);
21
21
 
22
- $VERSION = '1.27';
22
+ $VERSION = '1.28';
23
23
 
24
24
  sub WarnProc($) { $warnString = $_[0]; }
25
25
 
@@ -385,6 +385,18 @@ sub HandleMember($$;$)
385
385
  $et->HandleTag($tagTablePtr, '_com', $com) if defined $com and length $com;
386
386
  }
387
387
 
388
+ #------------------------------------------------------------------------------
389
+ # Extract file from ZIP archive
390
+ # Inputs: 0) ExifTool ref, 1) Zip object ref, 2) file name
391
+ # Returns: zip member or undef it it didn't exist
392
+ sub ExtractFile($$$)
393
+ {
394
+ my ($et, $zip, $file) = @_;
395
+ my $result = $zip->memberNamed($file);
396
+ $et->VPrint(1, " (Extracting '${file}' from zip archive)\n");
397
+ return $result;
398
+ }
399
+
388
400
  #------------------------------------------------------------------------------
389
401
  # Extract information from a ZIP file
390
402
  # Inputs: 0) ExifTool object reference, 1) dirInfo reference
@@ -460,7 +472,7 @@ sub ProcessZIP($$)
460
472
  # check for an Office Open file (DOCX, etc)
461
473
  # --> read '[Content_Types].xml' to determine the file type
462
474
  my ($mime, @members);
463
- my $cType = $zip->memberNamed('[Content_Types].xml');
475
+ my $cType = ExtractFile($et, $zip, '[Content_Types].xml');
464
476
  if ($cType) {
465
477
  ($buff, $status) = $zip->contents($cType);
466
478
  if (not $status and (
@@ -501,7 +513,7 @@ sub ProcessZIP($$)
501
513
  }
502
514
 
503
515
  # check for an Open Document, IDML or EPUB file
504
- my $mType = $zip->memberNamed('mimetype');
516
+ my $mType = ExtractFile($et, $zip, 'mimetype');
505
517
  if ($mType) {
506
518
  ($mime, $status) = $zip->contents($mType);
507
519
  if (not $status and $mime =~ /([\x21-\xfe]+)/s) {
@@ -510,9 +522,9 @@ sub ProcessZIP($$)
510
522
  $et->SetFileType($openDocType{$mime} || 'ZIP', $mime);
511
523
  $et->Warn("Unrecognized MIMEType $mime") unless $openDocType{$mime};
512
524
  # extract Open Document metadata from "meta.xml"
513
- my $meta = $zip->memberNamed('meta.xml');
525
+ my $meta = ExtractFile($et, $zip, 'meta.xml');
514
526
  # IDML files have metadata in a different place (ref 6)
515
- $meta or $meta = $zip->memberNamed('META-INF/metadata.xml');
527
+ $meta or $meta = ExtractFile($et, $zip, 'META-INF/metadata.xml');
516
528
  if ($meta) {
517
529
  ($buff, $status) = $zip->contents($meta);
518
530
  unless ($status) {
@@ -532,7 +544,7 @@ sub ProcessZIP($$)
532
544
  # process rootfile of EPUB container if applicable
533
545
  for (;;) {
534
546
  last if $meta and $mime ne 'application/epub+zip';
535
- my $container = $zip->memberNamed('META-INF/container.xml');
547
+ my $container = ExtractFile($et, $zip, 'META-INF/container.xml');
536
548
  ($buff, $status) = $zip->contents($container);
537
549
  last if $status;
538
550
  $buff =~ /<rootfile\s+[^>]*?\bfull-path=(['"])(.*?)\1/s or last;
@@ -570,7 +582,7 @@ sub ProcessZIP($$)
570
582
  my $type;
571
583
  my %tag = ( jpg => 'PreviewImage', png => 'PreviewPNG' );
572
584
  foreach $type ('jpg', 'png') {
573
- my $thumb = $zip->memberNamed("Thumbnails/thumbnail.$type");
585
+ my $thumb = ExtractFile($et, $zip, "Thumbnails/thumbnail.$type");
574
586
  next unless $thumb;
575
587
  ($buff, $status) = $zip->contents($thumb);
576
588
  $et->FoundTag($tag{$type}, $buff) unless $status;
@@ -708,7 +720,7 @@ Electronic Publication (EPUB), and Sketch design files (SKETCH).
708
720
 
709
721
  =head1 AUTHOR
710
722
 
711
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
723
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
712
724
 
713
725
  This library is free software; you can redistribute it and/or modify it
714
726
  under the same terms as Perl itself.
@@ -220,7 +220,7 @@ metadata from Zeiss Integrated Software RAW (ZISRAW) CZI files.
220
220
 
221
221
  =head1 AUTHOR
222
222
 
223
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
223
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
224
224
 
225
225
  This library is free software; you can redistribute it and/or modify it
226
226
  under the same terms as Perl itself.
@@ -215,7 +215,7 @@ information from Apple iWork '09 XML+ZIP files.
215
215
 
216
216
  =head1 AUTHOR
217
217
 
218
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
218
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
219
219
 
220
220
  This library is free software; you can redistribute it and/or modify it
221
221
  under the same terms as Perl itself.
@@ -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-2022, Phil Harvey (philharvey66 at gmail.com)
11
+ # Legal: Copyright (c) 2003-2023, 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
  #------------------------------------------------------------------------------
@@ -29,7 +29,7 @@ use vars qw($VERSION $RELEASE @ISA @EXPORT_OK %EXPORT_TAGS $AUTOLOAD @fileTypes
29
29
  %jpegMarker %specialTags %fileTypeLookup $testLen $exeDir
30
30
  %static_vars);
31
31
 
32
- $VERSION = '12.49';
32
+ $VERSION = '12.54';
33
33
  $RELEASE = '';
34
34
  @ISA = qw(Exporter);
35
35
  %EXPORT_TAGS = (
@@ -116,6 +116,7 @@ sub SetPreferredByteOrder($;$);
116
116
  sub CopyBlock($$$);
117
117
  sub CopyFileAttrs($$$);
118
118
  sub TimeNow(;$$);
119
+ sub InverseDateTime($$;$$);
119
120
  sub NewGUID();
120
121
  sub MakeTiffHeader($$$$;$$);
121
122
 
@@ -145,16 +146,16 @@ sub ReadValue($$$;$$$);
145
146
  Samsung::Trailer Sony::SRF2 Sony::SR2SubIFD Sony::PMP ITC ID3 ID3::Lyrics3
146
147
  FLAC Ogg Vorbis APE APE::NewHeader APE::OldHeader Audible MPC MPEG::Audio
147
148
  MPEG::Video MPEG::Xing M2TS QuickTime QuickTime::ImageFile QuickTime::Stream
148
- QuickTime::Tags360Fly Matroska MOI MXF DV Flash Flash::FLV Real::Media
149
- Real::Audio Real::Metafile Red RIFF AIFF ASF WTV DICOM FITS MIE JSON HTML
150
- XMP::SVG Palm Palm::MOBI Palm::EXTH Torrent EXE EXE::PEVersion EXE::PEString
151
- EXE::MachO EXE::PEF EXE::ELF EXE::AR EXE::CHM LNK Font VCard Text
152
- VCard::VCalendar RSRC Rawzor ZIP ZIP::GZIP ZIP::RAR RTF OOXML iWork ISO
149
+ QuickTime::Tags360Fly Matroska Matroska::Tags MOI MXF DV Flash Flash::FLV
150
+ Real::Media Real::Audio Real::Metafile Red RIFF AIFF ASF WTV DICOM FITS MIE
151
+ JSON HTML XMP::SVG Palm Palm::MOBI Palm::EXTH Torrent EXE EXE::PEVersion
152
+ EXE::PEString EXE::MachO EXE::PEF EXE::ELF EXE::AR EXE::CHM LNK Font VCard
153
+ Text VCard::VCalendar RSRC Rawzor ZIP ZIP::GZIP ZIP::RAR RTF OOXML iWork ISO
153
154
  FLIR::AFF FLIR::FPF MacOS MacOS::MDItem FlashPix::DocTable
154
155
  );
155
156
 
156
157
  # alphabetical list of current Lang modules
157
- @langs = qw(cs de en en_ca en_gb es fi fr it ja ko nl pl ru sv tr zh_cn zh_tw);
158
+ @langs = qw(cs de en en_ca en_gb es fi fr it ja ko nl pl ru sk sv tr zh_cn zh_tw);
158
159
 
159
160
  $defaultLang = 'en'; # default language
160
161
 
@@ -174,6 +175,7 @@ $defaultLang = 'en'; # default language
174
175
  nl => 'Dutch (Nederlands)',
175
176
  pl => 'Polish (Polski)',
176
177
  ru => 'Russian (Русский)',
178
+ sk => 'Slovak (Slovenčina)',
177
179
  sv => 'Swedish (Svenska)',
178
180
  'tr'=> 'Turkish (Türkçe)',
179
181
  zh_cn => 'Simplified Chinese (简体中文)',
@@ -603,6 +605,7 @@ my %fileDescription = (
603
605
  CRM => 'video/x-canon-crm',
604
606
  CRW => 'image/x-canon-crw',
605
607
  CSV => 'text/csv',
608
+ CUR => 'image/x-cursor', #PH (NC)
606
609
  CZI => 'image/x-zeiss-czi', #PH (NC)
607
610
  DCP => 'application/octet-stream', #PH (NC)
608
611
  DCR => 'image/x-kodak-dcr',
@@ -651,7 +654,7 @@ my %fileDescription = (
651
654
  HDR => 'image/vnd.radiance',
652
655
  HTML => 'text/html',
653
656
  ICC => 'application/vnd.iccprofile',
654
- ICO => 'application/octet-stream', #PH (NC)
657
+ ICO => 'image/x-icon', #PH (NC)
655
658
  ICS => 'text/calendar',
656
659
  IDML => 'application/vnd.adobe.indesign-idml-package',
657
660
  IIQ => 'image/x-raw',
@@ -1806,6 +1809,16 @@ my %systemTagsNotes = (
1806
1809
  Protected => 1,
1807
1810
  },
1808
1811
  PageCount => { Notes => 'the number of pages in a multi-page TIFF document' },
1812
+ SphericalVideoXML => {
1813
+ Groups => { 0 => 'QuickTime', 1 => 'GSpherical', 2 => 'Video' },
1814
+ # (group 1 is 'GSpherical' to trigger creation of this tag when writing,
1815
+ # but when reading the family 1 group is the track number)
1816
+ Flags => [ 'Writable', 'Binary', 'Protected' ],
1817
+ Notes => q{
1818
+ the SphericalVideoXML block from MP4/MOV videos. This tag is generated only
1819
+ if specifically requested
1820
+ },
1821
+ },
1809
1822
  );
1810
1823
 
1811
1824
  # tags defined by UserParam option (added at runtime)
@@ -2028,6 +2041,7 @@ sub new
2028
2041
  $$self{DEL_GROUP} = { }; # lookup for groups to delete when writing
2029
2042
  $$self{SAVE_COUNT} = 0; # count calls to SaveNewValues()
2030
2043
  $$self{FILE_SEQUENCE} = 0; # sequence number for files when reading
2044
+ $$self{INDENT2} = ''; # indentation of verbose messages from SetNewValue
2031
2045
 
2032
2046
  # initialize our new groups for writing
2033
2047
  $self->SetNewGroups(@defaultWriteGroups);
@@ -3908,7 +3922,7 @@ sub CanCreate($)
3908
3922
  #==============================================================================
3909
3923
  # Functions below this are not part of the public API
3910
3924
 
3911
- # Initialize member variables for reading or writing a new file
3925
+ # Initialize member variables before reading or writing a new file
3912
3926
  # Inputs: 0) ExifTool object reference
3913
3927
  sub Init($)
3914
3928
  {
@@ -4173,10 +4187,15 @@ sub Open($*$;$)
4173
4187
  # handle Windows Unicode file name
4174
4188
  local $SIG{'__WARN__'} = \&SetWarning;
4175
4189
  my ($access, $create);
4176
- if ($mode eq '>') {
4190
+ if ($mode eq '>' or $mode eq '>>') {
4177
4191
  eval {
4178
4192
  $access = Win32API::File::GENERIC_WRITE();
4179
- $create = Win32API::File::CREATE_ALWAYS();
4193
+ if ($mode eq '>>') {
4194
+ $access |= Win32API::File::FILE_APPEND_DATA();
4195
+ $create = Win32API::File::OPEN_ALWAYS();
4196
+ } else {
4197
+ $create = Win32API::File::CREATE_ALWAYS();
4198
+ }
4180
4199
  }
4181
4200
  } else {
4182
4201
  eval {
@@ -4432,11 +4451,15 @@ sub ParseArguments($;@)
4432
4451
  sub IsSameID($$)
4433
4452
  {
4434
4453
  my ($id, $grp) = @_;
4435
- return 1 if $grp eq $id; # decimal ID's or raw ID's
4436
- if ($id =~ /^\d+$/) { # numerical numerical ID's may be in hex
4437
- return 1 if $grp =~ s/^0x0*// and $grp eq sprintf('%x', $id);
4438
- } else { # other ID's may conform to ExifTool group name conventions
4439
- return 1 if $id =~ s/([^-_A-Za-z0-9])/sprintf('%.2x',ord $1)/ge and $grp eq $id;
4454
+ for (;;) {
4455
+ return 1 if $grp eq $id; # decimal ID's or raw ID's
4456
+ if ($id =~ /^\d+$/) { # numerical numerical ID's may be in hex
4457
+ return 1 if $grp =~ s/^0x0*// and $grp eq sprintf('%x', $id);
4458
+ } else { # other ID's may conform to ExifTool group name conventions
4459
+ my $tmp = $id;
4460
+ return 1 if $tmp =~ s/([^-_A-Za-z0-9])/sprintf('%.2x',ord $1)/ge and $grp eq $tmp;
4461
+ }
4462
+ last unless $id =~ s/-.*//; # remove language code if it exists
4440
4463
  }
4441
4464
  return 0;
4442
4465
  }
@@ -8263,15 +8286,17 @@ sub FoundTag($$$;@)
8263
8286
  {
8264
8287
  local $_;
8265
8288
  my ($self, $tagInfo, $value, @grps) = @_;
8266
- my ($tag, $noListDel);
8289
+ my ($tag, $noListDel, $tbl);
8267
8290
  my $options = $$self{OPTIONS};
8268
8291
 
8269
8292
  if (ref $tagInfo eq 'HASH') {
8270
8293
  $tag = $$tagInfo{Name} or warn("No tag name\n"), return undef;
8294
+ $tbl = $$tagInfo{Table};
8271
8295
  } else {
8272
8296
  $tag = $tagInfo;
8273
8297
  # look for tag in Extra
8274
- $tagInfo = $self->GetTagInfo(GetTagTable('Image::ExifTool::Extra'), $tag);
8298
+ $tbl = GetTagTable('Image::ExifTool::Extra');
8299
+ $tagInfo = $self->GetTagInfo($tbl, $tag);
8275
8300
  # make temporary hash if tag doesn't exist in Extra
8276
8301
  # (not advised to do this since the tag won't show in list)
8277
8302
  $tagInfo or $tagInfo = { Name => $tag, Groups => \%allGroupsExifTool };
@@ -8280,7 +8305,7 @@ sub FoundTag($$$;@)
8280
8305
  # get tag priority
8281
8306
  my $priority = $$tagInfo{Priority};
8282
8307
  unless (defined $priority) {
8283
- $priority = $$tagInfo{Table}{PRIORITY};
8308
+ $priority = $$tbl{PRIORITY};
8284
8309
  $priority = 0 if not defined $priority and $$tagInfo{Avoid};
8285
8310
  }
8286
8311
  $grps[0] or $grps[0] = $$self{SET_GROUP0};
@@ -5,7 +5,7 @@
5
5
  #
6
6
  # URL: https://exiftool.org/
7
7
  #
8
- # Legal: Copyright (c) 2003-2022, Phil Harvey (philharvey66 at gmail.com)
8
+ # Legal: Copyright (c) 2003-2023, 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
  #------------------------------------------------------------------------------
@@ -661,14 +661,15 @@ types of files to reduce memory usage when reading from a non-seekable
661
661
  stream, and bypasses CRC validation for speed when writing PNG files. When
662
662
  combined with the ScanForXMP option, prevents scanning for XMP in recognized
663
663
  file types. With a value of 2, ExifTool will also avoid extracting any EXIF
664
- MakerNote information, and will stop parsing at the IDAT chunk of PNG
665
- images. (By the PNG specification, metadata is allowed after IDAT, but
666
- ExifTool always writes it before because some utilities will ignore it
667
- otherwise.) When set to 3 or higher, only pseudo system tags and FileType
668
- are generated. For 3, the file header is read to provide an educated guess
669
- at FileType. For 4, the file is not read at all and FileType is determined
670
- based on the file's extension. For 5, generation of Composite tags is also
671
- disabled (like setting L</Composite> to 0). Default is undef.
664
+ MakerNote information, and will stop processing at the IDAT chunk of PNG
665
+ images and the mdat atom in QuickTime-format files. (By the PNG
666
+ specification, metadata is allowed after IDAT, but ExifTool always writes it
667
+ before because some utilities will ignore it otherwise.) When set to 3 or
668
+ higher, only pseudo system tags and FileType are generated. For 3, the file
669
+ header is read to provide an educated guess at FileType. For 4, the file is
670
+ not read at all and FileType is determined based on the file's extension.
671
+ For 5, generation of Composite tags is also disabled (like setting
672
+ L</Composite> to 0). Default is undef.
672
673
 
673
674
  =item Filter
674
675
 
@@ -2322,43 +2323,44 @@ Torrent, Trailer, UserParam, VCard, Vorbis, WTV, XML, XMP, ZIP
2322
2323
  =item Family 1 (Specific Location):
2323
2324
 
2324
2325
  AC3, AFCP, AIFF, APE, ASF, AVI1, Adobe, AdobeCM, AdobeDNG, Apple, Audible,
2325
- CBOR, CIFF, CameraIFD, Canon, CanonCustom, CanonRaw, CanonVRD, Casio,
2326
- Chapter#, Composite, DICOM, DJI, DNG, DV, DjVu, DjVu-Meta, Ducky, EPPIM,
2327
- EXE, EXIF, ExifIFD, ExifTool, FITS, FLAC, FLIR, File, Flash, FlashPix, Font,
2328
- FotoStation, FujiFilm, FujiIFD, GE, GIF, GIMP, GPS, GeoTiff, GlobParamIFD,
2329
- GoPro, GraphConv, H264, HP, HTC, HTML, HTML-dc, HTML-ncc, HTML-office,
2330
- HTML-prod, HTML-vw96, HTTP-equiv, ICC-chrm, ICC-clrt, ICC-header, ICC-meas,
2331
- ICC-meta, ICC-view, ICC_Profile, ICC_Profile#, ID3, ID3v1, ID3v1_Enh,
2332
- ID3v2_2, ID3v2_3, ID3v2_4, IFD0, IFD1, IPTC, IPTC#, ISO, ITC, Insta360,
2333
- InteropIFD, ItemList, JFIF, JFXX, JPEG, JPEG-HDR, JPS, JSON, JUMBF, JVC,
2334
- Jpeg2000, KDC_IFD, Keys, Kodak, KodakBordersIFD, KodakEffectsIFD, KodakIFD,
2335
- KyoceraRaw, LNK, Leaf, LeafSubIFD, Leica, Lyrics3, Lytro, M2TS, MAC,
2336
- MIE-Audio, MIE-Camera, MIE-Canon, MIE-Doc, MIE-Extender, MIE-Flash, MIE-GPS,
2337
- MIE-Geo, MIE-Image, MIE-Lens, MIE-Main, MIE-MakerNotes, MIE-Meta,
2338
- MIE-Orient, MIE-Preview, MIE-Thumbnail, MIE-UTM, MIE-Unknown, MIE-Video,
2339
- MIFF, MISB, MNG, MOBI, MOI, MPC, MPEG, MPF0, MPImage, MS-DOC, MXF, MacOS,
2340
- MakerNotes, MakerUnknown, Matroska, MediaJukebox, Meta, MetaIFD, Microsoft,
2341
- Minolta, MinoltaRaw, Motorola, NITF, Nikon, NikonCapture, NikonCustom,
2342
- NikonScan, NikonSettings, NineEdits, Nintendo, Ocad, Ogg, Olympus, OpenEXR,
2343
- Opus, PDF, PICT, PNG, PNG-pHYs, PSP, Palm, Panasonic, PanasonicRaw, Pentax,
2344
- PhaseOne, PhotoCD, PhotoMechanic, Photoshop, PictureInfo, PostScript,
2345
- PreviewIFD, PrintIM, ProfileIFD, Qualcomm, QuickTime, RAF, RAF2, RIFF,
2346
- RMETA, RSRC, RTF, Radiance, Rawzor, Real, Real-CONT, Real-MDPR, Real-PROP,
2347
- Real-RA3, Real-RA4, Real-RA5, Real-RJMD, Reconyx, Red, Ricoh, SPIFF, SR2,
2348
- SR2DataIFD, SR2SubIFD, SRF#, SVG, Samsung, Sanyo, Scalado, Sigma, SigmaRaw,
2349
- Sony, SonyIDC, Stim, SubIFD, System, Theora, Torrent, Track#, UserData,
2350
- UserParam, VCalendar, VCard, Version0, Vorbis, WTV, XML, XMP, XMP-DICOM,
2351
- XMP-Device, XMP-GAudio, XMP-GDepth, XMP-GFocus, XMP-GImage, XMP-GPano,
2326
+ CBOR, CIFF, CameraIFD, Canon, CanonCustom, CanonDR4, CanonRaw, CanonVRD,
2327
+ Casio, Chapter#, Composite, DICOM, DJI, DNG, DV, DjVu, DjVu-Meta, Ducky,
2328
+ EPPIM, EXE, EXIF, ExifIFD, ExifTool, FITS, FLAC, FLIR, File, Flash,
2329
+ FlashPix, Font, FotoStation, FujiFilm, FujiIFD, GE, GIF, GIMP, GPS,
2330
+ GSpherical, GeoTiff, GlobParamIFD, GoPro, GraphConv, H264, HP, HTC, HTML,
2331
+ HTML-dc, HTML-ncc, HTML-office, HTML-prod, HTML-vw96, HTTP-equiv, ICC-chrm,
2332
+ ICC-clrt, ICC-header, ICC-meas, ICC-meta, ICC-view, ICC_Profile,
2333
+ ICC_Profile#, ID3, ID3v1, ID3v1_Enh, ID3v2_2, ID3v2_3, ID3v2_4, IFD0, IFD1,
2334
+ IPTC, IPTC#, ISO, ITC, Insta360, InteropIFD, ItemList, JFIF, JFXX, JPEG,
2335
+ JPEG-HDR, JPS, JSON, JUMBF, JVC, Jpeg2000, KDC_IFD, Keys, Kodak,
2336
+ KodakBordersIFD, KodakEffectsIFD, KodakIFD, KyoceraRaw, LNK, Leaf,
2337
+ LeafSubIFD, Leica, Lyrics3, Lytro, M2TS, MAC, MIE-Audio, MIE-Camera,
2338
+ MIE-Canon, MIE-Doc, MIE-Extender, MIE-Flash, MIE-GPS, MIE-Geo, MIE-Image,
2339
+ MIE-Lens, MIE-Main, MIE-MakerNotes, MIE-Meta, MIE-Orient, MIE-Preview,
2340
+ MIE-Thumbnail, MIE-UTM, MIE-Unknown, MIE-Video, MIFF, MISB, MNG, MOBI, MOI,
2341
+ MPC, MPEG, MPF0, MPImage, MS-DOC, MXF, MacOS, MakerNotes, MakerUnknown,
2342
+ Matroska, MediaJukebox, Meta, MetaIFD, Microsoft, Minolta, MinoltaRaw,
2343
+ Motorola, NITF, Nikon, NikonCapture, NikonCustom, NikonScan, NikonSettings,
2344
+ NineEdits, Nintendo, Ocad, Ogg, Olympus, OpenEXR, Opus, PDF, PICT, PNG,
2345
+ PNG-pHYs, PSP, Palm, Panasonic, PanasonicRaw, Parrot, Pentax, PhaseOne,
2346
+ PhotoCD, PhotoMechanic, Photoshop, PictureInfo, PostScript, PreviewIFD,
2347
+ PrintIM, ProfileIFD, Qualcomm, QuickTime, RAF, RAF2, RIFF, RMETA, RSRC, RTF,
2348
+ Radiance, Rawzor, Real, Real-CONT, Real-MDPR, Real-PROP, Real-RA3, Real-RA4,
2349
+ Real-RA5, Real-RJMD, Reconyx, Red, Ricoh, SPIFF, SR2, SR2DataIFD, SR2SubIFD,
2350
+ SRF#, SVG, Samsung, Sanyo, Scalado, Sigma, SigmaRaw, Sony, SonyIDC, Stim,
2351
+ SubIFD, System, Theora, Torrent, Track#, UserData, VCalendar, VCard,
2352
+ Version0, Vorbis, WTV, XML, XMP, XMP-DICOM, XMP-Device, XMP-GAudio,
2353
+ XMP-GCamera, XMP-GCreations, XMP-GDepth, XMP-GFocus, XMP-GImage, XMP-GPano,
2352
2354
  XMP-GSpherical, XMP-LImage, XMP-MP, XMP-MP1, XMP-PixelLive, XMP-aas,
2353
- XMP-acdsee, XMP-album, XMP-apple-fi, XMP-aux, XMP-cc, XMP-cell,
2354
- XMP-creatorAtom, XMP-crs, XMP-dc, XMP-dex, XMP-digiKam, XMP-drone-dji,
2355
- XMP-dwc, XMP-exif, XMP-exifEX, XMP-expressionmedia, XMP-extensis, XMP-fpv,
2356
- XMP-getty, XMP-ics, XMP-iptcCore, XMP-iptcExt, XMP-lr, XMP-mediapro,
2357
- XMP-microsoft, XMP-mwg-coll, XMP-mwg-kw, XMP-mwg-rs, XMP-pdf, XMP-pdfx,
2358
- XMP-photomech, XMP-photoshop, XMP-plus, XMP-pmi, XMP-prism, XMP-prl,
2359
- XMP-prm, XMP-pur, XMP-rdf, XMP-swf, XMP-tiff, XMP-x, XMP-xmp, XMP-xmpBJ,
2360
- XMP-xmpDM, XMP-xmpMM, XMP-xmpNote, XMP-xmpPLUS, XMP-xmpRights, XMP-xmpTPg,
2361
- ZIP, iTunes
2355
+ XMP-acdsee, XMP-album, XMP-apple-fi, XMP-ast, XMP-aux, XMP-cc, XMP-cell,
2356
+ XMP-crd, XMP-creatorAtom, XMP-crs, XMP-dc, XMP-dex, XMP-digiKam,
2357
+ XMP-drone-dji, XMP-dwc, XMP-exif, XMP-exifEX, XMP-expressionmedia,
2358
+ XMP-extensis, XMP-fpv, XMP-getty, XMP-hdr, XMP-ics, XMP-iptcCore,
2359
+ XMP-iptcExt, XMP-lr, XMP-mediapro, XMP-microsoft, XMP-mwg-coll, XMP-mwg-kw,
2360
+ XMP-mwg-rs, XMP-nine, XMP-pdf, XMP-pdfx, XMP-photomech, XMP-photoshop,
2361
+ XMP-plus, XMP-pmi, XMP-prism, XMP-prl, XMP-prm, XMP-pur, XMP-rdf, XMP-sdc,
2362
+ XMP-swf, XMP-tiff, XMP-x, XMP-xmp, XMP-xmpBJ, XMP-xmpDM, XMP-xmpMM,
2363
+ XMP-xmpNote, XMP-xmpPLUS, XMP-xmpRights, XMP-xmpTPg, ZIP, iTunes
2362
2364
 
2363
2365
  =item Family 2 (Category):
2364
2366
 
@@ -2757,7 +2759,7 @@ specified by the L</Charset> option.
2757
2759
 
2758
2760
  =head1 AUTHOR
2759
2761
 
2760
- Copyright 2003-2022, Phil Harvey
2762
+ Copyright 2003-2023, Phil Harvey
2761
2763
 
2762
2764
  This library is free software; you can redistribute it and/or modify it
2763
2765
  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.49
3
+ Version: 12.54
4
4
  Release: 1
5
5
  License: Artistic/GPL
6
6
  Group: Development/Libraries/Perl
@@ -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.49
25
- #--info=FileVersion=12.4.9.0
26
- #--info=ProductVersion=12.4.9.0
27
- ##"--info=Build Date=2022:10:19 14:49:10-04:00"
24
+ -T exiftool-12.54
25
+ #--info=FileVersion=12.5.4.0
26
+ #--info=ProductVersion=12.5.4.0
27
+ ##"--info=Build Date=2023:01:06 16:50:41-05:00"
28
28
  ##"--info=Bundled Perl Version=ActivePerl 5.24.0"
29
- ##"--info=LegalCopyright=Copyright (c) 2003-2022, Phil Harvey"
29
+ ##"--info=LegalCopyright=Copyright (c) 2003-2023, Phil Harvey"
30
30
  ##"--info=ProductName=ExifTool"
31
31
  ##"--info=Comments=ExifTool EXE for Windows"
32
32
  ##"--info=Home Page=https://exiftool.org/"
@@ -163,6 +163,7 @@
163
163
  -M Image::ExifTool::Lang::nl
164
164
  -M Image::ExifTool::Lang::pl
165
165
  -M Image::ExifTool::Lang::ru
166
+ -M Image::ExifTool::Lang::sk
166
167
  -M Image::ExifTool::Lang::sv
167
168
  -M Image::ExifTool::Lang::tr
168
169
  -M Image::ExifTool::Lang::zh_cn
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "exiftool-vendored.pl",
3
- "version": "12.49.0",
3
+ "version": "12.54.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",
@@ -42,8 +42,8 @@
42
42
  }
43
43
  },
44
44
  "devDependencies": {
45
- "mocha": "^10.1.0",
46
- "prettier": "^2.7.1",
45
+ "mocha": "^10.2.0",
46
+ "prettier": "^2.8.2",
47
47
  "rimraf": "^3.0.2"
48
48
  }
49
49
  }