exiftool_vendored 9.37.0 → 9.41.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of exiftool_vendored might be problematic. Click here for more details.

Files changed (889) hide show
  1. checksums.yaml +6 -14
  2. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/Changes +74 -0
  3. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/MANIFEST +14 -0
  4. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/META.yml +1 -1
  5. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/Makefile.PL +0 -0
  6. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/README +30 -30
  7. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/exif2iptc.args +0 -0
  8. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/exif2xmp.args +0 -0
  9. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/gps2xmp.args +0 -0
  10. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/iptc2exif.args +0 -0
  11. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/iptc2xmp.args +0 -0
  12. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/iptcCore.args +0 -0
  13. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/pdf2xmp.args +0 -0
  14. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/xmp2exif.args +0 -0
  15. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/xmp2gps.args +0 -0
  16. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/xmp2iptc.args +0 -0
  17. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/xmp2pdf.args +0 -0
  18. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/config_files/ExifTool_config +0 -0
  19. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/config_files/convert_regions.config +0 -0
  20. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/exiftool +266 -226
  21. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/fmt_files/gpx.fmt +0 -0
  22. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/fmt_files/gpx_wpt.fmt +0 -0
  23. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/fmt_files/kml.fmt +0 -0
  24. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/ExifTool.html +79 -54
  25. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/MIE1.1-20070121.pdf +0 -0
  26. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/Shift.html +0 -0
  27. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/AFCP.html +0 -0
  28. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/AIFF.html +0 -0
  29. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/APE.html +0 -0
  30. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/APP12.html +0 -0
  31. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/ASF.html +0 -0
  32. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Apple.html +11 -8
  33. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/BMP.html +0 -0
  34. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Canon.html +138 -14
  35. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/CanonCustom.html +0 -0
  36. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/CanonRaw.html +0 -0
  37. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/CanonVRD.html +0 -0
  38. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Casio.html +0 -0
  39. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Composite.html +19 -13
  40. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/DICOM.html +0 -0
  41. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/DNG.html +0 -0
  42. data/bin/Image-ExifTool-9.41/html/TagNames/DPX.html +190 -0
  43. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/DV.html +0 -0
  44. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/DarwinCore.html +0 -0
  45. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/DjVu.html +0 -0
  46. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/EXE.html +0 -0
  47. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/EXIF.html +0 -0
  48. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Extra.html +13 -6
  49. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/FLAC.html +0 -0
  50. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/FLIR.html +166 -2
  51. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Flash.html +0 -0
  52. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/FlashPix.html +0 -0
  53. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Font.html +0 -0
  54. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/FotoStation.html +0 -0
  55. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/FujiFilm.html +11 -1
  56. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/GE.html +0 -0
  57. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/GIF.html +0 -0
  58. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/GIMP.html +0 -0
  59. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/GPS.html +0 -0
  60. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/GeoTiff.html +0 -0
  61. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/H264.html +0 -0
  62. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/HP.html +0 -0
  63. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/HTML.html +0 -0
  64. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/ICC_Profile.html +0 -0
  65. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/ID3.html +0 -0
  66. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/IPTC.html +3 -3
  67. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/ITC.html +0 -0
  68. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/JFIF.html +0 -0
  69. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/JPEG.html +6 -4
  70. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/JVC.html +0 -0
  71. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Jpeg2000.html +0 -0
  72. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Kodak.html +0 -0
  73. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/KyoceraRaw.html +0 -0
  74. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/LNK.html +0 -0
  75. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Leaf.html +0 -0
  76. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/M2TS.html +0 -0
  77. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/MIE.html +0 -0
  78. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/MIFF.html +0 -0
  79. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/MNG.html +0 -0
  80. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/MPC.html +0 -0
  81. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/MPEG.html +0 -0
  82. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/MPF.html +0 -0
  83. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/MWG.html +0 -0
  84. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/MXF.html +0 -0
  85. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Matroska.html +0 -0
  86. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Microsoft.html +0 -0
  87. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Minolta.html +30 -19
  88. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/MinoltaRaw.html +0 -0
  89. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Nikon.html +81 -60
  90. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/NikonCapture.html +0 -0
  91. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/NikonCustom.html +0 -0
  92. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/OOXML.html +0 -0
  93. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Ogg.html +0 -0
  94. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Olympus.html +0 -0
  95. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/OpenEXR.html +0 -0
  96. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PDF.html +6 -6
  97. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PGF.html +0 -0
  98. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PICT.html +0 -0
  99. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PLIST.html +0 -0
  100. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PNG.html +25 -18
  101. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PSP.html +0 -0
  102. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Panasonic.html +51 -14
  103. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PanasonicRaw.html +0 -0
  104. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Pentax.html +23 -6
  105. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PhaseOne.html +0 -0
  106. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PhotoCD.html +0 -0
  107. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PhotoMechanic.html +0 -0
  108. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Photoshop.html +0 -0
  109. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PostScript.html +0 -0
  110. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PrintIM.html +0 -0
  111. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Qualcomm.html +0 -0
  112. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/QuickTime.html +404 -126
  113. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/RIFF.html +19 -13
  114. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/RSRC.html +0 -0
  115. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/RTF.html +0 -0
  116. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Radiance.html +0 -0
  117. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Rawzor.html +0 -0
  118. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Real.html +0 -0
  119. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Reconyx.html +0 -0
  120. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Ricoh.html +0 -0
  121. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Samsung.html +27 -1
  122. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Sanyo.html +0 -0
  123. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Scalado.html +0 -0
  124. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Shortcuts.html +0 -0
  125. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Sigma.html +0 -0
  126. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/SigmaRaw.html +0 -0
  127. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Sony.html +491 -121
  128. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/SonyIDC.html +0 -0
  129. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Stim.html +0 -0
  130. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Theora.html +0 -0
  131. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Torrent.html +0 -0
  132. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Unknown.html +0 -0
  133. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Vorbis.html +0 -0
  134. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/XMP.html +824 -175
  135. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/ZIP.html +0 -0
  136. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/iWork.html +0 -0
  137. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/index.html +7 -5
  138. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/style.css +0 -0
  139. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/ancient_history.html +201 -0
  140. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/canon_raw.html +0 -0
  141. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/commentary.html +0 -0
  142. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/config.html +0 -0
  143. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/data_members.html +9 -0
  144. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/exiftool_pod.html +92 -71
  145. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/faq.html +0 -0
  146. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/filename.html +0 -0
  147. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/geotag.html +13 -9
  148. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/history.html +82 -201
  149. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/htmldump.html +0 -0
  150. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/idiosyncracies.html +4 -2
  151. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/index.html +46 -35
  152. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/install.html +0 -0
  153. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/metafiles.html +0 -0
  154. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/overview.png +0 -0
  155. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/standards.html +0 -0
  156. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/struct.html +0 -0
  157. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/style.css +0 -0
  158. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/under.html +0 -0
  159. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/verbose.html +0 -0
  160. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/writing.html +0 -0
  161. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/File/RandomAccess.pm +0 -0
  162. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/File/RandomAccess.pod +0 -0
  163. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool.pm +387 -331
  164. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool.pod +101 -81
  165. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/AES.pm +0 -0
  166. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/AFCP.pm +14 -14
  167. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/AIFF.pm +17 -17
  168. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/APE.pm +18 -18
  169. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/APP12.pm +21 -21
  170. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/ASF.pm +48 -48
  171. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Apple.pm +31 -19
  172. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/BMP.pm +4 -4
  173. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/BZZ.pm +0 -0
  174. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/BigTIFF.pm +36 -36
  175. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/BuildTagLookup.pm +12 -12
  176. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Canon.pm +126 -38
  177. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/CanonCustom.pm +37 -37
  178. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/CanonRaw.pm +30 -30
  179. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/CanonVRD.pm +75 -75
  180. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/CaptureOne.pm +18 -18
  181. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Casio.pm +0 -0
  182. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset.pm +13 -13
  183. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Arabic.pm +0 -0
  184. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Baltic.pm +0 -0
  185. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Cyrillic.pm +0 -0
  186. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Greek.pm +0 -0
  187. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Hebrew.pm +0 -0
  188. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/JIS.pm +0 -0
  189. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Latin.pm +0 -0
  190. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Latin2.pm +0 -0
  191. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacArabic.pm +0 -0
  192. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacChineseCN.pm +0 -0
  193. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacChineseTW.pm +0 -0
  194. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacCroatian.pm +0 -0
  195. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacCyrillic.pm +0 -0
  196. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacGreek.pm +0 -0
  197. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacHebrew.pm +0 -0
  198. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacIceland.pm +0 -0
  199. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacJapanese.pm +0 -0
  200. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacKorean.pm +0 -0
  201. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacLatin2.pm +0 -0
  202. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacRSymbol.pm +0 -0
  203. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacRoman.pm +0 -0
  204. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacRomanian.pm +0 -0
  205. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacThai.pm +0 -0
  206. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacTurkish.pm +0 -0
  207. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/PDFDoc.pm +0 -0
  208. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/ShiftJIS.pm +0 -0
  209. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Symbol.pm +0 -0
  210. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Thai.pm +0 -0
  211. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Turkish.pm +0 -0
  212. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Vietnam.pm +0 -0
  213. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/DICOM.pm +56 -17
  214. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/DNG.pm +85 -85
  215. data/bin/Image-ExifTool-9.41/lib/Image/ExifTool/DPX.pm +151 -0
  216. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/DV.pm +6 -6
  217. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/DarwinCore.pm +0 -0
  218. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/DjVu.pm +14 -14
  219. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/EXE.pm +47 -47
  220. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Exif.pm +126 -116
  221. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/FLAC.pm +14 -14
  222. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/FLIR.pm +282 -22
  223. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Fixup.pm +0 -0
  224. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Flash.pm +41 -41
  225. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/FlashPix.pm +97 -97
  226. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Font.pm +46 -46
  227. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/FotoStation.pm +21 -20
  228. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/FujiFilm.pm +40 -38
  229. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/GE.pm +0 -0
  230. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/GIF.pm +32 -32
  231. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/GIMP.pm +11 -11
  232. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/GPS.pm +3 -3
  233. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/GeoTiff.pm +19 -19
  234. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Geotag.pm +69 -66
  235. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/H264.pm +42 -42
  236. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/HP.pm +9 -9
  237. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/HTML.pm +16 -16
  238. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/HtmlDump.pm +10 -10
  239. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/ICC_Profile.pm +48 -48
  240. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/ID3.pm +84 -84
  241. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/IPTC.pm +38 -38
  242. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/ITC.pm +11 -11
  243. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Import.pm +0 -0
  244. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/InDesign.pm +18 -18
  245. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/JPEG.pm +10 -6
  246. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/JPEGDigest.pm +4 -4
  247. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/JVC.pm +8 -8
  248. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Jpeg2000.pm +50 -58
  249. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Kodak.pm +15 -15
  250. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/KyoceraRaw.pm +4 -4
  251. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/LNK.pm +24 -24
  252. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/cs.pm +0 -0
  253. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/de.pm +0 -0
  254. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/en_ca.pm +0 -0
  255. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/en_gb.pm +0 -0
  256. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/es.pm +0 -0
  257. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/fi.pm +0 -0
  258. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/fr.pm +1 -1
  259. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/it.pm +0 -0
  260. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/ja.pm +0 -0
  261. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/ko.pm +0 -0
  262. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/nl.pm +0 -0
  263. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/pl.pm +0 -0
  264. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/ru.pm +0 -0
  265. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/sv.pm +0 -0
  266. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/tr.pm +0 -0
  267. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/zh_cn.pm +0 -0
  268. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/zh_tw.pm +0 -0
  269. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Leaf.pm +11 -11
  270. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/M2TS.pm +37 -37
  271. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MIE.pm +95 -95
  272. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MIEUnits.pod +0 -0
  273. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MIFF.pm +17 -17
  274. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MNG.pm +0 -0
  275. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MPC.pm +11 -11
  276. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MPEG.pm +28 -28
  277. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MPF.pm +22 -22
  278. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MWG.pm +9 -9
  279. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MXF.pm +46 -46
  280. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MakerNotes.pm +61 -59
  281. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Matroska.pm +27 -27
  282. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Microsoft.pm +8 -8
  283. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Minolta.pm +50 -28
  284. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MinoltaRaw.pm +17 -17
  285. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Nikon.pm +80 -63
  286. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/NikonCapture.pm +29 -29
  287. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/NikonCustom.pm +0 -0
  288. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/OOXML.pm +20 -20
  289. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Ogg.pm +19 -19
  290. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Olympus.pm +3 -3
  291. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/OpenEXR.pm +16 -16
  292. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PDF.pm +126 -126
  293. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PGF.pm +7 -7
  294. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PICT.pm +18 -18
  295. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PLIST.pm +39 -39
  296. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PNG.pm +141 -95
  297. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PPM.pm +11 -11
  298. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PSP.pm +14 -14
  299. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Panasonic.pm +82 -37
  300. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PanasonicRaw.pm +40 -40
  301. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Pentax.pm +86 -14
  302. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PhaseOne.pm +36 -36
  303. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PhotoCD.pm +4 -4
  304. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PhotoMechanic.pm +12 -12
  305. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Photoshop.pm +23 -23
  306. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PostScript.pm +36 -36
  307. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PrintIM.pm +10 -10
  308. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Qualcomm.pm +5 -5
  309. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/QuickTime.pm +528 -219
  310. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/README +5 -3
  311. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/RIFF.pm +40 -32
  312. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/RSRC.pm +15 -15
  313. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/RTF.pm +15 -15
  314. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Radiance.pm +9 -9
  315. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Rawzor.pm +19 -19
  316. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Real.pm +43 -43
  317. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Reconyx.pm +0 -0
  318. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Ricoh.pm +24 -24
  319. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Samsung.pm +41 -15
  320. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Sanyo.pm +0 -0
  321. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Scalado.pm +5 -5
  322. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Shift.pl +0 -0
  323. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Shortcuts.pm +0 -0
  324. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Sigma.pm +0 -0
  325. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/SigmaRaw.pm +56 -56
  326. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Sony.pm +450 -166
  327. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/SonyIDC.pm +9 -9
  328. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Stim.pm +0 -0
  329. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/TagInfoXML.pm +6 -4
  330. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/TagLookup.pm +1707 -1468
  331. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/TagNames.pod +568 -102
  332. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Theora.pm +0 -0
  333. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Torrent.pm +11 -11
  334. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Unknown.pm +0 -0
  335. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Vorbis.pm +5 -5
  336. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/WriteCanonRaw.pl +51 -51
  337. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/WriteExif.pl +273 -273
  338. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/WriteIPTC.pl +44 -44
  339. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/WritePDF.pl +45 -39
  340. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/WritePNG.pl +86 -40
  341. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/WritePhotoshop.pl +27 -27
  342. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/WritePostScript.pl +47 -47
  343. data/bin/Image-ExifTool-9.41/lib/Image/ExifTool/WriteQuickTime.pl +344 -0
  344. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/WriteXMP.pl +112 -112
  345. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Writer.pl +428 -360
  346. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/XMP.pm +195 -104
  347. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/XMP2.pl +1 -0
  348. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/XMPStruct.pl +53 -52
  349. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/ZIP.pm +50 -50
  350. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/iWork.pm +17 -17
  351. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/perl-Image-ExifTool.spec +31 -31
  352. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/AFCP.t +0 -0
  353. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/AFCP_2.out +0 -0
  354. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/AFCP_3.out +0 -0
  355. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/AIFF.t +0 -0
  356. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/AIFF_2.out +0 -0
  357. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/APE.t +0 -0
  358. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/APE_2.out +0 -0
  359. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/APE_3.out +0 -0
  360. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ASF.t +0 -0
  361. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ASF_2.out +0 -0
  362. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/BMP.t +0 -0
  363. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/BMP_2.out +0 -0
  364. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/BigTIFF.t +0 -0
  365. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/BigTIFF_2.out +0 -0
  366. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Canon.t +0 -0
  367. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonRaw.t +0 -0
  368. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonRaw_2.out +0 -0
  369. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonRaw_4.out +5 -7
  370. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonRaw_5.out +0 -0
  371. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonRaw_6.out +0 -0
  372. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonRaw_7.out +0 -0
  373. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD.t +0 -0
  374. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_11.out +0 -0
  375. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_12.out +0 -0
  376. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_2.out +0 -0
  377. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_3.out +0 -0
  378. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_4.out +0 -0
  379. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_5.out +0 -0
  380. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_6.out +0 -0
  381. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_7.out +0 -0
  382. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_8.out +0 -0
  383. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_9.out +0 -0
  384. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Canon_2.out +4 -3
  385. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Canon_3.out +0 -0
  386. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Casio.t +0 -0
  387. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Casio_2.out +0 -0
  388. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Casio_3.out +0 -0
  389. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Casio_4.out +0 -0
  390. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Casio_5.out +0 -0
  391. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Casio_6.out +0 -0
  392. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/DICOM.t +0 -0
  393. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/DICOM_2.out +0 -0
  394. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/DNG.t +0 -0
  395. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/DNG_2.out +0 -0
  396. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/DNG_3.out +0 -0
  397. data/bin/Image-ExifTool-9.41/t/DPX.t +28 -0
  398. data/bin/Image-ExifTool-9.41/t/DPX_2.out +35 -0
  399. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/DV.t +0 -0
  400. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/DV_2.out +0 -0
  401. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/DjVu.t +0 -0
  402. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/DjVu_2.out +0 -0
  403. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/EXE.t +0 -0
  404. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/EXE_2.out +0 -0
  405. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/EXE_3.out +0 -0
  406. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/EXE_4.out +0 -0
  407. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool.t +0 -0
  408. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_16.out +0 -0
  409. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_17.out +0 -0
  410. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_2.out +0 -0
  411. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_20.out +0 -0
  412. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_21.out +0 -0
  413. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_22.out +0 -0
  414. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_23.out +0 -0
  415. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_24.out +0 -0
  416. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_25.out +0 -0
  417. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_26.out +0 -0
  418. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_3.out +0 -0
  419. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_4.out +0 -0
  420. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_5.out +0 -0
  421. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_6.out +0 -0
  422. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_7.out +0 -0
  423. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_8.out +0 -0
  424. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_9.out +0 -0
  425. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FLAC.t +0 -0
  426. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FLAC_2.out +0 -0
  427. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FLAC_3.out +0 -0
  428. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FLIR.t +0 -0
  429. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FLIR_2.out +0 -0
  430. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FLIR_3.out +0 -0
  431. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Flash.t +0 -0
  432. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FlashPix.t +0 -0
  433. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FlashPix_2.out +0 -0
  434. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Flash_2.out +0 -0
  435. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Flash_3.out +0 -0
  436. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Font.t +0 -0
  437. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Font_2.out +0 -0
  438. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Font_3.out +0 -0
  439. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Font_4.out +0 -0
  440. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Font_5.out +0 -0
  441. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Font_6.out +0 -0
  442. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Font_7.out +0 -0
  443. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FotoStation.t +0 -0
  444. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FotoStation_2.out +0 -0
  445. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FotoStation_3.out +0 -0
  446. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FujiFilm.t +0 -0
  447. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FujiFilm_2.out +0 -0
  448. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FujiFilm_3.out +0 -0
  449. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FujiFilm_4.out +0 -0
  450. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FujiFilm_5.out +0 -0
  451. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GE.t +0 -0
  452. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GE_2.out +0 -0
  453. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GE_3.out +0 -0
  454. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GIF.t +0 -0
  455. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GIF_2.out +0 -0
  456. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GIF_3.out +0 -0
  457. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GIF_4.out +0 -0
  458. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GIMP.t +0 -0
  459. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GIMP_2.out +0 -0
  460. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GPS.t +0 -0
  461. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GPS_2.out +0 -0
  462. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GPS_3.out +0 -0
  463. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GeoTiff.t +0 -0
  464. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GeoTiff_2.out +0 -0
  465. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GeoTiff_3.out +0 -0
  466. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Geotag.t +18 -1
  467. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Geotag_2.out +0 -0
  468. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Geotag_3.out +0 -0
  469. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Geotag_5.out +0 -0
  470. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Geotag_6.out +0 -0
  471. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Geotag_7.out +0 -0
  472. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Geotag_8.out +0 -0
  473. data/bin/Image-ExifTool-9.41/t/Geotag_9.out +7 -0
  474. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/HTML.t +0 -0
  475. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/HTML_2.out +0 -0
  476. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/IPTC.t +0 -0
  477. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/IPTC_2.out +0 -0
  478. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/IPTC_4.out +0 -0
  479. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/IPTC_5.out +0 -0
  480. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/IPTC_6.out +0 -0
  481. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/IPTC_7.out +0 -0
  482. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/IPTC_8.out +0 -0
  483. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ITC.t +0 -0
  484. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ITC_2.out +0 -0
  485. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/InDesign.t +0 -0
  486. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/InDesign_2.out +0 -0
  487. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/InDesign_3.out +0 -0
  488. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/InDesign_4.out +0 -0
  489. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/JVC.t +0 -0
  490. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/JVC_2.out +0 -0
  491. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/JVC_3.out +0 -0
  492. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Jpeg2000.t +0 -0
  493. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Jpeg2000_2.out +0 -0
  494. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Jpeg2000_3.out +0 -0
  495. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Jpeg2000_4.out +0 -0
  496. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Kodak.t +0 -0
  497. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Kodak_2.out +0 -0
  498. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Kodak_3.out +0 -0
  499. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/KyoceraRaw.t +0 -0
  500. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/KyoceraRaw_2.out +0 -0
  501. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/LNK.t +0 -0
  502. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/LNK_2.out +0 -0
  503. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang.t +0 -0
  504. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_1.out +0 -0
  505. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_10.out +0 -0
  506. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_11.out +0 -0
  507. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_12.out +0 -0
  508. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_13.out +0 -0
  509. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_14.out +0 -0
  510. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_15.out +0 -0
  511. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_16.out +0 -0
  512. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_17.out +0 -0
  513. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_18.out +0 -0
  514. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_2.out +0 -0
  515. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_3.out +0 -0
  516. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_4.out +0 -0
  517. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_5.out +0 -0
  518. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_6.out +0 -0
  519. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_7.out +0 -0
  520. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_8.out +0 -0
  521. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_9.out +0 -0
  522. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/M2TS.t +0 -0
  523. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/M2TS_2.out +0 -0
  524. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MIE.t +0 -0
  525. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MIE_2.out +0 -0
  526. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MIE_3.out +0 -0
  527. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MIE_5.out +0 -0
  528. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MIE_6.out +0 -0
  529. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MIFF.t +0 -0
  530. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MIFF_2.out +0 -0
  531. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MP3.t +0 -0
  532. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MP3_2.out +0 -0
  533. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MWG.t +0 -0
  534. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MWG_2.out +0 -0
  535. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MWG_3.out +0 -0
  536. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MWG_4.out +0 -0
  537. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MWG_5.out +0 -0
  538. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MWG_6.out +0 -0
  539. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MXF.t +0 -0
  540. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MXF_2.out +0 -0
  541. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Matroska.t +0 -0
  542. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Matroska_2.out +0 -0
  543. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Minolta.t +0 -0
  544. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Minolta_2.out +0 -0
  545. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Minolta_3.out +0 -0
  546. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Minolta_4.out +0 -0
  547. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Nikon.t +0 -0
  548. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Nikon_2.out +0 -0
  549. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Nikon_3.out +0 -0
  550. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Nikon_4.out +0 -0
  551. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Nikon_5.out +0 -0
  552. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Nikon_7.out +0 -0
  553. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Nikon_8.out +0 -0
  554. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Olympus.t +0 -0
  555. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Olympus_2.out +0 -0
  556. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Olympus_3.out +0 -0
  557. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Olympus_4.out +0 -0
  558. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Olympus_5.out +0 -0
  559. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Olympus_6.out +0 -0
  560. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Olympus_7.out +0 -0
  561. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/OpenEXR.t +0 -0
  562. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/OpenEXR_2.out +0 -0
  563. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF.t +0 -0
  564. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_10.out +0 -0
  565. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_11.out +0 -0
  566. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_12.out +0 -0
  567. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_14.out +0 -0
  568. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_15.out +0 -0
  569. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_16.out +0 -0
  570. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_17.out +0 -0
  571. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_18.out +0 -0
  572. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_19.out +0 -0
  573. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_2.out +0 -0
  574. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_20.out +0 -0
  575. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_22.out +0 -0
  576. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_4.out +0 -0
  577. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_5.out +0 -0
  578. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_6.out +0 -0
  579. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_7.out +0 -0
  580. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_8.out +0 -0
  581. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_9.out +0 -0
  582. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PGF.t +0 -0
  583. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PGF_2.out +0 -0
  584. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PICT.t +0 -0
  585. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PICT_2.out +0 -0
  586. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PLIST.t +0 -0
  587. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PLIST_2.out +0 -0
  588. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PLIST_3.out +0 -0
  589. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PNG.t +31 -1
  590. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PNG_2.out +0 -0
  591. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PNG_3.out +0 -0
  592. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PNG_4.out +0 -0
  593. data/bin/Image-ExifTool-9.41/t/PNG_5.out +17 -0
  594. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PPM.t +0 -0
  595. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PPM_2.out +0 -0
  596. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PPM_3.out +0 -0
  597. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PSP.t +0 -0
  598. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PSP_2.out +0 -0
  599. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Panasonic.t +0 -0
  600. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Panasonic_2.out +0 -0
  601. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Panasonic_3.out +0 -0
  602. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Panasonic_4.out +0 -0
  603. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Panasonic_5.out +0 -0
  604. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Pentax.t +0 -0
  605. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Pentax_2.out +0 -0
  606. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Pentax_3.out +0 -0
  607. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Pentax_4.out +0 -0
  608. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PhotoCD.t +0 -0
  609. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PhotoCD_2.out +0 -0
  610. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PhotoMechanic.t +0 -0
  611. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PhotoMechanic_2.out +0 -0
  612. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PhotoMechanic_3.out +0 -0
  613. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Photoshop.t +0 -0
  614. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Photoshop_2.out +0 -0
  615. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Photoshop_3.out +0 -0
  616. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PostScript.t +0 -0
  617. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PostScript_2.out +0 -0
  618. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PostScript_3.out +0 -0
  619. data/bin/Image-ExifTool-9.41/t/QuickTime.t +54 -0
  620. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/QuickTime_2.out +10 -8
  621. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/QuickTime_3.out +10 -8
  622. data/bin/Image-ExifTool-9.41/t/QuickTime_4.out +16 -0
  623. data/bin/Image-ExifTool-9.41/t/QuickTime_5.out +12 -0
  624. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/RIFF.t +0 -0
  625. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/RIFF_2.out +0 -0
  626. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/RIFF_3.out +0 -0
  627. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/RIFF_4.out +0 -0
  628. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/RTF.t +0 -0
  629. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/RTF_2.out +0 -0
  630. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Radiance.t +0 -0
  631. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Radiance_2.out +0 -0
  632. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Real.t +0 -0
  633. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Real_2.out +0 -0
  634. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Real_3.out +0 -0
  635. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Real_4.out +0 -0
  636. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Ricoh.t +0 -0
  637. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Ricoh_2.out +0 -0
  638. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Ricoh_3.out +0 -0
  639. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Ricoh_4.out +0 -0
  640. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sanyo.t +0 -0
  641. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sanyo_2.out +0 -0
  642. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sanyo_3.out +0 -0
  643. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sigma.t +0 -0
  644. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sigma_2.out +0 -0
  645. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sigma_3.out +0 -0
  646. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sigma_4.out +0 -0
  647. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sigma_5.out +0 -0
  648. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sony.t +0 -0
  649. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sony_2.out +0 -0
  650. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sony_3.out +0 -0
  651. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sony_5.out +0 -0
  652. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/TestLib.pm +0 -0
  653. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Torrent.t +0 -0
  654. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Torrent_2.out +0 -0
  655. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Unknown.t +0 -0
  656. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Unknown_2.out +0 -0
  657. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Unknown_3.out +0 -0
  658. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Vorbis.t +0 -0
  659. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Vorbis_2.out +0 -0
  660. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer.t +53 -1
  661. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_10.out +0 -0
  662. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_11.out +0 -0
  663. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_13.out +0 -0
  664. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_14.out +0 -0
  665. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_15.out +0 -0
  666. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_16.out +0 -0
  667. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_17.out +0 -0
  668. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_18.out +0 -0
  669. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_19.out +0 -0
  670. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_2.out +0 -0
  671. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_22.out +0 -0
  672. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_24.out +0 -0
  673. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_25.out +0 -0
  674. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_26.out +0 -0
  675. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_27.out +0 -0
  676. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_28.out +0 -0
  677. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_29.out +0 -0
  678. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_30.out +0 -0
  679. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_31.out +0 -0
  680. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_32.out +0 -0
  681. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_33.out +0 -0
  682. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_34.out +0 -0
  683. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_35.out +0 -0
  684. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_36.out +0 -0
  685. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_37.out +0 -0
  686. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_38.out +0 -0
  687. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_39.out +0 -0
  688. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_4.out +0 -0
  689. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_40.out +0 -0
  690. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_41.out +0 -0
  691. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_42.out +0 -0
  692. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_43.out +0 -0
  693. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_44.out +0 -0
  694. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_45.out +0 -0
  695. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_46.out +8 -6
  696. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_47.out +0 -0
  697. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_48.out +0 -0
  698. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_50.out +0 -0
  699. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_51.out +0 -0
  700. data/bin/Image-ExifTool-9.41/t/Writer_52.out +22 -0
  701. data/bin/Image-ExifTool-9.41/t/Writer_53.out +33 -0
  702. data/bin/Image-ExifTool-9.41/t/Writer_54.out +2 -0
  703. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_6.out +0 -0
  704. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_7.out +0 -0
  705. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_9.out +0 -0
  706. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP.t +0 -0
  707. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_10.out +0 -0
  708. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_11.out +0 -0
  709. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_12.out +0 -0
  710. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_13.out +0 -0
  711. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_14.out +0 -0
  712. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_15.out +0 -0
  713. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_16.out +0 -0
  714. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_17.out +0 -0
  715. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_18.out +0 -0
  716. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_19.out +0 -0
  717. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_2.out +0 -0
  718. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_20.out +0 -0
  719. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_21.out +0 -0
  720. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_22.out +0 -0
  721. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_23.out +0 -0
  722. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_24.out +0 -0
  723. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_25.out +0 -0
  724. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_26.out +0 -0
  725. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_27.out +0 -0
  726. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_28.out +0 -0
  727. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_29.out +0 -0
  728. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_3.out +0 -0
  729. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_30.out +0 -0
  730. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_31.out +0 -0
  731. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_32.out +0 -0
  732. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_34.out +0 -0
  733. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_36.out +0 -0
  734. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_37.out +0 -0
  735. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_39.out +0 -0
  736. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_40.out +0 -0
  737. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_41.out +0 -0
  738. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_5.out +0 -0
  739. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_6.out +0 -0
  740. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_7.out +0 -0
  741. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_8.out +0 -0
  742. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_9.out +0 -0
  743. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ZIP.t +0 -0
  744. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ZIP_2.out +0 -0
  745. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ZIP_3.out +0 -0
  746. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ZIP_4.out +0 -0
  747. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ZIP_5.out +0 -0
  748. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ZIP_6.out +0 -0
  749. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ZIP_7.out +0 -0
  750. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/AFCP.jpg +0 -0
  751. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/AIFF.aif +0 -0
  752. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/APE.ape +0 -0
  753. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/APE.mpc +0 -0
  754. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/ASF.wmv +0 -0
  755. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/BMP.bmp +0 -0
  756. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/BigTIFF.btf +0 -0
  757. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Canon.jpg +0 -0
  758. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Canon1DmkIII.jpg +0 -0
  759. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/CanonRaw.cr2 +0 -0
  760. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/CanonRaw.crw +0 -0
  761. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/CanonVRD.vrd +0 -0
  762. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/CaptureOne.eip +0 -0
  763. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Casio.jpg +0 -0
  764. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Casio2.jpg +0 -0
  765. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/CasioQVCI.jpg +0 -0
  766. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/DICOM.dcm +0 -0
  767. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/DNG.dng +0 -0
  768. data/bin/Image-ExifTool-9.41/t/images/DPX.dpx +0 -0
  769. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/DV.dv +0 -0
  770. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/DjVu.djvu +0 -0
  771. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/EXE.elf +0 -0
  772. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/EXE.exe +0 -0
  773. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/EXE.macho +0 -0
  774. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/ExifTool.jpg +0 -0
  775. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/ExifTool.tif +0 -0
  776. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/ExtendedXMP.jpg +0 -0
  777. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/FLAC.flac +0 -0
  778. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/FLAC.ogg +0 -0
  779. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/FLIR.fpf +0 -0
  780. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/FLIR.jpg +0 -0
  781. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Flash.flv +0 -0
  782. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Flash.swf +0 -0
  783. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/FlashPix.ppt +0 -0
  784. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Font.afm +0 -0
  785. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Font.dfont +0 -0
  786. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Font.pfa +0 -0
  787. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Font.pfb +0 -0
  788. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Font.pfm +0 -0
  789. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Font.ttf +0 -0
  790. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/FotoStation.jpg +0 -0
  791. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/FujiFilm.jpg +0 -0
  792. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/FujiFilm.raf +0 -0
  793. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/GE.jpg +0 -0
  794. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/GIF.gif +0 -0
  795. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/GIMP.xcf +0 -0
  796. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/GPS.jpg +0 -0
  797. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/GeoTiff.tif +0 -0
  798. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Geotag.gpx +0 -0
  799. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Geotag.igc +0 -0
  800. data/bin/Image-ExifTool-9.41/t/images/Geotag.kml +55 -0
  801. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Geotag.log +0 -0
  802. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Geotag.xml +0 -0
  803. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Geotag2.log +0 -0
  804. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/HTML.html +0 -0
  805. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/IPTC.jpg +0 -0
  806. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/ITC.itc +0 -0
  807. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/InDesign.indd +0 -0
  808. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/JVC.jpg +0 -0
  809. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/JVC2.jpg +0 -0
  810. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Jpeg2000.j2c +0 -0
  811. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Jpeg2000.jp2 +0 -0
  812. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Kodak.jpg +0 -0
  813. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/KyoceraRaw.raw +0 -0
  814. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/LNK.lnk +0 -0
  815. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/M2TS.mts +0 -0
  816. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/MIE.mie +0 -0
  817. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/MIFF.miff +0 -0
  818. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/MP3.mp3 +0 -0
  819. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/MWG.jpg +0 -0
  820. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/MXF.mxf +0 -0
  821. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Matroska.mkv +0 -0
  822. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Minolta.jpg +0 -0
  823. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Minolta.mrw +0 -0
  824. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Nikon.jpg +0 -0
  825. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Nikon.nef +0 -0
  826. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/NikonD2Hs.jpg +0 -0
  827. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/NikonD70.jpg +0 -0
  828. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/OOXML.docx +0 -0
  829. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Olympus.jpg +0 -0
  830. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Olympus2.jpg +0 -0
  831. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/OlympusE1.jpg +0 -0
  832. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/OpenDoc.ods +0 -0
  833. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/OpenEXR.exr +0 -0
  834. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PDF.pdf +0 -0
  835. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PDF2.pdf +0 -0
  836. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PGF.pgf +0 -0
  837. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PICT.pict +0 -0
  838. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PLIST-bin.plist +0 -0
  839. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PLIST-xml.plist +0 -0
  840. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PNG.png +0 -0
  841. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PPM.ppm +0 -0
  842. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PSP.psp +0 -0
  843. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Panasonic.jpg +0 -0
  844. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Panasonic.rw2 +0 -0
  845. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Pentax.avi +0 -0
  846. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Pentax.jpg +0 -0
  847. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PhotoCD.pcd +0 -0
  848. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PhotoMechanic.jpg +0 -0
  849. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Photoshop.psd +0 -0
  850. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PostScript.eps +0 -0
  851. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/QuickTime.m4a +0 -0
  852. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/QuickTime.mov +0 -0
  853. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/RIFF.avi +0 -0
  854. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/RIFF.wav +0 -0
  855. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/RIFF.webp +0 -0
  856. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/RTF.rtf +0 -0
  857. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Radiance.hdr +0 -0
  858. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Real.ra +0 -0
  859. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Real.ram +0 -0
  860. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Real.rm +0 -0
  861. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Ricoh.jpg +0 -0
  862. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Ricoh2.jpg +0 -0
  863. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Sanyo.jpg +0 -0
  864. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Sigma.jpg +0 -0
  865. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Sigma.x3f +0 -0
  866. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/SigmaDP2.x3f +0 -0
  867. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Sony.jpg +0 -0
  868. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Sony.pmp +0 -0
  869. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Torrent.torrent +0 -0
  870. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Unknown.jpg +0 -0
  871. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Vorbis.ogg +0 -0
  872. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Writer.jpg +0 -0
  873. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/XMP.inx +0 -0
  874. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/XMP.jpg +0 -0
  875. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/XMP.svg +0 -0
  876. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/XMP.xml +0 -0
  877. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/XMP.xmp +0 -0
  878. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/XMP2.xmp +0 -0
  879. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/XMP3.xmp +0 -0
  880. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/XMP4.xmp +0 -0
  881. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/XMP5.xmp +0 -0
  882. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/ZIP.gz +0 -0
  883. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/ZIP.zip +0 -0
  884. data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/iWork.numbers +0 -0
  885. data/lib/exiftool_vendored.rb +11 -3
  886. data/lib/exiftool_vendored/version.rb +1 -1
  887. data/lib/exiftool_vendored/version_extractor.rb +5 -7
  888. metadata +942 -886
  889. data/bin/Image-ExifTool-9.37/t/QuickTime.t +0 -31
