exiftool-vendored.exe 12.72.0 → 12.76.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 (202) hide show
  1. package/bin/exiftool_files/Changes +64 -1
  2. package/bin/exiftool_files/README +47 -46
  3. package/bin/exiftool_files/exiftool.pl +121 -90
  4. package/bin/exiftool_files/lib/File/RandomAccess.pm +32 -6
  5. package/bin/exiftool_files/lib/File/RandomAccess.pod +6 -6
  6. package/bin/exiftool_files/lib/Image/ExifTool/7Z.pm +3 -3
  7. package/bin/exiftool_files/lib/Image/ExifTool/AAC.pm +8 -6
  8. package/bin/exiftool_files/lib/Image/ExifTool/AES.pm +1 -1
  9. package/bin/exiftool_files/lib/Image/ExifTool/AFCP.pm +3 -3
  10. package/bin/exiftool_files/lib/Image/ExifTool/AIFF.pm +1 -1
  11. package/bin/exiftool_files/lib/Image/ExifTool/APE.pm +1 -1
  12. package/bin/exiftool_files/lib/Image/ExifTool/APP12.pm +1 -1
  13. package/bin/exiftool_files/lib/Image/ExifTool/ASF.pm +1 -1
  14. package/bin/exiftool_files/lib/Image/ExifTool/Apple.pm +1 -1
  15. package/bin/exiftool_files/lib/Image/ExifTool/Audible.pm +1 -1
  16. package/bin/exiftool_files/lib/Image/ExifTool/BMP.pm +1 -1
  17. package/bin/exiftool_files/lib/Image/ExifTool/BPG.pm +1 -1
  18. package/bin/exiftool_files/lib/Image/ExifTool/BZZ.pm +3 -3
  19. package/bin/exiftool_files/lib/Image/ExifTool/BigTIFF.pm +1 -1
  20. package/bin/exiftool_files/lib/Image/ExifTool/BuildTagLookup.pm +9 -9
  21. package/bin/exiftool_files/lib/Image/ExifTool/CBOR.pm +1 -1
  22. package/bin/exiftool_files/lib/Image/ExifTool/Canon.pm +7 -6
  23. package/bin/exiftool_files/lib/Image/ExifTool/CanonCustom.pm +1 -1
  24. package/bin/exiftool_files/lib/Image/ExifTool/CanonRaw.pm +1 -1
  25. package/bin/exiftool_files/lib/Image/ExifTool/CanonVRD.pm +3 -3
  26. package/bin/exiftool_files/lib/Image/ExifTool/CaptureOne.pm +1 -1
  27. package/bin/exiftool_files/lib/Image/ExifTool/Casio.pm +1 -1
  28. package/bin/exiftool_files/lib/Image/ExifTool/Charset.pm +1 -1
  29. package/bin/exiftool_files/lib/Image/ExifTool/DICOM.pm +3 -3
  30. package/bin/exiftool_files/lib/Image/ExifTool/DJI.pm +1 -1
  31. package/bin/exiftool_files/lib/Image/ExifTool/DNG.pm +5 -5
  32. package/bin/exiftool_files/lib/Image/ExifTool/DPX.pm +1 -1
  33. package/bin/exiftool_files/lib/Image/ExifTool/DV.pm +1 -1
  34. package/bin/exiftool_files/lib/Image/ExifTool/DarwinCore.pm +1 -1
  35. package/bin/exiftool_files/lib/Image/ExifTool/DjVu.pm +1 -1
  36. package/bin/exiftool_files/lib/Image/ExifTool/EXE.pm +1 -1
  37. package/bin/exiftool_files/lib/Image/ExifTool/Exif.pm +4 -3
  38. package/bin/exiftool_files/lib/Image/ExifTool/FITS.pm +1 -1
  39. package/bin/exiftool_files/lib/Image/ExifTool/FLAC.pm +1 -1
  40. package/bin/exiftool_files/lib/Image/ExifTool/FLIF.pm +1 -1
  41. package/bin/exiftool_files/lib/Image/ExifTool/FLIR.pm +3 -3
  42. package/bin/exiftool_files/lib/Image/ExifTool/Fixup.pm +4 -4
  43. package/bin/exiftool_files/lib/Image/ExifTool/Flash.pm +1 -1
  44. package/bin/exiftool_files/lib/Image/ExifTool/FlashPix.pm +61 -8
  45. package/bin/exiftool_files/lib/Image/ExifTool/Font.pm +1 -1
  46. package/bin/exiftool_files/lib/Image/ExifTool/FotoStation.pm +1 -1
  47. package/bin/exiftool_files/lib/Image/ExifTool/FujiFilm.pm +9 -4
  48. package/bin/exiftool_files/lib/Image/ExifTool/GE.pm +1 -1
  49. package/bin/exiftool_files/lib/Image/ExifTool/GIF.pm +1 -1
  50. package/bin/exiftool_files/lib/Image/ExifTool/GIMP.pm +1 -1
  51. package/bin/exiftool_files/lib/Image/ExifTool/GPS.pm +1 -1
  52. package/bin/exiftool_files/lib/Image/ExifTool/GeoTiff.pm +1 -1
  53. package/bin/exiftool_files/lib/Image/ExifTool/Geotag.pm +4 -4
  54. package/bin/exiftool_files/lib/Image/ExifTool/GoPro.pm +1 -1
  55. package/bin/exiftool_files/lib/Image/ExifTool/H264.pm +1 -1
  56. package/bin/exiftool_files/lib/Image/ExifTool/HP.pm +1 -1
  57. package/bin/exiftool_files/lib/Image/ExifTool/HTML.pm +1 -1
  58. package/bin/exiftool_files/lib/Image/ExifTool/HtmlDump.pm +7 -5
  59. package/bin/exiftool_files/lib/Image/ExifTool/ICC_Profile.pm +1 -1
  60. package/bin/exiftool_files/lib/Image/ExifTool/ICO.pm +1 -1
  61. package/bin/exiftool_files/lib/Image/ExifTool/ID3.pm +3 -3
  62. package/bin/exiftool_files/lib/Image/ExifTool/IPTC.pm +1 -1
  63. package/bin/exiftool_files/lib/Image/ExifTool/ISO.pm +1 -1
  64. package/bin/exiftool_files/lib/Image/ExifTool/ITC.pm +1 -1
  65. package/bin/exiftool_files/lib/Image/ExifTool/Import.pm +6 -6
  66. package/bin/exiftool_files/lib/Image/ExifTool/InDesign.pm +1 -1
  67. package/bin/exiftool_files/lib/Image/ExifTool/InfiRay.pm +1 -1
  68. package/bin/exiftool_files/lib/Image/ExifTool/JPEG.pm +5 -2
  69. package/bin/exiftool_files/lib/Image/ExifTool/JPEGDigest.pm +1 -1
  70. package/bin/exiftool_files/lib/Image/ExifTool/JSON.pm +3 -3
  71. package/bin/exiftool_files/lib/Image/ExifTool/JVC.pm +3 -3
  72. package/bin/exiftool_files/lib/Image/ExifTool/Jpeg2000.pm +67 -17
  73. package/bin/exiftool_files/lib/Image/ExifTool/Kodak.pm +1 -1
  74. package/bin/exiftool_files/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
  75. package/bin/exiftool_files/lib/Image/ExifTool/LIF.pm +1 -1
  76. package/bin/exiftool_files/lib/Image/ExifTool/LNK.pm +1 -1
  77. package/bin/exiftool_files/lib/Image/ExifTool/Lang/cs.pm +1 -1
  78. package/bin/exiftool_files/lib/Image/ExifTool/Lang/de.pm +1 -1
  79. package/bin/exiftool_files/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
  80. package/bin/exiftool_files/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
  81. package/bin/exiftool_files/lib/Image/ExifTool/Lang/es.pm +4 -4
  82. package/bin/exiftool_files/lib/Image/ExifTool/Lang/fi.pm +1 -1
  83. package/bin/exiftool_files/lib/Image/ExifTool/Lang/fr.pm +4 -5
  84. package/bin/exiftool_files/lib/Image/ExifTool/Lang/it.pm +3 -3
  85. package/bin/exiftool_files/lib/Image/ExifTool/Lang/ja.pm +1 -1
  86. package/bin/exiftool_files/lib/Image/ExifTool/Lang/ko.pm +1 -1
  87. package/bin/exiftool_files/lib/Image/ExifTool/Lang/nl.pm +1 -1
  88. package/bin/exiftool_files/lib/Image/ExifTool/Lang/pl.pm +1 -1
  89. package/bin/exiftool_files/lib/Image/ExifTool/Lang/ru.pm +1 -1
  90. package/bin/exiftool_files/lib/Image/ExifTool/Lang/sk.pm +1 -1
  91. package/bin/exiftool_files/lib/Image/ExifTool/Lang/sv.pm +1 -1
  92. package/bin/exiftool_files/lib/Image/ExifTool/Lang/tr.pm +1 -1
  93. package/bin/exiftool_files/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
  94. package/bin/exiftool_files/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
  95. package/bin/exiftool_files/lib/Image/ExifTool/Leaf.pm +3 -3
  96. package/bin/exiftool_files/lib/Image/ExifTool/Lytro.pm +1 -1
  97. package/bin/exiftool_files/lib/Image/ExifTool/M2TS.pm +1 -1
  98. package/bin/exiftool_files/lib/Image/ExifTool/MIE.pm +5 -5
  99. package/bin/exiftool_files/lib/Image/ExifTool/MIEUnits.pod +1 -1
  100. package/bin/exiftool_files/lib/Image/ExifTool/MIFF.pm +1 -1
  101. package/bin/exiftool_files/lib/Image/ExifTool/MISB.pm +1 -1
  102. package/bin/exiftool_files/lib/Image/ExifTool/MNG.pm +1 -1
  103. package/bin/exiftool_files/lib/Image/ExifTool/MOI.pm +1 -1
  104. package/bin/exiftool_files/lib/Image/ExifTool/MPC.pm +1 -1
  105. package/bin/exiftool_files/lib/Image/ExifTool/MPEG.pm +1 -1
  106. package/bin/exiftool_files/lib/Image/ExifTool/MPF.pm +1 -1
  107. package/bin/exiftool_files/lib/Image/ExifTool/MRC.pm +1 -1
  108. package/bin/exiftool_files/lib/Image/ExifTool/MWG.pm +1 -1
  109. package/bin/exiftool_files/lib/Image/ExifTool/MXF.pm +1 -1
  110. package/bin/exiftool_files/lib/Image/ExifTool/MacOS.pm +1 -1
  111. package/bin/exiftool_files/lib/Image/ExifTool/MakerNotes.pm +1 -1
  112. package/bin/exiftool_files/lib/Image/ExifTool/Matroska.pm +1 -1
  113. package/bin/exiftool_files/lib/Image/ExifTool/Microsoft.pm +1 -1
  114. package/bin/exiftool_files/lib/Image/ExifTool/Minolta.pm +1 -1
  115. package/bin/exiftool_files/lib/Image/ExifTool/MinoltaRaw.pm +3 -3
  116. package/bin/exiftool_files/lib/Image/ExifTool/Motorola.pm +1 -1
  117. package/bin/exiftool_files/lib/Image/ExifTool/Nikon.pm +11 -8
  118. package/bin/exiftool_files/lib/Image/ExifTool/NikonCapture.pm +1 -1
  119. package/bin/exiftool_files/lib/Image/ExifTool/NikonCustom.pm +4 -4
  120. package/bin/exiftool_files/lib/Image/ExifTool/NikonSettings.pm +1 -1
  121. package/bin/exiftool_files/lib/Image/ExifTool/Nintendo.pm +1 -1
  122. package/bin/exiftool_files/lib/Image/ExifTool/OOXML.pm +1 -1
  123. package/bin/exiftool_files/lib/Image/ExifTool/Ogg.pm +3 -3
  124. package/bin/exiftool_files/lib/Image/ExifTool/Olympus.pm +1 -1
  125. package/bin/exiftool_files/lib/Image/ExifTool/OpenEXR.pm +1 -1
  126. package/bin/exiftool_files/lib/Image/ExifTool/Opus.pm +1 -1
  127. package/bin/exiftool_files/lib/Image/ExifTool/Other.pm +1 -1
  128. package/bin/exiftool_files/lib/Image/ExifTool/PCX.pm +1 -1
  129. package/bin/exiftool_files/lib/Image/ExifTool/PDF.pm +55 -5
  130. package/bin/exiftool_files/lib/Image/ExifTool/PGF.pm +1 -1
  131. package/bin/exiftool_files/lib/Image/ExifTool/PICT.pm +1 -1
  132. package/bin/exiftool_files/lib/Image/ExifTool/PLIST.pm +4 -4
  133. package/bin/exiftool_files/lib/Image/ExifTool/PLUS.pm +1 -1
  134. package/bin/exiftool_files/lib/Image/ExifTool/PNG.pm +24 -2
  135. package/bin/exiftool_files/lib/Image/ExifTool/PPM.pm +1 -1
  136. package/bin/exiftool_files/lib/Image/ExifTool/PSP.pm +1 -1
  137. package/bin/exiftool_files/lib/Image/ExifTool/Palm.pm +1 -1
  138. package/bin/exiftool_files/lib/Image/ExifTool/Panasonic.pm +27 -2
  139. package/bin/exiftool_files/lib/Image/ExifTool/PanasonicRaw.pm +4 -4
  140. package/bin/exiftool_files/lib/Image/ExifTool/Parrot.pm +1 -1
  141. package/bin/exiftool_files/lib/Image/ExifTool/Pentax.pm +32 -11
  142. package/bin/exiftool_files/lib/Image/ExifTool/PhaseOne.pm +6 -6
  143. package/bin/exiftool_files/lib/Image/ExifTool/PhotoCD.pm +1 -1
  144. package/bin/exiftool_files/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
  145. package/bin/exiftool_files/lib/Image/ExifTool/Photoshop.pm +4 -4
  146. package/bin/exiftool_files/lib/Image/ExifTool/PostScript.pm +3 -3
  147. package/bin/exiftool_files/lib/Image/ExifTool/PrintIM.pm +1 -1
  148. package/bin/exiftool_files/lib/Image/ExifTool/Qualcomm.pm +1 -1
  149. package/bin/exiftool_files/lib/Image/ExifTool/QuickTime.pm +55 -101
  150. package/bin/exiftool_files/lib/Image/ExifTool/QuickTimeStream.pl +97 -7
  151. package/bin/exiftool_files/lib/Image/ExifTool/RIFF.pm +1 -1
  152. package/bin/exiftool_files/lib/Image/ExifTool/RSRC.pm +3 -3
  153. package/bin/exiftool_files/lib/Image/ExifTool/RTF.pm +1 -1
  154. package/bin/exiftool_files/lib/Image/ExifTool/Radiance.pm +1 -1
  155. package/bin/exiftool_files/lib/Image/ExifTool/Rawzor.pm +1 -1
  156. package/bin/exiftool_files/lib/Image/ExifTool/Real.pm +1 -1
  157. package/bin/exiftool_files/lib/Image/ExifTool/Reconyx.pm +1 -1
  158. package/bin/exiftool_files/lib/Image/ExifTool/Red.pm +1 -1
  159. package/bin/exiftool_files/lib/Image/ExifTool/Ricoh.pm +3 -3
  160. package/bin/exiftool_files/lib/Image/ExifTool/Samsung.pm +5 -5
  161. package/bin/exiftool_files/lib/Image/ExifTool/Sanyo.pm +1 -1
  162. package/bin/exiftool_files/lib/Image/ExifTool/Scalado.pm +1 -1
  163. package/bin/exiftool_files/lib/Image/ExifTool/Shift.pl +2 -3
  164. package/bin/exiftool_files/lib/Image/ExifTool/Shortcuts.pm +1 -1
  165. package/bin/exiftool_files/lib/Image/ExifTool/Sigma.pm +1 -1
  166. package/bin/exiftool_files/lib/Image/ExifTool/SigmaRaw.pm +4 -4
  167. package/bin/exiftool_files/lib/Image/ExifTool/Sony.pm +5 -5
  168. package/bin/exiftool_files/lib/Image/ExifTool/SonyIDC.pm +1 -1
  169. package/bin/exiftool_files/lib/Image/ExifTool/Stim.pm +1 -1
  170. package/bin/exiftool_files/lib/Image/ExifTool/TagInfoXML.pm +4 -4
  171. package/bin/exiftool_files/lib/Image/ExifTool/TagLookup.pm +3879 -3862
  172. package/bin/exiftool_files/lib/Image/ExifTool/TagNames.pod +11439 -11374
  173. package/bin/exiftool_files/lib/Image/ExifTool/Text.pm +1 -1
  174. package/bin/exiftool_files/lib/Image/ExifTool/Theora.pm +1 -1
  175. package/bin/exiftool_files/lib/Image/ExifTool/Torrent.pm +1 -1
  176. package/bin/exiftool_files/lib/Image/ExifTool/Unknown.pm +1 -1
  177. package/bin/exiftool_files/lib/Image/ExifTool/VCard.pm +1 -1
  178. package/bin/exiftool_files/lib/Image/ExifTool/Validate.pm +1 -1
  179. package/bin/exiftool_files/lib/Image/ExifTool/Vorbis.pm +1 -1
  180. package/bin/exiftool_files/lib/Image/ExifTool/WPG.pm +1 -1
  181. package/bin/exiftool_files/lib/Image/ExifTool/WTV.pm +1 -1
  182. package/bin/exiftool_files/lib/Image/ExifTool/WriteCanonRaw.pl +2 -2
  183. package/bin/exiftool_files/lib/Image/ExifTool/WriteExif.pl +27 -24
  184. package/bin/exiftool_files/lib/Image/ExifTool/WriteIPTC.pl +1 -1
  185. package/bin/exiftool_files/lib/Image/ExifTool/WritePDF.pl +2 -2
  186. package/bin/exiftool_files/lib/Image/ExifTool/WritePNG.pl +1 -1
  187. package/bin/exiftool_files/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
  188. package/bin/exiftool_files/lib/Image/ExifTool/WritePostScript.pl +1 -1
  189. package/bin/exiftool_files/lib/Image/ExifTool/WriteQuickTime.pl +5 -2
  190. package/bin/exiftool_files/lib/Image/ExifTool/WriteRIFF.pl +1 -1
  191. package/bin/exiftool_files/lib/Image/ExifTool/WriteXMP.pl +9 -5
  192. package/bin/exiftool_files/lib/Image/ExifTool/Writer.pl +74 -45
  193. package/bin/exiftool_files/lib/Image/ExifTool/XISF.pm +1 -1
  194. package/bin/exiftool_files/lib/Image/ExifTool/XMP.pm +20 -3
  195. package/bin/exiftool_files/lib/Image/ExifTool/XMP2.pl +10 -1
  196. package/bin/exiftool_files/lib/Image/ExifTool/XMPStruct.pl +1 -1
  197. package/bin/exiftool_files/lib/Image/ExifTool/ZIP.pm +7 -7
  198. package/bin/exiftool_files/lib/Image/ExifTool/ZISRAW.pm +1 -1
  199. package/bin/exiftool_files/lib/Image/ExifTool/iWork.pm +1 -1
  200. package/bin/exiftool_files/lib/Image/ExifTool.pm +59 -28
  201. package/bin/exiftool_files/lib/Image/ExifTool.pod +81 -68
  202. package/package.json +6 -6
