exiftool-vendored.pl 12.31.0 → 12.39.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 (201) hide show
  1. package/LICENSE +10 -3
  2. package/bin/Changes +130 -4
  3. package/bin/MANIFEST +3 -0
  4. package/bin/META.json +1 -1
  5. package/bin/META.yml +1 -1
  6. package/bin/README +45 -45
  7. package/bin/arg_files/xmp2exif.args +2 -1
  8. package/bin/exiftool +128 -96
  9. package/bin/lib/File/RandomAccess.pm +1 -1
  10. package/bin/lib/File/RandomAccess.pod +2 -2
  11. package/bin/lib/Image/ExifTool/AES.pm +1 -1
  12. package/bin/lib/Image/ExifTool/AFCP.pm +1 -1
  13. package/bin/lib/Image/ExifTool/AIFF.pm +1 -1
  14. package/bin/lib/Image/ExifTool/APE.pm +1 -1
  15. package/bin/lib/Image/ExifTool/APP12.pm +1 -1
  16. package/bin/lib/Image/ExifTool/ASF.pm +1 -1
  17. package/bin/lib/Image/ExifTool/Apple.pm +1 -1
  18. package/bin/lib/Image/ExifTool/Audible.pm +1 -1
  19. package/bin/lib/Image/ExifTool/BMP.pm +1 -1
  20. package/bin/lib/Image/ExifTool/BPG.pm +1 -1
  21. package/bin/lib/Image/ExifTool/BZZ.pm +1 -1
  22. package/bin/lib/Image/ExifTool/BigTIFF.pm +1 -1
  23. package/bin/lib/Image/ExifTool/BuildTagLookup.pm +17 -5
  24. package/bin/lib/Image/ExifTool/CBOR.pm +331 -0
  25. package/bin/lib/Image/ExifTool/Canon.pm +171 -13
  26. package/bin/lib/Image/ExifTool/CanonCustom.pm +13 -3
  27. package/bin/lib/Image/ExifTool/CanonRaw.pm +1 -1
  28. package/bin/lib/Image/ExifTool/CanonVRD.pm +1 -1
  29. package/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
  30. package/bin/lib/Image/ExifTool/Casio.pm +1 -1
  31. package/bin/lib/Image/ExifTool/Charset.pm +3 -1
  32. package/bin/lib/Image/ExifTool/DICOM.pm +1 -1
  33. package/bin/lib/Image/ExifTool/DJI.pm +1 -1
  34. package/bin/lib/Image/ExifTool/DNG.pm +1 -1
  35. package/bin/lib/Image/ExifTool/DPX.pm +1 -1
  36. package/bin/lib/Image/ExifTool/DV.pm +1 -1
  37. package/bin/lib/Image/ExifTool/DarwinCore.pm +3 -3
  38. package/bin/lib/Image/ExifTool/DjVu.pm +1 -1
  39. package/bin/lib/Image/ExifTool/EXE.pm +1 -1
  40. package/bin/lib/Image/ExifTool/Exif.pm +118 -4
  41. package/bin/lib/Image/ExifTool/FITS.pm +1 -1
  42. package/bin/lib/Image/ExifTool/FLAC.pm +1 -1
  43. package/bin/lib/Image/ExifTool/FLIF.pm +1 -1
  44. package/bin/lib/Image/ExifTool/FLIR.pm +48 -11
  45. package/bin/lib/Image/ExifTool/Fixup.pm +1 -1
  46. package/bin/lib/Image/ExifTool/Flash.pm +1 -1
  47. package/bin/lib/Image/ExifTool/FlashPix.pm +1 -1
  48. package/bin/lib/Image/ExifTool/Font.pm +1 -1
  49. package/bin/lib/Image/ExifTool/FotoStation.pm +1 -1
  50. package/bin/lib/Image/ExifTool/FujiFilm.pm +1 -1
  51. package/bin/lib/Image/ExifTool/GE.pm +1 -1
  52. package/bin/lib/Image/ExifTool/GIF.pm +6 -2
  53. package/bin/lib/Image/ExifTool/GIMP.pm +1 -1
  54. package/bin/lib/Image/ExifTool/GPS.pm +15 -11
  55. package/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
  56. package/bin/lib/Image/ExifTool/Geotag.pm +14 -3
  57. package/bin/lib/Image/ExifTool/GoPro.pm +1 -1
  58. package/bin/lib/Image/ExifTool/H264.pm +1 -1
  59. package/bin/lib/Image/ExifTool/HP.pm +1 -1
  60. package/bin/lib/Image/ExifTool/HTML.pm +1 -1
  61. package/bin/lib/Image/ExifTool/HtmlDump.pm +1 -1
  62. package/bin/lib/Image/ExifTool/ICC_Profile.pm +97 -5
  63. package/bin/lib/Image/ExifTool/ID3.pm +1 -1
  64. package/bin/lib/Image/ExifTool/IPTC.pm +1 -1
  65. package/bin/lib/Image/ExifTool/ISO.pm +1 -1
  66. package/bin/lib/Image/ExifTool/ITC.pm +1 -1
  67. package/bin/lib/Image/ExifTool/Import.pm +1 -1
  68. package/bin/lib/Image/ExifTool/InDesign.pm +1 -1
  69. package/bin/lib/Image/ExifTool/JPEG.pm +6 -2
  70. package/bin/lib/Image/ExifTool/JPEGDigest.pm +1 -1
  71. package/bin/lib/Image/ExifTool/JSON.pm +8 -4
  72. package/bin/lib/Image/ExifTool/JVC.pm +1 -1
  73. package/bin/lib/Image/ExifTool/Jpeg2000.pm +155 -25
  74. package/bin/lib/Image/ExifTool/Kodak.pm +1 -1
  75. package/bin/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
  76. package/bin/lib/Image/ExifTool/LIF.pm +1 -1
  77. package/bin/lib/Image/ExifTool/LNK.pm +1 -1
  78. package/bin/lib/Image/ExifTool/Lang/cs.pm +1 -1
  79. package/bin/lib/Image/ExifTool/Lang/de.pm +1 -1
  80. package/bin/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
  81. package/bin/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
  82. package/bin/lib/Image/ExifTool/Lang/es.pm +1 -1
  83. package/bin/lib/Image/ExifTool/Lang/fi.pm +1 -1
  84. package/bin/lib/Image/ExifTool/Lang/fr.pm +1 -1
  85. package/bin/lib/Image/ExifTool/Lang/it.pm +1 -1
  86. package/bin/lib/Image/ExifTool/Lang/ja.pm +1 -1
  87. package/bin/lib/Image/ExifTool/Lang/ko.pm +1 -1
  88. package/bin/lib/Image/ExifTool/Lang/nl.pm +1 -1
  89. package/bin/lib/Image/ExifTool/Lang/pl.pm +1 -1
  90. package/bin/lib/Image/ExifTool/Lang/ru.pm +1 -1
  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 +1 -1
  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/MNG.pm +1 -1
  102. package/bin/lib/Image/ExifTool/MOI.pm +1 -1
  103. package/bin/lib/Image/ExifTool/MPC.pm +1 -1
  104. package/bin/lib/Image/ExifTool/MPEG.pm +1 -1
  105. package/bin/lib/Image/ExifTool/MPF.pm +1 -1
  106. package/bin/lib/Image/ExifTool/MRC.pm +1 -1
  107. package/bin/lib/Image/ExifTool/MWG.pm +1 -1
  108. package/bin/lib/Image/ExifTool/MXF.pm +1 -1
  109. package/bin/lib/Image/ExifTool/MacOS.pm +3 -3
  110. package/bin/lib/Image/ExifTool/MakerNotes.pm +1 -1
  111. package/bin/lib/Image/ExifTool/Matroska.pm +9 -5
  112. package/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
  113. package/bin/lib/Image/ExifTool/Minolta.pm +1 -1
  114. package/bin/lib/Image/ExifTool/MinoltaRaw.pm +1 -1
  115. package/bin/lib/Image/ExifTool/Motorola.pm +1 -1
  116. package/bin/lib/Image/ExifTool/Nikon.pm +1895 -74
  117. package/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
  118. package/bin/lib/Image/ExifTool/NikonCustom.pm +523 -6
  119. package/bin/lib/Image/ExifTool/NikonSettings.pm +150 -87
  120. package/bin/lib/Image/ExifTool/Nintendo.pm +1 -1
  121. package/bin/lib/Image/ExifTool/OOXML.pm +1 -1
  122. package/bin/lib/Image/ExifTool/Ogg.pm +1 -1
  123. package/bin/lib/Image/ExifTool/Olympus.pm +6 -2
  124. package/bin/lib/Image/ExifTool/OpenEXR.pm +5 -3
  125. package/bin/lib/Image/ExifTool/Opus.pm +1 -1
  126. package/bin/lib/Image/ExifTool/Other.pm +1 -1
  127. package/bin/lib/Image/ExifTool/PCX.pm +1 -1
  128. package/bin/lib/Image/ExifTool/PDF.pm +6 -4
  129. package/bin/lib/Image/ExifTool/PGF.pm +1 -1
  130. package/bin/lib/Image/ExifTool/PICT.pm +1 -1
  131. package/bin/lib/Image/ExifTool/PLIST.pm +1 -1
  132. package/bin/lib/Image/ExifTool/PLUS.pm +1 -1
  133. package/bin/lib/Image/ExifTool/PNG.pm +29 -8
  134. package/bin/lib/Image/ExifTool/PPM.pm +1 -1
  135. package/bin/lib/Image/ExifTool/PSP.pm +1 -1
  136. package/bin/lib/Image/ExifTool/Palm.pm +1 -1
  137. package/bin/lib/Image/ExifTool/Panasonic.pm +3 -3
  138. package/bin/lib/Image/ExifTool/PanasonicRaw.pm +1 -1
  139. package/bin/lib/Image/ExifTool/Parrot.pm +1 -1
  140. package/bin/lib/Image/ExifTool/Pentax.pm +4 -2
  141. package/bin/lib/Image/ExifTool/PhaseOne.pm +1 -1
  142. package/bin/lib/Image/ExifTool/PhotoCD.pm +1 -1
  143. package/bin/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
  144. package/bin/lib/Image/ExifTool/Photoshop.pm +1 -1
  145. package/bin/lib/Image/ExifTool/PostScript.pm +1 -1
  146. package/bin/lib/Image/ExifTool/PrintIM.pm +1 -1
  147. package/bin/lib/Image/ExifTool/Qualcomm.pm +1 -1
  148. package/bin/lib/Image/ExifTool/QuickTime.pm +25 -4
  149. package/bin/lib/Image/ExifTool/QuickTimeStream.pl +125 -81
  150. package/bin/lib/Image/ExifTool/README +9 -2
  151. package/bin/lib/Image/ExifTool/RIFF.pm +1 -1
  152. package/bin/lib/Image/ExifTool/RSRC.pm +1 -1
  153. package/bin/lib/Image/ExifTool/RTF.pm +1 -1
  154. package/bin/lib/Image/ExifTool/Radiance.pm +1 -1
  155. package/bin/lib/Image/ExifTool/Rawzor.pm +1 -1
  156. package/bin/lib/Image/ExifTool/Real.pm +1 -1
  157. package/bin/lib/Image/ExifTool/Reconyx.pm +1 -1
  158. package/bin/lib/Image/ExifTool/Red.pm +1 -1
  159. package/bin/lib/Image/ExifTool/Ricoh.pm +1 -1
  160. package/bin/lib/Image/ExifTool/Samsung.pm +1 -1
  161. package/bin/lib/Image/ExifTool/Sanyo.pm +1 -1
  162. package/bin/lib/Image/ExifTool/Scalado.pm +1 -1
  163. package/bin/lib/Image/ExifTool/Shift.pl +3 -1
  164. package/bin/lib/Image/ExifTool/Shortcuts.pm +1 -1
  165. package/bin/lib/Image/ExifTool/Sigma.pm +1 -1
  166. package/bin/lib/Image/ExifTool/SigmaRaw.pm +1 -1
  167. package/bin/lib/Image/ExifTool/Sony.pm +34 -14
  168. package/bin/lib/Image/ExifTool/SonyIDC.pm +1 -1
  169. package/bin/lib/Image/ExifTool/Stim.pm +1 -1
  170. package/bin/lib/Image/ExifTool/TagInfoXML.pm +11 -6
  171. package/bin/lib/Image/ExifTool/TagLookup.pm +6589 -5877
  172. package/bin/lib/Image/ExifTool/TagNames.pod +1681 -65
  173. package/bin/lib/Image/ExifTool/Text.pm +1 -1
  174. package/bin/lib/Image/ExifTool/Theora.pm +1 -1
  175. package/bin/lib/Image/ExifTool/Torrent.pm +1 -1
  176. package/bin/lib/Image/ExifTool/Unknown.pm +1 -1
  177. package/bin/lib/Image/ExifTool/VCard.pm +1 -1
  178. package/bin/lib/Image/ExifTool/Validate.pm +1 -1
  179. package/bin/lib/Image/ExifTool/Vorbis.pm +1 -1
  180. package/bin/lib/Image/ExifTool/WTV.pm +1 -1
  181. package/bin/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
  182. package/bin/lib/Image/ExifTool/WriteExif.pl +1 -1
  183. package/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
  184. package/bin/lib/Image/ExifTool/WritePDF.pl +1 -1
  185. package/bin/lib/Image/ExifTool/WritePNG.pl +30 -10
  186. package/bin/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
  187. package/bin/lib/Image/ExifTool/WritePostScript.pl +1 -1
  188. package/bin/lib/Image/ExifTool/WriteQuickTime.pl +12 -1
  189. package/bin/lib/Image/ExifTool/WriteXMP.pl +11 -12
  190. package/bin/lib/Image/ExifTool/Writer.pl +56 -10
  191. package/bin/lib/Image/ExifTool/XMP.pm +164 -52
  192. package/bin/lib/Image/ExifTool/XMP2.pl +6 -3
  193. package/bin/lib/Image/ExifTool/XMPStruct.pl +4 -2
  194. package/bin/lib/Image/ExifTool/ZIP.pm +10 -2
  195. package/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
  196. package/bin/lib/Image/ExifTool/iWork.pm +1 -1
  197. package/bin/lib/Image/ExifTool.pm +98 -23
  198. package/bin/lib/Image/ExifTool.pod +76 -67
  199. package/bin/perl-Image-ExifTool.spec +43 -43
  200. package/bin/pp_build_exe.args +6 -5
  201. 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.31';
