exiftool_vendored 13.10.0 → 13.14.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 (216) hide show
  1. checksums.yaml +4 -4
  2. data/bin/Changes +82 -19
  3. data/bin/MANIFEST +6 -0
  4. data/bin/META.json +1 -1
  5. data/bin/META.yml +1 -1
  6. data/bin/README +3 -3
  7. data/bin/arg_files/exif2xmp.args +4 -0
  8. data/bin/arg_files/xmp2exif.args +2 -1
  9. data/bin/build_geolocation +1 -1
  10. data/bin/exiftool +208 -150
  11. data/bin/lib/File/RandomAccess.pm +1 -1
  12. data/bin/lib/File/RandomAccess.pod +2 -2
  13. data/bin/lib/Image/ExifTool/AAC.pm +1 -1
  14. data/bin/lib/Image/ExifTool/AES.pm +1 -1
  15. data/bin/lib/Image/ExifTool/AFCP.pm +6 -6
  16. data/bin/lib/Image/ExifTool/AIFF.pm +1 -1
  17. data/bin/lib/Image/ExifTool/APE.pm +1 -1
  18. data/bin/lib/Image/ExifTool/APP12.pm +1 -1
  19. data/bin/lib/Image/ExifTool/ASF.pm +1 -1
  20. data/bin/lib/Image/ExifTool/Apple.pm +1 -1
  21. data/bin/lib/Image/ExifTool/Audible.pm +1 -1
  22. data/bin/lib/Image/ExifTool/BMP.pm +1 -1
  23. data/bin/lib/Image/ExifTool/BPG.pm +1 -1
  24. data/bin/lib/Image/ExifTool/BZZ.pm +1 -1
  25. data/bin/lib/Image/ExifTool/BigTIFF.pm +1 -1
  26. data/bin/lib/Image/ExifTool/BuildTagLookup.pm +29 -18
  27. data/bin/lib/Image/ExifTool/CBOR.pm +1 -1
  28. data/bin/lib/Image/ExifTool/Canon.pm +8 -4
  29. data/bin/lib/Image/ExifTool/CanonCustom.pm +1 -1
  30. data/bin/lib/Image/ExifTool/CanonRaw.pm +1 -1
  31. data/bin/lib/Image/ExifTool/CanonVRD.pm +1 -1
  32. data/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
  33. data/bin/lib/Image/ExifTool/Casio.pm +1 -1
  34. data/bin/lib/Image/ExifTool/Charset.pm +1 -1
  35. data/bin/lib/Image/ExifTool/DICOM.pm +1 -1
  36. data/bin/lib/Image/ExifTool/DJI.pm +150 -46
  37. data/bin/lib/Image/ExifTool/DNG.pm +1 -1
  38. data/bin/lib/Image/ExifTool/DPX.pm +1 -1
  39. data/bin/lib/Image/ExifTool/DV.pm +1 -1
  40. data/bin/lib/Image/ExifTool/DarwinCore.pm +1 -1
  41. data/bin/lib/Image/ExifTool/DjVu.pm +1 -1
  42. data/bin/lib/Image/ExifTool/EXE.pm +123 -32
  43. data/bin/lib/Image/ExifTool/Exif.pm +7 -4
  44. data/bin/lib/Image/ExifTool/FITS.pm +1 -1
  45. data/bin/lib/Image/ExifTool/FLAC.pm +1 -1
  46. data/bin/lib/Image/ExifTool/FLIF.pm +1 -1
  47. data/bin/lib/Image/ExifTool/FLIR.pm +1 -1
  48. data/bin/lib/Image/ExifTool/Fixup.pm +1 -1
  49. data/bin/lib/Image/ExifTool/Flash.pm +1 -1
  50. data/bin/lib/Image/ExifTool/FlashPix.pm +1 -1
  51. data/bin/lib/Image/ExifTool/Font.pm +1 -1
  52. data/bin/lib/Image/ExifTool/FotoStation.pm +1 -1
  53. data/bin/lib/Image/ExifTool/FujiFilm.pm +1 -1
  54. data/bin/lib/Image/ExifTool/GE.pm +1 -1
  55. data/bin/lib/Image/ExifTool/GIF.pm +1 -1
  56. data/bin/lib/Image/ExifTool/GIMP.pm +1 -1
  57. data/bin/lib/Image/ExifTool/GM.pm +1 -1
  58. data/bin/lib/Image/ExifTool/GPS.pm +1 -1
  59. data/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
  60. data/bin/lib/Image/ExifTool/Geolocation.pm +17 -8
  61. data/bin/lib/Image/ExifTool/Geotag.pm +1 -1
  62. data/bin/lib/Image/ExifTool/GoPro.pm +1 -1
  63. data/bin/lib/Image/ExifTool/H264.pm +1 -1
  64. data/bin/lib/Image/ExifTool/HP.pm +1 -1
  65. data/bin/lib/Image/ExifTool/HTML.pm +1 -1
  66. data/bin/lib/Image/ExifTool/HtmlDump.pm +1 -1
  67. data/bin/lib/Image/ExifTool/ICC_Profile.pm +1 -1
  68. data/bin/lib/Image/ExifTool/ICO.pm +1 -1
  69. data/bin/lib/Image/ExifTool/ID3.pm +1 -1
  70. data/bin/lib/Image/ExifTool/IPTC.pm +8 -5
  71. data/bin/lib/Image/ExifTool/ISO.pm +1 -1
  72. data/bin/lib/Image/ExifTool/ITC.pm +1 -1
  73. data/bin/lib/Image/ExifTool/Import.pm +5 -4
  74. data/bin/lib/Image/ExifTool/InDesign.pm +1 -1
  75. data/bin/lib/Image/ExifTool/InfiRay.pm +1 -1
  76. data/bin/lib/Image/ExifTool/JPEG.pm +6 -2
  77. data/bin/lib/Image/ExifTool/JPEGDigest.pm +1 -1
  78. data/bin/lib/Image/ExifTool/JSON.pm +1 -1
  79. data/bin/lib/Image/ExifTool/JVC.pm +1 -1
  80. data/bin/lib/Image/ExifTool/Jpeg2000.pm +1 -1
  81. data/bin/lib/Image/ExifTool/Kodak.pm +1 -1
  82. data/bin/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
  83. data/bin/lib/Image/ExifTool/LIF.pm +1 -1
  84. data/bin/lib/Image/ExifTool/LNK.pm +1 -1
  85. data/bin/lib/Image/ExifTool/Lang/cs.pm +1 -1
  86. data/bin/lib/Image/ExifTool/Lang/de.pm +1 -1
  87. data/bin/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
  88. data/bin/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
  89. data/bin/lib/Image/ExifTool/Lang/es.pm +1 -1
  90. data/bin/lib/Image/ExifTool/Lang/fi.pm +1 -1
  91. data/bin/lib/Image/ExifTool/Lang/fr.pm +1 -1
  92. data/bin/lib/Image/ExifTool/Lang/it.pm +1 -1
  93. data/bin/lib/Image/ExifTool/Lang/ja.pm +1 -1
  94. data/bin/lib/Image/ExifTool/Lang/ko.pm +1 -1
  95. data/bin/lib/Image/ExifTool/Lang/nl.pm +1 -1
  96. data/bin/lib/Image/ExifTool/Lang/pl.pm +1 -1
  97. data/bin/lib/Image/ExifTool/Lang/ru.pm +1 -1
  98. data/bin/lib/Image/ExifTool/Lang/sk.pm +1 -1
  99. data/bin/lib/Image/ExifTool/Lang/sv.pm +1 -1
  100. data/bin/lib/Image/ExifTool/Lang/tr.pm +1 -1
  101. data/bin/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
  102. data/bin/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
  103. data/bin/lib/Image/ExifTool/Leaf.pm +1 -1
  104. data/bin/lib/Image/ExifTool/LigoGPS.pm +409 -0
  105. data/bin/lib/Image/ExifTool/Lytro.pm +1 -1
  106. data/bin/lib/Image/ExifTool/M2TS.pm +22 -13
  107. data/bin/lib/Image/ExifTool/MIE.pm +1 -1
  108. data/bin/lib/Image/ExifTool/MIEUnits.pod +1 -1
  109. data/bin/lib/Image/ExifTool/MIFF.pm +1 -1
  110. data/bin/lib/Image/ExifTool/MISB.pm +1 -1
  111. data/bin/lib/Image/ExifTool/MNG.pm +1 -1
  112. data/bin/lib/Image/ExifTool/MOI.pm +1 -1
  113. data/bin/lib/Image/ExifTool/MPC.pm +1 -1
  114. data/bin/lib/Image/ExifTool/MPEG.pm +1 -1
  115. data/bin/lib/Image/ExifTool/MPF.pm +1 -1
  116. data/bin/lib/Image/ExifTool/MRC.pm +1 -1
  117. data/bin/lib/Image/ExifTool/MWG.pm +1 -1
  118. data/bin/lib/Image/ExifTool/MXF.pm +1 -1
  119. data/bin/lib/Image/ExifTool/MacOS.pm +1 -1
  120. data/bin/lib/Image/ExifTool/MakerNotes.pm +1 -1
  121. data/bin/lib/Image/ExifTool/Matroska.pm +12 -4
  122. data/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
  123. data/bin/lib/Image/ExifTool/Minolta.pm +1 -1
  124. data/bin/lib/Image/ExifTool/MinoltaRaw.pm +1 -1
  125. data/bin/lib/Image/ExifTool/Motorola.pm +1 -1
  126. data/bin/lib/Image/ExifTool/Nikon.pm +166 -35
  127. data/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
  128. data/bin/lib/Image/ExifTool/NikonCustom.pm +1 -1
  129. data/bin/lib/Image/ExifTool/NikonSettings.pm +1 -1
  130. data/bin/lib/Image/ExifTool/Nintendo.pm +1 -1
  131. data/bin/lib/Image/ExifTool/OOXML.pm +1 -1
  132. data/bin/lib/Image/ExifTool/Ogg.pm +1 -1
  133. data/bin/lib/Image/ExifTool/Olympus.pm +1 -1
  134. data/bin/lib/Image/ExifTool/OpenEXR.pm +1 -1
  135. data/bin/lib/Image/ExifTool/Opus.pm +1 -1
  136. data/bin/lib/Image/ExifTool/Other.pm +1 -1
  137. data/bin/lib/Image/ExifTool/PCX.pm +1 -1
  138. data/bin/lib/Image/ExifTool/PDF.pm +1 -1
  139. data/bin/lib/Image/ExifTool/PGF.pm +1 -1
  140. data/bin/lib/Image/ExifTool/PICT.pm +1 -1
  141. data/bin/lib/Image/ExifTool/PLIST.pm +1 -1
  142. data/bin/lib/Image/ExifTool/PLUS.pm +1 -1
  143. data/bin/lib/Image/ExifTool/PNG.pm +1 -1
  144. data/bin/lib/Image/ExifTool/PPM.pm +1 -1
  145. data/bin/lib/Image/ExifTool/PSP.pm +1 -1
  146. data/bin/lib/Image/ExifTool/Palm.pm +1 -1
  147. data/bin/lib/Image/ExifTool/Panasonic.pm +20 -2
  148. data/bin/lib/Image/ExifTool/PanasonicRaw.pm +1 -1
  149. data/bin/lib/Image/ExifTool/Parrot.pm +1 -1
  150. data/bin/lib/Image/ExifTool/Pentax.pm +1 -1
  151. data/bin/lib/Image/ExifTool/PhaseOne.pm +1 -1
  152. data/bin/lib/Image/ExifTool/PhotoCD.pm +1 -1
  153. data/bin/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
  154. data/bin/lib/Image/ExifTool/Photoshop.pm +1 -1
  155. data/bin/lib/Image/ExifTool/PostScript.pm +1 -1
  156. data/bin/lib/Image/ExifTool/PrintIM.pm +1 -1
  157. data/bin/lib/Image/ExifTool/Protobuf.pm +48 -20
  158. data/bin/lib/Image/ExifTool/Qualcomm.pm +1 -1
  159. data/bin/lib/Image/ExifTool/QuickTime.pm +206 -66
  160. data/bin/lib/Image/ExifTool/QuickTimeStream.pl +21 -303
  161. data/bin/lib/Image/ExifTool/README +4 -0
  162. data/bin/lib/Image/ExifTool/RIFF.pm +1 -1
  163. data/bin/lib/Image/ExifTool/RSRC.pm +1 -1
  164. data/bin/lib/Image/ExifTool/RTF.pm +1 -1
  165. data/bin/lib/Image/ExifTool/Radiance.pm +1 -1
  166. data/bin/lib/Image/ExifTool/Rawzor.pm +1 -1
  167. data/bin/lib/Image/ExifTool/Real.pm +1 -1
  168. data/bin/lib/Image/ExifTool/Reconyx.pm +1 -1
  169. data/bin/lib/Image/ExifTool/Red.pm +1 -1
  170. data/bin/lib/Image/ExifTool/Ricoh.pm +1 -1
  171. data/bin/lib/Image/ExifTool/Samsung.pm +2 -2
  172. data/bin/lib/Image/ExifTool/Sanyo.pm +1 -1
  173. data/bin/lib/Image/ExifTool/Scalado.pm +1 -1
  174. data/bin/lib/Image/ExifTool/Shift.pl +1 -1
  175. data/bin/lib/Image/ExifTool/Shortcuts.pm +1 -1
  176. data/bin/lib/Image/ExifTool/Sigma.pm +1 -1
  177. data/bin/lib/Image/ExifTool/SigmaRaw.pm +1 -1
  178. data/bin/lib/Image/ExifTool/Sony.pm +1 -1
  179. data/bin/lib/Image/ExifTool/SonyIDC.pm +1 -1
  180. data/bin/lib/Image/ExifTool/Stim.pm +1 -1
  181. data/bin/lib/Image/ExifTool/TagInfoXML.pm +2 -2
  182. data/bin/lib/Image/ExifTool/TagLookup.pm +3449 -3435
  183. data/bin/lib/Image/ExifTool/TagNames.pod +164 -47
  184. data/bin/lib/Image/ExifTool/Text.pm +1 -1
  185. data/bin/lib/Image/ExifTool/Theora.pm +1 -1
  186. data/bin/lib/Image/ExifTool/Torrent.pm +3 -3
  187. data/bin/lib/Image/ExifTool/Unknown.pm +1 -1
  188. data/bin/lib/Image/ExifTool/VCard.pm +1 -1
  189. data/bin/lib/Image/ExifTool/Validate.pm +1 -1
  190. data/bin/lib/Image/ExifTool/Vivo.pm +124 -0
  191. data/bin/lib/Image/ExifTool/Vorbis.pm +1 -1
  192. data/bin/lib/Image/ExifTool/WPG.pm +1 -1
  193. data/bin/lib/Image/ExifTool/WTV.pm +1 -1
  194. data/bin/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
  195. data/bin/lib/Image/ExifTool/WriteExif.pl +1 -1
  196. data/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
  197. data/bin/lib/Image/ExifTool/WritePDF.pl +1 -1
  198. data/bin/lib/Image/ExifTool/WritePNG.pl +1 -1
  199. data/bin/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
  200. data/bin/lib/Image/ExifTool/WritePostScript.pl +1 -1
  201. data/bin/lib/Image/ExifTool/WriteQuickTime.pl +74 -43
  202. data/bin/lib/Image/ExifTool/WriteRIFF.pl +1 -1
  203. data/bin/lib/Image/ExifTool/WriteXMP.pl +1 -1
  204. data/bin/lib/Image/ExifTool/Writer.pl +21 -16
  205. data/bin/lib/Image/ExifTool/XISF.pm +1 -1
  206. data/bin/lib/Image/ExifTool/XMP.pm +1 -1
  207. data/bin/lib/Image/ExifTool/XMP2.pl +1 -1
  208. data/bin/lib/Image/ExifTool/XMPStruct.pl +1 -1
  209. data/bin/lib/Image/ExifTool/ZIP.pm +1 -1
  210. data/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
  211. data/bin/lib/Image/ExifTool/iWork.pm +1 -1
  212. data/bin/lib/Image/ExifTool.pm +34 -12
  213. data/bin/lib/Image/ExifTool.pod +57 -46
  214. data/bin/perl-Image-ExifTool.spec +1 -1
  215. data/lib/exiftool_vendored/version.rb +1 -1
  216. metadata +4 -2