@@ -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.01';
17
+ $VERSION = '1.02';
18
18
 
19
19
  sub ReadBencode($$);
20
20
  sub ExtractTags($$$;$$@);
@@ -183,7 +183,7 @@ sub ReadBencode($$)
183
183
  # Returns: number of tags extracted
184
184
  sub ExtractTags($$$;$$@)
185
185
  {
186
- my ($exifTool, $hashPtr, $tagTablePtr, $baseID, $baseName, @index) = @_;
186
+ my ($et, $hashPtr, $tagTablePtr, $baseID, $baseName, @index) = @_;
187
187
  my $count = 0;
188
188
  my $tag;
189
189
  foreach $tag (sort keys %$hashPtr) {
@@ -198,9 +198,9 @@ sub ExtractTags($$$;$$@)
198
198
  $name = "Tag$name" if length($name) < 2 or $name !~ /^[A-Z]/;
199
199
  $name = $baseName . $name if defined $baseName; # add base name if necessary
200
200
  AddTagToTable($tagTablePtr, $id, { Name => $name });
201
- $exifTool->VPrint(0, " [adding $id '$name']\n");
201
+ $et->VPrint(0, " [adding $id '$name']\n");
202
202
  }
203
- my $tagInfo = $exifTool->GetTagInfo($tagTablePtr, $id) or next;
203
+ my $tagInfo = $et->GetTagInfo($tagTablePtr, $id) or next;
204
204
  if (ref $val eq 'ARRAY') {
205
205
  if ($$tagInfo{JoinPath}) {
206
206
  $val = join '/', @$val;
@@ -229,7 +229,7 @@ sub ExtractTags($$$;$$@)
229
229
  }
230
230
  AddTagToTable($tagTablePtr, $id, { %$tagInfo, Name => $name });
231
231
  }
232
- $tagInfo = $exifTool->GetTagInfo($tagTablePtr, $id) or next;
232
+ $tagInfo = $et->GetTagInfo($tagTablePtr, $id) or next;
233
233
  }
234
234
  if (ref $val eq 'HASH') {
235
235
  # extract tags from this dictionary
@@ -242,10 +242,10 @@ sub ExtractTags($$$;$$@)
242
242
  $rootID = $id;
243
243
  $rootName = $$tagInfo{Name};
244
244
  }
245
- $count += ExtractTags($exifTool, $val, $table, $rootID, $rootName, @index);
245
+ $count += ExtractTags($et, $val, $table, $rootID, $rootName, @index);
246
246
  } else {
247
247
  # handle this simple tag value
248
- $exifTool->HandleTag($tagTablePtr, $id, $val);
248
+ $et->HandleTag($tagTablePtr, $id, $val);
249
249
  ++$count;
250
250
  }