32
+ $VERSION = '12.39';
33
33
  $RELEASE = '';
34
34
  @ISA = qw(Exporter);
35
35
  %EXPORT_TAGS = (
@@ -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',
@@ -808,6 +811,7 @@ my %moduleName = (
808
811
  DEX => 0,
809
812
  DOCX => 'OOXML',
810
813
  DCX => 0,
814
+ DIR => 0,
811
815
  DR4 => 'CanonVRD',
812
816
  DSS => 'Olympus',
813
817
  DWF => 0,
@@ -908,7 +912,7 @@ $testLen = 1024; # number of bytes to read when testing for magic number
908
912
  GZIP => '\x1f\x8b\x08',
909
913
  HDR => '#\?(RADIANCE|RGBE)\x0a',
910
914
  HTML => '(\xef\xbb\xbf)?\s*(?i)<(!DOCTYPE\s+HTML|HTML|\?xml)', # (case insensitive)
911
- 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}',
912
916
  IND => '\x06\x06\xed\xf5\xd8\x1d\x46\xe5\xbd\x31\xef\xe7\xfe\x74\xb7\x1d',
913
917
  # ISO => signature is at byte 32768
914
918
  ITC => '.{4}itch',
@@ -1155,14 +1159,14 @@ my %systemTagsNotes = (
1155
1159
  Groups => { 1 => 'System', 2 => 'Other' },
1156
1160
  Notes => q{
1157
1161
  file name without extension. Not generated unless specifically requested or
1158
- the L<RequestAll|../ExifTool.html#RequestAll> API option is set
1162
+ the API L<RequestAll|../ExifTool.html#RequestAll> option is set
1159
1163
  },
1160
1164
  },
1161
1165
  FilePath => {
1162
1166
  Groups => { 1 => 'System', 2 => 'Other' },
1163
1167
  Notes => q{
1164
1168
  absolute path of source file. Not generated unless specifically requested or
1165
- the L<RequestAll|../ExifTool.html#RequestAll> API option is set. Does not support Windows Unicode file
1169
+ the API L<RequestAll|../ExifTool.html#RequestAll> option is set. Does not support Windows Unicode file
1166
1170
  names
1167
1171
  },
1168
1172
  },
@@ -1185,7 +1189,7 @@ my %systemTagsNotes = (
1185
1189
  sequence number for each source file when extracting or copying information,
1186
1190
  including files that fail the -if condition of the command-line application,
1187
1191
  beginning at 0 for the first file. Not generated unless specifically
1188
- requested or the L<RequestAll|../ExifTool.html#RequestAll> API option is set
1192
+ requested or the API L<RequestAll|../ExifTool.html#RequestAll> option is set
1189
1193
  },
1190
1194
  },
