exiftool-vendored.pl 12.49.0 → 12.54.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (203) hide show
  1. package/bin/Changes +107 -6
  2. package/bin/MANIFEST +5 -0
  3. package/bin/META.json +1 -1
  4. package/bin/META.yml +1 -1
  5. package/bin/README +3 -3
  6. package/bin/exiftool +39 -30
  7. package/bin/lib/File/RandomAccess.pm +1 -1
  8. package/bin/lib/File/RandomAccess.pod +2 -2
  9. package/bin/lib/Image/ExifTool/AES.pm +1 -1
  10. package/bin/lib/Image/ExifTool/AFCP.pm +1 -1
  11. package/bin/lib/Image/ExifTool/AIFF.pm +1 -1
  12. package/bin/lib/Image/ExifTool/APE.pm +1 -1
  13. package/bin/lib/Image/ExifTool/APP12.pm +1 -1
  14. package/bin/lib/Image/ExifTool/ASF.pm +1 -1
  15. package/bin/lib/Image/ExifTool/Apple.pm +197 -27
  16. package/bin/lib/Image/ExifTool/Audible.pm +1 -1
  17. package/bin/lib/Image/ExifTool/BMP.pm +1 -1
  18. package/bin/lib/Image/ExifTool/BPG.pm +1 -1
  19. package/bin/lib/Image/ExifTool/BZZ.pm +1 -1
  20. package/bin/lib/Image/ExifTool/BigTIFF.pm +1 -1
  21. package/bin/lib/Image/ExifTool/BuildTagLookup.pm +10 -7
  22. package/bin/lib/Image/ExifTool/CBOR.pm +1 -1
  23. package/bin/lib/Image/ExifTool/Canon.pm +26 -9
  24. package/bin/lib/Image/ExifTool/CanonCustom.pm +1 -1
  25. package/bin/lib/Image/ExifTool/CanonRaw.pm +1 -1
  26. package/bin/lib/Image/ExifTool/CanonVRD.pm +9 -9
  27. package/bin/lib/Image/ExifTool/CaptureOne.pm +1 -1
  28. package/bin/lib/Image/ExifTool/Casio.pm +4 -4
  29. package/bin/lib/Image/ExifTool/Charset.pm +1 -1
  30. package/bin/lib/Image/ExifTool/DICOM.pm +1 -1
  31. package/bin/lib/Image/ExifTool/DJI.pm +1 -1
  32. package/bin/lib/Image/ExifTool/DNG.pm +1 -1
  33. package/bin/lib/Image/ExifTool/DPX.pm +1 -1
  34. package/bin/lib/Image/ExifTool/DV.pm +1 -1
  35. package/bin/lib/Image/ExifTool/DarwinCore.pm +1 -1
  36. package/bin/lib/Image/ExifTool/DjVu.pm +1 -1
  37. package/bin/lib/Image/ExifTool/EXE.pm +1 -1
  38. package/bin/lib/Image/ExifTool/Exif.pm +11 -21
  39. package/bin/lib/Image/ExifTool/FITS.pm +1 -1
  40. package/bin/lib/Image/ExifTool/FLAC.pm +1 -1
  41. package/bin/lib/Image/ExifTool/FLIF.pm +1 -1
  42. package/bin/lib/Image/ExifTool/FLIR.pm +7 -6
  43. package/bin/lib/Image/ExifTool/Fixup.pm +1 -1
  44. package/bin/lib/Image/ExifTool/Flash.pm +1 -1
  45. package/bin/lib/Image/ExifTool/FlashPix.pm +1 -1
  46. package/bin/lib/Image/ExifTool/Font.pm +1 -1
  47. package/bin/lib/Image/ExifTool/FotoStation.pm +1 -1
  48. package/bin/lib/Image/ExifTool/FujiFilm.pm +20 -13
  49. package/bin/lib/Image/ExifTool/GE.pm +1 -1
  50. package/bin/lib/Image/ExifTool/GIF.pm +1 -1
  51. package/bin/lib/Image/ExifTool/GIMP.pm +1 -1
  52. package/bin/lib/Image/ExifTool/GPS.pm +12 -6
  53. package/bin/lib/Image/ExifTool/GeoTiff.pm +1 -1
  54. package/bin/lib/Image/ExifTool/Geotag.pm +14 -6
  55. package/bin/lib/Image/ExifTool/GoPro.pm +1 -1
  56. package/bin/lib/Image/ExifTool/H264.pm +1 -1
  57. package/bin/lib/Image/ExifTool/HP.pm +1 -1
  58. package/bin/lib/Image/ExifTool/HTML.pm +1 -1
  59. package/bin/lib/Image/ExifTool/HtmlDump.pm +1 -1
  60. package/bin/lib/Image/ExifTool/ICC_Profile.pm +1 -1
  61. package/bin/lib/Image/ExifTool/ICO.pm +3 -1
  62. package/bin/lib/Image/ExifTool/ID3.pm +1 -1
  63. package/bin/lib/Image/ExifTool/IPTC.pm +6 -2
  64. package/bin/lib/Image/ExifTool/ISO.pm +1 -1
  65. package/bin/lib/Image/ExifTool/ITC.pm +1 -1
  66. package/bin/lib/Image/ExifTool/Import.pm +1 -1
  67. package/bin/lib/Image/ExifTool/InDesign.pm +1 -1
  68. package/bin/lib/Image/ExifTool/JPEG.pm +2 -1
  69. package/bin/lib/Image/ExifTool/JPEGDigest.pm +1 -1
  70. package/bin/lib/Image/ExifTool/JSON.pm +1 -1
  71. package/bin/lib/Image/ExifTool/JVC.pm +1 -1
  72. package/bin/lib/Image/ExifTool/Jpeg2000.pm +35 -8
  73. package/bin/lib/Image/ExifTool/Kodak.pm +1 -1
  74. package/bin/lib/Image/ExifTool/KyoceraRaw.pm +1 -1
  75. package/bin/lib/Image/ExifTool/LIF.pm +1 -1
  76. package/bin/lib/Image/ExifTool/LNK.pm +1 -1
  77. package/bin/lib/Image/ExifTool/Lang/cs.pm +1 -1
  78. package/bin/lib/Image/ExifTool/Lang/de.pm +2 -2
  79. package/bin/lib/Image/ExifTool/Lang/en_ca.pm +1 -1
  80. package/bin/lib/Image/ExifTool/Lang/en_gb.pm +1 -1
  81. package/bin/lib/Image/ExifTool/Lang/es.pm +1 -1
  82. package/bin/lib/Image/ExifTool/Lang/fi.pm +1 -1
  83. package/bin/lib/Image/ExifTool/Lang/fr.pm +6016 -760
  84. package/bin/lib/Image/ExifTool/Lang/it.pm +1 -1
  85. package/bin/lib/Image/ExifTool/Lang/ja.pm +1 -1
  86. package/bin/lib/Image/ExifTool/Lang/ko.pm +1 -1
  87. package/bin/lib/Image/ExifTool/Lang/nl.pm +1 -1
  88. package/bin/lib/Image/ExifTool/Lang/pl.pm +1 -1
  89. package/bin/lib/Image/ExifTool/Lang/ru.pm +1 -1
  90. package/bin/lib/Image/ExifTool/Lang/sk.pm +1806 -0
  91. package/bin/lib/Image/ExifTool/Lang/sv.pm +1 -1
  92. package/bin/lib/Image/ExifTool/Lang/tr.pm +1 -1
  93. package/bin/lib/Image/ExifTool/Lang/zh_cn.pm +1 -1
  94. package/bin/lib/Image/ExifTool/Lang/zh_tw.pm +1 -1
  95. package/bin/lib/Image/ExifTool/Leaf.pm +1 -1
  96. package/bin/lib/Image/ExifTool/Lytro.pm +1 -1
  97. package/bin/lib/Image/ExifTool/M2TS.pm +45 -2
  98. package/bin/lib/Image/ExifTool/MIE.pm +1 -1
  99. package/bin/lib/Image/ExifTool/MIEUnits.pod +1 -1
  100. package/bin/lib/Image/ExifTool/MIFF.pm +1 -1
  101. package/bin/lib/Image/ExifTool/MISB.pm +2 -2
  102. package/bin/lib/Image/ExifTool/MNG.pm +1 -1
  103. package/bin/lib/Image/ExifTool/MOI.pm +1 -1
  104. package/bin/lib/Image/ExifTool/MPC.pm +1 -1
  105. package/bin/lib/Image/ExifTool/MPEG.pm +1 -1
  106. package/bin/lib/Image/ExifTool/MPF.pm +1 -1
  107. package/bin/lib/Image/ExifTool/MRC.pm +1 -1
  108. package/bin/lib/Image/ExifTool/MWG.pm +1 -1
  109. package/bin/lib/Image/ExifTool/MXF.pm +1 -1
  110. package/bin/lib/Image/ExifTool/MacOS.pm +1 -1
  111. package/bin/lib/Image/ExifTool/MakerNotes.pm +1 -1
  112. package/bin/lib/Image/ExifTool/Matroska.pm +262 -46
  113. package/bin/lib/Image/ExifTool/Microsoft.pm +1 -1
  114. package/bin/lib/Image/ExifTool/Minolta.pm +1 -1
  115. package/bin/lib/Image/ExifTool/MinoltaRaw.pm +1 -1
  116. package/bin/lib/Image/ExifTool/Motorola.pm +1 -1
  117. package/bin/lib/Image/ExifTool/Nikon.pm +845 -355
  118. package/bin/lib/Image/ExifTool/NikonCapture.pm +1 -1
  119. package/bin/lib/Image/ExifTool/NikonCustom.pm +140 -107
  120. package/bin/lib/Image/ExifTool/NikonSettings.pm +1 -1
  121. package/bin/lib/Image/ExifTool/Nintendo.pm +1 -1
  122. package/bin/lib/Image/ExifTool/OOXML.pm +1 -1
  123. package/bin/lib/Image/ExifTool/Ogg.pm +1 -1
  124. package/bin/lib/Image/ExifTool/Olympus.pm +6 -4
  125. package/bin/lib/Image/ExifTool/OpenEXR.pm +1 -1
  126. package/bin/lib/Image/ExifTool/Opus.pm +1 -1
  127. package/bin/lib/Image/ExifTool/Other.pm +1 -1
  128. package/bin/lib/Image/ExifTool/PCX.pm +1 -1
  129. package/bin/lib/Image/ExifTool/PDF.pm +1 -1
  130. package/bin/lib/Image/ExifTool/PGF.pm +1 -1
  131. package/bin/lib/Image/ExifTool/PICT.pm +1 -1
  132. package/bin/lib/Image/ExifTool/PLIST.pm +12 -7
  133. package/bin/lib/Image/ExifTool/PLUS.pm +1 -1
  134. package/bin/lib/Image/ExifTool/PNG.pm +9 -2
  135. package/bin/lib/Image/ExifTool/PPM.pm +1 -1
  136. package/bin/lib/Image/ExifTool/PSP.pm +1 -1
  137. package/bin/lib/Image/ExifTool/Palm.pm +1 -1
  138. package/bin/lib/Image/ExifTool/Panasonic.pm +1 -1
  139. package/bin/lib/Image/ExifTool/PanasonicRaw.pm +1 -1
  140. package/bin/lib/Image/ExifTool/Parrot.pm +1 -1
  141. package/bin/lib/Image/ExifTool/Pentax.pm +8 -3
  142. package/bin/lib/Image/ExifTool/PhaseOne.pm +1 -1
  143. package/bin/lib/Image/ExifTool/PhotoCD.pm +1 -1
  144. package/bin/lib/Image/ExifTool/PhotoMechanic.pm +1 -1
  145. package/bin/lib/Image/ExifTool/Photoshop.pm +1 -1
  146. package/bin/lib/Image/ExifTool/PostScript.pm +1 -1
  147. package/bin/lib/Image/ExifTool/PrintIM.pm +1 -1
  148. package/bin/lib/Image/ExifTool/Qualcomm.pm +1 -1
  149. package/bin/lib/Image/ExifTool/QuickTime.pm +52 -9
  150. package/bin/lib/Image/ExifTool/QuickTimeStream.pl +95 -14
  151. package/bin/lib/Image/ExifTool/README +6 -1
  152. package/bin/lib/Image/ExifTool/RIFF.pm +1 -1
  153. package/bin/lib/Image/ExifTool/RSRC.pm +1 -1
  154. package/bin/lib/Image/ExifTool/RTF.pm +1 -1
  155. package/bin/lib/Image/ExifTool/Radiance.pm +1 -1
  156. package/bin/lib/Image/ExifTool/Rawzor.pm +1 -1
  157. package/bin/lib/Image/ExifTool/Real.pm +1 -1
  158. package/bin/lib/Image/ExifTool/Reconyx.pm +1 -1
  159. package/bin/lib/Image/ExifTool/Red.pm +1 -1
  160. package/bin/lib/Image/ExifTool/Ricoh.pm +1 -1
  161. package/bin/lib/Image/ExifTool/Samsung.pm +3 -1
  162. package/bin/lib/Image/ExifTool/Sanyo.pm +1 -1
  163. package/bin/lib/Image/ExifTool/Scalado.pm +1 -1
  164. package/bin/lib/Image/ExifTool/Shift.pl +1 -1
  165. package/bin/lib/Image/ExifTool/Shortcuts.pm +1 -1
  166. package/bin/lib/Image/ExifTool/Sigma.pm +1 -1
  167. package/bin/lib/Image/ExifTool/SigmaRaw.pm +1 -1
  168. package/bin/lib/Image/ExifTool/Sony.pm +35 -20
  169. package/bin/lib/Image/ExifTool/SonyIDC.pm +1 -1
  170. package/bin/lib/Image/ExifTool/Stim.pm +1 -1
  171. package/bin/lib/Image/ExifTool/TagInfoXML.pm +15 -8
  172. package/bin/lib/Image/ExifTool/TagLookup.pm +4672 -4568
  173. package/bin/lib/Image/ExifTool/TagNames.pod +357 -46
  174. package/bin/lib/Image/ExifTool/Text.pm +1 -1
  175. package/bin/lib/Image/ExifTool/Theora.pm +1 -1
  176. package/bin/lib/Image/ExifTool/Torrent.pm +1 -1
  177. package/bin/lib/Image/ExifTool/Unknown.pm +1 -1
  178. package/bin/lib/Image/ExifTool/VCard.pm +1 -1
  179. package/bin/lib/Image/ExifTool/Validate.pm +1 -1
  180. package/bin/lib/Image/ExifTool/Vorbis.pm +1 -1
  181. package/bin/lib/Image/ExifTool/WTV.pm +1 -1
  182. package/bin/lib/Image/ExifTool/WriteCanonRaw.pl +1 -1
  183. package/bin/lib/Image/ExifTool/WriteExif.pl +14 -1
  184. package/bin/lib/Image/ExifTool/WriteIPTC.pl +1 -1
  185. package/bin/lib/Image/ExifTool/WritePDF.pl +5 -1
  186. package/bin/lib/Image/ExifTool/WritePNG.pl +1 -1
  187. package/bin/lib/Image/ExifTool/WritePhotoshop.pl +1 -1
  188. package/bin/lib/Image/ExifTool/WritePostScript.pl +1 -1
  189. package/bin/lib/Image/ExifTool/WriteQuickTime.pl +30 -14
  190. package/bin/lib/Image/ExifTool/WriteRIFF.pl +1 -1
  191. package/bin/lib/Image/ExifTool/WriteXMP.pl +16 -2
  192. package/bin/lib/Image/ExifTool/Writer.pl +35 -15
  193. package/bin/lib/Image/ExifTool/XMP.pm +25 -4
  194. package/bin/lib/Image/ExifTool/XMP2.pl +29 -2
  195. package/bin/lib/Image/ExifTool/XMPStruct.pl +1 -1
  196. package/bin/lib/Image/ExifTool/ZIP.pm +20 -8
  197. package/bin/lib/Image/ExifTool/ZISRAW.pm +1 -1
  198. package/bin/lib/Image/ExifTool/iWork.pm +1 -1
  199. package/bin/lib/Image/ExifTool.pm +45 -20
  200. package/bin/lib/Image/ExifTool.pod +48 -46
  201. package/bin/perl-Image-ExifTool.spec +1 -1
  202. package/bin/pp_build_exe.args +6 -5
  203. package/package.json +3 -3