@@ -29,7 +29,7 @@
29
29
  # Sets internal ERROR member from $! if there is an error reading
30
30
  # the file.
31
31
  #
32
- # Legal: Copyright (c) 2003-2024, Phil Harvey (philharvey66 at gmail.com)
32
+ # Legal: Copyright (c) 2003-2025, Phil Harvey (philharvey66 at gmail.com)
33
33
  # This library is free software; you can redistribute it and/or
34
34
  # modify it under the same terms as Perl itself.
35
35
  #------------------------------------------------------------------------------
@@ -3,7 +3,7 @@
3
3
  #
4
4
  # Description: Buffer to support random access reading of sequential file
5
5
  #
6
- # Legal: Copyright (c) 2003-2024, Phil Harvey (philharvey66 at gmail.com)
6
+ # Legal: Copyright (c) 2003-2025, Phil Harvey (philharvey66 at gmail.com)
7
7
  # This library is free software; you can redistribute it and/or
8
8
  # modify it under the same terms as Perl itself.
9
9
  #------------------------------------------------------------------------------
@@ -236,7 +236,7 @@ the end of file is not allowed.
236
236
 
237
237
  =head1 AUTHOR
238
238
 
239
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
239
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
240
240
 
241
241
  This library is free software; you can redistribute it and/or modify it