1191
1195
  FileSize => {
@@ -1207,6 +1211,18 @@ my %systemTagsNotes = (
1207
1211
  },
1208
1212
  PrintConv => \&ConvertFileSize,
1209
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
+ },
1210
1226
  FileType => {
1211
1227
  Groups => { 2 => 'Other' },
1212
1228
  Notes => q{
@@ -1258,7 +1274,7 @@ my %systemTagsNotes = (
1258
1274
  the filesystem creation date/time. Windows/Mac only. In Windows, the file
1259
1275
  creation date/time is preserved by default when writing if Win32API::File
1260
1276
  and Win32::API are available. On Mac, this tag is extracted only if it or
1261
- the MacOS group is specifically requested or the L<RequestAll|../ExifTool.html#RequestAll> API option is
1277
+ the MacOS group is specifically requested or the API L<RequestAll|../ExifTool.html#RequestAll> option is
1262
1278
  set to 2 or higher. Requires "setfile" for writing on Mac, which may be
1263
1279
  installed by typing C<xcode-select --install> in the Terminal
1264
1280
  },
@@ -1649,7 +1665,7 @@ my %systemTagsNotes = (
1649
1665
  sub-sampling values to generate the value of this tag. The result is
1650
1666
  compared to known values in an attempt to deduce the originating software
1651
1667
  based only on the JPEG image data. For performance reasons, this tag is
1652
- generated only if specifically requested or the L<RequestAll|../ExifTool.html#RequestAll> API option is set
1668
+ generated only if specifically requested or the API L<RequestAll|../ExifTool.html#RequestAll> option is set
1653
1669
  to 3 or higher
1654
1670
  },
1655
1671
  },
@@ -1657,14 +1673,14 @@ my %systemTagsNotes = (
1657
1673
  Notes => q{
1658
1674
  an estimate of the IJG JPEG quality setting for the image, calculated from
1659
1675
  the quantization tables. For performance reasons, this tag is generated
1660
- only if specifically requested or the L<RequestAll|../ExifTool.html#RequestAll> API option is set to 3 or
1676
+ only if specifically requested or the API L<RequestAll|../ExifTool.html#RequestAll> option is set to 3 or
1661
1677
  higher
1662
1678
  },
1663
1679
  },
1664
1680
  JPEGImageLength => {
1665
1681
  Notes => q{
1666
1682
  byte length of JPEG image without metadata. For performance reasons, this
1667
- tag is generated only if specifically requested or the L<RequestAll|../ExifTool.html#RequestAll> API option
1683
+ tag is generated only if specifically requested or the API L<RequestAll|../ExifTool.html#RequestAll> option
1668
1684
  is set to 3 or higher
1669
1685
  },
1670
1686
  },
@@ -1674,7 +1690,7 @@ my %systemTagsNotes = (
1674
1690
  Notes => q{
1675
1691
  the current date/time. Useful when setting the tag values, eg.
1676
1692
  C<"-modifydate<now">. Not generated unless specifically requested or the
1677
- L<RequestAll|../ExifTool.html#RequestAll> API option is set
1693
+ API L<RequestAll|../ExifTool.html#RequestAll> option is set
1678
1694
  },
1679
1695
  PrintConv => '$self->ConvertDateTime($val)',
1680
1696
  },
@@ -1685,7 +1701,7 @@ my %systemTagsNotes = (
1685
1701
  YYYYmmdd-HHMM-SSNN-PPPP-RRRRRRRRRRRR, where Y=year, m=month, d=day, H=hour,
1686
1702
  M=minute, S=second, N=file sequence number in hex, P=process ID in hex, and
1687
1703
  R=random hex number; without dashes with the -n option. Not generated
1688
- unless specifically requested or the L<RequestAll|../ExifTool.html#RequestAll> API option is set
1704
+ unless specifically requested or the API L<RequestAll|../ExifTool.html#RequestAll> option is set
1689
1705
  },
1690
1706
  PrintConv => '$val =~ s/(.{8})(.{4})(.{4})(.{4})/$1-$2-$3-$4-/; $val',
1691
1707
  },
