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