251
251
  }
@@ -260,18 +260,18 @@ sub ExtractTags($$$;$$@)
260
260
  # Returns: 1 on success, 0 if this wasn't a valid BitTorrent file
261
261
  sub ProcessTorrent($$)
262
262
  {
263
- my ($exifTool, $dirInfo) = @_;
263
+ my ($et, $dirInfo) = @_;
264
264
  my $success = 0;
265
265
  my $raf = $$dirInfo{RAF};
266
266
  my $buff = '';
267
267
  pos($buff) = 0;
268
268
  my $dict = ReadBencode($raf, \$buff);
269
269
  my $err = $$raf{BencodeError};
270
- $exifTool->Warn("Bencode error: $err") if $err;
270
+ $et->Warn("Bencode error: $err") if $err;
271
271
  if (ref $dict eq 'HASH' and $$dict{announce}) {
272
- $exifTool->SetFileType('TORRENT');
272
+ $et->SetFileType('TORRENT');
273
273
  my $tagTablePtr = GetTagTable('Image::ExifTool::Torrent::Main');
274
- ExtractTags($exifTool, $dict, $tagTablePtr) and $success = 1;
274
+ ExtractTags($et, $dict, $tagTablePtr) and $success = 1;
275
275
  }
276
276
  return $success;
277
277
  }
@@ -17,7 +17,7 @@ use strict;
17
17
  use vars qw($VERSION);
18
18
  use Image::ExifTool qw(:DataAccess :Utils);
19
19
 
20
- $VERSION = '1.06';
20
+ $VERSION = '1.07';
21
21
 
22
22
  sub ProcessComments($$$);
23
23
 
@@ -139,7 +139,7 @@ Image::ExifTool::AddCompositeTags('Image::ExifTool::Vorbis');
139
139
  # Returns: 1 on success, otherwise returns 0 and sets a Warning
140
140
  sub ProcessComments($$$)
141
141
  {
142
- my ($exifTool, $dirInfo, $tagTablePtr) = @_;
142
+ my ($et, $dirInfo, $tagTablePtr) = @_;
143
143
  my $dataPt = $$dirInfo{DataPt};
144
144
  my $dataPos = $$dirInfo{DataPos};
145
145
  my $pos = $$dirInfo{DirStart} || 0;
@@ -165,7 +165,7 @@ sub ProcessComments($$$)
165
165
  $tag = 'vendor';
166
166
  $val = $buff;
167
167
  $num = ($pos + 4 < $end) ? Get32u($dataPt, $pos) : 0;
168
- $exifTool->VPrint(0, " + [Vorbis comments with $num entries]\n");
168
+ $et->VPrint(0, " + [Vorbis comments with $num entries]\n");
169
169
  $pos += 4;
170
170
  }
171
171
  # add tag to table unless it exists already
@@ -176,7 +176,7 @@ sub ProcessComments($$$)
176
176
  $name =~ s/([a-z0-9])_([a-z])/$1\U$2/g;
177
177
  AddTagToTable($tagTablePtr, $tag, { Name => $name });
178
178
  }
179
- $exifTool->HandleTag($tagTablePtr, $tag, $exifTool->Decode($val, 'UTF8'),
179
+ $et->HandleTag($tagTablePtr, $tag, $et->Decode($val, 'UTF8'),
180
180
  Index => $index,
181
181
  DataPt => $dataPt,
182
182
  DataPos => $dataPos,
@@ -187,7 +187,7 @@ sub ProcessComments($$$)
187
187
  $num-- or return 1;
188
188
  $index = (defined $index) ? $index + 1 : 0;
189
189
  }
190
- $exifTool->Warn('Format error in Vorbis comments');
190
+ $et->Warn('Format error in Vorbis comments');
191
191
  return 0;
192
192
  }
193
193
 
