exiftool_vendored 10.31.0 → 10.40.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 (1296) hide show
  1. checksums.yaml +4 -4
  2. data/bin/Image-ExifTool-10.40/Changes +7693 -0
  3. data/bin/Image-ExifTool-10.40/MANIFEST +998 -0
  4. data/bin/Image-ExifTool-10.40/META.json +51 -0
  5. data/bin/Image-ExifTool-10.40/META.yml +31 -0
  6. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/Makefile.PL +0 -0
  7. data/bin/Image-ExifTool-10.40/README +240 -0
  8. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/arg_files/exif2iptc.args +0 -0
  9. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/arg_files/exif2xmp.args +0 -0
  10. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/arg_files/gps2xmp.args +0 -0
  11. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/arg_files/iptc2exif.args +0 -0
  12. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/arg_files/iptc2xmp.args +0 -0
  13. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/arg_files/iptcCore.args +0 -0
  14. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/arg_files/pdf2xmp.args +0 -0
  15. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/arg_files/xmp2exif.args +0 -0
  16. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/arg_files/xmp2gps.args +0 -0
  17. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/arg_files/xmp2iptc.args +0 -0
  18. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/arg_files/xmp2pdf.args +0 -0
  19. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/config_files/bibble.config +0 -0
  20. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/config_files/convert_regions.config +0 -0
  21. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/config_files/example.config +0 -0
  22. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/config_files/fotoware.config +0 -0
  23. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/config_files/gps2utm.config +0 -0
  24. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/config_files/photoshop_paths.config +0 -0
  25. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/config_files/picasa_faces.config +0 -0
  26. data/bin/Image-ExifTool-10.40/config_files/time_zone.config +76 -0
  27. data/bin/Image-ExifTool-10.40/exiftool +6462 -0
  28. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/fmt_files/gpx.fmt +0 -0
  29. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/fmt_files/gpx_wpt.fmt +0 -0
  30. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/fmt_files/kml.fmt +0 -0
  31. data/bin/Image-ExifTool-10.40/html/ExifTool.html +2122 -0
  32. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/MIE1.1-20070121.pdf +0 -0
  33. data/bin/Image-ExifTool-10.40/html/Shift.html +179 -0
  34. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/AFCP.html +0 -0
  35. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/AIFF.html +0 -0
  36. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/APE.html +0 -0
  37. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/APP12.html +0 -0
  38. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/ASF.html +0 -0
  39. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Apple.html +0 -0
  40. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Audible.html +0 -0
  41. data/bin/Image-ExifTool-10.40/html/TagNames/BMP.html +233 -0
  42. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/BPG.html +0 -0
  43. data/bin/Image-ExifTool-10.40/html/TagNames/Canon.html +9741 -0
  44. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/CanonCustom.html +0 -0
  45. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/CanonRaw.html +0 -0
  46. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/CanonVRD.html +0 -0
  47. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Casio.html +0 -0
  48. data/bin/Image-ExifTool-10.40/html/TagNames/Composite.html +745 -0
  49. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/DICOM.html +0 -0
  50. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/DJI.html +0 -0
  51. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/DNG.html +0 -0
  52. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/DPX.html +0 -0
  53. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/DV.html +0 -0
  54. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/DarwinCore.html +0 -0
  55. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/DjVu.html +0 -0
  56. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/EXE.html +0 -0
  57. data/bin/Image-ExifTool-10.40/html/TagNames/EXIF.html +3484 -0
  58. data/bin/Image-ExifTool-10.40/html/TagNames/Extra.html +471 -0
  59. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/FLAC.html +0 -0
  60. data/bin/Image-ExifTool-10.40/html/TagNames/FLIF.html +84 -0
  61. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/FLIR.html +0 -0
  62. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Flash.html +0 -0
  63. data/bin/Image-ExifTool-10.40/html/TagNames/FlashPix.html +1475 -0
  64. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Font.html +0 -0
  65. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/FotoStation.html +0 -0
  66. data/bin/Image-ExifTool-10.40/html/TagNames/FujiFilm.html +867 -0
  67. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/GE.html +0 -0
  68. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/GIF.html +0 -0
  69. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/GIMP.html +0 -0
  70. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/GPS.html +0 -0
  71. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/GeoTiff.html +0 -0
  72. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/H264.html +0 -0
  73. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/HP.html +0 -0
  74. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/HTML.html +0 -0
  75. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/ICC_Profile.html +0 -0
  76. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/ID3.html +0 -0
  77. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/IPTC.html +0 -0
  78. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/ISO.html +0 -0
  79. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/ITC.html +0 -0
  80. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/JFIF.html +0 -0
  81. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/JPEG.html +0 -0
  82. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/JVC.html +0 -0
  83. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Jpeg2000.html +0 -0
  84. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Kodak.html +0 -0
  85. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/KyoceraRaw.html +0 -0
  86. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/LNK.html +0 -0
  87. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Leaf.html +0 -0
  88. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Lytro.html +0 -0
  89. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/M2TS.html +0 -0
  90. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/MIE.html +0 -0
  91. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/MIFF.html +0 -0
  92. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/MNG.html +0 -0
  93. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/MOI.html +0 -0
  94. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/MPC.html +0 -0
  95. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/MPEG.html +0 -0
  96. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/MPF.html +0 -0
  97. data/bin/Image-ExifTool-10.40/html/TagNames/MWG.html +584 -0
  98. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/MXF.html +0 -0
  99. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Matroska.html +0 -0
  100. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Microsoft.html +0 -0
  101. data/bin/Image-ExifTool-10.40/html/TagNames/Minolta.html +2634 -0
  102. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/MinoltaRaw.html +0 -0
  103. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Motorola.html +0 -0
  104. data/bin/Image-ExifTool-10.40/html/TagNames/Nikon.html +6016 -0
  105. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/NikonCapture.html +0 -0
  106. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/NikonCustom.html +0 -0
  107. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Nintendo.html +0 -0
  108. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/OOXML.html +0 -0
  109. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Ogg.html +0 -0
  110. data/bin/Image-ExifTool-10.40/html/TagNames/Olympus.html +3655 -0
  111. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/OpenEXR.html +0 -0
  112. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Opus.html +0 -0
  113. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/PDF.html +0 -0
  114. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/PGF.html +0 -0
  115. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/PICT.html +0 -0
  116. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/PLIST.html +0 -0
  117. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/PLUS.html +0 -0
  118. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/PNG.html +0 -0
  119. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/PSP.html +0 -0
  120. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Palm.html +0 -0
  121. data/bin/Image-ExifTool-10.40/html/TagNames/Panasonic.html +1701 -0
  122. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/PanasonicRaw.html +0 -0
  123. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Pentax.html +0 -0
  124. data/bin/Image-ExifTool-10.40/html/TagNames/PhaseOne.html +263 -0
  125. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/PhotoCD.html +0 -0
  126. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/PhotoMechanic.html +0 -0
  127. data/bin/Image-ExifTool-10.40/html/TagNames/Photoshop.html +739 -0
  128. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/PostScript.html +0 -0
  129. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/PrintIM.html +0 -0
  130. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Qualcomm.html +0 -0
  131. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/QuickTime.html +0 -0
  132. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/RIFF.html +0 -0
  133. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/RSRC.html +0 -0
  134. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/RTF.html +0 -0
  135. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Radiance.html +0 -0
  136. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Rawzor.html +0 -0
  137. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Real.html +0 -0
  138. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Reconyx.html +0 -0
  139. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Ricoh.html +0 -0
  140. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Samsung.html +0 -0
  141. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Sanyo.html +0 -0
  142. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Scalado.html +0 -0
  143. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Shortcuts.html +0 -0
  144. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Sigma.html +0 -0
  145. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/SigmaRaw.html +0 -0
  146. data/bin/Image-ExifTool-10.40/html/TagNames/Sony.html +10305 -0
  147. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/SonyIDC.html +0 -0
  148. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Stim.html +0 -0
  149. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Theora.html +0 -0
  150. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Torrent.html +0 -0
  151. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Unknown.html +0 -0
  152. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/VCard.html +0 -0
  153. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Vorbis.html +0 -0
  154. data/bin/Image-ExifTool-10.40/html/TagNames/XMP.html +10158 -0
  155. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/ZIP.html +0 -0
  156. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/iWork.html +0 -0
  157. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/index.html +0 -0
  158. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/style.css +0 -0
  159. data/bin/Image-ExifTool-10.40/html/ancient_history.html +8365 -0
  160. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/canon_raw.html +0 -0
  161. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/commentary.html +0 -0
  162. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/config.html +0 -0
  163. data/bin/Image-ExifTool-10.40/html/data_members.html +286 -0
  164. data/bin/Image-ExifTool-10.40/html/exiftool_pod.html +1873 -0
  165. data/bin/Image-ExifTool-10.40/html/faq.html +1591 -0
  166. data/bin/Image-ExifTool-10.40/html/filename.html +353 -0
  167. data/bin/Image-ExifTool-10.40/html/geotag.html +661 -0
  168. data/bin/Image-ExifTool-10.40/html/history.html +317 -0
  169. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/htmldump.html +0 -0
  170. data/bin/Image-ExifTool-10.40/html/idiosyncracies.html +272 -0
  171. data/bin/Image-ExifTool-10.40/html/index.html +1363 -0
  172. data/bin/Image-ExifTool-10.40/html/install.html +261 -0
  173. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/metafiles.html +0 -0
  174. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/overview.png +0 -0
  175. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/standards.html +0 -0
  176. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/struct.html +0 -0
  177. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/style.css +0 -0
  178. data/bin/Image-ExifTool-10.40/html/under.html +137 -0
  179. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/verbose.html +0 -0
  180. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/writing.html +0 -0
  181. data/bin/Image-ExifTool-10.40/lib/File/RandomAccess.pm +378 -0
  182. data/bin/Image-ExifTool-10.40/lib/File/RandomAccess.pod +231 -0
  183. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool.pm +7773 -0
  184. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool.pod +2569 -0
  185. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/AES.pm +501 -0
  186. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/AFCP.pm +286 -0
  187. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/AIFF.pm +289 -0
  188. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/APE.pm +282 -0
  189. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/APP12.pm +322 -0
  190. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/ASF.pm +885 -0
  191. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Apple.pm +153 -0
  192. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Audible.pm +317 -0
  193. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/BMP.pm +361 -0
  194. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/BPG.pm +251 -0
  195. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/BZZ.pm +472 -0
  196. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/BigTIFF.pm +282 -0
  197. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/BuildTagLookup.pm +2562 -0
  198. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Canon.pm +8929 -0
  199. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/CanonCustom.pm +2667 -0
  200. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/CanonRaw.pm +910 -0
  201. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/CanonVRD.pm +2273 -0
  202. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/CaptureOne.pm +235 -0
  203. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Casio.pm +2060 -0
  204. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Charset.pm +423 -0
  205. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/Arabic.pm +0 -0
  206. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/Baltic.pm +0 -0
  207. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/Cyrillic.pm +0 -0
  208. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/Greek.pm +0 -0
  209. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/Hebrew.pm +0 -0
  210. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/JIS.pm +0 -0
  211. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/Latin.pm +0 -0
  212. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/Latin2.pm +0 -0
  213. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/MacArabic.pm +0 -0
  214. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/MacChineseCN.pm +0 -0
  215. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/MacChineseTW.pm +0 -0
  216. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/MacCroatian.pm +0 -0
  217. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/MacCyrillic.pm +0 -0
  218. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/MacGreek.pm +0 -0
  219. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/MacHebrew.pm +0 -0
  220. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/MacIceland.pm +0 -0
  221. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/MacJapanese.pm +0 -0
  222. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/MacKorean.pm +0 -0
  223. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/MacLatin2.pm +0 -0
  224. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/MacRSymbol.pm +0 -0
  225. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/MacRoman.pm +0 -0
  226. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/MacRomanian.pm +0 -0
  227. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/MacThai.pm +0 -0
  228. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/MacTurkish.pm +0 -0
  229. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/PDFDoc.pm +0 -0
  230. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/ShiftJIS.pm +0 -0
  231. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/Symbol.pm +0 -0
  232. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/Thai.pm +0 -0
  233. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/Turkish.pm +0 -0
  234. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/Vietnam.pm +0 -0
  235. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/DICOM.pm +3874 -0
  236. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/DJI.pm +71 -0
  237. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/DNG.pm +835 -0
  238. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/DPX.pm +182 -0
  239. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/DV.pm +319 -0
  240. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/DarwinCore.pm +322 -0
  241. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/DjVu.pm +376 -0
  242. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/EXE.pm +1401 -0
  243. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Exif.pm +6097 -0
  244. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/FLAC.pm +297 -0
  245. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/FLIF.pm +353 -0
  246. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/FLIR.pm +1535 -0
  247. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Fixup.pm +366 -0
  248. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Flash.pm +755 -0
  249. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/FlashPix.pm +1960 -0
  250. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Font.pm +647 -0
  251. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/FotoStation.pm +261 -0
  252. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/FujiFilm.pm +1264 -0
  253. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/GE.pm +81 -0
  254. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/GIF.pm +542 -0
  255. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/GIMP.pm +258 -0
  256. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/GPS.pm +559 -0
  257. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/GeoTiff.pm +2263 -0
  258. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Geotag.pm +1287 -0
  259. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/H264.pm +1110 -0
  260. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/HP.pm +263 -0
  261. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/HTML.pm +576 -0
  262. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/HtmlDump.pm +898 -0
  263. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/ICC_Profile.pm +1013 -0
  264. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/ID3.pm +1570 -0
  265. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/IPTC.pm +1264 -0
  266. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/ISO.pm +206 -0
  267. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/ITC.pm +215 -0
  268. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Import.pm +329 -0
  269. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/InDesign.pm +277 -0
  270. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/JPEG.pm +605 -0
  271. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/JPEGDigest.pm +2616 -0
  272. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/JVC.pm +130 -0
  273. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Jpeg2000.pm +898 -0
  274. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Kodak.pm +2096 -0
  275. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/KyoceraRaw.pm +173 -0
  276. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/LNK.pm +723 -0
  277. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Lang/cs.pm +1588 -0
  278. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Lang/de.pm +8692 -0
  279. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Lang/en_ca.pm +940 -0
  280. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Lang/en_gb.pm +983 -0
  281. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Lang/es.pm +4019 -0
  282. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Lang/fi.pm +2854 -0
  283. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Lang/fr.pm +4758 -0
  284. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Lang/it.pm +7918 -0
  285. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Lang/ja.pm +5835 -0
  286. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Lang/ko.pm +2330 -0
  287. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Lang/nl.pm +3222 -0
  288. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Lang/pl.pm +1276 -0
  289. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Lang/ru.pm +768 -0
  290. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Lang/sv.pm +638 -0
  291. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Lang/tr.pm +544 -0
  292. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Lang/zh_cn.pm +1330 -0
  293. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Lang/zh_tw.pm +801 -0
  294. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Leaf.pm +517 -0
  295. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Lytro.pm +217 -0
  296. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/M2TS.pm +729 -0
  297. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/MIE.pm +2564 -0
  298. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/MIEUnits.pod +377 -0
  299. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/MIFF.pm +279 -0
  300. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/MNG.pm +684 -0
  301. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/MOI.pm +158 -0
  302. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/MPC.pm +156 -0
  303. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/MPEG.pm +736 -0
  304. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/MPF.pm +288 -0
  305. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/MWG.pm +757 -0
  306. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/MXF.pm +3031 -0
  307. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/MakerNotes.pm +1745 -0
  308. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Matroska.pm +932 -0
  309. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Microsoft.pm +904 -0
  310. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Minolta.pm +2996 -0
  311. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/MinoltaRaw.pm +535 -0
  312. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Motorola.pm +62 -0
  313. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Nikon.pm +8173 -0
  314. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/NikonCapture.pm +940 -0
  315. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/NikonCustom.pm +8682 -0
  316. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Nintendo.pm +128 -0
  317. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/OOXML.pm +409 -0
  318. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Ogg.pm +240 -0
  319. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Olympus.pm +3998 -0
  320. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/OpenEXR.pm +323 -0
  321. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Opus.pm +98 -0
  322. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/PDF.pm +2367 -0
  323. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/PGF.pm +143 -0
  324. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/PICT.pm +1260 -0
  325. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/PLIST.pm +448 -0
  326. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/PLUS.pm +2607 -0
  327. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/PNG.pm +1255 -0
  328. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/PPM.pm +169 -0
  329. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/PSP.pm +306 -0
  330. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Palm.pm +403 -0
  331. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Panasonic.pm +2378 -0
  332. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/PanasonicRaw.pm +643 -0
  333. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Pentax.pm +6135 -0
  334. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/PhaseOne.pm +725 -0
  335. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/PhotoCD.pm +507 -0
  336. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/PhotoMechanic.pm +256 -0
  337. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Photoshop.pm +952 -0
  338. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/PostScript.pm +699 -0
  339. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/PrintIM.pm +125 -0
  340. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Qualcomm.pm +1344 -0
  341. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/QuickTime.pm +6708 -0
  342. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/README +1010 -0
  343. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/RIFF.pm +1587 -0
  344. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/RSRC.pm +241 -0
  345. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/RTF.pm +383 -0
  346. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Radiance.pm +144 -0
  347. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Rawzor.pm +189 -0
  348. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Real.pm +739 -0
  349. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Reconyx.pm +190 -0
  350. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Ricoh.pm +1150 -0
  351. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Samsung.pm +1271 -0
  352. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Sanyo.pm +440 -0
  353. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Scalado.pm +141 -0
  354. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Shift.pl +627 -0
  355. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Shortcuts.pm +338 -0
  356. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Sigma.pm +764 -0
  357. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/SigmaRaw.pm +670 -0
  358. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Sony.pm +9800 -0
  359. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/SonyIDC.pm +333 -0
  360. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Stim.pm +196 -0
  361. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/TagInfoXML.pm +827 -0
  362. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/TagLookup.pm +9515 -0
  363. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/TagNames.pod +30714 -0
  364. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Theora.pm +145 -0
  365. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Torrent.pm +317 -0
  366. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Unknown.pm +66 -0
  367. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/VCard.pm +405 -0
  368. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Vorbis.pm +255 -0
  369. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/WriteCanonRaw.pl +637 -0
  370. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/WriteExif.pl +2483 -0
  371. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/WriteIPTC.pl +706 -0
  372. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/WritePDF.pl +771 -0
  373. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/WritePNG.pl +390 -0
  374. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/WritePhotoshop.pl +266 -0
  375. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/WritePostScript.pl +772 -0
  376. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/WriteQuickTime.pl +358 -0
  377. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/WriteXMP.pl +1381 -0
  378. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Writer.pl +6322 -0
  379. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/XMP.pm +3897 -0
  380. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/XMP2.pl +1705 -0
  381. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/XMPStruct.pl +843 -0
  382. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/ZIP.pm +667 -0
  383. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/iWork.pm +223 -0
  384. data/bin/Image-ExifTool-10.40/perl-Image-ExifTool.spec +113 -0
  385. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/AFCP.t +0 -0
  386. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/AFCP_2.out +0 -0
  387. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/AFCP_3.out +0 -0
  388. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/AIFF.t +0 -0
  389. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/AIFF_2.out +0 -0
  390. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/APE.t +0 -0
  391. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/APE_2.out +0 -0
  392. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/APE_3.out +0 -0
  393. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ASF.t +0 -0
  394. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ASF_2.out +0 -0
  395. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Apple.t +0 -0
  396. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Apple_2.out +0 -0
  397. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Audible.t +0 -0
  398. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Audible_2.out +0 -0
  399. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/BMP.t +0 -0
  400. data/bin/Image-ExifTool-10.40/t/BMP_2.out +24 -0
  401. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/BPG.t +0 -0
  402. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/BPG_2.out +0 -0
  403. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/BigTIFF.t +0 -0
  404. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/BigTIFF_2.out +0 -0
  405. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Canon.t +0 -0
  406. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonRaw.t +0 -0
  407. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonRaw_2.out +0 -0
  408. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonRaw_4.out +0 -0
  409. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonRaw_5.out +0 -0
  410. data/bin/Image-ExifTool-10.40/t/CanonRaw_6.out +233 -0
  411. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonRaw_7.out +0 -0
  412. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD.t +0 -0
  413. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_11.out +0 -0
  414. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_12.out +0 -0
  415. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_13.out +0 -0
  416. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_14.out +0 -0
  417. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_15.out +0 -0
  418. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_16.out +0 -0
  419. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_17.out +0 -0
  420. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_18.out +0 -0
  421. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_19.out +0 -0
  422. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_2.out +0 -0
  423. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_20.out +0 -0
  424. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_21.out +0 -0
  425. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_3.out +0 -0
  426. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_4.out +0 -0
  427. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_5.out +0 -0
  428. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_6.out +0 -0
  429. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_7.out +0 -0
  430. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_8.out +0 -0
  431. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_9.out +0 -0
  432. data/bin/Image-ExifTool-10.40/t/Canon_2.out +358 -0
  433. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Canon_3.out +0 -0
  434. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Casio.t +0 -0
  435. data/bin/Image-ExifTool-10.40/t/Casio_2.out +72 -0
  436. data/bin/Image-ExifTool-10.40/t/Casio_3.out +102 -0
  437. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Casio_4.out +0 -0
  438. data/bin/Image-ExifTool-10.40/t/Casio_5.out +80 -0
  439. data/bin/Image-ExifTool-10.40/t/Casio_6.out +117 -0
  440. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/DICOM.t +0 -0
  441. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/DICOM_2.out +0 -0
  442. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/DNG.t +0 -0
  443. data/bin/Image-ExifTool-10.40/t/DNG_2.out +329 -0
  444. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/DNG_3.out +0 -0
  445. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/DPX.t +0 -0
  446. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/DPX_2.out +0 -0
  447. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/DV.t +0 -0
  448. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/DV_2.out +0 -0
  449. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/DjVu.t +0 -0
  450. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/DjVu_2.out +0 -0
  451. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/EXE.t +0 -0
  452. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/EXE_2.out +0 -0
  453. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/EXE_3.out +0 -0
  454. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/EXE_4.out +0 -0
  455. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/EXE_5.out +0 -0
  456. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/EXE_6.out +0 -0
  457. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/EXE_7.out +0 -0
  458. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool.t +0 -0
  459. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_16.out +0 -0
  460. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_17.out +0 -0
  461. data/bin/Image-ExifTool-10.40/t/ExifTool_2.out +427 -0
  462. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_20.out +0 -0
  463. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_21.out +0 -0
  464. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_22.out +0 -0
  465. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_23.out +0 -0
  466. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_24.out +0 -0
  467. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_25.out +0 -0
  468. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_26.out +0 -0
  469. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_27.out +0 -0
  470. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_28.out +0 -0
  471. data/bin/Image-ExifTool-10.40/t/ExifTool_29.out +426 -0
  472. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_3.out +0 -0
  473. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_30.out +0 -0
  474. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_4.out +0 -0
  475. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_5.out +0 -0
  476. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_6.out +0 -0
  477. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_7.out +0 -0
  478. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_8.out +0 -0
  479. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_9.out +0 -0
  480. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/FLAC.t +0 -0
  481. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/FLAC_2.out +0 -0
  482. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/FLAC_3.out +0 -0
  483. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/FLIF.t +0 -0
  484. data/bin/Image-ExifTool-10.40/t/FLIF_2.out +51 -0
  485. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/FLIF_3.out +0 -0
  486. data/bin/Image-ExifTool-10.40/t/FLIF_4.out +18 -0
  487. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/FLIF_5.out +0 -0
  488. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/FLIF_6.out +0 -0
  489. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/FLIR.t +0 -0
  490. data/bin/Image-ExifTool-10.40/t/FLIR_2.out +118 -0
  491. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/FLIR_3.out +0 -0
  492. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Flash.t +0 -0
  493. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/FlashPix.t +0 -0
  494. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/FlashPix_2.out +0 -0
  495. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Flash_2.out +0 -0
  496. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Flash_3.out +0 -0
  497. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Font.t +0 -0
  498. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Font_2.out +0 -0
  499. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Font_3.out +0 -0
  500. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Font_4.out +0 -0
  501. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Font_5.out +0 -0
  502. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Font_6.out +0 -0
  503. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Font_7.out +0 -0
  504. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/FotoStation.t +0 -0
  505. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/FotoStation_2.out +0 -0
  506. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/FotoStation_3.out +0 -0
  507. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/FujiFilm.t +0 -0
  508. data/bin/Image-ExifTool-10.40/t/FujiFilm_2.out +89 -0
  509. data/bin/Image-ExifTool-10.40/t/FujiFilm_3.out +90 -0
  510. data/bin/Image-ExifTool-10.40/t/FujiFilm_4.out +143 -0
  511. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/FujiFilm_5.out +0 -0
  512. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/GE.t +0 -0
  513. data/bin/Image-ExifTool-10.40/t/GE_2.out +86 -0
  514. data/bin/Image-ExifTool-10.40/t/GE_3.out +86 -0
  515. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/GIF.t +0 -0
  516. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/GIF_2.out +0 -0
  517. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/GIF_3.out +0 -0
  518. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/GIF_4.out +0 -0
  519. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/GIMP.t +0 -0
  520. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/GIMP_2.out +0 -0
  521. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/GPS.t +0 -0
  522. data/bin/Image-ExifTool-10.40/t/GPS_2.out +96 -0
  523. data/bin/Image-ExifTool-10.40/t/GPS_3.out +98 -0
  524. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/GeoTiff.t +0 -0
  525. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/GeoTiff_2.out +0 -0
  526. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/GeoTiff_3.out +0 -0
  527. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/GeoTiff_4.out +0 -0
  528. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Geotag.t +0 -0
  529. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Geotag_10.out +0 -0
  530. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Geotag_11.out +0 -0
  531. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Geotag_2.out +0 -0
  532. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Geotag_3.out +0 -0
  533. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Geotag_5.out +0 -0
  534. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Geotag_6.out +0 -0
  535. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Geotag_7.out +0 -0
  536. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Geotag_8.out +0 -0
  537. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Geotag_9.out +0 -0
  538. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/HTML.t +0 -0
  539. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/HTML_2.out +0 -0
  540. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/IPTC.t +0 -0
  541. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/IPTC_2.out +0 -0
  542. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/IPTC_4.out +0 -0
  543. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/IPTC_5.out +0 -0
  544. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/IPTC_6.out +0 -0
  545. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/IPTC_7.out +0 -0
  546. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/IPTC_8.out +0 -0
  547. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ISO.t +0 -0
  548. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ISO_2.out +0 -0
  549. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ITC.t +0 -0
  550. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ITC_2.out +0 -0
  551. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/InDesign.t +0 -0
  552. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/InDesign_2.out +0 -0
  553. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/InDesign_3.out +0 -0
  554. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/InDesign_4.out +0 -0
  555. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/JVC.t +0 -0
  556. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/JVC_2.out +0 -0
  557. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/JVC_3.out +0 -0
  558. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Jpeg2000.t +0 -0
  559. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Jpeg2000_2.out +0 -0
  560. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Jpeg2000_3.out +0 -0
  561. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Jpeg2000_4.out +0 -0
  562. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Kodak.t +0 -0
  563. data/bin/Image-ExifTool-10.40/t/Kodak_2.out +111 -0
  564. data/bin/Image-ExifTool-10.40/t/Kodak_3.out +121 -0
  565. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/KyoceraRaw.t +0 -0
  566. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/KyoceraRaw_2.out +0 -0
  567. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/LNK.t +0 -0
  568. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/LNK_2.out +0 -0
  569. data/bin/Image-ExifTool-10.40/t/Lang.t +42 -0
  570. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Lang_1.out +0 -0
  571. data/bin/Image-ExifTool-10.40/t/Lang_10.out +47 -0
  572. data/bin/Image-ExifTool-10.40/t/Lang_11.out +47 -0
  573. data/bin/Image-ExifTool-10.40/t/Lang_12.out +47 -0
  574. data/bin/Image-ExifTool-10.40/t/Lang_13.out +47 -0
  575. data/bin/Image-ExifTool-10.40/t/Lang_14.out +47 -0
  576. data/bin/Image-ExifTool-10.40/t/Lang_15.out +47 -0
  577. data/bin/Image-ExifTool-10.40/t/Lang_16.out +47 -0
  578. data/bin/Image-ExifTool-10.40/t/Lang_17.out +47 -0
  579. data/bin/Image-ExifTool-10.40/t/Lang_18.out +47 -0
  580. data/bin/Image-ExifTool-10.40/t/Lang_2.out +47 -0
  581. data/bin/Image-ExifTool-10.40/t/Lang_3.out +47 -0
  582. data/bin/Image-ExifTool-10.40/t/Lang_4.out +47 -0
  583. data/bin/Image-ExifTool-10.40/t/Lang_5.out +47 -0
  584. data/bin/Image-ExifTool-10.40/t/Lang_6.out +47 -0
  585. data/bin/Image-ExifTool-10.40/t/Lang_7.out +47 -0
  586. data/bin/Image-ExifTool-10.40/t/Lang_8.out +47 -0
  587. data/bin/Image-ExifTool-10.40/t/Lang_9.out +47 -0
  588. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Lytro.t +0 -0
  589. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Lytro_2.out +0 -0
  590. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/M2TS.t +0 -0
  591. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/M2TS_2.out +0 -0
  592. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/MIE.t +0 -0
  593. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/MIE_2.out +0 -0
  594. data/bin/Image-ExifTool-10.40/t/MIE_3.out +136 -0
  595. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/MIE_5.out +0 -0
  596. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/MIE_6.out +0 -0
  597. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/MIFF.t +0 -0
  598. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/MIFF_2.out +0 -0
  599. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/MOI.t +0 -0
  600. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/MOI_2.out +0 -0
  601. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/MP3.t +0 -0
  602. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/MP3_2.out +0 -0
  603. data/bin/Image-ExifTool-10.40/t/MWG.t +99 -0
  604. data/bin/Image-ExifTool-10.40/t/MWG_2.out +13 -0
  605. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/MWG_3.out +0 -0
  606. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/MWG_4.out +0 -0
  607. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/MWG_5.out +0 -0
  608. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/MWG_6.out +0 -0
  609. data/bin/Image-ExifTool-10.40/t/MWG_7.out +11 -0
  610. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/MXF.t +0 -0
  611. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/MXF_2.out +0 -0
  612. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Matroska.t +0 -0
  613. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Matroska_2.out +0 -0
  614. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Minolta.t +0 -0
  615. data/bin/Image-ExifTool-10.40/t/Minolta_2.out +135 -0
  616. data/bin/Image-ExifTool-10.40/t/Minolta_3.out +148 -0
  617. data/bin/Image-ExifTool-10.40/t/Minolta_4.out +150 -0
  618. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Motorola.t +0 -0
  619. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Motorola_2.out +0 -0
  620. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Nikon.t +0 -0
  621. data/bin/Image-ExifTool-10.40/t/Nikon_2.out +84 -0
  622. data/bin/Image-ExifTool-10.40/t/Nikon_3.out +100 -0
  623. data/bin/Image-ExifTool-10.40/t/Nikon_4.out +176 -0
  624. data/bin/Image-ExifTool-10.40/t/Nikon_5.out +169 -0
  625. data/bin/Image-ExifTool-10.40/t/Nikon_7.out +261 -0
  626. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Nikon_8.out +0 -0
  627. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Olympus.t +0 -0
  628. data/bin/Image-ExifTool-10.40/t/Olympus_2.out +81 -0
  629. data/bin/Image-ExifTool-10.40/t/Olympus_3.out +83 -0
  630. data/bin/Image-ExifTool-10.40/t/Olympus_4.out +194 -0
  631. data/bin/Image-ExifTool-10.40/t/Olympus_5.out +266 -0
  632. data/bin/Image-ExifTool-10.40/t/Olympus_6.out +153 -0
  633. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Olympus_7.out +0 -0
  634. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Olympus_8.out +0 -0
  635. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/OpenEXR.t +0 -0
  636. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/OpenEXR_2.out +0 -0
  637. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Opus.t +0 -0
  638. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Opus_2.out +0 -0
  639. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF.t +0 -0
  640. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF_10.out +0 -0
  641. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF_11.out +0 -0
  642. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF_12.out +0 -0
  643. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF_14.out +0 -0
  644. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF_15.out +0 -0
  645. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF_16.out +0 -0
  646. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF_17.out +0 -0
  647. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF_18.out +0 -0
  648. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF_19.out +0 -0
  649. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF_2.out +0 -0
  650. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF_20.out +0 -0
  651. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF_22.out +0 -0
  652. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF_4.out +0 -0
  653. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF_5.out +0 -0
  654. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF_6.out +0 -0
  655. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF_7.out +0 -0
  656. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF_8.out +0 -0
  657. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF_9.out +0 -0
  658. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PGF.t +0 -0
  659. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PGF_2.out +0 -0
  660. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PICT.t +0 -0
  661. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PICT_2.out +0 -0
  662. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PLIST.t +0 -0
  663. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PLIST_2.out +0 -0
  664. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PLIST_3.out +0 -0
  665. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PLUS.t +0 -0
  666. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PLUS_2.out +0 -0
  667. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PNG.t +0 -0
  668. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PNG_2.out +0 -0
  669. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PNG_3.out +0 -0
  670. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PNG_4.out +0 -0
  671. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PNG_5.out +0 -0
  672. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PPM.t +0 -0
  673. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PPM_2.out +0 -0
  674. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PPM_3.out +0 -0
  675. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PSP.t +0 -0
  676. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PSP_2.out +0 -0
  677. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Palm.t +0 -0
  678. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Palm_2.out +0 -0
  679. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Panasonic.t +0 -0
  680. data/bin/Image-ExifTool-10.40/t/Panasonic_2.out +101 -0
  681. data/bin/Image-ExifTool-10.40/t/Panasonic_3.out +121 -0
  682. data/bin/Image-ExifTool-10.40/t/Panasonic_4.out +206 -0
  683. data/bin/Image-ExifTool-10.40/t/Panasonic_5.out +244 -0
  684. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Pentax.t +0 -0
  685. data/bin/Image-ExifTool-10.40/t/Pentax_2.out +225 -0
  686. data/bin/Image-ExifTool-10.40/t/Pentax_3.out +266 -0
  687. data/bin/Image-ExifTool-10.40/t/Pentax_4.out +132 -0
  688. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PhaseOne.t +0 -0
  689. data/bin/Image-ExifTool-10.40/t/PhaseOne_2.out +99 -0
  690. data/bin/Image-ExifTool-10.40/t/PhaseOne_3.out +170 -0
  691. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PhotoCD.t +0 -0
  692. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PhotoCD_2.out +0 -0
  693. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PhotoMechanic.t +0 -0
  694. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PhotoMechanic_2.out +0 -0
  695. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PhotoMechanic_3.out +0 -0
  696. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Photoshop.t +0 -0
  697. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Photoshop_2.out +0 -0
  698. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Photoshop_3.out +0 -0
  699. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PostScript.t +0 -0
  700. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PostScript_2.out +0 -0
  701. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PostScript_3.out +0 -0
  702. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/QuickTime.t +0 -0
  703. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/QuickTime_2.out +0 -0
  704. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/QuickTime_3.out +0 -0
  705. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/QuickTime_4.out +0 -0
  706. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/QuickTime_5.out +0 -0
  707. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/RIFF.t +0 -0
  708. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/RIFF_2.out +0 -0
  709. data/bin/Image-ExifTool-10.40/t/RIFF_3.out +55 -0
  710. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/RIFF_4.out +0 -0
  711. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/RTF.t +0 -0
  712. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/RTF_2.out +0 -0
  713. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Radiance.t +0 -0
  714. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Radiance_2.out +0 -0
  715. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Real.t +0 -0
  716. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Real_2.out +0 -0
  717. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Real_3.out +0 -0
  718. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Real_4.out +0 -0
  719. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Ricoh.t +0 -0
  720. data/bin/Image-ExifTool-10.40/t/Ricoh_2.out +72 -0
  721. data/bin/Image-ExifTool-10.40/t/Ricoh_3.out +100 -0
  722. data/bin/Image-ExifTool-10.40/t/Ricoh_4.out +114 -0
  723. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Sanyo.t +0 -0
  724. data/bin/Image-ExifTool-10.40/t/Sanyo_2.out +103 -0
  725. data/bin/Image-ExifTool-10.40/t/Sanyo_3.out +113 -0
  726. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Sigma.t +0 -0
  727. data/bin/Image-ExifTool-10.40/t/Sigma_2.out +93 -0
  728. data/bin/Image-ExifTool-10.40/t/Sigma_3.out +96 -0
  729. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Sigma_4.out +0 -0
  730. data/bin/Image-ExifTool-10.40/t/Sigma_5.out +194 -0
  731. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Sony.t +0 -0
  732. data/bin/Image-ExifTool-10.40/t/Sony_2.out +86 -0
  733. data/bin/Image-ExifTool-10.40/t/Sony_3.out +87 -0
  734. data/bin/Image-ExifTool-10.40/t/Sony_5.out +34 -0
  735. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/TestLib.pm +0 -0
  736. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Torrent.t +0 -0
  737. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Torrent_2.out +0 -0
  738. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Unknown.t +0 -0
  739. data/bin/Image-ExifTool-10.40/t/Unknown_2.out +92 -0
  740. data/bin/Image-ExifTool-10.40/t/Unknown_3.out +92 -0
  741. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/VCard.t +0 -0
  742. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/VCard_2.out +0 -0
  743. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/VCard_3.out +0 -0
  744. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Vorbis.t +0 -0
  745. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Vorbis_2.out +0 -0
  746. data/bin/Image-ExifTool-10.40/t/Writer.t +1071 -0
  747. data/bin/Image-ExifTool-10.40/t/Writer_10.out +246 -0
  748. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_11.out +0 -0
  749. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_13.out +0 -0
  750. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_14.out +0 -0
  751. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_15.out +0 -0
  752. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_16.out +0 -0
  753. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_17.out +0 -0
  754. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_18.out +0 -0
  755. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_19.out +0 -0
  756. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_2.out +0 -0
  757. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_22.out +0 -0
  758. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_24.out +0 -0
  759. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_25.out +0 -0
  760. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_26.out +0 -0
  761. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_27.out +0 -0
  762. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_28.out +0 -0
  763. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_29.out +0 -0
  764. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_30.out +0 -0
  765. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_31.out +0 -0
  766. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_32.out +0 -0
  767. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_33.out +0 -0
  768. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_34.out +0 -0
  769. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_35.out +0 -0
  770. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_36.out +0 -0
  771. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_37.out +0 -0
  772. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_38.out +0 -0
  773. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_39.out +0 -0
  774. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_4.out +0 -0
  775. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_40.out +0 -0
  776. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_41.out +0 -0
  777. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_42.out +0 -0
  778. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_43.out +0 -0
  779. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_44.out +0 -0
  780. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_45.out +0 -0
  781. data/bin/Image-ExifTool-10.40/t/Writer_46.out +111 -0
  782. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_47.out +0 -0
  783. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_48.out +0 -0
  784. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_50.out +0 -0
  785. data/bin/Image-ExifTool-10.40/t/Writer_51.out +414 -0
  786. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_52.out +0 -0
  787. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_53.out +0 -0
  788. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_54.out +0 -0
  789. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_55.out +0 -0
  790. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_56.out +0 -0
  791. data/bin/Image-ExifTool-10.40/t/Writer_58.out +44 -0
  792. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_6.out +0 -0
  793. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_7.out +0 -0
  794. data/bin/Image-ExifTool-10.40/t/Writer_9.out +243 -0
  795. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP.t +0 -0
  796. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_10.out +0 -0
  797. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_11.out +0 -0
  798. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_12.out +0 -0
  799. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_13.out +0 -0
  800. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_14.out +0 -0
  801. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_15.out +0 -0
  802. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_16.out +0 -0
  803. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_17.out +0 -0
  804. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_18.out +0 -0
  805. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_19.out +0 -0
  806. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_2.out +0 -0
  807. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_20.out +0 -0
  808. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_21.out +0 -0
  809. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_22.out +0 -0
  810. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_23.out +0 -0
  811. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_24.out +0 -0
  812. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_25.out +0 -0
  813. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_26.out +0 -0
  814. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_27.out +0 -0
  815. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_28.out +0 -0
  816. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_29.out +0 -0
  817. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_3.out +0 -0
  818. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_30.out +0 -0
  819. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_31.out +0 -0
  820. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_32.out +0 -0
  821. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_34.out +0 -0
  822. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_36.out +0 -0
  823. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_37.out +0 -0
  824. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_39.out +0 -0
  825. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_40.out +0 -0
  826. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_41.out +0 -0
  827. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_42.out +0 -0
  828. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_43.out +0 -0
  829. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_44.out +0 -0
  830. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_45.out +0 -0
  831. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_5.out +0 -0
  832. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_6.out +0 -0
  833. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_7.out +0 -0
  834. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_8.out +0 -0
  835. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_9.out +0 -0
  836. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ZIP.t +0 -0
  837. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ZIP_2.out +0 -0
  838. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ZIP_3.out +0 -0
  839. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ZIP_4.out +0 -0
  840. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ZIP_5.out +0 -0
  841. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ZIP_6.out +0 -0
  842. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ZIP_7.out +0 -0
  843. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/AFCP.jpg +0 -0
  844. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/AIFF.aif +0 -0
  845. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/APE.ape +0 -0
  846. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/APE.mpc +0 -0
  847. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/ASF.wmv +0 -0
  848. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Apple.jpg +0 -0
  849. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Audible.aa +0 -0
  850. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/BMP.bmp +0 -0
  851. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/BPG.bpg +0 -0
  852. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/BigTIFF.btf +0 -0
  853. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Canon.jpg +0 -0
  854. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Canon1DmkIII.jpg +0 -0
  855. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/CanonRaw.cr2 +0 -0
  856. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/CanonRaw.crw +0 -0
  857. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/CanonVRD.dr4 +0 -0
  858. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/CanonVRD.vrd +0 -0
  859. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/CaptureOne.eip +0 -0
  860. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Casio.jpg +0 -0
  861. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Casio2.jpg +0 -0
  862. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/CasioQVCI.jpg +0 -0
  863. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/DICOM.dcm +0 -0
  864. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/DNG.dng +0 -0
  865. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/DPX.dpx +0 -0
  866. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/DV.dv +0 -0
  867. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/DjVu.djvu +0 -0
  868. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/EXE.a +0 -0
  869. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/EXE.dylib +0 -0
  870. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/EXE.elf +0 -0
  871. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/EXE.exe +0 -0
  872. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/EXE.macho +0 -0
  873. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/EXE.so +0 -0
  874. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/ExifTool.jpg +0 -0
  875. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/ExifTool.tif +0 -0
  876. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/ExtendedXMP.jpg +0 -0
  877. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/FLAC.flac +0 -0
  878. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/FLAC.ogg +0 -0
  879. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/FLIF.flif +0 -0
  880. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/FLIR.fpf +0 -0
  881. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/FLIR.jpg +0 -0
  882. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Flash.flv +0 -0
  883. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Flash.swf +0 -0
  884. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/FlashPix.ppt +0 -0
  885. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Font.afm +0 -0
  886. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Font.dfont +0 -0
  887. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Font.pfa +0 -0
  888. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Font.pfb +0 -0
  889. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Font.pfm +0 -0
  890. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Font.ttf +0 -0
  891. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/FotoStation.jpg +0 -0
  892. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/FujiFilm.jpg +0 -0
  893. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/FujiFilm.raf +0 -0
  894. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/GE.jpg +0 -0
  895. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/GIF.gif +0 -0
  896. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/GIMP.xcf +0 -0
  897. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/GPS.jpg +0 -0
  898. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/GeoTiff.tif +0 -0
  899. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Geotag.gpx +0 -0
  900. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Geotag.igc +0 -0
  901. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Geotag.kml +0 -0
  902. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Geotag.log +0 -0
  903. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Geotag.xml +0 -0
  904. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Geotag2.log +0 -0
  905. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Geotag3.log +0 -0
  906. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/HTML.html +0 -0
  907. data/bin/Image-ExifTool-10.40/t/images/ICC_Profile.icc +0 -0
  908. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/IPTC.jpg +0 -0
  909. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/ISO.iso +0 -0
  910. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/ITC.itc +0 -0
  911. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/InDesign.indd +0 -0
  912. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/JVC.jpg +0 -0
  913. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/JVC2.jpg +0 -0
  914. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Jpeg2000.j2c +0 -0
  915. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Jpeg2000.jp2 +0 -0
  916. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Kodak.jpg +0 -0
  917. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/KyoceraRaw.raw +0 -0
  918. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/LNK.lnk +0 -0
  919. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Lytro.lfp +0 -0
  920. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/M2TS.mts +0 -0
  921. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/MIE.mie +0 -0
  922. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/MIFF.miff +0 -0
  923. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/MOI.moi +0 -0
  924. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/MP3.mp3 +0 -0
  925. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/MWG.jpg +0 -0
  926. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/MXF.mxf +0 -0
  927. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Matroska.mkv +0 -0
  928. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Minolta.jpg +0 -0
  929. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Minolta.mrw +0 -0
  930. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Motorola.jpg +0 -0
  931. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Nikon.jpg +0 -0
  932. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Nikon.nef +0 -0
  933. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/NikonD2Hs.jpg +0 -0
  934. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/NikonD70.jpg +0 -0
  935. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/OOXML.docx +0 -0
  936. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Olympus.dss +0 -0
  937. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Olympus.jpg +0 -0
  938. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Olympus2.jpg +0 -0
  939. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/OlympusE1.jpg +0 -0
  940. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/OpenDoc.ods +0 -0
  941. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/OpenEXR.exr +0 -0
  942. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Opus.opus +0 -0
  943. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/PDF.pdf +0 -0
  944. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/PDF2.pdf +0 -0
  945. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/PGF.pgf +0 -0
  946. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/PICT.pict +0 -0
  947. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/PLIST-bin.plist +0 -0
  948. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/PLIST-xml.plist +0 -0
  949. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/PLUS.xmp +0 -0
  950. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/PNG.png +0 -0
  951. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/PPM.ppm +0 -0
  952. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/PSP.psp +0 -0
  953. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Palm.mobi +0 -0
  954. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Panasonic.jpg +0 -0
  955. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Panasonic.rw2 +0 -0
  956. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Pentax.avi +0 -0
  957. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Pentax.jpg +0 -0
  958. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/PhaseOne.iiq +0 -0
  959. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/PhotoCD.pcd +0 -0
  960. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/PhotoMechanic.jpg +0 -0
  961. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Photoshop.psd +0 -0
  962. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/PostScript.eps +0 -0
  963. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/QuickTime.m4a +0 -0
  964. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/QuickTime.mov +0 -0
  965. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/RIFF.avi +0 -0
  966. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/RIFF.wav +0 -0
  967. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/RIFF.webp +0 -0
  968. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/RTF.rtf +0 -0
  969. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Radiance.hdr +0 -0
  970. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Real.ra +0 -0
  971. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Real.ram +0 -0
  972. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Real.rm +0 -0
  973. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Ricoh.jpg +0 -0
  974. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Ricoh2.jpg +0 -0
  975. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Sanyo.jpg +0 -0
  976. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Sigma.jpg +0 -0
  977. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Sigma.x3f +0 -0
  978. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/SigmaDP2.x3f +0 -0
  979. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Sony.jpg +0 -0
  980. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Sony.pmp +0 -0
  981. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Torrent.torrent +0 -0
  982. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Unknown.jpg +0 -0
  983. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/VCard.ics +0 -0
  984. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/VCard.vcf +0 -0
  985. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Vorbis.ogg +0 -0
  986. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Writer.jpg +0 -0
  987. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/XMP.inx +0 -0
  988. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/XMP.jpg +0 -0
  989. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/XMP.svg +0 -0
  990. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/XMP.xml +0 -0
  991. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/XMP.xmp +0 -0
  992. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/XMP2.xmp +0 -0
  993. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/XMP3.xmp +0 -0
  994. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/XMP4.xmp +0 -0
  995. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/XMP5.xmp +0 -0
  996. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/XMP6.xmp +0 -0
  997. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/ZIP.gz +0 -0
  998. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/ZIP.zip +0 -0
  999. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/iWork.numbers +0 -0
  1000. data/lib/exiftool_vendored/version.rb +1 -1
  1001. metadata +1000 -997
  1002. data/bin/Image-ExifTool-10.31/Changes +0 -7604
  1003. data/bin/Image-ExifTool-10.31/MANIFEST +0 -995
  1004. data/bin/Image-ExifTool-10.31/META.json +0 -51
  1005. data/bin/Image-ExifTool-10.31/META.yml +0 -31
  1006. data/bin/Image-ExifTool-10.31/README +0 -239
  1007. data/bin/Image-ExifTool-10.31/config_files/time_zone.config +0 -56
  1008. data/bin/Image-ExifTool-10.31/exiftool +0 -6431
  1009. data/bin/Image-ExifTool-10.31/html/ExifTool.html +0 -2114
  1010. data/bin/Image-ExifTool-10.31/html/Shift.html +0 -209
  1011. data/bin/Image-ExifTool-10.31/html/TagNames/BMP.html +0 -110
  1012. data/bin/Image-ExifTool-10.31/html/TagNames/Canon.html +0 -9740
  1013. data/bin/Image-ExifTool-10.31/html/TagNames/Composite.html +0 -739
  1014. data/bin/Image-ExifTool-10.31/html/TagNames/EXIF.html +0 -3482
  1015. data/bin/Image-ExifTool-10.31/html/TagNames/Extra.html +0 -469
  1016. data/bin/Image-ExifTool-10.31/html/TagNames/FLIF.html +0 -79
  1017. data/bin/Image-ExifTool-10.31/html/TagNames/FlashPix.html +0 -1465
  1018. data/bin/Image-ExifTool-10.31/html/TagNames/FujiFilm.html +0 -849
  1019. data/bin/Image-ExifTool-10.31/html/TagNames/MWG.html +0 -584
  1020. data/bin/Image-ExifTool-10.31/html/TagNames/Minolta.html +0 -2633
  1021. data/bin/Image-ExifTool-10.31/html/TagNames/Nikon.html +0 -6002
  1022. data/bin/Image-ExifTool-10.31/html/TagNames/Olympus.html +0 -3655
  1023. data/bin/Image-ExifTool-10.31/html/TagNames/Panasonic.html +0 -1700
  1024. data/bin/Image-ExifTool-10.31/html/TagNames/PhaseOne.html +0 -253
  1025. data/bin/Image-ExifTool-10.31/html/TagNames/Photoshop.html +0 -739
  1026. data/bin/Image-ExifTool-10.31/html/TagNames/Sony.html +0 -10219
  1027. data/bin/Image-ExifTool-10.31/html/TagNames/XMP.html +0 -9332
  1028. data/bin/Image-ExifTool-10.31/html/ancient_history.html +0 -8209
  1029. data/bin/Image-ExifTool-10.31/html/data_members.html +0 -280
  1030. data/bin/Image-ExifTool-10.31/html/exiftool_pod.html +0 -2567
  1031. data/bin/Image-ExifTool-10.31/html/faq.html +0 -1589
  1032. data/bin/Image-ExifTool-10.31/html/filename.html +0 -352
  1033. data/bin/Image-ExifTool-10.31/html/geotag.html +0 -658
  1034. data/bin/Image-ExifTool-10.31/html/history.html +0 -375
  1035. data/bin/Image-ExifTool-10.31/html/idiosyncracies.html +0 -272
  1036. data/bin/Image-ExifTool-10.31/html/index.html +0 -1358
  1037. data/bin/Image-ExifTool-10.31/html/install.html +0 -259
  1038. data/bin/Image-ExifTool-10.31/html/under.html +0 -128
  1039. data/bin/Image-ExifTool-10.31/lib/File/RandomAccess.pm +0 -378
  1040. data/bin/Image-ExifTool-10.31/lib/File/RandomAccess.pod +0 -231
  1041. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool.pm +0 -7765
  1042. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool.pod +0 -2556
  1043. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/AES.pm +0 -501
  1044. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/AFCP.pm +0 -286
  1045. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/AIFF.pm +0 -289
  1046. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/APE.pm +0 -282
  1047. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/APP12.pm +0 -322
  1048. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/ASF.pm +0 -885
  1049. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Apple.pm +0 -153
  1050. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Audible.pm +0 -317
  1051. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/BMP.pm +0 -179
  1052. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/BPG.pm +0 -251
  1053. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/BZZ.pm +0 -472
  1054. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/BigTIFF.pm +0 -282
  1055. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/BuildTagLookup.pm +0 -2563
  1056. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Canon.pm +0 -8926
  1057. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/CanonCustom.pm +0 -2667
  1058. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/CanonRaw.pm +0 -910
  1059. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/CanonVRD.pm +0 -2273
  1060. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/CaptureOne.pm +0 -235
  1061. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Casio.pm +0 -2058
  1062. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Charset.pm +0 -423
  1063. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/DICOM.pm +0 -3874
  1064. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/DJI.pm +0 -71
  1065. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/DNG.pm +0 -835
  1066. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/DPX.pm +0 -182
  1067. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/DV.pm +0 -319
  1068. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/DarwinCore.pm +0 -322
  1069. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/DjVu.pm +0 -376
  1070. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/EXE.pm +0 -1401
  1071. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Exif.pm +0 -6038
  1072. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/FLAC.pm +0 -297
  1073. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/FLIF.pm +0 -345
  1074. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/FLIR.pm +0 -1533
  1075. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Fixup.pm +0 -366
  1076. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Flash.pm +0 -755
  1077. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/FlashPix.pm +0 -1935
  1078. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Font.pm +0 -647
  1079. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/FotoStation.pm +0 -261
  1080. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/FujiFilm.pm +0 -1257
  1081. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/GE.pm +0 -81
  1082. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/GIF.pm +0 -542
  1083. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/GIMP.pm +0 -258
  1084. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/GPS.pm +0 -558
  1085. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/GeoTiff.pm +0 -2263
  1086. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Geotag.pm +0 -1287
  1087. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/H264.pm +0 -1110
  1088. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/HP.pm +0 -263
  1089. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/HTML.pm +0 -576
  1090. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/HtmlDump.pm +0 -898
  1091. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/ICC_Profile.pm +0 -1013
  1092. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/ID3.pm +0 -1570
  1093. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/IPTC.pm +0 -1264
  1094. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/ISO.pm +0 -206
  1095. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/ITC.pm +0 -215
  1096. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Import.pm +0 -329
  1097. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/InDesign.pm +0 -277
  1098. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/JPEG.pm +0 -605
  1099. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/JPEGDigest.pm +0 -2616
  1100. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/JVC.pm +0 -130
  1101. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Jpeg2000.pm +0 -898
  1102. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Kodak.pm +0 -2096
  1103. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/KyoceraRaw.pm +0 -173
  1104. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/LNK.pm +0 -723
  1105. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Lang/cs.pm +0 -1588
  1106. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Lang/de.pm +0 -8692
  1107. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Lang/en_ca.pm +0 -934
  1108. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Lang/en_gb.pm +0 -977
  1109. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Lang/es.pm +0 -4019
  1110. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Lang/fi.pm +0 -2854
  1111. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Lang/fr.pm +0 -4758
  1112. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Lang/it.pm +0 -7918
  1113. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Lang/ja.pm +0 -5835
  1114. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Lang/ko.pm +0 -2330
  1115. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Lang/nl.pm +0 -3222
  1116. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Lang/pl.pm +0 -1276
  1117. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Lang/ru.pm +0 -768
  1118. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Lang/sv.pm +0 -638
  1119. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Lang/tr.pm +0 -544
  1120. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Lang/zh_cn.pm +0 -1330
  1121. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Lang/zh_tw.pm +0 -801
  1122. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Leaf.pm +0 -517
  1123. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Lytro.pm +0 -217
  1124. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/M2TS.pm +0 -729
  1125. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/MIE.pm +0 -2564
  1126. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/MIEUnits.pod +0 -377
  1127. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/MIFF.pm +0 -279
  1128. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/MNG.pm +0 -684
  1129. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/MOI.pm +0 -158
  1130. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/MPC.pm +0 -156
  1131. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/MPEG.pm +0 -736
  1132. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/MPF.pm +0 -292
  1133. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/MWG.pm +0 -751
  1134. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/MXF.pm +0 -3031
  1135. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/MakerNotes.pm +0 -1745
  1136. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Matroska.pm +0 -932
  1137. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Microsoft.pm +0 -904
  1138. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Minolta.pm +0 -2993
  1139. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/MinoltaRaw.pm +0 -535
  1140. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Motorola.pm +0 -62
  1141. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Nikon.pm +0 -8155
  1142. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/NikonCapture.pm +0 -940
  1143. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/NikonCustom.pm +0 -8682
  1144. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Nintendo.pm +0 -128
  1145. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/OOXML.pm +0 -409
  1146. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Ogg.pm +0 -240
  1147. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Olympus.pm +0 -3989
  1148. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/OpenEXR.pm +0 -323
  1149. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Opus.pm +0 -98
  1150. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/PDF.pm +0 -2367
  1151. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/PGF.pm +0 -143
  1152. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/PICT.pm +0 -1260
  1153. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/PLIST.pm +0 -448
  1154. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/PLUS.pm +0 -2607
  1155. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/PNG.pm +0 -1255
  1156. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/PPM.pm +0 -169
  1157. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/PSP.pm +0 -306
  1158. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Palm.pm +0 -403
  1159. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Panasonic.pm +0 -2374
  1160. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/PanasonicRaw.pm +0 -643
  1161. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Pentax.pm +0 -6133
  1162. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/PhaseOne.pm +0 -707
  1163. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/PhotoCD.pm +0 -507
  1164. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/PhotoMechanic.pm +0 -256
  1165. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Photoshop.pm +0 -939
  1166. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/PostScript.pm +0 -699
  1167. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/PrintIM.pm +0 -125
  1168. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Qualcomm.pm +0 -1344
  1169. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/QuickTime.pm +0 -6697
  1170. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/README +0 -1000
  1171. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/RIFF.pm +0 -1587
  1172. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/RSRC.pm +0 -241
  1173. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/RTF.pm +0 -383
  1174. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Radiance.pm +0 -144
  1175. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Rawzor.pm +0 -189
  1176. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Real.pm +0 -739
  1177. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Reconyx.pm +0 -190
  1178. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Ricoh.pm +0 -1148
  1179. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Samsung.pm +0 -1269
  1180. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Sanyo.pm +0 -440
  1181. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Scalado.pm +0 -141
  1182. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Shift.pl +0 -627
  1183. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Shortcuts.pm +0 -338
  1184. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Sigma.pm +0 -760
  1185. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/SigmaRaw.pm +0 -670
  1186. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Sony.pm +0 -9634
  1187. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/SonyIDC.pm +0 -332
  1188. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Stim.pm +0 -196
  1189. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/TagInfoXML.pm +0 -827
  1190. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/TagLookup.pm +0 -9367
  1191. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/TagNames.pod +0 -30437
  1192. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Theora.pm +0 -145
  1193. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Torrent.pm +0 -317
  1194. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Unknown.pm +0 -66
  1195. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/VCard.pm +0 -405
  1196. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Vorbis.pm +0 -255
  1197. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/WriteCanonRaw.pl +0 -637
  1198. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/WriteExif.pl +0 -2472
  1199. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/WriteIPTC.pl +0 -706
  1200. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/WritePDF.pl +0 -771
  1201. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/WritePNG.pl +0 -390
  1202. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/WritePhotoshop.pl +0 -266
  1203. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/WritePostScript.pl +0 -772
  1204. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/WriteQuickTime.pl +0 -358
  1205. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/WriteXMP.pl +0 -1381
  1206. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Writer.pl +0 -6260
  1207. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/XMP.pm +0 -4087
  1208. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/XMP2.pl +0 -1321
  1209. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/XMPStruct.pl +0 -843
  1210. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/ZIP.pm +0 -667
  1211. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/iWork.pm +0 -223
  1212. data/bin/Image-ExifTool-10.31/perl-Image-ExifTool.spec +0 -113
  1213. data/bin/Image-ExifTool-10.31/t/BMP_2.out +0 -23
  1214. data/bin/Image-ExifTool-10.31/t/CanonRaw_6.out +0 -233
  1215. data/bin/Image-ExifTool-10.31/t/Canon_2.out +0 -358
  1216. data/bin/Image-ExifTool-10.31/t/Casio_2.out +0 -72
  1217. data/bin/Image-ExifTool-10.31/t/Casio_3.out +0 -102
  1218. data/bin/Image-ExifTool-10.31/t/Casio_5.out +0 -80
  1219. data/bin/Image-ExifTool-10.31/t/Casio_6.out +0 -117
  1220. data/bin/Image-ExifTool-10.31/t/DNG_2.out +0 -329
  1221. data/bin/Image-ExifTool-10.31/t/ExifTool_2.out +0 -427
  1222. data/bin/Image-ExifTool-10.31/t/ExifTool_29.out +0 -426
  1223. data/bin/Image-ExifTool-10.31/t/FLIF_2.out +0 -50
  1224. data/bin/Image-ExifTool-10.31/t/FLIF_4.out +0 -17
  1225. data/bin/Image-ExifTool-10.31/t/FLIR_2.out +0 -118
  1226. data/bin/Image-ExifTool-10.31/t/FujiFilm_2.out +0 -89
  1227. data/bin/Image-ExifTool-10.31/t/FujiFilm_3.out +0 -90
  1228. data/bin/Image-ExifTool-10.31/t/FujiFilm_4.out +0 -143
  1229. data/bin/Image-ExifTool-10.31/t/GE_2.out +0 -86
  1230. data/bin/Image-ExifTool-10.31/t/GE_3.out +0 -86
  1231. data/bin/Image-ExifTool-10.31/t/GPS_2.out +0 -96
  1232. data/bin/Image-ExifTool-10.31/t/GPS_3.out +0 -98
  1233. data/bin/Image-ExifTool-10.31/t/Kodak_2.out +0 -111
  1234. data/bin/Image-ExifTool-10.31/t/Kodak_3.out +0 -121
  1235. data/bin/Image-ExifTool-10.31/t/Lang.t +0 -40
  1236. data/bin/Image-ExifTool-10.31/t/Lang_10.out +0 -46
  1237. data/bin/Image-ExifTool-10.31/t/Lang_11.out +0 -46
  1238. data/bin/Image-ExifTool-10.31/t/Lang_12.out +0 -46
  1239. data/bin/Image-ExifTool-10.31/t/Lang_13.out +0 -46
  1240. data/bin/Image-ExifTool-10.31/t/Lang_14.out +0 -46
  1241. data/bin/Image-ExifTool-10.31/t/Lang_15.out +0 -46
  1242. data/bin/Image-ExifTool-10.31/t/Lang_16.out +0 -46
  1243. data/bin/Image-ExifTool-10.31/t/Lang_17.out +0 -46
  1244. data/bin/Image-ExifTool-10.31/t/Lang_18.out +0 -46
  1245. data/bin/Image-ExifTool-10.31/t/Lang_2.out +0 -46
  1246. data/bin/Image-ExifTool-10.31/t/Lang_3.out +0 -46
  1247. data/bin/Image-ExifTool-10.31/t/Lang_4.out +0 -46
  1248. data/bin/Image-ExifTool-10.31/t/Lang_5.out +0 -46
  1249. data/bin/Image-ExifTool-10.31/t/Lang_6.out +0 -46
  1250. data/bin/Image-ExifTool-10.31/t/Lang_7.out +0 -46
  1251. data/bin/Image-ExifTool-10.31/t/Lang_8.out +0 -46
  1252. data/bin/Image-ExifTool-10.31/t/Lang_9.out +0 -46
  1253. data/bin/Image-ExifTool-10.31/t/MIE_3.out +0 -136
  1254. data/bin/Image-ExifTool-10.31/t/MWG.t +0 -90
  1255. data/bin/Image-ExifTool-10.31/t/MWG_2.out +0 -13
  1256. data/bin/Image-ExifTool-10.31/t/Minolta_2.out +0 -135
  1257. data/bin/Image-ExifTool-10.31/t/Minolta_3.out +0 -148
  1258. data/bin/Image-ExifTool-10.31/t/Minolta_4.out +0 -150
  1259. data/bin/Image-ExifTool-10.31/t/Nikon_2.out +0 -84
  1260. data/bin/Image-ExifTool-10.31/t/Nikon_3.out +0 -100
  1261. data/bin/Image-ExifTool-10.31/t/Nikon_4.out +0 -176
  1262. data/bin/Image-ExifTool-10.31/t/Nikon_5.out +0 -169
  1263. data/bin/Image-ExifTool-10.31/t/Nikon_7.out +0 -261
  1264. data/bin/Image-ExifTool-10.31/t/Olympus_2.out +0 -81
  1265. data/bin/Image-ExifTool-10.31/t/Olympus_3.out +0 -83
  1266. data/bin/Image-ExifTool-10.31/t/Olympus_4.out +0 -194
  1267. data/bin/Image-ExifTool-10.31/t/Olympus_5.out +0 -266
  1268. data/bin/Image-ExifTool-10.31/t/Olympus_6.out +0 -153
  1269. data/bin/Image-ExifTool-10.31/t/Panasonic_2.out +0 -101
  1270. data/bin/Image-ExifTool-10.31/t/Panasonic_3.out +0 -121
  1271. data/bin/Image-ExifTool-10.31/t/Panasonic_4.out +0 -206
  1272. data/bin/Image-ExifTool-10.31/t/Panasonic_5.out +0 -244
  1273. data/bin/Image-ExifTool-10.31/t/Pentax_2.out +0 -225
  1274. data/bin/Image-ExifTool-10.31/t/Pentax_3.out +0 -266
  1275. data/bin/Image-ExifTool-10.31/t/Pentax_4.out +0 -131
  1276. data/bin/Image-ExifTool-10.31/t/PhaseOne_2.out +0 -99
  1277. data/bin/Image-ExifTool-10.31/t/PhaseOne_3.out +0 -170
  1278. data/bin/Image-ExifTool-10.31/t/RIFF_3.out +0 -54
  1279. data/bin/Image-ExifTool-10.31/t/Ricoh_2.out +0 -72
  1280. data/bin/Image-ExifTool-10.31/t/Ricoh_3.out +0 -100
  1281. data/bin/Image-ExifTool-10.31/t/Ricoh_4.out +0 -114
  1282. data/bin/Image-ExifTool-10.31/t/Sanyo_2.out +0 -103
  1283. data/bin/Image-ExifTool-10.31/t/Sanyo_3.out +0 -113
  1284. data/bin/Image-ExifTool-10.31/t/Sigma_2.out +0 -93
  1285. data/bin/Image-ExifTool-10.31/t/Sigma_3.out +0 -96
  1286. data/bin/Image-ExifTool-10.31/t/Sigma_5.out +0 -194
  1287. data/bin/Image-ExifTool-10.31/t/Sony_2.out +0 -86
  1288. data/bin/Image-ExifTool-10.31/t/Sony_3.out +0 -87
  1289. data/bin/Image-ExifTool-10.31/t/Sony_5.out +0 -34
  1290. data/bin/Image-ExifTool-10.31/t/Unknown_2.out +0 -92
  1291. data/bin/Image-ExifTool-10.31/t/Unknown_3.out +0 -92
  1292. data/bin/Image-ExifTool-10.31/t/Writer.t +0 -999
  1293. data/bin/Image-ExifTool-10.31/t/Writer_10.out +0 -246
  1294. data/bin/Image-ExifTool-10.31/t/Writer_46.out +0 -107
  1295. data/bin/Image-ExifTool-10.31/t/Writer_51.out +0 -414
  1296. data/bin/Image-ExifTool-10.31/t/Writer_9.out +0 -243