@@ -422,7 +422,7 @@ when decoding certain types of information.
422
422
 
423
423
  =head1 AUTHOR
424
424
 
425
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
425
+ Copyright 2003-2023, 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-2022, Phil Harvey (philharvey66 at gmail.com)
3856
+ Copyright 2003-2023, 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.
@@ -210,7 +210,7 @@ the maker notes in images from some DJI Phantom drones.
210
210
 
211
211
  =head1 AUTHOR
212
212
 
213
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
213
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
214
214
 
215
215
  This library is free software; you can redistribute it and/or modify it
216
216
  under the same terms as Perl itself.
@@ -826,7 +826,7 @@ information in DNG (Digital Negative) images.
826
826
 
827
827
  =head1 AUTHOR
828
828
 
829
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
829
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
830
830
 
831
831
  This library is free software; you can redistribute it and/or modify it
832
832
  under the same terms as Perl itself.
@@ -225,7 +225,7 @@ metadata from DPX (Digital Picture Exchange) images.
225
225
 
226
226
  =head1 AUTHOR
227
227
 
228
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
228
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
229
229
 
230
230
  This library is free software; you can redistribute it and/or modify it
231
231
  under the same terms as Perl itself.
@@ -291,7 +291,7 @@ information from DV (raw Digital Video) files.
291
291
 