242
242
  under the same terms as Perl itself.
@@ -163,7 +163,7 @@ based on unofficial sources which may be incomplete, inaccurate or outdated.
163
163
 
164
164
  =head1 AUTHOR
165
165
 
166
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
166
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
167
167
 
168
168
  This library is free software; you can redistribute it and/or modify it
169
169
  under the same terms as Perl itself.
@@ -477,7 +477,7 @@ main purpose of encryption, so this really can't be considered a bug.
477
477
 
478
478
  =head1 AUTHOR
479
479
 
480
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
480
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
481
481
 
482
482
  This library is free software; you can redistribute it and/or modify it
483
483
  under the same terms as Perl itself.
@@ -14,7 +14,7 @@ use strict;
14
14
  use vars qw($VERSION);
15
15
  use Image::ExifTool qw(:DataAccess :Utils);
16
16
 
17
- $VERSION = '1.09';
17
+ $VERSION = '1.10';
18
18
 
19
19
  sub ProcessAFCP($$);
20
20
 
@@ -63,10 +63,10 @@ for the AFCP specification.
63
63
  #------------------------------------------------------------------------------
64
64
  # Read/write AFCP information in a file
65
65
  # Inputs: 0) ExifTool object reference, 1) dirInfo reference
66
- # (Set 'ScanForAFCP' member in dirInfo to scan from current position for AFCP)
66
+ # (Set 'ScanForTrailer' member in dirInfo to scan from current position for AFCP)
67
67
  # Returns: 1 on success, 0 if this file didn't contain AFCP information
