exiftool-vendored.exe 13.0.0 → 13.17.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 (208) hide show
  1. package/bin/exiftool.exe +0 -0
  2. package/bin/exiftool_files/exiftool.pl +169 -65
  3. package/bin/exiftool_files/lib/File/RandomAccess.pm +1 -1
  4. package/bin/exiftool_files/lib/File/RandomAccess.pod +2 -2
  5. package/bin/exiftool_files/lib/Image/ExifTool/AAC.pm +1 -1
  6. package/bin/exiftool_files/lib/Image/ExifTool/AES.pm +1 -1
  7. package/bin/exiftool_files/lib/Image/ExifTool/AFCP.pm +6 -6
  8. package/bin/exiftool_files/lib/Image/ExifTool/AIFF.pm +2 -2
  9. package/bin/exiftool_files/lib/Image/ExifTool/APE.pm +2 -2
  10. package/bin/exiftool_files/lib/Image/ExifTool/APP12.pm +1 -1
  11. package/bin/exiftool_files/lib/Image/ExifTool/ASF.pm +2 -2
  12. package/bin/exiftool_files/lib/Image/ExifTool/Apple.pm +11 -9
  13. package/bin/exiftool_files/lib/Image/ExifTool/Audible.pm +1 -1
  14. package/bin/exiftool_files/lib/Image/ExifTool/BMP.pm +1 -1
  15. package/bin/exiftool_files/lib/Image/ExifTool/BPG.pm +1 -1
  16. package/bin/exiftool_files/lib/Image/ExifTool/BZZ.pm +1 -1
  17. package/bin/exiftool_files/lib/Image/ExifTool/BigTIFF.pm +1 -1
  18. package/bin/exiftool_files/lib/Image/ExifTool/BuildTagLookup.pm +46 -26
  19. package/bin/exiftool_files/lib/Image/ExifTool/CBOR.pm +5 -2
  20. package/bin/exiftool_files/lib/Image/ExifTool/Canon.pm +68 -28
  21. package/bin/exiftool_files/lib/Image/ExifTool/CanonCustom.pm +1 -1
  22. package/bin/exiftool_files/lib/Image/ExifTool/CanonRaw.pm +1 -1
  23. package/bin/exiftool_files/lib/Image/ExifTool/CanonVRD.pm +1 -1
  24. package/bin/exiftool_files/lib/Image/ExifTool/CaptureOne.pm +1 -1
  25. package/bin/exiftool_files/lib/Image/ExifTool/Casio.pm +1 -1
  26. package/bin/exiftool_files/lib/Image/ExifTool/Charset.pm +1 -1
  27. package/bin/exiftool_files/lib/Image/ExifTool/DICOM.pm +1 -1
  28. package/bin/exiftool_files/lib/Image/ExifTool/DJI.pm +196 -30
  29. package/bin/exiftool_files/lib/Image/ExifTool/DNG.pm +1 -1
  30. package/bin/exiftool_files/lib/Image/ExifTool/DPX.pm +1 -1
  31. package/bin/exiftool_files/lib/Image/ExifTool/DV.pm +1 -1
  32. package/bin/exiftool_files/lib/Image/ExifTool/DarwinCore.pm +1 -1
  33. package/bin/exiftool_files/lib/Image/ExifTool/DjVu.pm +1 -1
  34. package/bin/exiftool_files/lib/Image/ExifTool/EXE.pm +138 -33
  35. package/bin/exiftool_files/lib/Image/ExifTool/Exif.pm +29 -16
  36. package/bin/exiftool_files/lib/Image/ExifTool/FITS.pm +3 -3
  37. package/bin/exiftool_files/lib/Image/ExifTool/FLAC.pm +1 -1
  38. package/bin/exiftool_files/lib/Image/ExifTool/FLIF.pm +3 -3
  39. package/bin/exiftool_files/lib/Image/ExifTool/FLIR.pm +1 -1
  40. package/bin/exiftool_files/lib/Image/ExifTool/Fixup.pm +1 -1
  41. package/bin/exiftool_files/lib/Image/ExifTool/Flash.pm +1 -1
  42. package/bin/exiftool_files/lib/Image/ExifTool/FlashPix.pm +17 -21
  43. package/bin/exiftool_files/lib/Image/ExifTool/Font.pm +2 -2
  44. package/bin/exiftool_files/lib/Image/ExifTool/FotoStation.pm +1 -1
  45. package/bin/exiftool_files/lib/Image/ExifTool/FujiFilm.pm +1 -1
  46. package/bin/exiftool_files/lib/Image/ExifTool/GE.pm +1 -1
  47. package/bin/exiftool_files/lib/Image/ExifTool/GIF.pm +144 -93
  48. package/bin/exiftool_files/lib/Image/ExifTool/GIMP.pm +1 -1
  49. package/bin/exiftool_files/lib/Image/ExifTool/GM.pm +1 -1
  50. package/bin/exiftool_files/lib/Image/ExifTool/GPS.pm +34 -30
  51. package/bin/exiftool_files/lib/Image/ExifTool/GeoTiff.pm +1 -1
  52. package/bin/exiftool_files/lib/Image/ExifTool/Geolocation.dat +0 -0
  53. package/bin/exiftool_files/lib/Image/ExifTool/Geolocation.pm +19 -9
  54. package/bin/exiftool_files/lib/Image/ExifTool/Geotag.pm +46 -12
  55. package/bin/exiftool_files/lib/Image/ExifTool/GoPro.pm +120 -8
  56. package/bin/exiftool_files/lib/Image/ExifTool/H264.pm +1 -1
  57. package/bin/exiftool_files/lib/Image/ExifTool/HP.pm +2 -2
  58. package/bin/exiftool_files/lib/Image/ExifTool/HTML.pm +1 -1
  59. package/bin/exiftool_files/lib/Image/ExifTool/HtmlDump.pm +1 -1
  60. package/bin/exiftool_files/lib/Image/ExifTool/ICC_Profile.pm +81 -2
  61. package/bin/exiftool_files/lib/Image/ExifTool/ICO.pm +1 -1
  62. package/bin/exiftool_files/lib/Image/ExifTool/ID3.pm +8 -8
  63. package/bin/exiftool_files/lib/Image/ExifTool/IPTC.pm +10 -7
  64. package/bin/exiftool_files/lib/Image/ExifTool/ISO.pm +1 -1
  65. package/bin/exiftool_files/lib/Image/ExifTool/ITC.pm +1 -1
  66. package/bin/exiftool_files/lib/Image/ExifTool/Import.pm +5 -4
  67. package/bin/exiftool_files/lib/Image/ExifTool/InDesign.pm +2 -2
  68. package/bin/exiftool_files/lib/Image/ExifTool/InfiRay.pm +1 -1
  69. package/bin/exiftool_files/lib/Image/ExifTool/JPEG.pm +38 -5
  70. package/bin/exiftool_files/lib/Image/ExifTool/JPEGDigest.pm +1 -1
  71. package/bin/exiftool_files/lib/Image/ExifTool/JSON.pm +1 -1
  72. package/bin/exiftool_files/lib/Image/ExifTool/JVC.pm +1 -1
  73. package/bin/exiftool_files/lib/Image/ExifTool/Jpeg2000.pm +10 -9
  74. package/bin/exiftool_files/lib/Image/ExifTool/Kodak.pm +1 -1
  75. package/bin/exiftool_files/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
  76. package/bin/exiftool_files/lib/Image/ExifTool/LIF.pm +1 -1
  77. package/bin/exiftool_files/lib/Image/ExifTool/LNK.pm +2 -2
  78. package/bin/exiftool_files/lib/Image/ExifTool/Lang/cs.pm +1 -1
  79. package/bin/exiftool_files/lib/Image/ExifTool/Lang/de.pm +1 -1
  80. package/bin/exiftool_files/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
  81. package/bin/exiftool_files/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
  82. package/bin/exiftool_files/lib/Image/ExifTool/Lang/es.pm +1 -1
  83. package/bin/exiftool_files/lib/Image/ExifTool/Lang/fi.pm +1 -1
  84. package/bin/exiftool_files/lib/Image/ExifTool/Lang/fr.pm +1 -1
  85. package/bin/exiftool_files/lib/Image/ExifTool/Lang/it.pm +1 -1
  86. package/bin/exiftool_files/lib/Image/ExifTool/Lang/ja.pm +1 -1
  87. package/bin/exiftool_files/lib/Image/ExifTool/Lang/ko.pm +1 -1
  88. package/bin/exiftool_files/lib/Image/ExifTool/Lang/nl.pm +1 -1
  89. package/bin/exiftool_files/lib/Image/ExifTool/Lang/pl.pm +1 -1
  90. package/bin/exiftool_files/lib/Image/ExifTool/Lang/ru.pm +1 -1
  91. package/bin/exiftool_files/lib/Image/ExifTool/Lang/sk.pm +1 -1
  92. package/bin/exiftool_files/lib/Image/ExifTool/Lang/sv.pm +1 -1
  93. package/bin/exiftool_files/lib/Image/ExifTool/Lang/tr.pm +1 -1
  94. package/bin/exiftool_files/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
  95. package/bin/exiftool_files/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
  96. package/bin/exiftool_files/lib/Image/ExifTool/Leaf.pm +1 -1
  97. package/bin/exiftool_files/lib/Image/ExifTool/LigoGPS.pm +409 -0
  98. package/bin/exiftool_files/lib/Image/ExifTool/Lytro.pm +1 -1
  99. package/bin/exiftool_files/lib/Image/ExifTool/M2TS.pm +57 -18
  100. package/bin/exiftool_files/lib/Image/ExifTool/MIE.pm +15 -6
  101. package/bin/exiftool_files/lib/Image/ExifTool/MIEUnits.pod +1 -1
  102. package/bin/exiftool_files/lib/Image/ExifTool/MIFF.pm +1 -1
  103. package/bin/exiftool_files/lib/Image/ExifTool/MISB.pm +1 -1
  104. package/bin/exiftool_files/lib/Image/ExifTool/MNG.pm +1 -1
  105. package/bin/exiftool_files/lib/Image/ExifTool/MOI.pm +1 -1
  106. package/bin/exiftool_files/lib/Image/ExifTool/MPC.pm +1 -1
  107. package/bin/exiftool_files/lib/Image/ExifTool/MPEG.pm +1 -1
  108. package/bin/exiftool_files/lib/Image/ExifTool/MPF.pm +1 -1
  109. package/bin/exiftool_files/lib/Image/ExifTool/MRC.pm +1 -1
  110. package/bin/exiftool_files/lib/Image/ExifTool/MWG.pm +1 -1
  111. package/bin/exiftool_files/lib/Image/ExifTool/MXF.pm +3 -3
  112. package/bin/exiftool_files/lib/Image/ExifTool/MacOS.pm +3 -2
  113. package/bin/exiftool_files/lib/Image/ExifTool/MakerNotes.pm +1 -1
  114. package/bin/exiftool_files/lib/Image/ExifTool/Matroska.pm +22 -6
  115. package/bin/exiftool_files/lib/Image/ExifTool/Microsoft.pm +2 -2
  116. package/bin/exiftool_files/lib/Image/ExifTool/Minolta.pm +1 -1
  117. package/bin/exiftool_files/lib/Image/ExifTool/MinoltaRaw.pm +1 -1
  118. package/bin/exiftool_files/lib/Image/ExifTool/Motorola.pm +1 -1
  119. package/bin/exiftool_files/lib/Image/ExifTool/Nikon.pm +457 -103
  120. package/bin/exiftool_files/lib/Image/ExifTool/NikonCapture.pm +1 -1
  121. package/bin/exiftool_files/lib/Image/ExifTool/NikonCustom.pm +6 -6
  122. package/bin/exiftool_files/lib/Image/ExifTool/NikonSettings.pm +1 -1
  123. package/bin/exiftool_files/lib/Image/ExifTool/Nintendo.pm +1 -1
  124. package/bin/exiftool_files/lib/Image/ExifTool/OOXML.pm +8 -8
  125. package/bin/exiftool_files/lib/Image/ExifTool/Ogg.pm +1 -1
  126. package/bin/exiftool_files/lib/Image/ExifTool/Olympus.pm +1 -1
  127. package/bin/exiftool_files/lib/Image/ExifTool/OpenEXR.pm +1 -1
  128. package/bin/exiftool_files/lib/Image/ExifTool/Opus.pm +1 -1
  129. package/bin/exiftool_files/lib/Image/ExifTool/Other.pm +1 -1
  130. package/bin/exiftool_files/lib/Image/ExifTool/PCX.pm +1 -1
  131. package/bin/exiftool_files/lib/Image/ExifTool/PDF.pm +49 -18
  132. package/bin/exiftool_files/lib/Image/ExifTool/PGF.pm +1 -1
  133. package/bin/exiftool_files/lib/Image/ExifTool/PICT.pm +1 -1
  134. package/bin/exiftool_files/lib/Image/ExifTool/PLIST.pm +4 -4
  135. package/bin/exiftool_files/lib/Image/ExifTool/PLUS.pm +1 -1
  136. package/bin/exiftool_files/lib/Image/ExifTool/PNG.pm +20 -8
  137. package/bin/exiftool_files/lib/Image/ExifTool/PPM.pm +12 -3
  138. package/bin/exiftool_files/lib/Image/ExifTool/PSP.pm +1 -1
  139. package/bin/exiftool_files/lib/Image/ExifTool/Palm.pm +1 -1
  140. package/bin/exiftool_files/lib/Image/ExifTool/Panasonic.pm +27 -3
  141. package/bin/exiftool_files/lib/Image/ExifTool/PanasonicRaw.pm +1 -1
  142. package/bin/exiftool_files/lib/Image/ExifTool/Parrot.pm +1 -1
  143. package/bin/exiftool_files/lib/Image/ExifTool/Pentax.pm +1 -1
  144. package/bin/exiftool_files/lib/Image/ExifTool/PhaseOne.pm +4 -4
  145. package/bin/exiftool_files/lib/Image/ExifTool/PhotoCD.pm +1 -1
  146. package/bin/exiftool_files/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
  147. package/bin/exiftool_files/lib/Image/ExifTool/Photoshop.pm +65 -4
  148. package/bin/exiftool_files/lib/Image/ExifTool/PostScript.pm +1 -1
  149. package/bin/exiftool_files/lib/Image/ExifTool/PrintIM.pm +1 -1
  150. package/bin/exiftool_files/lib/Image/ExifTool/Protobuf.pm +270 -0
  151. package/bin/exiftool_files/lib/Image/ExifTool/Qualcomm.pm +1 -1
  152. package/bin/exiftool_files/lib/Image/ExifTool/QuickTime.pm +327 -88
  153. package/bin/exiftool_files/lib/Image/ExifTool/QuickTimeStream.pl +199 -195
  154. package/bin/exiftool_files/lib/Image/ExifTool/README +12 -2
  155. package/bin/exiftool_files/lib/Image/ExifTool/RIFF.pm +21 -6
  156. package/bin/exiftool_files/lib/Image/ExifTool/RSRC.pm +1 -1
  157. package/bin/exiftool_files/lib/Image/ExifTool/RTF.pm +2 -2
  158. package/bin/exiftool_files/lib/Image/ExifTool/Radiance.pm +1 -1
  159. package/bin/exiftool_files/lib/Image/ExifTool/Rawzor.pm +1 -1
  160. package/bin/exiftool_files/lib/Image/ExifTool/Real.pm +1 -1
  161. package/bin/exiftool_files/lib/Image/ExifTool/Reconyx.pm +1 -1
  162. package/bin/exiftool_files/lib/Image/ExifTool/Red.pm +1 -1
  163. package/bin/exiftool_files/lib/Image/ExifTool/Ricoh.pm +4 -4
  164. package/bin/exiftool_files/lib/Image/ExifTool/Samsung.pm +6 -2
  165. package/bin/exiftool_files/lib/Image/ExifTool/Sanyo.pm +1 -1
  166. package/bin/exiftool_files/lib/Image/ExifTool/Scalado.pm +1 -1
  167. package/bin/exiftool_files/lib/Image/ExifTool/Shift.pl +1 -1
  168. package/bin/exiftool_files/lib/Image/ExifTool/Shortcuts.pm +1 -1
  169. package/bin/exiftool_files/lib/Image/ExifTool/Sigma.pm +1 -1
  170. package/bin/exiftool_files/lib/Image/ExifTool/SigmaRaw.pm +1 -1
  171. package/bin/exiftool_files/lib/Image/ExifTool/Sony.pm +6 -5
  172. package/bin/exiftool_files/lib/Image/ExifTool/SonyIDC.pm +1 -1
  173. package/bin/exiftool_files/lib/Image/ExifTool/Stim.pm +1 -1
  174. package/bin/exiftool_files/lib/Image/ExifTool/TagInfoXML.pm +6 -5
  175. package/bin/exiftool_files/lib/Image/ExifTool/TagLookup.pm +7028 -6968
  176. package/bin/exiftool_files/lib/Image/ExifTool/TagNames.pod +12079 -11630
  177. package/bin/exiftool_files/lib/Image/ExifTool/Text.pm +4 -3
  178. package/bin/exiftool_files/lib/Image/ExifTool/Theora.pm +1 -1
  179. package/bin/exiftool_files/lib/Image/ExifTool/Torrent.pm +3 -3
  180. package/bin/exiftool_files/lib/Image/ExifTool/Trailer.pm +318 -0
  181. package/bin/exiftool_files/lib/Image/ExifTool/Unknown.pm +1 -1
  182. package/bin/exiftool_files/lib/Image/ExifTool/VCard.pm +3 -3
  183. package/bin/exiftool_files/lib/Image/ExifTool/Validate.pm +6 -6
  184. package/bin/exiftool_files/lib/Image/ExifTool/Vorbis.pm +1 -1
  185. package/bin/exiftool_files/lib/Image/ExifTool/WPG.pm +1 -1
  186. package/bin/exiftool_files/lib/Image/ExifTool/WTV.pm +1 -1
  187. package/bin/exiftool_files/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
  188. package/bin/exiftool_files/lib/Image/ExifTool/WriteExif.pl +3 -3
  189. package/bin/exiftool_files/lib/Image/ExifTool/WriteIPTC.pl +1 -1
  190. package/bin/exiftool_files/lib/Image/ExifTool/WritePDF.pl +1 -1
  191. package/bin/exiftool_files/lib/Image/ExifTool/WritePNG.pl +1 -1
  192. package/bin/exiftool_files/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
  193. package/bin/exiftool_files/lib/Image/ExifTool/WritePostScript.pl +1 -1
  194. package/bin/exiftool_files/lib/Image/ExifTool/WriteQuickTime.pl +170 -79
  195. package/bin/exiftool_files/lib/Image/ExifTool/WriteRIFF.pl +17 -6
  196. package/bin/exiftool_files/lib/Image/ExifTool/WriteXMP.pl +3 -3
  197. package/bin/exiftool_files/lib/Image/ExifTool/Writer.pl +89 -96
  198. package/bin/exiftool_files/lib/Image/ExifTool/XISF.pm +1 -1
  199. package/bin/exiftool_files/lib/Image/ExifTool/XMP.pm +28 -13
  200. package/bin/exiftool_files/lib/Image/ExifTool/XMP2.pl +106 -3
  201. package/bin/exiftool_files/lib/Image/ExifTool/XMPStruct.pl +2 -3
  202. package/bin/exiftool_files/lib/Image/ExifTool/ZIP.pm +2 -2
  203. package/bin/exiftool_files/lib/Image/ExifTool/ZISRAW.pm +1 -1
  204. package/bin/exiftool_files/lib/Image/ExifTool/iWork.pm +1 -1
  205. package/bin/exiftool_files/lib/Image/ExifTool.pm +467 -228
  206. package/bin/exiftool_files/lib/Image/ExifTool.pod +118 -72
  207. package/bin/exiftool_files/windows_exiftool.txt +96 -51
  208. package/package.json +8 -8