@@ -1778,7 +1794,7 @@ my %systemTagsNotes = (
1778
1794
  Groups => { 0 => 'Trailer' },
1779
1795
  Notes => q{
1780
1796
  the full JPEG trailer data block. Extracted only if specifically requested
1781
- or the RequestAll API option is set to 3 or higher
1797
+ or the API RequestAll option is set to 3 or higher
1782
1798
  },
1783
1799
  Writable => 1,
1784
1800
  Protected => 1,
@@ -2319,6 +2335,7 @@ sub ClearOptions($)
2319
2335
  Password => undef, # password for password-protected PDF documents
2320
2336
  PrintConv => 1, # flag to enable print conversion
2321
2337
  QuickTimeHandler => 1, # flag to add mdir Handler to newly created Meta box
2338
+ QuickTimePad=> undef, # flag to preserve padding of QuickTime CR3 tags
2322
2339
  QuickTimeUTC=> undef, # assume that QuickTime date/time tags are stored as UTC
2323
2340
  RequestAll => undef, # extract all tags that must be specifically requested
2324
2341
  RequestTags => undef, # extra tags to request (on top of those in the tag list)
@@ -2368,7 +2385,7 @@ sub ExtractInfo($;@)
2368
2385
  my $fast = $$options{FastScan} || 0;
2369
2386
  my $req = $$self{REQ_TAG_LOOKUP};
2370
2387
  my $reqAll = $$options{RequestAll} || 0;
2371
- my (%saveOptions, $reEntry, $rsize, $type, @startTime, $saveOrder, $isDir);
2388
+ my (%saveOptions, $reEntry, $rsize, $zid, $type, @startTime, $saveOrder, $isDir);
2372
2389
 
2373
2390
  # check for internal ReEntry option to allow recursive calls to ExtractInfo
2374
2391
  if (ref $_[1] eq 'HASH' and $_[1]{ReEntry} and
@@ -2460,6 +2477,17 @@ sub ExtractInfo($;@)
2460
2477
  }
2461
2478
  # get size of resource fork on Mac OS
2462
2479
  $rsize = -s "$filename/..namedfork/rsrc" if $^O eq 'darwin' and not $$self{IN_RESOURCE};
2480
+ # check to see if Zone.Identifier file exists in Windows
2481
+ if ($^O eq 'MSWin32' and eval { require Win32API::File }) {
2482
+ my $wattr;
2483
+ my $zfile = "${filename}:Zone.Identifier";
2484
+ if ($self->EncodeFileName($zfile)) {
2485
+ $wattr = eval { Win32API::File::GetFileAttributesW($zfile) };
2486
+ } else {
2487
+ $wattr = eval { Win32API::File::GetFileAttributes($zfile) };
2488
+ }
2489
+ $zid = 1 unless $wattr == Win32API::File::INVALID_FILE_ATTRIBUTES();
2490
+ }
2463
2491
  }