68
68
  # -1 on write error or if the offsets were incorrect on reading
69
- # - updates DataPos to point to actual AFCP start if ScanForAFCP is set
69
+ # - updates DataPos to point to actual AFCP start if ScanForTrailer is set
70
70
  # - updates DirLen to trailer length
71
71
  # - returns Fixup reference in dirInfo hash when writing
72
72
  sub ProcessAFCP($$)
@@ -91,8 +91,8 @@ NoAFCP: for (;;) {
91
91
  $fix = 0;
92
92
  } else {
93
93
  $rtnVal = -1;
94
- # look for start of AXS trailer if 'ScanForAFCP'
95
- last unless $$dirInfo{ScanForAFCP} and $raf->Seek($curPos, 0);
94
+ # look for start of AXS trailer if 'ScanForTrailer'
95
+ last unless $$dirInfo{ScanForTrailer} and $raf->Seek($curPos, 0);
96
96
  my $actualPos = $curPos;
97
97
  # first look for header right at current position
98
98
  for (;;) {
@@ -259,7 +259,7 @@ scanning for AFCP information.
259
259
 
260
260
  =head1 AUTHOR
261
261
 
262
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
262
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
263
263
 
264
264
  This library is free software; you can redistribute it and/or modify it
265
265
  under the same terms as Perl itself.
@@ -291,7 +291,7 @@ information from AIFF (Audio Interchange File Format) audio files.
291
291
 
292
292
  =head1 AUTHOR
293
293
 
294
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
294
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
295
295
 
296
296
  This library is free software; you can redistribute it and/or modify it
297
297
  under the same terms as Perl itself.
@@ -263,7 +263,7 @@ Currently doesn't parse MAC header unless it is at the start of the file.
263
263
 
264
264
  =head1 AUTHOR
265
265
 
266
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
266
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
267
267
 
268
268
  This library is free software; you can redistribute it and/or modify it
269
269
  under the same terms as Perl itself.
@@ -306,7 +306,7 @@ APP12 meta information.
306
306
 
307
307
  =head1 AUTHOR
308
308
 
309
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
309
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
310
310
 
311
311
  This library is free software; you can redistribute it and/or modify it
312
312
  under the same terms as Perl itself.
@@ -879,7 +879,7 @@ Windows Media Audio (WMA) and Windows Media Video (WMV) files.
879
879
 
880
880
  =head1 AUTHOR
881
881
 
882
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
882
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
883
883
 
884
884
  This library is free software; you can redistribute it and/or modify it
885
885
  under the same terms as Perl itself.
@@ -390,7 +390,7 @@ Apple maker notes in EXIF information.
390
390
 
391
391
  =head1 AUTHOR
392
392
 
393
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
393
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
394
394
 
395
395
  This library is free software; you can redistribute it and/or modify it
396
396
  under the same terms as Perl itself.
@@ -291,7 +291,7 @@ information from Audible audio books.
291
291
 
292
292
  =head1 AUTHOR
293
293
 
294
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
294
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
295
295
 
296
296
  This library is free software; you can redistribute it and/or modify it
297
297
  under the same terms as Perl itself.
@@ -335,7 +335,7 @@ This module contains definitions required by Image::ExifTool to read BMP
335
335
 
336
336
  =head1 AUTHOR
337
337
 
338
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
338
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
339
339
 
340
340
  This library is free software; you can redistribute it and/or modify it
341
341
  under the same terms as Perl itself.
@@ -231,7 +231,7 @@ This module contains definitions required by Image::ExifTool to read BPG
231
231
 
232
232
  =head1 AUTHOR
233
233
 
234
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
234
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
235
235
 
236
236
  This library is free software; you can redistribute it and/or modify it
237
237
  under the same terms as Perl itself.
@@ -445,7 +445,7 @@ compression ability).
445
445
 
446
446
  =head1 AUTHOR
447
447
 
448
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
448
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
449
449
  Copyright 2002, Leon Bottou and Yann Le Cun
450
450
  Copyright 2001, AT&T
451
451
  Copyright 1999-2001, LizardTech Inc.
@@ -282,7 +282,7 @@ information in BigTIFF images.
282
282
 
283
283
  =head1 AUTHOR
284
284
 
285
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
285
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
286
286
 
287
287
  This library is free software; you can redistribute it and/or modify it
288
288
  under the same terms as Perl itself.
@@ -35,7 +35,7 @@ use Image::ExifTool::Sony;
35
35
  use Image::ExifTool::Validate;
36
36
  use Image::ExifTool::MacOS;
37
37
 
38
- $VERSION = '3.59';
38
+ $VERSION = '3.61';
39
39
  @ISA = qw(Exporter);
40
40
 
41
41
  sub NumbersFirst($$);
@@ -84,7 +84,8 @@ my %tweakOrder = (
84
84
  Nintendo => 'NikonCapture',
85
85
  Pentax => 'Panasonic',
86
86
  SonyIDC => 'Sony',
87
- Unknown => 'SonyIDC',
87
+ Vivo => 'SonyIDC',
88
+ Unknown => 'Vivo',
88
89
  DNG => 'Unknown',
89
90
  PrintIM => 'ICC_Profile',
90
91
  Vorbis => 'Ogg',
@@ -100,6 +101,8 @@ my %tweakOrder = (
100
101
  MWG => 'Shortcuts',
101
102
  'FujiFilm::RAF' => 'FujiFilm::RAFHeader',
102
103
  'FujiFilm::RAFData' => 'FujiFilm::RAF',
104
+ 'QuickTime::AudioKeys' => 'QuickTime::Keys',
105
+ 'QuickTime::VideoKeys' => 'QuickTime::AudioKeys',
103
106
  );
104
107
 
105
108
  # list of all recognized Format strings
@@ -437,15 +440,22 @@ appropriate table in the config file (see
437
440
  L<example.config|../config.html#PREF> in the full distribution for an
438
441
  example). Note that some tags with the same name but different ID's may
439
442
  exist in the same location, but the family 7 group names may be used to
440
- differentiate these. ExifTool currently writes only top-level metadata in
441
- QuickTime-based files; it extracts other track-specific and timed metadata,
442
- but can not yet edit tags in these locations (with the exception of
443
- track-level date/time tags).
443
+ differentiate these.
444
444
 
445
- Beware that the Keys tags are actually stored inside the ItemList in the
446
- file, so deleting the ItemList group as a block (ie. C<-ItemList:all=>) also
447
- deletes Keys tags. Instead, to preserve Keys tags the ItemList tags may be
448
- deleted individually with C<-QuickTime:ItemList:all=>.
445
+ ExifTool currently writes
446
+ L<ItemList|Image::ExifTool::TagNames/QuickTime ItemList Tags> and
447
+ L<UserData|Image::ExifTool::TagNames/QuickTime UserData Tags> only as
448
+ top-level metadata, but select Keys tags are may be written to the audio or
449
+ video track. See the
450
+ L<AudioKeys|Image::ExifTool::TagNames/QuickTime AudioKeys Tags> and
451
+ L<VideoKeys|Image::ExifTool::TagNames/QuickTime VideoKeys Tags> tags for
452
+ more information.
453
+
454
+ Beware that the values of the Keys tags are actually stored inside an
455
+ ItemList atom in the file, so deleting the ItemList group as a block (ie.
456
+ C<-ItemList:all=>) also deletes Keys tags. Instead, to preserve Keys tags
457
+ the ItemList tags may be deleted individually with
458
+ C<-QuickTime:ItemList:all=>.
449
459
 
450
460
  Alternate language tags may be accessed for
451
461
  L<ItemList|Image::ExifTool::TagNames/QuickTime ItemList Tags> and
@@ -688,7 +698,7 @@ L<Image::ExifTool::BuildTagLookup|Image::ExifTool::BuildTagLookup>.
688
698
 
689
699
  ~head1 AUTHOR
690
700
 
691
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
701
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
692
702
 
693
703
  This library is free software; you can redistribute it and/or modify it
694
704
  under the same terms as Perl itself.
@@ -1340,7 +1350,7 @@ TagID: foreach $tagID (@keys) {
1340
1350
  $writable = 'yes' if $tw and $writable eq '1' or $writable eq '2';
1341
1351
  $writable = '-' . ($tw ? $writable : '');
1342
1352
  $writable .= '!' if $tw and ($$tagInfo{Protected} || 0) & 0x01;
1343
- $writable .= '+' if $$tagInfo{List};
1353
+ $writable .= '+' if $$tagInfo{List} or $$tagInfo{IsList};
1344
1354
  if (defined $$tagInfo{Permanent}) {
1345
1355
  $writable .= '^' unless $$tagInfo{Permanent};
1346
1356
  } elsif (defined $$table{PERMANENT}) {
@@ -1398,7 +1408,7 @@ TagID: foreach $tagID (@keys) {
1398
1408
  }
1399
1409
  $writable = "=struct" if $struct;
1400
1410
  $writable .= '_' if defined $$tagInfo{Flat};
1401
- $writable .= '+' if $$tagInfo{List};
1411
+ $writable .= '+' if $$tagInfo{List} or $$tagInfo{IsList};
1402
1412
  $writable .= ':' if $$tagInfo{Mandatory};
1403
1413
  if (defined $$tagInfo{Permanent}) {
1404
1414
  $writable .= '^' unless $$tagInfo{Permanent};
@@ -1566,7 +1576,7 @@ TagID: foreach $tagID (@keys) {
1566
1576
  $writable = 'string';
1567
1577
  }
1568
1578
  }
1569
- $writable .= '+' if $$tagInfo{List};
1579
+ $writable .= '+' if $$tagInfo{List} or $$tagInfo{IsList};
1570
1580
  push @vals, "($$tagInfo{Notes})" if $$tagInfo{Notes};
1571
1581
  # handle PrintConv lookups in Structure elements
1572
1582
  my $printConv = $$tagInfo{PrintConv};
@@ -1783,9 +1793,10 @@ sub NumbersFirst($$)
1783
1793
  $rtnVal = $numbersFirst;
1784
1794
  } else {
1785
1795
  my ($a2, $b2) = ($a, $b);
1786
- # expand numbers to 3 digits (with restrictions to avoid messing up ascii-hex tags)
1787
- $a2 =~ s/(\d+)/sprintf("%.3d",$1)/eg if $a2 =~ /^(APP|DMC-\w+ )?[.0-9 ]*$/ and length($a2)<16;
1788
- $b2 =~ s/(\d+)/sprintf("%.3d",$1)/eg if $b2 =~ /^(APP|DMC-\w+ )?[.0-9 ]*$/ and length($b2)<16;
1796
+ # expand numbers to 3 digits (with restrictions to avoid messing up
1797
+ # ascii-hex tags -- Nikon LensID's are 23 characters long)
1798
+ $a2 =~ s/(\d+)/sprintf("%.3d",$1)/eg if $a2 =~ /^(APP|DMC-\w+ |dvtm_.*)?[.0-9 ]*$/ and length($a2)<23;
1799
+ $b2 =~ s/(\d+)/sprintf("%.3d",$1)/eg if $b2 =~ /^(APP|DMC-\w+ |dvtm_.*)?[.0-9 ]*$/ and length($b2)<23;
1789
1800
  $caseInsensitive and $rtnVal = (lc($a2) cmp lc($b2));
1790
1801
  $rtnVal or $rtnVal = ($a2 cmp $b2);
1791
1802
  }
@@ -2811,7 +2822,7 @@ Returned list of writable pseudo tags.
2811
2822
 
2812
2823
  =head1 AUTHOR
2813
2824
 
2814
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
2825
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
2815
2826
 
2816
2827
  This library is free software; you can redistribute it and/or modify it
2817
2828
  under the same terms as Perl itself.
@@ -324,7 +324,7 @@ specification.
324
324
 
325
325
  =head1 AUTHOR
326
326
 
327
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
327
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
328
328
 
329
329
  This library is free software; you can redistribute it and/or modify it
330
330
  under the same terms as Perl itself.
@@ -88,7 +88,7 @@ sub ProcessCTMD($$$);
88
88
  sub ProcessExifInfo($$$);
89
89
  sub SwapWords($);
90
90
 
91
- $VERSION = '4.86';
91
+ $VERSION = '4.87';
92
92
 
93
93
  # Note: Removed 'USM' from 'L' lenses since it is redundant - PH
94
94
  # (or is it? Ref 32 shows 5 non-USM L-type lenses)
@@ -632,8 +632,10 @@ $VERSION = '4.86';
632
632
  '61182.55' => 'Canon RF-S 10-18mm F4.5-6.3 IS STM', #42
633
633
  '61182.56' => 'Canon RF 35mm F1.4 L VCM', #42
634
634
  '61182.57' => 'Canon RF 70-200mm F2.8 L IS USM Z', #42
635
- '61182.58' => 'Canon RF 50mm F1.4 L VCM', #42
636
- '61182.59' => 'Canon RF 24mm F1.4 L VCM', #42
635
+ '61182.58' => 'Canon RF 70-200mm F2.8 L IS USM Z + RF1.4x', #42
636
+ '61182.59' => 'Canon RF 70-200mm F2.8 L IS USM Z + RF2x', #42
637
+ '61182.60' => 'Canon RF 50mm F1.4 L VCM', #42
638
+ '61182.61' => 'Canon RF 24mm F1.4 L VCM', #42
637
639
  65535 => 'n/a',
638
640
  );
639
641
 
@@ -7023,6 +7025,8 @@ my %ciMaxFocal = (
7023
7025
  317 => 'Canon RF-S 3.9mm F3.5 STM DUAL FISHEYE', #42
7024
7026
  318 => 'Canon RF 28-70mm F2.8 IS STM', #42
7025
7027
  319 => 'Canon RF 70-200mm F2.8 L IS USM Z', #42
7028
+ 320 => 'Canon RF 70-200mm F2.8 L IS USM Z + RF1.4x', #42
7029
+ 321 => 'Canon RF 70-200mm F2.8 L IS USM Z + RF2x', #42
7026
7030
  325 => 'Canon RF 50mm F1.4 L VCM', #42
7027
7031
  326 => 'Canon RF 24mm F1.4 L VCM', #42
7028
7032
  # Note: add new RF lenses to %canonLensTypes with ID 61182
@@ -10591,7 +10595,7 @@ Canon maker notes in EXIF information.
10591
10595
 
10592
10596
  =head1 AUTHOR
10593
10597
 
10594
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
10598
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
10595
10599
 
10596
10600
  This library is free software; you can redistribute it and/or modify it
10597
10601
  under the same terms as Perl itself.
@@ -2873,7 +2873,7 @@ Image::ExifTool to read this information.
2873
2873
 
2874
2874
  =head1 AUTHOR
2875
2875
 
2876
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
2876
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
2877
2877
 
2878
2878
  This library is free software; you can redistribute it and/or modify it
2879
2879
  under the same terms as Perl itself.
@@ -888,7 +888,7 @@ tags.)
888
888
 
889
889
  =head1 AUTHOR
890
890
 
891
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
891
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
892
892
 
893
893
  This library is free software; you can redistribute it and/or modify it
894
894
  under the same terms as Perl itself.
@@ -2288,7 +2288,7 @@ files, and as a trailer in JPEG, CRW, CR2 and TIFF images.
2288
2288
 
2289
2289
  =head1 AUTHOR
2290
2290
 
2291
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
2291
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
2292
2292
 
2293
2293
  This library is free software; you can redistribute it and/or modify it
2294
2294
  under the same terms as Perl itself.
@@ -221,7 +221,7 @@ settings files (COS).
221
221
 
222
222
  =head1 AUTHOR
223
223
 
224
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
224
+ Copyright 2003-2025, 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.
@@ -2034,7 +2034,7 @@ Casio maker notes in EXIF information.
2034
2034
 
2035
2035
  =head1 AUTHOR
2036
2036
 
2037
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
2037
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
2038
2038
 
2039
2039
  This library is free software; you can redistribute it and/or modify it
2040
2040
  under the same terms as Perl itself.
@@ -422,7 +422,7 @@ when decoding certain types of information.
422
422
 
423
423
  =head1 AUTHOR
424
424
 
425
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
425
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
426
426
 
427
427
  This library is free software; you can redistribute it and/or modify it
428
428
  under the same terms as Perl itself.
@@ -3853,7 +3853,7 @@ No translation of special characters sets is done.
3853
3853
 
3854
3854
  =head1 AUTHOR
3855
3855
 
3856
- Copyright 2003-2024, Phil Harvey (philharvey66 at gmail.com)
3856
+ Copyright 2003-2025, Phil Harvey (philharvey66 at gmail.com)
3857
3857
 
3858
3858
  This library is free software; you can redistribute it and/or modify it
3859
3859
  under the same terms as Perl itself.