exiftool-vendored.exe 12.80.0 → 12.82.1

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 (253) hide show
  1. package/README.md +6 -0
  2. package/bin/exiftool.exe +0 -0
  3. package/bin/exiftool_files/Changes +44 -0
  4. package/bin/exiftool_files/Licenses_Strawberry_Perl.zip +0 -0
  5. package/bin/exiftool_files/README +3 -2
  6. package/bin/exiftool_files/exiftool.pl +36 -14
  7. package/bin/exiftool_files/lib/Archive/Zip/Archive.pm +399 -65
  8. package/bin/exiftool_files/lib/Archive/Zip/DirectoryMember.pm +1 -1
  9. package/bin/exiftool_files/lib/Archive/Zip/FileMember.pm +1 -1
  10. package/bin/exiftool_files/lib/Archive/Zip/Member.pm +499 -195
  11. package/bin/exiftool_files/lib/Archive/Zip/NewFileMember.pm +1 -1
  12. package/bin/exiftool_files/lib/Archive/Zip/StringMember.pm +2 -2
  13. package/bin/exiftool_files/lib/Archive/Zip/ZipFileMember.pm +79 -20
  14. package/bin/exiftool_files/lib/Archive/Zip.pm +179 -29
  15. package/bin/exiftool_files/lib/AutoLoader.pm +453 -0
  16. package/bin/exiftool_files/lib/B/Deparse.pm +209 -137
  17. package/bin/exiftool_files/lib/B.pm +1 -1
  18. package/bin/exiftool_files/lib/Benchmark.pm +1123 -0
  19. package/bin/exiftool_files/lib/Class/Struct.pm +2 -2
  20. package/bin/exiftool_files/lib/Compress/Raw/Bzip2.pm +14 -9
  21. package/bin/exiftool_files/lib/Compress/Raw/Lzma.pm +982 -0
  22. package/bin/exiftool_files/lib/Compress/Raw/Zlib.pm +91 -86
  23. package/bin/exiftool_files/lib/Compress/Zlib.pm +105 -100
  24. package/bin/exiftool_files/lib/Config.pm +9 -9
  25. package/bin/exiftool_files/lib/Config_heavy.pl +36 -33
  26. package/bin/exiftool_files/lib/CryptX.pm +2 -82
  27. package/bin/exiftool_files/lib/Data/Dumper.pm +2 -2
  28. package/bin/exiftool_files/lib/Digest/MD5.pm +12 -9
  29. package/bin/exiftool_files/lib/Digest/Perl/MD5.pm +1 -191
  30. package/bin/exiftool_files/lib/Digest/base.pm +26 -20
  31. package/bin/exiftool_files/lib/DynaLoader.pm +7 -4
  32. package/bin/exiftool_files/lib/Encode.pm +3 -3
  33. package/bin/exiftool_files/lib/Errno.pm +13 -13
  34. package/bin/exiftool_files/lib/Exporter/Heavy.pm +2 -2
  35. package/bin/exiftool_files/lib/Exporter.pm +1 -1
  36. package/bin/exiftool_files/lib/ExtUtils/Command/MM.pm +323 -0
  37. package/bin/exiftool_files/lib/ExtUtils/Command.pm +382 -0
  38. package/bin/exiftool_files/lib/File/Find.pm +1 -1
  39. package/bin/exiftool_files/lib/File/Glob.pm +1 -8
  40. package/bin/exiftool_files/lib/File/GlobMapper.pm +2 -2
  41. package/bin/exiftool_files/lib/File/HomeDir/Darwin/Carbon.pm +2 -40
  42. package/bin/exiftool_files/lib/File/HomeDir/Darwin/Cocoa.pm +2 -34
  43. package/bin/exiftool_files/lib/File/HomeDir/Darwin.pm +2 -28
  44. package/bin/exiftool_files/lib/File/HomeDir/Driver.pm +2 -35
  45. package/bin/exiftool_files/lib/File/HomeDir/FreeDesktop.pm +2 -62
  46. package/bin/exiftool_files/lib/File/HomeDir/MacOS9.pm +2 -53
  47. package/bin/exiftool_files/lib/File/HomeDir/Test.pm +2 -43
  48. package/bin/exiftool_files/lib/File/HomeDir/Unix.pm +2 -53
  49. package/bin/exiftool_files/lib/File/HomeDir/Windows.pm +2 -69
  50. package/bin/exiftool_files/lib/File/HomeDir.pm +5 -416
  51. package/bin/exiftool_files/lib/File/Path.pm +3 -3
  52. package/bin/exiftool_files/lib/File/Spec/Win32.pm +2 -2
  53. package/bin/exiftool_files/lib/File/Temp.pm +70 -35
  54. package/bin/exiftool_files/lib/File/Which.pm +1 -240
  55. package/bin/exiftool_files/lib/File/stat.pm +3 -2
  56. package/bin/exiftool_files/lib/IO/Compress/Adapter/Bzip2.pm +16 -17
  57. package/bin/exiftool_files/lib/IO/Compress/Adapter/Deflate.pm +19 -20
  58. package/bin/exiftool_files/lib/IO/Compress/Base/Common.pm +5 -5
  59. package/bin/exiftool_files/lib/IO/Compress/Base.pm +35 -26
  60. package/bin/exiftool_files/lib/IO/Compress/Brotli.pm +159 -0
  61. package/bin/exiftool_files/lib/IO/Compress/Bzip2.pm +50 -25
  62. package/bin/exiftool_files/lib/IO/Compress/Gzip/Constants.pm +6 -6
  63. package/bin/exiftool_files/lib/IO/Compress/Gzip.pm +58 -32
  64. package/bin/exiftool_files/lib/IO/Compress/RawDeflate.pm +63 -38
  65. package/bin/exiftool_files/lib/IO/Compress/Zlib/Extra.pm +20 -20
  66. package/bin/exiftool_files/lib/IO/Dir.pm +1 -1
  67. package/bin/exiftool_files/lib/IO/File.pm +1 -1
  68. package/bin/exiftool_files/lib/IO/Handle.pm +1 -21
  69. package/bin/exiftool_files/lib/IO/Pipe.pm +1 -1
  70. package/bin/exiftool_files/lib/IO/Seekable.pm +1 -1
  71. package/bin/exiftool_files/lib/IO/Select.pm +16 -2
  72. package/bin/exiftool_files/lib/IO/Socket/INET.pm +14 -9
  73. package/bin/exiftool_files/lib/IO/Socket/UNIX.pm +17 -1
  74. package/bin/exiftool_files/lib/IO/Socket.pm +474 -126
  75. package/bin/exiftool_files/lib/IO/String.pm +425 -0
  76. package/bin/exiftool_files/lib/IO/Uncompress/Adapter/Inflate.pm +13 -14
  77. package/bin/exiftool_files/lib/IO/Uncompress/Base.pm +142 -132
  78. package/bin/exiftool_files/lib/IO/Uncompress/Brotli.pm +119 -0
  79. package/bin/exiftool_files/lib/IO/Uncompress/Gunzip.pm +43 -37
  80. package/bin/exiftool_files/lib/IO/Uncompress/RawInflate.pm +49 -43
  81. package/bin/exiftool_files/lib/IO.pm +2 -2
  82. package/bin/exiftool_files/lib/Image/ExifTool/BuildTagLookup.pm +44 -31
  83. package/bin/exiftool_files/lib/Image/ExifTool/CanonVRD.pm +2 -2
  84. package/bin/exiftool_files/lib/Image/ExifTool/FujiFilm.pm +20 -7
  85. package/bin/exiftool_files/lib/Image/ExifTool/GM.pm +543 -0
  86. package/bin/exiftool_files/lib/Image/ExifTool/Geolocation.pm +332 -149
  87. package/bin/exiftool_files/lib/Image/ExifTool/Geotag.pm +9 -4
  88. package/bin/exiftool_files/lib/Image/ExifTool/M2TS.pm +32 -4
  89. package/bin/exiftool_files/lib/Image/ExifTool/MakerNotes.pm +2 -2
  90. package/bin/exiftool_files/lib/Image/ExifTool/Microsoft.pm +1 -1
  91. package/bin/exiftool_files/lib/Image/ExifTool/Nikon.pm +331 -22
  92. package/bin/exiftool_files/lib/Image/ExifTool/NikonCustom.pm +55 -1
  93. package/bin/exiftool_files/lib/Image/ExifTool/Olympus.pm +1 -0
  94. package/bin/exiftool_files/lib/Image/ExifTool/OpenEXR.pm +21 -3
  95. package/bin/exiftool_files/lib/Image/ExifTool/PNG.pm +3 -3
  96. package/bin/exiftool_files/lib/Image/ExifTool/QuickTime.pm +40 -24
  97. package/bin/exiftool_files/lib/Image/ExifTool/QuickTimeStream.pl +61 -30
  98. package/bin/exiftool_files/lib/Image/ExifTool/README +2 -0
  99. package/bin/exiftool_files/lib/Image/ExifTool/Sony.pm +1 -1
  100. package/bin/exiftool_files/lib/Image/ExifTool/TagLookup.pm +4815 -4775
  101. package/bin/exiftool_files/lib/Image/ExifTool/TagNames.pod +931 -617
  102. package/bin/exiftool_files/lib/Image/ExifTool/WriteQuickTime.pl +30 -8
  103. package/bin/exiftool_files/lib/Image/ExifTool/Writer.pl +10 -4
  104. package/bin/exiftool_files/lib/Image/ExifTool/XMP.pm +4 -2
  105. package/bin/exiftool_files/lib/Image/ExifTool.pm +77 -41
  106. package/bin/exiftool_files/lib/Image/ExifTool.pod +24 -11
  107. package/bin/exiftool_files/lib/List/Util.pm +97 -8
  108. package/bin/exiftool_files/lib/MIME/Base64.pm +5 -5
  109. package/bin/exiftool_files/lib/MIME/Charset/_Compat.pm +106 -0
  110. package/bin/exiftool_files/lib/MIME/Charset.pm +1303 -0
  111. package/bin/exiftool_files/lib/Math/BigFloat.pm +444 -27
  112. package/bin/exiftool_files/lib/Math/BigInt/Calc.pm +296 -313
  113. package/bin/exiftool_files/lib/Math/BigInt/FastCalc.pm +1 -1
  114. package/bin/exiftool_files/lib/Math/BigInt/GMP.pm +2 -115
  115. package/bin/exiftool_files/lib/Math/BigInt/LTM.pm +2 -24
  116. package/bin/exiftool_files/lib/Math/BigInt/Lib.pm +61 -32
  117. package/bin/exiftool_files/lib/Math/BigInt.pm +292 -107
  118. package/bin/exiftool_files/lib/POSIX.pm +1 -1
  119. package/bin/exiftool_files/lib/PerlIO/scalar.pm +41 -0
  120. package/bin/exiftool_files/lib/PerlIO.pm +397 -0
  121. package/bin/exiftool_files/lib/Portable/CPAN.pm +94 -94
  122. package/bin/exiftool_files/lib/Portable/Config.pm +94 -94
  123. package/bin/exiftool_files/lib/Portable/FileSpec.pm +180 -180
  124. package/bin/exiftool_files/lib/Portable/HomeDir.pm +110 -110
  125. package/bin/exiftool_files/lib/Portable/LoadYaml.pm +430 -430
  126. package/bin/exiftool_files/lib/Portable/minicpan.pm +55 -55
  127. package/bin/exiftool_files/lib/Portable.pm +246 -320
  128. package/bin/exiftool_files/lib/Scalar/Util.pm +9 -4
  129. package/bin/exiftool_files/lib/Socket.pm +16 -12
  130. package/bin/exiftool_files/lib/Storable.pm +1444 -1441
  131. package/bin/exiftool_files/lib/TAP/Base.pm +133 -0
  132. package/bin/exiftool_files/lib/TAP/Formatter/Base.pm +467 -0
  133. package/bin/exiftool_files/lib/TAP/Formatter/Color.pm +116 -0
  134. package/bin/exiftool_files/lib/TAP/Formatter/Console/ParallelSession.pm +201 -0
  135. package/bin/exiftool_files/lib/TAP/Formatter/Console/Session.pm +205 -0
  136. package/bin/exiftool_files/lib/TAP/Formatter/Console.pm +100 -0
  137. package/bin/exiftool_files/lib/TAP/Formatter/File/Session.pm +95 -0
  138. package/bin/exiftool_files/lib/TAP/Formatter/File.pm +56 -0
  139. package/bin/exiftool_files/lib/TAP/Formatter/Session.pm +220 -0
  140. package/bin/exiftool_files/lib/TAP/Harness/Beyond.pod +426 -0
  141. package/bin/exiftool_files/lib/TAP/Harness/Env.pm +215 -0
  142. package/bin/exiftool_files/lib/TAP/Harness.pm +1054 -0
  143. package/bin/exiftool_files/lib/TAP/Object.pm +155 -0
  144. package/bin/exiftool_files/lib/TAP/Parser/Aggregator.pm +414 -0
  145. package/bin/exiftool_files/lib/TAP/Parser/Grammar.pm +584 -0
  146. package/bin/exiftool_files/lib/TAP/Parser/Iterator/Array.pm +100 -0
  147. package/bin/exiftool_files/lib/TAP/Parser/Iterator/Process.pm +378 -0
  148. package/bin/exiftool_files/lib/TAP/Parser/Iterator/Stream.pm +116 -0
  149. package/bin/exiftool_files/lib/TAP/Parser/Iterator.pm +162 -0
  150. package/bin/exiftool_files/lib/TAP/Parser/IteratorFactory.pm +339 -0
  151. package/bin/exiftool_files/lib/TAP/Parser/Multiplexer.pm +194 -0
  152. package/bin/exiftool_files/lib/TAP/Parser/Result/Bailout.pm +62 -0
  153. package/bin/exiftool_files/lib/TAP/Parser/Result/Comment.pm +60 -0
  154. package/bin/exiftool_files/lib/TAP/Parser/Result/Plan.pm +119 -0
  155. package/bin/exiftool_files/lib/TAP/Parser/Result/Pragma.pm +62 -0
  156. package/bin/exiftool_files/lib/TAP/Parser/Result/Test.pm +271 -0
  157. package/bin/exiftool_files/lib/TAP/Parser/Result/Unknown.pm +48 -0
  158. package/bin/exiftool_files/lib/TAP/Parser/Result/Version.pm +62 -0
  159. package/bin/exiftool_files/lib/TAP/Parser/Result/YAML.pm +61 -0
  160. package/bin/exiftool_files/lib/TAP/Parser/Result.pm +297 -0
  161. package/bin/exiftool_files/lib/TAP/Parser/ResultFactory.pm +183 -0
  162. package/bin/exiftool_files/lib/TAP/Parser/Scheduler/Job.pm +127 -0
  163. package/bin/exiftool_files/lib/TAP/Parser/Scheduler/Spinner.pm +61 -0
  164. package/bin/exiftool_files/lib/TAP/Parser/Scheduler.pm +448 -0
  165. package/bin/exiftool_files/lib/TAP/Parser/Source.pm +381 -0
  166. package/bin/exiftool_files/lib/TAP/Parser/SourceHandler/Executable.pm +184 -0
  167. package/bin/exiftool_files/lib/TAP/Parser/SourceHandler/File.pm +136 -0
  168. package/bin/exiftool_files/lib/TAP/Parser/SourceHandler/Handle.pm +124 -0
  169. package/bin/exiftool_files/lib/TAP/Parser/SourceHandler/Perl.pm +370 -0
  170. package/bin/exiftool_files/lib/TAP/Parser/SourceHandler/RawTAP.pm +130 -0
  171. package/bin/exiftool_files/lib/TAP/Parser/SourceHandler.pm +191 -0
  172. package/bin/exiftool_files/lib/TAP/Parser/YAMLish/Reader.pm +332 -0
  173. package/bin/exiftool_files/lib/TAP/Parser/YAMLish/Writer.pm +254 -0
  174. package/bin/exiftool_files/lib/TAP/Parser.pm +1931 -0
  175. package/bin/exiftool_files/lib/Test/Builder/Formatter.pm +107 -0
  176. package/bin/exiftool_files/lib/Test/Builder/IO/Scalar.pm +659 -0
  177. package/bin/exiftool_files/lib/Test/Builder/Module.pm +182 -0
  178. package/bin/exiftool_files/lib/Test/Builder/Tester/Color.pm +51 -0
  179. package/bin/exiftool_files/lib/Test/Builder/Tester.pm +675 -0
  180. package/bin/exiftool_files/lib/Test/Builder/TodoDiag.pm +68 -0
  181. package/bin/exiftool_files/lib/Test/Builder.pm +2653 -0
  182. package/bin/exiftool_files/lib/Test/Harness.pm +618 -0
  183. package/bin/exiftool_files/lib/Test/More.pm +1997 -0
  184. package/bin/exiftool_files/lib/Test/Simple.pm +220 -0
  185. package/bin/exiftool_files/lib/Test/Tester/Capture.pm +241 -0
  186. package/bin/exiftool_files/lib/Test/Tester/CaptureRunner.pm +79 -0
  187. package/bin/exiftool_files/lib/Test/Tester/Delegate.pm +45 -0
  188. package/bin/exiftool_files/lib/Test/Tester.pm +695 -0
  189. package/bin/exiftool_files/lib/Test/Tutorial.pod +618 -0
  190. package/bin/exiftool_files/lib/Test/use/ok.pm +64 -0
  191. package/bin/exiftool_files/lib/Text/ParseWords.pm +303 -0
  192. package/bin/exiftool_files/lib/Tie/StdHandle.pm +2 -2
  193. package/bin/exiftool_files/lib/Time/HiRes.pm +73 -68
  194. package/bin/exiftool_files/lib/Time/Local.pm +82 -35
  195. package/bin/exiftool_files/lib/Time/Piece.pm +19 -4
  196. package/bin/exiftool_files/lib/Time/Seconds.pm +1 -1
  197. package/bin/exiftool_files/lib/UNIVERSAL.pm +203 -0
  198. package/bin/exiftool_files/lib/Unicode/GCString.pm +60 -0
  199. package/bin/exiftool_files/lib/Unicode/LineBreak/Constants.pm +68 -0
  200. package/bin/exiftool_files/lib/Unicode/LineBreak.pm +248 -0
  201. package/bin/exiftool_files/lib/Win32/API/Struct.pm +1 -177
  202. package/bin/exiftool_files/lib/Win32/API/Type.pm +1 -100
  203. package/bin/exiftool_files/lib/Win32/API.pm +1 -830
  204. package/bin/exiftool_files/lib/Win32/FindFile.pm +2 -123
  205. package/bin/exiftool_files/lib/Win32.pm +213 -89
  206. package/bin/exiftool_files/lib/Win32API/File.pm +1 -1
  207. package/bin/exiftool_files/lib/auto/B/B.xs.dll +0 -0
  208. package/bin/exiftool_files/lib/auto/Compress/Raw/Bzip2/Bzip2.xs.dll +0 -0
  209. package/bin/exiftool_files/lib/auto/Compress/Raw/Lzma/Lzma.xs.dll +0 -0
  210. package/bin/exiftool_files/lib/auto/Compress/Raw/Lzma/autosplit.ix +3 -0
  211. package/bin/exiftool_files/lib/auto/Compress/Raw/Zlib/Zlib.xs.dll +0 -0
  212. package/bin/exiftool_files/lib/auto/CryptX/CryptX.xs.dll +0 -0
  213. package/bin/exiftool_files/lib/auto/Cwd/Cwd.xs.dll +0 -0
  214. package/bin/exiftool_files/lib/auto/Data/Dumper/Dumper.xs.dll +0 -0
  215. package/bin/exiftool_files/lib/auto/Digest/MD5/MD5.xs.dll +0 -0
  216. package/bin/exiftool_files/lib/auto/Digest/SHA/SHA.xs.dll +0 -0
  217. package/bin/exiftool_files/lib/auto/Encode/Encode.xs.dll +0 -0
  218. package/bin/exiftool_files/lib/auto/Fcntl/Fcntl.xs.dll +0 -0
  219. package/bin/exiftool_files/lib/auto/File/Glob/Glob.xs.dll +0 -0
  220. package/bin/exiftool_files/lib/auto/IO/Compress/Brotli/Brotli.xs.dll +0 -0
  221. package/bin/exiftool_files/lib/auto/IO/IO.xs.dll +0 -0
  222. package/bin/exiftool_files/lib/auto/List/Util/Util.xs.dll +0 -0
  223. package/bin/exiftool_files/lib/auto/MIME/Base64/Base64.xs.dll +0 -0
  224. package/bin/exiftool_files/lib/auto/Math/BigInt/FastCalc/FastCalc.xs.dll +0 -0
  225. package/bin/exiftool_files/lib/auto/Math/BigInt/GMP/GMP.xs.dll +0 -0
  226. package/bin/exiftool_files/lib/auto/POSIX/POSIX.xs.dll +0 -0
  227. package/bin/exiftool_files/lib/auto/PerlIO/scalar/scalar.xs.dll +0 -0
  228. package/bin/exiftool_files/lib/auto/Socket/Socket.xs.dll +0 -0
  229. package/bin/exiftool_files/lib/auto/Storable/Storable.xs.dll +0 -0
  230. package/bin/exiftool_files/lib/auto/Time/HiRes/HiRes.xs.dll +0 -0
  231. package/bin/exiftool_files/lib/auto/Time/Piece/Piece.xs.dll +0 -0
  232. package/bin/exiftool_files/lib/auto/Unicode/LineBreak/LineBreak.xs.dll +0 -0
  233. package/bin/exiftool_files/lib/auto/Win32/API/API.xs.dll +0 -0
  234. package/bin/exiftool_files/lib/auto/Win32/FindFile/FindFile.xs.dll +0 -0
  235. package/bin/exiftool_files/lib/auto/Win32/Win32.xs.dll +0 -0
  236. package/bin/exiftool_files/lib/auto/Win32API/File/File.xs.dll +0 -0
  237. package/bin/exiftool_files/lib/auto/mro/mro.xs.dll +0 -0
  238. package/bin/exiftool_files/lib/auto/re/re.xs.dll +0 -0
  239. package/bin/exiftool_files/lib/feature.pm +49 -17
  240. package/bin/exiftool_files/lib/mro.pm +4 -20
  241. package/bin/exiftool_files/lib/overload.pm +15 -15
  242. package/bin/exiftool_files/lib/parent.pm +10 -2
  243. package/bin/exiftool_files/lib/re.pm +91 -33
  244. package/bin/exiftool_files/lib/warnings.pm +17 -6
  245. package/bin/exiftool_files/libgcc_s_seh-1.dll +0 -0
  246. package/bin/exiftool_files/liblzma-5__.dll +0 -0
  247. package/bin/exiftool_files/libstdc++-6.dll +0 -0
  248. package/bin/exiftool_files/libwinpthread-1.dll +0 -0
  249. package/bin/exiftool_files/perl.exe +0 -0
  250. package/bin/exiftool_files/perl532.dll +0 -0
  251. package/package.json +7 -5
  252. package/bin/exiftool_files/libgcc_s_dw2-1.dll +0 -0
  253. package/bin/exiftool_files/perl530.dll +0 -0