@@ -1,2273 +0,0 @@
1
- #------------------------------------------------------------------------------
2
- # File: CanonVRD.pm
3
- #
4
- # Description: Read/write Canon VRD and DR4 information
5
- #
6
- # Revisions: 2006/10/30 - P. Harvey Created
7
- # 2007/10/23 - PH Added new VRD 3.0 tags
8
- # 2008/08/29 - PH Added new VRD 3.4 tags
9
- # 2008/12/02 - PH Added new VRD 3.5 tags
10
- # 2010/06/18 - PH Support variable-length CustomPictureStyle data
11
- # 2010/09/14 - PH Added r/w support for XMP in VRD
12
- # 2015/05/16 - PH Added DR4 support (DPP 4.1.50.0)
13
- #
14
- # References: 1) Bogdan private communication (Canon DPP v3.4.1.1)
15
- # 2) Gert Kello private communiation (DPP 3.8)
16
- #------------------------------------------------------------------------------
17
-
18
- package Image::ExifTool::CanonVRD;
19
-
20
- use strict;
21
- use vars qw($VERSION);
22
- use Image::ExifTool qw(:DataAccess :Utils);
23
- use Image::ExifTool::Canon;
24
-
25
- $VERSION = '1.28';
26
-
27
- sub ProcessCanonVRD($$;$);
28
- sub WriteCanonVRD($$;$);
29
- sub ProcessEditData($$$);
30
- sub ProcessIHL($$$);
31
- sub ProcessIHLExif($$$);
32
- sub ProcessDR4($$;$);
33
- sub SortDR4($$);
34
-
35
- # map for adding directories to VRD
36
- my %vrdMap = (
37
- XMP => 'CanonVRD',
38
- CanonVRD => 'VRD',
39
- );
40
-
41
- my %noYes = (
42
- PrintConvColumns => 2,
43
- PrintConv => { 0 => 'No', 1 => 'Yes' },
44
- );
45
-
46
- # DR4 format codes
47
- my %vrdFormat = (
48
- 1 => 'int32u',
49
- 2 => 'string',
50
- 8 => 'int32u',
51
- 9 => 'int32s',
52
- 13 => 'double',
53
- 33 => 'int32u', # (array)
54
- 38 => 'double', # (array)
55
- # 254 => 'undef', ?
56
- 255 => 'undef',
57
- );
58
-
59
- # empty VRD header/footer for creating VRD from scratch
60
- my $blankHeader = "CANON OPTIONAL DATA\0\0\x01\0\0\0\0\0\0";
61
- my $blankFooter = "CANON OPTIONAL DATA\0" . ("\0" x 42) . "\xff\xd9";
62
-
63
- # main tag table blocks in CanonVRD trailer (ref PH)
64
- %Image::ExifTool::CanonVRD::Main = (
65
- WRITE_PROC => \&WriteCanonVRD,
66
- PROCESS_PROC => \&ProcessCanonVRD,
67
- NOTES => q{
68
- Canon Digital Photo Professional writes VRD (Recipe Data) information as a
69
- trailer record to JPEG, TIFF, CRW and CR2 images, or as stand-alone VRD or
70
- DR4 files. The tags listed below represent information found in these
71
- records. The complete VRD/DR4 data record may be accessed as a block using
72
- the Extra 'CanonVRD' or 'CanonDR4' tag, but this tag is not extracted or
73
- copied unless specified explicitly.
74
- },
75
- 0xffff00f4 => {
76
- Name => 'EditData',
77
- SubDirectory => { TagTable => 'Image::ExifTool::CanonVRD::Edit' },
78
- },
79
- 0xffff00f5 => {
80
- Name => 'IHLData',
81
- SubDirectory => { TagTable => 'Image::ExifTool::CanonVRD::IHL' },
82
- },
83
- 0xffff00f6 => {
84
- Name => 'XMP',
85
- Flags => [ 'Binary', 'Protected' ],
86
- Writable => 'undef', # allow writing/deleting as a block
87
- SubDirectory => {
88
- DirName => 'XMP',
89
- TagTable => 'Image::ExifTool::XMP::Main',
90
- },
91
- },
92
- 0xffff00f7 => {
93
- Name => 'Edit4Data',
94
- SubDirectory => { TagTable => 'Image::ExifTool::CanonVRD::Edit4' },
95
- },
96
- );
97
-
98
- # the VRD edit information is divided into sections
99
- %Image::ExifTool::CanonVRD::Edit = (
100
- WRITE_PROC => \&ProcessEditData,
101
- PROCESS_PROC => \&ProcessEditData,
102
- VARS => { ID_LABEL => 'Index' }, # change TagID label in documentation
103
- NOTES => 'Canon VRD edit information.',
104
- 0 => {
105
- Name => 'VRD1',
106
- Size => 0x272, # size of version 1.0 edit information in bytes
107
- SubDirectory => { TagTable => 'Image::ExifTool::CanonVRD::Ver1' },
108
- },
109
- 1 => {
110
- Name => 'VRDStampTool',
111
- Size => 0, # size is variable, and obtained from int32u at directory start
112
- SubDirectory => { TagTable => 'Image::ExifTool::CanonVRD::StampTool' },
113
- },
114
- 2 => {
115
- Name => 'VRD2',
116
- Size => undef, # size is the remaining edit data
117
- SubDirectory => { TagTable => 'Image::ExifTool::CanonVRD::Ver2' },
118
- },
119
- );
120
-
121
- # Canon DPP version 4 edit information
122
- %Image::ExifTool::CanonVRD::Edit4 = (
123
- WRITE_PROC => \&ProcessEditData,
124
- PROCESS_PROC => \&ProcessEditData,
125
- VARS => { ID_LABEL => 'Index' }, # change TagID label in documentation
126
- NOTES => 'Canon DPP version 4 edit information.',
127
- 0 => {
128
- Name => 'DR4',
129
- Size => undef, # size is the remaining edit data
130
- SubDirectory => { TagTable => 'Image::ExifTool::CanonVRD::DR4' },
131
- },
132
- );
133
-
134
- # "IHL Created Optional Item Data" tags (not yet writable)
135
- %Image::ExifTool::CanonVRD::IHL = (
136
- PROCESS_PROC => \&ProcessIHL,
137
- TAG_PREFIX => 'VRD_IHL',
138
- GROUPS => { 2 => 'Image' },
139
- 1 => [
140
- # this contains edited TIFF-format data, with an original IFD at 0x0008
141
- # and an edited IFD with offset given in the TIFF header.
142
- {
143
- Name => 'IHL_EXIF',
144
- Condition => '$self->Options("ExtractEmbedded")',
145
- SubDirectory => {
146
- TagTable => 'Image::ExifTool::Exif::Main',
147
- ProcessProc => \&ProcessIHLExif,
148
- },
149
- },{
150
- Name => 'IHL_EXIF',
151
- Notes => q{
152
- extracted as a block if the Unknown option is used, or processed as the
153
- first sub-document with the ExtractEmbedded option
154
- },
155
- Binary => 1,
156
- Unknown => 1,
157
- },
158
- ],
159
- # 2 - written by DPP 3.0.2.6, and it looks something like edit data,
160
- # but I haven't decoded it yet - PH
161
- 3 => {
162
- # (same size as the PreviewImage with DPP 3.0.2.6)
163
- Name => 'ThumbnailImage',
164
- Groups => { 2 => 'Preview' },
165
- Binary => 1,
166
- },
167
- 4 => {
168
- Name => 'PreviewImage',
169
- Groups => { 2 => 'Preview' },
170
- Binary => 1,
171
- },
172
- 5 => {
173
- Name => 'RawCodecVersion',
174
- ValueConv => '$val =~ s/\0.*//s; $val', # truncate string at null
175
- },
176
- 6 => {
177
- Name => 'CRCDevelParams',
178
- Binary => 1,
179
- Unknown => 1,
180
- },
181
- );
182
-
183
- # VRD version 1 tags (ref PH)
184
- %Image::ExifTool::CanonVRD::Ver1 = (
185
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
186
- WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
187
- CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
188
- WRITABLE => 1,
189
- FIRST_ENTRY => 0,
190
- GROUPS => { 2 => 'Image' },
191
- DATAMEMBER => [ 0x002 ], # necessary for writing
192
- #
193
- # RAW image adjustment
194
- #
195
- 0x002 => {
196
- Name => 'VRDVersion',
197
- Format => 'int16u',
198
- Writable => 0,
199
- DataMember => 'VRDVersion',
200
- RawConv => '$$self{VRDVersion} = $val',
201
- PrintConv => '$val =~ s/^(\d)(\d*)(\d)$/$1.$2.$3/; $val',
202
- },
203
- 0x006 => {
204
- Name => 'WBAdjRGGBLevels',
205
- Format => 'int16u[4]',
206
- },
207
- 0x018 => {
208
- Name => 'WhiteBalanceAdj',
209
- Format => 'int16u',
210
- PrintConvColumns => 2,
211
- PrintConv => {
212
- 0 => 'Auto',
213
- 1 => 'Daylight',
214
- 2 => 'Cloudy',
215
- 3 => 'Tungsten',
216
- 4 => 'Fluorescent',
217
- 5 => 'Flash',
218
- 8 => 'Shade',
219
- 9 => 'Kelvin',
220
- 30 => 'Manual (Click)',
221
- 31 => 'Shot Settings',
222
- },
223
- },
224
- 0x01a => {
225
- Name => 'WBAdjColorTemp',
226
- Format => 'int16u',
227
- },
228
- # 0x01c similar to 0x006
229
- 0x024 => {
230
- Name => 'WBFineTuneActive',
231
- Format => 'int16u',
232
- %noYes,
233
- },
234
- 0x028 => {
235
- Name => 'WBFineTuneSaturation',
236
- Format => 'int16u',
237
- },
238
- 0x02c => {
239
- Name => 'WBFineTuneTone',
240
- Format => 'int16u',
241
- },
242
- 0x02e => {
243
- Name => 'RawColorAdj',
244
- Format => 'int16u',
245
- PrintConv => {
246
- 0 => 'Shot Settings',
247
- 1 => 'Faithful',
248
- 2 => 'Custom',
249
- },
250
- },
251
- 0x030 => {
252
- Name => 'RawCustomSaturation',
253
- Format => 'int32s',
254
- },
255
- 0x034 => {
256
- Name => 'RawCustomTone',
257
- Format => 'int32s',
258
- },
259
- 0x038 => {
260
- Name => 'RawBrightnessAdj',
261
- Format => 'int32s',
262
- ValueConv => '$val / 6000',
263
- ValueConvInv => 'int($val * 6000 + ($val < 0 ? -0.5 : 0.5))',
264
- PrintConv => 'sprintf("%.2f",$val)',
265
- PrintConvInv => '$val',
266
- },
267
- 0x03c => {
268
- Name => 'ToneCurveProperty',
269
- Format => 'int16u',
270
- PrintConvColumns => 2,
271
- PrintConv => {
272
- 0 => 'Shot Settings',
273
- 1 => 'Linear',
274
- 2 => 'Custom 1',
275
- 3 => 'Custom 2',
276
- 4 => 'Custom 3',
277
- 5 => 'Custom 4',
278
- 6 => 'Custom 5',
279
- },
280
- },
281
- # 0x040 usually "10 9 2"
282
- 0x07a => {
283
- Name => 'DynamicRangeMin',
284
- Format => 'int16u',
285
- },
286
- 0x07c => {
287
- Name => 'DynamicRangeMax',
288
- Format => 'int16u',
289
- },
290
- # 0x0c6 usually "10 9 2"
291
- #
292
- # RGB image adjustment
293
- #
294
- 0x110 => {
295
- Name => 'ToneCurveActive',
296
- Format => 'int16u',
297
- %noYes,
298
- },
299
- 0x113 => {
300
- Name => 'ToneCurveMode',
301
- PrintConv => { 0 => 'RGB', 1 => 'Luminance' },
302
- },
303
- 0x114 => {
304
- Name => 'BrightnessAdj',
305
- Format => 'int8s',
306
- },
307
- 0x115 => {
308
- Name => 'ContrastAdj',
309
- Format => 'int8s',
310
- },
311
- 0x116 => {
312
- Name => 'SaturationAdj',
313
- Format => 'int16s',
314
- },
315
- 0x11e => {
316
- Name => 'ColorToneAdj',
317
- Notes => 'in degrees, so -1 is the same as 359',
318
- Format => 'int32s',
319
- },
320
- 0x126 => {
321
- Name => 'LuminanceCurvePoints',
322
- Format => 'int16u[21]',
323
- PrintConv => 'Image::ExifTool::CanonVRD::ToneCurvePrint($val)',
324
- PrintConvInv => 'Image::ExifTool::CanonVRD::ToneCurvePrintInv($val)',
325
- },
326
- 0x150 => {
327
- Name => 'LuminanceCurveLimits',
328
- Notes => '4 numbers: input and output highlight and shadow points',
329
- Format => 'int16u[4]',
330
- },
331
- 0x159 => {
332
- Name => 'ToneCurveInterpolation',
333
- PrintConv => { 0 => 'Curve', 1 => 'Straight' },
334
- },
335
- 0x160 => {
336
- Name => 'RedCurvePoints',
337
- Format => 'int16u[21]',
338
- PrintConv => 'Image::ExifTool::CanonVRD::ToneCurvePrint($val)',
339
- PrintConvInv => 'Image::ExifTool::CanonVRD::ToneCurvePrintInv($val)',
340
- },
341
- # 0x193 same as 0x159
342
- 0x19a => {
343
- Name => 'GreenCurvePoints',
344
- Format => 'int16u[21]',
345
- PrintConv => 'Image::ExifTool::CanonVRD::ToneCurvePrint($val)',
346
- PrintConvInv => 'Image::ExifTool::CanonVRD::ToneCurvePrintInv($val)',
347
- },
348
- # 0x1cd same as 0x159
349
- 0x1d4 => {
350
- Name => 'BlueCurvePoints',
351
- Format => 'int16u[21]',
352
- PrintConv => 'Image::ExifTool::CanonVRD::ToneCurvePrint($val)',
353
- PrintConvInv => 'Image::ExifTool::CanonVRD::ToneCurvePrintInv($val)',
354
- },
355
- 0x18a => {
356
- Name => 'RedCurveLimits',
357
- Format => 'int16u[4]',
358
- },
359
- 0x1c4 => {
360
- Name => 'GreenCurveLimits',
361
- Format => 'int16u[4]',
362
- },
363
- 0x1fe => {
364
- Name => 'BlueCurveLimits',
365
- Format => 'int16u[4]',
366
- },
367
- # 0x207 same as 0x159
368
- 0x20e => {
369
- Name => 'RGBCurvePoints',
370
- Format => 'int16u[21]',
371
- PrintConv => 'Image::ExifTool::CanonVRD::ToneCurvePrint($val)',
372
- PrintConvInv => 'Image::ExifTool::CanonVRD::ToneCurvePrintInv($val)',
373
- },
374
- 0x238 => {
375
- Name => 'RGBCurveLimits',
376
- Format => 'int16u[4]',
377
- },
378
- # 0x241 same as 0x159
379
- 0x244 => {
380
- Name => 'CropActive',
381
- Format => 'int16u',
382
- %noYes,
383
- },
384
- 0x246 => {
385
- Name => 'CropLeft',
386
- Notes => 'crop coordinates in original unrotated image',
387
- Format => 'int16u',
388
- },
389
- 0x248 => {
390
- Name => 'CropTop',
391
- Format => 'int16u',
392
- },
393
- 0x24a => {
394
- Name => 'CropWidth',
395
- Format => 'int16u',
396
- },
397
- 0x24c => {
398
- Name => 'CropHeight',
399
- Format => 'int16u',
400
- },
401
- 0x25a => {
402
- Name => 'SharpnessAdj',
403
- Format => 'int16u',
404
- },
405
- 0x260 => {
406
- Name => 'CropAspectRatio',
407
- Format => 'int16u',
408
- PrintConv => {
409
- 0 => 'Free',
410
- 1 => '3:2',
411
- 2 => '2:3',
412
- 3 => '4:3',
413
- 4 => '3:4',
414
- 5 => 'A-size Landscape',
415
- 6 => 'A-size Portrait',
416
- 7 => 'Letter-size Landscape',
417
- 8 => 'Letter-size Portrait',
418
- 9 => '4:5',
419
- 10 => '5:4',
420
- 11 => '1:1',
421
- 12 => 'Circle',
422
- 65535 => 'Custom',
423
- },
424
- },
425
- 0x262 => {
426
- Name => 'ConstrainedCropWidth',
427
- Format => 'float',
428
- PrintConv => 'sprintf("%.7g",$val)',
429
- PrintConvInv => '$val',
430
- },
431
- 0x266 => {
432
- Name => 'ConstrainedCropHeight',
433
- Format => 'float',
434
- PrintConv => 'sprintf("%.7g",$val)',
435
- PrintConvInv => '$val',
436
- },
437
- 0x26a => {
438
- Name => 'CheckMark',
439
- Format => 'int16u',
440
- PrintConv => {
441
- 0 => 'Clear',
442
- 1 => 1,
443
- 2 => 2,
444
- 3 => 3,
445
- },
446
- },
447
- 0x26e => {
448
- Name => 'Rotation',
449
- Format => 'int16u',
450
- PrintConv => {
451
- 0 => 0,
452
- 1 => 90,
453
- 2 => 180,
454
- 3 => 270,
455
- },
456
- },
457
- 0x270 => {
458
- Name => 'WorkColorSpace',
459
- Format => 'int16u',
460
- PrintConv => {
461
- 0 => 'sRGB',
462
- 1 => 'Adobe RGB',
463
- 2 => 'Wide Gamut RGB',
464
- 3 => 'Apple RGB',
465
- 4 => 'ColorMatch RGB',
466
- },
467
- },
468
- # (VRD 1.0.0 edit data ends here -- 0x272 bytes)
469
- );
470
-
471
- # VRD Stamp Tool tags (ref PH)
472
- %Image::ExifTool::CanonVRD::StampTool = (
473
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
474
- GROUPS => { 2 => 'Image' },
475
- 0x00 => {
476
- Name => 'StampToolCount',
477
- Format => 'int32u',
478
- },
479
- );
480
-
481
- # VRD version 2 and 3 tags (ref PH)
482
- %Image::ExifTool::CanonVRD::Ver2 = (
483
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
484
- WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
485
- CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
486
- WRITABLE => 1,
487
- FIRST_ENTRY => 0,
488
- FORMAT => 'int16s',
489
- DATAMEMBER => [ 0x58, 0xdc, 0xdf, 0xe0 ], # (required for DataMember and var-format tags)
490
- IS_SUBDIR => [ 0xe0 ],
491
- GROUPS => { 2 => 'Image' },
492
- NOTES => 'Tags added in DPP version 2.0 and later.',
493
- 0x02 => {
494
- Name => 'PictureStyle',
495
- PrintConvColumns => 2,
496
- PrintConv => {
497
- 0 => 'Standard',
498
- 1 => 'Portrait',
499
- 2 => 'Landscape',
500
- 3 => 'Neutral',
501
- 4 => 'Faithful',
502
- 5 => 'Monochrome',
503
- 6 => 'Unknown?', # PH (maybe in-camera custom picture style?)
504
- 7 => 'Custom',
505
- },
506
- },
507
- 0x03 => { Name => 'IsCustomPictureStyle', %noYes },
508
- # 0x08: 3
509
- # 0x09: 4095
510
- # 0x0a: 0
511
- # 0x0b: 4095
512
- # 0x0c: 0
513
- 0x0d => 'StandardRawColorTone',
514
- 0x0e => 'StandardRawSaturation',
515
- 0x0f => 'StandardRawContrast',
516
- 0x10 => { Name => 'StandardRawLinear', %noYes },
517
- 0x11 => 'StandardRawSharpness',
518
- 0x12 => 'StandardRawHighlightPoint',
519
- 0x13 => 'StandardRawShadowPoint',
520
- 0x14 => 'StandardOutputHighlightPoint', #2
521
- 0x15 => 'StandardOutputShadowPoint', #2
522
- 0x16 => 'PortraitRawColorTone',
523
- 0x17 => 'PortraitRawSaturation',
524
- 0x18 => 'PortraitRawContrast',
525
- 0x19 => { Name => 'PortraitRawLinear', %noYes },
526
- 0x1a => 'PortraitRawSharpness',
527
- 0x1b => 'PortraitRawHighlightPoint',
528
- 0x1c => 'PortraitRawShadowPoint',
529
- 0x1d => 'PortraitOutputHighlightPoint',
530
- 0x1e => 'PortraitOutputShadowPoint',
531
- 0x1f => 'LandscapeRawColorTone',
532
- 0x20 => 'LandscapeRawSaturation',
533
- 0x21 => 'LandscapeRawContrast',
534
- 0x22 => { Name => 'LandscapeRawLinear', %noYes },
535
- 0x23 => 'LandscapeRawSharpness',
536
- 0x24 => 'LandscapeRawHighlightPoint',
537
- 0x25 => 'LandscapeRawShadowPoint',
538
- 0x26 => 'LandscapeOutputHighlightPoint',
539
- 0x27 => 'LandscapeOutputShadowPoint',
540
- 0x28 => 'NeutralRawColorTone',
541
- 0x29 => 'NeutralRawSaturation',
542
- 0x2a => 'NeutralRawContrast',
543
- 0x2b => { Name => 'NeutralRawLinear', %noYes },
544
- 0x2c => 'NeutralRawSharpness',
545
- 0x2d => 'NeutralRawHighlightPoint',
546
- 0x2e => 'NeutralRawShadowPoint',
547
- 0x2f => 'NeutralOutputHighlightPoint',
548
- 0x30 => 'NeutralOutputShadowPoint',
549
- 0x31 => 'FaithfulRawColorTone',
550
- 0x32 => 'FaithfulRawSaturation',
551
- 0x33 => 'FaithfulRawContrast',
552
- 0x34 => { Name => 'FaithfulRawLinear', %noYes },
553
- 0x35 => 'FaithfulRawSharpness',
554
- 0x36 => 'FaithfulRawHighlightPoint',
555
- 0x37 => 'FaithfulRawShadowPoint',
556
- 0x38 => 'FaithfulOutputHighlightPoint',
557
- 0x39 => 'FaithfulOutputShadowPoint',
558
- 0x3a => {
559
- Name => 'MonochromeFilterEffect',
560
- PrintConv => {
561
- -2 => 'None',
562
- -1 => 'Yellow',
563
- 0 => 'Orange',
564
- 1 => 'Red',
565
- 2 => 'Green',
566
- },
567
- },
568
- 0x3b => {
569
- Name => 'MonochromeToningEffect',
570
- PrintConv => {
571
- -2 => 'None',
572
- -1 => 'Sepia',
573
- 0 => 'Blue',
574
- 1 => 'Purple',
575
- 2 => 'Green',
576
- },
577
- },
578
- 0x3c => 'MonochromeContrast',
579
- 0x3d => { Name => 'MonochromeLinear', %noYes },
580
- 0x3e => 'MonochromeSharpness',
581
- 0x3f => 'MonochromeRawHighlightPoint',
582
- 0x40 => 'MonochromeRawShadowPoint',
583
- 0x41 => 'MonochromeOutputHighlightPoint',
584
- 0x42 => 'MonochromeOutputShadowPoint',
585
- 0x45 => { Name => 'UnknownContrast', Unknown => 1 },
586
- 0x46 => { Name => 'UnknownLinear', %noYes, Unknown => 1 },
587
- 0x47 => { Name => 'UnknownSharpness', Unknown => 1 },
588
- 0x48 => { Name => 'UnknownRawHighlightPoint', Unknown => 1 },
589
- 0x49 => { Name => 'UnknownRawShadowPoint', Unknown => 1 },
590
- 0x4a => { Name => 'UnknownOutputHighlightPoint',Unknown => 1 },
591
- 0x4b => { Name => 'UnknownOutputShadowPoint', Unknown => 1 },
592
- 0x4c => 'CustomColorTone',
593
- 0x4d => 'CustomSaturation',
594
- 0x4e => 'CustomContrast',
595
- 0x4f => { Name => 'CustomLinear', %noYes },
596
- 0x50 => 'CustomSharpness',
597
- 0x51 => 'CustomRawHighlightPoint',
598
- 0x52 => 'CustomRawShadowPoint',
599
- 0x53 => 'CustomOutputHighlightPoint',
600
- 0x54 => 'CustomOutputShadowPoint',
601
- 0x58 => {
602
- Name => 'CustomPictureStyleData',
603
- Format => 'var_int16u',
604
- Binary => 1,
605
- Notes => 'variable-length data structure',
606
- Writable => 0,
607
- RawConv => 'length($val) == 2 ? undef : $val', # ignore if no data
608
- },
609
- # (VRD 2.0.0 edit data ends here: 178 bytes, index 0x59)
610
- 0x5e => [{
611
- Name => 'ChrominanceNoiseReduction',
612
- Condition => '$$self{VRDVersion} < 330',
613
- Notes => 'VRDVersion prior to 3.3.0',
614
- PrintConv => {
615
- 0 => 'Off',
616
- 58 => 'Low',
617
- 100 => 'High',
618
- },
619
- },{ #1
620
- Name => 'ChrominanceNoiseReduction',
621
- Notes => 'VRDVersion 3.3.0 or later',
622
- PrintHex => 1,
623
- PrintConvColumns => 4,
624
- PrintConv => {
625
- 0x00 => 0,
626
- 0x10 => 1,
627
- 0x21 => 2,
628
- 0x32 => 3,
629
- 0x42 => 4,
630
- 0x53 => 5,
631
- 0x64 => 6,
632
- 0x74 => 7,
633
- 0x85 => 8,
634
- 0x96 => 9,
635
- 0xa6 => 10,
636
- 0xa7 => 11,
637
- 0xa8 => 12,
638
- 0xa9 => 13,
639
- 0xaa => 14,
640
- 0xab => 15,
641
- 0xac => 16,
642
- 0xad => 17,
643
- 0xae => 18,
644
- 0xaf => 19,
645
- 0xb0 => 20,
646
- },
647
- }],
648
- 0x5f => [{
649
- Name => 'LuminanceNoiseReduction',
650
- Condition => '$$self{VRDVersion} < 330',
651
- Notes => 'VRDVersion prior to 3.3.0',
652
- PrintConv => {
653
- 0 => 'Off',
654
- 65 => 'Low',
655
- 100 => 'High',
656
- },
657
- },{ #1
658
- Name => 'LuminanceNoiseReduction',
659
- Notes => 'VRDVersion 3.3.0 or later',
660
- PrintHex => 1,
661
- PrintConvColumns => 4,
662
- PrintConv => {
663
- 0x00 => 0,
664
- 0x41 => 1,
665
- 0x64 => 2,
666
- 0x6e => 3,
667
- 0x78 => 4,
668
- 0x82 => 5,
669
- 0x8c => 6,
670
- 0x96 => 7,
671
- 0xa0 => 8,
672
- 0xaa => 9,
673
- 0xb4 => 10,
674
- 0xb5 => 11,
675
- 0xb6 => 12,
676
- 0xb7 => 13,
677
- 0xb8 => 14,
678
- 0xb9 => 15,
679
- 0xba => 16,
680
- 0xbb => 17,
681
- 0xbc => 18,
682
- 0xbd => 19,
683
- 0xbe => 20,
684
- },
685
- }],
686
- 0x60 => [{
687
- Name => 'ChrominanceNR_TIFF_JPEG',
688
- Condition => '$$self{VRDVersion} < 330',
689
- Notes => 'VRDVersion prior to 3.3.0',
690
- PrintConv => {
691
- 0 => 'Off',
692
- 33 => 'Low',
693
- 100 => 'High',
694
- },
695
- },{ #1
696
- Name => 'ChrominanceNR_TIFF_JPEG',
697
- Notes => 'VRDVersion 3.3.0 or later',
698
- PrintHex => 1,
699
- PrintConvColumns => 4,
700
- PrintConv => {
701
- 0x00 => 0,
702
- 0x10 => 1,
703
- 0x21 => 2,
704
- 0x32 => 3,
705
- 0x42 => 4,
706
- 0x53 => 5,
707
- 0x64 => 6,
708
- 0x74 => 7,
709
- 0x85 => 8,
710
- 0x96 => 9,
711
- 0xa6 => 10,
712
- 0xa7 => 11,
713
- 0xa8 => 12,
714
- 0xa9 => 13,
715
- 0xaa => 14,
716
- 0xab => 15,
717
- 0xac => 16,
718
- 0xad => 17,
719
- 0xae => 18,
720
- 0xaf => 19,
721
- 0xb0 => 20,
722
- },
723
- }],
724
- # 0x61: 1
725
- # (VRD 3.0.0 edit data ends here: 196 bytes, index 0x62)
726
- 0x62 => { Name => 'ChromaticAberrationOn', %noYes },
727
- 0x63 => { Name => 'DistortionCorrectionOn', %noYes },
728
- 0x64 => { Name => 'PeripheralIlluminationOn', %noYes },
729
- 0x65 => { Name => 'ColorBlur', %noYes },
730
- 0x66 => {
731
- Name => 'ChromaticAberration',
732
- ValueConv => '$val / 0x400',
733
- ValueConvInv => 'int($val * 0x400 + 0.5)',
734
- PrintConv => 'sprintf("%.0f%%", $val * 100)',
735
- PrintConvInv => 'ToFloat($val) / 100',
736
- },
737
- 0x67 => {
738
- Name => 'DistortionCorrection',
739
- ValueConv => '$val / 0x400',
740
- ValueConvInv => 'int($val * 0x400 + 0.5)',
741
- PrintConv => 'sprintf("%.0f%%", $val * 100)',
742
- PrintConvInv => 'ToFloat($val) / 100',
743
- },
744
- 0x68 => {
745
- Name => 'PeripheralIllumination',
746
- ValueConv => '$val / 0x400',
747
- ValueConvInv => 'int($val * 0x400 + 0.5)',
748
- PrintConv => 'sprintf("%.0f%%", $val * 100)',
749
- PrintConvInv => 'ToFloat($val) / 100',
750
- },
751
- 0x69 => {
752
- Name => 'AberrationCorrectionDistance',
753
- Notes => '100% = infinity',
754
- RawConv => '$val == 0x7fff ? undef : $val',
755
- ValueConv => '1 - $val / 0x400',
756
- ValueConvInv => 'int((1 - $val) * 0x400 + 0.5)',
757
- PrintConv => 'sprintf("%.0f%%", $val * 100)',
758
- PrintConvInv => 'ToFloat($val) / 100',
759
- },
760
- 0x6a => 'ChromaticAberrationRed',
761
- 0x6b => 'ChromaticAberrationBlue',
762
- 0x6d => { #1
763
- Name => 'LuminanceNR_TIFF_JPEG',
764
- Notes => 'val = raw / 10',
765
- ValueConv => '$val / 10',
766
- ValueConvInv => 'int($val * 10 + 0.5)',
767
- },
768
- # (VRD 3.4.0 edit data ends here: 220 bytes, index 0x6e)
769
- 0x6e => { Name => 'AutoLightingOptimizerOn', %noYes },
770
- 0x6f => {
771
- Name => 'AutoLightingOptimizer',
772
- PrintConv => {
773
- 100 => 'Low',
774
- 200 => 'Standard',
775
- 300 => 'Strong',
776
- 0x7fff => 'n/a', #1
777
- },
778
- },
779
- # 0x71: 200
780
- # 0x73: 100
781
- # (VRD 3.5.0 edit data ends here: 232 bytes, index 0x74)
782
- 0x75 => {
783
- Name => 'StandardRawHighlight',
784
- ValueConv => '$val / 10',
785
- ValueConvInv => '$val * 10',
786
- },
787
- 0x76 => {
788
- Name => 'PortraitRawHighlight',
789
- ValueConv => '$val / 10',
790
- ValueConvInv => '$val * 10',
791
- },
792
- 0x77 => {
793
- Name => 'LandscapeRawHighlight',
794
- ValueConv => '$val / 10',
795
- ValueConvInv => '$val * 10',
796
- },
797
- 0x78 => {
798
- Name => 'NeutralRawHighlight',
799
- ValueConv => '$val / 10',
800
- ValueConvInv => '$val * 10',
801
- },
802
- 0x79 => {
803
- Name => 'FaithfulRawHighlight',
804
- ValueConv => '$val / 10',
805
- ValueConvInv => '$val * 10',
806
- },
807
- 0x7a => {
808
- Name => 'MonochromeRawHighlight',
809
- ValueConv => '$val / 10',
810
- ValueConvInv => '$val * 10',
811
- },
812
- 0x7b => {
813
- Name => 'UnknownRawHighlight',
814
- Unknown => 1,
815
- ValueConv => '$val / 10',
816
- ValueConvInv => '$val * 10',
817
- },
818
- 0x7c => {
819
- Name => 'CustomRawHighlight',
820
- ValueConv => '$val / 10',
821
- ValueConvInv => '$val * 10',
822
- },
823
- 0x7e => {
824
- Name => 'StandardRawShadow',
825
- ValueConv => '$val / 10',
826
- ValueConvInv => '$val * 10',
827
- },
828
- 0x7f => {
829
- Name => 'PortraitRawShadow',
830
- ValueConv => '$val / 10',
831
- ValueConvInv => '$val * 10',
832
- },
833
- 0x80 => {
834
- Name => 'LandscapeRawShadow',
835
- ValueConv => '$val / 10',
836
- ValueConvInv => '$val * 10',
837
- },
838
- 0x81 => {
839
- Name => 'NeutralRawShadow',
840
- ValueConv => '$val / 10',
841
- ValueConvInv => '$val * 10',
842
- },
843
- 0x82 => {
844
- Name => 'FaithfulRawShadow',
845
- ValueConv => '$val / 10',
846
- ValueConvInv => '$val * 10',
847
- },
848
- 0x83 => {
849
- Name => 'MonochromeRawShadow',
850
- ValueConv => '$val / 10',
851
- ValueConvInv => '$val * 10',
852
- },
853
- 0x84 => {
854
- Name => 'UnknownRawShadow',
855
- Unknown => 1,
856
- ValueConv => '$val / 10',
857
- ValueConvInv => '$val * 10',
858
- },
859
- 0x85 => {
860
- Name => 'CustomRawShadow',
861
- ValueConv => '$val / 10',
862
- ValueConvInv => '$val * 10',
863
- },
864
- 0x8b => { #2
865
- Name => 'AngleAdj',
866
- Format => 'int32s',
867
- ValueConv => '$val / 100',
868
- ValueConvInv => '$val * 100',
869
- },
870
- 0x8e => {
871
- Name => 'CheckMark2',
872
- Format => 'int16u',
873
- PrintConvColumns => 2,
874
- PrintConv => {
875
- 0 => 'Clear',
876
- 1 => 1,
877
- 2 => 2,
878
- 3 => 3,
879
- 4 => 4,
880
- 5 => 5,
881
- },
882
- },
883
- # (VRD 3.8.0 edit data ends here: 286 bytes, index 0x8f)
884
- 0x90 => {
885
- Name => 'UnsharpMask',
886
- PrintConv => { 0 => 'Off', 1 => 'On' },
887
- },
888
- 0x92 => 'StandardUnsharpMaskStrength',
889
- 0x94 => 'StandardUnsharpMaskFineness',
890
- 0x96 => 'StandardUnsharpMaskThreshold',
891
- 0x98 => 'PortraitUnsharpMaskStrength',
892
- 0x9a => 'PortraitUnsharpMaskFineness',
893
- 0x9c => 'PortraitUnsharpMaskThreshold',
894
- 0x9e => 'LandscapeUnsharpMaskStrength',
895
- 0xa0 => 'LandscapeUnsharpMaskFineness',
896
- 0xa2 => 'LandscapeUnsharpMaskThreshold',
897
- 0xa4 => 'NeutraUnsharpMaskStrength',
898
- 0xa6 => 'NeutralUnsharpMaskFineness',
899
- 0xa8 => 'NeutralUnsharpMaskThreshold',
900
- 0xaa => 'FaithfulUnsharpMaskStrength',
901
- 0xac => 'FaithfulUnsharpMaskFineness',
902
- 0xae => 'FaithfulUnsharpMaskThreshold',
903
- 0xb0 => 'MonochromeUnsharpMaskStrength',
904
- 0xb2 => 'MonochromeUnsharpMaskFineness',
905
- 0xb4 => 'MonochromeUnsharpMaskThreshold',
906
- 0xb6 => 'CustomUnsharpMaskStrength',
907
- 0xb8 => 'CustomUnsharpMaskFineness',
908
- 0xba => 'CustomUnsharpMaskThreshold',
909
- 0xbc => 'CustomDefaultUnsharpStrength',
910
- 0xbe => 'CustomDefaultUnsharpFineness',
911
- 0xc0 => 'CustomDefaultUnsharpThreshold',
912
- # (VRD 3.9.1 edit data ends here: 392 bytes, index 0xc4)
913
- # 0xc9: 3 - some RawSharpness
914
- # 0xca: 4095 - some RawHighlightPoint
915
- # 0xcb: 0 - some RawShadowPoint
916
- # 0xcc: 4095 - some OutputHighlightPoint
917
- # 0xcd: 0 - some OutputShadowPoint
918
- # 0xd1: 3 - some UnsharpMaskStrength
919
- # 0xd3: 7 - some UnsharpMaskFineness
920
- # 0xd5: 3,4 - some UnsharpMaskThreshold
921
- 0xd6 => { Name => 'CropCircleActive', %noYes },
922
- 0xd7 => 'CropCircleX',
923
- 0xd8 => 'CropCircleY',
924
- 0xd9 => 'CropCircleRadius',
925
- # 0xda: 0, 1
926
- # 0xdb: 100
927
- 0xdc => {
928
- Name => 'DLOOn',
929
- DataMember => 'DLOOn',
930
- RawConv => '$$self{DLOOn} = $val',
931
- %noYes,
932
- },
933
- 0xdd => 'DLOSetting',
934
- # (VRD 3.11.0 edit data ends here: 444 bytes, index 0xde)
935
- 0xde => {
936
- Name => 'DLOShootingDistance',
937
- Notes => '100% = infinity',
938
- RawConv => '$val == 0x7fff ? undef : $val',
939
- ValueConv => '1 - $val / 0x400',
940
- ValueConvInv => 'int((1 - $val) * 0x400 + 0.5)',
941
- PrintConv => 'sprintf("%.0f%%", $val * 100)',
942
- PrintConvInv => 'ToFloat($val) / 100',
943
- },
944
- 0xdf => {
945
- Name => 'DLODataLength',
946
- DataMember => 'DLODataLength',
947
- Format => 'int32u',
948
- Writable => 0,
949
- RawConv => '$$self{DLODataLength} = $val',
950
- },
951
- 0xe0 => { # (yes, this overlaps DLODataLength)
952
- Name => 'DLOInfo',
953
- # - have seen DLODataLengths of 65536,64869 when DLO is Off, so must test DLOOn flag
954
- Condition => '$$self{DLOOn}',
955
- SubDirectory => { TagTable => 'Image::ExifTool::CanonVRD::DLOInfo' },
956
- Hook => '$varSize += $$self{DLODataLength} + 0x16',
957
- },
958
- 0xe1 => 'CameraRawColorTone',
959
- # (VRD 3.11.2 edit data ends here: 452 bytes, index 0xe2, unless DLO is on)
960
- 0xe2 => 'CameraRawSaturation',
961
- 0xe3 => 'CameraRawContrast',
962
- 0xe4 => { Name => 'CameraRawLinear', %noYes },
963
- 0xe5 => 'CameraRawSharpness',
964
- 0xe6 => 'CameraRawHighlightPoint',
965
- 0xe7 => 'CameraRawShadowPoint',
966
- 0xe8 => 'CameraRawOutputHighlightPoint',
967
- 0xe9 => 'CameraRawOutputShadowPoint',
968
- );
969
-
970
- # DLO tags (ref PH)
971
- %Image::ExifTool::CanonVRD::DLOInfo = (
972
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
973
- WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
974
- CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
975
- WRITABLE => 1,
976
- FIRST_ENTRY => 1,
977
- FORMAT => 'int16s',
978
- GROUPS => { 2 => 'Image' },
979
- NOTES => 'Tags added when DLO (Digital Lens Optimizer) is on.',
980
- # 0x01 - seen 3112,3140
981
- 0x04 => 'DLOSettingApplied',
982
- 0x05 => {
983
- Name => 'DLOVersion', #(NC)
984
- Format => 'string[10]',
985
- },
986
- 0x0a => {
987
- Name => 'DLOData',
988
- LargeTag => 1, # large tag, so avoid storing unnecessarily
989
- Notes => 'variable-length Digital Lens Optimizer data, stored in JPEG-like format',
990
- Format => 'undef[$$self{DLODataLength}]',
991
- Writable => 0,
992
- Binary => 1,
993
- },
994
- );
995
-
996
- # VRD version 4 tags (ref PH)
997
- %Image::ExifTool::CanonVRD::DR4 = (
998
- PROCESS_PROC => \&ProcessDR4,
999
- WRITE_PROC => \&ProcessDR4,
1000
- WRITABLE => 1,
1001
- GROUPS => { 2 => 'Image' },
1002
- VARS => { HEX_ID => 1, SORT_PROC => \&SortDR4 },
1003
- NOTES => q{
1004
- Tags written by Canon DPP version 4 in CanonVRD trailers and DR4 files. Each
1005
- tag has three associated flag words which are stored with the directory
1006
- entry, some of which are extracted as a separate tag, indicated in the table
1007
- below by a decimal appended to the tag ID (.0, .1 or .2).
1008
- },
1009
- header => {
1010
- Name => 'DR4Header',
1011
- SubDirectory => { TagTable => 'Image::ExifTool::CanonVRD::DR4Header' },
1012
- },
1013
- 0x10002 => 'Rotation', # left/right rotation 90,180,270
1014
- 0x10003 => 'AngleAdj', # crop angle
1015
- # 0x10018 - fmt=8: 0
1016
- # 0x10020 - fmt=2: ''
1017
- 0x10021 => 'CustomPictureStyle', # (string)
1018
- 0x10101 => {
1019
- Name => 'CheckMark',
1020
- PrintConv => {
1021
- 0 => 'Clear',
1022
- 1 => 1,
1023
- 2 => 2,
1024
- 3 => 3,
1025
- 4 => 4,
1026
- 5 => 5,
1027
- },
1028
- },
1029
- 0x10200 => {
1030
- Name => 'WorkColorSpace',
1031
- PrintConv => {
1032
- 1 => 'sRGB',
1033
- 2 => 'Adobe RGB',
1034
- 3 => 'Wide Gamut RGB',
1035
- 4 => 'Apple RGB',
1036
- 5 => 'ColorMatch RGB',
1037
- },
1038
- },
1039
- # 0x10201 - fmt=9: 0
1040
- # 0x10f20 - fmt=9: 350
1041
- 0x20001 => 'RawBrightnessAdj',
1042
- 0x20101 => {
1043
- Name => 'WhiteBalanceAdj',
1044
- PrintConvColumns => 2,
1045
- PrintConv => {
1046
- -1 => 'Manual (Click)',
1047
- 0 => 'Auto',
1048
- 1 => 'Daylight',
1049
- 2 => 'Cloudy',
1050
- 3 => 'Tungsten',
1051
- 4 => 'Fluorescent',
1052
- 5 => 'Flash',
1053
- 8 => 'Shade',
1054
- 9 => 'Kelvin',
1055
- 255 => 'Shot Settings',
1056
- },
1057
- },
1058
- 0x20102 => 'WBAdjColorTemp',
1059
- 0x20105 => 'WBAdjMagentaGreen',
1060
- 0x20106 => 'WBAdjBlueAmber',
1061
- 0x20125 => {
1062
- Name => 'WBAdjRGGBLevels',
1063
- PrintConv => '$val =~ s/^\d+ //; $val', # remove first integer (14: what is this for?)
1064
- PrintConvInv => '"14 $val"',
1065
- },
1066
- 0x20200 => { Name => 'GammaLinear', %noYes },
1067
- 0x20301 => {
1068
- Name => 'PictureStyle',
1069
- PrintHex => 1,
1070
- PrintConv => {
1071
- 0x81 => 'Standard',
1072
- 0x82 => 'Portrait',
1073
- 0x83 => 'Landscape',
1074
- 0x84 => 'Neutral',
1075
- 0x85 => 'Faithful',
1076
- 0x86 => 'Monochrome',
1077
- 0x87 => 'Auto',
1078
- 0x88 => 'Fine Detail',
1079
- 0xf0 => 'Shot Settings',
1080
- 0xff => 'Custom',
1081
- },
1082
- },
1083
- # 0x20302 - Gamma curve data
1084
- 0x20303 => 'ContrastAdj',
1085
- 0x20304 => 'ColorToneAdj',
1086
- 0x20305 => 'ColorSaturationAdj',
1087
- 0x20306 => {
1088
- Name => 'MonochromeToningEffect',
1089
- PrintConv => {
1090
- 0 => 'None',
1091
- 1 => 'Sepia',
1092
- 2 => 'Blue',
1093
- 3 => 'Purple',
1094
- 4 => 'Green',
1095
- },
1096
- },
1097
- 0x20307 => {
1098
- Name => 'MonochromeFilterEffect',
1099
- PrintConv => {
1100
- 0 => 'None',
1101
- 1 => 'Yellow',
1102
- 2 => 'Orange',
1103
- 3 => 'Red',
1104
- 4 => 'Green',
1105
- },
1106
- },
1107
- 0x20308 => 'UnsharpMaskStrength',
1108
- 0x20309 => 'UnsharpMaskFineness',
1109
- 0x2030a => 'UnsharpMaskThreshold',
1110
- 0x2030b => 'ShadowAdj',
1111
- 0x2030c => 'HighlightAdj',
1112
- 0x20310 => {
1113
- Name => 'SharpnessAdj',
1114
- PrintConv => {
1115
- 0 => 'Sharpness',
1116
- 1 => 'Unsharp Mask',
1117
- },
1118
- },
1119
- '0x20310.0' => { Name => 'SharpnessAdjOn', %noYes },
1120
- 0x20311 => 'SharpnessStrength',
1121
- 0x20400 => {
1122
- Name => 'ToneCurve',
1123
- SubDirectory => { TagTable => 'Image::ExifTool::CanonVRD::ToneCurve' },
1124
- },
1125
- '0x20400.1' => { Name => 'ToneCurveOriginal', %noYes },
1126
- # 0x20401 - fmt=33 (312 bytes)
1127
- 0x20410 => 'ToneCurveBrightness',
1128
- 0x20411 => 'ToneCurveContrast',
1129
- 0x20500 => {
1130
- Name => 'AutoLightingOptimizer',
1131
- PrintConv => {
1132
- 0 => 'Low',
1133
- 1 => 'Standard',
1134
- 2 => 'Strong',
1135
- },
1136
- },
1137
- '0x20500.0' => {
1138
- Name => 'AutoLightingOptimizerOn',
1139
- Notes => 'ignored if gamma is linear',
1140
- %noYes,
1141
- },
1142
- # 0x20501 - fmt=13: 0
1143
- # 0x20502 - fmt=13: 0
1144
- 0x20600 => 'LuminanceNoiseReduction',
1145
- 0x20601 => 'ChrominanceNoiseReduction',
1146
- # 0x20650 - fmt=9: 0 (JPG images)
1147
- 0x20701 => {
1148
- Name => 'ShootingDistance',
1149
- Notes => '100% = infinity',
1150
- ValueConv => '$val / 10',
1151
- ValueConvInv => '$val * 10',
1152
- PrintConv => 'sprintf("%.0f%%", $val * 100)',
1153
- PrintConvInv => 'ToFloat($val) / 100',
1154
- },
1155
- 0x20702 => {
1156
- Name => 'PeripheralIllumination',
1157
- PrintConv => 'sprintf "%g", $val',
1158
- PrintConvInv => '$val',
1159
- },
1160
- '0x20702.0' => { Name => 'PeripheralIlluminationOn', %noYes },
1161
- 0x20703 => {
1162
- Name => 'ChromaticAberration',
1163
- PrintConv => 'sprintf "%g", $val',
1164
- PrintConvInv => '$val',
1165
- },
1166
- '0x20703.0' => { Name => 'ChromaticAberrationOn', %noYes },
1167
- 0x20704 => { Name => 'ColorBlurOn', %noYes },
1168
- 0x20705 => {
1169
- Name => 'DistortionCorrection',
1170
- PrintConv => 'sprintf "%g", $val',
1171
- PrintConvInv => '$val',
1172
- },
1173
- '0x20705.0' => { Name => 'DistortionCorrectionOn', %noYes },
1174
- 0x20706 => 'DLOSetting',
1175
- '0x20706.0' => { Name => 'DLOOn', %noYes },
1176
- 0x20707 => {
1177
- Name => 'ChromaticAberrationRed',
1178
- PrintConv => 'sprintf "%g", $val',
1179
- PrintConvInv => '$val',
1180
- },
1181
- 0x20708 => {
1182
- Name => 'ChromaticAberrationBlue',
1183
- PrintConv => 'sprintf "%g", $val',
1184
- PrintConvInv => '$val',
1185
- },
1186
- 0x20709 => {
1187
- Name => 'DistortionEffect',
1188
- PrintConv => {
1189
- 0 => 'Shot Settings',
1190
- 1 => 'Emphasize Linearity',
1191
- 2 => 'Emphasize Distance',
1192
- 3 => 'Emphasize Periphery',
1193
- 4 => 'Emphasize Center',
1194
- },
1195
- },
1196
- # 0x20800 - fmt=1: 0
1197
- # 0x20801 - fmt=1: 0
1198
- 0x20900 => 'ColorHue',
1199
- 0x20901 => 'SaturationAdj',
1200
- 0x20910 => 'RedHSL',
1201
- 0x20911 => 'OrangeHSL',
1202
- 0x20912 => 'GreenHSL',
1203
- 0x20913 => 'AquaHSL',
1204
- 0x20914 => 'BlueHSL',
1205
- 0x20915 => 'BlueHSL',
1206
- 0x20916 => 'PurpleHSL',
1207
- 0x20917 => 'MagentaHSL',
1208
- 0x20a00 => {
1209
- Name => 'GammaInfo',
1210
- SubDirectory => { TagTable => 'Image::ExifTool::CanonVRD::GammaInfo' },
1211
- },
1212
- # 0x20a01 - Auto picture style settings
1213
- # 0x20a02 - Standard picture style settings
1214
- # 0x20a03 - Portrait picture style settings
1215
- # 0x20a04 - Landscape picture style settings
1216
- # 0x20a05 - Neutral picture style settings
1217
- # 0x20a06 - Faithful picture style settings
1218
- # 0x20a07 - Monochrome picture style settings
1219
- # 0x20a08 - (unknown picture style settings)
1220
- # 0x20a09 - Custom picture style settings
1221
- # 0x20a20 - Fine Detail picture style settings
1222
- 0x30101 => {
1223
- Name => 'CropAspectRatio',
1224
- PrintConv => {
1225
- 0 => 'Free',
1226
- 1 => 'Custom',
1227
- 2 => '1:1',
1228
- 3 => '3:2',
1229
- 4 => '2:3',
1230
- 5 => '4:3',
1231
- 6 => '3:4',
1232
- 7 => '5:4',
1233
- 8 => '4:5',
1234
- 9 => '16:9',
1235
- 10 => '9:16',
1236
- },
1237
- },
1238
- 0x30102 => 'CropAspectRatioCustom',
1239
- # 0x30103 - fmt=33: "0 0 8"
1240
- 0xf0100 => {
1241
- Name => 'CropInfo',
1242
- SubDirectory => { TagTable => 'Image::ExifTool::CanonVRD::CropInfo' },
1243
- },
1244
- 0xf0500 => {
1245
- Name => 'CustomPictureStyleData',
1246
- Binary => 1,
1247
- },
1248
- 0xf0510 => {
1249
- Name => 'StampInfo',
1250
- SubDirectory => { TagTable => 'Image::ExifTool::CanonVRD::StampInfo' },
1251
- },
1252
- 0xf0511 => {
1253
- Name => 'DustInfo',
1254
- SubDirectory => { TagTable => 'Image::ExifTool::CanonVRD::DustInfo' },
1255
- },
1256
- 0xf0512 => 'LensFocalLength',
1257
- # 0xf0521 - DLO data
1258
- # 0xf0520 - DLO data
1259
- # 0xf0530 - created when dust delete data applied (4 bytes, all zero)
1260
- # 0xf0600 - fmt=253 (2308 bytes, JPG images)
1261
- # 0xf0601 - fmt=253 (2308 bytes, JPG images)
1262
- # 0x1ff52c - values: 129,130,132 (related to custom picture style somehow)
1263
- # to do:
1264
- # - find 8-15mm CR2 sample and decode linear distortion effect fine-tune
1265
- );
1266
-
1267
- # Version 4 header information (ref PH)
1268
- %Image::ExifTool::CanonVRD::DR4Header = (
1269
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
1270
- WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
1271
- CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
1272
- WRITABLE => 1,
1273
- FIRST_ENTRY => 0,
1274
- FORMAT => 'int32u',
1275
- GROUPS => { 2 => 'Image' },
1276
- # 0 - value: 'IIII' (presumably byte order)
1277
- # 1 - value: 0x00040004 (currently use this for magic number)
1278
- # 2 - value: 6
1279
- 3 => {
1280
- Name => 'DR4CameraModel',
1281
- Writable => 'int32u',
1282
- PrintHex => 1,
1283
- SeparateTable => 'Canon CameraModelID',
1284
- PrintConv => \%Image::ExifTool::Canon::canonModelID,
1285
- },
1286
- # 4 - value: 3
1287
- # 5 - value: 4
1288
- # 6 - value: 5
1289
- # 7 - DR4 directory entry count
1290
- );
1291
-
1292
- # Version 4 RGB tone curve information (ref PH)
1293
- %Image::ExifTool::CanonVRD::ToneCurve = (
1294
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
1295
- WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
1296
- CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
1297
- WRITABLE => 1,
1298
- FIRST_ENTRY => 0,
1299
- FORMAT => 'int32u',
1300
- GROUPS => { 2 => 'Image' },
1301
- 0x00 => {
1302
- Name => 'ToneCurveColorSpace',
1303
- PrintConv => {
1304
- 0 => 'RGB',
1305
- 1 => 'Luminance',
1306
- },
1307
- },
1308
- 0x01 => {
1309
- Name => 'ToneCurveShape',
1310
- PrintConv => {
1311
- 0 => 'Curve',
1312
- 1 => 'Straight',
1313
- },
1314
- },
1315
- 0x03 => { Name => 'ToneCurveInputRange', Format => 'int32u[2]', Notes => '255 max' },
1316
- 0x05 => { Name => 'ToneCurveOutputRange', Format => 'int32u[2]', Notes => '255 max' },
1317
- 0x07 => {
1318
- Name => 'RGBCurvePoints',
1319
- Format => 'int32u[21]',
1320
- PrintConv => 'Image::ExifTool::CanonVRD::ToneCurvePrint($val)',
1321
- PrintConvInv => 'Image::ExifTool::CanonVRD::ToneCurvePrintInv($val)',
1322
- },
1323
- 0x0a => 'ToneCurveX',
1324
- 0x0b => 'ToneCurveY',
1325
- 0x2d => {
1326
- Name => 'RedCurvePoints',
1327
- Format => 'int32u[21]',
1328
- PrintConv => 'Image::ExifTool::CanonVRD::ToneCurvePrint($val)',
1329
- PrintConvInv => 'Image::ExifTool::CanonVRD::ToneCurvePrintInv($val)',
1330
- },
1331
- 0x53 => {
1332
- Name => 'GreenCurvePoints',
1333
- Format => 'int32u[21]',
1334
- PrintConv => 'Image::ExifTool::CanonVRD::ToneCurvePrint($val)',
1335
- PrintConvInv => 'Image::ExifTool::CanonVRD::ToneCurvePrintInv($val)',
1336
- },
1337
- 0x79 => {
1338
- Name => 'BlueCurvePoints',
1339
- Format => 'int32u[21]',
1340
- PrintConv => 'Image::ExifTool::CanonVRD::ToneCurvePrint($val)',
1341
- PrintConvInv => 'Image::ExifTool::CanonVRD::ToneCurvePrintInv($val)',
1342
- },
1343
- );
1344
-
1345
- # Version 4 gamma curve information (ref PH)
1346
- %Image::ExifTool::CanonVRD::GammaInfo = (
1347
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
1348
- WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
1349
- CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
1350
- WRITABLE => 1,
1351
- FIRST_ENTRY => 0,
1352
- FORMAT => 'double',
1353
- GROUPS => { 2 => 'Image' },
1354
- 0x02 => 'GammaContrast',
1355
- 0x03 => 'GammaColorTone',
1356
- 0x04 => 'GammaSaturation',
1357
- 0x05 => 'GammaUnsharpMaskStrength',
1358
- 0x06 => 'GammaUnsharpMaskFineness',
1359
- 0x07 => 'GammaUnsharpMaskThreshold',
1360
- 0x08 => 'GammaSharpnessStrength',
1361
- 0x09 => 'GammaShadow',
1362
- 0x0a => 'GammaHighlight',
1363
- # 0x0b-0x10 are the same as first 6 doubles of tag DR4_0x20302
1364
- # 0x0b - value: 14
1365
- 0x0c => {
1366
- Name => 'GammaBlackPoint',
1367
- ValueConv => q{
1368
- return 0 if $val <= 0;
1369
- $val = log($val / 4.6875) / log(2) + 1;
1370
- return abs($val) > 1e-10 ? $val : 0;
1371
- },
1372
- ValueConvInv => '$val ? exp(($val - 1) * log(2)) * 4.6876 : 0',
1373
- PrintConv => 'sprintf("%+.3f", $val)',
1374
- PrintConvInv => '$val',
1375
- },
1376
- 0x0d => {
1377
- Name => 'GammaWhitePoint',
1378
- ValueConv => q{
1379
- return $val if $val <= 0;
1380
- $val = log($val / 4.6875) / log(2) - 11.77109325169954;
1381
- return abs($val) > 1e-10 ? $val : 0;
1382
- },
1383
- ValueConvInv => '$val ? exp(($val + 11.77109325169954) * log(2)) * 4.6875 : 0',
1384
- PrintConv => 'sprintf("%+.3f", $val)',
1385
- PrintConvInv => '$val',
1386
- },
1387
- 0x0e => {
1388
- Name => 'GammaMidPoint',
1389
- ValueConv => q{
1390
- return $val if $val <= 0;
1391
- $val = log($val / 4.6875) / log(2) - 8;
1392
- return abs($val) > 1e-10 ? $val : 0;
1393
- },
1394
- ValueConvInv => '$val ? exp(($val + 8) * log(2)) * 4.6876 : 0',
1395
- PrintConv => 'sprintf("%+.3f", $val)',
1396
- PrintConvInv => '$val',
1397
- },
1398
- 0x0f => { Name => 'GammaCurveOutputRange', Format => 'double[2]', Notes => '16383 max' },
1399
- );
1400
-
1401
- # Version 4 crop information (ref PH)
1402
- %Image::ExifTool::CanonVRD::CropInfo = (
1403
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
1404
- WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
1405
- CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
1406
- WRITABLE => 1,
1407
- FIRST_ENTRY => 0,
1408
- FORMAT => 'int32s',
1409
- GROUPS => { 2 => 'Image' },
1410
- 0 => { Name => 'CropActive', %noYes },
1411
- 1 => 'CropRotatedOriginalWidth',
1412
- 2 => 'CropRotatedOriginalHeight',
1413
- 3 => 'CropX',
1414
- 4 => 'CropY',
1415
- 5 => 'CropWidth',
1416
- 6 => 'CropHeight',
1417
- 8 => {
1418
- Name => 'CropRotation',
1419
- Format => 'double',
1420
- PrintConv => 'sprintf("%.7g",$val)',
1421
- PrintConvInv => '$val',
1422
- },
1423
- 0x0a => 'CropOriginalWidth',
1424
- 0x0b => 'CropOriginalHeight',
1425
- # 0x0c double - value: 100
1426
- );
1427
-
1428
- # DR4 Stamp Tool tags (ref PH)
1429
- %Image::ExifTool::CanonVRD::StampInfo = (
1430
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
1431
- GROUPS => { 2 => 'Image' },
1432
- FORMAT => 'int32u',
1433
- FIRST_ENTRY => 0,
1434
- 0x02 => 'StampToolCount',
1435
- );
1436
-
1437
- # DR4 dust delete information (ref PH)
1438
- %Image::ExifTool::CanonVRD::DustInfo = (
1439
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
1440
- GROUPS => { 2 => 'Image' },
1441
- FORMAT => 'int32u',
1442
- FIRST_ENTRY => 0,
1443
- 0x02 => { Name => 'DustDeleteApplied', %noYes },
1444
- );
1445
-
1446
- #------------------------------------------------------------------------------
1447
- # sort DR4 tag ID's for the documentation
1448
- sub SortDR4($$)
1449
- {
1450
- my ($a, $b) = @_;
1451
- my ($aHex, $aDec, $bHex, $bDec);
1452
- ($aHex, $aDec) = ($1, $2) if $a =~ /^(0x[0-9a-f]+)?\.?(\d*?)$/;
1453
- ($bHex, $bDec) = ($1, $2) if $b =~ /^(0x[0-9a-f]+)?\.?(\d*?)$/;
1454
- if ($aHex) {
1455
- return 1 unless defined $bDec; # $b is 'header';
1456
- return hex($aHex) <=> hex($bHex) || $aDec <=> $bDec if $bHex;
1457
- return hex($aHex) <=> $bDec || 1;
1458
- } elsif ($bHex) {
1459
- return -1 unless defined $aDec;
1460
- return $aDec <=> hex($bHex) || -1;
1461
- } else {
1462
- return 1 unless defined $bDec;
1463
- return -1 unless defined $aDec;
1464
- return $aDec <=> $bDec;
1465
- }
1466
- }
1467
-
1468
- #------------------------------------------------------------------------------
1469
- # Tone curve print conversion
1470
- sub ToneCurvePrint($)
1471
- {
1472
- my $val = shift;
1473
- my @vals = split ' ', $val;
1474
- return $val unless @vals == 21;
1475
- my $n = shift @vals;
1476
- return $val unless $n >= 2 and $n <= 10;
1477
- $val = '';
1478
- while ($n--) {
1479
- $val and $val .= ' ';
1480
- $val .= '(' . shift(@vals) . ',' . shift(@vals) . ')';
1481
- }
1482
- return $val;
1483
- }
1484
-
1485
- #------------------------------------------------------------------------------
1486
- # Inverse print conversion for tone curve
1487
- sub ToneCurvePrintInv($)
1488
- {
1489
- my $val = shift;
1490
- my @vals = ($val =~ /\((\d+),(\d+)\)/g);
1491
- return undef unless @vals >= 4 and @vals <= 20 and not @vals & 0x01;
1492
- unshift @vals, scalar(@vals) / 2;
1493
- while (@vals < 21) { push @vals, 0 }
1494
- return join(' ',@vals);
1495
- }
1496
-
1497
- #------------------------------------------------------------------------------
1498
- # Read/Write VRD edit data
1499
- # Inputs: 0) ExifTool object ref, 1) dirInfo ref, 2) tag table ref
1500
- # Returns: Reading: 1 on success; Writing: modified edit data, or undef if nothing changed
1501
- sub ProcessEditData($$$)
1502
- {
1503
- my ($et, $dirInfo, $tagTablePtr) = @_;
1504
- $et or return 1; # allow dummy access
1505
- my $dataPt = $$dirInfo{DataPt};
1506
- my $pos = $$dirInfo{DirStart};
1507
- my $dataPos = $$dirInfo{DataPos};
1508
- my $outfile = $$dirInfo{OutFile};
1509
- my $dirLen = $$dirInfo{DirLen};
1510
- my $verbose = $et->Options('Verbose');
1511
- my $out = $et->Options('TextOut');
1512
- my $oldChanged = $$et{CHANGED};
1513
-
1514
- $et->VerboseDir('VRD Edit Data', 0, $dirLen) unless $outfile;
1515
-
1516
- if ($outfile) {
1517
- # make a copy for editing in place
1518
- my $buff = substr($$dataPt, $pos, $dirLen);
1519
- $dataPt = $$dirInfo{DataPt} = \$buff;
1520
- $pos = $$dirInfo{DirStart} = 0;
1521
- }
1522
- my $dirEnd = $pos + $dirLen;
1523
-
1524
- # loop through all records in the edit data
1525
- my ($recNum, $recLen, $err);
1526
- for ($recNum=0;; ++$recNum, $pos+=$recLen) {
1527
- if ($pos + 4 > $dirEnd) {
1528
- last if $pos == $dirEnd; # all done if we arrived at end
1529
- $recLen = 0; # just reset record size (will exit loop on test below)
1530
- } else {
1531
- $recLen = Get32u($dataPt, $pos);
1532
- # (DR4 has a null terminator)
1533
- last if $recLen == 0 and $pos + 4 == $dirEnd;
1534
- }
1535
- $pos += 4; # move to start of record
1536
- if ($pos + $recLen > $dirEnd) {
1537
- $et->Warn('Possibly corrupt CanonVRD Edit record');
1538
- $err = 1;
1539
- last;
1540
- }
1541
- my $saveRecLen = $recLen;
1542
- if ($verbose > 1 and not $outfile) {
1543
- printf $out "$$et{INDENT}CanonVRD Edit record ($recLen bytes at offset 0x%x)\n",
1544
- $pos + $dataPos;
1545
- if ($recNum and $verbose > 2) {
1546
- my %parms = (
1547
- Start => $pos,
1548
- Addr => $pos + $dataPos,
1549
- Out => $out,
1550
- Prefix => $$et{INDENT},
1551
- );
1552
- $parms{MaxLen} = $verbose == 3 ? 96 : 2048 if $verbose < 5;
1553
- HexDump($dataPt, $recLen, %parms);
1554
- }
1555
- }
1556
-
1557
- # our edit information is the 0th record, so don't process the others
1558
- next if $recNum;
1559
-
1560
- # process VRD edit information
1561
- my $subTablePtr = $tagTablePtr;
1562
- my $index;
1563
- my %subdirInfo = (
1564
- DataPt => $dataPt,
1565
- DataPos => $dataPos,
1566
- DirStart => $pos,
1567
- DirLen => $recLen,
1568
- OutFile => $outfile,
1569
- );
1570
- my $subStart = 0;
1571
- # loop through various sections of the VRD edit data
1572
- for ($index=0; ; ++$index) {
1573
- my $tagInfo = $$subTablePtr{$index} or last;
1574
- my $subLen;
1575
- my $maxLen = $recLen - $subStart;
1576
- if ($$tagInfo{Size}) {
1577
- $subLen = $$tagInfo{Size};
1578
- } elsif (defined $$tagInfo{Size}) {
1579
- # get size from int32u at $subStart
1580
- last unless $subStart + 4 <= $recLen;
1581
- $subLen = Get32u($dataPt, $subStart + $pos);
1582
- $subStart += 4; # skip the length word
1583
- } else {
1584
- $subLen = $maxLen;
1585
- }
1586
- $subLen > $maxLen and $subLen = $maxLen;
1587
- if ($subLen) {
1588
- my $subTable = GetTagTable($$tagInfo{SubDirectory}{TagTable});
1589
- my $subName = $$tagInfo{Name};
1590
- $subdirInfo{DirStart} = $subStart + $pos;
1591
- $subdirInfo{DirLen} = $subLen;
1592
- $subdirInfo{DirName} = $subName;
1593
- if ($outfile) {
1594
- # rewrite this section of the VRD edit information
1595
- $verbose and print $out " Rewriting Canon $subName\n";
1596
- my $newVal = $et->WriteDirectory(\%subdirInfo, $subTable);
1597
- if ($newVal) {
1598
- my $sizeDiff = length($newVal) - $subLen;
1599
- substr($$dataPt, $pos+$subStart, $subLen) = $newVal;
1600
- if ($sizeDiff) {
1601
- $subLen = length $newVal;
1602
- $recLen += $sizeDiff;
1603
- $dirEnd += $sizeDiff;
1604
- $dirLen += $sizeDiff;
1605
- }
1606
- }
1607
- } else {
1608
- $et->VPrint(0, "$$et{INDENT}$subName (SubDirectory) -->\n");
1609
- $et->VerboseDump($dataPt,
1610
- Start => $pos + $subStart,
1611
- Addr => $dataPos + $pos + $subStart,
1612
- Len => $subLen,
1613
- );
1614
- # extract tags from this section of the VRD edit information
1615
- $et->ProcessDirectory(\%subdirInfo, $subTable);
1616
- }
1617
- }
1618
- # next section starts at the end of this one
1619
- $subStart += $subLen;
1620
- }
1621
- if ($outfile and $saveRecLen ne $recLen) {
1622
- # update record length if necessary
1623
- Set32u($recLen, $dataPt, $pos - 4)
1624
- }
1625
- }
1626
- if ($outfile) {
1627
- return undef if $oldChanged == $$et{CHANGED};
1628
- return substr($$dataPt, $$dirInfo{DirStart}, $dirLen);
1629
- }
1630
- return $err ? 0 : 1;
1631
- }
1632
-
1633
- #------------------------------------------------------------------------------
1634
- # Process VRD IHL data
1635
- # Inputs: 0) ExifTool object ref, 1) dirInfo ref, 2) tag table ref
1636
- # Returns: 1 on success
1637
- sub ProcessIHL($$$)
1638
- {
1639
- my ($et, $dirInfo, $tagTablePtr) = @_;
1640
- my $dataPt = $$dirInfo{DataPt};
1641
- my $dataPos = $$dirInfo{DataPos};
1642
- my $pos = $$dirInfo{DirStart};
1643
- my $dirLen = $$dirInfo{DirLen};
1644
- my $dirEnd = $pos + $dirLen;
1645
-
1646
- $et->VerboseDir('VRD IHL', 0, $dirLen);
1647
-
1648
- SetByteOrder('II'); # (make up your mind, Canon!)
1649
- while ($pos + 48 <= $dirEnd) {
1650
- my $hdr = substr($$dataPt, $pos, 48);
1651
- unless ($hdr =~ /^IHL Created Optional Item Data\0\0/) {
1652
- $et->Warn('Possibly corrupted VRD IHL data');
1653
- last;
1654
- }
1655
- my $tag = Get32u($dataPt, $pos + 36);
1656
- my $size = Get32u($dataPt, $pos + 40); # size of data in IHL record
1657
- my $next = Get32u($dataPt, $pos + 44); # size of complete IHL record
1658
- if ($size > $next or $pos + 48 + $next > $dirEnd) {
1659
- $et->Warn(sprintf('Bad size for VRD IHL tag 0x%.4x', $tag));
1660
- last;
1661
- }
1662
- $pos += 48;
1663
- $et->HandleTag($tagTablePtr, $tag, substr($$dataPt, $pos, $size),
1664
- DataPt => $dataPt,
1665
- DataPos => $dataPos,
1666
- Start => $pos,
1667
- Size => $size
1668
- );
1669
- $pos += $next;
1670
- }
1671
- return 1;
1672
- }
1673
-
1674
- #------------------------------------------------------------------------------
1675
- # Process VRD IHL EXIF data
1676
- # Inputs: 0) ExifTool object ref, 1) dirInfo ref, 2) tag table ref
1677
- # Returns: 1 on success
1678
- sub ProcessIHLExif($$$)
1679
- {
1680
- my ($et, $dirInfo, $tagTablePtr) = @_;
1681
- $$et{DOC_NUM} = 1;
1682
- # the IHL-edited maker notes may look messed up, but the offsets should be OK
1683
- my $oldFix = $et->Options(FixBase => 0);
1684
- my $rtnVal = $et->ProcessTIFF($dirInfo, $tagTablePtr);
1685
- $et->Options(FixBase => $oldFix);
1686
- delete $$et{DOC_NUM};
1687
- return $rtnVal;
1688
- }
1689
-
1690
- #------------------------------------------------------------------------------
1691
- # Wrap DR4 data with the VRD header/footer and edit record
1692
- # Inputs: 0) DR4 record
1693
- # Returns: VRD[Edit[DR4]] data
1694
- sub WrapDR4($)
1695
- {
1696
- my $val = shift;
1697
- my $n = length $val;
1698
- my $oldOrder = GetByteOrder();
1699
- SetByteOrder('MM');
1700
- $val = $blankHeader . "\xff\xff\0\xf7" . Set32u($n+8) . Set32u($n) .
1701
- $val . "\0\0\0\0" . $blankFooter;
1702
- # update the new VRD length in the header/footer
1703
- Set32u($n + 16, \$val, 0x18); # (extra 16 bytes for the edit record wrapper)
1704
- Set32u($n + 16, \$val, length($val) - 0x2c);
1705
- SetByteOrder($oldOrder);
1706
- return $val;
1707
- }
1708
-
1709
- #------------------------------------------------------------------------------
1710
- # Read/Write DPP version 4 edit data or DR4 file
1711
- # Inputs: 0) ExifTool object ref, 1) dirInfo ref, 2) tag table ref
1712
- # Returns:
1713
- # Reading from memory (not RAF and not IsWriting): 1 on success
1714
- # Editing from memory (not RAF and IsWriting): modified edit data, or undef if nothing changed
1715
- # Reading file (RAF and not OutFile): 1 if a valid DR4 file, 0 if not
1716
- # Writing file (RAF and OutFile): 1 if valid DR4 file, 0 if not, -1 on write error
1717
- # (serves me right for not having a consistent interface for the various modes of operation)
1718
- sub ProcessDR4($$;$)
1719
- {
1720
- my ($et, $dirInfo, $tagTablePtr) = @_;
1721
- $et or return 1; # allow dummy access
1722
- my $dataPt = $$dirInfo{DataPt};
1723
- my $raf = $$dirInfo{RAF};
1724
- my $outfile = $$dirInfo{OutFile};
1725
- my $isWriting = $outfile || $$dirInfo{IsWriting};
1726
- my $dataPos = $$dirInfo{DataPos} || 0;
1727
- my $verbose = $et->Options('Verbose');
1728
- my $unknown = $et->Options('Unknown');
1729
- my ($pos, $dirLen, $numEntries, $err, $newTags);
1730
-
1731
- # write CanonDR4 as a block if specified
1732
- if ($isWriting) {
1733
- my $nvHash;
1734
- my $newVal = $et->GetNewValue('CanonDR4', \$nvHash);
1735
- if ($newVal) {
1736
- $et->VPrint(0, " Writing CanonDR4 as a block\n");
1737
- $$et{DidCanonVRD} = 1; # set flag so we don't add this twice
1738
- ++$$et{CHANGED};
1739
- if ($outfile) {
1740
- Write($$dirInfo{OutFile}, $newVal) or return -1;
1741
- return 1;
1742
- } else {
1743
- return $newVal;
1744
- }
1745
- } elsif (not $dataPt and ($nvHash or $$et{DEL_GROUP}{CanonVRD})) {
1746
- $et->Error("Can't delete all CanonDR4 information from a DR4 file");
1747
- return 1;
1748
- }
1749
- }
1750
- if ($dataPt) {
1751
- $pos = $$dirInfo{DirStart} || 0;
1752
- $dirLen = $$dirInfo{DirLen} || length($$dataPt) - $pos;
1753
- } else {
1754
- # load DR4 file into memory
1755
- my $buff;
1756
- $raf->Read($buff, 8) == 8 and $buff eq "IIII\x04\0\x04\0" or return 0;
1757
- $et->SetFileType();
1758
- $raf->Seek(0, 2) or return $err = 1;
1759
- $dirLen = $raf->Tell();
1760
- $raf->Seek(0, 0) or return $err = 1;
1761
- $raf->Read($buff, $dirLen) == $dirLen or $err = 1;
1762
- $err and $et->Warn('Error reading DR4 file'), return 1;
1763
- $tagTablePtr = GetTagTable('Image::ExifTool::CanonVRD::DR4');
1764
- $dataPt = \$buff;
1765
- $pos = 0;
1766
- }
1767
- my $dirEnd = $pos + $dirLen;
1768
-
1769
- if (($$et{TAGS_FROM_FILE} and
1770
- not $$et{EXCL_TAG_LOOKUP}{canondr4}) or $$et{REQ_TAG_LOOKUP}{canondr4})
1771
- {
1772
- # extract CanonDR4 block if copying tags, or if requested
1773
- $et->FoundTag('CanonDR4', substr($$dataPt, $pos, $dirLen));
1774
- }
1775
-
1776
- # version 4 header is 32 bytes (int32u[8])
1777
- if ($dirLen < 32) {
1778
- $err = 1;
1779
- } else {
1780
- SetByteOrder(substr($$dataPt, $pos, 2)) or $err = 1;
1781
- # process the DR4 header
1782
- my %hdrInfo = (
1783
- DataPt => $dataPt,
1784
- DirStart => $pos,
1785
- DirLen => 32,
1786
- DirName => 'DR4Header',
1787
- );
1788
- my $hdrTable = GetTagTable('Image::ExifTool::CanonVRD::DR4Header');
1789
- if ($outfile) {
1790
- my $hdr = $et->WriteDirectory(\%hdrInfo, $hdrTable);
1791
- substr($$dataPt, $pos, 32) = $hdr if $hdr and length $hdr == 32;
1792
- } else {
1793
- $et->VerboseDir('DR4Header', undef, 32);
1794
- $et->ProcessDirectory(\%hdrInfo, $hdrTable);
1795
- }
1796
- # number of entries in the DR4 directory
1797
- $numEntries = Get32u($dataPt, $pos + 28);
1798
- $err = 1 if $dirLen < 36 + 28 * $numEntries;
1799
- }
1800
- $err and $et->Warn('Invalid DR4 directory'), return $outfile ? undef : 0;
1801
-
1802
- if ($outfile) {
1803
- $newTags = $et->GetNewTagInfoHash($tagTablePtr);
1804
- } else {
1805
- $et->VerboseDir('DR4', $numEntries, $dirLen);
1806
- }
1807
-
1808
- my $index;
1809
- for ($index=0; $index<$numEntries; ++$index) {
1810
- my ($val, @flg, $i);
1811
- my $entry = $pos + 36 + 28 * $index;
1812
- last if $entry + 28 > $dirEnd;
1813
- my $tag = Get32u($dataPt, $entry);
1814
- my $fmt = Get32u($dataPt, $entry + 4);
1815
- $flg[0] = Get32u($dataPt, $entry + 8);
1816
- $flg[1] = Get32u($dataPt, $entry + 12);
1817
- $flg[2] = Get32u($dataPt, $entry + 16);
1818
- my $off = Get32u($dataPt, $entry + 20) + $pos;
1819
- my $len = Get32u($dataPt, $entry + 24);
1820
- next if $off + $len >= $dirEnd;
1821
- my $format = $vrdFormat{$fmt};
1822
- if (not $format) {
1823
- $val = unpack 'H*', substr($$dataPt, $off, $len);
1824
- $format = 'undef';
1825
- } elsif ($format eq 'double' and $len eq 8) {
1826
- # avoid teeny weeny values
1827
- $val = ReadValue($dataPt, $off, $format, undef, $len);
1828
- $val = 0 if abs($val) < 1e-100;
1829
- }
1830
- if ($outfile) {
1831
- # write (binary data) subdirectory if it exists
1832
- my $tagInfo = $et->GetTagInfo($tagTablePtr, $tag);
1833
- if ($tagInfo and $$tagInfo{SubDirectory}) {
1834
- my %subdirInfo = (
1835
- DataPt => $dataPt,
1836
- DirStart => $off,
1837
- DirLen => $len,
1838
- DirName => $$tagInfo{Name},
1839
- );
1840
- my $subTablePtr = GetTagTable($$tagInfo{SubDirectory}{TagTable});
1841
- my $saveChanged = $$et{CHANGED};
1842
- my $dat = $et->WriteDirectory(\%subdirInfo, $subTablePtr);
1843
- if (defined $dat and length($dat) == $len) {
1844
- substr($$dataPt, $off, $len) = $dat;
1845
- } else {
1846
- $$et{CHANGED} = $saveChanged; # didn't change anything after all
1847
- }
1848
- } else {
1849
- # loop through main tag and flags (don't yet consider flag 2)
1850
- for ($i=-1; $i<2; ++$i) {
1851
- $tagInfo = $$newTags{$i>=0 ? sprintf('0x%x.%d',$tag,$i) : $tag};
1852
- next unless $tagInfo;
1853
- if ($i >= 0) {
1854
- $off = $entry + 8 + 4 * $i;
1855
- $format = 'int32u';
1856
- $len = 4;
1857
- undef $val;
1858
- }
1859
- $val = ReadValue($dataPt, $off, $format, undef, $len) unless defined $val;
1860
- my $nvHash;
1861
- my $newVal = $et->GetNewValue($tagInfo, \$nvHash);
1862
- if ($et->IsOverwriting($nvHash, $val) and defined $newVal) {
1863
- my $count = int($len / Image::ExifTool::FormatSize($format));
1864
- my $rtnVal = WriteValue($newVal, $format, $count, $dataPt, $off);
1865
- if (defined $rtnVal) {
1866
- $et->VerboseValue("- CanonVRD:$$tagInfo{Name}", $val);
1867
- $et->VerboseValue("+ CanonVRD:$$tagInfo{Name}", $newVal);
1868
- ++$$et{CHANGED};
1869
- }
1870
- }
1871
- }
1872
- }
1873
- next;
1874
- }
1875
- $et->HandleTag($tagTablePtr, $tag, $val,
1876
- DataPt => $dataPt,
1877
- DataPos => $dataPos,
1878
- Start => $off,
1879
- Size => $len,
1880
- Index => $index,
1881
- Format => $format,
1882
- # $flg[0] is on/off flag
1883
- # $flg[1] "is default" flag?
1884
- # $flg[2] changed to 0 when some unsharp mask settings were changed
1885
- Extra => ", fmt=$fmt flags=" . join(',', @flg),
1886
- );
1887
- foreach $i (0..2) {
1888
- my $flagID = sprintf('0x%x.%d', $tag, $i);
1889
- $et->HandleTag($tagTablePtr, $flagID, $flg[$i]) if $$tagTablePtr{$flagID};
1890
- }
1891
- }
1892
- return 1 unless $isWriting;
1893
- return substr($$dataPt, $pos, $dirLen) unless $raf;
1894
- return 1 if Write($outfile, substr($$dataPt, $pos, $dirLen));
1895
- return -1;
1896
- }
1897
-
1898
- #------------------------------------------------------------------------------
1899
- # Read/write Canon VRD file
1900
- # Inputs: 0) ExifTool object reference, 1) dirInfo reference
1901
- # Returns: 1 if this was a Canon VRD file, 0 otherwise, -1 on write error
1902
- sub ProcessVRD($$)
1903
- {
1904
- my ($et, $dirInfo) = @_;
1905
- my $raf = $$dirInfo{RAF};
1906
- my $buff;
1907
- my $num = $raf->Read($buff, 0x1c);
1908
-
1909
- # initialize write directories if necessary
1910
- $et->InitWriteDirs(\%vrdMap, 'XMP') if $$dirInfo{OutFile};
1911
-
1912
- if (not $num and $$dirInfo{OutFile}) {
1913
- # create new VRD file from scratch
1914
- my $newVal = $et->GetNewValue('CanonVRD');
1915
- if ($newVal) {
1916
- $et->VPrint(0, " Writing CanonVRD as a block\n");
1917
- Write($$dirInfo{OutFile}, $newVal) or return -1;
1918
- $$et{DidCanonVRD} = 1;
1919
- ++$$et{CHANGED};
1920
- } else {
1921
- # allow VRD to be created from individual tags
1922
- if ($$et{ADD_DIRS}{CanonVRD}) {
1923
- my $newVal = '';
1924
- if (ProcessCanonVRD($et, { OutFile => \$newVal }) > 0) {
1925
- Write($$dirInfo{OutFile}, $newVal) or return -1;
1926
- ++$$et{CHANGED};
1927
- return 1;
1928
- }
1929
- }
1930
- $et->Error('No CanonVRD information to write');
1931
- }
1932
- } else {
1933
- $num == 0x1c or return 0;
1934
- $buff =~ /^CANON OPTIONAL DATA\0/ or return 0;
1935
- $et->SetFileType();
1936
- $$dirInfo{DirName} = 'CanonVRD'; # set directory name for verbose output
1937
- my $result = ProcessCanonVRD($et, $dirInfo);
1938
- return $result if $result < 0;
1939
- $result or $et->Warn('Format error in VRD file');
1940
- }
1941
- return 1;
1942
- }
1943
-
1944
- #------------------------------------------------------------------------------
1945
- # Write VRD data record as a block
1946
- # Inputs: 0) ExifTool object ref, 1) dirInfo ref, 2) tag table ref
1947
- # Returns: VRD data block (may be empty if no VRD data)
1948
- # Notes: Increments ExifTool CHANGED flag if changed
1949
- sub WriteCanonVRD($$;$)
1950
- {
1951
- my ($et, $dirInfo, $tagTablePtr) = @_;
1952
- $et or return 1; # allow dummy access
1953
- my $nvHash = $et->GetNewValueHash($Image::ExifTool::Extra{CanonVRD});
1954
- my $val = $et->GetNewValue($nvHash);
1955
- $val = '' unless defined $val;
1956
- return undef unless $et->IsOverwriting($nvHash, $val);
1957
- ++$$et{CHANGED};
1958
- return $val;
1959
- }
1960
-
1961
- #------------------------------------------------------------------------------
1962
- # Read/write CanonVRD information (from VRD file or VRD trailer)
1963
- # Inputs: 0) ExifTool object reference, 1) dirInfo reference
1964
- # Returns: 1 on success, 0 not valid VRD, or -1 error writing
1965
- # - updates DataPos to point to start of CanonVRD information
1966
- # - updates DirLen to existing trailer length
1967
- sub ProcessCanonVRD($$;$)
1968
- {
1969
- my ($et, $dirInfo, $tagTablePtr) = @_;
1970
- my $raf = $$dirInfo{RAF};
1971
- my $offset = $$dirInfo{Offset} || 0;
1972
- my $outfile = $$dirInfo{OutFile};
1973
- my $dataPt = $$dirInfo{DataPt};
1974
- my $verbose = $et->Options('Verbose');
1975
- my $out = $et->Options('TextOut');
1976
- my ($buff, $created, $err, $blockLen, $blockType, %didDir, $fromFile);
1977
- #
1978
- # The CanonVRD trailer has a 0x1c-byte header and a 0x40-byte footer,
1979
- # each beginning with "CANON OPTIONAL DATA\0" and containing an int32u
1980
- # giving the size of the contained data (at byte 0x18 and 0x14 respectively)
1981
- #
1982
- if ($raf) {
1983
- $fromFile = 1;
1984
- } else {
1985
- unless ($dataPt) {
1986
- return 1 unless $outfile;
1987
- # create blank VRD data from scratch
1988
- my $blank = $blankHeader . $blankFooter;
1989
- $dataPt = \$blank;
1990
- $verbose and print $out " Creating CanonVRD trailer\n";
1991
- $created = 1;
1992
- }
1993
- $raf = new File::RandomAccess($dataPt);
1994
- }
1995
- # read and validate the footer
1996
- $raf->Seek(-0x40-$offset, 2) or return 0;
1997
- $raf->Read($buff, 0x40) == 0x40 or return 0;
1998
- $buff =~ /^CANON OPTIONAL DATA\0(.{4})/s or return 0;
1999
- my $dirLen = unpack('N', $1) + 0x5c; # size including header+footer
2000
-
2001
- # read and validate the header
2002
- unless ($dirLen < 0x80000000 and
2003
- $raf->Seek(-$dirLen, 1) and
2004
- $raf->Read($buff, 0x1c) == 0x1c and
2005
- $buff =~ /^CANON OPTIONAL DATA\0/ and
2006
- $raf->Seek(-0x1c, 1))
2007
- {
2008
- $et->Warn('Bad CanonVRD trailer');
2009
- return 0;
2010
- }
2011
- # set variables returned in dirInfo hash
2012
- $$dirInfo{DataPos} = $raf->Tell();
2013
- $$dirInfo{DirLen} = $dirLen;
2014
-
2015
- if ($outfile and ref $outfile eq 'SCALAR' and not length $$outfile) {
2016
- # write directly to outfile to avoid duplicating data in memory
2017
- $$outfile = $$dataPt unless $fromFile;
2018
- # TRICKY! -- copy to outfile memory buffer and edit in place
2019
- # (so we must disable all Write() calls for this case)
2020
- $dataPt = $outfile;
2021
- }
2022
- if ($fromFile) {
2023
- $dataPt = \$buff unless $dataPt;
2024
- # read VRD data into memory if necessary
2025
- unless ($raf->Read($$dataPt, $dirLen) == $dirLen) {
2026
- $$dataPt = '' if $outfile and $outfile eq $dataPt;
2027
- $et->Warn('Error reading CanonVRD data');
2028
- return 0;
2029
- }
2030
- }
2031
- # exit quickly if writing and no CanonVRD tags are being edited
2032
- if ($outfile and not exists $$et{EDIT_DIRS}{CanonVRD}) {
2033
- print $out "$$et{INDENT} [nothing changed]\n" if $verbose;
2034
- return 1 if $outfile eq $dataPt;
2035
- return Write($outfile, $$dataPt) ? 1 : -1;
2036
- }
2037
-
2038
- my $vrdType = 'VRD';
2039
-
2040
- if ($outfile) {
2041
- $verbose and not $created and print $out " Rewriting CanonVRD trailer\n";
2042
- # delete CanonVRD information if specified
2043
- my $doDel = $$et{DEL_GROUP}{CanonVRD};
2044
- unless ($doDel) {
2045
- $doDel = 1 if $$et{DEL_GROUP}{Trailer} and $$et{FILE_TYPE} ne 'VRD';
2046
- unless ($doDel) {
2047
- # also delete if writing as a block (will get added back again later)
2048
- if ($$et{NEW_VALUE}{$Image::ExifTool::Extra{CanonVRD}}) {
2049
- # delete if this isn't version 4
2050
- $doDel = 1 unless $$dataPt =~ /^.{28}\xff\xff\0\xf7/s;
2051
- }
2052
- if ($$et{NEW_VALUE}{$Image::ExifTool::Extra{CanonDR4}} and not $doDel) {
2053
- # delete if this is version 4
2054
- $doDel = 1 if $$dataPt =~ /^.{28}\xff\xff\0\xf7/s;
2055
- }
2056
- }
2057
- }
2058
- if ($doDel) {
2059
- if ($$et{FILE_TYPE} eq 'VRD') {
2060
- my $newVal = $et->GetNewValue('CanonVRD');
2061
- if ($newVal) {
2062
- $verbose and print $out " Writing CanonVRD as a block\n";
2063
- if ($outfile eq $dataPt) {
2064
- $$outfile = $newVal;
2065
- } else {
2066
- Write($outfile, $newVal) or return -1;
2067
- }
2068
- $$et{DidCanonVRD} = 1;
2069
- ++$$et{CHANGED};
2070
- } else {
2071
- $et->Error("Can't delete all CanonVRD information from a VRD file");
2072
- }
2073
- } else {
2074
- $verbose and print $out " Deleting CanonVRD trailer\n";
2075
- $$outfile = '' if $outfile eq $dataPt;
2076
- ++$$et{CHANGED};
2077
- }
2078
- return 1;
2079
- }
2080
- # write now and return if CanonVRD was set as a block
2081
- my $val = $et->GetNewValue('CanonVRD');
2082
- unless ($val) {
2083
- $val = $et->GetNewValue('CanonDR4');
2084
- $vrdType = 'DR4' if $val;
2085
- }
2086
- if ($val) {
2087
- $verbose and print $out " Writing Canon$vrdType as a block\n";
2088
- # must wrap DR4 data with the VRD header/footer and edit record
2089
- $val = WrapDR4($val) if $vrdType eq 'DR4';
2090
- if ($outfile eq $dataPt) {
2091
- $$outfile = $val;
2092
- } else {
2093
- Write($outfile, $val) or return -1;
2094
- }
2095
- $$et{DidCanonVRD} = 1;
2096
- ++$$et{CHANGED};
2097
- return 1;
2098
- }
2099
- } elsif ($verbose or $$et{HTML_DUMP}) {
2100
- $et->DumpTrailer($dirInfo) if $$dirInfo{RAF};
2101
- }
2102
-
2103
- $tagTablePtr = GetTagTable('Image::ExifTool::CanonVRD::Main');
2104
-
2105
- # validate VRD trailer and get position and length of edit record
2106
- SetByteOrder('MM'); # VRD header/footer is big-endian
2107
- my $pos = 0x1c; # start at end of header
2108
-
2109
- # loop through the VRD blocks
2110
- for (;;) {
2111
- my $end = $dirLen - 0x40; # end of last VRD block (and start of footer)
2112
- if ($pos + 8 > $end) {
2113
- last if $pos == $end;
2114
- $blockLen = $end; # mark as invalid
2115
- } else {
2116
- $blockType = Get32u($dataPt, $pos);
2117
- $blockLen = Get32u($dataPt, $pos + 4);
2118
- }
2119
- $vrdType = 'DR4' if $blockType eq 0xffff00f7;
2120
- $pos += 8; # move to start of block
2121
- if ($pos + $blockLen > $end) {
2122
- $et->Warn('Possibly corrupt CanonVRD block');
2123
- last;
2124
- }
2125
- if ($verbose > 1 and not $outfile) {
2126
- printf $out " CanonVRD block 0x%.8x ($blockLen bytes at offset 0x%x)\n",
2127
- $blockType, $pos + $$dirInfo{DataPos};
2128
- if ($verbose > 2) {
2129
- my %parms = (
2130
- Start => $pos,
2131
- Addr => $pos + $$dirInfo{DataPos},
2132
- Out => $out,
2133
- Prefix => $$et{INDENT},
2134
- );
2135
- $parms{MaxLen} = $verbose == 3 ? 96 : 2048 if $verbose < 5;
2136
- HexDump($dataPt, $blockLen, %parms);
2137
- }
2138
- }
2139
- my $tagInfo = $$tagTablePtr{$blockType};
2140
- unless ($tagInfo) {
2141
- unless ($et->Options('Unknown')) {
2142
- $pos += $blockLen; # step to next block
2143
- next;
2144
- }
2145
- my $name = sprintf('CanonVRD_0x%.8x', $blockType);
2146
- my $desc = $name;
2147
- $desc =~ tr/_/ /;
2148
- $tagInfo = {
2149
- Name => $name,
2150
- Description => $desc,
2151
- Binary => 1,
2152
- };
2153
- AddTagToTable($tagTablePtr, $blockType, $tagInfo);
2154
- }
2155
- if ($$tagInfo{SubDirectory}) {
2156
- my $subTablePtr = GetTagTable($$tagInfo{SubDirectory}{TagTable});
2157
- my %subdirInfo = (
2158
- DataPt => $dataPt,
2159
- DataLen => length $$dataPt,
2160
- DataPos => $$dirInfo{DataPos},
2161
- DirStart => $pos,
2162
- DirLen => $blockLen,
2163
- DirName => $$tagInfo{Name},
2164
- Parent => 'CanonVRD',
2165
- OutFile => $outfile,
2166
- );
2167
- if ($outfile) {
2168
- # set flag indicating we did this directory
2169
- $didDir{$$tagInfo{Name}} = 1;
2170
- my ($dat, $diff);
2171
- if ($$et{NEW_VALUE}{$tagInfo}) {
2172
- # write as a block
2173
- $et->VPrint(0, "Writing $$tagInfo{Name} as a block\n");
2174
- $dat = $et->GetNewValue($tagInfo);
2175
- $dat = '' unless defined $dat;
2176
- ++$$et{CHANGED};
2177
- } else {
2178
- $dat = $et->WriteDirectory(\%subdirInfo, $subTablePtr);
2179
- }
2180
- # update data with new directory
2181
- if (defined $dat) {
2182
- if (length $dat or $$et{FILE_TYPE} !~ /^(CRW|VRD)$/) {
2183
- # replace with new block (updating the block length word)
2184
- substr($$dataPt, $pos-4, $blockLen+4) = Set32u(length $dat) . $dat;
2185
- } else {
2186
- # remove block totally (CRW/VRD files only)
2187
- substr($$dataPt, $pos-8, $blockLen+8) = '';
2188
- }
2189
- # make necessary adjustments if block changes length
2190
- if (($diff = length($$dataPt) - $dirLen) != 0) {
2191
- $pos += $diff;
2192
- $dirLen += $diff;
2193
- # update the new VRD length in the header/footer
2194
- Set32u($dirLen - 0x5c, $dataPt, 0x18);
2195
- Set32u($dirLen - 0x5c, $dataPt, $dirLen - 0x2c);
2196
- }
2197
- }
2198
- } else {
2199
- # extract as a block if requested
2200
- $et->ProcessDirectory(\%subdirInfo, $subTablePtr);
2201
- }
2202
- } else {
2203
- $et->HandleTag($tagTablePtr, $blockType, substr($$dataPt, $pos, $blockLen));
2204
- }
2205
- $pos += $blockLen; # step to next block
2206
- }
2207
- if ($outfile) {
2208
- # create XMP block if necessary (CRW/VRD files only)
2209
- if ($$et{ADD_DIRS}{CanonVRD} and not $didDir{XMP}) {
2210
- my $subTablePtr = GetTagTable('Image::ExifTool::XMP::Main');
2211
- my $dat = $et->WriteDirectory({ Parent => 'CanonVRD' }, $subTablePtr);
2212
- if ($dat) {
2213
- my $blockLen = length $dat;
2214
- substr($$dataPt, -0x40, 0) = Set32u(0xffff00f6) . Set32u(length $dat) . $dat;
2215
- $dirLen = length $$dataPt;
2216
- # update the new VRD length in the header/footer
2217
- Set32u($dirLen - 0x5c, $dataPt, 0x18);
2218
- Set32u($dirLen - 0x5c, $dataPt, $dirLen - 0x2c);
2219
- }
2220
- }
2221
- # write CanonVRD trailer unless it is empty
2222
- if (length $$dataPt) {
2223
- Write($outfile, $$dataPt) or $err = 1 unless $outfile eq $dataPt;
2224
- } else {
2225
- $verbose and print $out " Deleting CanonVRD trailer\n";
2226
- }
2227
- } elsif ($vrdType eq 'VRD' and (($$et{TAGS_FROM_FILE} and
2228
- not $$et{EXCL_TAG_LOOKUP}{canonvrd}) or $$et{REQ_TAG_LOOKUP}{canonvrd}))
2229
- {
2230
- # extract CanonVRD block if copying tags, or if requested (and not DR4 info)
2231
- $et->FoundTag('CanonVRD', $buff);
2232
- }
2233
- undef $buff;
2234
- return $err ? -1 : 1;
2235
- }
2236
-
2237
- 1; # end
2238
-
2239
- __END__
2240
-
2241
- =head1 NAME
2242
-
2243
- Image::ExifTool::CanonVRD - Read/write Canon VRD and DR4 information
2244
-
2245
- =head1 SYNOPSIS
2246
-
2247
- This module is used by Image::ExifTool
2248
-
2249
- =head1 DESCRIPTION
2250
-
2251
- This module contains definitions required by Image::ExifTool to read and
2252
- write VRD and DR4 Recipe Data information as written by the Canon Digital
2253
- Photo Professional software. This information is written to VRD and DR4
2254
- files, and as a trailer in JPEG, CRW, CR2 and TIFF images.
2255
-
2256
- =head1 AUTHOR
2257
-
2258
- Copyright 2003-2016, Phil Harvey (phil at owl.phy.queensu.ca)
2259
-
2260
- This library is free software; you can redistribute it and/or modify it
2261
- under the same terms as Perl itself.
2262
-
2263
- =head1 ACKNOWLEDGEMENTS
2264
-
2265
- Thanks to Bogdan and Gert Kello for decoding some tags.
2266
-
2267
- =head1 SEE ALSO
2268
-
2269
- L<Image::ExifTool::TagNames/CanonVRD Tags>,
2270
- L<Image::ExifTool(3pm)|Image::ExifTool>
2271
-
2272
- =cut
2273
-