@@ -221,7 +221,7 @@ characteristics of TXT and CSV files.
221
221
 
222
222
  =head1 AUTHOR
223
223
 
224
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
224
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
225
225
 
226
226
  This library is free software; you can redistribute it and/or modify it
227
227
  under the same terms as Perl itself.
@@ -122,7 +122,7 @@ information from Theora video streams.
122
122
 
123
123
  =head1 AUTHOR
124
124
 
125
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
125
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
126
126
 
127
127
  This library is free software; you can redistribute it and/or modify it
128
128
  under the same terms as Perl itself.
@@ -309,7 +309,7 @@ bencoded information from BitTorrent files.
309
309
 
310
310
  =head1 AUTHOR
311
311
 
312
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
312
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
313
313
 
314
314
  This library is free software; you can redistribute it and/or modify it
315
315
  under the same terms as Perl itself.
@@ -53,7 +53,7 @@ unknown manufacturers.
53
53
 
54
54
  =head1 AUTHOR
55
55
 
56
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
56
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
57
57
 
58
58
  This library is free software; you can redistribute it and/or modify it
59
59
  under the same terms as Perl itself.
@@ -430,7 +430,7 @@ information from vCard VCF and iCalendar ICS files.
430
430
 
431
431
  =head1 AUTHOR