292
292
  =head1 AUTHOR
293
293
 
294
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
294
+ Copyright 2003-2023, 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.
@@ -372,7 +372,7 @@ This file contains tag definitions for the Darwin Core XMP namespace.
372
372
 
373
373
  =head1 AUTHOR
374
374
 
375
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
375
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
376
376
 
377
377
  This library is free software; you can redistribute it and/or modify it
378
378
  under the same terms as Perl itself.
@@ -353,7 +353,7 @@ Image::ExifTool::AIFF.
353
353
 
354
354
  =head1 AUTHOR
355
355
 
356
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
356
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
357
357
 
358
358
  This library is free software; you can redistribute it and/or modify it
359
359
  under the same terms as Perl itself.
@@ -1406,7 +1406,7 @@ library files.
1406
1406
 
1407
1407
  =head1 AUTHOR
1408
1408
 
1409
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
1409
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
1410
1410
 
1411
1411
  This library is free software; you can redistribute it and/or modify it
1412
1412
  under the same terms as Perl itself.
@@ -70,6 +70,7 @@ sub PrintParameter($$$);
70
70
  sub GetOffList($$$$$);
71
71
  sub PrintOpcode($$$);
72
72
  sub PrintLensInfo($);
73
+ sub InverseOffsetTime($$);
73
74
  sub ConvertLensInfo($);