package/README.md CHANGED
@@ -12,6 +12,12 @@ Provides the win32 distribution of [ExifTool](http://www.sno.phy.queensu.ca/~phi
12
12
  [exiftool-vendored](https://github.com/photostructure/exiftool-vendored.js) for
13
13
  performant, type-safe access to this binary.**
14
14
 
15
+ ## Thanks to Oliver Betz!
16
+
17
+ This module heavily depends on [Oliver Betz's portable Perl
18
+ launcher](https://oliverbetz.de/pages/Artikel/Portable-Perl-Applications) which leverages Strawberry Perl. [Read more
19
+ here.](https://oliverbetz.de/pages/Artikel/ExifTool-for-Windows)
20
+
15
21
  ## Versioning
16
22
 
17
23
  This package exposes the version of ExifTool it vendors, and adds a patch number, if necessary, to follow SemVer.
package/bin/exiftool.exe CHANGED
Binary file
@@ -7,6 +7,47 @@ RSS feed: https://exiftool.org/rss.xml
7
7
  Note: The most recent production release is Version 12.76. (Other versions are
8
8
  considered development releases, and are not uploaded to MetaCPAN.)
9
9
 
10
+ Apr. 5, 2024 - Version 12.82 - "GM PDR"
11
+
12
+ - Added support for reading GM PDR data from MP4 videos written by cars such
13
+ as Corvettes and Cameros
14
+ - Added support for reading timed GPS from Wolfbox dashcam videos
15
+ - Added "Unknown trailer" to QuickTime warnings originating from an unknown
16
+ trailer
17
+ - Added a new Nikon LensID
18
+ - Extract PreviewImage from Chigee AIO-5 dashcam videos
19
+ - Changed name and print conversion of a recently added FujiFilm tag
20
+ - Only issue "Tag not defined" warnings for the first sub-document when using
21
+ the -p option
22
+ - Fixed a Nikon Z lens name (github #250)
23
+ - Fixed Windows version so -sort works properly with -listgeo
24
+ - API Changes:
25
+ - Added PrintCSV option for optimized extraction of GM PDR data in CSV
26
+ format
27
+
28
+ Mar. 27, 2024 - Version 12.81
29
+
30
+ - Added ability to read EXIF and XMP from EXR images
31
+ - Added ability to delete unknown trailer when writing MOV/MP4 videos
32
+ - Added ability to write a couple of Stable Diffusion PNG tags
33
+ - Added ability to write one of the Microsoft Xtra Description tags (github
34
+ #248)
35
+ - Added support for using alternate city names in reverse Geolocation
36
+ - Added support for reading timed GPS from DOD LS600W TS videos
37
+ - Added support for new version of Canon DR4 files
38
+ - Added a number of new iTunesInfo tags
39
+ - Added a new Olympus LensType
40
+ - Decode a number of new Nikon tags (thanks Warren Hatch)
41
+ - Allow regular expressions to be used when writing Geolocate tag
42
+ - Enhanced writing of Geolocate tag to also write Keys:LocationName
43
+ - Cache the results of the last reverse geolocation search to speed batch
44
+ processing when multiple files have the same search parameters
45
+ - Patched problem that could cause runtime errors with some invaid tag names
46
+ - Fixed a couple of newly added FujiFilm tags
47
+ - Fixed decoding of FujiFilm AFAreaZoneSize
48
+ - API Changes:
49
+ - Added GeolocAltNames option
50
+
10
51
  Mar. 19, 2024 - Version 12.80
11
52
 
12
53
  - Added GeolocationFeatureCode tag
@@ -19,6 +60,8 @@ Mar. 19, 2024 - Version 12.80
19
60
  - Improved accuracy of Geolocation distance/bearing calculations
20
61
  - Changed structure of Geolocation database (now version 1.02)
21
62
  - Minor change to key format for user-defined Geolocation name translations
63
+ - Ignore API Geolocation option when copying tags if none of the Geolocation
64
+ tags are being copied
22
65
  - Fixed case/spacing of "C2PA" in some CBOR tag descriptions
23
66
  - Fixed bug extracting binary data from EXR files
24
67
  - API Changes:
@@ -29,6 +72,7 @@ Mar. 15, 2024 - Version 12.79
29
72
  - Improvements to new Geolocation feature:
30
73
  - Added reverse Geolocation ability (obtain GPS coordinates from city
31
74
  name), with support for regular expressions
75
+ - Added ability to geolocate while geotagging
32
76
  - Added -listgeo option to list the Geolocation database
33
77
  - Added the ability to include user-defined cities in the Geolocation
34
78
  database
@@ -109,8 +109,8 @@ your home directory, then you would type the following commands in a
109
109
  terminal window to extract and run ExifTool:
110
110
 
111
111
  cd ~/Desktop
112
- gzip -dc Image-ExifTool-12.80.tar.gz | tar -xf -
113
- cd Image-ExifTool-12.80
112
+ gzip -dc Image-ExifTool-12.82.tar.gz | tar -xf -
113
+ cd Image-ExifTool-12.82
114
114
  ./exiftool t/images/ExifTool.jpg
115
115
 
116
116
  Note: These commands extract meta information from one of the test images.
@@ -238,6 +238,7 @@ information:
238
238
  html/ExifTool.html - API documentation
239
239
  html/TagNames/index.html - Tag name documentation
240
240
  html/geotag.html - Geotag feature
241
+ html/geolocation.html - Geolocation feature
241
242
  html/faq.html - Frequently asked questions
242
243
  html/filename.html - Renaming/moving files
243
244
  html/metafiles.html - Working with metadata sidecar files
@@ -11,7 +11,7 @@ use strict;
11
11
  use warnings;
12
12
  require 5.004;
13
13
 
14
- my $version = '12.80';
14
+ my $version = '12.82';
15
15
 
16
16
  # add our 'lib' directory to the include list BEFORE 'use Image::ExifTool'
17
17
  my $exePath;
@@ -209,7 +209,7 @@ my $tmpFile; # temporary file to delete on exit
209
209
  my $tmpText; # temporary text file
210
210
  my $validFile; # flag indicating we processed a valid file
211
211
  my $verbose; # verbose setting
212
- my $vout; # verbose output file reference (\*STDOUT or \*STDERR)
212
+ my $vout; # verbose output file reference (\*STDOUT or \*STDERR by default)
213
213
  my $windowTitle; # title for console window
214
214
  my %wroteHEAD; # list of output txt files to which we wrote HEAD
215
215
  my $xml; # flag for XML-formatted output
@@ -736,17 +736,23 @@ for (;;) {
736
736
  require Image::ExifTool::Geolocation;
737
737
  my ($i, $entry);
738
738
  print "Geolocation database:\n" unless $quiet;
739
- print "City,Region,Subregion,CountryCode,Country,TimeZone,FeatureCode,Population,Latitude,Longitude\n";
739
+ my $isAlt = $mt->Options('GeolocAltNames') ? ',AltNames' : '';
740
+ $isAlt = '' if $isAlt and not Image::ExifTool::Geolocation::ReadAltNames();
741
+ print "City,Region,Subregion,CountryCode,Country,TimeZone,FeatureCode,Population,Latitude,Longitude$isAlt\n";
740
742
  Image::ExifTool::Geolocation::SortDatabase('City') if $sortOpt;
741
743
  my $minPop = $mt->Options('GeolocMinPop');
742
744
  my $feature = $mt->Options('GeolocFeature') || '';
743
745
  my $neg = $feature =~ s/^-//;
744
746
  my %fcodes = map { lc($_) => 1 } split /\s*,\s*/, $feature;
747
+ my @isUTF8 = (0,1,2,4); # items that need converting from UTF8
748
+ push @isUTF8, 10 if $isAlt;
745
749
  for ($i=0; ; ++$i) {
746
- my @entry = Image::ExifTool::Geolocation::GetEntry($i,$langOpt) or last;
750
+ my @entry = Image::ExifTool::Geolocation::GetEntry($i,$langOpt,1) or last;
747
751
  next if $minPop and $entry[7] < $minPop;
748
752
  next if %fcodes and $neg ? $fcodes{lc $entry[6]} : not $fcodes{lc $entry[6]};
749
- $_ = defined $_ ? $mt->Decode($_, 'UTF8') : '' foreach @entry[0,1,2,4];
753
+ push @entry, Image::ExifTool::Geolocation::GetAltNames($i,1) if $isAlt;
754
+ $_ = defined $_ ? $mt->Decode($_, 'UTF8') : '' foreach @entry[@isUTF8];
755
+ pop @entry if $isAlt and not $entry[10];
750
756
  print join(',', @entry), "\n";
751
757
  }
752
758
  } else { # 'g(\d*)'
@@ -1378,11 +1384,11 @@ for (;;) {
1378
1384
  $useMWG = 1;
1379
1385
  } elsif (/^([-\w]+:)*(filename|directory|testname)\b/i) {
1380
1386
  $doSetFileName = 1;
1381
- } elsif (/^([-\w]+:)*(geotag|geotime|geosync)\b/i) {
1387
+ } elsif (/^([-\w]+:)*(geotag|geotime|geosync|geolocate)\b/i) {
1382
1388
  if (lc $2 eq 'geotime') {
1383
1389
  $addGeotime = '';
1384
1390
  } else {
1385
- # add geotag/geosync commands first
1391
+ # add geotag/geosync/geolocate commands first
1386
1392
  unshift @newValues, pop @newValues;
1387
1393
  if (lc $2 eq 'geotag' and (not defined $addGeotime or $addGeotime) and length $val) {
1388
1394
  $addGeotime = ($1 || '') . 'Geotime<DateTimeOriginal#';
@@ -2172,7 +2178,7 @@ sub GetImageInfo($$)
2172
2178
 
2173
2179
  my $lineCount = 0;
2174
2180
  my ($fp, $outfile, $append);
2175
- if ($textOut and $verbose and not $tagOut) {
2181
+ if ($textOut and ($verbose or $et->Options('PrintCSV')) and not $tagOut) {
2176
2182
  ($fp, $outfile, $append) = OpenOutputFile($orig);
2177
2183
  $fp or EFile($file), ++$countBad, return;
2178
2184
  # delete file if we exit prematurely (unless appending)
@@ -2295,7 +2301,7 @@ sub GetImageInfo($$)
2295
2301
  $lastDoc = 0;
2296
2302
  }
2297
2303
  for ($doc=0; $doc<=$lastDoc; ++$doc) {
2298
- my $skipBody;
2304
+ my ($skipBody, $opt);
2299
2305
  foreach $type (qw(HEAD SECT IF BODY ENDS TAIL)) {
2300
2306
  my $prf = $printFmt{$type} or next;
2301
2307
  if ($type eq 'HEAD' and defined $outfile) {
@@ -2303,6 +2309,12 @@ sub GetImageInfo($$)
2303
2309
  $wroteHEAD{$outfile} = 1;
2304
2310
  }
2305
2311
  next if $type eq 'BODY' and $skipBody;
2312
+ # silence "IF" warnings and warnings for subdocuments > 1
2313
+ if ($type eq 'IF' or ($doc > 1 and not $$et{OPTIONS}{IgnoreMinorErrors})) {
2314
+ $opt = 'Silent';
2315
+ } else {
2316
+ $opt = 'Warn';
2317
+ }
2306
2318
  if ($lastDoc) {
2307
2319
  if ($doc) {
2308
2320
  next if $type eq 'HEAD' or $type eq 'TAIL'; # only repeat SECT/IF/BODY/ENDS
@@ -2312,7 +2324,6 @@ sub GetImageInfo($$)
2312
2324
  }
2313
2325
  }
2314
2326
  my @lines;
2315
- my $opt = $type eq 'IF' ? 'Silent' : 'Warn'; # silence "IF" warnings
2316
2327
  foreach (@$prf) {
2317
2328
  my $line = $et->InsertTagValues($_, \@foundTags, $opt, $grp, $cache);
2318
2329
  if ($type eq 'IF') {
@@ -5680,7 +5691,7 @@ OPTIONS
5680
5691
 
5681
5692
  produces output like this:
5682
5693
 
5683
- -- Generated by ExifTool 12.80 --
5694
+ -- Generated by ExifTool 12.82 --
5684
5695
  File: a.jpg - 2003:10:31 15:44:19
5685
5696
  (f/5.6, 1/60s, ISO 100)
5686
5697
  File: b.jpg - 2006:05:23 11:57:38
@@ -6462,9 +6473,9 @@ OPTIONS
6462
6473
  -listf, -listr or -listwf to add file descriptions to the list. The
6463
6474
  -lang option may be combined with -listx to output descriptions in
6464
6475
  a single language, and the -sort and/or -lang options may be
6465
- combined with -listgeo. Also, the API GeolocMinPop and
6466
- GeolocFeature options apply to the -listgeo output. Here are some
6467
- examples:
6476
+ combined with -listgeo. Also, the API GeolocMinPop, GeolocFeature
6477
+ and GeolocAltNames options apply to the -listgeo output. Here are
6478
+ some examples:
6468
6479
 
6469
6480
  -list # list all tag names
6470
6481
  -list -EXIF:All # list all EXIF tags
@@ -6561,6 +6572,11 @@ OPTIONS
6561
6572
  full ExifTool distribution and the Image::ExifTool Options for more
6562
6573
  details and for information about geotag configuration options.
6563
6574
 
6575
+ The API Geolocation option may be set to the value "geotag" to also
6576
+ write the name, province/state and country of the nearest city
6577
+ while geotagging. See <https://exiftool.org/geolocation.html> for
6578
+ details.
6579
+
6564
6580
  -globalTimeShift *SHIFT*
6565
6581
  Shift all formatted date/time values by the specified amount when
6566
6582
  reading. Does not apply to unformatted (-n) output. *SHIFT* takes
@@ -7356,6 +7372,12 @@ GEOTAGGING EXAMPLES
7356
7372
  value of DateTimeOriginal is used for geotagging. Local system time
7357
7373
  is assumed unless DateTimeOriginal contains a timezone.
7358
7374
 
7375
+ exiftool -geotag track.log -geolocate=geotag a.jpg
7376
+ Geotag an image and also write geolocation information of the
7377
+ nearest city (city name, state/province and country). Read here for
7378
+ more details about the Geolocation feature:
7379
+ <https://exiftool.org/geolocation.html#Write>
7380
+
7359
7381
  exiftool -geotag t.log -geotime="2009:04:02 13:41:12-05:00" a.jpg
7360
7382
  Geotag an image with the GPS position for a specific time.
7361
7383