2464
2492
  # open the file
2465
2493
  if ($self->Open(\*EXIFTOOL_FILE, $filename)) {
@@ -2502,6 +2530,7 @@ sub ExtractInfo($;@)
2502
2530
  my $fileSize = $stat[7];
2503
2531
  $self->FoundTag('FileSize', $stat[7]) if defined $stat[7];
2504
2532
  $self->FoundTag('ResourceForkSize', $rsize) if $rsize;
2533
+ $self->FoundTag('ZoneIdentifier', 'Exists') if $zid;
2505
2534
  $self->FoundTag('FileModifyDate', $stat[9]) if defined $stat[9];
2506
2535
  $self->FoundTag('FileAccessDate', $stat[8]) if defined $stat[8];
2507
2536
  my $cTag = $^O eq 'MSWin32' ? 'FileCreateDate' : 'FileInodeChangeDate';
@@ -4062,8 +4091,9 @@ sub Open($*$;$)
4062
4091
  my ($self, $fh, $file, $mode) = @_;
4063
4092
 
4064
4093
  $file =~ s/^([\s&])/.\/$1/; # protect leading whitespace or ampersand
4065
- # default to read mode ('<') unless input is a pipe
4066
- $mode = ($file =~ /\|$/ ? '' : '<') unless $mode;
4094
+ # default to read mode ('<') unless input is a trusted pipe
4095
+ $mode = (($file =~ /\|$/ and $$self{TRUST_PIPE}) ? '' : '<') unless $mode;
4096
+ delete $$self{TRUST_PIPE};
4067
4097
  if ($mode) {
4068
4098
  if ($self->EncodeFileName($file)) {
4069
4099
  # handle Windows Unicode file name
@@ -4121,7 +4151,9 @@ sub Exists($$)
4121
4151
  return 0 unless $wh;
4122
4152
  eval { Win32API::File::CloseHandle($wh) };
4123
4153
  } else {
4124
- return -e $file;
4154
+ # (named pipes already exist, but we pretend that they don't
4155
+ # so we will be able to write them, so test with for pipe -p)
4156
+ return(-e $file and not -p $file);
4125
4157
  }
4126
4158
  return 1;
4127
4159
  }
@@ -4224,6 +4256,7 @@ sub ParseArguments($;@)
4224
4256
  $$self{REQ_TAG_LOOKUP} = { };
4225
4257
  $$self{EXCL_TAG_LOOKUP} = { };
4226
4258
  $$self{IO_TAG_LIST} = undef;
4259
+ delete $$self{EXCL_XMP_LOOKUP};
4227
4260
 
4228
4261
  # handle our input arguments
4229
4262
  while (@_) {
@@ -4307,7 +4340,11 @@ sub ParseArguments($;@)
4307
4340
  # generate lookup for excluded tags
4308
4341
  if ($$options{Exclude}) {
4309
4342
  foreach (@{$$options{Exclude}}) {
4310
- /([-\w]+)#?$/ and $$self{EXCL_TAG_LOOKUP}{lc($1)} = 1;
4343
+ /([-\w]+)#?$/ and $$self{EXCL_TAG_LOOKUP}{lc $1} = 1;
4344
+ if (/(xmp-.*:[-\w]+)#?/i) {
4345
+ $$self{EXCL_XMP_LOOKUP} or $$self{EXCL_XMP_LOOKUP} = { };
4346
+ $$self{EXCL_XMP_LOOKUP}{lc $1} = 1;
4347
+ }
4311
4348
  }
4312
4349
  # exclude list is used only for EXCL_TAG_LOOKUP when TAGS_FROM_FILE is set
4313
4350
  undef $$options{Exclude} if $$self{TAGS_FROM_FILE};
@@ -5649,6 +5686,38 @@ sub ConvertDateTime($$)
5649
5686
  unshift @a, 1 while @a < 3; # add month and day if necessary
5650
5687
  unshift @a, 0 while @a < 6; # add h,m,s if necessary
5651
5688
  $a[4] -= 1; # base month is 1
5689
+ # parse our %f fractional seconds first (and round up seconds if necessary)
5690
+ # - if there are multiple %f codes, they all get the same number of digits as the first
5691
+ if ($fmt =~ /%\.?(\d*)f/) {
5692
+ my $dig = $1;
5693
+ my $frac = $date =~ /(\.\d+)/ ? $1 : '';
5694
+ if (not $frac) {
5695
+ $frac = '.' . ('0' x $dig) if $dig;
5696
+ } elsif (length $dig) {
5697
+ if ($dig+1 > length($frac)) {
5698
+ $frac .= '0' x ($dig+1-length($frac));
5699
+ } elsif ($dig+1 < length($frac)) {
5700
+ $frac = sprintf("%.${dig}f", $frac);
5701
+ while ($frac =~ s/^(\d)// and $1 ne '0') {
5702
+ # this is a pain, but we must round up to the next second
5703
+ ++$a[0] < 60 and last;
5704
+ $a[0] = 0;
5705
+ ++$a[1] < 60 and last;
5706
+ $a[1] = 0;
5707
+ ++$a[2] < 24 and last;
5708
+ $a[2] = 0;
5709
+ require 'Image/ExifTool/Shift.pl';
5710
+ ++$a[3] <= DaysInMonth($a[4]+1, $a[5]) and last;
5711
+ $a[3] = 1;
5712
+ ++$a[4] < 12 and last;
5713
+ $a[4] = 0;
5714
+ ++$a[5];
5715
+ last; # (this was a goto)
5716
+ }
5717
+ }
5718
+ }
5719
+ $fmt =~ s/(^|[^%])((%%)*)%\.?\d*f/$1$2$frac/g;
5720
+ }
5652
5721
  # parse %z and %s ourself (to handle time zones properly)
5653
5722
  if ($fmt =~ /%[sz]/) {
5654
5723
  # use system time zone unless otherwise specified
@@ -5963,6 +6032,8 @@ sub IdentifyTrailer($;$)
5963
6032
  $type = 'Samsung';
5964
6033
  } elsif ($buff =~ /8db42d694ccc418790edff439fe026bf$/s) {
5965
6034
  $type = 'Insta360';
6035
+ } elsif ($buff =~ m(\0{6}/NIKON APP$)) {
6036
+ $type = 'NikonApp';
5966
6037
  }
5967
6038
  last;
5968
6039
  }
@@ -5998,6 +6069,9 @@ sub ProcessTrailers($$)
5998
6069
  if ($dirName eq 'Insta360') {
5999
6070
  require 'Image/ExifTool/QuickTimeStream.pl';
6000
6071
  $proc = 'Image::ExifTool::QuickTime::ProcessInsta360';
6072
+ } elsif ($dirName eq 'NikonApp') {
6073
+ require Image::ExifTool::Nikon;
6074
+ $proc = 'Image::ExifTool::Nikon::ProcessNikonApp';
6001
6075
  } else {
6002
6076
  require "Image/ExifTool/$dirName.pm";
6003
6077
  $proc = "Image::ExifTool::${dirName}::Process$dirName";
@@ -6249,7 +6323,7 @@ sub ProcessJPEG($$)
6249
6323
  my $markerName = JpegMarkerName($marker);
6250
6324
  $$path[$pn] = $markerName;
6251
6325
  # issue warning if we skipped some garbage
6252
- if ($skipped and not $foundSOS) {
6326
+ if ($skipped and not $foundSOS and $markerName ne 'SOS') {
6253
6327
  $self->Warn("Skipped unknown $skipped bytes after JPEG $markerName segment", 1);
6254
6328
  if ($htmlDump) {
6255
6329
  $self->HDump($nextSegPos-4-$skipped, $skipped, "[unknown $skipped bytes]", undef, 0x08);
@@ -6467,7 +6541,7 @@ sub ProcessJPEG($$)
6467
6541
  next;
6468
6542
  } elsif ($marker == 0xdb and length($$segDataPt) and # DQT
6469
6543
  # save the DQT data only if JPEGDigest has been requested
6470
- # (Note: since we aren't checking the RequestAll API option here, the application
6544
+ # (Note: since we aren't checking the API RequestAll option here, the application
6471
6545
  # must use the RequestTags option to generate these tags if they have not been
6472
6546
  # specifically requested. The reason is that there is too much overhead involved
6473
6547
  # in the calculation of this tag to make this worth the CPU time.)
@@ -8708,6 +8782,7 @@ sub ProcessBinaryData($$$)
8708
8782
  # read value now if necessary
8709
8783
  unless (defined $val and not $$tagInfo{SubDirectory}) {
8710
8784
  $val = ReadValue($dataPt, $entry+$offset, $format, $count, $more, \$rational);
8785
+ next unless defined $val;
8711
8786
  $mask = $$tagInfo{Mask};
8712
8787
  $val = ($val & $mask) >> $$tagInfo{BitShift} if $mask;
8713
8788
  }
@@ -8809,8 +8884,8 @@ until ($Image::ExifTool::noConfig) {
8809
8884
  $file = $config;
8810
8885
  }
8811
8886
  # also check executable directory unless path is absolute
8812
- $exePath = $0 unless defined $exePath; # (undocumented $exePath setting)
8813
- -r $file or $config =~ /^\// or $file = ($exePath =~ /(.*[\\\/])/ ? $1 : './') . $config;
8887
+ $exeDir = ($0 =~ /(.*)[\\\/]/) ? $1 : '.' unless defined $exeDir;
8888
+ -r $file or $config =~ /^\// or $file = "$exeDir/$config";
8814
8889
  unless (-r $file) {
8815
8890
  warn("Config file not found\n") if defined $Image::ExifTool::configFile;
8816
8891
  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
  ----------------------+----------------------+---------------------
@@ -860,6 +860,14 @@ commonly found in samples from other software, and it has been reported that
860
860
  Apple QuickTime Player and Photos.apps will ignore ItemList tags if this is
861
861
  missing. Default is 1.
862
862
 
863
+ =item QuickTimePad
864
+
865
+ Flag to preserve the padding of some QuickTime atoms when writing.
866
+ QuickTime-based Canon CR3 files pad the values of container atoms with null
867
+ bytes. This padding is removed by default when the file is rewritten, but
868
+ setting this option to 1 adds padding to preserve the original atom size if
869
+ the new atom would be smaller than the original. Default is undef.
870
+
863
871
  =item QuickTimeUTC
864
872
 
865
873
  Flag set to assume that QuickTime date/time values are stored as UTC,
@@ -1236,7 +1244,7 @@ The following ExifTool options are effective in the call to L</WriteInfo>:
1236
1244
 
1237
1245
  ByteOrder, Charset, CharsetEXIF, CharsetFileName, CharsetIPTC, Compact,
1238
1246
  Compress, FixBase, IgnoreMinorErrors, NoMultiExif, NoPDFList, Password,
1239
- QuickTimeHandler, Verbose and WriteMode.
1247
+ QuickTimeHandler, QuickTimePad, Verbose and WriteMode.
1240
1248
 
1241
1249
  =head2 GetTagList
1242
1250
 
@@ -2300,9 +2308,9 @@ Torrent, Trailer, UserParam, VCard, Vorbis, WTV, XML, XMP, ZIP
2300
2308
  =item Family 1 (Specific Location):
2301
2309
 
2302
2310
  AC3, AFCP, AIFF, APE, ASF, AVI1, Adobe, AdobeCM, AdobeDNG, Apple, Audible,
2303
- CIFF, CameraIFD, Canon, CanonCustom, CanonRaw, CanonVRD, Casio, Chapter#,
2304
- Composite, DICOM, DJI, DNG, DV, DjVu, DjVu-Meta, Ducky, EPPIM, EXE, EXIF,
2305
- ExifIFD, ExifTool, FITS, FLAC, FLIR, File, Flash, FlashPix, Font,
2311
+ CBOR, CIFF, CameraIFD, Canon, CanonCustom, CanonRaw, CanonVRD, Casio,
2312
+ Chapter#, Composite, DICOM, DJI, DNG, DV, DjVu, DjVu-Meta, Ducky, EPPIM,
2313
+ EXE, EXIF, ExifIFD, ExifTool, FITS, FLAC, FLIR, File, Flash, FlashPix, Font,
2306
2314
  FotoStation, FujiFilm, FujiIFD, GE, GIF, GIMP, GPS, GeoTiff, GlobParamIFD,
2307
2315
  GoPro, GraphConv, H264, HP, HTC, HTML, HTML-dc, HTML-ncc, HTML-office,
2308
2316
  HTML-prod, HTML-vw96, HTTP-equiv, ICC-chrm, ICC-clrt, ICC-header, ICC-meas,
@@ -2317,25 +2325,26 @@ MIE-Orient, MIE-Preview, MIE-Thumbnail, MIE-UTM, MIE-Unknown, MIE-Video,
2317
2325
  MIFF, MNG, MOBI, MOI, MPC, MPEG, MPF0, MPImage, MS-DOC, MXF, MacOS,
2318
2326
  MakerNotes, MakerUnknown, Matroska, MediaJukebox, Meta, MetaIFD, Microsoft,
2319
2327
  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
2328
+ NikonScan, NikonSettings, NineEdits, Nintendo, Ocad, Ogg, Olympus, OpenEXR,
2329
+ Opus, PDF, PICT, PNG, PNG-pHYs, PSP, Palm, Panasonic, PanasonicRaw, Pentax,
2330
+ PhaseOne, PhotoCD, PhotoMechanic, Photoshop, PictureInfo, PostScript,
2331
+ PreviewIFD, PrintIM, ProfileIFD, Qualcomm, QuickTime, RAF, RAF2, RIFF,
2332
+ RMETA, RSRC, RTF, Radiance, Rawzor, Real, Real-CONT, Real-MDPR, Real-PROP,
2333
+ Real-RA3, Real-RA4, Real-RA5, Real-RJMD, Reconyx, Red, Ricoh, SPIFF, SR2,
2334
+ SR2DataIFD, SR2SubIFD, SRF#, SVG, Samsung, Sanyo, Scalado, Sigma, SigmaRaw,
2335
+ Sony, SonyIDC, Stim, SubIFD, System, Theora, Torrent, Track#, UserData,
2336
+ UserParam, VCalendar, VCard, Version0, Vorbis, WTV, XML, XMP, XMP-DICOM,
2337
+ XMP-Device, XMP-GAudio, XMP-GDepth, XMP-GFocus, XMP-GImage, XMP-GPano,
2338
+ XMP-GSpherical, XMP-LImage, XMP-MP, XMP-MP1, XMP-PixelLive, XMP-aas,
2339
+ XMP-acdsee, XMP-album, XMP-apple-fi, XMP-aux, XMP-cc, XMP-cell,
2340
+ XMP-creatorAtom, XMP-crs, XMP-dc, XMP-dex, XMP-digiKam, XMP-drone-dji,
2341
+ XMP-dwc, XMP-exif, XMP-exifEX, XMP-expressionmedia, XMP-extensis, XMP-fpv,
2342
+ XMP-getty, XMP-ics, XMP-iptcCore, XMP-iptcExt, XMP-lr, XMP-mediapro,
2343
+ XMP-microsoft, XMP-mwg-coll, XMP-mwg-kw, XMP-mwg-rs, XMP-pdf, XMP-pdfx,
2344
+ XMP-photomech, XMP-photoshop, XMP-plus, XMP-pmi, XMP-prism, XMP-prl,
2345
+ XMP-prm, XMP-pur, XMP-rdf, XMP-swf, XMP-tiff, XMP-x, XMP-xmp, XMP-xmpBJ,
2346
+ XMP-xmpDM, XMP-xmpMM, XMP-xmpNote, XMP-xmpPLUS, XMP-xmpRights, XMP-xmpTPg,
2347
+ ZIP, iTunes
2339
2348
 
2340
2349
  =item Family 2 (Category):
2341
2350
 
@@ -2734,7 +2743,7 @@ specified by the L</Charset> option.
2734
2743
 
2735
2744
  =head1 AUTHOR
2736
2745
 
2737
- Copyright 2003-2021, Phil Harvey
2746
+ Copyright 2003-2022, Phil Harvey
2738
2747
 
2739
2748
  This library is free software; you can redistribute it and/or modify it
2740
2749
  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.31
3
+ Version: 12.39
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
  ----------------------+----------------------+---------------------