74
75
 
75
76
  # size limit for loading binary data block into memory
@@ -1084,11 +1085,11 @@ my %opcodeInfo = (
1084
1085
  {
1085
1086
  Name => 'ThumbnailOffset',
1086
1087
  Notes => q{
1087
- ThumbnailOffset in IFD1 of JPEG and some TIFF-based images, IFD0 of MRW
1088
- images and AVI and MOV videos, and the SubIFD in IFD1 of SRW images;
1089
- PreviewImageStart in MakerNotes and IFD0 of ARW and SR2 images;
1090
- JpgFromRawStart in SubIFD of NEF images and IFD2 of PEF images; and
1091
- OtherImageStart in everything else
1088
+ called JPEGInterchangeFormat in the specification, this is ThumbnailOffset
1089
+ in IFD1 of JPEG and some TIFF-based images, IFD0 of MRW images and AVI and
1090
+ MOV videos, and the SubIFD in IFD1 of SRW images; PreviewImageStart in
1091
+ MakerNotes and IFD0 of ARW and SR2 images; JpgFromRawStart in SubIFD of NEF
1092
+ images and IFD2 of PEF images; and OtherImageStart in everything else
1092
1093
  },
1093
1094
  # thumbnail is found in IFD1 of JPEG and TIFF images, and
1094
1095
  # IFD0 of EXIF information in FujiFilm AVI (RIFF) and MOV videos
@@ -1225,6 +1226,7 @@ my %opcodeInfo = (
1225
1226
  {
1226
1227
  Name => 'ThumbnailLength',
1227
1228
  Notes => q{
1229
+ called JPEGInterchangeFormatLength in the specification, this is
1228
1230
  ThumbnailLength in IFD1 of JPEG and some TIFF-based images, IFD0 of MRW
1229
1231
  images and AVI and MOV videos, and the SubIFD in IFD1 of SRW images;
1230
1232
  PreviewImageLength in MakerNotes and IFD0 of ARW and SR2 images;
@@ -2081,11 +2083,7 @@ my %opcodeInfo = (
2081
2083
  Notes => 'time zone for ModifyDate',
2082
2084
  Writable => 'string',
2083
2085
  Shift => 'Time',
2084
- PrintConvInv => q{
2085
- return "+00:00" if $val =~ /\d{2}Z$/;
2086
- return sprintf("%s%.2d:%.2d",$1,$2,$3) if $val =~ /([-+])(\d{1,2}):(\d{2})/;
2087
- return undef;
2088
- },
2086
+ PrintConvInv => \&InverseOffsetTime,
2089
2087
  },
2090
2088
  0x9011 => {
2091
2089
  Name => 'OffsetTimeOriginal',
@@ -2093,11 +2091,7 @@ my %opcodeInfo = (
2093
2091
  Notes => 'time zone for DateTimeOriginal',
2094
2092
  Writable => 'string',
2095
2093
  Shift => 'Time',
2096
- PrintConvInv => q{
2097
- return "+00:00" if $val =~ /\d{2}Z$/;
2098
- return sprintf("%s%.2d:%.2d",$1,$2,$3) if $val =~ /([-+])(\d{1,2}):(\d{2})/;
2099
- return undef;
2100
- },
2094
+ PrintConvInv => \&InverseOffsetTime,
2101
2095
  },
2102
2096
  0x9012 => {
2103
2097
  Name => 'OffsetTimeDigitized',
@@ -2105,11 +2099,7 @@ my %opcodeInfo = (
2105
2099
  Notes => 'time zone for CreateDate',
2106
2100
  Writable => 'string',
2107
2101
  Shift => 'Time',
2108
- PrintConvInv => q{
2109
- return "+00:00" if $val =~ /\d{2}Z$/;
2110
- return sprintf("%s%.2d:%.2d",$1,$2,$3) if $val =~ /([-+])(\d{1,2}):(\d{2})/;
2111
- return undef;
2112
- },
2102
+ PrintConvInv => \&InverseOffsetTime,
2113
2103
  },
2114
2104
  0x9101 => {
2115
2105
  Name => 'ComponentsConfiguration',
@@ -6788,7 +6778,7 @@ EXIF and TIFF meta information.
6788
6778
 
6789
6779
  =head1 AUTHOR
6790
6780
 
6791
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
6781
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
6792
6782
 
6793
6783
  This library is free software; you can redistribute it and/or modify it
6794
6784
  under the same terms as Perl itself.
@@ -137,7 +137,7 @@ information from FITS (Flexible Image Transport System) images.
137
137
 
138
138
  =head1 AUTHOR
139
139
 
140
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
140
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
141
141
 
142
142
  This library is free software; you can redistribute it and/or modify it
143
143
  under the same terms as Perl itself.
@@ -298,7 +298,7 @@ information from Free Lossless Audio Codec (FLAC) audio files.
298
298
 
299
299
  =head1 AUTHOR
300
300
 
301
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
301
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
302
302
 
303
303
  This library is free software; you can redistribute it and/or modify it
304
304
  under the same terms as Perl itself.
@@ -329,7 +329,7 @@ meta information in FLIF (Free Lossless Image Format) images.
329
329
 
330
330
  =head1 AUTHOR
331
331
 
332
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
332
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
333
333
 
334
334
  This library is free software; you can redistribute it and/or modify it
335
335
  under the same terms as Perl itself.
@@ -24,7 +24,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
24
24
  use Image::ExifTool::Exif;
25
25
  use Image::ExifTool::GPS;
26
26
 
27
- $VERSION = '1.21';
27
+ $VERSION = '1.22';
28
28
 
29
29
  sub ProcessFLIR($$;$);
30
30
  sub ProcessFLIRText($$$);
@@ -241,7 +241,8 @@ my %float8g = ( Format => 'float', PrintConv => 'sprintf("%.8g",$val)' );
241
241
  16.1 => {
242
242
  Name => 'RawThermalImage',
243
243
  Groups => { 2 => 'Preview' },
244
- RawConv => '\$$self{RawThermalImage}',
244
+ # make a copy in case we want to extract more of them with -ee2
245
+ RawConv => 'my $copy = $$self{RawThermalImage}; \$copy',
245
246
  },
246
247
  );
247
248
 
@@ -272,7 +273,7 @@ my %float8g = ( Format => 'float', PrintConv => 'sprintf("%.8g",$val)' );
272
273
  },
273
274
  16.1 => {
274
275
  Name => 'GainDeadMapImage',
275
- RawConv => '\$$self{GainDeadMapImage}',
276
+ RawConv => 'my $copy = \$$self{GainDeadMapImage}; \$copy',
276
277
  },
277
278
  );
278
279
 
@@ -303,7 +304,7 @@ my %float8g = ( Format => 'float', PrintConv => 'sprintf("%.8g",$val)' );
303
304
  },
304
305
  16.1 => {
305
306
  Name => 'CoarseMapImage',
306
- RawConv => '\$$self{CoarseMapImage}',
307
+ RawConv => 'my $copy = \$$self{CoarseMapImage}; \$copy',
307
308
  },
308
309
  );
309
310
 
@@ -334,7 +335,7 @@ my %float8g = ( Format => 'float', PrintConv => 'sprintf("%.8g",$val)' );
334
335
  },
335
336
  20.1 => {
336
337
  Name => 'PaintImage',
337
- RawConv => '\$$self{PaintImage}',
338
+ RawConv => 'my $copy = \$$self{PaintImage}; \$copy',
338
339
  },
339
340
  );
340
341
 
@@ -1632,7 +1633,7 @@ Systems Inc. thermal image files (FFF, FPF and JPEG format).
1632
1633
 
1633
1634
  =head1 AUTHOR
1634
1635
 
1635
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
1636
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
1636
1637
 
1637
1638
  This library is free software; you can redistribute it and/or modify it
1638
1639
  under the same terms as Perl itself.
@@ -354,7 +354,7 @@ linear list when ApplyFixups() is called.
354
354
 
355
355
  =head1 AUTHOR
356
356
 
357
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
357
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
358
358
 
359
359
  This library is free software; you can redistribute it and/or modify it
360
360
  under the same terms as Perl itself.
@@ -721,7 +721,7 @@ will add AMF3 support.
721
721
 
722
722
  =head1 AUTHOR
723
723
 
724
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
724
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
725
725
 
726
726
  This library is free software; you can redistribute it and/or modify it
727
727
  under the same terms as Perl itself.
@@ -2418,7 +2418,7 @@ JPEG images.
2418
2418
 
2419
2419
  =head1 AUTHOR
2420
2420
 
2421
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
2421
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
2422
2422
 
2423
2423
  This library is free software; you can redistribute it and/or modify it
2424
2424
  under the same terms as Perl itself.
@@ -622,7 +622,7 @@ extracted from these formats.
622
622
 
623
623
  =head1 AUTHOR
624
624
 
625
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
625
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
626
626
 
627
627
  This library is free software; you can redistribute it and/or modify it
628
628
  under the same terms as Perl itself.
@@ -243,7 +243,7 @@ write information from the FotoWare FotoStation trailer.
243
243
 
244
244
  =head1 AUTHOR
245
245
 
246
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
246
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
247
247
 
248
248
  This library is free software; you can redistribute it and/or modify it
249
249
  under the same terms as Perl itself.
@@ -31,7 +31,7 @@ use vars qw($VERSION);
31
31
  use Image::ExifTool qw(:DataAccess :Utils);
32
32
  use Image::ExifTool::Exif;
33
33
 
34
- $VERSION = '1.84';
34
+ $VERSION = '1.85';
35
35
 
36
36
  sub ProcessFujiDir($$$);
37
37
  sub ProcessFaceRec($$$);
@@ -222,6 +222,7 @@ my %faceCategories = (
222
222
  },
223
223
  0x100a => { #2
224
224
  Name => 'WhiteBalanceFineTune',
225
+ Notes => 'newer cameras should divide these values by 20', #forum10800
225
226
  Writable => 'int32s',
226
227
  Count => 2,
227
228
  PrintConv => 'sprintf("Red %+d, Blue %+d", split(" ", $val))',
@@ -478,14 +479,20 @@ my %faceCategories = (
478
479
  64 => 'Strong',
479
480
  },
480
481
  },
481
- 0x1049 => { #12
482
+ 0x1049 => { #12,forum14319
482
483
  Name => 'BWAdjustment',
483
484
  Notes => 'positive values are warm, negative values are cool',
484
485
  Format => 'int8s',
485
486
  PrintConv => '$val > 0 ? "+$val" : $val',
486
487
  PrintConvInv => '$val + 0',
487
488
  },
488
- # 0x104b - BWAdjustment for Green->Magenta (forum10800)
489
+ 0x104b => { #forum10800,forum14319
490
+ Name => 'BWMagentaGreen',
491
+ Notes => 'positive values are green, negative values are magenta',
492
+ Format => 'int8s',
493
+ PrintConv => '$val > 0 ? "+$val" : $val',
494
+ PrintConvInv => '$val + 0',
495
+ },
489
496
  0x104c => { #PR158
490
497
  Name => "GrainEffectSize",
491
498
  Writable => 'int16u', #PH
@@ -505,6 +512,15 @@ my %faceCategories = (
505
512
  4 => 'Electronic Shutter 1.25x Crop', # (continuous high)
506
513
  },
507
514
  },
515
+ 0x104e => { #forum10800 (X-Pro3)
516
+ Name => 'ColorChromeFXBlue',
517
+ Writable => 'int32s',
518
+ PrintConv => {
519
+ 0 => 'Off',
520
+ 32 => 'Weak', # (NC)
521
+ 64 => 'Strong',
522
+ },
523
+ },
508
524
  0x1050 => { #forum6109
509
525
  Name => 'ShutterType',
510
526
  Writable => 'int16u',
@@ -699,15 +715,6 @@ my %faceCategories = (
699
715
  PrintConv => '"$val%"',
700
716
  PrintConvInv => '$val=~s/\s*\%$//; $val',
701
717
  },
702
- 0x104e => { #forum10800 (X-Pro3)
703
- Name => 'ColorChromeFXBlue',
704
- Writable => 'int32s',
705
- PrintConv => {
706
- 0 => 'Off',
707
- 32 => 'Weak', # (NC)
708
- 64 => 'Strong',
709
- },
710
- },
711
718
  0x1422 => { #8
712
719
  Name => 'ImageStabilization',
713
720
  Writable => 'int16u',
@@ -1717,7 +1724,7 @@ FujiFilm maker notes in EXIF information, and to read/write FujiFilm RAW
1717
1724
 
1718
1725
  =head1 AUTHOR
1719
1726
 
1720
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
1727
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
1721
1728
 
1722
1729
  This library is free software; you can redistribute it and/or modify it
1723
1730
  under the same terms as Perl itself.
@@ -68,7 +68,7 @@ General Imaging maker notes.
68
68
 
69
69
  =head1 AUTHOR
70
70
 
71
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
71
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
72
72
 
73
73
  This library is free software; you can redistribute it and/or modify it
74
74
  under the same terms as Perl itself.
@@ -541,7 +541,7 @@ write GIF meta information.
541
541
 
542
542
  =head1 AUTHOR
543
543
 
544
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
544
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
545
545
 
546
546
  This library is free software; you can redistribute it and/or modify it
547
547
  under the same terms as Perl itself.
@@ -270,7 +270,7 @@ GIMP software.
270
270
 
271
271
  =head1 AUTHOR
272
272
 
273
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
273
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
274
274
 
275
275
  This library is free software; you can redistribute it and/or modify it
276
276
  under the same terms as Perl itself.
@@ -12,7 +12,7 @@ use strict;
12
12
  use vars qw($VERSION);
13
13
  use Image::ExifTool::Exif;
14
14
 
15
- $VERSION = '1.54';
15
+ $VERSION = '1.55';
16
16
 
17
17
  my %coordConv = (
18
18
  ValueConv => 'Image::ExifTool::GPS::ToDegrees($val)',
@@ -407,12 +407,18 @@ my %coordConv = (
407
407
  # Require either GPS:GPSAltitudeRef or XMP:GPSAltitudeRef
408
408
  RawConv => '(defined $val[1] or defined $val[3]) ? $val : undef',
409
409
  ValueConv => q{
410
- my $alt = $val[0];
411
- $alt = $val[2] unless defined $alt;
412
- return undef unless defined $alt and IsFloat($alt);
413
- return(($val[1] || $val[3]) ? -$alt : $alt);
410
+ foreach (0,2) {
411
+ next unless defined $val[$_] and IsFloat($val[$_]) and defined $val[$_+1];
412
+ return $val[$_+1] ? -abs($val[$_]) : $val[$_];
413
+ }
414
+ return undef;
414
415
  },
415
416
  PrintConv => q{
417
+ foreach (0,2) {
418
+ next unless defined $val[$_] and IsFloat($val[$_]);
419
+ next unless defined $prt[$_+1] and $prt[$_+1] =~ /Sea/;
420
+ return((int($val[$_]*10)/10) . ' m ' . $prt[$_+1]);
421
+ }
416
422
  $val = int($val * 10) / 10;
417
423
  return(($val =~ s/^-// ? "$val m Below" : "$val m Above") . " Sea Level");
418
424
  },
@@ -599,7 +605,7 @@ GPS (Global Positioning System) meta information in EXIF data.
599
605
 
600
606
  =head1 AUTHOR
601
607
 
602
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
608
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
603
609
 
604
610
  This library is free software; you can redistribute it and/or modify it
605
611
  under the same terms as Perl itself.
@@ -2242,7 +2242,7 @@ coordinates.
2242
2242
 
2243
2243
  =head1 AUTHOR
2244
2244
 
2245
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
2245
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
2246
2246
 
2247
2247
  This library is free software; you can redistribute it and/or modify it
2248
2248
  under the same terms as Perl itself.
@@ -29,7 +29,7 @@ use vars qw($VERSION);
29
29
  use Image::ExifTool qw(:Public);
30
30
  use Image::ExifTool::GPS;
31
31
 
32
- $VERSION = '1.68';
32
+ $VERSION = '1.69';
33
33
 
34
34
  sub JITTER() { return 2 } # maximum time jitter
35
35
 
@@ -75,7 +75,8 @@ my %xmlTag = (
75
75
  );
76
76
 
77
77
  # fix information keys which must be interpolated around a circle
78
- my %cyclical = (lon => 1, track => 1, dir => 1, roll => 1);
78
+ my %cyclical = (lon => 1, track => 1, dir => 1, pitch => 1, roll => 1);
79
+ my %cyc180 = (lon => 1, pitch => 1, roll => 1); # wraps from 180 to -180
79
80
 
80
81
  # fix information keys for each of our general categories
81
82
  my %fixInfoKeys = (
@@ -88,6 +89,9 @@ my %fixInfoKeys = (
88
89
 
89
90
  my %isOrient = ( dir => 1, pitch => 1, roll => 1 ); # test for orientation key
90
91
 
92
+ # tags which may exist separately in some formats (eg. CSV)
93
+ my %sepTags = ( dir => 1, pitch => 1, roll => 1, track => 1, speed => 1 );
94
+
91
95
  # conversion factors for GPSSpeed
92
96
  my %speedConv = (
93
97
  'K' => 1.852, # km/h per knot
@@ -276,6 +280,8 @@ sub LoadTrackLog($$;$)
276
280
  $param = 'pitch';
277
281
  } elsif (/^(Angle)?Roll/i) {
278
282
  $param = 'roll';
283
+ } elsif (/^Img ?Dir/i) {
284
+ $param = 'dir';
279
285
  }
280
286
  if ($param) {
281
287
  $et->VPrint(2, "CSV column '${_}' is $param\n");
@@ -496,6 +502,7 @@ DoneFix: $isDate = 1;
496
502
  $secs = $val;
497
503
  } else {
498
504
  $$fix{$param} = $val;
505
+ $$has{$param} = 1 if $sepTags{$param};
499
506
  }
500
507
  }
501
508
  # make coordinate negative according to reference direction if necessary
@@ -558,7 +565,7 @@ DoneFix: $isDate = 1;
558
565
  } elsif ($nmea eq 'RMC') {
559
566
  # $GPRMC,092204.999,A,4250.5589,S,14718.5084,E,0.00,89.68,211200,,*25
560
567
  # $GPRMC,093657.007,,3652.835020,N,01053.104094,E,1.642,,290913,,,A*0F
561
- # $GPRMC,hhmmss.sss,A/V,ddmm.mmmm,N/S,ddmmm.mmmm,E/W,spd(knots),dir(deg),DDMMYY,,*cs
568
+ # $GPRMC,hhmmss.sss,A/V,ddmm.mmmm,N/S,dddmm.mmmm,E/W,spd(knots),dir(deg),DDMMYY,,*cs
562
569
  /^\$[A-Z]{2}RMC,(\d{2})(\d{2})(\d+(\.\d*)?),A?,(\d*?)(\d{1,2}\.\d+),([NS]),(\d*?)(\d{1,2}\.\d+),([EW]),(\d*\.?\d*),(\d*\.?\d*),(\d{2})(\d{2})(\d+)/ or next;
563
570
  next if $13 > 31 or $14 > 12 or $15 > 99; # validate day/month/year
564
571
  $fix{lat} = (($5 || 0) + $6/60) * ($7 eq 'N' ? 1 : -1);
@@ -1101,6 +1108,7 @@ Category: foreach $category (qw{pos track alt orient atemp}) {
1101
1108
  next unless defined $v0 and defined $v1;
1102
1109
  $f = $f0b;
1103
1110
  } else {
1111
+ next if $sepTags{$key}; # (don't scan outwards for some formats, eg. CSV)
1104
1112
  # scan outwards looking for fixes with the required information
1105
1113
  # (NOTE: SHOULD EVENTUALLY DO THIS FOR EXTRAPOLATION TOO!)
1106
1114
  my ($t0b, $t1b);
@@ -1127,8 +1135,8 @@ Category: foreach $category (qw{pos track alt orient atemp}) {
1127
1135
  # 360 degrees to the smaller angle before interpolating
1128
1136
  $v0 < $v1 ? $v0 += 360 : $v1 += 360;
1129
1137
  $$fix{$key} = $v1 * $f + $v0 * (1 - $f);
1130
- # longitude and roll ranges are -180 to 180, others are 0 to 360
1131
- my $max = ($key eq 'lon' or $key eq 'roll') ? 180 : 360;
1138
+ # some ranges are -180 to 180, others are 0 to 360
1139
+ my $max = $cyc180{$key} ? 180 : 360;
1132
1140
  $$fix{$key} -= 360 if $$fix{$key} >= $max;
1133
1141
  } else {
1134
1142
  # simple linear interpolation
@@ -1444,7 +1452,7 @@ user-defined tag GPSRoll, must be active.
1444
1452
 
1445
1453
  =head1 AUTHOR
1446
1454
 
1447
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
1455
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
1448
1456
 
1449
1457
  This library is free software; you can redistribute it and/or modify it
1450
1458
  under the same terms as Perl itself.
@@ -733,7 +733,7 @@ metadata from GoPro MP4 videos.
733
733
 
734
734
  =head1 AUTHOR
735
735
 
736
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
736
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
737
737
 
738
738
  This library is free software; you can redistribute it and/or modify it
739
739
  under the same terms as Perl itself.
@@ -1123,7 +1123,7 @@ information from H.264 video streams.
1123
1123
 
1124
1124
  =head1 AUTHOR
1125
1125
 
1126
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
1126
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
1127
1127
 
1128
1128
  This library is free software; you can redistribute it and/or modify it
1129
1129
  under the same terms as Perl itself.
@@ -250,7 +250,7 @@ Hewlett-Packard maker notes.
250
250
 
251
251
  =head1 AUTHOR
252
252
 
253
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
253
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
254
254
 
255
255
  This library is free software; you can redistribute it and/or modify it
256
256
  under the same terms as Perl itself.
@@ -555,7 +555,7 @@ meta information from HTML documents.
555
555
 
556
556
  =head1 AUTHOR
557
557
 
558
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
558
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
559
559
 
560
560
  This library is free software; you can redistribute it and/or modify it
561
561
  under the same terms as Perl itself.
@@ -917,7 +917,7 @@ page.
917
917
 
918
918
  =head1 AUTHOR
919
919
 
920
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
920
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
921
921
 
922
922
  This library is free software; you can redistribute it and/or modify it
923
923
  under the same terms as Perl itself.
@@ -1357,7 +1357,7 @@ data created on one device into another device's native color space.
1357
1357
 
1358
1358
  =head1 AUTHOR
1359
1359
 
1360
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
1360
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
1361
1361
 
1362
1362
  This library is free software; you can redistribute it and/or modify it
1363
1363
  under the same terms as Perl itself.
@@ -86,6 +86,8 @@ sub ProcessICO($$$)
86
86
  # verify this is a valid ICO/CUR file
87
87
  return 0 unless $raf->Read($buff, 6) == 6;
88
88
  return 0 unless $buff =~ /^\0\0([\x01\x02])\0[^0]\0/s;
89
+ # (note: have seen cursor files in the wild with an 0x01 here,
90
+ # but SetFileType will use the .cur extension to identify these)
89
91
  $et->SetFileType($1 eq "\x01" ? 'ICO' : 'CUR');
90
92
  SetByteOrder('II');
91
93
  my $tagTbl = GetTagTable('Image::ExifTool::ICO::Main');
@@ -119,7 +121,7 @@ information from Windows ICO (icon) and CUR (cursor) files.
119
121
 
120
122
  =head1 AUTHOR
121
123
 
122
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
124
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
123
125
 
124
126
  This library is free software; you can redistribute it and/or modify it
125
127
  under the same terms as Perl itself.
@@ -1652,7 +1652,7 @@ other types of audio files.
1652
1652
 
1653
1653
  =head1 AUTHOR
1654
1654
 
1655
- Copyright 2003-2022, Phil Harvey (philharvey66 at gmail.com)
1655
+ Copyright 2003-2023, Phil Harvey (philharvey66 at gmail.com)
1656
1656
 
1657
1657
  This library is free software; you can redistribute it and/or modify it
1658
1658
  under the same terms as Perl itself.