@@ -60,8 +60,8 @@ my %mapRotation = (
60
60
  # Inputs: 0) ExifTool object reference
61
61
  sub InitMakerNotes($)
62
62
  {
63
- my $exifTool = shift;
64
- $exifTool->{MAKER_NOTE_INFO} = {
63
+ my $et = shift;
64
+ $$et{MAKER_NOTE_INFO} = {
65
65
  Entries => { }, # directory entries keyed by tagID
66
66
  ValBuff => "\0\0\0\0", # value data buffer (start with zero nextIFD pointer)
67
67
  FixupTags => { }, # flags for tags with data in value buffer
@@ -76,7 +76,7 @@ sub InitMakerNotes($)
76
76
  # file, which isn't sequential (but Canon's version isn't sequential either...)
77
77
  sub BuildMakerNotes($$$$$$)
78
78
  {
79
- my ($exifTool, $rawTag, $tagInfo, $valuePt, $formName, $count) = @_;
79
+ my ($et, $rawTag, $tagInfo, $valuePt, $formName, $count) = @_;
80
80
 
81
81
  my $tagID = $mapRawTag{$rawTag} || return;
82
82
  $formName or warn(sprintf "No format for tag 0x%x!\n",$rawTag), return;
@@ -100,7 +100,7 @@ sub BuildMakerNotes($$$$$$)
100
100
  $value = $$valuePt;
101
101
  }
102
102
  my $offsetVal;
103
- my $makerInfo = $exifTool->{MAKER_NOTE_INFO};
103
+ my $makerInfo = $$et{MAKER_NOTE_INFO};
104
104
  if ($size > 4) {
105
105
  my $len = length $makerInfo->{ValBuff};
106
106
  $offsetVal = Set32u($len);
@@ -122,10 +122,10 @@ sub BuildMakerNotes($$$$$$)
122
122
  # Inputs: 0) ExifTool object reference
123
123
  sub SaveMakerNotes($)
124
124
  {
125
- my $exifTool = shift;
125
+ my $et = shift;
126
126
  # save maker notes
127
- my $makerInfo = $exifTool->{MAKER_NOTE_INFO};
128
- delete $exifTool->{MAKER_NOTE_INFO};
127
+ my $makerInfo = $$et{MAKER_NOTE_INFO};
128
+ delete $$et{MAKER_NOTE_INFO};
129
129
  my $dirEntries = $makerInfo->{Entries};
130
130
  my $numEntries = scalar(keys %$dirEntries);
131
131
  my $fixup = new Image::ExifTool::Fixup;
@@ -142,24 +142,24 @@ sub SaveMakerNotes($)
142
142
  }
143
143
  # save position of maker notes for pointer fixups
144
144
  $fixup->{Shift} += length($makerNotes);
145
- $exifTool->{MAKER_NOTE_FIXUP} = $fixup;
146
- $exifTool->{MAKER_NOTE_BYTE_ORDER} = GetByteOrder();
145
+ $$et{MAKER_NOTE_FIXUP} = $fixup;
146
+ $$et{MAKER_NOTE_BYTE_ORDER} = GetByteOrder();
147
147
  # add value data
148
148
  $makerNotes .= $makerInfo->{ValBuff};
149
149
  # get MakerNotes tag info
150
150
  my $tagTablePtr = Image::ExifTool::GetTagTable('Image::ExifTool::Exif::Main');
151
- my $tagInfo = $exifTool->GetTagInfo($tagTablePtr, 0x927c, \$makerNotes);
151
+ my $tagInfo = $et->GetTagInfo($tagTablePtr, 0x927c, \$makerNotes);
152
152
  # save the MakerNotes
153
- $exifTool->FoundTag($tagInfo, $makerNotes);
153
+ $et->FoundTag($tagInfo, $makerNotes);
154
154
  # save the garbage collection some work later
155
155
  delete $makerInfo->{Entries};
156
156
  delete $makerInfo->{ValBuff};
157
157
  delete $makerInfo->{FixupTags};
158
158
  # also generate Orientation tag since Rotation isn't transferred from RAW info
159
- my $rotation = $exifTool->GetValue('Rotation', 'ValueConv');
159
+ my $rotation = $et->GetValue('Rotation', 'ValueConv');
160
160
  if (defined $rotation and defined $mapRotation{$rotation}) {
161
- $tagInfo = $exifTool->GetTagInfo($tagTablePtr, 0x112);
162
- $exifTool->FoundTag($tagInfo, $mapRotation{$rotation});
161
+ $tagInfo = $et->GetTagInfo($tagTablePtr, 0x112);
162
+ $et->FoundTag($tagInfo, $mapRotation{$rotation});
163
163
  }
164
164
  }
165
165
 
@@ -170,10 +170,10 @@ sub SaveMakerNotes($)
170
170
  # Returns: error string or undef (and may change value) on success
171
171
  sub CheckCanonRaw($$$)
172
172
  {
173
- my ($exifTool, $tagInfo, $valPtr) = @_;
173
+ my ($et, $tagInfo, $valPtr) = @_;
174
174
  my $tagName = $$tagInfo{Name};
175
175
  if ($tagName eq 'JpgFromRaw' or $tagName eq 'ThumbnailImage') {
176
- unless ($$valPtr =~ /^\xff\xd8/ or $exifTool->Options('IgnoreMinorErrors')) {
176
+ unless ($$valPtr =~ /^\xff\xd8/ or $et->Options('IgnoreMinorErrors')) {
177
177
  return '[minor] Not a valid image';
178
178
  }
179
179
  } else {
@@ -195,7 +195,7 @@ sub CheckCanonRaw($$$)
195
195
  # Returns: true on success
196
196
  sub WriteCR2($$$)
197
197
  {
198
- my ($exifTool, $dirInfo, $tagTablePtr) = @_;
198
+ my ($et, $dirInfo, $tagTablePtr) = @_;
199
199
  my $dataPt = $$dirInfo{DataPt} or return 0;
200
200
  my $outfile = $$dirInfo{OutFile} or return 0;
201
201
  $$dirInfo{RAF} or return 0;
@@ -211,15 +211,15 @@ sub WriteCR2($$$)
211
211
  } else {
212
212
  $msg = 'Unrecognized Canon RAW file';
213
213
  }
214
- return 0 if $exifTool->Error($msg, $minor);
214
+ return 0 if $et->Error($msg, $minor);
215
215
  }
216
216
 
217
217
  # CR2 has a 16-byte header
218
218
  $$dirInfo{NewDataPos} = 16;
219
- my $newData = $exifTool->WriteDirectory($dirInfo, $tagTablePtr);
219
+ my $newData = $et->WriteDirectory($dirInfo, $tagTablePtr);
220
220
  return 0 unless defined $newData;
221
221
  unless ($$dirInfo{LastIFD}) {
222
- $exifTool->Error("CR2 image IFD may not be deleted");
222
+ $et->Error("CR2 image IFD may not be deleted");
223
223
  return 0;
224
224
  }
225
225
 
@@ -235,7 +235,7 @@ sub WriteCR2($$$)
235
235
 
236
236
  # copy over image data now if necessary
237
237
  if (ref $$dirInfo{ImageData}) {
238
- $exifTool->CopyImageData($$dirInfo{ImageData}, $outfile) or return 0;
238
+ $et->CopyImageData($$dirInfo{ImageData}, $outfile) or return 0;
239
239
  delete $$dirInfo{ImageData};
240
240
  }
241
241
  }
@@ -255,16 +255,16 @@ sub WriteCR2($$$)
255
255
  # OutFile on the fly --> much faster, efficient, and less demanding on memory!
256
256
  sub WriteCanonRaw($$$)
257
257
  {
258
- my ($exifTool, $dirInfo, $tagTablePtr) = @_;
259
- $exifTool or return 1; # allow dummy access to autoload this package
258
+ my ($et, $dirInfo, $tagTablePtr) = @_;
259
+ $et or return 1; # allow dummy access to autoload this package
260
260
  my $blockStart = $$dirInfo{DirStart};
261
261
  my $blockSize = $$dirInfo{DirLen};
262
262
  my $raf = $$dirInfo{RAF} or return 0;
263
263
  my $outfile = $$dirInfo{OutFile} or return 0;
264
264
  my $outPos = $$dirInfo{OutPos} or return 0;
265
265
  my $outBase = $outPos;
266
- my $verbose = $exifTool->Options('Verbose');
267
- my $out = $exifTool->Options('TextOut');
266
+ my $verbose = $et->Options('Verbose');
267
+ my $out = $et->Options('TextOut');
268
268
  my ($buff, $tagInfo);
269
269
 
270
270
  # 4 bytes at end of block give directory position within block
@@ -279,7 +279,7 @@ sub WriteCanonRaw($$$)
279
279
  my $newDir = '';
280
280
 
281
281
  # get hash of new information keyed by tagID
282
- my $newTags = $exifTool->GetNewTagInfoHash($tagTablePtr);
282
+ my $newTags = $et->GetNewTagInfoHash($tagTablePtr);
283
283
 
284
284
  # generate list of tags to add or delete (currently, we only allow JpgFromRaw
285
285
  # and ThumbnailImage, to be added or deleted from the root CanonRaw directory)
@@ -307,7 +307,7 @@ sub WriteCanonRaw($$$)
307
307
  if (@addTags and (not defined($tag) or $tag >= $addTags[0])) {
308
308
  my $addTag = shift @addTags;
309
309
  $tagInfo = $$newTags{$addTag};
310
- my $newVal = $exifTool->GetNewValues($tagInfo);
310
+ my $newVal = $et->GetNewValues($tagInfo);
311
311
  if (defined $newVal) {
312
312
  # pad value to an even length (Canon ImageBrowser and ZoomBrowser
313
313
  # version 6.1.1 have problems with odd-sized embedded JPEG images
@@ -321,7 +321,7 @@ sub WriteCanonRaw($$$)
321
321
  Write($outfile, $newVal) or return 0;
322
322
  $outPos += length($newVal); # update current position
323
323
  $verbose > 1 and print $out " + CanonRaw:$$tagInfo{Name}\n";
324
- ++$exifTool->{CHANGED};
324
+ ++$$et{CHANGED};
325
325
  }
326
326
  # set flag to delete this tag if found later
327
327
  $delTag{$addTag} = 1;
@@ -332,7 +332,7 @@ sub WriteCanonRaw($$$)
332
332
  my $tagType = ($tag >> 8) & 0x38; # get tag type
333
333
  my $valueInDir = ($tag & 0x4000); # flag for value in directory
334
334
 
335
- my $tagInfo = $exifTool->GetTagInfo($tagTablePtr,$tagID);
335
+ my $tagInfo = $et->GetTagInfo($tagTablePtr,$tagID);
336
336
  my $format = $crwTagFormat{$tagType};
337
337
  my ($count, $subdir);
338
338
  if ($tagInfo) {
@@ -363,7 +363,7 @@ sub WriteCanonRaw($$$)
363
363
  OutFile => $outfile,
364
364
  OutPos => $outPos,
365
365
  );
366
- my $result = $exifTool->WriteDirectory(\%subdirInfo, $tagTablePtr);
366
+ my $result = $et->WriteDirectory(\%subdirInfo, $tagTablePtr);
367
367
  return 0 unless $result;
368
368
  # set size and pointer for this new directory
369
369
  $size = $subdirInfo{OutPos} - $outPos;
@@ -406,9 +406,9 @@ sub WriteCanonRaw($$$)
406
406
  );
407
407
  #### eval Validate ($dirData, $subdirStart, $size)
408
408
  if (defined $$subdir{Validate} and not eval $$subdir{Validate}) {
409
- $exifTool->Warn("Invalid $name data");
409
+ $et->Warn("Invalid $name data");
410
410
  } else {
411
- $subdir = $exifTool->WriteDirectory(\%subdirInfo, $newTagTable);
411
+ $subdir = $et->WriteDirectory(\%subdirInfo, $newTagTable);
412
412
  if (defined $subdir and length $subdir) {
413
413
  if ($subdirStart) {
414
414
  # add header before data directory
@@ -421,7 +421,7 @@ sub WriteCanonRaw($$$)
421
421
  } elsif ($$newTags{$tagID}) {
422
422
  if ($delTag{$tagID}) {
423
423
  $verbose > 1 and print $out " - CanonRaw:$$tagInfo{Name}\n";
424
- ++$exifTool->{CHANGED};
424
+ ++$$et{CHANGED};
425
425
  next; # next since we already added this tag
426
426
  }
427
427
  my $oldVal;
@@ -430,9 +430,9 @@ sub WriteCanonRaw($$$)
430
430
  } else {
431
431
  $oldVal = $value;
432
432
  }
433
- my $nvHash = $exifTool->GetNewValueHash($tagInfo);
434
- if ($exifTool->IsOverwriting($nvHash, $oldVal)) {
435
- my $newVal = $exifTool->GetNewValues($nvHash);
433
+ my $nvHash = $et->GetNewValueHash($tagInfo);
434
+ if ($et->IsOverwriting($nvHash, $oldVal)) {
435
+ my $newVal = $et->GetNewValues($nvHash);
436
436
  my $verboseVal;
437
437
  $verboseVal = $newVal if $verbose > 1;
438
438
  # convert to specified format if necessary
@@ -441,9 +441,9 @@ sub WriteCanonRaw($$$)
441
441
  }
442
442
  if (defined $newVal) {
443
443
  $value = $newVal;
444
- ++$exifTool->{CHANGED};
445
- $exifTool->VerboseValue("- CanonRaw:$$tagInfo{Name}", $oldVal);
446
- $exifTool->VerboseValue("+ CanonRaw:$$tagInfo{Name}", $verboseVal);
444
+ ++$$et{CHANGED};
445
+ $et->VerboseValue("- CanonRaw:$$tagInfo{Name}", $oldVal);
446
+ $et->VerboseValue("+ CanonRaw:$$tagInfo{Name}", $verboseVal);
447
447
  }
448
448
  }
449
449
  }
@@ -505,7 +505,7 @@ sub WriteCanonRaw($$$)
505
505
  # or -1 if a write error occurred
506
506
  sub WriteCRW($$)
507
507
  {
508
- my ($exifTool, $dirInfo) = @_;
508
+ my ($et, $dirInfo) = @_;
509
509
  my $outfile = $$dirInfo{OutFile};
510
510
  my $raf = $$dirInfo{RAF};
511
511
  my $rtnVal = 0;
@@ -519,18 +519,18 @@ sub WriteCRW($$)
519
519
  my $type = $1;
520
520
  my $hlen = Get32u(\$buff, 0); # get header length
521
521
 
522
- if ($exifTool->{DEL_GROUP}->{MakerNotes}) {
522
+ if ($$et{DEL_GROUP}{MakerNotes}) {
523
523
  if ($type eq 'CCDR') {
524
- $exifTool->Error("Can't delete MakerNotes group in CRW file");
524
+ $et->Error("Can't delete MakerNotes group in CRW file");
525
525
  return 0;
526
526
  } else {
527
- ++$exifTool->{CHANGED};
527
+ ++$$et{CHANGED};
528
528
  return 1;
529
529
  }
530
530
  }
531
531
  # make XMP the preferred group for CRW files
532
- if ($$exifTool{FILE_TYPE} eq 'CRW') {
533
- $exifTool->InitWriteDirs(\%crwMap, 'XMP');
532
+ if ($$et{FILE_TYPE} eq 'CRW') {
533
+ $et->InitWriteDirs(\%crwMap, 'XMP');
534
534
  }
535
535
 
536
536
  # write header
@@ -554,7 +554,7 @@ sub WriteCRW($$)
554
554
  );
555
555
  # process the raw directory
556
556
  my $tagTablePtr = Image::ExifTool::GetTagTable('Image::ExifTool::CanonRaw::Main');
557
- my $success = $exifTool->WriteDirectory(\%dirInfo, $tagTablePtr);
557
+ my $success = $et->WriteDirectory(\%dirInfo, $tagTablePtr);
558
558
 
559
559
  my $trailPt;
560
560
  while ($success) {
@@ -563,7 +563,7 @@ sub WriteCRW($$)
563
563
  # rewrite the trailer(s)
564
564
  $buff = '';
565
565
  $$trailInfo{OutFile} = \$buff;
566
- $success = $exifTool->ProcessTrailers($trailInfo) or last;
566
+ $success = $et->ProcessTrailers($trailInfo) or last;
567
567
  $trailPt = $$trailInfo{OutFile};
568
568
  # nothing to write if trailers were deleted
569
569
  undef $trailPt if length($$trailPt) < 4;
@@ -571,13 +571,13 @@ sub WriteCRW($$)
571
571
  }
572
572
  if ($success) {
573
573
  # add CanonVRD trailer if writing as a block
574
- $trailPt = $exifTool->AddNewTrailers($trailPt,'CanonVRD');
575
- if (not $trailPt and $$exifTool{ADD_DIRS}{CanonVRD}) {
574
+ $trailPt = $et->AddNewTrailers($trailPt,'CanonVRD');
575
+ if (not $trailPt and $$et{ADD_DIRS}{CanonVRD}) {
576
576
  # create CanonVRD from scratch if necessary
577
577
  my $outbuff = '';
578
578
  my $saveOrder = GetByteOrder();
579
579
  require Image::ExifTool::CanonVRD;
580
- if (Image::ExifTool::CanonVRD::ProcessCanonVRD($exifTool, { OutFile => \$outbuff }) > 0) {
580
+ if (Image::ExifTool::CanonVRD::ProcessCanonVRD($et, { OutFile => \$outbuff }) > 0) {
581
581
  $trailPt = \$outbuff;
582
582
  }
583
583
  SetByteOrder($saveOrder);
@@ -592,7 +592,7 @@ sub WriteCRW($$)
592
592
  }
593
593
  $rtnVal = $err ? -1 : 1;
594
594
  } else {
595
- $exifTool->Error('Error rewriting CRW file');
595
+ $et->Error('Error rewriting CRW file');
596
596
  }
597
597
  return $rtnVal;
598
598
  }
@@ -1318,10 +1318,10 @@ sub GetCFAPattern($)
1318
1318
  # Returns: error string or undef (and possibly changes value) on success
1319
1319
  sub CheckExif($$$)
1320
1320
  {
1321
- my ($exifTool, $tagInfo, $valPtr) = @_;
1322
- my $format = $$tagInfo{Format} || $$tagInfo{Writable} || $tagInfo->{Table}{WRITABLE};
1321
+ my ($et, $tagInfo, $valPtr) = @_;
1322
+ my $format = $$tagInfo{Format} || $$tagInfo{Writable} || $$tagInfo{Table}{WRITABLE};
1323
1323
  if (not $format or $format eq '1') {
1324
- if ($tagInfo->{Groups}{0} eq 'MakerNotes') {
1324
+ if ($$tagInfo{Groups}{0} eq 'MakerNotes') {
1325
1325
  return undef; # OK to have no format for makernotes
1326
1326
  } else {
1327
1327
  return 'No writable format';
@@ -1337,11 +1337,11 @@ sub CheckExif($$$)
1337
1337
  # Note: MUST be called Raw conversion time so the EXIF byte order is known!
1338
1338
  sub EncodeExifText($$)
1339
1339
  {
1340
- my ($exifTool, $val) = @_;
1340
+ my ($et, $val) = @_;
1341
1341
  # does the string contain special characters?
1342
1342
  if ($val =~ /[\x80-\xff]/) {
1343
- my $order = $exifTool->GetNewValues('ExifUnicodeByteOrder');
1344
- return "UNICODE\0" . $exifTool->Encode($val,'UTF16',$order);
1343
+ my $order = $et->GetNewValues('ExifUnicodeByteOrder');
1344
+ return "UNICODE\0" . $et->Encode($val,'UTF16',$order);
1345
1345
  } else {
1346
1346
  return "ASCII\0\0\0$val";
1347
1347
  }
@@ -1355,7 +1355,7 @@ sub InsertWritableProperties($$;$)
1355
1355
  {
1356
1356
  my ($tagTablePtr, $writeTablePtr, $checkProc) = @_;
1357
1357
  my $tag;
1358
- $checkProc and $tagTablePtr->{CHECK_PROC} = $checkProc;
1358
+ $checkProc and $$tagTablePtr{CHECK_PROC} = $checkProc;
1359
1359
  foreach $tag (keys %$writeTablePtr) {
1360
1360
  my $writeInfo = $$writeTablePtr{$tag};
1361
1361
  my @infoList = GetTagInfoList($tagTablePtr, $tag);
@@ -1384,7 +1384,7 @@ sub InsertWritableProperties($$;$)
1384
1384
  # Returns: new maker note data (and creates MAKER_NOTE_FIXUP), or undef on error
1385
1385
  sub RebuildMakerNotes($$$)
1386
1386
  {
1387
- my ($exifTool, $tagTablePtr, $dirInfo) = @_;
1387
+ my ($et, $tagTablePtr, $dirInfo) = @_;
1388
1388
  my $dirStart = $$dirInfo{DirStart};
1389
1389
  my $dirLen = $$dirInfo{DirLen};
1390
1390
  my $dataPt = $$dirInfo{DataPt};
@@ -1392,7 +1392,7 @@ sub RebuildMakerNotes($$$)
1392
1392
  my $rtnValue;
1393
1393
  my %subdirInfo = %$dirInfo;
1394
1394
 
1395
- delete $exifTool->{MAKER_NOTE_FIXUP};
1395
+ delete $$et{MAKER_NOTE_FIXUP};
1396
1396
 
1397
1397
  # don't need to rebuild text, BinaryData or PreviewImage maker notes
1398
1398
  my $tagInfo = $$dirInfo{TagInfo};
@@ -1406,40 +1406,40 @@ sub RebuildMakerNotes($$$)
1406
1406
  return substr($$dataPt, $dirStart, $dirLen);
1407
1407
  }
1408
1408
  my $saveOrder = GetByteOrder();
1409
- my $loc = Image::ExifTool::MakerNotes::LocateIFD($exifTool,\%subdirInfo);
1409
+ my $loc = Image::ExifTool::MakerNotes::LocateIFD($et,\%subdirInfo);
1410
1410
  if (defined $loc) {
1411
1411
  my $makerFixup = $subdirInfo{Fixup} = new Image::ExifTool::Fixup;
1412
1412
  # create new exiftool object to rewrite the directory without changing it
1413
1413
  my $newTool = new Image::ExifTool;
1414
1414
  $newTool->Options(
1415
- IgnoreMinorErrors => $$exifTool{OPTIONS}{IgnoreMinorErrors},
1416
- FixBase => $$exifTool{OPTIONS}{FixBase},
1415
+ IgnoreMinorErrors => $$et{OPTIONS}{IgnoreMinorErrors},
1416
+ FixBase => $$et{OPTIONS}{FixBase},
1417
1417
  );
1418
1418
  $newTool->Init(); # must do this before calling WriteDirectory()!
1419
1419
  # don't copy over preview image
1420
1420
  $newTool->SetNewValue(PreviewImage => '');
1421
1421
  # copy all transient members over in case they are used for writing
1422
1422
  # (Make, Model, etc)
1423
- foreach (grep /[a-z]/, keys %$exifTool) {
1424
- $$newTool{$_} = $$exifTool{$_};
1423
+ foreach (grep /[a-z]/, keys %$et) {
1424
+ $$newTool{$_} = $$et{$_};
1425
1425
  }
1426
1426
  # fix base offsets if specified
1427
- $newTool->Options(FixBase => $exifTool->Options('FixBase'));
1427
+ $newTool->Options(FixBase => $et->Options('FixBase'));
1428
1428
  # set GENERATE_PREVIEW_INFO flag so PREVIEW_INFO will be generated
1429
- $newTool->{GENERATE_PREVIEW_INFO} = 1;
1429
+ $$newTool{GENERATE_PREVIEW_INFO} = 1;
1430
1430
  # drop any large tags
1431
- $newTool->{DROP_TAGS} = 1;
1431
+ $$newTool{DROP_TAGS} = 1;
1432
1432
  # initialize other necessary data members
1433
- $newTool->{FILE_TYPE} = $exifTool->{FILE_TYPE};
1434
- $newTool->{TIFF_TYPE} = $exifTool->{TIFF_TYPE};
1433
+ $$newTool{FILE_TYPE} = $$et{FILE_TYPE};
1434
+ $$newTool{TIFF_TYPE} = $$et{TIFF_TYPE};
1435
1435
  # rewrite maker notes
1436
1436
  $rtnValue = $newTool->WriteDirectory(\%subdirInfo, $tagTablePtr);
1437
1437
  if (defined $rtnValue and length $rtnValue) {
1438
1438
  # add the dummy/empty preview image if necessary
1439
- if ($newTool->{PREVIEW_INFO}) {
1439
+ if ($$newTool{PREVIEW_INFO}) {
1440
1440
  $makerFixup->SetMarkerPointers(\$rtnValue, 'PreviewImage', length($rtnValue));
1441
- $rtnValue .= $newTool->{PREVIEW_INFO}{Data};
1442
- delete $newTool->{PREVIEW_INFO};
1441
+ $rtnValue .= $$newTool{PREVIEW_INFO}{Data};
1442
+ delete $$newTool{PREVIEW_INFO};
1443
1443
  }
1444
1444
  # add makernote header
1445
1445
  if ($loc) {
@@ -1448,25 +1448,25 @@ sub RebuildMakerNotes($$$)
1448
1448
  # (in JPEG, Pentax makernotes are absolute and start with "AOC\0")
1449
1449
  if ($hdr =~ s/^(PENTAX |SAMSUNG)\0/AOC\0/) {
1450
1450
  # save fixup so we will adjust to absolute offsets when writing
1451
- $exifTool->{MAKER_NOTE_FIXUP} = $makerFixup;
1451
+ $$et{MAKER_NOTE_FIXUP} = $makerFixup;
1452
1452
  }
1453
1453
  $rtnValue = $hdr . $rtnValue;
1454
1454
  # adjust fixup for shift in start position
1455
- $makerFixup->{Start} += length $hdr;
1455
+ $$makerFixup{Start} += length $hdr;
1456
1456
  }
1457
1457
  # shift offsets according to original position of maker notes,
1458
1458
  # and relative to the makernotes Base
1459
- $makerFixup->{Shift} += $dataPos + $dirStart +
1460
- $$dirInfo{Base} - $subdirInfo{Base};
1459
+ $$makerFixup{Shift} += $dataPos + $dirStart +
1460
+ $$dirInfo{Base} - $subdirInfo{Base};
1461
1461
  # repair incorrect offsets if offsets were fixed
1462
- $makerFixup->{Shift} += $subdirInfo{FixedBy} || 0;
1462
+ $$makerFixup{Shift} += $subdirInfo{FixedBy} || 0;
1463
1463
  # fix up pointers to the specified offset
1464
1464
  $makerFixup->ApplyFixup(\$rtnValue);
1465
1465
  # save fixup information unless offsets were relative
1466
1466
  unless ($subdirInfo{Relative}) {
1467
1467
  # set shift so offsets are all relative to start of maker notes
1468
- $makerFixup->{Shift} -= $dataPos + $dirStart;
1469
- $exifTool->{MAKER_NOTE_FIXUP} = $makerFixup; # save fixup for later
1468
+ $$makerFixup{Shift} -= $dataPos + $dirStart;
1469
+ $$et{MAKER_NOTE_FIXUP} = $makerFixup; # save fixup for later
1470
1470
  }
1471
1471
  }
1472
1472
  }
@@ -1575,11 +1575,11 @@ sub GetOffList($$$$$)
1575
1575
  # Inputs: 0) ExifTool ref, 1) end of valid TIFF data
1576
1576
  sub UpdateTiffEnd($$)
1577
1577
  {
1578
- my ($exifTool, $end) = @_;
1579
- if (defined $exifTool->{TIFF_END} and
1580
- $exifTool->{TIFF_END} < $end)
1578
+ my ($et, $end) = @_;
1579
+ if (defined $$et{TIFF_END} and
1580
+ $$et{TIFF_END} < $end)
1581
1581
  {
1582
- $exifTool->{TIFF_END} = $end;
1582
+ $$et{TIFF_END} = $end;
1583
1583
  }
1584
1584
  }
1585
1585
 
@@ -1589,14 +1589,14 @@ sub UpdateTiffEnd($$)
1589
1589
  # Returns: undef on fatal error, or '' if minor error is ignored
1590
1590
  sub ExifErr($$$)
1591
1591
  {
1592
- my ($exifTool, $errStr, $tagTablePtr) = @_;
1592
+ my ($et, $errStr, $tagTablePtr) = @_;
1593
1593
  # MakerNote errors are minor by default
1594
- my $minor = ($tagTablePtr->{GROUPS}{0} eq 'MakerNotes');
1595
- if ($tagTablePtr->{VARS} and $tagTablePtr->{VARS}{MINOR_ERRORS}) {
1596
- $exifTool->Warn("$errStr. IFD dropped.") and return '' if $minor;
1594
+ my $minor = ($$tagTablePtr{GROUPS}{0} eq 'MakerNotes');
1595
+ if ($$tagTablePtr{VARS} and $$tagTablePtr{VARS}{MINOR_ERRORS}) {
1596
+ $et->Warn("$errStr. IFD dropped.") and return '' if $minor;
1597
1597
  $minor = 1;
1598
1598
  }
1599
- return undef if $exifTool->Error($errStr, $minor);
1599
+ return undef if $et->Error($errStr, $minor);
1600
1600
  return '';
1601
1601
  }
1602
1602
 
@@ -1607,12 +1607,12 @@ sub ExifErr($$$)
1607
1607
  # Writing: new data block or undef on error
1608
1608
  sub ProcessTiffIFD($$$)
1609
1609
  {
1610
- my ($exifTool, $dirInfo, $tagTablePtr) = @_;
1611
- $exifTool or return 1; # allow dummy access
1610
+ my ($et, $dirInfo, $tagTablePtr) = @_;
1611
+ $et or return 1; # allow dummy access
1612
1612
  my $raf = $$dirInfo{RAF};
1613
1613
  my $base = $$dirInfo{Base} || 0;
1614
1614
  my $dirName = $$dirInfo{DirName};
1615
- my $magic = $dirInfo->{Subdir}{Magic} || 0x002a;
1615
+ my $magic = $$dirInfo{Subdir}{Magic} || 0x002a;
1616
1616
  my $buff;
1617
1617
 
1618
1618
  # structured with a TIFF-like header and relative offsets
@@ -1620,10 +1620,10 @@ sub ProcessTiffIFD($$$)
1620
1620
  unless (SetByteOrder(substr($buff,0,2)) and Get16u(\$buff, 2) == $magic) {
1621
1621
  my $msg = "Invalid $dirName header";
1622
1622
  if ($$dirInfo{IsWriting}) {
1623
- $exifTool->Error($msg);
1623
+ $et->Error($msg);
1624
1624
  return undef;
1625
1625
  } else {
1626
- $exifTool->Warn($msg);
1626
+ $et->Warn($msg);
1627
1627
  return 0;
1628
1628
  }
1629
1629
  }
@@ -1642,19 +1642,19 @@ sub ProcessTiffIFD($$$)
1642
1642
  );
1643
1643
  if ($$dirInfo{IsWriting}) {
1644
1644
  # rewrite the Camera Profile IFD
1645
- my $newDir = WriteExif($exifTool, \%dirInfo, $tagTablePtr);
1645
+ my $newDir = WriteExif($et, \%dirInfo, $tagTablePtr);
1646
1646
  # don't add header if error writing directory ($newDir is undef)
1647
1647
  # or if directory is being deleted ($newDir is empty)
1648
1648
  return $newDir unless $newDir;
1649
1649
  # return directory with TIFF-like header
1650
1650
  return GetByteOrder() . Set16u($magic) . Set32u(8) . $newDir;
1651
1651
  }
1652
- if ($exifTool->{HTML_DUMP}) {
1652
+ if ($$et{HTML_DUMP}) {
1653
1653
  my $tip = sprintf("Byte order: %s endian\nIdentifier: 0x%.4x\n%s offset: 0x%.4x",
1654
1654
  (GetByteOrder() eq 'II') ? 'Little' : 'Big', $magic, $dirName, $offset);
1655
- $exifTool->HDump($base, 8, "$dirName header", $tip, 0);
1655
+ $et->HDump($base, 8, "$dirName header", $tip, 0);
1656
1656
  }
1657
- return ProcessExif($exifTool, \%dirInfo, $tagTablePtr);
1657
+ return ProcessExif($et, \%dirInfo, $tagTablePtr);
1658
1658
  }
1659
1659
 
1660
1660
  #------------------------------------------------------------------------------
@@ -1671,8 +1671,8 @@ sub ProcessTiffIFD($$$)
1671
1671
  # 5. Thumbnail and/or image data for each IFD, with IFD0 image last
1672
1672
  sub WriteExif($$$)
1673
1673
  {
1674
- my ($exifTool, $dirInfo, $tagTablePtr) = @_;
1675
- $exifTool or return 1; # allow dummy access to autoload this package
1674
+ my ($et, $dirInfo, $tagTablePtr) = @_;
1675
+ $et or return 1; # allow dummy access to autoload this package
1676
1676
  my $origDirInfo = $dirInfo; # save original dirInfo
1677
1677
  my $dataPt = $$dirInfo{DataPt};
1678
1678
  unless ($dataPt) {
@@ -1689,8 +1689,8 @@ sub WriteExif($$$)
1689
1689
  my $dirName = $$dirInfo{DirName} || 'unknown';
1690
1690
  my $fixup = $$dirInfo{Fixup} || new Image::ExifTool::Fixup;
1691
1691
  my $imageDataFlag = $$dirInfo{ImageData} || '';
1692
- my $verbose = $exifTool->Options('Verbose');
1693
- my $out = $exifTool->Options('TextOut');
1692
+ my $verbose = $et->Options('Verbose');
1693
+ my $out = $et->Options('TextOut');
1694
1694
  my ($nextIfdPos, %offsetData, $inMakerNotes);
1695
1695
  my (@offsetInfo, %xDelete, $strEnc);
1696
1696
  my $deleteAll = 0;
@@ -1700,11 +1700,11 @@ sub WriteExif($$$)
1700
1700
  $name = $dirName unless $name and $dirName eq 'MakerNotes' and $name !~ /^MakerNote/;
1701
1701
 
1702
1702
  # set encoding for strings
1703
- $strEnc = $exifTool->Options('CharsetEXIF') if $$tagTablePtr{GROUPS}{0} eq 'EXIF';
1703
+ $strEnc = $et->Options('CharsetEXIF') if $$tagTablePtr{GROUPS}{0} eq 'EXIF';
1704
1704
 
1705
1705
  # allow multiple IFD's in IFD0-IFD1-IFD2... chain
1706
1706
  $$dirInfo{Multi} = 1 if $dirName =~ /^(IFD0|SubIFD)$/ and not defined $$dirInfo{Multi};
1707
- $inMakerNotes = 1 if $tagTablePtr->{GROUPS}{0} eq 'MakerNotes';
1707
+ $inMakerNotes = 1 if $$tagTablePtr{GROUPS}{0} eq 'MakerNotes';
1708
1708
  my $ifd;
1709
1709
  #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1710
1710
  # loop through each IFD
@@ -1729,12 +1729,12 @@ sub WriteExif($$$)
1729
1729
  my $offset = $dirStart + $dataPos;
1730
1730
  my ($buff, $buf2);
1731
1731
  unless ($raf->Seek($offset + $base, 0) and $raf->Read($buff,2) == 2) {
1732
- return ExifErr($exifTool, "Bad IFD or truncated file in $name", $tagTablePtr);
1732
+ return ExifErr($et, "Bad IFD or truncated file in $name", $tagTablePtr);
1733
1733
  }
1734
1734
  my $len = 12 * Get16u(\$buff,0);
1735
1735
  # (also read next IFD pointer if available)
1736
1736
  unless ($raf->Read($buf2, $len+4) >= $len) {
1737
- return ExifErr($exifTool, "Error reading $name", $tagTablePtr);
1737
+ return ExifErr($et, "Error reading $name", $tagTablePtr);
1738
1738
  }
1739
1739
  $buff .= $buf2;
1740
1740
  # make copy of dirInfo since we're going to modify it
@@ -1748,12 +1748,12 @@ sub WriteExif($$$)
1748
1748
  $dirLen = $$dirInfo{DirLen} = $dataLen;
1749
1749
  # only account for nextIFD pointer if we are going to use it
1750
1750
  $len += 4 if $dataLen==$len+6 and ($$dirInfo{Multi} or $buff =~ /\0{4}$/);
1751
- UpdateTiffEnd($exifTool, $offset+$base+2+$len);
1751
+ UpdateTiffEnd($et, $offset+$base+2+$len);
1752
1752
  } elsif ($dirLen) {
1753
1753
  # error if we can't load IFD (unless we are creating
1754
1754
  # from scratch, in which case dirLen will be zero)
1755
- my $str = $exifTool->Options('IgnoreMinorErrors') ? 'Deleted bad' : 'Bad';
1756
- $exifTool->Error("$str $name directory", 1);
1755
+ my $str = $et->Options('IgnoreMinorErrors') ? 'Deleted bad' : 'Bad';
1756
+ $et->Error("$str $name directory", 1);
1757
1757
  }
1758
1758
  }
1759
1759
  my ($index, $dirEnd, $numEntries);
@@ -1761,7 +1761,7 @@ sub WriteExif($$$)
1761
1761
  $numEntries = Get16u($dataPt, $dirStart);
1762
1762
  $dirEnd = $dirStart + 2 + 12 * $numEntries;
1763
1763
  if ($dirEnd > $dataLen) {
1764
- return ExifErr($exifTool, "Truncated $name directory", $tagTablePtr);
1764
+ return ExifErr($et, "Truncated $name directory", $tagTablePtr);
1765
1765
  }
1766
1766
  # sort entries if necessary (but not in maker notes IFDs)
1767
1767
  unless ($inMakerNotes) {
@@ -1771,7 +1771,7 @@ sub WriteExif($$$)
1771
1771
  # check for proper sequence (but ignore null entries at end)
1772
1772
  if ($tagID < $lastID and $tagID) {
1773
1773
  SortIFD($dataPt, $dirStart, $numEntries);
1774
- $exifTool->Warn("Entries in $name were out of sequence. Fixed.",1);
1774
+ $et->Warn("Entries in $name were out of sequence. Fixed.",1);
1775
1775
  last;
1776
1776
  }
1777
1777
  $lastID = $tagID;
@@ -1785,14 +1785,14 @@ sub WriteExif($$$)
1785
1785
  # loop through new values and accumulate all information for this IFD
1786
1786
  my (%set, %mayDelete, $tagInfo);
1787
1787
  my $wrongDir = $crossDelete{$dirName};
1788
- foreach $tagInfo ($exifTool->GetNewTagInfoList($tagTablePtr)) {
1788
+ foreach $tagInfo ($et->GetNewTagInfoList($tagTablePtr)) {
1789
1789
  my $tagID = $$tagInfo{TagID};
1790
1790
  # evaluate conditional lists now if necessary
1791
- if (ref $tagTablePtr->{$tagID} eq 'ARRAY' or $$tagInfo{Condition}) {
1792
- my $curInfo = $exifTool->GetTagInfo($tagTablePtr, $tagID);
1791
+ if (ref $$tagTablePtr{$tagID} eq 'ARRAY' or $$tagInfo{Condition}) {
1792
+ my $curInfo = $et->GetTagInfo($tagTablePtr, $tagID);
1793
1793
  if (defined $curInfo and not $curInfo) {
1794
1794
  # need value to evaluate the condition
1795
- my ($val) = $exifTool->GetNewValues($tagInfo);
1795
+ my ($val) = $et->GetNewValues($tagInfo);
1796
1796
  # must convert to binary for evaluating in Condition
1797
1797
  if ($$tagInfo{Format} and defined $val) {
1798
1798
  $val = WriteValue($val, $$tagInfo{Format}, $$tagInfo{Count});
@@ -1815,7 +1815,7 @@ sub WriteExif($$$)
1815
1815
  }
1816
1816
  }
1817
1817
  }
1818
- $curInfo = $exifTool->GetTagInfo($tagTablePtr, $tagID, \$val, $fmt, $cnt);
1818
+ $curInfo = $et->GetTagInfo($tagTablePtr, $tagID, \$val, $fmt, $cnt);
1819
1819
  } else {
1820
1820
  # may want to delete this, but we need to see the value first
1821
1821
  $mayDelete{$tagID} = 1;
@@ -1825,25 +1825,25 @@ sub WriteExif($$$)
1825
1825
  next unless defined $curInfo and $curInfo eq $tagInfo;
1826
1826
  }
1827
1827
  if ($$tagInfo{WriteCondition}) {
1828
- my $self = $exifTool; # set $self to be used in eval
1828
+ my $self = $et; # set $self to be used in eval
1829
1829
  #### eval WriteCondition ($self)
1830
1830
  unless (eval $$tagInfo{WriteCondition}) {
1831
1831
  $@ and warn $@;
1832
1832
  next;
1833
1833
  }
1834
1834
  }
1835
- my $nvHash = $exifTool->GetNewValueHash($tagInfo, $dirName);
1835
+ my $nvHash = $et->GetNewValueHash($tagInfo, $dirName);
1836
1836
  unless ($nvHash) {
1837
1837
  next unless $wrongDir;
1838
1838
  # delete stuff from the wrong directory if setting somewhere else
1839
- $nvHash = $exifTool->GetNewValueHash($tagInfo, $wrongDir);
1839
+ $nvHash = $et->GetNewValueHash($tagInfo, $wrongDir);
1840
1840
  # don't cross delete if not overwriting
1841
- next unless $exifTool->IsOverwriting($nvHash);
1841
+ next unless $et->IsOverwriting($nvHash);
1842
1842
  # don't cross delete if specifically deleting from the other directory
1843
1843
  # (Note: don't call GetValue() here because it shouldn't be called
1844
1844
  # if IsOverwriting returns < 0 -- ie. when shifting)
1845
- next if not defined $$nvHash{Value} and $nvHash->{WantGroup} and
1846
- lc($nvHash->{WantGroup}) eq lc($wrongDir);
1845
+ next if not defined $$nvHash{Value} and $$nvHash{WantGroup} and
1846
+ lc($$nvHash{WantGroup}) eq lc($wrongDir);
1847
1847
  # remove this tag if found in this IFD
1848
1848
  $xDelete{$tagID} = 1;
1849
1849
  }
@@ -1856,7 +1856,7 @@ sub WriteExif($$$)
1856
1856
  if ($tagID == 0x927c and $dirName =~ /^(ExifIFD|IFD0)$/) {
1857
1857
  next if $$tagInfo{Name} eq 'PreviewImage';
1858
1858
  } else {
1859
- $exifTool->Warn(sprintf("Multiple new values for $name tag 0x%.4x",$tagID));
1859
+ $et->Warn(sprintf("Multiple new values for $name tag 0x%.4x",$tagID));
1860
1860
  }
1861
1861
  }
1862
1862
  $set{$tagID} = $tagInfo;
@@ -1864,8 +1864,8 @@ sub WriteExif($$$)
1864
1864
 
1865
1865
  # fix base offsets (some cameras incorrectly write maker notes in IFD0)
1866
1866
  if ($dirName eq 'MakerNotes' and $$dirInfo{Parent} =~ /^(ExifIFD|IFD0)$/ and
1867
- $$exifTool{TIFF_TYPE} !~ /^(ARW|SR2)$/ and not $$exifTool{LeicaTrailerPos} and
1868
- Image::ExifTool::MakerNotes::FixBase($exifTool, $dirInfo))
1867
+ $$et{TIFF_TYPE} !~ /^(ARW|SR2)$/ and not $$et{LeicaTrailerPos} and
1868
+ Image::ExifTool::MakerNotes::FixBase($et, $dirInfo))
1869
1869
  {
1870
1870
  # update local variables from fixed values
1871
1871
  $base = $$dirInfo{Base};
@@ -1877,11 +1877,11 @@ sub WriteExif($$$)
1877
1877
  my ($allMandatory, $addMandatory);
1878
1878
  if ($mandatory) {
1879
1879
  # use X/Y resolution values from JFIF if available
1880
- if ($dirName eq 'IFD0' and defined $$exifTool{JFIFYResolution}) {
1880
+ if ($dirName eq 'IFD0' and defined $$et{JFIFYResolution}) {
1881
1881
  my %ifd0Vals = %$mandatory;
1882
- $ifd0Vals{0x011a} = $$exifTool{JFIFXResolution};
1883
- $ifd0Vals{0x011b} = $$exifTool{JFIFYResolution};
1884
- $ifd0Vals{0x0128} = $$exifTool{JFIFResolutionUnit} + 1;
1882
+ $ifd0Vals{0x011a} = $$et{JFIFXResolution};
1883
+ $ifd0Vals{0x011b} = $$et{JFIFYResolution};
1884
+ $ifd0Vals{0x0128} = $$et{JFIFResolutionUnit} + 1;
1885
1885
  $mandatory = \%ifd0Vals;
1886
1886
  }
1887
1887
  $allMandatory = $addMandatory = 0; # initialize to zero
@@ -1908,7 +1908,7 @@ sub WriteExif($$$)
1908
1908
  @newTags = sort { $a <=> $b } @newTags if @newTags > 1;
1909
1909
  } else {
1910
1910
  # get a hash of directories we will be writing in this one
1911
- $addDirs = $exifTool->GetAddDirHash($tagTablePtr, $dirName);
1911
+ $addDirs = $et->GetAddDirHash($tagTablePtr, $dirName);
1912
1912
  # make a union of tags & dirs (can set whole dirs, like MakerNotes)
1913
1913
  my %allTags = ( %set, %$addDirs );
1914
1914
  # make sorted list of new tags to be added
@@ -1929,7 +1929,7 @@ sub WriteExif($$$)
1929
1929
  my $newID = -1;
1930
1930
 
1931
1931
  # patch for Canon EOS 40D firmware 1.0.4 bug (incorrect directory counts)
1932
- if ($inMakerNotes and $$exifTool{Model} eq 'Canon EOS 40D') {
1932
+ if ($inMakerNotes and $$et{Model} eq 'Canon EOS 40D') {
1933
1933
  my $fmt = Get16u($dataPt, $dirStart + 2 + 12 * ($numEntries - 1) + 2);
1934
1934
  if ($fmt < 1 or $fmt > 13) {
1935
1935
  # adjust the number of directory entries
@@ -1959,14 +1959,14 @@ Entry: for (;;) {
1959
1959
  # patch to preserve invalid directory entries in SubIFD3 of
1960
1960
  # various Kodak Z-series cameras (Z812, Z1085IS, Z1275)
1961
1961
  # and some Sony cameras such as the DSC-P10
1962
- if ($dirName eq 'MakerNotes' and (($$exifTool{Make}=~/KODAK/i and
1962
+ if ($dirName eq 'MakerNotes' and (($$et{Make}=~/KODAK/i and
1963
1963
  $$dirInfo{Name} and $$dirInfo{Name} eq 'SubIFD3') or
1964
- ($numEntries == 12 and $$exifTool{Make} eq 'SONY' and $index >= 8)))
1964
+ ($numEntries == 12 and $$et{Make} eq 'SONY' and $index >= 8)))
1965
1965
  {
1966
1966
  $dirBuff .= substr($$dataPt, $entry, 12);
1967
1967
  ++$index;
1968
1968
  $newID = $oldID; # we wrote this
1969
- $exifTool->Warn($msg, 1);
1969
+ $et->Warn($msg, 1);
1970
1970
  next;
1971
1971
  }
1972
1972
  # don't write out null directory entry
@@ -1978,7 +1978,7 @@ Entry: for (;;) {
1978
1978
  $newID = $oldID; # pretend we wrote this
1979
1979
  next;
1980
1980
  }
1981
- return ExifErr($exifTool, $msg, $tagTablePtr);
1981
+ return ExifErr($et, $msg, $tagTablePtr);
1982
1982
  }
1983
1983
  $readFormName = $oldFormName = $formatName[$oldFormat];
1984
1984
  $valueDataPt = $dataPt;
@@ -1990,9 +1990,9 @@ Entry: for (;;) {
1990
1990
  if (ref $oldInfo ne 'HASH' or $$oldInfo{Condition}) {
1991
1991
  # must get unknown tags too
1992
1992
  # (necessary so we don't miss a tag we want to Drop)
1993
- my $unk = $exifTool->Options(Unknown => 1);
1994
- $oldInfo = $exifTool->GetTagInfo($tagTablePtr, $oldID);
1995
- $exifTool->Options(Unknown => $unk);
1993
+ my $unk = $et->Options(Unknown => 1);
1994
+ $oldInfo = $et->GetTagInfo($tagTablePtr, $oldID);
1995
+ $et->Options(Unknown => $unk);
1996
1996
  }
1997
1997
  # patch incorrect count in Kodak SubIFD3 tags
1998
1998
  if ($oldCount < 2 and $oldInfo and $$oldInfo{FixCount}) {
@@ -2015,9 +2015,9 @@ Entry: for (;;) {
2015
2015
  #### eval FixOffsets ($valuePtr, $valEnd, $size, $tagID, $wFlag)
2016
2016
  eval $$dirInfo{FixOffsets};
2017
2017
  unless (defined $valuePtr) {
2018
- unless ($$exifTool{DROP_TAGS}) {
2018
+ unless ($$et{DROP_TAGS}) {
2019
2019
  my $tagStr = $oldInfo ? $$oldInfo{Name} : sprintf("tag 0x%.4x",$oldID);
2020
- return undef if $exifTool->Error("Bad $name offset for $tagStr", $inMakerNotes);
2020
+ return undef if $et->Error("Bad $name offset for $tagStr", $inMakerNotes);
2021
2021
  }
2022
2022
  ++$index; $oldID = $newID; next; # drop this tag
2023
2023
  }
@@ -2026,7 +2026,7 @@ Entry: for (;;) {
2026
2026
  my $suspect = ($valuePtr < 8);
2027
2027
  # convert offset to pointer in $$dataPt
2028
2028
  if ($$dirInfo{EntryBased} or (ref $$tagTablePtr{$oldID} eq 'HASH' and
2029
- $tagTablePtr->{$oldID}{EntryBased}))
2029
+ $$tagTablePtr{$oldID}{EntryBased}))
2030
2030
  {
2031
2031
  $valuePtr += $entry;
2032
2032
  } else {
@@ -2041,7 +2041,7 @@ Entry: for (;;) {
2041
2041
  $tagStr = $$oldInfo{Name};
2042
2042
  $leicaTrailer = $$oldInfo{LeicaTrailer};
2043
2043
  } elsif (defined $oldInfo) {
2044
- $tmpInfo = $exifTool->GetTagInfo($tagTablePtr, $oldID, \ '', $oldFormName, $oldCount);
2044
+ $tmpInfo = $et->GetTagInfo($tagTablePtr, $oldID, \ '', $oldFormName, $oldCount);
2045
2045
  if ($tmpInfo) {
2046
2046
  $tagStr = $$tmpInfo{Name};
2047
2047
  $leicaTrailer = $$tmpInfo{LeicaTrailer};
@@ -2051,7 +2051,7 @@ Entry: for (;;) {
2051
2051
  # allow PreviewImage to run outside EXIF segment in JPEG images
2052
2052
  if (not $raf) {
2053
2053
  if ($tagStr eq 'PreviewImage') {
2054
- $raf = $exifTool->{RAF};
2054
+ $raf = $$et{RAF};
2055
2055
  if ($raf) {
2056
2056
  $pos = $raf->Tell();
2057
2057
  if ($oldInfo and $$oldInfo{ChangeBase}) {
@@ -2065,7 +2065,7 @@ Entry: for (;;) {
2065
2065
  }
2066
2066
  } elsif ($leicaTrailer) {
2067
2067
  # save information about Leica makernote trailer
2068
- $$exifTool{LeicaTrailer} = {
2068
+ $$et{LeicaTrailer} = {
2069
2069
  TagInfo => $oldInfo || $tmpInfo,
2070
2070
  Offset => $base + $valuePtr + $dataPos,
2071
2071
  Size => $oldSize,
@@ -2103,16 +2103,16 @@ Entry: for (;;) {
2103
2103
  }
2104
2104
  }
2105
2105
  unless ($success) {
2106
- return undef if $exifTool->Error("Error reading value for $name entry $index", $inMakerNotes);
2106
+ return undef if $et->Error("Error reading value for $name entry $index", $inMakerNotes);
2107
2107
  ++$index; $oldID = $newID; next; # drop this tag
2108
2108
  }
2109
2109
  } elsif (not $invalidPreview) {
2110
- return undef if $exifTool->Error("Bad $name offset for $tagStr", $inMakerNotes);
2110
+ return undef if $et->Error("Bad $name offset for $tagStr", $inMakerNotes);
2111
2111
  ++$index; $oldID = $newID; next; # drop this tag
2112
2112
  }
2113
2113
  if ($invalidPreview) {
2114
2114
  # set value for invalid preview
2115
- if ($exifTool->{FILE_TYPE} eq 'JPEG') {
2115
+ if ($$et{FILE_TYPE} eq 'JPEG') {
2116
2116
  # define dummy value for preview (or Leica MakerNote) to write later
2117
2117
  # (value must be larger than 4 bytes to generate PREVIEW_INFO,
2118
2118
  # and an even number of bytes so it won't be padded)
@@ -2123,7 +2123,7 @@ Entry: for (;;) {
2123
2123
  }
2124
2124
  $valuePtr = 0;
2125
2125
  } else {
2126
- UpdateTiffEnd($exifTool, $base+$valuePtr+$dataPos+$oldSize);
2126
+ UpdateTiffEnd($et, $base+$valuePtr+$dataPos+$oldSize);
2127
2127
  }
2128
2128
  # update pointers for value just read from file
2129
2129
  $valueDataPt = \$oldValue;
@@ -2136,9 +2136,9 @@ Entry: for (;;) {
2136
2136
  my $tagStr = $oldInfo ? $$oldInfo{Name} : sprintf('tag 0x%.4x', $oldID);
2137
2137
  my $str = "Suspicious $name offset for $tagStr";
2138
2138
  if ($inMakerNotes) {
2139
- $exifTool->Warn($str, 1);
2139
+ $et->Warn($str, 1);
2140
2140
  } else {
2141
- return undef if $exifTool->Error($str, 1);
2141
+ return undef if $et->Error($str, 1);
2142
2142
  }
2143
2143
  }
2144
2144
  }
@@ -2146,16 +2146,16 @@ Entry: for (;;) {
2146
2146
  $oldValue = substr($$valueDataPt, $valuePtr, $oldSize) unless $readFromFile;
2147
2147
  # get tagInfo using value if necessary
2148
2148
  if (defined $oldInfo and not $oldInfo) {
2149
- my $unk = $exifTool->Options(Unknown => 1);
2150
- $oldInfo = $exifTool->GetTagInfo($tagTablePtr, $oldID, \$oldValue, $oldFormName, $oldCount);
2151
- $exifTool->Options(Unknown => $unk);
2149
+ my $unk = $et->Options(Unknown => 1);
2150
+ $oldInfo = $et->GetTagInfo($tagTablePtr, $oldID, \$oldValue, $oldFormName, $oldCount);
2151
+ $et->Options(Unknown => $unk);
2152
2152
  # now that we have the value, we can resolve the Condition to finally
2153
2153
  # determine whether we want to delete this tag or not
2154
2154
  if ($mayDelete{$oldID} and $oldInfo and (not @newTags or $newTags[0] != $oldID)) {
2155
- my $nvHash = $exifTool->GetNewValueHash($oldInfo, $dirName);
2155
+ my $nvHash = $et->GetNewValueHash($oldInfo, $dirName);
2156
2156
  if (not $nvHash and $wrongDir) {
2157
2157
  # delete from wrong directory if necessary
2158
- $nvHash = $exifTool->GetNewValueHash($oldInfo, $wrongDir);
2158
+ $nvHash = $et->GetNewValueHash($oldInfo, $wrongDir);
2159
2159
  $nvHash and $xDelete{$oldID} = 1;
2160
2160
  }
2161
2161
  if ($nvHash) {
@@ -2170,7 +2170,7 @@ Entry: for (;;) {
2170
2170
  (not $oldInfo or not $$oldInfo{SubIFD}))
2171
2171
  {
2172
2172
  my $str = sprintf('%s tag 0x%.4x IFD format not handled', $name, $oldID);
2173
- $exifTool->Error($str, $inMakerNotes);
2173
+ $et->Error($str, $inMakerNotes);
2174
2174
  }
2175
2175
  # override format we use to read the value if specified
2176
2176
  if ($oldInfo) {
@@ -2178,10 +2178,10 @@ Entry: for (;;) {
2178
2178
  if (($$oldInfo{IsOffset} or $$oldInfo{SubIFD}) and
2179
2179
  not $intFormat{$oldFormName})
2180
2180
  {
2181
- $exifTool->Error("Invalid format ($oldFormName) for $name $$oldInfo{Name}", $inMakerNotes);
2181
+ $et->Error("Invalid format ($oldFormName) for $name $$oldInfo{Name}", $inMakerNotes);
2182
2182
  ++$index; $oldID = $newID; next; # drop this tag
2183
2183
  }
2184
- if ($$oldInfo{Drop} and $$exifTool{DROP_TAGS} and
2184
+ if ($$oldInfo{Drop} and $$et{DROP_TAGS} and
2185
2185
  ($$oldInfo{Drop} == 1 or $$oldInfo{Drop} < $oldSize))
2186
2186
  {
2187
2187
  ++$index; $oldID = $newID; next; # drop this tag
@@ -2201,9 +2201,9 @@ Entry: for (;;) {
2201
2201
  if ($oldID <= $lastTagID and not $inMakerNotes) {
2202
2202
  my $str = $oldInfo ? "$$oldInfo{Name} tag" : sprintf('tag 0x%x',$oldID);
2203
2203
  if ($oldID == $lastTagID) {
2204
- $exifTool->Warn("Duplicate $str in $name");;
2204
+ $et->Warn("Duplicate $str in $name");;
2205
2205
  } else {
2206
- $exifTool->Warn("\u$str out of sequence in $name");
2206
+ $et->Warn("\u$str out of sequence in $name");
2207
2207
  }
2208
2208
  }
2209
2209
  $lastTagID = $oldID;
@@ -2250,16 +2250,16 @@ Entry: for (;;) {
2250
2250
  $newInfo = $set{$newID};
2251
2251
  $newCount = $$newInfo{Count};
2252
2252
  my ($val, $newVal, $n);
2253
- my $nvHash = $exifTool->GetNewValueHash($newInfo, $dirName);
2253
+ my $nvHash = $et->GetNewValueHash($newInfo, $dirName);
2254
2254
  if ($isNew > 0) {
2255
2255
  # don't create new entry unless requested
2256
2256
  if ($nvHash) {
2257
2257
  next unless $$nvHash{IsCreating};
2258
2258
  if ($$newInfo{IsOverwriting}) {
2259
2259
  my $proc = $$newInfo{IsOverwriting};
2260
- $isOverwriting = &$proc($exifTool, $nvHash, $val, \$newVal);
2260
+ $isOverwriting = &$proc($et, $nvHash, $val, \$newVal);
2261
2261
  } else {
2262
- $isOverwriting = $exifTool->IsOverwriting($nvHash);
2262
+ $isOverwriting = $et->IsOverwriting($nvHash);
2263
2263
  }
2264
2264
  } else {
2265
2265
  next if $xDelete{$newID}; # don't create if cross deleting
@@ -2281,7 +2281,7 @@ Entry: for (;;) {
2281
2281
  $newFormat = $formatNumber{$newFormName};
2282
2282
  } elsif ($nvHash or $xDelete{$newID}) {
2283
2283
  unless ($nvHash) {
2284
- $nvHash = $exifTool->GetNewValueHash($newInfo, $wrongDir);
2284
+ $nvHash = $et->GetNewValueHash($newInfo, $wrongDir);
2285
2285
  }
2286
2286
  # read value
2287
2287
  if (length $oldValue >= $oldSize) {
@@ -2314,13 +2314,13 @@ Entry: for (;;) {
2314
2314
  }
2315
2315
  if ($$newInfo{IsOverwriting}) {
2316
2316
  my $proc = $$newInfo{IsOverwriting};
2317
- $isOverwriting = &$proc($exifTool, $nvHash, $val, \$newVal);
2317
+ $isOverwriting = &$proc($et, $nvHash, $val, \$newVal);
2318
2318
  } else {
2319
- $isOverwriting = $exifTool->IsOverwriting($nvHash, $val);
2319
+ $isOverwriting = $et->IsOverwriting($nvHash, $val);
2320
2320
  }
2321
2321
  }
2322
2322
  if ($isOverwriting) {
2323
- $newVal = $exifTool->GetNewValues($nvHash) unless defined $newVal;
2323
+ $newVal = $et->GetNewValues($nvHash) unless defined $newVal;
2324
2324
  # value undefined if deleting this tag
2325
2325
  # (also delete tag if cross-deleting and this isn't a date/time shift)
2326
2326
  if (not defined $newVal or ($xDelete{$newID} and not defined $$nvHash{Shift})) {
@@ -2329,8 +2329,8 @@ Entry: for (;;) {
2329
2329
  goto NoOverwrite; # GOTO!
2330
2330
  }
2331
2331
  unless ($isNew) {
2332
- ++$exifTool->{CHANGED};
2333
- $exifTool->VerboseValue("- $dirName:$$newInfo{Name}", $val);
2332
+ ++$$et{CHANGED};
2333
+ $et->VerboseValue("- $dirName:$$newInfo{Name}", $val);
2334
2334
  }
2335
2335
  next;
2336
2336
  }
@@ -2342,30 +2342,30 @@ Entry: for (;;) {
2342
2342
  # convert to binary format
2343
2343
  $newValue = WriteValue($newVal, $newFormName, $newCount);
2344
2344
  unless (defined $newValue) {
2345
- $exifTool->Warn("Invalid value for $dirName:$$newInfo{Name}");
2345
+ $et->Warn("Invalid value for $dirName:$$newInfo{Name}");
2346
2346
  goto NoOverwrite; # GOTO!
2347
2347
  }
2348
2348
  if (length $newValue) {
2349
2349
  # limit maximum value length in JPEG images
2350
2350
  # (max segment size is 65533 bytes and the min EXIF size is 96 incl an additional IFD entry)
2351
- if ($$exifTool{FILE_TYPE} eq 'JPEG' and length($newValue) > 65436 and
2351
+ if ($$et{FILE_TYPE} eq 'JPEG' and length($newValue) > 65436 and
2352
2352
  $$newInfo{Name} ne 'PreviewImage')
2353
2353
  {
2354
2354
  my $name = $$newInfo{MakerNotes} ? 'MakerNotes' : $$newInfo{Name};
2355
- $exifTool->Warn("$name too large to write in JPEG segment");
2355
+ $et->Warn("$name too large to write in JPEG segment");
2356
2356
  goto NoOverwrite; # GOTO!
2357
2357
  }
2358
2358
  # re-code if necessary
2359
2359
  if ($strEnc and $newFormName eq 'string') {
2360
- $newValue = $exifTool->Encode($newValue, $strEnc);
2360
+ $newValue = $et->Encode($newValue, $strEnc);
2361
2361
  }
2362
2362
  } else {
2363
- $exifTool->Warn("Can't write zero length $$newInfo{Name} in $tagTablePtr->{GROUPS}{1}");
2363
+ $et->Warn("Can't write zero length $$newInfo{Name} in $$tagTablePtr{GROUPS}{1}");
2364
2364
  goto NoOverwrite; # GOTO!
2365
2365
  }
2366
2366
  if ($isNew >= 0) {
2367
2367
  $newCount = length($newValue) / $formatSize[$newFormat];
2368
- ++$exifTool->{CHANGED};
2368
+ ++$$et{CHANGED};
2369
2369
  if (defined $allMandatory) {
2370
2370
  # not all mandatory if we are writing any tag specifically
2371
2371
  if ($nvHash) {
@@ -2376,9 +2376,9 @@ Entry: for (;;) {
2376
2376
  }
2377
2377
  }
2378
2378
  if ($verbose > 1) {
2379
- $exifTool->VerboseValue("- $dirName:$$newInfo{Name}", $val) unless $isNew;
2379
+ $et->VerboseValue("- $dirName:$$newInfo{Name}", $val) unless $isNew;
2380
2380
  my $str = $nvHash ? '' : ' (mandatory)';
2381
- $exifTool->VerboseValue("+ $dirName:$$newInfo{Name}", $newVal, $str);
2381
+ $et->VerboseValue("+ $dirName:$$newInfo{Name}", $newVal, $str);
2382
2382
  }
2383
2383
  }
2384
2384
  } else {
@@ -2402,8 +2402,8 @@ NoOverwrite: next if $isNew > 0;
2402
2402
  # or a SubIFD
2403
2403
  next if $$newInfo{MakerNotes} or $$newInfo{Name} eq 'SubIFD';
2404
2404
  my $subTable;
2405
- if ($newInfo->{SubDirectory}{TagTable}) {
2406
- $subTable = Image::ExifTool::GetTagTable($newInfo->{SubDirectory}{TagTable});
2405
+ if ($$newInfo{SubDirectory}{TagTable}) {
2406
+ $subTable = Image::ExifTool::GetTagTable($$newInfo{SubDirectory}{TagTable});
2407
2407
  } else {
2408
2408
  $subTable = $tagTablePtr;
2409
2409
  }
@@ -2412,8 +2412,8 @@ NoOverwrite: next if $isNew > 0;
2412
2412
  Parent => $dirName,
2413
2413
  Fixup => new Image::ExifTool::Fixup,
2414
2414
  );
2415
- $sourceDir{DirName} = $newInfo->{Groups}{1} if $$newInfo{SubIFD};
2416
- $newValue = $exifTool->WriteDirectory(\%sourceDir, $subTable);
2415
+ $sourceDir{DirName} = $$newInfo{Groups}{1} if $$newInfo{SubIFD};
2416
+ $newValue = $et->WriteDirectory(\%sourceDir, $subTable);
2417
2417
  # only add new directory if it isn't empty
2418
2418
  next unless defined $newValue and length($newValue);
2419
2419
  # set the fixup start location
@@ -2476,14 +2476,14 @@ NoOverwrite: next if $isNew > 0;
2476
2476
  # prefer tag from Composite table if it exists (otherwise
2477
2477
  # PreviewImage data would be taken from Extra tag)
2478
2478
  my $compInfo = $Image::ExifTool::Composite{$dataTag};
2479
- $offsetData{$dataTag} = $exifTool->GetNewValues($compInfo || $dataTag);
2479
+ $offsetData{$dataTag} = $et->GetNewValues($compInfo || $dataTag);
2480
2480
  my $err;
2481
2481
  if (defined $offsetData{$dataTag}) {
2482
2482
  my $len = length $offsetData{$dataTag};
2483
2483
  if ($dataTag eq 'PreviewImage') {
2484
2484
  # must set DEL_PREVIEW flag now if preview fit into IFD
2485
- $$exifTool{DEL_PREVIEW} = 1 if $len <= 4;
2486
- } elsif ($exifTool->{FILE_TYPE} eq 'JPEG' and $len > 60000) {
2485
+ $$et{DEL_PREVIEW} = 1 if $len <= 4;
2486
+ } elsif ($$et{FILE_TYPE} eq 'JPEG' and $len > 60000) {
2487
2487
  delete $offsetData{$dataTag};
2488
2488
  $err = "$dataTag not written (too large for JPEG segment)";
2489
2489
  }
@@ -2491,7 +2491,7 @@ NoOverwrite: next if $isNew > 0;
2491
2491
  $err = "$dataTag not found";
2492
2492
  }
2493
2493
  if ($err) {
2494
- $exifTool->Warn($err) if $$newInfo{IsOffset};
2494
+ $et->Warn($err) if $$newInfo{IsOffset};
2495
2495
  delete $set{$newID}; # remove from list of tags we are setting
2496
2496
  next;
2497
2497
  }
@@ -2502,11 +2502,11 @@ NoOverwrite: next if $isNew > 0;
2502
2502
  #
2503
2503
  if ($$newInfo{MakerNotes}) {
2504
2504
  # don't write new makernotes if we are deleting this group
2505
- if ($exifTool->{DEL_GROUP}{MakerNotes} and
2506
- ($exifTool->{DEL_GROUP}{MakerNotes} != 2 or $isNew <= 0))
2505
+ if ($$et{DEL_GROUP}{MakerNotes} and
2506
+ ($$et{DEL_GROUP}{MakerNotes} != 2 or $isNew <= 0))
2507
2507
  {
2508
2508
  if ($isNew <= 0) {
2509
- ++$exifTool->{CHANGED};
2509
+ ++$$et{CHANGED};
2510
2510
  $verbose and print $out " Deleting MakerNotes\n";
2511
2511
  }
2512
2512
  next;
@@ -2515,12 +2515,12 @@ NoOverwrite: next if $isNew > 0;
2515
2515
  if ($isNew >= 0 and $set{$newID}) {
2516
2516
  # we are writing a whole new maker note block
2517
2517
  # --> add fixup information if necessary
2518
- my $nvHash = $exifTool->GetNewValueHash($newInfo, $dirName);
2519
- if ($nvHash and $nvHash->{MAKER_NOTE_FIXUP}) {
2518
+ my $nvHash = $et->GetNewValueHash($newInfo, $dirName);
2519
+ if ($nvHash and $$nvHash{MAKER_NOTE_FIXUP}) {
2520
2520
  # must clone fixup because we will be shifting it
2521
- my $makerFixup = $nvHash->{MAKER_NOTE_FIXUP}->Clone();
2521
+ my $makerFixup = $$nvHash{MAKER_NOTE_FIXUP}->Clone();
2522
2522
  my $valLen = length($valBuff);
2523
- $makerFixup->{Start} += $valLen;
2523
+ $$makerFixup{Start} += $valLen;
2524
2524
  push @valFixups, $makerFixup;
2525
2525
  }
2526
2526
  } else {
@@ -2554,7 +2554,7 @@ NoOverwrite: next if $isNew > 0;
2554
2554
  $writeProc = $$oldInfo{SubDirectory}{WriteProc};
2555
2555
  $notIFD = $$oldInfo{NotIFD};
2556
2556
  } else {
2557
- $exifTool->Warn('Internal problem getting maker notes tag table');
2557
+ $et->Warn('Internal problem getting maker notes tag table');
2558
2558
  }
2559
2559
  $subTable or $subTable = $tagTablePtr;
2560
2560
  if ($writeProc and
@@ -2564,15 +2564,15 @@ NoOverwrite: next if $isNew > 0;
2564
2564
  $loc = 0;
2565
2565
  } elsif (not $notIFD) {
2566
2566
  # look for IFD-style maker notes
2567
- $loc = Image::ExifTool::MakerNotes::LocateIFD($exifTool,\%subdirInfo);
2567
+ $loc = Image::ExifTool::MakerNotes::LocateIFD($et,\%subdirInfo);
2568
2568
  }
2569
2569
  if (defined $loc) {
2570
2570
  # we need fixup data for this subdirectory
2571
2571
  $subdirInfo{Fixup} = new Image::ExifTool::Fixup;
2572
2572
  # rewrite maker notes
2573
- my $changed = $$exifTool{CHANGED};
2574
- $subdir = $exifTool->WriteDirectory(\%subdirInfo, $subTable, $writeProc);
2575
- if ($changed == $$exifTool{CHANGED} and $subdirInfo{Fixup}->IsEmpty()) {
2573
+ my $changed = $$et{CHANGED};
2574
+ $subdir = $et->WriteDirectory(\%subdirInfo, $subTable, $writeProc);
2575
+ if ($changed == $$et{CHANGED} and $subdirInfo{Fixup}->IsEmpty()) {
2576
2576
  # return original data if nothing changed and no fixups
2577
2577
  undef $subdir;
2578
2578
  }
@@ -2590,13 +2590,13 @@ NoOverwrite: next if $isNew > 0;
2590
2590
  $loc = 0;
2591
2591
  }
2592
2592
  # rewrite maker notes
2593
- $subdir = $exifTool->WriteDirectory(\%subdirInfo, $subTable);
2593
+ $subdir = $et->WriteDirectory(\%subdirInfo, $subTable);
2594
2594
  } elsif (not $notIFD) {
2595
2595
  my $msg = 'Maker notes could not be parsed';
2596
- if ($$exifTool{FILE_TYPE} eq 'JPEG') {
2597
- $exifTool->Warn($msg, 1);
2596
+ if ($$et{FILE_TYPE} eq 'JPEG') {
2597
+ $et->Warn($msg, 1);
2598
2598
  } else {
2599
- $exifTool->Error($msg, 1);
2599
+ $et->Error($msg, 1);
2600
2600
  }
2601
2601
  }
2602
2602
  if (defined $subdir) {
@@ -2606,27 +2606,27 @@ NoOverwrite: next if $isNew > 0;
2606
2606
  # maker notes for the old value
2607
2607
  $newValue = substr($oldValue, 0, $loc) . $subdir;
2608
2608
  my $makerFixup = $subdirInfo{Fixup};
2609
- my $previewInfo = $exifTool->{PREVIEW_INFO};
2609
+ my $previewInfo = $$et{PREVIEW_INFO};
2610
2610
  if ($subdirInfo{Relative}) {
2611
2611
  # apply a one-time fixup to $loc since offsets are relative
2612
- $makerFixup->{Start} += $loc;
2612
+ $$makerFixup{Start} += $loc;
2613
2613
  # shift all offsets to be relative to new base
2614
2614
  my $baseShift = $valueDataPos + $valuePtr + $base - $subdirInfo{Base};
2615
- $makerFixup->{Shift} += $baseShift;
2615
+ $$makerFixup{Shift} += $baseShift;
2616
2616
  $makerFixup->ApplyFixup(\$newValue);
2617
2617
  if ($previewInfo) {
2618
2618
  # remove all but PreviewImage fixup (since others shouldn't change)
2619
- foreach (keys %{$makerFixup->{Pointers}}) {
2620
- /_PreviewImage$/ or delete $makerFixup->{Pointers}{$_};
2619
+ foreach (keys %{$$makerFixup{Pointers}}) {
2620
+ /_PreviewImage$/ or delete $$makerFixup{Pointers}{$_};
2621
2621
  }
2622
2622
  # zero pointer so we can see how it gets shifted later
2623
2623
  $makerFixup->SetMarkerPointers(\$newValue, 'PreviewImage', 0);
2624
2624
  # set the pointer to the start of the EXIF information
2625
2625
  # add preview image fixup to list of value fixups
2626
- $makerFixup->{Start} += $valLen;
2626
+ $$makerFixup{Start} += $valLen;
2627
2627
  push @valFixups, $makerFixup;
2628
- $previewInfo->{BaseShift} = $baseShift;
2629
- $previewInfo->{Relative} = 1;
2628
+ $$previewInfo{BaseShift} = $baseShift;
2629
+ $$previewInfo{Relative} = 1;
2630
2630
  }
2631
2631
  # don't shift anything if relative flag set to zero (Pentax patch)
2632
2632
  } elsif (not defined $subdirInfo{Relative}) {
@@ -2640,22 +2640,22 @@ NoOverwrite: next if $isNew > 0;
2640
2640
  # allow negative base shift if offsets are bigger (PentaxOptioWP.jpg)
2641
2641
  (not $subdirInfo{MinOffset} or $subdirInfo{MinOffset} + $baseShift < 0))
2642
2642
  {
2643
- my $fixBase = $exifTool->Options('FixBase');
2643
+ my $fixBase = $et->Options('FixBase');
2644
2644
  if (not defined $fixBase) {
2645
- my $str = $exifTool->Options('IgnoreMinorErrors') ? 'ignored' : 'fix or ignore?';
2646
- $exifTool->Error("MakerNotes offsets may be incorrect ($str)", 1);
2645
+ my $str = $et->Options('IgnoreMinorErrors') ? 'ignored' : 'fix or ignore?';
2646
+ $et->Error("MakerNotes offsets may be incorrect ($str)", 1);
2647
2647
  } elsif ($fixBase eq '') {
2648
- $exifTool->Warn('Fixed incorrect MakerNotes offsets');
2648
+ $et->Warn('Fixed incorrect MakerNotes offsets');
2649
2649
  $baseShift = 0;
2650
2650
  }
2651
2651
  }
2652
- $makerFixup->{Start} += $valLen + $loc;
2653
- $makerFixup->{Shift} += $baseShift;
2652
+ $$makerFixup{Start} += $valLen + $loc;
2653
+ $$makerFixup{Shift} += $baseShift;
2654
2654
  # permanently fix makernote offset errors
2655
- $makerFixup->{Shift} += $subdirInfo{FixedBy} || 0;
2655
+ $$makerFixup{Shift} += $subdirInfo{FixedBy} || 0;
2656
2656
  push @valFixups, $makerFixup;
2657
- if ($previewInfo and not $previewInfo->{NoBaseShift}) {
2658
- $previewInfo->{BaseShift} = $baseShift;
2657
+ if ($previewInfo and not $$previewInfo{NoBaseShift}) {
2658
+ $$previewInfo{BaseShift} = $baseShift;
2659
2659
  }
2660
2660
  }
2661
2661
  $newValuePt = \$newValue; # write new value
@@ -2679,13 +2679,13 @@ NoOverwrite: next if $isNew > 0;
2679
2679
  $subTable = Image::ExifTool::GetTagTable($$subdir{TagTable});
2680
2680
  }
2681
2681
  # determine directory name for this IFD
2682
- my $subdirName = $newInfo->{Groups}{1} || $$newInfo{Name};
2682
+ my $subdirName = $$newInfo{Groups}{1} || $$newInfo{Name};
2683
2683
  # all makernotes directory names must be 'MakerNotes'
2684
- $subdirName = 'MakerNotes' if $subTable->{GROUPS}{0} eq 'MakerNotes';
2684
+ $subdirName = 'MakerNotes' if $$subTable{GROUPS}{0} eq 'MakerNotes';
2685
2685
  # must handle sub-IFD's specially since the values
2686
2686
  # are actually offsets to subdirectories
2687
2687
  unless ($readCount) { # can't have zero count
2688
- return undef if $exifTool->Error("$name entry $index has zero count", 2);
2688
+ return undef if $et->Error("$name entry $index has zero count", 2);
2689
2689
  next;
2690
2690
  }
2691
2691
  my $writeCount = 0;
@@ -2736,18 +2736,18 @@ NoOverwrite: next if $isNew > 0;
2736
2736
  $subdirInfo{DataLen} = 0;
2737
2737
  } else {
2738
2738
  my @err = ("Can't read $subdirName data", $inMakerNotes);
2739
- if ($$subTable{VARS} and $subTable->{VARS}{MINOR_ERRORS}) {
2740
- $exifTool->Warn($err[0] . '. Ignored.');
2741
- } elsif ($exifTool->Error(@err)) {
2739
+ if ($$subTable{VARS} and $$subTable{VARS}{MINOR_ERRORS}) {
2740
+ $et->Warn($err[0] . '. Ignored.');
2741
+ } elsif ($et->Error(@err)) {
2742
2742
  return undef;
2743
2743
  }
2744
2744
  next Entry; # don't write this directory
2745
2745
  }
2746
2746
  }
2747
- my $subdirData = $exifTool->WriteDirectory(\%subdirInfo, $subTable, $$subdir{WriteProc});
2747
+ my $subdirData = $et->WriteDirectory(\%subdirInfo, $subTable, $$subdir{WriteProc});
2748
2748
  unless (defined $subdirData) {
2749
2749
  # WriteDirectory should have issued an error, but check just in case
2750
- $exifTool->Error("Error writing $subdirName") unless $$exifTool{VALUE}{Error};
2750
+ $et->Error("Error writing $subdirName") unless $$et{VALUE}{Error};
2751
2751
  return undef;
2752
2752
  }
2753
2753
  unless (length $subdirData) {
@@ -2844,13 +2844,13 @@ NoOverwrite: next if $isNew > 0;
2844
2844
  my $subTable = Image::ExifTool::GetTagTable($$subdir{TagTable});
2845
2845
  my $oldOrder = GetByteOrder();
2846
2846
  SetByteOrder($$subdir{ByteOrder}) if $$subdir{ByteOrder};
2847
- $newValue = $exifTool->WriteDirectory(\%subdirInfo, $subTable, $$subdir{WriteProc});
2847
+ $newValue = $et->WriteDirectory(\%subdirInfo, $subTable, $$subdir{WriteProc});
2848
2848
  SetByteOrder($oldOrder);
2849
2849
  if (defined $newValue) {
2850
2850
  my $hdrLen = $subdirStart - $valuePtr;
2851
2851
  if ($hdrLen) {
2852
2852
  $newValue = substr($$valueDataPt, $valuePtr, $hdrLen) . $newValue;
2853
- $subFixup->{Start} += $hdrLen;
2853
+ $$subFixup{Start} += $hdrLen;
2854
2854
  }
2855
2855
  $newValuePt = \$newValue;
2856
2856
  } else {
@@ -2860,8 +2860,8 @@ NoOverwrite: next if $isNew > 0;
2860
2860
  # don't delete a previously empty makernote directory
2861
2861
  next if $oldSize or not $inMakerNotes;
2862
2862
  }
2863
- if ($subFixup->{Pointers} and $subdirInfo{Base} == $base) {
2864
- $subFixup->{Start} += length $valBuff;
2863
+ if ($$subFixup{Pointers} and $subdirInfo{Base} == $base) {
2864
+ $$subFixup{Start} += length $valBuff;
2865
2865
  push @valFixups, $subFixup;
2866
2866
  } else {
2867
2867
  # apply fixup in case we added a header ($hdrLen above)
@@ -2877,11 +2877,11 @@ NoOverwrite: next if $isNew > 0;
2877
2877
  if ($dataTag eq 'CanonVRD') {
2878
2878
  # must decide now if we will write CanonVRD information
2879
2879
  my $hasVRD;
2880
- if ($exifTool->{NEW_VALUE}{$Image::ExifTool::Extra{CanonVRD}}) {
2880
+ if ($$et{NEW_VALUE}{$Image::ExifTool::Extra{CanonVRD}}) {
2881
2881
  # adding or deleting as a block
2882
- $hasVRD = $exifTool->GetNewValues('CanonVRD') ? 1 : 0;
2883
- } elsif ($exifTool->{DEL_GROUP}{CanonVRD} or
2884
- $exifTool->{DEL_GROUP}{Trailer})
2882
+ $hasVRD = $et->GetNewValues('CanonVRD') ? 1 : 0;
2883
+ } elsif ($$et{DEL_GROUP}{CanonVRD} or
2884
+ $$et{DEL_GROUP}{Trailer})
2885
2885
  {
2886
2886
  $hasVRD = 0; # deleting as a group
2887
2887
  } else {
@@ -2901,29 +2901,29 @@ NoOverwrite: next if $isNew > 0;
2901
2901
  # invalidated anyway by our edits
2902
2902
  my $odd;
2903
2903
  my $oddInfo = $Image::ExifTool::Composite{OriginalDecisionData};
2904
- if ($oddInfo and $exifTool->{NEW_VALUE}{$oddInfo}) {
2905
- $odd = $exifTool->GetNewValues($dataTag);
2904
+ if ($oddInfo and $$et{NEW_VALUE}{$oddInfo}) {
2905
+ $odd = $et->GetNewValues($dataTag);
2906
2906
  if ($verbose > 1) {
2907
2907
  print $out " - $dirName:$dataTag\n" if $$newValuePt ne "\0\0\0\0";
2908
2908
  print $out " + $dirName:$dataTag\n" if $odd;
2909
2909
  }
2910
- ++$exifTool->{CHANGED};
2910
+ ++$$et{CHANGED};
2911
2911
  } elsif ($$newValuePt ne "\0\0\0\0") {
2912
2912
  if (length($$newValuePt) == 4) {
2913
2913
  require Image::ExifTool::Canon;
2914
2914
  my $offset = Get32u($newValuePt,0);
2915
2915
  # absolute offset in JPEG images only
2916
- $offset += $base unless $$exifTool{FILE_TYPE} eq 'JPEG';
2917
- $odd = Image::ExifTool::Canon::ReadODD($exifTool, $offset);
2916
+ $offset += $base unless $$et{FILE_TYPE} eq 'JPEG';
2917
+ $odd = Image::ExifTool::Canon::ReadODD($et, $offset);
2918
2918
  $odd = $$odd if ref $odd;
2919
2919
  } else {
2920
- $exifTool->Error("Invalid $$newInfo{Name}",1);
2920
+ $et->Error("Invalid $$newInfo{Name}",1);
2921
2921
  }
2922
2922
  }
2923
2923
  if ($odd) {
2924
2924
  my $newOffset = length($valBuff);
2925
2925
  # (ODD offset is absolute in JPEG, so add base offset!)
2926
- $newOffset += $base if $$exifTool{FILE_TYPE} eq 'JPEG';
2926
+ $newOffset += $base if $$et{FILE_TYPE} eq 'JPEG';
2927
2927
  $newValue = Set32u($newOffset);
2928
2928
  $dirFixup->AddFixup(length($dirBuff) + 8, $dataTag);
2929
2929
  $valBuff .= $odd; # add original decision data
@@ -2962,7 +2962,7 @@ NoOverwrite: next if $isNew > 0;
2962
2962
  my $ptr = $newStart + length($dirBuff) + 10;
2963
2963
  $newCount or $newCount = 1; # make sure count is set for offsetInfo
2964
2964
  # save value pointer and value count for each tag
2965
- $offsetInfo->{$newID} = [$newInfo, $ptr, $newCount, \@vals, $newFormat];
2965
+ $$offsetInfo{$newID} = [$newInfo, $ptr, $newCount, \@vals, $newFormat];
2966
2966
  }
2967
2967
 
2968
2968
  } elsif ($$newInfo{DataMember}) {
@@ -2982,14 +2982,14 @@ NoOverwrite: next if $isNew > 0;
2982
2982
  if ($conv) {
2983
2983
  # let the RawConv store the (possibly converted) data member
2984
2984
  if (ref $conv eq 'CODE') {
2985
- &$conv($val, $exifTool);
2985
+ &$conv($val, $et);
2986
2986
  } else {
2987
- my ($self, $tag, $taginfo) = ($exifTool, $$newInfo{Name}, $newInfo);
2987
+ my ($self, $tag, $taginfo) = ($et, $$newInfo{Name}, $newInfo);
2988
2988
  #### eval RawConv ($self, $val, $tag, $tagInfo)
2989
2989
  eval $conv;
2990
2990
  }
2991
2991
  } else {
2992
- $$exifTool{$$newInfo{DataMember}} = $val;
2992
+ $$et{$$newInfo{DataMember}} = $val;
2993
2993
  }
2994
2994
  }
2995
2995
  }
@@ -3017,22 +3017,22 @@ NoOverwrite: next if $isNew > 0;
3017
3017
  my ($dataTag, $putFirst);
3018
3018
  ($dataTag, $putFirst) = @$newInfo{'DataTag','PutFirst'} if $newInfo;
3019
3019
  if ($dataTag) {
3020
- if ($dataTag eq 'PreviewImage' and ($exifTool->{FILE_TYPE} eq 'JPEG' or
3021
- $$exifTool{GENERATE_PREVIEW_INFO}))
3020
+ if ($dataTag eq 'PreviewImage' and ($$et{FILE_TYPE} eq 'JPEG' or
3021
+ $$et{GENERATE_PREVIEW_INFO}))
3022
3022
  {
3023
3023
  # hold onto the PreviewImage until we can determine if it fits
3024
- $exifTool->{PREVIEW_INFO} or $exifTool->{PREVIEW_INFO} = {
3024
+ $$et{PREVIEW_INFO} or $$et{PREVIEW_INFO} = {
3025
3025
  Data => $$newValuePt,
3026
3026
  Fixup => new Image::ExifTool::Fixup,
3027
3027
  };
3028
- $exifTool->{PREVIEW_INFO}{ChangeBase} = 1 if $$newInfo{ChangeBase};
3028
+ $$et{PREVIEW_INFO}{ChangeBase} = 1 if $$newInfo{ChangeBase};
3029
3029
  if ($$newInfo{IsOffset} and $$newInfo{IsOffset} eq '2') {
3030
- $exifTool->{PREVIEW_INFO}{NoBaseShift} = 1;
3030
+ $$et{PREVIEW_INFO}{NoBaseShift} = 1;
3031
3031
  }
3032
3032
  # use original preview size if we will attempt to load it later
3033
3033
  $newCount = $oldCount if $$newValuePt eq 'LOAD_PREVIEW';
3034
3034
  $$newValuePt = '';
3035
- } elsif ($dataTag eq 'LeicaTrailer' and $$exifTool{LeicaTrailer}) {
3035
+ } elsif ($dataTag eq 'LeicaTrailer' and $$et{LeicaTrailer}) {
3036
3036
  $$newValuePt = '';
3037
3037
  }
3038
3038
  }
@@ -3077,11 +3077,11 @@ NoOverwrite: next if $isNew > 0;
3077
3077
  if ($ignoreCount) {
3078
3078
  my $y = $ignoreCount > 1 ? 'ies' : 'y';
3079
3079
  my $verb = $$dirInfo{FixBase} ? 'Ignored' : 'Removed';
3080
- $exifTool->Warn("$verb $ignoreCount invalid entr$y from $name", 1);
3080
+ $et->Warn("$verb $ignoreCount invalid entr$y from $name", 1);
3081
3081
  }
3082
3082
  if ($fixCount) {
3083
3083
  my $s = $fixCount > 1 ? 's' : '';
3084
- $exifTool->Warn("Fixed invalid count$s for $fixCount $name tag$s", 1);
3084
+ $et->Warn("Fixed invalid count$s for $fixCount $name tag$s", 1);
3085
3085
  }
3086
3086
  #..............................................................................
3087
3087
  # write directory counts and nextIFD pointer and add value data to end of IFD
@@ -3096,8 +3096,8 @@ NoOverwrite: next if $isNew > 0;
3096
3096
  my $isNextIFD = ($$dirInfo{Multi} and ($nextIfdOffset or
3097
3097
  # account for the case where we will create the next IFD
3098
3098
  # (IFD1 only, but not in TIFF-format images)
3099
- ($dirName eq 'IFD0' and $$exifTool{ADD_DIRS}{'IFD1'} and
3100
- $$exifTool{FILE_TYPE} ne 'TIFF')));
3099
+ ($dirName eq 'IFD0' and $$et{ADD_DIRS}{'IFD1'} and
3100
+ $$et{FILE_TYPE} ne 'TIFF')));
3101
3101
  # calculate number of entries in new directory
3102
3102
  my $newEntries = length($dirBuff) / 12;
3103
3103
  # delete entire directory if we deleted a tag and only mandatory tags remain or we
@@ -3109,7 +3109,7 @@ NoOverwrite: next if $isNew > 0;
3109
3109
  undef $dirFixup; # no fixups in this directory
3110
3110
  ++$deleteAll if defined $deleteAll;
3111
3111
  $verbose > 1 and print $out " - $allMandatory mandatory tag(s)\n";
3112
- $exifTool->{CHANGED} -= $addMandatory; # didn't change these after all
3112
+ $$et{CHANGED} -= $addMandatory; # didn't change these after all
3113
3113
  }
3114
3114
  if ($ifd and not $newEntries) {
3115
3115
  $verbose and print $out " Deleting IFD1\n";
@@ -3117,7 +3117,7 @@ NoOverwrite: next if $isNew > 0;
3117
3117
  }
3118
3118
  # apply one-time fixup for entry-based offsets
3119
3119
  if ($entryBasedFixup) {
3120
- $entryBasedFixup->{Shift} = length($dirBuff) + 4;
3120
+ $$entryBasedFixup{Shift} = length($dirBuff) + 4;
3121
3121
  $entryBasedFixup->ApplyFixup(\$dirBuff);
3122
3122
  undef $entryBasedFixup;
3123
3123
  }
@@ -3173,7 +3173,7 @@ NoOverwrite: next if $isNew > 0;
3173
3173
  $offset += $newStart + 2; # get offset in newData
3174
3174
  # check to be sure we got the right offset
3175
3175
  unless (Get32u(\$newData, $offset) == 0xfeedf00d) {
3176
- $exifTool->Error("Internal error while rewriting $name");
3176
+ $et->Error("Internal error while rewriting $name");
3177
3177
  return undef;
3178
3178
  }
3179
3179
  # set the offset to the subdirectory data
@@ -3184,14 +3184,14 @@ NoOverwrite: next if $isNew > 0;
3184
3184
  # add fixup for all offsets in directory according to value data position
3185
3185
  # (which is at the end of this directory)
3186
3186
  if ($dirFixup) {
3187
- $dirFixup->{Start} = $newStart + 2;
3188
- $dirFixup->{Shift} = $valPos - $dirFixup->{Start};
3187
+ $$dirFixup{Start} = $newStart + 2;
3188
+ $$dirFixup{Shift} = $valPos - $$dirFixup{Start};
3189
3189
  $fixup->AddFixup($dirFixup);
3190
3190
  }
3191
3191
  # add valueData fixups, adjusting for position of value data
3192
3192
  my $valFixup;
3193
3193
  foreach $valFixup (@valFixups) {
3194
- $valFixup->{Start} += $valPos;
3194
+ $$valFixup{Start} += $valPos;
3195
3195
  $fixup->AddFixup($valFixup);
3196
3196
  }
3197
3197
  # stop if no next IFD pointer
@@ -3212,32 +3212,32 @@ NoOverwrite: next if $isNew > 0;
3212
3212
  $dirName .= $ifdNum + 1;
3213
3213
  $name =~ s/\d+$//;
3214
3214
  $name .= $ifdNum + 1;
3215
- $$exifTool{DIR_NAME} = $$exifTool{PATH}[-1] = $dirName;
3215
+ $$et{DIR_NAME} = $$et{PATH}[-1] = $dirName;
3216
3216
  next unless $nextIfdOffset;
3217
3217
 
3218
3218
  # guard against writing the same directory twice
3219
3219
  my $addr = $nextIfdOffset + $base;
3220
- if ($exifTool->{PROCESSED}{$addr}) {
3221
- $exifTool->Error("$name pointer references previous $exifTool->{PROCESSED}{$addr} directory", 1);
3220
+ if ($$et{PROCESSED}{$addr}) {
3221
+ $et->Error("$name pointer references previous $$et{PROCESSED}{$addr} directory", 1);
3222
3222
  last;
3223
3223
  }
3224
- $exifTool->{PROCESSED}{$addr} = $name;
3224
+ $$et{PROCESSED}{$addr} = $name;
3225
3225
 
3226
3226
  if ($dirName eq 'SubIFD1' and not ValidateIFD($dirInfo, $dirStart)) {
3227
- if ($exifTool->{TIFF_TYPE} eq 'TIFF') {
3228
- $exifTool->Error('Ignored bad IFD linked from SubIFD', 1);
3227
+ if ($$et{TIFF_TYPE} eq 'TIFF') {
3228
+ $et->Error('Ignored bad IFD linked from SubIFD', 1);
3229
3229
  } elsif ($verbose) {
3230
- $exifTool->Warn('Ignored bad IFD linked from SubIFD');
3230
+ $et->Warn('Ignored bad IFD linked from SubIFD');
3231
3231
  }
3232
3232
  last; # don't write bad IFD
3233
3233
  }
3234
- if ($exifTool->{DEL_GROUP}{$dirName}) {
3234
+ if ($$et{DEL_GROUP}{$dirName}) {
3235
3235
  $verbose and print $out " Deleting $dirName\n";
3236
- $raf and $exifTool->Error("Deleting $dirName also deletes subsequent" .
3236
+ $raf and $et->Error("Deleting $dirName also deletes subsequent" .
3237
3237
  " IFD's and possibly image data", 1);
3238
- ++$exifTool->{CHANGED};
3239
- if ($exifTool->{DEL_GROUP}{$dirName} == 2 and
3240
- $exifTool->{ADD_DIRS}{$dirName})
3238
+ ++$$et{CHANGED};
3239
+ if ($$et{DEL_GROUP}{$dirName} == 2 and
3240
+ $$et{ADD_DIRS}{$dirName})
3241
3241
  {
3242
3242
  my $emptyIFD = "\0" x 2; # start with empty IFD
3243
3243
  $dataPt = \$emptyIFD;
@@ -3280,16 +3280,16 @@ NoOverwrite: next if $isNew > 0;
3280
3280
  if ($stripOffsets and $$stripOffsets[0]{PanasonicHack}) {
3281
3281
  require Image::ExifTool::PanasonicRaw;
3282
3282
  my $err = Image::ExifTool::PanasonicRaw::PatchRawDataOffset($offsetInfo, $raf, $ifd);
3283
- $err and $exifTool->Error($err);
3283
+ $err and $et->Error($err);
3284
3284
  }
3285
3285
  my $tagID;
3286
3286
  # loop through all tags in reverse order so we save thumbnail
3287
3287
  # data before main image data if both exist in the same IFD
3288
3288
  foreach $tagID (reverse sort keys %$offsetInfo) {
3289
- my $tagInfo = $offsetInfo->{$tagID}[0];
3289
+ my $tagInfo = $$offsetInfo{$tagID}[0];
3290
3290
  next unless $$tagInfo{IsOffset}; # handle byte counts with offsets
3291
- my $sizeInfo = $offsetInfo->{$$tagInfo{OffsetPair}};
3292
- $sizeInfo or $exifTool->Error("No size tag for $dirName:$$tagInfo{Name}"), next;
3291
+ my $sizeInfo = $$offsetInfo{$$tagInfo{OffsetPair}};
3292
+ $sizeInfo or $et->Error("No size tag for $dirName:$$tagInfo{Name}"), next;
3293
3293
  my $dataTag = $$tagInfo{DataTag};
3294
3294
  # write TIFF image data (strips or tiles) later if requested
3295
3295
  if ($raf and defined $$origDirInfo{ImageData} and
@@ -3301,9 +3301,9 @@ NoOverwrite: next if $isNew > 0;
3301
3301
  # but don't defer writing if replacing with new value
3302
3302
  (not defined $dataTag or not defined $offsetData{$dataTag}))
3303
3303
  {
3304
- push @writeLater, [ $offsetInfo->{$tagID}, $sizeInfo ];
3304
+ push @writeLater, [ $$offsetInfo{$tagID}, $sizeInfo ];
3305
3305
  } else {
3306
- push @offsetList, [ $offsetInfo->{$tagID}, $sizeInfo ];
3306
+ push @offsetList, [ $$offsetInfo{$tagID}, $sizeInfo ];
3307
3307
  }
3308
3308
  }
3309
3309
  } else {
@@ -3316,7 +3316,7 @@ NoOverwrite: next if $isNew > 0;
3316
3316
  my ($cntInfo, $byteCounts, $count2, $oldSize, $format) = @{$$offsetPair[1]};
3317
3317
  # must be the same number of offset and byte count values
3318
3318
  unless ($count == $count2) {
3319
- $exifTool->Error("Offsets/ByteCounts disagree on count for $$tagInfo{Name}");
3319
+ $et->Error("Offsets/ByteCounts disagree on count for $$tagInfo{Name}");
3320
3320
  return undef;
3321
3321
  }
3322
3322
  my $formatStr = $formatName[$format];
@@ -3325,7 +3325,7 @@ NoOverwrite: next if $isNew > 0;
3325
3325
  my $n = $count * $formatSize[$format];
3326
3326
  $n > 4 and $byteCounts = Get32u(\$newData, $byteCounts);
3327
3327
  if ($byteCounts < 0 or $byteCounts + $n > length($newData)) {
3328
- $exifTool->Error("Error reading $$tagInfo{Name} byte counts");
3328
+ $et->Error("Error reading $$tagInfo{Name} byte counts");
3329
3329
  return undef;
3330
3330
  }
3331
3331
  # get offset base and data pos (abnormal for some preview images)
@@ -3339,7 +3339,7 @@ NoOverwrite: next if $isNew > 0;
3339
3339
  }
3340
3340
  # use different base if necessary for some offsets (Minolta A200)
3341
3341
  if ($$tagInfo{WrongBase}) {
3342
- my $self = $exifTool;
3342
+ my $self = $et;
3343
3343
  #### eval WrongBase ($self)
3344
3344
  $wrongBase = eval $$tagInfo{WrongBase} || 0;
3345
3345
  $dbase += $wrongBase;
@@ -3358,7 +3358,7 @@ NoOverwrite: next if $isNew > 0;
3358
3358
  # calculate end offset of this block
3359
3359
  $oldEnd = $$oldOffset[$n] + $$oldSize[$n];
3360
3360
  # update TIFF_END as if we read this data from file
3361
- UpdateTiffEnd($exifTool, $oldEnd + $dbase);
3361
+ UpdateTiffEnd($et, $oldEnd + $dbase);
3362
3362
  }
3363
3363
  my $offsetPos = $offsets + $n * 4;
3364
3364
  my $byteCountPos = $byteCounts + $n * $formatSize[$format];
@@ -3373,7 +3373,7 @@ NoOverwrite: next if $isNew > 0;
3373
3373
  if (defined $offset) {
3374
3374
  $offset -= $dpos;
3375
3375
  } elsif ($size != 0xfeedfeed) {
3376
- $exifTool->Error('Internal error (no offset)');
3376
+ $et->Error('Internal error (no offset)');
3377
3377
  return undef;
3378
3378
  }
3379
3379
  my $newOffset = length($newData) - $wrongBase;
@@ -3381,20 +3381,20 @@ NoOverwrite: next if $isNew > 0;
3381
3381
  # look for 'feed' code to use our new data
3382
3382
  if ($size == 0xfeedfeed) {
3383
3383
  unless (defined $dataTag) {
3384
- $exifTool->Error("No DataTag defined for $$tagInfo{Name}");
3384
+ $et->Error("No DataTag defined for $$tagInfo{Name}");
3385
3385
  return undef;
3386
3386
  }
3387
3387
  unless (defined $offsetData{$dataTag}) {
3388
- $exifTool->Error("Internal error (no $dataTag)");
3388
+ $et->Error("Internal error (no $dataTag)");
3389
3389
  return undef;
3390
3390
  }
3391
3391
  if ($count > 1) {
3392
- $exifTool->Error("Can't modify $$tagInfo{Name} with count $count");
3392
+ $et->Error("Can't modify $$tagInfo{Name} with count $count");
3393
3393
  return undef;
3394
3394
  }
3395
3395
  $buff = $offsetData{$dataTag};
3396
3396
  if ($formatSize[$format] != 4) {
3397
- $exifTool->Error("$$cntInfo{Name} is not int32");
3397
+ $et->Error("$$cntInfo{Name} is not int32");
3398
3398
  return undef;
3399
3399
  }
3400
3400
  # set the data size
@@ -3425,7 +3425,7 @@ NoOverwrite: next if $isNew > 0;
3425
3425
  } elsif ($offset >= 0 and $offset+$size <= $dataLen) {
3426
3426
  # take data from old dir data buffer
3427
3427
  $buff = substr($$dataPt, $offset, $size);
3428
- } elsif ($$exifTool{TIFF_TYPE} eq 'MRW') {
3428
+ } elsif ($$et{TIFF_TYPE} eq 'MRW') {
3429
3429
  # TTW segment must be an even 4 bytes long, so pad now if necessary
3430
3430
  my $n = length $newData;
3431
3431
  $buff = ($n & 0x03) ? "\0" x (4 - ($n & 0x03)) : '';
@@ -3438,8 +3438,8 @@ NoOverwrite: next if $isNew > 0;
3438
3438
  {
3439
3439
  # (data was read OK)
3440
3440
  # patch incorrect ThumbnailOffset in Sony A100 1.00 ARW images
3441
- if ($$exifTool{TIFF_TYPE} eq 'ARW' and $$tagInfo{Name} eq 'ThumbnailOffset' and
3442
- $$exifTool{Model} eq 'DSLR-A100' and $buff !~ /^\xff\xd8\xff/)
3441
+ if ($$et{TIFF_TYPE} eq 'ARW' and $$tagInfo{Name} eq 'ThumbnailOffset' and
3442
+ $$et{Model} eq 'DSLR-A100' and $buff !~ /^\xff\xd8\xff/)
3443
3443
  {
3444
3444
  my $pos = $offset + $dbase + $dpos;
3445
3445
  my $try;
@@ -3447,15 +3447,15 @@ NoOverwrite: next if $isNew > 0;
3447
3447
  $raf->Read($try,$size) == $size and $try =~ /^\xff\xd8\xff/)
3448
3448
  {
3449
3449
  $buff = $try;
3450
- $exifTool->Warn('Adjusted incorrect A100 ThumbnailOffset', 1);
3450
+ $et->Warn('Adjusted incorrect A100 ThumbnailOffset', 1);
3451
3451
  } else {
3452
- $exifTool->Error('Invalid ThumbnailImage');
3452
+ $et->Error('Invalid ThumbnailImage');
3453
3453
  }
3454
3454
  }
3455
3455
  } elsif ($$tagInfo{Name} eq 'ThumbnailOffset' and $offset>=0 and $offset<$dataLen) {
3456
3456
  # Grrr. The Canon 350D writes the thumbnail with an incorrect byte count
3457
3457
  my $diff = $offset + $size - $dataLen;
3458
- $exifTool->Warn("ThumbnailImage runs outside EXIF data by $diff bytes (truncated)",1);
3458
+ $et->Warn("ThumbnailImage runs outside EXIF data by $diff bytes (truncated)",1);
3459
3459
  # set the size to the available data
3460
3460
  $size -= $diff;
3461
3461
  unless (WriteValue($size, $formatStr, 1, \$newData, $byteCountPos)) {
@@ -3463,45 +3463,45 @@ NoOverwrite: next if $isNew > 0;
3463
3463
  }
3464
3464
  # get the truncated image
3465
3465
  $buff = substr($$dataPt, $offset, $size);
3466
- } elsif ($$tagInfo{Name} eq 'PreviewImageStart' and $exifTool->{FILE_TYPE} eq 'JPEG') {
3466
+ } elsif ($$tagInfo{Name} eq 'PreviewImageStart' and $$et{FILE_TYPE} eq 'JPEG') {
3467
3467
  # try to load the preview image using the specified offset
3468
3468
  undef $buff;
3469
- my $r = $exifTool->{RAF};
3469
+ my $r = $$et{RAF};
3470
3470
  if ($r and not $raf) {
3471
3471
  my $tell = $r->Tell();
3472
3472
  # read and validate
3473
3473
  undef $buff unless $r->Seek($offset+$base+$dataPos,0) and
3474
3474
  $r->Read($buff,$size) == $size and
3475
3475
  $buff =~ /^.\xd8\xff[\xc4\xdb\xe0-\xef]/s;
3476
- $r->Seek($tell, 0) or $exifTool->Error('Seek error'), return undef;
3476
+ $r->Seek($tell, 0) or $et->Error('Seek error'), return undef;
3477
3477
  }
3478
3478
  # set flag if we must load PreviewImage
3479
3479
  $buff = 'LOAD_PREVIEW' unless defined $buff;
3480
3480
  } else {
3481
3481
  my $dataName = $dataTag || $$tagInfo{Name};
3482
- return undef if $exifTool->Error("Error reading $dataName data in $name", $inMakerNotes);
3482
+ return undef if $et->Error("Error reading $dataName data in $name", $inMakerNotes);
3483
3483
  $buff = '';
3484
3484
  }
3485
3485
  if ($$tagInfo{Name} eq 'PreviewImageStart') {
3486
- if ($$exifTool{FILE_TYPE} eq 'JPEG' and not $$tagInfo{MakerPreview}) {
3486
+ if ($$et{FILE_TYPE} eq 'JPEG' and not $$tagInfo{MakerPreview}) {
3487
3487
  # hold onto the PreviewImage until we can determine if it fits
3488
- $exifTool->{PREVIEW_INFO} or $exifTool->{PREVIEW_INFO} = {
3488
+ $$et{PREVIEW_INFO} or $$et{PREVIEW_INFO} = {
3489
3489
  Data => $buff,
3490
3490
  Fixup => new Image::ExifTool::Fixup,
3491
3491
  };
3492
3492
  if ($$tagInfo{IsOffset} and $$tagInfo{IsOffset} eq '2') {
3493
- $exifTool->{PREVIEW_INFO}{NoBaseShift} = 1;
3493
+ $$et{PREVIEW_INFO}{NoBaseShift} = 1;
3494
3494
  }
3495
3495
  if ($offset >= 0 and $offset+$size <= $dataLen) {
3496
3496
  # set flag indicating this preview wasn't in a trailer
3497
- $exifTool->{PREVIEW_INFO}{WasContained} = 1;
3497
+ $$et{PREVIEW_INFO}{WasContained} = 1;
3498
3498
  }
3499
3499
  $buff = '';
3500
- } elsif ($$exifTool{TIFF_TYPE} eq 'ARW' and $$exifTool{Model} eq 'DSLR-A100') {
3500
+ } elsif ($$et{TIFF_TYPE} eq 'ARW' and $$et{Model} eq 'DSLR-A100') {
3501
3501
  # the A100 double-references the same preview, so ignore the
3502
3502
  # second one (the offset and size will be patched later)
3503
- next if $$exifTool{A100PreviewLength};
3504
- $$exifTool{A100PreviewLength} = length $buff if defined $buff;
3503
+ next if $$et{A100PreviewLength};
3504
+ $$et{A100PreviewLength} = length $buff if defined $buff;
3505
3505
  }
3506
3506
  }
3507
3507
  # update offset accordingly and add to end of new data
@@ -3529,7 +3529,7 @@ NoOverwrite: next if $isNew > 0;
3529
3529
  }
3530
3530
  # verify that nothing else got written after determining TTW length
3531
3531
  if (defined $ttwLen and $ttwLen != length($newData)) {
3532
- $exifTool->Error('Internal error writing MRW TTW');
3532
+ $et->Error('Internal error writing MRW TTW');
3533
3533
  }
3534
3534
  }
3535
3535
  #
@@ -3541,7 +3541,7 @@ NoOverwrite: next if $isNew > 0;
3541
3541
  if (defined $entry) {
3542
3542
  my $format = Get16u(\$newData, $entry + 2);
3543
3543
  if ($format < 1 or $format > 13) {
3544
- $exifTool->Error('Internal error copying huge value');
3544
+ $et->Error('Internal error copying huge value');
3545
3545
  last;
3546
3546
  } else {
3547
3547
  # set count and offset in directory entry
@@ -3564,7 +3564,7 @@ NoOverwrite: next if $isNew > 0;
3564
3564
  # our offset expects the data at the end of the SubIFD block (BlockLen + Start),
3565
3565
  # but it will actually be at length($newData) + $blockSize. So adjust
3566
3566
  # accordingly (and subtract an extra Start because this shift is applied later)
3567
- $subFix->{Shift} += length($newData) - $$subFix{BlockLen} - 2 * $$subFix{Start} + $blockSize;
3567
+ $$subFix{Shift} += length($newData) - $$subFix{BlockLen} - 2 * $$subFix{Start} + $blockSize;
3568
3568
  $subFix->ApplyFixup(\$newData);
3569
3569
  }
3570
3570
  $blockSize += $size + $pad;
@@ -3583,45 +3583,45 @@ NoOverwrite: next if $isNew > 0;
3583
3583
  # this when editing JPEG images anyway))
3584
3584
  $fixup->SetMarkerPointers(\$newData, 'CanonVRD', length($newData) + $blockSize);
3585
3585
  if ($newDataPos) {
3586
- $fixup->{Shift} += $newDataPos;
3586
+ $$fixup{Shift} += $newDataPos;
3587
3587
  $fixup->ApplyFixup(\$newData);
3588
3588
  }
3589
3589
  # save fixup for adjusting Leica trailer offset if necessary
3590
- $$exifTool{LeicaTrailer}{Fixup}->AddFixup($fixup) if $$exifTool{LeicaTrailer};
3590
+ $$et{LeicaTrailer}{Fixup}->AddFixup($fixup) if $$et{LeicaTrailer};
3591
3591
  # save fixup for PreviewImage in JPEG file if necessary
3592
- my $previewInfo = $exifTool->{PREVIEW_INFO};
3592
+ my $previewInfo = $$et{PREVIEW_INFO};
3593
3593
  if ($previewInfo) {
3594
- my $pt = \$previewInfo->{Data}; # image data or 'LOAD_PREVIEW' flag
3594
+ my $pt = \$$previewInfo{Data}; # image data or 'LOAD_PREVIEW' flag
3595
3595
  # now that we know the size of the EXIF data, first test to see if our new image fits
3596
3596
  # inside the EXIF segment (remember about the TIFF and EXIF headers: 8+6 bytes)
3597
3597
  if (($$pt ne 'LOAD_PREVIEW' and length($$pt) + length($newData) + 14 <= 0xfffd and
3598
- not $previewInfo->{IsTrailer}) or
3599
- $previewInfo->{IsShort}) # must fit in this segment if using short pointers
3598
+ not $$previewInfo{IsTrailer}) or
3599
+ $$previewInfo{IsShort}) # must fit in this segment if using short pointers
3600
3600
  {
3601
3601
  # It fits! (or must exist in EXIF segment), so fixup the
3602
3602
  # PreviewImage pointers and stuff the preview image in here
3603
3603
  my $newPos = length($newData) + $newDataPos;
3604
- $newPos += ($previewInfo->{BaseShift} || 0);
3605
- if ($previewInfo->{Relative}) {
3604
+ $newPos += ($$previewInfo{BaseShift} || 0);
3605
+ if ($$previewInfo{Relative}) {
3606
3606
  # calculate our base by looking at how far the pointer got shifted
3607
3607
  $newPos -= ($fixup->GetMarkerPointers(\$newData, 'PreviewImage') || 0);
3608
3608
  }
3609
3609
  $fixup->SetMarkerPointers(\$newData, 'PreviewImage', $newPos);
3610
3610
  $newData .= $$pt;
3611
3611
  # set flag to delete old preview unless it was contained in the EXIF
3612
- $exifTool->{DEL_PREVIEW} = 1 unless $exifTool->{PREVIEW_INFO}{WasContained};
3613
- delete $exifTool->{PREVIEW_INFO}; # done with our preview data
3612
+ $$et{DEL_PREVIEW} = 1 unless $$et{PREVIEW_INFO}{WasContained};
3613
+ delete $$et{PREVIEW_INFO}; # done with our preview data
3614
3614
  } else {
3615
3615
  # Doesn't fit, or we still don't know, so save fixup information
3616
3616
  # and put the preview at the end of the file
3617
- $previewInfo->{Fixup} or $previewInfo->{Fixup} = new Image::ExifTool::Fixup;
3618
- $previewInfo->{Fixup}->AddFixup($fixup);
3617
+ $$previewInfo{Fixup} or $$previewInfo{Fixup} = new Image::ExifTool::Fixup;
3618
+ $$previewInfo{Fixup}->AddFixup($fixup);
3619
3619
  }
3620
3620
  } elsif (defined $newData and $deleteAll) {
3621
3621
  $newData = ''; # delete both IFD0 and IFD1 since only mandatory tags remain
3622
- } elsif ($$exifTool{A100PreviewLength}) {
3622
+ } elsif ($$et{A100PreviewLength}) {
3623
3623
  # save preview image start for patching A100 quirks later
3624
- $$exifTool{A100PreviewStart} = $fixup->GetMarkerPointers(\$newData, 'PreviewImage');
3624
+ $$et{A100PreviewStart} = $fixup->GetMarkerPointers(\$newData, 'PreviewImage');
3625
3625
  }
3626
3626
  # save location of last IFD for use in Canon RAW header
3627
3627
  if ($newDataPos == 16) {
@@ -3629,10 +3629,10 @@ NoOverwrite: next if $isNew > 0;
3629
3629
  $$origDirInfo{LastIFD} = pop @ifdPos;
3630
3630
  }
3631
3631
  # recrypt SR2 SubIFD data if necessary
3632
- my $key = $$exifTool{SR2SubIFDKey};
3632
+ my $key = $$et{SR2SubIFDKey};
3633
3633
  if ($key) {
3634
3634
  my $start = $fixup->GetMarkerPointers(\$newData, 'SR2SubIFDOffset');
3635
- my $len = $$exifTool{SR2SubIFDLength};
3635
+ my $len = $$et{SR2SubIFDLength};
3636
3636
  # (must subtract 8 for size of TIFF header)
3637
3637
  if ($start and $start - 8 + $len <= length $newData) {
3638
3638
  require Image::ExifTool::Sony;