432
432
 
433
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
433
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
434
434
 
435
435
  This library is free software; you can redistribute it and/or modify it
436
436
  under the same terms as Perl itself.
@@ -678,7 +678,7 @@ ExifTool Validate option is enabled.
678
678
 
679
679
  =head1 AUTHOR
680
680
 
681
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
681
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
682
682
 
683
683
  This library is free software; you can redistribute it and/or modify it
684
684
  under the same terms as Perl itself.
@@ -228,7 +228,7 @@ information from Ogg Vorbis audio headers.
228
228
 
229
229
  =head1 AUTHOR
230
230
 
231
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
231
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
232
232
 
233
233
  This library is free software; you can redistribute it and/or modify it
234
234
  under the same terms as Perl itself.
@@ -271,7 +271,7 @@ This module contains definitions required by Image::ExifTool to read WPG
271
271
 
272
272
  =head1 AUTHOR
273
273
 
274
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
274
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
275
275
 
276
276
  This library is free software; you can redistribute it and/or modify it
277
277
  under the same terms as Perl itself.
@@ -297,7 +297,7 @@ This module contains definitions required by Image::ExifTool to read WTV
297
297
 
298
298
  =head1 AUTHOR
299
299
 
300
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
300
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
301
301
 
302
302
  This library is free software; you can redistribute it and/or modify it