@@ -25,6 +25,7 @@ use strict;
25
25
  use Image::ExifTool qw(:Utils);
26
26
  use Image::ExifTool::XMP;
27
27
 
28
+ sub ProcessSEAL($$;$);
28
29
  sub Init_crd($);
29
30
 
30
31
  #------------------------------------------------------------------------------
@@ -1994,7 +1995,8 @@ my %sACDSeeRegionStruct = (
1994
1995
  Struct => {
1995
1996
  STRUCT_NAME => 'DeviceItem',
1996
1997
  NAMESPACE => { Item => 'http://ns.google.com/photos/dd/1.0/item/' },
1997
- Mime => { },
1998
+ # use this as a key to process Google trailer
1999
+ Mime => { RawConv => '$$self{ProcessGoogleTrailer} = $val' },
1998
2000
  Length => { Writable => 'integer' },
1999
2001
  Padding => { Writable => 'integer' },
2000
2002
  DataURI => { },
@@ -2148,7 +2150,7 @@ my %sACDSeeRegionStruct = (
2148
2150
  STRUCT_NAME => 'Item',
2149
2151
  # (use 'GItem' to avoid conflict with Google Device Container Item)
2150
2152
  NAMESPACE => { GItem => 'http://ns.google.com/photos/1.0/container/item/'},
2151
- Mime => { },
2153
+ Mime => { RawConv => '$$self{ProcessGoogleTrailer} = $val' },
2152
2154
  Semantic => { },
2153
2155
  Length => { Writable => 'integer' },
2154
2156
  Label => { },
@@ -2249,6 +2251,44 @@ my %sACDSeeRegionStruct = (
2249
2251
  Gamma => { Writable => 'real', List => 'Seq', Avoid => 1 },
2250
2252
  );
2251
2253
 
2254
+ %Image::ExifTool::XMP::HDRGainMap = (
2255
+ %xmpTableDefaults,
2256
+ GROUPS => { 1 => 'XMP-HDRGainMap', 2 => 'Unknown' },
2257
+ NAMESPACE => 'HDRGainMap',
2258
+ NOTES => 'Used in Apple HDR GainMap images.',
2259
+ HDRGainMapVersion => {
2260
+ PrintConv => 'IsInt($val) ? join(".",unpack("C*", pack "N", $val)) : $val',
2261
+ PrintConvInv => q{
2262
+ return $val unless $val =~ /^\d+\.\d+\.\d+\.\d+$/;
2263
+ return unpack('N', pack('C*', split /\./, $val));
2264
+ },
2265
+ },
2266
+ );
2267
+
2268
+ %Image::ExifTool::XMP::apdi = (
2269
+ %xmpTableDefaults,
2270
+ GROUPS => { 1 => 'XMP-apdi', 2 => 'Image' },
2271
+ NAMESPACE => 'apdi',
2272
+ NOTES => 'Used in Apple HDR GainMap images.',
2273
+ NativeFormat => {
2274
+ PrintConv => q{
2275
+ return $val unless IsInt($val);
2276
+ my $tmp = pack("N", $val);
2277
+ $tmp =~ /^\w{4}$/ ? $tmp : $val;
2278
+ },
2279
+ PrintConvInv => '$val =~ /^\w{4}$/ ? unpack("N", $val) : $val',
2280
+ },
2281
+ AuxiliaryImageType => { },
2282
+ StoredFormat => {
2283
+ PrintConv => q{
2284
+ return $val unless IsInt($val);
2285
+ my $tmp = pack("N", $val);
2286
+ $tmp =~ /^\w{4}$/ ? $tmp : $val;
2287
+ },
2288
+ PrintConvInv => '$val =~ /^\w{4}$/ ? unpack("N", $val) : $val',
2289
+ },
2290
+ );
2291
+
2252
2292
  # SVG namespace properties (ref 9)
2253
2293
  %Image::ExifTool::XMP::SVG = (
2254
2294
  GROUPS => { 0 => 'SVG', 1 => 'SVG', 2 => 'Image' },
@@ -2290,6 +2330,69 @@ my %sACDSeeRegionStruct = (
2290
2330
  },
2291
2331
  );
2292
2332
 
2333
+ %Image::ExifTool::XMP::seal = (
2334
+ GROUPS => { 0 => 'XMP', 1 => 'XMP-seal', 2 => 'Image' },
2335
+ NAMESPACE => 'seal',
2336
+ WRITABLE => 'string',
2337
+ NOTES => 'SEAL embedded in XMP.',
2338
+ seal => {
2339
+ Name => 'Seal',
2340
+ Binary => 1,
2341
+ SubDirectory => { TagTable => 'Image::ExifTool::XMP::SEAL' },
2342
+ },
2343
+ );
2344
+
2345
+ %Image::ExifTool::XMP::SEAL = (
2346
+ GROUPS => { 0 => 'XML', 1 => 'SEAL', 2 => 'Document' },
2347
+ PROCESS_PROC => \&ProcessSEAL,
2348
+ NOTES => q{
2349
+ These tags are used in SEAL (Secure Evidence Attribution Label) content
2350
+ authentification, which is actually XML format, not XMP. ExifTool has
2351
+ read/delete support for SEAL information in JPG, TIFF, XMP, PNG, WEBP, HEIC,
2352
+ PPM, MOV and MP4 files, and read-only support in PDF, MKV and WAV. Use
2353
+ C<-seal:all=> on the command line to delete SEAL information in supported
2354
+ formats. See L<https://github.com/hackerfactor/SEAL> for the specification.
2355
+ },
2356
+ seal=> 'SEALVersion',
2357
+ ka => 'KeyAlgorithm',
2358
+ kv => 'KeyVersion',
2359
+ da => 'DigestAlgorithm',
2360
+ b => 'ByteRange',
2361
+ d => 'Domain',
2362
+ uid => 'UniqueIdentifier',
2363
+ id => 'Identifier',
2364
+ sf => 'SignatureFormat',
2365
+ sl => 'SignatureLength',
2366
+ 's' => 'Signature',
2367
+ info=> 'SEALComment',
2368
+ copyright => { Name => 'Copyright', Groups => { 2 => 'Author' } },
2369
+ );
2370
+
2371
+ #------------------------------------------------------------------------------
2372
+ # We found a SEAL property name/value
2373
+ # Inputs: 0) ExifTool ref, 1) tag table ref, 2) xmp property list ref
2374
+ # 3) property value, 4) attribute hash ref
2375
+ # Returns: 1 if valid tag was found
2376
+ sub FoundSEAL($$$$;$)
2377
+ {
2378
+ my ($et, $tagTablePtr, $props, $val, $attrs) = @_;
2379
+ # remove 'seal' container property from name
2380
+ my @sealProps = @$props;
2381
+ shift @sealProps if @sealProps and $sealProps[0] eq 'seal';
2382
+ return FoundXMP($et, $tagTablePtr, \@sealProps, $val, $attrs);
2383
+ }
2384
+
2385
+ #------------------------------------------------------------------------------
2386
+ # Process SEAL XML
2387
+ # Inputs: 0) ExifTool ref, 1) dirInfo ref, 2) tag table ref
2388
+ # Returns: 1 on success
2389
+ sub ProcessSEAL($$;$)
2390
+ {
2391
+ my ($et, $dirInfo, $tagTablePtr) = @_;
2392
+ $$dirInfo{XMPParseOpts}{FoundProc} = \&FoundSEAL;
2393
+ return ProcessXMP($et, $dirInfo, $tagTablePtr);
2394
+ }
2395
+
2293
2396
  #------------------------------------------------------------------------------
2294
2397
  # Generate crd tags
2295
2398
  # Inputs: 0) tag table ref
@@ -2325,7 +2428,7 @@ This file contains definitions for less common XMP namespaces.
2325
2428
 
2326
2429
  =head1 AUTHOR
2327
2430
 
2328
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
2431
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
2329
2432
 
2330
2433
  This library is free software; you can redistribute it and/or modify it
2331
2434
  under the same terms as Perl itself.
@@ -714,7 +714,6 @@ sub RestoreStruct($;$)
714
714
  my $fileOrder = $$et{FILE_ORDER};
715
715
  my $tagExtra = $$et{TAG_EXTRA};
716
716
  foreach $key (keys %{$$et{TAG_INFO}}) {
717
- $$tagExtra{$key} or next;
718
717
  my $structProps = $$tagExtra{$key}{Struct} or next;
719
718
  delete $$tagExtra{$key}{Struct}; # (don't re-use)
720
719
  my $tagInfo = $$et{TAG_INFO}{$key}; # tagInfo for flattened tag
@@ -880,7 +879,7 @@ sub RestoreStruct($;$)
880
879
  }
881
880
  # preserve original flattened tags if requested
882
881
  if ($keepFlat) {
883
- my $extra = $$tagExtra{$key} or next;
882
+ my $extra = $$tagExtra{$key};
884
883
  # restore list behaviour of this flattened tag
885
884
  if ($$extra{NoList}) {
886
885
  $$valueHash{$key} = $$extra{NoList};
@@ -945,7 +944,7 @@ information.
945
944
 
946
945
  =head1 AUTHOR
947
946
 
948
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
947
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
949
948
 
950
949
  This library is free software; you can redistribute it and/or modify it
951
950
  under the same terms as Perl itself.
@@ -330,7 +330,7 @@ sub ProcessRAR($$)
330
330
  $et->Warn('Large block encountered. Aborting.');
331
331
  last;
332
332
  } elsif ($et->Options('LargeFileSupport') eq '2') {
333
- $et->WarnOnce('Processing large block (LargeFileSupport is 2)');
333
+ $et->Warn('Processing large block (LargeFileSupport is 2)');
334
334
  }
335
335
  }
336
336
  # process the block
@@ -840,7 +840,7 @@ Electronic Publication (EPUB), and Sketch design files (SKETCH).
840
840
 
841
841
  =head1 AUTHOR
842
842
 
843
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
843
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
844
844
 
845
845
  This library is free software; you can redistribute it and/or modify it
846
846
  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-2024, Phil Harvey (philharvey66 at gmail.com)
223
+ Copyright 2003-2025, 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-2024, Phil Harvey (philharvey66 at gmail.com)
218
+ Copyright 2003-2025, 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.