303
303
  under the same terms as Perl itself.
@@ -128,7 +128,7 @@ sub SaveMakerNotes($)
128
128
  delete $$et{MAKER_NOTE_INFO};
129
129
  my $dirEntries = $makerInfo->{Entries};
130
130
  my $numEntries = scalar(keys %$dirEntries);
131
- my $fixup = new Image::ExifTool::Fixup;
131
+ my $fixup = Image::ExifTool::Fixup->new;
132
132
  return unless $numEntries;
133
133
  # build the MakerNotes directory
134
134
  my $makerNotes = Set16u($numEntries);
@@ -630,7 +630,7 @@ JPEG files, and would lead to far fewer problems with corrupted metadata.
630
630
 
631
631
  =head1 AUTHOR
632
632
 
633
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
633
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
634
634
 
635
635
  This library is free software; you can redistribute it and/or modify it
636
636
  under the same terms as Perl itself.
@@ -171,9 +171,9 @@ sub RebuildMakerNotes($$$)
171
171
  my $saveOrder = GetByteOrder();
172
172
  my $loc = Image::ExifTool::MakerNotes::LocateIFD($et,\%subdirInfo);
173
173
  if (defined $loc) {
174
- my $makerFixup = $subdirInfo{Fixup} = new Image::ExifTool::Fixup;
174
+ my $makerFixup = $subdirInfo{Fixup} = Image::ExifTool::Fixup->new;
175
175
  # create new exiftool object to rewrite the directory without changing it
176
- my $newTool = new Image::ExifTool;
176
+ my $newTool = Image::ExifTool->new;
177
177
  $newTool->Options(
178
178
  IgnoreMinorErrors => $$et{OPTIONS}{IgnoreMinorErrors},
179
179
  FixBase => $$et{OPTIONS}{FixBase},
@@ -565,7 +565,7 @@ sub WriteExif($$$)
565
565
  my $firstBase = $base;
566
566
  my $raf = $$dirInfo{RAF};
567
567
  my $dirName = $$dirInfo{DirName} || 'unknown';
568
- my $fixup = $$dirInfo{Fixup} || new Image::ExifTool::Fixup;
568
+ my $fixup = $$dirInfo{Fixup} || Image::ExifTool::Fixup->new;
569
569
  my $imageDataFlag = $$dirInfo{ImageData} || '';
570
570
  my $verbose = $et->Options('Verbose');
571
571
  my $out = $et->Options('TextOut');
@@ -745,7 +745,7 @@ sub WriteExif($$$)
745
745
  my $valBuff = ''; # buffer for value data
746
746
  my @valFixups; # list of fixups for offsets in valBuff
747
747
  # fixup for offsets in dirBuff
748
- my $dirFixup = new Image::ExifTool::Fixup;
748
+ my $dirFixup = Image::ExifTool::Fixup->new;
749
749
  my $entryBasedFixup;
750
750
  my $lastTagID = -1;
751
751
  my ($oldInfo, $oldFormat, $oldFormName, $oldCount, $oldSize, $oldValue, $oldImageData);
@@ -896,7 +896,7 @@ Entry: for (;;) {
896
896
  TagInfo => $oldInfo || $tmpInfo,
897
897
  Offset => $base + $valuePtr + $dataPos,
898
898
  Size => $oldSize,
899
- Fixup => new Image::ExifTool::Fixup,
899
+ Fixup => Image::ExifTool::Fixup->new,
900
900
  },
901
901
  $invalidPreview = 2;
902
902
  # remove SubDirectory to prevent processing (for now)
@@ -1348,7 +1348,7 @@ NoOverwrite: next if $isNew > 0;
1348
1348
  # create empty source directory
1349
1349
  my %sourceDir = (
1350
1350
  Parent => $dirName,
1351
- Fixup => new Image::ExifTool::Fixup,
1351
+ Fixup => Image::ExifTool::Fixup->new,
1352
1352
  );
1353
1353
  $sourceDir{DirName} = $$newInfo{Groups}{1} if $$newInfo{SubIFD};
1354
1354
  $newValue = $et->WriteDirectory(\%sourceDir, $subTable);
@@ -1509,7 +1509,7 @@ NoOverwrite: next if $isNew > 0;
1509
1509
  }
1510
1510
  if (defined $loc) {
1511
1511
  # we need fixup data for this subdirectory
1512
- $subdirInfo{Fixup} = new Image::ExifTool::Fixup;
1512
+ $subdirInfo{Fixup} = Image::ExifTool::Fixup->new;
1513
1513
  # rewrite maker notes
1514
1514
  my $changed = $$et{CHANGED};
1515
1515
  $subdir = $et->WriteDirectory(\%subdirInfo, $subTable, $writeProc);
@@ -1673,7 +1673,7 @@ NoOverwrite: next if $isNew > 0;
1673
1673
  Name => $$newInfo{Name},
1674
1674
  TagInfo => $newInfo,
1675
1675
  Parent => $dirName,
1676
- Fixup => new Image::ExifTool::Fixup,
1676
+ Fixup => Image::ExifTool::Fixup->new,
1677
1677
  RAF => $raf,
1678
1678
  Subdir => $subdir,
1679
1679
  # set ImageData only for 1st level SubIFD's
@@ -1782,7 +1782,7 @@ NoOverwrite: next if $isNew > 0;
1782
1782
  #### eval Base ($start,$base)
1783
1783
  $subdirBase += eval $$subdir{Base};
1784
1784
  }
1785
- my $subFixup = new Image::ExifTool::Fixup;
1785
+ my $subFixup = Image::ExifTool::Fixup->new;
1786
1786
  my %subdirInfo = (
1787
1787
  Base => $subdirBase,
1788
1788
  DataPt => $valueDataPt,
@@ -1995,7 +1995,7 @@ NoOverwrite: next if $isNew > 0;
1995
1995
  # hold onto the PreviewImage until we can determine if it fits
1996
1996
  $$et{PREVIEW_INFO} or $$et{PREVIEW_INFO} = {
1997
1997
  Data => $$newValuePt,
1998
- Fixup => new Image::ExifTool::Fixup,
1998
+ Fixup => Image::ExifTool::Fixup->new,
1999
1999
  };
2000
2000
  $$et{PREVIEW_INFO}{ChangeBase} = 1 if $$newInfo{ChangeBase};
2001
2001
  if ($$newInfo{IsOffset} and $$newInfo{IsOffset} eq '2') {
@@ -2017,7 +2017,7 @@ NoOverwrite: next if $isNew > 0;
2017
2017
  $valBuff .= $$newValuePt; # add value data to buffer
2018
2018
  # must save a fixup pointer for every pointer in the directory
2019
2019
  if ($entryBased) {
2020
- $entryBasedFixup or $entryBasedFixup = new Image::ExifTool::Fixup;
2020
+ $entryBasedFixup or $entryBasedFixup = Image::ExifTool::Fixup->new;
2021
2021
  $entryBasedFixup->AddFixup(length($dirBuff) + 8, $dataTag);
2022
2022
  } else {
2023
2023
  $dirFixup->AddFixup(length($dirBuff) + 8, $dataTag);
@@ -2277,14 +2277,17 @@ NoOverwrite: next if $isNew > 0;
2277
2277
  $$offsetInfo{0x117} and $$offsetInfo{0x145} and
2278
2278
  $$offsetInfo{0x111}[2]==1) # (must be a single strip or the tile offsets could get out of sync)
2279
2279
  {
2280
- # some Sony ARW images contain double-referenced raw data stored as both strips
2281
- # and tiles. Copy the data using only the strip tags, but store the TileOffets
2282
- # information for updating later (see PanasonicRaw:PatchRawDataOffset for a
2283
- # description of offsetInfo elements)
2284
- $$offsetInfo{0x111}[5] = $$offsetInfo{0x144}; # hack to save TileOffsets
2285
- # delete tile information from offsetInfo because we will copy as strips
2286
- delete $$offsetInfo{0x144};
2287
- delete $$offsetInfo{0x145};
2280
+ # check the start offsets to see if they are the same
2281
+ if ($$offsetInfo{0x111}[3][0] == $$offsetInfo{0x144}[3][0]) {
2282
+ # some Sony ARW images contain double-referenced raw data stored as both strips
2283
+ # and tiles. Copy the data using only the strip tags, but store the TileOffets
2284
+ # information for updating later (see PanasonicRaw:PatchRawDataOffset for a
2285
+ # description of offsetInfo elements)
2286
+ $$offsetInfo{0x111}[5] = $$offsetInfo{0x144}; # hack to save TileOffsets
2287
+ # delete tile information from offsetInfo because we will copy as strips
2288
+ delete $$offsetInfo{0x144};
2289
+ delete $$offsetInfo{0x145};
2290
+ }
2288
2291
  } else {
2289
2292
  $et->Error("TIFF $dirName contains both strip and tile data");
2290
2293
  }
@@ -2451,7 +2454,7 @@ NoOverwrite: next if $isNew > 0;
2451
2454
  $newOffset += $blockSize; # data comes after other deferred data
2452
2455
  # create fixup for SubIFD ImageData
2453
2456
  if ($imageDataFlag eq 'SubIFD' and not $subIfdDataFixup) {
2454
- $subIfdDataFixup = new Image::ExifTool::Fixup;
2457
+ $subIfdDataFixup = Image::ExifTool::Fixup->new;
2455
2458
  $imageData[-1][4] = $subIfdDataFixup;
2456
2459
  }
2457
2460
  $size += $pad; # account for pad byte if necessary
@@ -2522,7 +2525,7 @@ NoOverwrite: next if $isNew > 0;
2522
2525
  # hold onto the PreviewImage until we can determine if it fits
2523
2526
  $$et{PREVIEW_INFO} or $$et{PREVIEW_INFO} = {
2524
2527
  Data => $buff,
2525
- Fixup => new Image::ExifTool::Fixup,
2528
+ Fixup => Image::ExifTool::Fixup->new,
2526
2529
  };
2527
2530
  if ($$tagInfo{IsOffset} and $$tagInfo{IsOffset} eq '2') {
2528
2531
  $$et{PREVIEW_INFO}{NoBaseShift} = 1;
@@ -2603,7 +2606,7 @@ NoOverwrite: next if $isNew > 0;
2603
2606
  $fixup->AddFixup($entry + 8);
2604
2607
  # create special fixup for SubIFD data
2605
2608
  if ($imageDataFlag eq 'SubIFD') {
2606
- my $subIfdDataFixup = new Image::ExifTool::Fixup;
2609
+ my $subIfdDataFixup = Image::ExifTool::Fixup->new;
2607
2610
  $subIfdDataFixup->AddFixup($entry + 8);
2608
2611
  # save fixup in imageData list
2609
2612
  $$blockInfo[4] = $subIfdDataFixup;
@@ -2668,7 +2671,7 @@ NoOverwrite: next if $isNew > 0;
2668
2671
  } else {
2669
2672
  # Doesn't fit, or we still don't know, so save fixup information
2670
2673
  # and put the preview at the end of the file
2671
- $$previewInfo{Fixup} or $$previewInfo{Fixup} = new Image::ExifTool::Fixup;
2674
+ $$previewInfo{Fixup} or $$previewInfo{Fixup} = Image::ExifTool::Fixup->new;
2672
2675
  $$previewInfo{Fixup}->AddFixup($fixup);
2673
2676
  }
2674
2677
  } elsif (defined $newData and $deleteAll) {
@@ -2722,7 +2725,7 @@ This file contains routines to write EXIF metadata.
2722
2725
 
2723
2726
  =head1 AUTHOR
2724
2727
 
2725
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
2728
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
2726
2729
 
2727
2730
  This library is free software; you can redistribute it and/or modify it
2728
2731
  under the same terms as Perl itself.
@@ -711,7 +711,7 @@ seldom-used routines.
711
711
 
712
712
  =head1 AUTHOR
713
713
 
714
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
714
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
715
715
 
716
716
  This library is free software; you can redistribute it and/or modify it
717
717
  under the same terms as Perl itself.
@@ -290,7 +290,7 @@ sub WritePDF($$)
290
290
  $raf->Seek($pos, 0);
291
291
 
292
292
  # create a new ExifTool object and use it to read PDF and XMP information
293
- my $newTool = new Image::ExifTool;
293
+ my $newTool = Image::ExifTool->new;
294
294
  $newTool->Options(List => 1);
295
295
  $newTool->Options(Password => $et->Options('Password'));
296
296
  $newTool->Options(NoPDFList => $et->Options('NoPDFList'));
@@ -753,7 +753,7 @@ C<PDF-update> pseudo group).
753
753
 
754
754
  =head1 AUTHOR
755
755
 
756
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
756
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
757
757
 
758
758
  This library is free software; you can redistribute it and/or modify it
759
759
  under the same terms as Perl itself.
@@ -401,7 +401,7 @@ strings).
401
401
 
402
402
  =head1 AUTHOR
403
403
 
404
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
404
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
405
405
 
406
406
  This library is free software; you can redistribute it and/or modify it
407
407
  under the same terms as Perl itself.
@@ -257,7 +257,7 @@ default resource name, and applied if no appended name is provided.
257
257
 
258
258
  =head1 AUTHOR
259
259
 
260
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
260
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
261
261
 
262
262
  This library is free software; you can redistribute it and/or modify it
263
263
  under the same terms as Perl itself.
@@ -687,7 +687,7 @@ Thanks to Tim Kordick for his help testing the EPS writer.
687
687
 
688
688
  =head1 AUTHOR
689
689
 
690
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
690
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
691
691
 
692
692
  This library is free software; you can redistribute it and/or modify it
693
693
  under the same terms as Perl itself.
@@ -169,8 +169,11 @@ sub ConvInvISO6709($)
169
169
  # with more than 5 digits after the decimal place:
170
170
  # https://exiftool.org/forum/index.php?topic=11055.msg67171#msg67171 )
171
171
  my @fmt = ('%s%02d.%s%s','%s%03d.%s%s','%s%d.%s%s');
172
+ my @limit = (90,180);
172
173
  foreach (@a) {
173
174
  return undef unless Image::ExifTool::IsFloat($_);
175
+ my $lim = shift @limit;
176
+ warn((@limit ? 'Lat' : 'Long') . "itude out of range\n") if $lim and abs($_) > $lim;
174
177
  $_ =~ s/^([-+]?)(\d+)\.?(\d*)/sprintf(shift(@fmt),$1||'+',$2,$3,length($3)<3 ? '0'x(3-length($3)) : '')/e;
175
178
  }
176
179
  return join '', @a, '/';
@@ -782,7 +785,7 @@ sub WriteQuickTime($$$)
782
785
  my ($rtnVal, $rtnErr) = $dataPt ? (undef, undef) : (1, 0);
783
786
 
784
787
  if ($dataPt) {
785
- $raf = new File::RandomAccess($dataPt);
788
+ $raf = File::RandomAccess->new($dataPt);
786
789
  } else {
787
790
  return 0 unless $raf;
788
791
  }
@@ -1958,7 +1961,7 @@ QuickTime-based file formats like MOV and MP4.
1958
1961
 
1959
1962
  =head1 AUTHOR
1960
1963
 
1961
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
1964
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
1962
1965
 
1963
1966
  This library is free software; you can redistribute it and/or modify it
1964
1967
  under the same terms as Perl itself.
@@ -363,7 +363,7 @@ Currently writes only WebP files.
363
363
 
364
364
  =head1 AUTHOR
365
365
 
366
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
366
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
367
367
 
368
368
  This library is free software; you can redistribute it and/or modify it
369
369
  under the same terms as Perl itself.
@@ -137,13 +137,15 @@ sub ValidateProperty($$;$)
137
137
 
138
138
  #------------------------------------------------------------------------------
139
139
  # Check XMP date values for validity and format accordingly
140
- # Inputs: 1) EXIF-format date string
140
+ # Inputs: 1) EXIF-format date string (XMP-format also accepted)
141
141
  # Returns: XMP date/time string (or undef on error)
142
142
  sub FormatXMPDate($)
143
143
  {
144
144
  my $val = shift;
145
145
  my ($y, $m, $d, $t, $tz);
146
- if ($val =~ /(\d{4}):(\d{2}):(\d{2}) (\d{2}:\d{2}(?::\d{2}(?:\.\d*)?)?)(.*)/) {
146
+ if ($val =~ /(\d{4}):(\d{2}):(\d{2}) (\d{2}:\d{2}(?::\d{2}(?:\.\d*)?)?)(.*)/ or
147
+ $val =~ /(\d{4})-(\d{2})-(\d{2})T(\d{2}:\d{2}(?::\d{2}(?:\.\d*)?)?)(.*)/)
148
+ {
147
149
  ($y, $m, $d, $t, $tz) = ($1, $2, $3, $4, $5);
148
150
  $val = "$y-$m-${d}T$t";
149
151
  } elsif ($val =~ /^\s*\d{4}(:\d{2}){0,2}\s*$/) {
@@ -1081,6 +1083,8 @@ sub WriteXMP($$;$)
1081
1083
  # delete all structure (or pseudo-structure) elements
1082
1084
  require 'Image/ExifTool/XMPStruct.pl';
1083
1085
  ($deleted, $added, $existed) = DeleteStruct($et, \%capture, \$path, $nvHash, \$changed);
1086
+ # don't add if it didn't exist and not IsCreating and Avoid
1087
+ undef $added if not $existed and not $$nvHash{IsCreating} and $$tagInfo{Avoid};
1084
1088
  next unless $deleted or $added or $et->IsOverwriting($nvHash);
1085
1089
  next if $existed and $$nvHash{CreateOnly};
1086
1090
  } elsif ($cap) {
@@ -1260,8 +1264,8 @@ sub WriteXMP($$;$)
1260
1264
  # check to see if we want to create this tag
1261
1265
  # (create non-avoided tags in XMP data files by default)
1262
1266
  my $isCreating = ($$nvHash{IsCreating} or (($isStruct or
1263
- ($preferred and not $$tagInfo{Avoid} and
1264
- not defined $$nvHash{Shift})) and not $$nvHash{EditOnly}));
1267
+ ($preferred and not defined $$nvHash{Shift})) and
1268
+ not $$tagInfo{Avoid} and not $$nvHash{EditOnly}));
1265
1269
 
1266
1270
  # don't add new values unless...
1267
1271
  # ...tag existed before and was deleted, or we added it to a list
@@ -1635,7 +1639,7 @@ This file contains routines to write XMP metadata.
1635
1639
 
1636
1640
  =head1 AUTHOR
1637
1641
 
1638
- Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
1642
+ Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
1639
1643
 
1640
1644
  This library is free software; you can redistribute it and/or modify it
1641
1645
  under the same terms as Perl itself.