mini_exiftool_vendored 8.9.7.v2 → 9.2.7.v1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1023) hide show
  1. checksums.yaml +7 -0
  2. data/lib/mini_exiftool_vendored.rb +1 -1
  3. data/lib/mini_exiftool_vendored/version.rb +2 -2
  4. data/mini_exiftool_vendored.gemspec +1 -1
  5. data/vendor/Image-ExifTool-9.27/Changes +6162 -0
  6. data/vendor/Image-ExifTool-9.27/MANIFEST +858 -0
  7. data/vendor/Image-ExifTool-9.27/META.yml +26 -0
  8. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/Makefile.PL +0 -0
  9. data/vendor/Image-ExifTool-9.27/README +227 -0
  10. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27/arg_files}/exif2iptc.args +0 -0
  11. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27/arg_files}/exif2xmp.args +0 -0
  12. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27/arg_files}/gps2xmp.args +0 -0
  13. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27/arg_files}/iptc2exif.args +0 -0
  14. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27/arg_files}/iptc2xmp.args +0 -0
  15. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27/arg_files}/iptcCore.args +0 -0
  16. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27/arg_files}/pdf2xmp.args +0 -0
  17. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27/arg_files}/xmp2exif.args +0 -0
  18. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27/arg_files}/xmp2gps.args +0 -0
  19. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27/arg_files}/xmp2iptc.args +0 -0
  20. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27/arg_files}/xmp2pdf.args +0 -0
  21. data/vendor/Image-ExifTool-9.27/config_files/ExifTool_config +299 -0
  22. data/vendor/Image-ExifTool-9.27/config_files/convert_regions.config +81 -0
  23. data/vendor/Image-ExifTool-9.27/exiftool +5655 -0
  24. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27/fmt_files}/gpx.fmt +0 -0
  25. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27/fmt_files}/gpx_wpt.fmt +0 -0
  26. data/vendor/Image-ExifTool-9.27/fmt_files/kml.fmt +53 -0
  27. data/vendor/Image-ExifTool-9.27/html/ExifTool.html +1951 -0
  28. data/vendor/Image-ExifTool-9.27/html/MIE1.1-20070121.pdf +0 -0
  29. data/vendor/Image-ExifTool-9.27/html/Shift.html +173 -0
  30. data/vendor/Image-ExifTool-9.27/html/TagNames/AFCP.html +49 -0
  31. data/vendor/Image-ExifTool-9.27/html/TagNames/AIFF.html +146 -0
  32. data/vendor/Image-ExifTool-9.27/html/TagNames/APE.html +149 -0
  33. data/vendor/Image-ExifTool-9.27/html/TagNames/APP12.html +188 -0
  34. data/vendor/Image-ExifTool-9.27/html/TagNames/ASF.html +1075 -0
  35. data/vendor/Image-ExifTool-9.27/html/TagNames/BMP.html +110 -0
  36. data/vendor/Image-ExifTool-9.27/html/TagNames/Canon.html +8021 -0
  37. data/vendor/Image-ExifTool-9.27/html/TagNames/CanonCustom.html +2044 -0
  38. data/vendor/Image-ExifTool-9.27/html/TagNames/CanonRaw.html +561 -0
  39. data/vendor/Image-ExifTool-9.27/html/TagNames/CanonVRD.html +1222 -0
  40. data/vendor/Image-ExifTool-9.27/html/TagNames/Casio.html +1569 -0
  41. data/vendor/Image-ExifTool-9.27/html/TagNames/Composite.html +659 -0
  42. data/vendor/Image-ExifTool-9.27/html/TagNames/DICOM.html +15762 -0
  43. data/vendor/Image-ExifTool-9.27/html/TagNames/DNG.html +273 -0
  44. data/vendor/Image-ExifTool-9.27/html/TagNames/DV.html +75 -0
  45. data/vendor/Image-ExifTool-9.27/html/TagNames/DarwinCore.html +1445 -0
  46. data/vendor/Image-ExifTool-9.27/html/TagNames/DjVu.html +312 -0
  47. data/vendor/Image-ExifTool-9.27/html/TagNames/EXE.html +697 -0
  48. data/vendor/Image-ExifTool-9.27/html/TagNames/EXIF.html +3244 -0
  49. data/vendor/Image-ExifTool-9.27/html/TagNames/Extra.html +300 -0
  50. data/vendor/Image-ExifTool-9.27/html/TagNames/FLAC.html +183 -0
  51. data/vendor/Image-ExifTool-9.27/html/TagNames/FLIR.html +615 -0
  52. data/vendor/Image-ExifTool-9.27/html/TagNames/Flash.html +419 -0
  53. data/vendor/Image-ExifTool-9.27/html/TagNames/FlashPix.html +1435 -0
  54. data/vendor/Image-ExifTool-9.27/html/TagNames/Font.html +485 -0
  55. data/vendor/Image-ExifTool-9.27/html/TagNames/FotoStation.html +103 -0
  56. data/vendor/Image-ExifTool-9.27/html/TagNames/FujiFilm.html +636 -0
  57. data/vendor/Image-ExifTool-9.27/html/TagNames/GE.html +40 -0
  58. data/vendor/Image-ExifTool-9.27/html/TagNames/GIF.html +116 -0
  59. data/vendor/Image-ExifTool-9.27/html/TagNames/GIMP.html +140 -0
  60. data/vendor/Image-ExifTool-9.27/html/TagNames/GPS.html +221 -0
  61. data/vendor/Image-ExifTool-9.27/html/TagNames/GeoTiff.html +2177 -0
  62. data/vendor/Image-ExifTool-9.27/html/TagNames/H264.html +387 -0
  63. data/vendor/Image-ExifTool-9.27/html/TagNames/HP.html +155 -0
  64. data/vendor/Image-ExifTool-9.27/html/TagNames/HTML.html +666 -0
  65. data/vendor/Image-ExifTool-9.27/html/TagNames/ICC_Profile.html +710 -0
  66. data/vendor/Image-ExifTool-9.27/html/TagNames/ID3.html +1429 -0
  67. data/vendor/Image-ExifTool-9.27/html/TagNames/IPTC.html +895 -0
  68. data/vendor/Image-ExifTool-9.27/html/TagNames/ITC.html +90 -0
  69. data/vendor/Image-ExifTool-9.27/html/TagNames/JFIF.html +61 -0
  70. data/vendor/Image-ExifTool-9.27/html/TagNames/JPEG.html +523 -0
  71. data/vendor/Image-ExifTool-9.27/html/TagNames/JVC.html +56 -0
  72. data/vendor/Image-ExifTool-9.27/html/TagNames/Jpeg2000.html +464 -0
  73. data/vendor/Image-ExifTool-9.27/html/TagNames/Kodak.html +1759 -0
  74. data/vendor/Image-ExifTool-9.27/html/TagNames/KyoceraRaw.html +92 -0
  75. data/vendor/Image-ExifTool-9.27/html/TagNames/LNK.html +478 -0
  76. data/vendor/Image-ExifTool-9.27/html/TagNames/Leaf.html +870 -0
  77. data/vendor/Image-ExifTool-9.27/html/TagNames/M2TS.html +133 -0
  78. data/vendor/Image-ExifTool-9.27/html/TagNames/MIE.html +1026 -0
  79. data/vendor/Image-ExifTool-9.27/html/TagNames/MIFF.html +196 -0
  80. data/vendor/Image-ExifTool-9.27/html/TagNames/MNG.html +847 -0
  81. data/vendor/Image-ExifTool-9.27/html/TagNames/MPC.html +97 -0
  82. data/vendor/Image-ExifTool-9.27/html/TagNames/MPEG.html +249 -0
  83. data/vendor/Image-ExifTool-9.27/html/TagNames/MPF.html +199 -0
  84. data/vendor/Image-ExifTool-9.27/html/TagNames/MWG.html +519 -0
  85. data/vendor/Image-ExifTool-9.27/html/TagNames/MXF.html +6673 -0
  86. data/vendor/Image-ExifTool-9.27/html/TagNames/Matroska.html +1069 -0
  87. data/vendor/Image-ExifTool-9.27/html/TagNames/Microsoft.html +2066 -0
  88. data/vendor/Image-ExifTool-9.27/html/TagNames/Minolta.html +2550 -0
  89. data/vendor/Image-ExifTool-9.27/html/TagNames/MinoltaRaw.html +326 -0
  90. data/vendor/Image-ExifTool-9.27/html/TagNames/Nikon.html +4453 -0
  91. data/vendor/Image-ExifTool-9.27/html/TagNames/NikonCapture.html +776 -0
  92. data/vendor/Image-ExifTool-9.27/html/TagNames/NikonCustom.html +3835 -0
  93. data/vendor/Image-ExifTool-9.27/html/TagNames/OOXML.html +280 -0
  94. data/vendor/Image-ExifTool-9.27/html/TagNames/Ogg.html +44 -0
  95. data/vendor/Image-ExifTool-9.27/html/TagNames/Olympus.html +3331 -0
  96. data/vendor/Image-ExifTool-9.27/html/TagNames/OpenEXR.html +222 -0
  97. data/vendor/Image-ExifTool-9.27/html/TagNames/PDF.html +745 -0
  98. data/vendor/Image-ExifTool-9.27/html/TagNames/PGF.html +80 -0
  99. data/vendor/Image-ExifTool-9.27/html/TagNames/PICT.html +753 -0
  100. data/vendor/Image-ExifTool-9.27/html/TagNames/PLIST.html +86 -0
  101. data/vendor/Image-ExifTool-9.27/html/TagNames/PNG.html +515 -0
  102. data/vendor/Image-ExifTool-9.27/html/TagNames/PSP.html +160 -0
  103. data/vendor/Image-ExifTool-9.27/html/TagNames/Panasonic.html +1359 -0
  104. data/vendor/Image-ExifTool-9.27/html/TagNames/PanasonicRaw.html +214 -0
  105. data/vendor/Image-ExifTool-9.27/html/TagNames/Pentax.html +4329 -0
  106. data/vendor/Image-ExifTool-9.27/html/TagNames/PhaseOne.html +258 -0
  107. data/vendor/Image-ExifTool-9.27/html/TagNames/PhotoCD.html +402 -0
  108. data/vendor/Image-ExifTool-9.27/html/TagNames/PhotoMechanic.html +196 -0
  109. data/vendor/Image-ExifTool-9.27/html/TagNames/Photoshop.html +460 -0
  110. data/vendor/Image-ExifTool-9.27/html/TagNames/PostScript.html +125 -0
  111. data/vendor/Image-ExifTool-9.27/html/TagNames/PrintIM.html +31 -0
  112. data/vendor/Image-ExifTool-9.27/html/TagNames/Qualcomm.html +4778 -0
  113. data/vendor/Image-ExifTool-9.27/html/TagNames/QuickTime.html +2967 -0
  114. data/vendor/Image-ExifTool-9.27/html/TagNames/RIFF.html +1164 -0
  115. data/vendor/Image-ExifTool-9.27/html/TagNames/RSRC.html +74 -0
  116. data/vendor/Image-ExifTool-9.27/html/TagNames/RTF.html +150 -0
  117. data/vendor/Image-ExifTool-9.27/html/TagNames/Radiance.html +87 -0
  118. data/vendor/Image-ExifTool-9.27/html/TagNames/Rawzor.html +45 -0
  119. data/vendor/Image-ExifTool-9.27/html/TagNames/Real.html +780 -0
  120. data/vendor/Image-ExifTool-9.27/html/TagNames/Reconyx.html +132 -0
  121. data/vendor/Image-ExifTool-9.27/html/TagNames/Ricoh.html +456 -0
  122. data/vendor/Image-ExifTool-9.27/html/TagNames/Samsung.html +377 -0
  123. data/vendor/Image-ExifTool-9.27/html/TagNames/Sanyo.html +366 -0
  124. data/vendor/Image-ExifTool-9.27/html/TagNames/Shortcuts.html +237 -0
  125. data/vendor/Image-ExifTool-9.27/html/TagNames/Sigma.html +372 -0
  126. data/vendor/Image-ExifTool-9.27/html/TagNames/SigmaRaw.html +403 -0
  127. data/vendor/Image-ExifTool-9.27/html/TagNames/Sony.html +4052 -0
  128. data/vendor/Image-ExifTool-9.27/html/TagNames/SonyIDC.html +267 -0
  129. data/vendor/Image-ExifTool-9.27/html/TagNames/Stim.html +200 -0
  130. data/vendor/Image-ExifTool-9.27/html/TagNames/Theora.html +102 -0
  131. data/vendor/Image-ExifTool-9.27/html/TagNames/Unknown.html +31 -0
  132. data/vendor/Image-ExifTool-9.27/html/TagNames/Vorbis.html +228 -0
  133. data/vendor/Image-ExifTool-9.27/html/TagNames/XMP.html +7188 -0
  134. data/vendor/Image-ExifTool-9.27/html/TagNames/ZIP.html +204 -0
  135. data/vendor/Image-ExifTool-9.27/html/TagNames/iWork.html +49 -0
  136. data/vendor/Image-ExifTool-9.27/html/TagNames/index.html +192 -0
  137. data/vendor/Image-ExifTool-9.27/html/TagNames/style.css +31 -0
  138. data/vendor/Image-ExifTool-9.27/html/ancient_history.html +6564 -0
  139. data/vendor/Image-ExifTool-9.27/html/canon_raw.html +366 -0
  140. data/vendor/Image-ExifTool-9.27/html/commentary.html +319 -0
  141. data/vendor/Image-ExifTool-9.27/html/config.html +312 -0
  142. data/vendor/Image-ExifTool-9.27/html/data_members.html +264 -0
  143. data/vendor/Image-ExifTool-9.27/html/exiftool_pod.html +2325 -0
  144. data/vendor/Image-ExifTool-9.27/html/faq.html +1427 -0
  145. data/vendor/Image-ExifTool-9.27/html/filename.html +281 -0
  146. data/vendor/Image-ExifTool-9.27/html/geotag.html +642 -0
  147. data/vendor/Image-ExifTool-9.27/html/history.html +433 -0
  148. data/vendor/Image-ExifTool-9.27/html/htmldump.html +732 -0
  149. data/vendor/Image-ExifTool-9.27/html/idiosyncracies.html +251 -0
  150. data/vendor/Image-ExifTool-9.27/html/index.html +1266 -0
  151. data/vendor/Image-ExifTool-9.27/html/install.html +239 -0
  152. data/vendor/Image-ExifTool-9.27/html/metafiles.html +266 -0
  153. data/vendor/Image-ExifTool-9.27/html/overview.png +0 -0
  154. data/vendor/Image-ExifTool-9.27/html/standards.html +277 -0
  155. data/vendor/Image-ExifTool-9.27/html/struct.html +342 -0
  156. data/vendor/Image-ExifTool-9.27/html/style.css +31 -0
  157. data/vendor/Image-ExifTool-9.27/html/under.html +120 -0
  158. data/vendor/Image-ExifTool-9.27/html/verbose.html +195 -0
  159. data/vendor/Image-ExifTool-9.27/html/writing.html +239 -0
  160. data/vendor/Image-ExifTool-9.27/lib/File/RandomAccess.pm +378 -0
  161. data/vendor/Image-ExifTool-9.27/lib/File/RandomAccess.pod +231 -0
  162. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool.pm +6811 -0
  163. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool.pod +2353 -0
  164. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/AES.pm +501 -0
  165. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/AFCP.pm +280 -0
  166. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/AIFF.pm +271 -0
  167. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/APE.pm +262 -0
  168. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/APP12.pm +322 -0
  169. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/ASF.pm +871 -0
  170. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/BMP.pm +179 -0
  171. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/BZZ.pm +472 -0
  172. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/BigTIFF.pm +282 -0
  173. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/BuildTagLookup.pm +2391 -0
  174. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Canon.pm +7736 -0
  175. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/CanonCustom.pm +2523 -0
  176. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/CanonRaw.pm +931 -0
  177. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/CanonVRD.pm +1481 -0
  178. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/CaptureOne.pm +235 -0
  179. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Casio.pm +2013 -0
  180. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Charset.pm +396 -0
  181. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/Arabic.pm +0 -0
  182. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/Baltic.pm +0 -0
  183. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/Cyrillic.pm +0 -0
  184. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/Greek.pm +0 -0
  185. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/Hebrew.pm +0 -0
  186. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/JIS.pm +0 -0
  187. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/Latin.pm +0 -0
  188. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/Latin2.pm +0 -0
  189. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/MacArabic.pm +0 -0
  190. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/MacChineseCN.pm +0 -0
  191. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/MacChineseTW.pm +0 -0
  192. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/MacCroatian.pm +0 -0
  193. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/MacCyrillic.pm +0 -0
  194. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/MacGreek.pm +0 -0
  195. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/MacHebrew.pm +0 -0
  196. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/MacIceland.pm +0 -0
  197. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/MacJapanese.pm +0 -0
  198. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/MacKorean.pm +0 -0
  199. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/MacLatin2.pm +0 -0
  200. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/MacRSymbol.pm +0 -0
  201. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/MacRoman.pm +0 -0
  202. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/MacRomanian.pm +0 -0
  203. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/MacThai.pm +0 -0
  204. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/MacTurkish.pm +0 -0
  205. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/PDFDoc.pm +0 -0
  206. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/ShiftJIS.pm +0 -0
  207. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/Symbol.pm +0 -0
  208. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/Thai.pm +0 -0
  209. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/Turkish.pm +0 -0
  210. data/vendor/{Image-ExifTool-8.97 → Image-ExifTool-9.27}/lib/Image/ExifTool/Charset/Vietnam.pm +0 -0
  211. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/DICOM.pm +3835 -0
  212. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/DNG.pm +835 -0
  213. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/DV.pm +319 -0
  214. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/DarwinCore.pm +317 -0
  215. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/DjVu.pm +373 -0
  216. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/EXE.pm +1228 -0
  217. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Exif.pm +4526 -0
  218. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/FLAC.pm +296 -0
  219. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/FLIR.pm +672 -0
  220. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Fixup.pm +354 -0
  221. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Flash.pm +755 -0
  222. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/FlashPix.pm +1882 -0
  223. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Font.pm +643 -0
  224. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/FotoStation.pm +258 -0
  225. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/FujiFilm.pm +1019 -0
  226. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/GE.pm +80 -0
  227. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/GIF.pm +542 -0
  228. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/GIMP.pm +258 -0
  229. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/GPS.pm +511 -0
  230. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/GeoTiff.pm +2187 -0
  231. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Geotag.pm +1173 -0
  232. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/H264.pm +1097 -0
  233. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/HP.pm +262 -0
  234. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/HTML.pm +576 -0
  235. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/HtmlDump.pm +895 -0
  236. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/ICC_Profile.pm +999 -0
  237. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/ID3.pm +1486 -0
  238. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/IPTC.pm +1244 -0
  239. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/ITC.pm +215 -0
  240. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Import.pm +308 -0
  241. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/InDesign.pm +277 -0
  242. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/JPEG.pm +588 -0
  243. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/JPEGDigest.pm +2511 -0
  244. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/JVC.pm +130 -0
  245. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Jpeg2000.pm +881 -0
  246. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Kodak.pm +2014 -0
  247. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/KyoceraRaw.pm +173 -0
  248. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/LNK.pm +723 -0
  249. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Lang/cs.pm +1586 -0
  250. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Lang/de.pm +7356 -0
  251. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Lang/en_ca.pm +557 -0
  252. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Lang/en_gb.pm +572 -0
  253. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Lang/es.pm +4016 -0
  254. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Lang/fi.pm +2856 -0
  255. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Lang/fr.pm +4720 -0
  256. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Lang/it.pm +7917 -0
  257. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Lang/ja.pm +5815 -0
  258. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Lang/ko.pm +2332 -0
  259. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Lang/nl.pm +3220 -0
  260. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Lang/pl.pm +1140 -0
  261. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Lang/ru.pm +769 -0
  262. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Lang/sv.pm +639 -0
  263. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Lang/tr.pm +544 -0
  264. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Lang/zh_cn.pm +1329 -0
  265. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Lang/zh_tw.pm +802 -0
  266. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Leaf.pm +515 -0
  267. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/M2TS.pm +729 -0
  268. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/MIE.pm +2561 -0
  269. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/MIEUnits.pod +377 -0
  270. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/MIFF.pm +279 -0
  271. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/MNG.pm +684 -0
  272. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/MPC.pm +156 -0
  273. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/MPEG.pm +736 -0
  274. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/MPF.pm +289 -0
  275. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/MWG.pm +736 -0
  276. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/MXF.pm +3032 -0
  277. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/MakerNotes.pm +1569 -0
  278. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Matroska.pm +891 -0
  279. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Microsoft.pm +879 -0
  280. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Minolta.pm +2823 -0
  281. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/MinoltaRaw.pm +534 -0
  282. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Nikon.pm +6105 -0
  283. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/NikonCapture.pm +911 -0
  284. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/NikonCustom.pm +4405 -0
  285. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/OOXML.pm +409 -0
  286. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Ogg.pm +237 -0
  287. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Olympus.pm +3540 -0
  288. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/OpenEXR.pm +324 -0
  289. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/PDF.pm +2327 -0
  290. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/PGF.pm +143 -0
  291. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/PICT.pm +1260 -0
  292. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/PLIST.pm +449 -0
  293. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/PNG.pm +1100 -0
  294. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/PPM.pm +169 -0
  295. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/PSP.pm +305 -0
  296. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Panasonic.pm +1921 -0
  297. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/PanasonicRaw.pm +535 -0
  298. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Pentax.pm +5486 -0
  299. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/PhaseOne.pm +557 -0
  300. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/PhotoCD.pm +507 -0
  301. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/PhotoMechanic.pm +256 -0
  302. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Photoshop.pm +597 -0
  303. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/PostScript.pm +693 -0
  304. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/PrintIM.pm +125 -0
  305. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Qualcomm.pm +1344 -0
  306. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/QuickTime.pm +3316 -0
  307. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/README +943 -0
  308. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/RIFF.pm +1322 -0
  309. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/RSRC.pm +241 -0
  310. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/RTF.pm +383 -0
  311. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Radiance.pm +144 -0
  312. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Rawzor.pm +190 -0
  313. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Real.pm +736 -0
  314. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Reconyx.pm +190 -0
  315. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Ricoh.pm +740 -0
  316. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Samsung.pm +769 -0
  317. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Sanyo.pm +439 -0
  318. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Shift.pl +594 -0
  319. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Shortcuts.pm +291 -0
  320. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Sigma.pm +574 -0
  321. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/SigmaRaw.pm +649 -0
  322. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Sony.pm +5388 -0
  323. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/SonyIDC.pm +330 -0
  324. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Stim.pm +196 -0
  325. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/TagInfoXML.pm +792 -0
  326. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/TagLookup.pm +7911 -0
  327. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/TagNames.pod +25645 -0
  328. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Theora.pm +145 -0
  329. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Unknown.pm +66 -0
  330. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Vorbis.pm +237 -0
  331. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/WriteCanonRaw.pl +637 -0
  332. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/WriteExif.pl +3674 -0
  333. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/WriteIPTC.pl +702 -0
  334. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/WritePDF.pl +759 -0
  335. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/WritePNG.pl +330 -0
  336. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/WritePhotoshop.pl +266 -0
  337. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/WritePostScript.pl +777 -0
  338. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/WriteXMP.pl +1318 -0
  339. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/Writer.pl +5755 -0
  340. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/XMP.pm +3535 -0
  341. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/XMP2.pl +1298 -0
  342. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/XMPStruct.pl +813 -0
  343. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/ZIP.pm +623 -0
  344. data/vendor/Image-ExifTool-9.27/lib/Image/ExifTool/iWork.pm +223 -0
  345. data/vendor/Image-ExifTool-9.27/perl-Image-ExifTool.spec +104 -0
  346. data/vendor/Image-ExifTool-9.27/t/AFCP.t +44 -0
  347. data/vendor/Image-ExifTool-9.27/t/AFCP_2.out +37 -0
  348. data/vendor/Image-ExifTool-9.27/t/AFCP_3.out +20 -0
  349. data/vendor/Image-ExifTool-9.27/t/AIFF.t +28 -0
  350. data/vendor/Image-ExifTool-9.27/t/AIFF_2.out +31 -0
  351. data/vendor/Image-ExifTool-9.27/t/APE.t +38 -0
  352. data/vendor/Image-ExifTool-9.27/t/APE_2.out +28 -0
  353. data/vendor/Image-ExifTool-9.27/t/APE_3.out +57 -0
  354. data/vendor/Image-ExifTool-9.27/t/ASF.t +28 -0
  355. data/vendor/Image-ExifTool-9.27/t/ASF_2.out +48 -0
  356. data/vendor/Image-ExifTool-9.27/t/BMP.t +28 -0
  357. data/vendor/Image-ExifTool-9.27/t/BMP_2.out +21 -0
  358. data/vendor/Image-ExifTool-9.27/t/BigTIFF.t +28 -0
  359. data/vendor/Image-ExifTool-9.27/t/BigTIFF_2.out +19 -0
  360. data/vendor/Image-ExifTool-9.27/t/Canon.t +41 -0
  361. data/vendor/Image-ExifTool-9.27/t/CanonRaw.t +126 -0
  362. data/vendor/Image-ExifTool-9.27/t/CanonRaw_2.out +165 -0
  363. data/vendor/Image-ExifTool-9.27/t/CanonRaw_4.out +214 -0
  364. data/vendor/Image-ExifTool-9.27/t/CanonRaw_5.out +207 -0
  365. data/vendor/Image-ExifTool-9.27/t/CanonRaw_6.out +231 -0
  366. data/vendor/Image-ExifTool-9.27/t/CanonRaw_7.out +246 -0
  367. data/vendor/Image-ExifTool-9.27/t/CanonVRD.t +129 -0
  368. data/vendor/Image-ExifTool-9.27/t/CanonVRD_11.out +118 -0
  369. data/vendor/Image-ExifTool-9.27/t/CanonVRD_12.out +12 -0
  370. data/vendor/Image-ExifTool-9.27/t/CanonVRD_2.out +116 -0
  371. data/vendor/Image-ExifTool-9.27/t/CanonVRD_3.out +116 -0
  372. data/vendor/Image-ExifTool-9.27/t/CanonVRD_4.out +2 -0
  373. data/vendor/Image-ExifTool-9.27/t/CanonVRD_5.out +3 -0
  374. data/vendor/Image-ExifTool-9.27/t/CanonVRD_6.out +3 -0
  375. data/vendor/Image-ExifTool-9.27/t/CanonVRD_7.out +2 -0
  376. data/vendor/Image-ExifTool-9.27/t/CanonVRD_8.out +2 -0
  377. data/vendor/Image-ExifTool-9.27/t/CanonVRD_9.out +1 -0
  378. data/vendor/Image-ExifTool-9.27/t/Canon_2.out +350 -0
  379. data/vendor/Image-ExifTool-9.27/t/Canon_3.out +3 -0
  380. data/vendor/Image-ExifTool-9.27/t/Casio.t +54 -0
  381. data/vendor/Image-ExifTool-9.27/t/Casio_2.out +70 -0
  382. data/vendor/Image-ExifTool-9.27/t/Casio_3.out +100 -0
  383. data/vendor/Image-ExifTool-9.27/t/Casio_4.out +26 -0
  384. data/vendor/Image-ExifTool-9.27/t/Casio_5.out +78 -0
  385. data/vendor/Image-ExifTool-9.27/t/Casio_6.out +115 -0
  386. data/vendor/Image-ExifTool-9.27/t/DICOM.t +28 -0
  387. data/vendor/Image-ExifTool-9.27/t/DICOM_2.out +108 -0
  388. data/vendor/Image-ExifTool-9.27/t/DNG.t +39 -0
  389. data/vendor/Image-ExifTool-9.27/t/DNG_2.out +326 -0
  390. data/vendor/Image-ExifTool-9.27/t/DNG_3.out +4 -0
  391. data/vendor/Image-ExifTool-9.27/t/DV.t +27 -0
  392. data/vendor/Image-ExifTool-9.27/t/DV_2.out +24 -0
  393. data/vendor/Image-ExifTool-9.27/t/DjVu.t +28 -0
  394. data/vendor/Image-ExifTool-9.27/t/DjVu_2.out +44 -0
  395. data/vendor/Image-ExifTool-9.27/t/EXE.t +31 -0
  396. data/vendor/Image-ExifTool-9.27/t/EXE_2.out +40 -0
  397. data/vendor/Image-ExifTool-9.27/t/EXE_3.out +15 -0
  398. data/vendor/Image-ExifTool-9.27/t/EXE_4.out +14 -0
  399. data/vendor/Image-ExifTool-9.27/t/ExifTool.t +284 -0
  400. data/vendor/Image-ExifTool-9.27/t/ExifTool_16.out +180 -0
  401. data/vendor/Image-ExifTool-9.27/t/ExifTool_17.out +594 -0
  402. data/vendor/Image-ExifTool-9.27/t/ExifTool_2.out +399 -0
  403. data/vendor/Image-ExifTool-9.27/t/ExifTool_20.out +1 -0
  404. data/vendor/Image-ExifTool-9.27/t/ExifTool_21.out +1 -0
  405. data/vendor/Image-ExifTool-9.27/t/ExifTool_22.out +1 -0
  406. data/vendor/Image-ExifTool-9.27/t/ExifTool_23.out +6 -0
  407. data/vendor/Image-ExifTool-9.27/t/ExifTool_24.out +3 -0
  408. data/vendor/Image-ExifTool-9.27/t/ExifTool_25.out +13 -0
  409. data/vendor/Image-ExifTool-9.27/t/ExifTool_26.out +12 -0
  410. data/vendor/Image-ExifTool-9.27/t/ExifTool_3.out +87 -0
  411. data/vendor/Image-ExifTool-9.27/t/ExifTool_4.out +41 -0
  412. data/vendor/Image-ExifTool-9.27/t/ExifTool_5.out +6 -0
  413. data/vendor/Image-ExifTool-9.27/t/ExifTool_6.out +68 -0
  414. data/vendor/Image-ExifTool-9.27/t/ExifTool_7.out +125 -0
  415. data/vendor/Image-ExifTool-9.27/t/ExifTool_8.out +125 -0
  416. data/vendor/Image-ExifTool-9.27/t/ExifTool_9.out +33 -0
  417. data/vendor/Image-ExifTool-9.27/t/FLAC.t +37 -0
  418. data/vendor/Image-ExifTool-9.27/t/FLAC_2.out +25 -0
  419. data/vendor/Image-ExifTool-9.27/t/FLAC_3.out +19 -0
  420. data/vendor/Image-ExifTool-9.27/t/FLIR.t +30 -0
  421. data/vendor/Image-ExifTool-9.27/t/FLIR_2.out +93 -0
  422. data/vendor/Image-ExifTool-9.27/t/FLIR_3.out +47 -0
  423. data/vendor/Image-ExifTool-9.27/t/Flash.t +37 -0
  424. data/vendor/Image-ExifTool-9.27/t/FlashPix.t +30 -0
  425. data/vendor/Image-ExifTool-9.27/t/FlashPix_2.out +48 -0
  426. data/vendor/Image-ExifTool-9.27/t/Flash_2.out +20 -0
  427. data/vendor/Image-ExifTool-9.27/t/Flash_3.out +53 -0
  428. data/vendor/Image-ExifTool-9.27/t/Font.t +30 -0
  429. data/vendor/Image-ExifTool-9.27/t/Font_2.out +23 -0
  430. data/vendor/Image-ExifTool-9.27/t/Font_3.out +35 -0
  431. data/vendor/Image-ExifTool-9.27/t/Font_4.out +26 -0
  432. data/vendor/Image-ExifTool-9.27/t/Font_5.out +26 -0
  433. data/vendor/Image-ExifTool-9.27/t/Font_6.out +36 -0
  434. data/vendor/Image-ExifTool-9.27/t/Font_7.out +36 -0
  435. data/vendor/Image-ExifTool-9.27/t/FotoStation.t +38 -0
  436. data/vendor/Image-ExifTool-9.27/t/FotoStation_2.out +39 -0
  437. data/vendor/Image-ExifTool-9.27/t/FotoStation_3.out +3 -0
  438. data/vendor/Image-ExifTool-9.27/t/FujiFilm.t +78 -0
  439. data/vendor/Image-ExifTool-9.27/t/FujiFilm_2.out +87 -0
  440. data/vendor/Image-ExifTool-9.27/t/FujiFilm_3.out +88 -0
  441. data/vendor/Image-ExifTool-9.27/t/FujiFilm_4.out +117 -0
  442. data/vendor/Image-ExifTool-9.27/t/FujiFilm_5.out +1 -0
  443. data/vendor/Image-ExifTool-9.27/t/GE.t +46 -0
  444. data/vendor/Image-ExifTool-9.27/t/GE_2.out +84 -0
  445. data/vendor/Image-ExifTool-9.27/t/GE_3.out +84 -0
  446. data/vendor/Image-ExifTool-9.27/t/GIF.t +83 -0
  447. data/vendor/Image-ExifTool-9.27/t/GIF_2.out +40 -0
  448. data/vendor/Image-ExifTool-9.27/t/GIF_3.out +41 -0
  449. data/vendor/Image-ExifTool-9.27/t/GIF_4.out +16 -0
  450. data/vendor/Image-ExifTool-9.27/t/GIMP.t +27 -0
  451. data/vendor/Image-ExifTool-9.27/t/GIMP_2.out +63 -0
  452. data/vendor/Image-ExifTool-9.27/t/GPS.t +42 -0
  453. data/vendor/Image-ExifTool-9.27/t/GPS_2.out +94 -0
  454. data/vendor/Image-ExifTool-9.27/t/GPS_3.out +96 -0
  455. data/vendor/Image-ExifTool-9.27/t/GeoTiff.t +36 -0
  456. data/vendor/Image-ExifTool-9.27/t/GeoTiff_2.out +36 -0
  457. data/vendor/Image-ExifTool-9.27/t/GeoTiff_3.out +36 -0
  458. data/vendor/Image-ExifTool-9.27/t/Geotag.t +164 -0
  459. data/vendor/Image-ExifTool-9.27/t/Geotag_2.out +9 -0
  460. data/vendor/Image-ExifTool-9.27/t/Geotag_3.out +6 -0
  461. data/vendor/Image-ExifTool-9.27/t/Geotag_5.out +1 -0
  462. data/vendor/Image-ExifTool-9.27/t/Geotag_6.out +9 -0
  463. data/vendor/Image-ExifTool-9.27/t/Geotag_7.out +53 -0
  464. data/vendor/Image-ExifTool-9.27/t/Geotag_8.out +15 -0
  465. data/vendor/Image-ExifTool-9.27/t/HTML.t +28 -0
  466. data/vendor/Image-ExifTool-9.27/t/HTML_2.out +68 -0
  467. data/vendor/Image-ExifTool-9.27/t/IPTC.t +157 -0
  468. data/vendor/Image-ExifTool-9.27/t/IPTC_2.out +58 -0
  469. data/vendor/Image-ExifTool-9.27/t/IPTC_4.out +56 -0
  470. data/vendor/Image-ExifTool-9.27/t/IPTC_5.out +1 -0
  471. data/vendor/Image-ExifTool-9.27/t/IPTC_6.out +2 -0
  472. data/vendor/Image-ExifTool-9.27/t/IPTC_7.out +1 -0
  473. data/vendor/Image-ExifTool-9.27/t/IPTC_8.out +20 -0
  474. data/vendor/Image-ExifTool-9.27/t/ITC.t +28 -0
  475. data/vendor/Image-ExifTool-9.27/t/ITC_2.out +19 -0
  476. data/vendor/Image-ExifTool-9.27/t/InDesign.t +61 -0
  477. data/vendor/Image-ExifTool-9.27/t/InDesign_2.out +19 -0
  478. data/vendor/Image-ExifTool-9.27/t/InDesign_3.out +21 -0
  479. data/vendor/Image-ExifTool-9.27/t/InDesign_4.out +11 -0
  480. data/vendor/Image-ExifTool-9.27/t/JVC.t +36 -0
  481. data/vendor/Image-ExifTool-9.27/t/JVC_2.out +3 -0
  482. data/vendor/Image-ExifTool-9.27/t/JVC_3.out +3 -0
  483. data/vendor/Image-ExifTool-9.27/t/Jpeg2000.t +49 -0
  484. data/vendor/Image-ExifTool-9.27/t/Jpeg2000_2.out +63 -0
  485. data/vendor/Image-ExifTool-9.27/t/Jpeg2000_3.out +51 -0
  486. data/vendor/Image-ExifTool-9.27/t/Jpeg2000_4.out +15 -0
  487. data/vendor/Image-ExifTool-9.27/t/Kodak.t +40 -0
  488. data/vendor/Image-ExifTool-9.27/t/Kodak_2.out +109 -0
  489. data/vendor/Image-ExifTool-9.27/t/Kodak_3.out +119 -0
  490. data/vendor/Image-ExifTool-9.27/t/KyoceraRaw.t +28 -0
  491. data/vendor/Image-ExifTool-9.27/t/KyoceraRaw_2.out +27 -0
  492. data/vendor/Image-ExifTool-9.27/t/LNK.t +28 -0
  493. data/vendor/Image-ExifTool-9.27/t/LNK_2.out +45 -0
  494. data/vendor/Image-ExifTool-9.27/t/Lang.t +40 -0
  495. data/vendor/Image-ExifTool-9.27/t/Lang_1.out +1 -0
  496. data/vendor/Image-ExifTool-9.27/t/Lang_10.out +46 -0
  497. data/vendor/Image-ExifTool-9.27/t/Lang_11.out +46 -0
  498. data/vendor/Image-ExifTool-9.27/t/Lang_12.out +46 -0
  499. data/vendor/Image-ExifTool-9.27/t/Lang_13.out +46 -0
  500. data/vendor/Image-ExifTool-9.27/t/Lang_14.out +46 -0
  501. data/vendor/Image-ExifTool-9.27/t/Lang_15.out +46 -0
  502. data/vendor/Image-ExifTool-9.27/t/Lang_16.out +46 -0
  503. data/vendor/Image-ExifTool-9.27/t/Lang_17.out +46 -0
  504. data/vendor/Image-ExifTool-9.27/t/Lang_18.out +46 -0
  505. data/vendor/Image-ExifTool-9.27/t/Lang_2.out +46 -0
  506. data/vendor/Image-ExifTool-9.27/t/Lang_3.out +46 -0
  507. data/vendor/Image-ExifTool-9.27/t/Lang_4.out +46 -0
  508. data/vendor/Image-ExifTool-9.27/t/Lang_5.out +46 -0
  509. data/vendor/Image-ExifTool-9.27/t/Lang_6.out +46 -0
  510. data/vendor/Image-ExifTool-9.27/t/Lang_7.out +46 -0
  511. data/vendor/Image-ExifTool-9.27/t/Lang_8.out +46 -0
  512. data/vendor/Image-ExifTool-9.27/t/Lang_9.out +46 -0
  513. data/vendor/Image-ExifTool-9.27/t/M2TS.t +29 -0
  514. data/vendor/Image-ExifTool-9.27/t/M2TS_2.out +27 -0
  515. data/vendor/Image-ExifTool-9.27/t/MIE.t +82 -0
  516. data/vendor/Image-ExifTool-9.27/t/MIE_2.out +67 -0
  517. data/vendor/Image-ExifTool-9.27/t/MIE_3.out +134 -0
  518. data/vendor/Image-ExifTool-9.27/t/MIE_5.out +1 -0
  519. data/vendor/Image-ExifTool-9.27/t/MIE_6.out +1 -0
  520. data/vendor/Image-ExifTool-9.27/t/MIFF.t +28 -0
  521. data/vendor/Image-ExifTool-9.27/t/MIFF_2.out +108 -0
  522. data/vendor/Image-ExifTool-9.27/t/MP3.t +29 -0
  523. data/vendor/Image-ExifTool-9.27/t/MP3_2.out +45 -0
  524. data/vendor/Image-ExifTool-9.27/t/MWG.t +72 -0
  525. data/vendor/Image-ExifTool-9.27/t/MWG_2.out +13 -0
  526. data/vendor/Image-ExifTool-9.27/t/MWG_3.out +8 -0
  527. data/vendor/Image-ExifTool-9.27/t/MWG_4.out +5 -0
  528. data/vendor/Image-ExifTool-9.27/t/MWG_5.out +22 -0
  529. data/vendor/Image-ExifTool-9.27/t/MXF.t +27 -0
  530. data/vendor/Image-ExifTool-9.27/t/MXF_2.out +78 -0
  531. data/vendor/Image-ExifTool-9.27/t/Matroska.t +29 -0
  532. data/vendor/Image-ExifTool-9.27/t/Matroska_2.out +64 -0
  533. data/vendor/Image-ExifTool-9.27/t/Minolta.t +50 -0
  534. data/vendor/Image-ExifTool-9.27/t/Minolta_2.out +133 -0
  535. data/vendor/Image-ExifTool-9.27/t/Minolta_3.out +146 -0
  536. data/vendor/Image-ExifTool-9.27/t/Minolta_4.out +148 -0
  537. data/vendor/Image-ExifTool-9.27/t/Nikon.t +114 -0
  538. data/vendor/Image-ExifTool-9.27/t/Nikon_2.out +82 -0
  539. data/vendor/Image-ExifTool-9.27/t/Nikon_3.out +98 -0
  540. data/vendor/Image-ExifTool-9.27/t/Nikon_4.out +173 -0
  541. data/vendor/Image-ExifTool-9.27/t/Nikon_5.out +167 -0
  542. data/vendor/Image-ExifTool-9.27/t/Nikon_7.out +260 -0
  543. data/vendor/Image-ExifTool-9.27/t/Nikon_8.out +4 -0
  544. data/vendor/Image-ExifTool-9.27/t/Olympus.t +85 -0
  545. data/vendor/Image-ExifTool-9.27/t/Olympus_2.out +79 -0
  546. data/vendor/Image-ExifTool-9.27/t/Olympus_3.out +81 -0
  547. data/vendor/Image-ExifTool-9.27/t/Olympus_4.out +192 -0
  548. data/vendor/Image-ExifTool-9.27/t/Olympus_5.out +264 -0
  549. data/vendor/Image-ExifTool-9.27/t/Olympus_6.out +151 -0
  550. data/vendor/Image-ExifTool-9.27/t/Olympus_7.out +482 -0
  551. data/vendor/Image-ExifTool-9.27/t/OpenEXR.t +28 -0
  552. data/vendor/Image-ExifTool-9.27/t/OpenEXR_2.out +23 -0
  553. data/vendor/Image-ExifTool-9.27/t/PDF.t +295 -0
  554. data/vendor/Image-ExifTool-9.27/t/PDF_10.out +10 -0
  555. data/vendor/Image-ExifTool-9.27/t/PDF_11.out +10 -0
  556. data/vendor/Image-ExifTool-9.27/t/PDF_12.out +9 -0
  557. data/vendor/Image-ExifTool-9.27/t/PDF_14.out +5 -0
  558. data/vendor/Image-ExifTool-9.27/t/PDF_15.out +6 -0
  559. data/vendor/Image-ExifTool-9.27/t/PDF_16.out +4 -0
  560. data/vendor/Image-ExifTool-9.27/t/PDF_17.out +4 -0
  561. data/vendor/Image-ExifTool-9.27/t/PDF_18.out +5 -0
  562. data/vendor/Image-ExifTool-9.27/t/PDF_19.out +6 -0
  563. data/vendor/Image-ExifTool-9.27/t/PDF_2.out +117 -0
  564. data/vendor/Image-ExifTool-9.27/t/PDF_20.out +4 -0
  565. data/vendor/Image-ExifTool-9.27/t/PDF_22.out +3 -0
  566. data/vendor/Image-ExifTool-9.27/t/PDF_4.out +12 -0
  567. data/vendor/Image-ExifTool-9.27/t/PDF_5.out +8 -0
  568. data/vendor/Image-ExifTool-9.27/t/PDF_6.out +9 -0
  569. data/vendor/Image-ExifTool-9.27/t/PDF_7.out +11 -0
  570. data/vendor/Image-ExifTool-9.27/t/PDF_8.out +9 -0
  571. data/vendor/Image-ExifTool-9.27/t/PDF_9.out +9 -0
  572. data/vendor/Image-ExifTool-9.27/t/PGF.t +28 -0
  573. data/vendor/Image-ExifTool-9.27/t/PGF_2.out +32 -0
  574. data/vendor/Image-ExifTool-9.27/t/PICT.t +28 -0
  575. data/vendor/Image-ExifTool-9.27/t/PICT_2.out +15 -0
  576. data/vendor/Image-ExifTool-9.27/t/PLIST.t +31 -0
  577. data/vendor/Image-ExifTool-9.27/t/PLIST_2.out +20 -0
  578. data/vendor/Image-ExifTool-9.27/t/PLIST_3.out +20 -0
  579. data/vendor/Image-ExifTool-9.27/t/PNG.t +75 -0
  580. data/vendor/Image-ExifTool-9.27/t/PNG_2.out +22 -0
  581. data/vendor/Image-ExifTool-9.27/t/PNG_3.out +118 -0
  582. data/vendor/Image-ExifTool-9.27/t/PNG_4.out +12 -0
  583. data/vendor/Image-ExifTool-9.27/t/PPM.t +40 -0
  584. data/vendor/Image-ExifTool-9.27/t/PPM_2.out +15 -0
  585. data/vendor/Image-ExifTool-9.27/t/PPM_3.out +9 -0
  586. data/vendor/Image-ExifTool-9.27/t/PSP.t +28 -0
  587. data/vendor/Image-ExifTool-9.27/t/PSP_2.out +32 -0
  588. data/vendor/Image-ExifTool-9.27/t/Panasonic.t +60 -0
  589. data/vendor/Image-ExifTool-9.27/t/Panasonic_2.out +99 -0
  590. data/vendor/Image-ExifTool-9.27/t/Panasonic_3.out +119 -0
  591. data/vendor/Image-ExifTool-9.27/t/Panasonic_4.out +177 -0
  592. data/vendor/Image-ExifTool-9.27/t/Panasonic_5.out +228 -0
  593. data/vendor/Image-ExifTool-9.27/t/Pentax.t +50 -0
  594. data/vendor/Image-ExifTool-9.27/t/Pentax_2.out +219 -0
  595. data/vendor/Image-ExifTool-9.27/t/Pentax_3.out +262 -0
  596. data/vendor/Image-ExifTool-9.27/t/Pentax_4.out +123 -0
  597. data/vendor/Image-ExifTool-9.27/t/PhotoCD.t +28 -0
  598. data/vendor/Image-ExifTool-9.27/t/PhotoCD_2.out +35 -0
  599. data/vendor/Image-ExifTool-9.27/t/PhotoMechanic.t +38 -0
  600. data/vendor/Image-ExifTool-9.27/t/PhotoMechanic_2.out +81 -0
  601. data/vendor/Image-ExifTool-9.27/t/PhotoMechanic_3.out +2 -0
  602. data/vendor/Image-ExifTool-9.27/t/Photoshop.t +42 -0
  603. data/vendor/Image-ExifTool-9.27/t/Photoshop_2.out +96 -0
  604. data/vendor/Image-ExifTool-9.27/t/Photoshop_3.out +108 -0
  605. data/vendor/Image-ExifTool-9.27/t/PostScript.t +49 -0
  606. data/vendor/Image-ExifTool-9.27/t/PostScript_2.out +64 -0
  607. data/vendor/Image-ExifTool-9.27/t/PostScript_3.out +132 -0
  608. data/vendor/Image-ExifTool-9.27/t/QuickTime.t +31 -0
  609. data/vendor/Image-ExifTool-9.27/t/QuickTime_2.out +128 -0
  610. data/vendor/Image-ExifTool-9.27/t/QuickTime_3.out +69 -0
  611. data/vendor/Image-ExifTool-9.27/t/RIFF.t +31 -0
  612. data/vendor/Image-ExifTool-9.27/t/RIFF_2.out +24 -0
  613. data/vendor/Image-ExifTool-9.27/t/RIFF_3.out +52 -0
  614. data/vendor/Image-ExifTool-9.27/t/RIFF_4.out +16 -0
  615. data/vendor/Image-ExifTool-9.27/t/RTF.t +27 -0
  616. data/vendor/Image-ExifTool-9.27/t/RTF_2.out +20 -0
  617. data/vendor/Image-ExifTool-9.27/t/Radiance.t +28 -0
  618. data/vendor/Image-ExifTool-9.27/t/Radiance_2.out +22 -0
  619. data/vendor/Image-ExifTool-9.27/t/Real.t +46 -0
  620. data/vendor/Image-ExifTool-9.27/t/Real_2.out +68 -0
  621. data/vendor/Image-ExifTool-9.27/t/Real_3.out +18 -0
  622. data/vendor/Image-ExifTool-9.27/t/Real_4.out +11 -0
  623. data/vendor/Image-ExifTool-9.27/t/Ricoh.t +47 -0
  624. data/vendor/Image-ExifTool-9.27/t/Ricoh_2.out +70 -0
  625. data/vendor/Image-ExifTool-9.27/t/Ricoh_3.out +98 -0
  626. data/vendor/Image-ExifTool-9.27/t/Ricoh_4.out +112 -0
  627. data/vendor/Image-ExifTool-9.27/t/Sanyo.t +39 -0
  628. data/vendor/Image-ExifTool-9.27/t/Sanyo_2.out +101 -0
  629. data/vendor/Image-ExifTool-9.27/t/Sanyo_3.out +111 -0
  630. data/vendor/Image-ExifTool-9.27/t/Sigma.t +60 -0
  631. data/vendor/Image-ExifTool-9.27/t/Sigma_2.out +91 -0
  632. data/vendor/Image-ExifTool-9.27/t/Sigma_3.out +94 -0
  633. data/vendor/Image-ExifTool-9.27/t/Sigma_4.out +63 -0
  634. data/vendor/Image-ExifTool-9.27/t/Sigma_5.out +192 -0
  635. data/vendor/Image-ExifTool-9.27/t/Sony.t +62 -0
  636. data/vendor/Image-ExifTool-9.27/t/Sony_2.out +84 -0
  637. data/vendor/Image-ExifTool-9.27/t/Sony_3.out +85 -0
  638. data/vendor/Image-ExifTool-9.27/t/Sony_5.out +32 -0
  639. data/vendor/Image-ExifTool-9.27/t/TestLib.pm +417 -0
  640. data/vendor/Image-ExifTool-9.27/t/Unknown.t +36 -0
  641. data/vendor/Image-ExifTool-9.27/t/Unknown_2.out +90 -0
  642. data/vendor/Image-ExifTool-9.27/t/Unknown_3.out +90 -0
  643. data/vendor/Image-ExifTool-9.27/t/Vorbis.t +28 -0
  644. data/vendor/Image-ExifTool-9.27/t/Vorbis_2.out +28 -0
  645. data/vendor/Image-ExifTool-9.27/t/Writer.t +896 -0
  646. data/vendor/Image-ExifTool-9.27/t/Writer_10.out +239 -0
  647. data/vendor/Image-ExifTool-9.27/t/Writer_11.out +37 -0
  648. data/vendor/Image-ExifTool-9.27/t/Writer_13.out +160 -0
  649. data/vendor/Image-ExifTool-9.27/t/Writer_14.out +67 -0
  650. data/vendor/Image-ExifTool-9.27/t/Writer_15.out +171 -0
  651. data/vendor/Image-ExifTool-9.27/t/Writer_16.out +1 -0
  652. data/vendor/Image-ExifTool-9.27/t/Writer_17.out +1 -0
  653. data/vendor/Image-ExifTool-9.27/t/Writer_18.out +3 -0
  654. data/vendor/Image-ExifTool-9.27/t/Writer_19.out +34 -0
  655. data/vendor/Image-ExifTool-9.27/t/Writer_2.out +168 -0
  656. data/vendor/Image-ExifTool-9.27/t/Writer_22.out +4 -0
  657. data/vendor/Image-ExifTool-9.27/t/Writer_24.out +1 -0
  658. data/vendor/Image-ExifTool-9.27/t/Writer_25.out +38 -0
  659. data/vendor/Image-ExifTool-9.27/t/Writer_26.out +32 -0
  660. data/vendor/Image-ExifTool-9.27/t/Writer_27.out +14 -0
  661. data/vendor/Image-ExifTool-9.27/t/Writer_28.out +1 -0
  662. data/vendor/Image-ExifTool-9.27/t/Writer_29.out +2 -0
  663. data/vendor/Image-ExifTool-9.27/t/Writer_30.out +2 -0
  664. data/vendor/Image-ExifTool-9.27/t/Writer_31.out +97 -0
  665. data/vendor/Image-ExifTool-9.27/t/Writer_32.out +3 -0
  666. data/vendor/Image-ExifTool-9.27/t/Writer_33.out +3 -0
  667. data/vendor/Image-ExifTool-9.27/t/Writer_34.out +3 -0
  668. data/vendor/Image-ExifTool-9.27/t/Writer_35.out +187 -0
  669. data/vendor/Image-ExifTool-9.27/t/Writer_36.out +2 -0
  670. data/vendor/Image-ExifTool-9.27/t/Writer_37.out +2 -0
  671. data/vendor/Image-ExifTool-9.27/t/Writer_38.out +62 -0
  672. data/vendor/Image-ExifTool-9.27/t/Writer_39.out +4 -0
  673. data/vendor/Image-ExifTool-9.27/t/Writer_4.out +85 -0
  674. data/vendor/Image-ExifTool-9.27/t/Writer_40.out +4 -0
  675. data/vendor/Image-ExifTool-9.27/t/Writer_41.out +3 -0
  676. data/vendor/Image-ExifTool-9.27/t/Writer_42.out +5 -0
  677. data/vendor/Image-ExifTool-9.27/t/Writer_43.out +5 -0
  678. data/vendor/Image-ExifTool-9.27/t/Writer_44.out +2 -0
  679. data/vendor/Image-ExifTool-9.27/t/Writer_45.out +1 -0
  680. data/vendor/Image-ExifTool-9.27/t/Writer_46.out +77 -0
  681. data/vendor/Image-ExifTool-9.27/t/Writer_47.out +56 -0
  682. data/vendor/Image-ExifTool-9.27/t/Writer_48.out +29 -0
  683. data/vendor/Image-ExifTool-9.27/t/Writer_50.out +3 -0
  684. data/vendor/Image-ExifTool-9.27/t/Writer_6.out +182 -0
  685. data/vendor/Image-ExifTool-9.27/t/Writer_7.out +149 -0
  686. data/vendor/Image-ExifTool-9.27/t/Writer_9.out +236 -0
  687. data/vendor/Image-ExifTool-9.27/t/XMP.t +521 -0
  688. data/vendor/Image-ExifTool-9.27/t/XMP_10.out +33 -0
  689. data/vendor/Image-ExifTool-9.27/t/XMP_11.out +59 -0
  690. data/vendor/Image-ExifTool-9.27/t/XMP_12.out +4 -0
  691. data/vendor/Image-ExifTool-9.27/t/XMP_13.out +5 -0
  692. data/vendor/Image-ExifTool-9.27/t/XMP_14.out +3 -0
  693. data/vendor/Image-ExifTool-9.27/t/XMP_15.out +3 -0
  694. data/vendor/Image-ExifTool-9.27/t/XMP_16.out +5 -0
  695. data/vendor/Image-ExifTool-9.27/t/XMP_17.out +6 -0
  696. data/vendor/Image-ExifTool-9.27/t/XMP_18.out +10 -0
  697. data/vendor/Image-ExifTool-9.27/t/XMP_19.out +35 -0
  698. data/vendor/Image-ExifTool-9.27/t/XMP_2.out +138 -0
  699. data/vendor/Image-ExifTool-9.27/t/XMP_20.out +35 -0
  700. data/vendor/Image-ExifTool-9.27/t/XMP_21.out +37 -0
  701. data/vendor/Image-ExifTool-9.27/t/XMP_22.out +37 -0
  702. data/vendor/Image-ExifTool-9.27/t/XMP_23.out +9 -0
  703. data/vendor/Image-ExifTool-9.27/t/XMP_24.out +31 -0
  704. data/vendor/Image-ExifTool-9.27/t/XMP_25.out +28 -0
  705. data/vendor/Image-ExifTool-9.27/t/XMP_26.out +52 -0
  706. data/vendor/Image-ExifTool-9.27/t/XMP_27.out +93 -0
  707. data/vendor/Image-ExifTool-9.27/t/XMP_28.out +44 -0
  708. data/vendor/Image-ExifTool-9.27/t/XMP_29.out +24 -0
  709. data/vendor/Image-ExifTool-9.27/t/XMP_3.out +136 -0
  710. data/vendor/Image-ExifTool-9.27/t/XMP_30.out +90 -0
  711. data/vendor/Image-ExifTool-9.27/t/XMP_31.out +19 -0
  712. data/vendor/Image-ExifTool-9.27/t/XMP_32.out +2 -0
  713. data/vendor/Image-ExifTool-9.27/t/XMP_34.out +2 -0
  714. data/vendor/Image-ExifTool-9.27/t/XMP_36.out +18 -0
  715. data/vendor/Image-ExifTool-9.27/t/XMP_37.out +35 -0
  716. data/vendor/Image-ExifTool-9.27/t/XMP_39.out +44 -0
  717. data/vendor/Image-ExifTool-9.27/t/XMP_40.out +3 -0
  718. data/vendor/Image-ExifTool-9.27/t/XMP_41.out +175 -0
  719. data/vendor/Image-ExifTool-9.27/t/XMP_5.out +29 -0
  720. data/vendor/Image-ExifTool-9.27/t/XMP_6.out +87 -0
  721. data/vendor/Image-ExifTool-9.27/t/XMP_7.out +118 -0
  722. data/vendor/Image-ExifTool-9.27/t/XMP_8.out +17 -0
  723. data/vendor/Image-ExifTool-9.27/t/XMP_9.out +36 -0
  724. data/vendor/Image-ExifTool-9.27/t/ZIP.t +69 -0
  725. data/vendor/Image-ExifTool-9.27/t/ZIP_2.out +18 -0
  726. data/vendor/Image-ExifTool-9.27/t/ZIP_3.out +17 -0
  727. data/vendor/Image-ExifTool-9.27/t/ZIP_4.out +213 -0
  728. data/vendor/Image-ExifTool-9.27/t/ZIP_5.out +134 -0
  729. data/vendor/Image-ExifTool-9.27/t/ZIP_6.out +49 -0
  730. data/vendor/Image-ExifTool-9.27/t/ZIP_7.out +28 -0
  731. data/vendor/Image-ExifTool-9.27/t/images/AFCP.jpg +0 -0
  732. data/vendor/Image-ExifTool-9.27/t/images/AIFF.aif +0 -0
  733. data/vendor/Image-ExifTool-9.27/t/images/APE.ape +0 -0
  734. data/vendor/Image-ExifTool-9.27/t/images/APE.mpc +0 -0
  735. data/vendor/Image-ExifTool-9.27/t/images/ASF.wmv +0 -0
  736. data/vendor/Image-ExifTool-9.27/t/images/BMP.bmp +0 -0
  737. data/vendor/Image-ExifTool-9.27/t/images/BigTIFF.btf +0 -0
  738. data/vendor/Image-ExifTool-9.27/t/images/Canon.jpg +0 -0
  739. data/vendor/Image-ExifTool-9.27/t/images/Canon1DmkIII.jpg +0 -0
  740. data/vendor/Image-ExifTool-9.27/t/images/CanonRaw.cr2 +0 -0
  741. data/vendor/Image-ExifTool-9.27/t/images/CanonRaw.crw +0 -0
  742. data/vendor/Image-ExifTool-9.27/t/images/CanonVRD.vrd +0 -0
  743. data/vendor/Image-ExifTool-9.27/t/images/CaptureOne.eip +0 -0
  744. data/vendor/Image-ExifTool-9.27/t/images/Casio.jpg +0 -0
  745. data/vendor/Image-ExifTool-9.27/t/images/Casio2.jpg +0 -0
  746. data/vendor/Image-ExifTool-9.27/t/images/CasioQVCI.jpg +0 -0
  747. data/vendor/Image-ExifTool-9.27/t/images/DICOM.dcm +0 -0
  748. data/vendor/Image-ExifTool-9.27/t/images/DNG.dng +0 -0
  749. data/vendor/Image-ExifTool-9.27/t/images/DV.dv +0 -0
  750. data/vendor/Image-ExifTool-9.27/t/images/DjVu.djvu +0 -0
  751. data/vendor/Image-ExifTool-9.27/t/images/EXE.elf +0 -0
  752. data/vendor/Image-ExifTool-9.27/t/images/EXE.exe +0 -0
  753. data/vendor/Image-ExifTool-9.27/t/images/EXE.macho +0 -0
  754. data/vendor/Image-ExifTool-9.27/t/images/ExifTool.jpg +0 -0
  755. data/vendor/Image-ExifTool-9.27/t/images/ExifTool.tif +0 -0
  756. data/vendor/Image-ExifTool-9.27/t/images/ExtendedXMP.jpg +0 -0
  757. data/vendor/Image-ExifTool-9.27/t/images/FLAC.flac +0 -0
  758. data/vendor/Image-ExifTool-9.27/t/images/FLAC.ogg +0 -0
  759. data/vendor/Image-ExifTool-9.27/t/images/FLIR.fpf +0 -0
  760. data/vendor/Image-ExifTool-9.27/t/images/FLIR.jpg +0 -0
  761. data/vendor/Image-ExifTool-9.27/t/images/Flash.flv +0 -0
  762. data/vendor/Image-ExifTool-9.27/t/images/Flash.swf +0 -0
  763. data/vendor/Image-ExifTool-9.27/t/images/FlashPix.ppt +0 -0
  764. data/vendor/Image-ExifTool-9.27/t/images/Font.afm +28 -0
  765. data/vendor/Image-ExifTool-9.27/t/images/Font.dfont +0 -0
  766. data/vendor/Image-ExifTool-9.27/t/images/Font.pfa +38 -0
  767. data/vendor/Image-ExifTool-9.27/t/images/Font.pfb +0 -0
  768. data/vendor/Image-ExifTool-9.27/t/images/Font.pfm +0 -0
  769. data/vendor/Image-ExifTool-9.27/t/images/Font.ttf +0 -0
  770. data/vendor/Image-ExifTool-9.27/t/images/FotoStation.jpg +0 -0
  771. data/vendor/Image-ExifTool-9.27/t/images/FujiFilm.jpg +0 -0
  772. data/vendor/Image-ExifTool-9.27/t/images/FujiFilm.raf +0 -0
  773. data/vendor/Image-ExifTool-9.27/t/images/GE.jpg +0 -0
  774. data/vendor/Image-ExifTool-9.27/t/images/GIF.gif +0 -0
  775. data/vendor/Image-ExifTool-9.27/t/images/GIMP.xcf +0 -0
  776. data/vendor/Image-ExifTool-9.27/t/images/GPS.jpg +0 -0
  777. data/vendor/Image-ExifTool-9.27/t/images/GeoTiff.tif +0 -0
  778. data/vendor/Image-ExifTool-9.27/t/images/Geotag.gpx +23 -0
  779. data/vendor/Image-ExifTool-9.27/t/images/Geotag.igc +24 -0
  780. data/vendor/Image-ExifTool-9.27/t/images/Geotag.log +13 -0
  781. data/vendor/Image-ExifTool-9.27/t/images/Geotag.xml +23 -0
  782. data/vendor/Image-ExifTool-9.27/t/images/Geotag2.log +7 -0
  783. data/vendor/Image-ExifTool-9.27/t/images/HTML.html +77 -0
  784. data/vendor/Image-ExifTool-9.27/t/images/IPTC.jpg +0 -0
  785. data/vendor/Image-ExifTool-9.27/t/images/ITC.itc +0 -0
  786. data/vendor/Image-ExifTool-9.27/t/images/InDesign.indd +0 -0
  787. data/vendor/Image-ExifTool-9.27/t/images/JVC.jpg +0 -0
  788. data/vendor/Image-ExifTool-9.27/t/images/JVC2.jpg +0 -0
  789. data/vendor/Image-ExifTool-9.27/t/images/Jpeg2000.j2c +0 -0
  790. data/vendor/Image-ExifTool-9.27/t/images/Jpeg2000.jp2 +0 -0
  791. data/vendor/Image-ExifTool-9.27/t/images/Kodak.jpg +0 -0
  792. data/vendor/Image-ExifTool-9.27/t/images/KyoceraRaw.raw +0 -0
  793. data/vendor/Image-ExifTool-9.27/t/images/LNK.lnk +0 -0
  794. data/vendor/Image-ExifTool-9.27/t/images/M2TS.mts +0 -0
  795. data/vendor/Image-ExifTool-9.27/t/images/MIE.mie +0 -0
  796. data/vendor/Image-ExifTool-9.27/t/images/MIFF.miff +0 -0
  797. data/vendor/Image-ExifTool-9.27/t/images/MP3.mp3 +0 -0
  798. data/vendor/Image-ExifTool-9.27/t/images/MWG.jpg +0 -0
  799. data/vendor/Image-ExifTool-9.27/t/images/MXF.mxf +0 -0
  800. data/vendor/Image-ExifTool-9.27/t/images/Matroska.mkv +0 -0
  801. data/vendor/Image-ExifTool-9.27/t/images/Minolta.jpg +0 -0
  802. data/vendor/Image-ExifTool-9.27/t/images/Minolta.mrw +0 -0
  803. data/vendor/Image-ExifTool-9.27/t/images/Nikon.jpg +0 -0
  804. data/vendor/Image-ExifTool-9.27/t/images/Nikon.nef +0 -0
  805. data/vendor/Image-ExifTool-9.27/t/images/NikonD2Hs.jpg +0 -0
  806. data/vendor/Image-ExifTool-9.27/t/images/NikonD70.jpg +0 -0
  807. data/vendor/Image-ExifTool-9.27/t/images/OOXML.docx +0 -0
  808. data/vendor/Image-ExifTool-9.27/t/images/Olympus.jpg +0 -0
  809. data/vendor/Image-ExifTool-9.27/t/images/Olympus2.jpg +0 -0
  810. data/vendor/Image-ExifTool-9.27/t/images/OlympusE1.jpg +0 -0
  811. data/vendor/Image-ExifTool-9.27/t/images/OpenDoc.ods +0 -0
  812. data/vendor/Image-ExifTool-9.27/t/images/OpenEXR.exr +0 -0
  813. data/vendor/Image-ExifTool-9.27/t/images/PDF.pdf +0 -0
  814. data/vendor/Image-ExifTool-9.27/t/images/PDF2.pdf +0 -0
  815. data/vendor/Image-ExifTool-9.27/t/images/PGF.pgf +0 -0
  816. data/vendor/Image-ExifTool-9.27/t/images/PICT.pict +0 -0
  817. data/vendor/Image-ExifTool-9.27/t/images/PLIST-bin.plist +0 -0
  818. data/vendor/Image-ExifTool-9.27/t/images/PLIST-xml.plist +35 -0
  819. data/vendor/Image-ExifTool-9.27/t/images/PNG.png +0 -0
  820. data/vendor/Image-ExifTool-9.27/t/images/PPM.ppm +5 -0
  821. data/vendor/Image-ExifTool-9.27/t/images/PSP.psp +0 -0
  822. data/vendor/Image-ExifTool-9.27/t/images/Panasonic.jpg +0 -0
  823. data/vendor/Image-ExifTool-9.27/t/images/Panasonic.rw2 +0 -0
  824. data/vendor/Image-ExifTool-9.27/t/images/Pentax.avi +0 -0
  825. data/vendor/Image-ExifTool-9.27/t/images/Pentax.jpg +0 -0
  826. data/vendor/Image-ExifTool-9.27/t/images/PhotoCD.pcd +0 -0
  827. data/vendor/Image-ExifTool-9.27/t/images/PhotoMechanic.jpg +0 -0
  828. data/vendor/Image-ExifTool-9.27/t/images/Photoshop.psd +0 -0
  829. data/vendor/Image-ExifTool-9.27/t/images/PostScript.eps +108 -0
  830. data/vendor/Image-ExifTool-9.27/t/images/QuickTime.m4a +0 -0
  831. data/vendor/Image-ExifTool-9.27/t/images/QuickTime.mov +0 -0
  832. data/vendor/Image-ExifTool-9.27/t/images/RIFF.avi +0 -0
  833. data/vendor/Image-ExifTool-9.27/t/images/RIFF.wav +0 -0
  834. data/vendor/Image-ExifTool-9.27/t/images/RIFF.webp +0 -0
  835. data/vendor/Image-ExifTool-9.27/t/images/RTF.rtf +25 -0
  836. data/vendor/Image-ExifTool-9.27/t/images/Radiance.hdr +0 -0
  837. data/vendor/Image-ExifTool-9.27/t/images/Real.ra +0 -0
  838. data/vendor/Image-ExifTool-9.27/t/images/Real.ram +1 -0
  839. data/vendor/Image-ExifTool-9.27/t/images/Real.rm +0 -0
  840. data/vendor/Image-ExifTool-9.27/t/images/Ricoh.jpg +0 -0
  841. data/vendor/Image-ExifTool-9.27/t/images/Ricoh2.jpg +0 -0
  842. data/vendor/Image-ExifTool-9.27/t/images/Sanyo.jpg +0 -0
  843. data/vendor/Image-ExifTool-9.27/t/images/Sigma.jpg +0 -0
  844. data/vendor/Image-ExifTool-9.27/t/images/Sigma.x3f +0 -0
  845. data/vendor/Image-ExifTool-9.27/t/images/SigmaDP2.x3f +0 -0
  846. data/vendor/Image-ExifTool-9.27/t/images/Sony.jpg +0 -0
  847. data/vendor/Image-ExifTool-9.27/t/images/Sony.pmp +0 -0
  848. data/vendor/Image-ExifTool-9.27/t/images/Unknown.jpg +0 -0
  849. data/vendor/Image-ExifTool-9.27/t/images/Vorbis.ogg +0 -0
  850. data/vendor/Image-ExifTool-9.27/t/images/Writer.jpg +0 -0
  851. data/vendor/Image-ExifTool-9.27/t/images/XMP.inx +108 -0
  852. data/vendor/Image-ExifTool-9.27/t/images/XMP.jpg +0 -0
  853. data/vendor/Image-ExifTool-9.27/t/images/XMP.svg +33 -0
  854. data/vendor/Image-ExifTool-9.27/t/images/XMP.xml +98 -0
  855. data/vendor/Image-ExifTool-9.27/t/images/XMP.xmp +99 -0
  856. data/vendor/Image-ExifTool-9.27/t/images/XMP2.xmp +25 -0
  857. data/vendor/Image-ExifTool-9.27/t/images/XMP3.xmp +43 -0
  858. data/vendor/Image-ExifTool-9.27/t/images/XMP4.xmp +93 -0
  859. data/vendor/Image-ExifTool-9.27/t/images/XMP5.xmp +158 -0
  860. data/vendor/Image-ExifTool-9.27/t/images/ZIP.gz +0 -0
  861. data/vendor/Image-ExifTool-9.27/t/images/ZIP.zip +0 -0
  862. data/vendor/Image-ExifTool-9.27/t/images/iWork.numbers +0 -0
  863. metadata +868 -218
  864. data/vendor/Image-ExifTool-8.97/.DS_Store +0 -0
  865. data/vendor/Image-ExifTool-8.97/Changes +0 -5753
  866. data/vendor/Image-ExifTool-8.97/ExifTool_config +0 -299
  867. data/vendor/Image-ExifTool-8.97/MANIFEST +0 -831
  868. data/vendor/Image-ExifTool-8.97/META.yml +0 -26
  869. data/vendor/Image-ExifTool-8.97/README +0 -221
  870. data/vendor/Image-ExifTool-8.97/exiftool +0 -5207
  871. data/vendor/Image-ExifTool-8.97/kml.fmt +0 -63
  872. data/vendor/Image-ExifTool-8.97/lib/File/RandomAccess.pm +0 -378
  873. data/vendor/Image-ExifTool-8.97/lib/File/RandomAccess.pod +0 -231
  874. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool.pm +0 -6623
  875. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool.pod +0 -2276
  876. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/AES.pm +0 -501
  877. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/AFCP.pm +0 -280
  878. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/AIFF.pm +0 -271
  879. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/APE.pm +0 -254
  880. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/APP12.pm +0 -322
  881. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/ASF.pm +0 -871
  882. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/BMP.pm +0 -179
  883. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/BZZ.pm +0 -472
  884. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/BigTIFF.pm +0 -286
  885. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/BuildTagLookup.pm +0 -2311
  886. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Canon.pm +0 -7435
  887. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/CanonCustom.pm +0 -2484
  888. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/CanonRaw.pm +0 -927
  889. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/CanonVRD.pm +0 -1481
  890. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/CaptureOne.pm +0 -235
  891. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Casio.pm +0 -2013
  892. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Charset.pm +0 -396
  893. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/DICOM.pm +0 -3832
  894. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/DNG.pm +0 -835
  895. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/DV.pm +0 -319
  896. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/DjVu.pm +0 -373
  897. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/EXE.pm +0 -1228
  898. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Exif.pm +0 -4344
  899. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/FLAC.pm +0 -296
  900. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Fixup.pm +0 -333
  901. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Flash.pm +0 -755
  902. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/FlashPix.pm +0 -1882
  903. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Font.pm +0 -643
  904. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/FotoStation.pm +0 -258
  905. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/FujiFilm.pm +0 -968
  906. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/GE.pm +0 -80
  907. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/GIF.pm +0 -525
  908. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/GIMP.pm +0 -258
  909. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/GPS.pm +0 -511
  910. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/GeoTiff.pm +0 -2187
  911. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Geotag.pm +0 -1171
  912. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/H264.pm +0 -1093
  913. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/HP.pm +0 -262
  914. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/HTML.pm +0 -576
  915. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/HtmlDump.pm +0 -886
  916. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/ICC_Profile.pm +0 -997
  917. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/ID3.pm +0 -1276
  918. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/IPTC.pm +0 -1233
  919. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/ITC.pm +0 -215
  920. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Import.pm +0 -307
  921. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/InDesign.pm +0 -277
  922. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/JPEG.pm +0 -584
  923. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/JPEGDigest.pm +0 -2511
  924. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/JVC.pm +0 -130
  925. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Jpeg2000.pm +0 -823
  926. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Kodak.pm +0 -2012
  927. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/KyoceraRaw.pm +0 -173
  928. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/LNK.pm +0 -723
  929. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Lang/cs.pm +0 -1581
  930. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Lang/de.pm +0 -5503
  931. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Lang/en_ca.pm +0 -557
  932. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Lang/en_gb.pm +0 -572
  933. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Lang/es.pm +0 -1718
  934. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Lang/fi.pm +0 -2831
  935. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Lang/fr.pm +0 -4716
  936. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Lang/it.pm +0 -2201
  937. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Lang/ja.pm +0 -5793
  938. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Lang/ko.pm +0 -2324
  939. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Lang/nl.pm +0 -3212
  940. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Lang/pl.pm +0 -1134
  941. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Lang/ru.pm +0 -761
  942. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Lang/sv.pm +0 -632
  943. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Lang/tr.pm +0 -539
  944. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Lang/zh_cn.pm +0 -1320
  945. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Lang/zh_tw.pm +0 -794
  946. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Leaf.pm +0 -515
  947. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/M2TS.pm +0 -729
  948. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/MIE.pm +0 -2552
  949. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/MIEUnits.pod +0 -377
  950. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/MIFF.pm +0 -279
  951. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/MNG.pm +0 -684
  952. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/MPC.pm +0 -156
  953. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/MPEG.pm +0 -736
  954. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/MPF.pm +0 -286
  955. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/MWG.pm +0 -586
  956. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/MXF.pm +0 -3032
  957. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/MakerNotes.pm +0 -1551
  958. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Matroska.pm +0 -891
  959. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Microsoft.pm +0 -861
  960. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Minolta.pm +0 -2786
  961. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/MinoltaRaw.pm +0 -534
  962. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Nikon.pm +0 -5568
  963. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/NikonCapture.pm +0 -911
  964. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/NikonCustom.pm +0 -3724
  965. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/OOXML.pm +0 -409
  966. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Ogg.pm +0 -237
  967. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Olympus.pm +0 -4027
  968. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/OpenEXR.pm +0 -324
  969. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/PDF.pm +0 -1986
  970. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/PGF.pm +0 -143
  971. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/PICT.pm +0 -1260
  972. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/PNG.pm +0 -1100
  973. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/PPM.pm +0 -169
  974. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/PSP.pm +0 -305
  975. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Panasonic.pm +0 -1852
  976. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/PanasonicRaw.pm +0 -383
  977. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Pentax.pm +0 -5044
  978. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/PhotoCD.pm +0 -507
  979. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/PhotoMechanic.pm +0 -250
  980. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Photoshop.pm +0 -594
  981. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/PostScript.pm +0 -691
  982. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/PrintIM.pm +0 -125
  983. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Qualcomm.pm +0 -1344
  984. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/QuickTime.pm +0 -2920
  985. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/README +0 -922
  986. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/RIFF.pm +0 -1278
  987. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/RSRC.pm +0 -240
  988. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/RTF.pm +0 -383
  989. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Radiance.pm +0 -144
  990. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Rawzor.pm +0 -190
  991. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Real.pm +0 -736
  992. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Reconyx.pm +0 -190
  993. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Ricoh.pm +0 -714
  994. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Samsung.pm +0 -764
  995. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Sanyo.pm +0 -439
  996. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Shift.pl +0 -594
  997. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Shortcuts.pm +0 -289
  998. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Sigma.pm +0 -488
  999. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/SigmaRaw.pm +0 -676
  1000. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Sony.pm +0 -3844
  1001. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/SonyIDC.pm +0 -330
  1002. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Stim.pm +0 -196
  1003. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/TagInfoXML.pm +0 -763
  1004. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/TagLookup.pm +0 -7305
  1005. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/TagNames.pod +0 -24147
  1006. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Theora.pm +0 -145
  1007. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Unknown.pm +0 -66
  1008. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Vorbis.pm +0 -221
  1009. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/WriteCanonRaw.pl +0 -637
  1010. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/WriteExif.pl +0 -3513
  1011. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/WriteIPTC.pl +0 -700
  1012. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/WritePDF.pl +0 -757
  1013. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/WritePNG.pl +0 -329
  1014. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/WritePhotoshop.pl +0 -266
  1015. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/WritePostScript.pl +0 -776
  1016. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/WriteXMP.pl +0 -1296
  1017. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/Writer.pl +0 -5577
  1018. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/XMP.pm +0 -3589
  1019. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/XMP2.pl +0 -1315
  1020. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/XMPStruct.pl +0 -814
  1021. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/ZIP.pm +0 -623
  1022. data/vendor/Image-ExifTool-8.97/lib/Image/ExifTool/iWork.pm +0 -223
  1023. data/vendor/Image-ExifTool-8.97/perl-Image-ExifTool.spec +0 -103
@@ -0,0 +1,2523 @@
1
+ #------------------------------------------------------------------------------
2
+ # File: CanonCustom.pm
3
+ #
4
+ # Description: Read and write Canon Custom functions
5
+ #
6
+ # Revisions: 11/25/2003 - P. Harvey Created
7
+ #
8
+ # References: 1) http://park2.wakwak.com/~tsuruzoh/Computer/Digicams/exif-e.html
9
+ # 2) Christian Koller private communication (20D)
10
+ # 3) Rainer Honle private communication (5D)
11
+ # 4) David Pitcher private communication (1DmkIII firmware upgrade)
12
+ #------------------------------------------------------------------------------
13
+
14
+ package Image::ExifTool::CanonCustom;
15
+
16
+ use strict;
17
+ use vars qw($VERSION);
18
+ use Image::ExifTool qw(:DataAccess);
19
+ use Image::ExifTool::Canon;
20
+ use Image::ExifTool::Exif;
21
+
22
+ $VERSION = '1.45';
23
+
24
+ sub ProcessCanonCustom($$$);
25
+ sub ProcessCanonCustom2($$$);
26
+ sub WriteCanonCustom($$$);
27
+ sub WriteCanonCustom2($$$);
28
+ sub CheckCanonCustom($$$);
29
+ sub ConvertPFn($);
30
+ sub ConvertPFnInv($);
31
+
32
+ my %onOff = ( 0 => 'On', 1 => 'Off' );
33
+ my %offOn = ( 0 => 'Off', 1 => 'On' );
34
+ my %disableEnable = ( 0 => 'Disable', 1 => 'Enable' );
35
+ my %enableDisable = ( 0 => 'Enable', 1 => 'Disable' );
36
+ my %convPFn = ( PrintConv => \&ConvertPfn, PrintConvInv => \&ConvertPfnInv );
37
+
38
+ #------------------------------------------------------------------------------
39
+ # Custom functions for the 1D
40
+ # CanonCustom (keys are custom function number)
41
+ %Image::ExifTool::CanonCustom::Functions1D = (
42
+ GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
43
+ PROCESS_PROC => \&ProcessCanonCustom,
44
+ WRITE_PROC => \&WriteCanonCustom,
45
+ CHECK_PROC => \&CheckCanonCustom,
46
+ WRITABLE => 'int8u',
47
+ NOTES => q{
48
+ These custom functions are used by all 1D models up to but not including the
49
+ Mark III.
50
+ },
51
+ 0 => {
52
+ Name => 'FocusingScreen',
53
+ PrintConv => {
54
+ 0 => 'Ec-N, R',
55
+ 1 => 'Ec-A,B,C,CII,CIII,D,H,I,L',
56
+ },
57
+ },
58
+ 1 => {
59
+ Name => 'FinderDisplayDuringExposure',
60
+ PrintConv => \%offOn,
61
+ },
62
+ 2 => {
63
+ Name => 'ShutterReleaseNoCFCard',
64
+ Description => 'Shutter Release W/O CF Card',
65
+ PrintConv => {
66
+ 0 => 'Yes',
67
+ 1 => 'No',
68
+ },
69
+ },
70
+ 3 => {
71
+ Name => 'ISOSpeedExpansion',
72
+ Description => 'ISO Speed Expansion',
73
+ PrintConv => {
74
+ 0 => 'No',
75
+ 1 => 'Yes',
76
+ },
77
+ },
78
+ 4 => {
79
+ Name => 'ShutterAELButton',
80
+ Description => 'Shutter Button/AEL Button',
81
+ PrintConv => {
82
+ 0 => 'AF/AE lock stop',
83
+ 1 => 'AE lock/AF',
84
+ 2 => 'AF/AF lock, No AE lock',
85
+ 3 => 'AE/AF, No AE lock',
86
+ },
87
+ },
88
+ 5 => {
89
+ Name => 'ManualTv',
90
+ Description => 'Manual Tv/Av For M',
91
+ PrintConv => {
92
+ 0 => 'Tv=Main/Av=Control',
93
+ 1 => 'Tv=Control/Av=Main',
94
+ 2 => 'Tv=Main/Av=Main w/o lens',
95
+ 3 => 'Tv=Control/Av=Main w/o lens',
96
+ },
97
+ },
98
+ 6 => {
99
+ Name => 'ExposureLevelIncrements',
100
+ PrintConv => {
101
+ 0 => '1/3-stop set, 1/3-stop comp.',
102
+ 1 => '1-stop set, 1/3-stop comp.',
103
+ 2 => '1/2-stop set, 1/2-stop comp.',
104
+ },
105
+ },
106
+ 7 => {
107
+ Name => 'USMLensElectronicMF',
108
+ PrintConv => {
109
+ 0 => 'Turns on after one-shot AF',
110
+ 1 => 'Turns off after one-shot AF',
111
+ 2 => 'Always turned off',
112
+ },
113
+ },
114
+ 8 => {
115
+ Name => 'LCDPanels',
116
+ Description => 'Top/Back LCD Panels',
117
+ PrintConv => {
118
+ 0 => 'Remain. shots/File no.',
119
+ 1 => 'ISO/Remain. shots',
120
+ 2 => 'ISO/File no.',
121
+ 3 => 'Shots in folder/Remain. shots',
122
+ },
123
+ },
124
+ 9 => {
125
+ Name => 'AEBSequenceAutoCancel',
126
+ Description => 'AEB Sequence/Auto Cancel',
127
+ PrintConv => {
128
+ 0 => '0,-,+/Enabled',
129
+ 1 => '0,-,+/Disabled',
130
+ 2 => '-,0,+/Enabled',
131
+ 3 => '-,0,+/Disabled',
132
+ },
133
+ },
134
+ 10 => {
135
+ Name => 'AFPointIllumination',
136
+ PrintConv => {
137
+ 0 => 'On',
138
+ 1 => 'Off',
139
+ 2 => 'On without dimming',
140
+ 3 => 'Brighter',
141
+ },
142
+ },
143
+ 11 => {
144
+ Name => 'AFPointSelection',
145
+ PrintConv => {
146
+ 0 => 'H=AF+Main/V=AF+Command',
147
+ 1 => 'H=Comp+Main/V=Comp+Command',
148
+ 2 => 'H=Command only/V=Assist+Main',
149
+ 3 => 'H=FEL+Main/V=FEL+Command',
150
+ },
151
+ },
152
+ 12 => {
153
+ Name => 'MirrorLockup',
154
+ PrintConv => \%disableEnable,
155
+ },
156
+ 13 => {
157
+ Name => 'AFPointSpotMetering',
158
+ Description => 'No. AF Points/Spot Metering',
159
+ PrintConv => {
160
+ 0 => '45/Center AF point',
161
+ 1 => '11/Active AF point',
162
+ 2 => '11/Center AF point',
163
+ 3 => '9/Active AF point',
164
+ },
165
+ },
166
+ 14 => {
167
+ Name => 'FillFlashAutoReduction',
168
+ PrintConv => \%enableDisable,
169
+ },
170
+ 15 => {
171
+ Name => 'ShutterCurtainSync',
172
+ PrintConv => {
173
+ 0 => '1st-curtain sync',
174
+ 1 => '2nd-curtain sync',
175
+ },
176
+ },
177
+ 16 => {
178
+ Name => 'SafetyShiftInAvOrTv',
179
+ PrintConv => \%disableEnable,
180
+ },
181
+ 17 => {
182
+ Name => 'AFPointActivationArea',
183
+ PrintConv => {
184
+ 0 => 'Single AF point',
185
+ 1 => 'Expanded (TTL. of 7 AF points)',
186
+ 2 => 'Automatic expanded (max. 13)',
187
+ },
188
+ },
189
+ 18 => {
190
+ Name => 'SwitchToRegisteredAFPoint',
191
+ PrintConv => {
192
+ 0 => 'Assist + AF',
193
+ 1 => 'Assist',
194
+ 2 => 'Only while pressing assist',
195
+ },
196
+ },
197
+ 19 => {
198
+ Name => 'LensAFStopButton',
199
+ PrintConv => {
200
+ 0 => 'AF stop',
201
+ 1 => 'AF start',
202
+ 2 => 'AE lock while metering',
203
+ 3 => 'AF point: M -> Auto / Auto -> Ctr.',
204
+ 4 => 'AF mode: ONE SHOT <-> AI SERVO',
205
+ 5 => 'IS start',
206
+ },
207
+ },
208
+ 20 => {
209
+ Name => 'AIServoTrackingSensitivity',
210
+ PrintConv => {
211
+ 0 => 'Standard',
212
+ 1 => 'Slow',
213
+ 2 => 'Moderately slow',
214
+ 3 => 'Moderately fast',
215
+ 4 => 'Fast',
216
+ },
217
+ },
218
+ 21 => {
219
+ Name => 'AIServoContinuousShooting',
220
+ PrintConv => {
221
+ 0 => 'Shooting not possible without focus',
222
+ 1 => 'Shooting possible without focus',
223
+ },
224
+ },
225
+ );
226
+
227
+ # Custom functions for the 5D (ref 3)
228
+ %Image::ExifTool::CanonCustom::Functions5D = (
229
+ GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
230
+ PROCESS_PROC => \&ProcessCanonCustom,
231
+ WRITE_PROC => \&WriteCanonCustom,
232
+ CHECK_PROC => \&CheckCanonCustom,
233
+ WRITABLE => 'int8u',
234
+ 0 => {
235
+ Name => 'FocusingScreen',
236
+ PrintConv => {
237
+ 0 => 'Ee-A',
238
+ 1 => 'Ee-D',
239
+ 2 => 'Ee-S',
240
+ },
241
+ },
242
+ 1 => {
243
+ Name => 'SetFunctionWhenShooting',
244
+ PrintConv => {
245
+ 0 => 'Default (no function)',
246
+ 1 => 'Change quality',
247
+ 2 => 'Change Parameters',
248
+ 3 => 'Menu display',
249
+ 4 => 'Image replay',
250
+ },
251
+ },
252
+ 2 => {
253
+ Name => 'LongExposureNoiseReduction',
254
+ PrintConv => {
255
+ 0 => 'Off',
256
+ 1 => 'Auto',
257
+ 2 => 'On',
258
+ },
259
+ },
260
+ 3 => {
261
+ Name => 'FlashSyncSpeedAv',
262
+ PrintConv => {
263
+ 0 => 'Auto',
264
+ 1 => '1/200 Fixed',
265
+ },
266
+ },
267
+ 4 => {
268
+ Name => 'Shutter-AELock',
269
+ PrintConv => {
270
+ 0 => 'AF/AE lock',
271
+ 1 => 'AE lock/AF',
272
+ 2 => 'AF/AF lock, No AE lock',
273
+ 3 => 'AE/AF, No AE lock',
274
+ },
275
+ },
276
+ 5 => {
277
+ Name => 'AFAssistBeam',
278
+ PrintConv => {
279
+ 0 => 'Emits',
280
+ 1 => 'Does not emit',
281
+ },
282
+ },
283
+ 6 => {
284
+ Name => 'ExposureLevelIncrements',
285
+ PrintConv => {
286
+ 0 => '1/3 Stop',
287
+ 1 => '1/2 Stop',
288
+ },
289
+ },
290
+ 7 => {
291
+ Name => 'FlashFiring',
292
+ PrintConv => {
293
+ 0 => 'Fires',
294
+ 1 => 'Does not fire',
295
+ },
296
+ },
297
+ 8 => {
298
+ Name => 'ISOExpansion',
299
+ PrintConv => \%offOn,
300
+ },
301
+ 9 => {
302
+ Name => 'AEBSequenceAutoCancel',
303
+ Description => 'AEB Sequence/Auto Cancel',
304
+ PrintConv => {
305
+ 0 => '0,-,+/Enabled',
306
+ 1 => '0,-,+/Disabled',
307
+ 2 => '-,0,+/Enabled',
308
+ 3 => '-,0,+/Disabled',
309
+ },
310
+ },
311
+ 10 => {
312
+ Name => 'SuperimposedDisplay',
313
+ PrintConv => \%onOff,
314
+ },
315
+ 11 => {
316
+ Name => 'MenuButtonDisplayPosition',
317
+ PrintConv => {
318
+ 0 => 'Previous (top if power off)',
319
+ 1 => 'Previous',
320
+ 2 => 'Top',
321
+ },
322
+ },
323
+ 12 => {
324
+ Name => 'MirrorLockup',
325
+ PrintConv => \%disableEnable,
326
+ },
327
+ 13 => {
328
+ Name => 'AFPointSelectionMethod',
329
+ PrintConv => {
330
+ 0 => 'Normal',
331
+ 1 => 'Multi-controller direct',
332
+ 2 => 'Quick Control Dial direct',
333
+ },
334
+ },
335
+ 14 => {
336
+ Name => 'ETTLII',
337
+ Description => 'E-TTL II',
338
+ PrintConv => {
339
+ 0 => 'Evaluative',
340
+ 1 => 'Average',
341
+ },
342
+ },
343
+ 15 => {
344
+ Name => 'ShutterCurtainSync',
345
+ PrintConv => {
346
+ 0 => '1st-curtain sync',
347
+ 1 => '2nd-curtain sync',
348
+ },
349
+ },
350
+ 16 => {
351
+ Name => 'SafetyShiftInAvOrTv',
352
+ PrintConv => \%disableEnable,
353
+ },
354
+ 17 => {
355
+ Name => 'AFPointActivationArea',
356
+ PrintConv => {
357
+ 0 => 'Standard',
358
+ 1 => 'Expanded',
359
+ },
360
+ },
361
+ 18 => {
362
+ Name => 'LCDDisplayReturnToShoot',
363
+ PrintConv => {
364
+ 0 => 'With Shutter Button only',
365
+ 1 => 'Also with * etc.',
366
+ },
367
+ },
368
+ 19 => {
369
+ Name => 'LensAFStopButton',
370
+ PrintConv => {
371
+ 0 => 'AF stop',
372
+ 1 => 'AF start',
373
+ 2 => 'AE lock while metering',
374
+ 3 => 'AF point: M -> Auto / Auto -> Ctr.',
375
+ 4 => 'ONE SHOT <-> AI SERVO',
376
+ 5 => 'IS start',
377
+ },
378
+ },
379
+ 20 => {
380
+ Name => 'AddOriginalDecisionData',
381
+ PrintConv => \%offOn,
382
+ },
383
+ );
384
+
385
+ # Custom functions for 10D
386
+ %Image::ExifTool::CanonCustom::Functions10D = (
387
+ GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
388
+ PROCESS_PROC => \&ProcessCanonCustom,
389
+ WRITE_PROC => \&WriteCanonCustom,
390
+ CHECK_PROC => \&CheckCanonCustom,
391
+ WRITABLE => 'int8u',
392
+ 1 => {
393
+ Name => 'SetButtonWhenShooting',
394
+ PrintConv => {
395
+ 0 => 'Normal (disabled)',
396
+ 1 => 'Image quality',
397
+ 2 => 'Change parameters',
398
+ 3 => 'Menu display',
399
+ 4 => 'Image playback',
400
+ },
401
+ },
402
+ 2 => {
403
+ Name => 'ShutterReleaseNoCFCard',
404
+ Description => 'Shutter Release W/O CF Card',
405
+ PrintConv => {
406
+ 0 => 'Yes',
407
+ 1 => 'No',
408
+ },
409
+ },
410
+ 3 => {
411
+ Name => 'FlashSyncSpeedAv',
412
+ PrintConv => {
413
+ 0 => 'Auto',
414
+ 1 => '1/200 Fixed',
415
+ },
416
+ },
417
+ 4 => {
418
+ Name => 'Shutter-AELock',
419
+ PrintConv => {
420
+ 0 => 'AF/AE lock',
421
+ 1 => 'AE lock/AF',
422
+ 2 => 'AF/AF lock, No AE lock',
423
+ 3 => 'AE/AF, No AE lock',
424
+ },
425
+ },
426
+ 5 => {
427
+ Name => 'AFAssist',
428
+ Description => 'AF Assist/Flash Firing',
429
+ PrintConv => {
430
+ 0 => 'Emits/Fires',
431
+ 1 => 'Does not emit/Fires',
432
+ 2 => 'Only ext. flash emits/Fires',
433
+ 3 => 'Emits/Does not fire',
434
+ },
435
+ },
436
+ 6 => {
437
+ Name => 'ExposureLevelIncrements',
438
+ PrintConv => {
439
+ 0 => '1/2 Stop',
440
+ 1 => '1/3 Stop',
441
+ },
442
+ },
443
+ 7 => {
444
+ Name => 'AFPointRegistration',
445
+ PrintConv => {
446
+ 0 => 'Center',
447
+ 1 => 'Bottom',
448
+ 2 => 'Right',
449
+ 3 => 'Extreme Right',
450
+ 4 => 'Automatic',
451
+ 5 => 'Extreme Left',
452
+ 6 => 'Left',
453
+ 7 => 'Top',
454
+ },
455
+ },
456
+ 8 => {
457
+ Name => 'RawAndJpgRecording',
458
+ PrintConv => {
459
+ 0 => 'RAW+Small/Normal',
460
+ 1 => 'RAW+Small/Fine',
461
+ 2 => 'RAW+Medium/Normal',
462
+ 3 => 'RAW+Medium/Fine',
463
+ 4 => 'RAW+Large/Normal',
464
+ 5 => 'RAW+Large/Fine',
465
+ },
466
+ },
467
+ 9 => {
468
+ Name => 'AEBSequenceAutoCancel',
469
+ Description => 'AEB Sequence/Auto Cancel',
470
+ PrintConv => {
471
+ 0 => '0,-,+/Enabled',
472
+ 1 => '0,-,+/Disabled',
473
+ 2 => '-,0,+/Enabled',
474
+ 3 => '-,0,+/Disabled',
475
+ },
476
+ },
477
+ 10 => {
478
+ Name => 'SuperimposedDisplay',
479
+ PrintConv => \%onOff,
480
+ },
481
+ 11 => {
482
+ Name => 'MenuButtonDisplayPosition',
483
+ PrintConv => {
484
+ 0 => 'Previous (top if power off)',
485
+ 1 => 'Previous',
486
+ 2 => 'Top',
487
+ },
488
+ },
489
+ 12 => {
490
+ Name => 'MirrorLockup',
491
+ PrintConv => \%disableEnable,
492
+ },
493
+ 13 => {
494
+ Name => 'AssistButtonFunction',
495
+ PrintConv => {
496
+ 0 => 'Normal',
497
+ 1 => 'Select Home Position',
498
+ 2 => 'Select HP (while pressing)',
499
+ 3 => 'Av+/- (AF point by QCD)',
500
+ 4 => 'FE lock',
501
+ },
502
+ },
503
+ 14 => {
504
+ Name => 'FillFlashAutoReduction',
505
+ PrintConv => \%enableDisable,
506
+ },
507
+ 15 => {
508
+ Name => 'ShutterCurtainSync',
509
+ PrintConv => {
510
+ 0 => '1st-curtain sync',
511
+ 1 => '2nd-curtain sync',
512
+ },
513
+ },
514
+ 16 => {
515
+ Name => 'SafetyShiftInAvOrTv',
516
+ PrintConv => \%disableEnable,
517
+ },
518
+ 17 => {
519
+ Name => 'LensAFStopButton',
520
+ PrintConv => {
521
+ 0 => 'AF stop',
522
+ 1 => 'AF start',
523
+ 2 => 'AE lock while metering',
524
+ 3 => 'AF point: M->Auto/Auto->ctr',
525
+ 4 => 'One Shot <-> AI servo',
526
+ 5 => 'IS start',
527
+ },
528
+ },
529
+ );
530
+
531
+ # Custom functions for the 20D (ref 2)
532
+ %Image::ExifTool::CanonCustom::Functions20D = (
533
+ GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
534
+ PROCESS_PROC => \&ProcessCanonCustom,
535
+ WRITE_PROC => \&WriteCanonCustom,
536
+ CHECK_PROC => \&CheckCanonCustom,
537
+ WRITABLE => 'int8u',
538
+ 0 => {
539
+ Name => 'SetFunctionWhenShooting',
540
+ PrintConv => {
541
+ 0 => 'Default (no function)',
542
+ 1 => 'Change quality',
543
+ 2 => 'Change Parameters',
544
+ 3 => 'Menu display',
545
+ 4 => 'Image replay',
546
+ },
547
+ },
548
+ 1 => {
549
+ Name => 'LongExposureNoiseReduction',
550
+ PrintConv => \%offOn,
551
+ },
552
+ 2 => {
553
+ Name => 'FlashSyncSpeedAv',
554
+ PrintConv => {
555
+ 0 => 'Auto',
556
+ 1 => '1/250 Fixed',
557
+ },
558
+ },
559
+ 3 => {
560
+ Name => 'Shutter-AELock',
561
+ PrintConv => {
562
+ 0 => 'AF/AE lock',
563
+ 1 => 'AE lock/AF',
564
+ 2 => 'AF/AF lock, No AE lock',
565
+ 3 => 'AE/AF, No AE lock',
566
+ },
567
+ },
568
+ 4 => {
569
+ Name => 'AFAssistBeam',
570
+ PrintConv => {
571
+ 0 => 'Emits',
572
+ 1 => 'Does not emit',
573
+ 2 => 'Only ext. flash emits',
574
+ },
575
+ },
576
+ 5 => {
577
+ Name => 'ExposureLevelIncrements',
578
+ PrintConv => {
579
+ 0 => '1/3 Stop',
580
+ 1 => '1/2 Stop',
581
+ },
582
+ },
583
+ 6 => {
584
+ Name => 'FlashFiring',
585
+ PrintConv => {
586
+ 0 => 'Fires',
587
+ 1 => 'Does not fire',
588
+ },
589
+ },
590
+ 7 => {
591
+ Name => 'ISOExpansion',
592
+ PrintConv => \%offOn,
593
+ },
594
+ 8 => {
595
+ Name => 'AEBSequenceAutoCancel',
596
+ Description => 'AEB Sequence/Auto Cancel',
597
+ PrintConv => {
598
+ 0 => '0,-,+/Enabled',
599
+ 1 => '0,-,+/Disabled',
600
+ 2 => '-,0,+/Enabled',
601
+ 3 => '-,0,+/Disabled',
602
+ },
603
+ },
604
+ 9 => {
605
+ Name => 'SuperimposedDisplay',
606
+ PrintConv => \%onOff,
607
+ },
608
+ 10 => {
609
+ Name => 'MenuButtonDisplayPosition',
610
+ PrintConv => {
611
+ 0 => 'Previous (top if power off)',
612
+ 1 => 'Previous',
613
+ 2 => 'Top',
614
+ },
615
+ },
616
+ 11 => {
617
+ Name => 'MirrorLockup',
618
+ PrintConv => \%disableEnable,
619
+ },
620
+ 12 => {
621
+ Name => 'AFPointSelectionMethod',
622
+ PrintConv => {
623
+ 0 => 'Normal',
624
+ 1 => 'Multi-controller direct',
625
+ 2 => 'Quick Control Dial direct',
626
+ },
627
+ },
628
+ 13 => {
629
+ Name => 'ETTLII',
630
+ Description => 'E-TTL II',
631
+ PrintConv => {
632
+ 0 => 'Evaluative',
633
+ 1 => 'Average',
634
+ },
635
+ },
636
+ 14 => {
637
+ Name => 'ShutterCurtainSync',
638
+ PrintConv => {
639
+ 0 => '1st-curtain sync',
640
+ 1 => '2nd-curtain sync',
641
+ },
642
+ },
643
+ 15 => {
644
+ Name => 'SafetyShiftInAvOrTv',
645
+ PrintConv => \%disableEnable,
646
+ },
647
+ 16 => {
648
+ Name => 'LensAFStopButton',
649
+ PrintConv => {
650
+ 0 => 'AF stop',
651
+ 1 => 'AF start',
652
+ 2 => 'AE lock while metering',
653
+ 3 => 'AF point: M -> Auto / Auto -> Ctr.',
654
+ 4 => 'ONE SHOT <-> AI SERVO',
655
+ 5 => 'IS start',
656
+ },
657
+ },
658
+ 17 => {
659
+ Name => 'AddOriginalDecisionData',
660
+ PrintConv => \%offOn,
661
+ },
662
+ );
663
+
664
+ # Custom functions for the 30D (PH)
665
+ %Image::ExifTool::CanonCustom::Functions30D = (
666
+ GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
667
+ PROCESS_PROC => \&ProcessCanonCustom,
668
+ WRITE_PROC => \&WriteCanonCustom,
669
+ CHECK_PROC => \&CheckCanonCustom,
670
+ WRITABLE => 'int8u',
671
+ 1 => {
672
+ Name => 'SetFunctionWhenShooting',
673
+ PrintConv => {
674
+ 0 => 'Default (no function)',
675
+ 1 => 'Change quality',
676
+ 2 => 'Change Picture Style',
677
+ 3 => 'Menu display',
678
+ 4 => 'Image replay',
679
+ },
680
+ },
681
+ 2 => {
682
+ Name => 'LongExposureNoiseReduction',
683
+ PrintConv => {
684
+ 0 => 'Off',
685
+ 1 => 'Auto',
686
+ 2 => 'On',
687
+ },
688
+ },
689
+ 3 => {
690
+ Name => 'FlashSyncSpeedAv',
691
+ PrintConv => {
692
+ 0 => 'Auto',
693
+ 1 => '1/250 Fixed',
694
+ },
695
+ },
696
+ 4 => {
697
+ Name => 'Shutter-AELock',
698
+ PrintConv => {
699
+ 0 => 'AF/AE lock',
700
+ 1 => 'AE lock/AF',
701
+ 2 => 'AF/AF lock, No AE lock',
702
+ 3 => 'AE/AF, No AE lock',
703
+ },
704
+ },
705
+ 5 => {
706
+ Name => 'AFAssistBeam',
707
+ PrintConv => {
708
+ 0 => 'Emits',
709
+ 1 => 'Does not emit',
710
+ 2 => 'Only ext. flash emits',
711
+ },
712
+ },
713
+ 6 => {
714
+ Name => 'ExposureLevelIncrements',
715
+ PrintConv => {
716
+ 0 => '1/3 Stop',
717
+ 1 => '1/2 Stop',
718
+ },
719
+ },
720
+ 7 => {
721
+ Name => 'FlashFiring',
722
+ PrintConv => {
723
+ 0 => 'Fires',
724
+ 1 => 'Does not fire',
725
+ },
726
+ },
727
+ 8 => {
728
+ Name => 'ISOExpansion',
729
+ PrintConv => \%offOn,
730
+ },
731
+ 9 => {
732
+ Name => 'AEBSequenceAutoCancel',
733
+ Description => 'AEB Sequence/Auto Cancel',
734
+ PrintConv => {
735
+ 0 => '0,-,+/Enabled',
736
+ 1 => '0,-,+/Disabled',
737
+ 2 => '-,0,+/Enabled',
738
+ 3 => '-,0,+/Disabled',
739
+ },
740
+ },
741
+ 10 => {
742
+ Name => 'SuperimposedDisplay',
743
+ PrintConv => \%onOff,
744
+ },
745
+ 11 => {
746
+ Name => 'MenuButtonDisplayPosition',
747
+ PrintConv => {
748
+ 0 => 'Previous (top if power off)',
749
+ 1 => 'Previous',
750
+ 2 => 'Top',
751
+ },
752
+ },
753
+ 12 => {
754
+ Name => 'MirrorLockup',
755
+ PrintConv => \%disableEnable,
756
+ },
757
+ 13 => {
758
+ Name => 'AFPointSelectionMethod',
759
+ PrintConv => {
760
+ 0 => 'Normal',
761
+ 1 => 'Multi-controller direct',
762
+ 2 => 'Quick Control Dial direct',
763
+ },
764
+ },
765
+ 14 => {
766
+ Name => 'ETTLII',
767
+ Description => 'E-TTL II',
768
+ PrintConv => {
769
+ 0 => 'Evaluative',
770
+ 1 => 'Average',
771
+ },
772
+ },
773
+ 15 => {
774
+ Name => 'ShutterCurtainSync',
775
+ PrintConv => {
776
+ 0 => '1st-curtain sync',
777
+ 1 => '2nd-curtain sync',
778
+ },
779
+ },
780
+ 16 => {
781
+ Name => 'SafetyShiftInAvOrTv',
782
+ PrintConv => \%disableEnable,
783
+ },
784
+ 17 => {
785
+ Name => 'MagnifiedView',
786
+ PrintConv => {
787
+ 0 => 'Image playback only',
788
+ 1 => 'Image review and playback',
789
+ },
790
+ },
791
+ 18 => {
792
+ Name => 'LensAFStopButton',
793
+ PrintConv => {
794
+ 0 => 'AF stop',
795
+ 1 => 'AF start',
796
+ 2 => 'AE lock while metering',
797
+ 3 => 'AF point: M -> Auto / Auto -> Ctr.',
798
+ 4 => 'ONE SHOT <-> AI SERVO',
799
+ 5 => 'IS start',
800
+ },
801
+ },
802
+ 19 => {
803
+ Name => 'AddOriginalDecisionData',
804
+ PrintConv => \%offOn,
805
+ },
806
+ );
807
+
808
+ # Custom functions for the 350D (PH)
809
+ %Image::ExifTool::CanonCustom::Functions350D = (
810
+ GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
811
+ PROCESS_PROC => \&ProcessCanonCustom,
812
+ WRITE_PROC => \&WriteCanonCustom,
813
+ CHECK_PROC => \&CheckCanonCustom,
814
+ WRITABLE => 'int8u',
815
+ 0 => {
816
+ Name => 'SetButtonCrossKeysFunc',
817
+ PrintConv => {
818
+ 0 => 'Normal',
819
+ 1 => 'Set: Quality',
820
+ 2 => 'Set: Parameter',
821
+ 3 => 'Set: Playback',
822
+ 4 => 'Cross keys: AF point select',
823
+ },
824
+ },
825
+ 1 => {
826
+ Name => 'LongExposureNoiseReduction',
827
+ PrintConv => \%offOn,
828
+ },
829
+ 2 => {
830
+ Name => 'FlashSyncSpeedAv',
831
+ PrintConv => {
832
+ 0 => 'Auto',
833
+ 1 => '1/200 Fixed',
834
+ },
835
+ },
836
+ 3 => {
837
+ Name => 'Shutter-AELock',
838
+ PrintConv => {
839
+ 0 => 'AF/AE lock',
840
+ 1 => 'AE lock/AF',
841
+ 2 => 'AF/AF lock, No AE lock',
842
+ 3 => 'AE/AF, No AE lock',
843
+ },
844
+ },
845
+ 4 => {
846
+ Name => 'AFAssistBeam',
847
+ PrintConv => {
848
+ 0 => 'Emits',
849
+ 1 => 'Does not emit',
850
+ 2 => 'Only ext. flash emits',
851
+ },
852
+ },
853
+ 5 => {
854
+ Name => 'ExposureLevelIncrements',
855
+ PrintConv => {
856
+ 0 => '1/3 Stop',
857
+ 1 => '1/2 Stop',
858
+ },
859
+ },
860
+ 6 => {
861
+ Name => 'MirrorLockup',
862
+ PrintConv => \%disableEnable,
863
+ },
864
+ 7 => {
865
+ Name => 'ETTLII',
866
+ Description => 'E-TTL II',
867
+ PrintConv => {
868
+ 0 => 'Evaluative',
869
+ 1 => 'Average',
870
+ },
871
+ },
872
+ 8 => {
873
+ Name => 'ShutterCurtainSync',
874
+ PrintConv => {
875
+ 0 => '1st-curtain sync',
876
+ 1 => '2nd-curtain sync',
877
+ },
878
+ },
879
+ );
880
+
881
+ # Custom functions for the 400D (PH)
882
+ %Image::ExifTool::CanonCustom::Functions400D = (
883
+ GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
884
+ PROCESS_PROC => \&ProcessCanonCustom,
885
+ WRITE_PROC => \&WriteCanonCustom,
886
+ CHECK_PROC => \&CheckCanonCustom,
887
+ WRITABLE => 'int8u',
888
+ 0 => {
889
+ Name => 'SetButtonCrossKeysFunc',
890
+ PrintConv => {
891
+ 0 => 'Set: Picture Style',
892
+ 1 => 'Set: Quality',
893
+ 2 => 'Set: Flash Exposure Comp',
894
+ 3 => 'Set: Playback',
895
+ 4 => 'Cross keys: AF point select',
896
+ },
897
+ },
898
+ 1 => {
899
+ Name => 'LongExposureNoiseReduction',
900
+ PrintConv => {
901
+ 0 => 'Off',
902
+ 1 => 'Auto',
903
+ 2 => 'On',
904
+ },
905
+ },
906
+ 2 => {
907
+ Name => 'FlashSyncSpeedAv',
908
+ PrintConv => {
909
+ 0 => 'Auto',
910
+ 1 => '1/200 Fixed',
911
+ },
912
+ },
913
+ 3 => {
914
+ Name => 'Shutter-AELock',
915
+ PrintConv => {
916
+ 0 => 'AF/AE lock',
917
+ 1 => 'AE lock/AF',
918
+ 2 => 'AF/AF lock, No AE lock',
919
+ 3 => 'AE/AF, No AE lock',
920
+ },
921
+ },
922
+ 4 => {
923
+ Name => 'AFAssistBeam',
924
+ PrintConv => {
925
+ 0 => 'Emits',
926
+ 1 => 'Does not emit',
927
+ 2 => 'Only ext. flash emits',
928
+ },
929
+ },
930
+ 5 => {
931
+ Name => 'ExposureLevelIncrements',
932
+ PrintConv => {
933
+ 0 => '1/3 Stop',
934
+ 1 => '1/2 Stop',
935
+ },
936
+ },
937
+ 6 => {
938
+ Name => 'MirrorLockup',
939
+ PrintConv => \%disableEnable,
940
+ },
941
+ 7 => {
942
+ Name => 'ETTLII',
943
+ Description => 'E-TTL II',
944
+ PrintConv => {
945
+ 0 => 'Evaluative',
946
+ 1 => 'Average',
947
+ },
948
+ },
949
+ 8 => {
950
+ Name => 'ShutterCurtainSync',
951
+ PrintConv => {
952
+ 0 => '1st-curtain sync',
953
+ 1 => '2nd-curtain sync',
954
+ },
955
+ },
956
+ 9 => {
957
+ Name => 'MagnifiedView',
958
+ PrintConv => {
959
+ 0 => 'Image playback only',
960
+ 1 => 'Image review and playback',
961
+ },
962
+ },
963
+ 10 => {
964
+ Name => 'LCDDisplayAtPowerOn',
965
+ PrintConv => {
966
+ 0 => 'Display',
967
+ 1 => 'Retain power off status',
968
+ },
969
+ },
970
+ );
971
+
972
+ # Custom functions for the D30/D60
973
+ %Image::ExifTool::CanonCustom::FunctionsD30 = (
974
+ GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
975
+ PROCESS_PROC => \&ProcessCanonCustom,
976
+ WRITE_PROC => \&WriteCanonCustom,
977
+ CHECK_PROC => \&CheckCanonCustom,
978
+ NOTES => 'Custom functions for the EOS D30 and D60.',
979
+ WRITABLE => 'int8u',
980
+ 1 => {
981
+ Name => 'LongExposureNoiseReduction',
982
+ PrintConv => \%offOn,
983
+ },
984
+ 2 => {
985
+ Name => 'Shutter-AELock',
986
+ PrintConv => {
987
+ 0 => 'AF/AE lock',
988
+ 1 => 'AE lock/AF',
989
+ 2 => 'AF/AF lock',
990
+ 3 => 'AE+release/AE+AF',
991
+ },
992
+ },
993
+ 3 => {
994
+ Name => 'MirrorLockup',
995
+ PrintConv => \%disableEnable,
996
+ },
997
+ 4 => {
998
+ Name => 'ExposureLevelIncrements',
999
+ PrintConv => {
1000
+ 0 => '1/2 Stop',
1001
+ 1 => '1/3 Stop',
1002
+ },
1003
+ },
1004
+ 5 => {
1005
+ Name => 'AFAssist',
1006
+ PrintConv => {
1007
+ 0 => 'Emits/Fires',
1008
+ 1 => 'Does not emit/Fires',
1009
+ 2 => 'Only ext. flash emits/Fires',
1010
+ 3 => 'Emits/Does not fire',
1011
+ },
1012
+ },
1013
+ 6 => {
1014
+ Name => 'FlashSyncSpeedAv',
1015
+ PrintConv => {
1016
+ 0 => 'Auto',
1017
+ 1 => '1/200 Fixed',
1018
+ },
1019
+ },
1020
+ 7 => {
1021
+ Name => 'AEBSequenceAutoCancel',
1022
+ Description => 'AEB Sequence/Auto Cancel',
1023
+ PrintConv => {
1024
+ 0 => '0,-,+/Enabled',
1025
+ 1 => '0,-,+/Disabled',
1026
+ 2 => '-,0,+/Enabled',
1027
+ 3 => '-,0,+/Disabled',
1028
+ },
1029
+ },
1030
+ 8 => {
1031
+ Name => 'ShutterCurtainSync',
1032
+ PrintConv => {
1033
+ 0 => '1st-curtain sync',
1034
+ 1 => '2nd-curtain sync',
1035
+ },
1036
+ },
1037
+ 9 => {
1038
+ Name => 'LensAFStopButton',
1039
+ PrintConv => {
1040
+ 0 => 'AF Stop',
1041
+ 1 => 'Operate AF',
1042
+ 2 => 'Lock AE and start timer',
1043
+ },
1044
+ },
1045
+ 10 => {
1046
+ Name => 'FillFlashAutoReduction',
1047
+ PrintConv => \%enableDisable,
1048
+ },
1049
+ 11 => {
1050
+ Name => 'MenuButtonReturn',
1051
+ PrintConv => {
1052
+ 0 => 'Top',
1053
+ 1 => 'Previous (volatile)',
1054
+ 2 => 'Previous',
1055
+ },
1056
+ },
1057
+ 12 => {
1058
+ Name => 'SetButtonWhenShooting',
1059
+ PrintConv => {
1060
+ 0 => 'Default (no function)',
1061
+ 1 => 'Image quality',
1062
+ 2 => 'Change ISO speed',
1063
+ 3 => 'Change parameters',
1064
+ },
1065
+ },
1066
+ 13 => {
1067
+ Name => 'SensorCleaning',
1068
+ PrintConv => \%disableEnable,
1069
+ },
1070
+ 14 => {
1071
+ Name => 'SuperimposedDisplay',
1072
+ PrintConv => \%onOff,
1073
+ },
1074
+ 15 => {
1075
+ Name => 'ShutterReleaseNoCFCard',
1076
+ Description => 'Shutter Release W/O CF Card',
1077
+ PrintConv => {
1078
+ 0 => 'Yes',
1079
+ 1 => 'No',
1080
+ },
1081
+ },
1082
+ );
1083
+
1084
+ # Custom functions for unknown cameras
1085
+ %Image::ExifTool::CanonCustom::FuncsUnknown = (
1086
+ GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
1087
+ PROCESS_PROC => \&ProcessCanonCustom,
1088
+ );
1089
+
1090
+ # 1D personal function settings (ref PH)
1091
+ %Image::ExifTool::CanonCustom::PersonalFuncs = (
1092
+ GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
1093
+ PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
1094
+ WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
1095
+ CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
1096
+ WRITABLE => 1,
1097
+ NOTES => 'Personal function settings for the EOS-1D.',
1098
+ FORMAT => 'int16u',
1099
+ FIRST_ENTRY => 1,
1100
+ 1 => { Name => 'PF0CustomFuncRegistration', %convPFn },
1101
+ 2 => { Name => 'PF1DisableShootingModes', %convPFn },
1102
+ 3 => { Name => 'PF2DisableMeteringModes', %convPFn },
1103
+ 4 => { Name => 'PF3ManualExposureMetering', %convPFn },
1104
+ 5 => { Name => 'PF4ExposureTimeLimits', %convPFn },
1105
+ 6 => { Name => 'PF5ApertureLimits', %convPFn },
1106
+ 7 => { Name => 'PF6PresetShootingModes', %convPFn },
1107
+ 8 => { Name => 'PF7BracketContinuousShoot', %convPFn },
1108
+ 9 => { Name => 'PF8SetBracketShots', %convPFn },
1109
+ 10 => { Name => 'PF9ChangeBracketSequence', %convPFn },
1110
+ 11 => { Name => 'PF10RetainProgramShift', %convPFn },
1111
+ #12 => { Name => 'PF11Unused', %convPFn },
1112
+ #13 => { Name => 'PF12Unused', %convPFn },
1113
+ 14 => { Name => 'PF13DrivePriority', %convPFn },
1114
+ 15 => { Name => 'PF14DisableFocusSearch', %convPFn },
1115
+ 16 => { Name => 'PF15DisableAFAssistBeam', %convPFn },
1116
+ 17 => { Name => 'PF16AutoFocusPointShoot', %convPFn },
1117
+ 18 => { Name => 'PF17DisableAFPointSel', %convPFn },
1118
+ 19 => { Name => 'PF18EnableAutoAFPointSel', %convPFn },
1119
+ 20 => { Name => 'PF19ContinuousShootSpeed', %convPFn },
1120
+ 21 => { Name => 'PF20LimitContinousShots', %convPFn },
1121
+ 22 => { Name => 'PF21EnableQuietOperation', %convPFn },
1122
+ #23 => { Name => 'PF22Unused', %convPFn },
1123
+ 24 => { Name => 'PF23SetTimerLengths', %convPFn },
1124
+ 25 => { Name => 'PF24LightLCDDuringBulb', %convPFn },
1125
+ 26 => { Name => 'PF25DefaultClearSettings', %convPFn },
1126
+ 27 => { Name => 'PF26ShortenReleaseLag', %convPFn },
1127
+ 28 => { Name => 'PF27ReverseDialRotation', %convPFn },
1128
+ 29 => { Name => 'PF28NoQuickDialExpComp', %convPFn },
1129
+ 30 => { Name => 'PF29QuickDialSwitchOff', %convPFn },
1130
+ 31 => { Name => 'PF30EnlargementMode', %convPFn },
1131
+ 32 => { Name => 'PF31OriginalDecisionData', %convPFn },
1132
+ );
1133
+
1134
+ # 1D personal function values (ref PH)
1135
+ %Image::ExifTool::CanonCustom::PersonalFuncValues = (
1136
+ GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
1137
+ PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
1138
+ WRITE_PROC => \&Image::ExifTool::WriteBinaryData,
1139
+ CHECK_PROC => \&Image::ExifTool::CheckBinaryData,
1140
+ WRITABLE => 1,
1141
+ FORMAT => 'int16u',
1142
+ FIRST_ENTRY => 1,
1143
+ 1 => 'PF1Value',
1144
+ 2 => 'PF2Value',
1145
+ 3 => 'PF3Value',
1146
+ 4 => {
1147
+ Name => 'PF4ExposureTimeMin',
1148
+ RawConv => '$val > 0 ? $val : 0',
1149
+ ValueConv => 'exp(-Image::ExifTool::Canon::CanonEv($val*4)*log(2))*1000/8',
1150
+ ValueConvInv => 'Image::ExifTool::Canon::CanonEvInv(-log($val*8/1000)/log(2))/4',
1151
+ PrintConv => 'Image::ExifTool::Exif::PrintExposureTime($val)',
1152
+ PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
1153
+ },
1154
+ 5 => {
1155
+ Name => 'PF4ExposureTimeMax',
1156
+ RawConv => '$val > 0 ? $val : 0',
1157
+ ValueConv => 'exp(-Image::ExifTool::Canon::CanonEv($val*4)*log(2))*1000/8',
1158
+ ValueConvInv => 'Image::ExifTool::Canon::CanonEvInv(-log($val*8/1000)/log(2))/4',
1159
+ PrintConv => 'Image::ExifTool::Exif::PrintExposureTime($val)',
1160
+ PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
1161
+ },
1162
+ 6 => {
1163
+ Name => 'PF5ApertureMin',
1164
+ RawConv => '$val > 0 ? $val : 0',
1165
+ ValueConv => 'exp(Image::ExifTool::Canon::CanonEv($val*4-32)*log(2)/2)',
1166
+ ValueConvInv => '(Image::ExifTool::Canon::CanonEvInv(log($val)*2/log(2))+32)/4',
1167
+ PrintConv => 'sprintf("%.2g",$val)',
1168
+ PrintConvInv => '$val',
1169
+ },
1170
+ 7 => {
1171
+ Name => 'PF5ApertureMax',
1172
+ RawConv => '$val > 0 ? $val : 0',
1173
+ ValueConv => 'exp(Image::ExifTool::Canon::CanonEv($val*4-32)*log(2)/2)',
1174
+ ValueConvInv => '(Image::ExifTool::Canon::CanonEvInv(log($val)*2/log(2))+32)/4',
1175
+ PrintConv => 'sprintf("%.2g",$val)',
1176
+ PrintConvInv => '$val',
1177
+ },
1178
+ 8 => 'PF8BracketShots',
1179
+ 9 => 'PF19ShootingSpeedLow',
1180
+ 10 => 'PF19ShootingSpeedHigh',
1181
+ 11 => 'PF20MaxContinousShots',
1182
+ 12 => 'PF23ShutterButtonTime',
1183
+ 13 => 'PF23FELockTime',
1184
+ 14 => 'PF23PostReleaseTime',
1185
+ 15 => 'PF25AEMode',
1186
+ 16 => 'PF25MeteringMode',
1187
+ 17 => 'PF25DriveMode',
1188
+ 18 => 'PF25AFMode',
1189
+ 19 => 'PF25AFPointSel',
1190
+ 20 => 'PF25ImageSize',
1191
+ 21 => 'PF25WBMode',
1192
+ 22 => 'PF25Parameters',
1193
+ 23 => 'PF25ColorMatrix',
1194
+ 24 => 'PF27Value',
1195
+ );
1196
+
1197
+ # Custom functions used by the 1D Mark III and later models (ref PH)
1198
+ %Image::ExifTool::CanonCustom::Functions2 = (
1199
+ GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
1200
+ PROCESS_PROC => \&ProcessCanonCustom2,
1201
+ CHECK_PROC => \&Image::ExifTool::Exif::CheckExif,
1202
+ WRITE_PROC => \&WriteCanonCustom2,
1203
+ WRITABLE => 'int32s',
1204
+ NOTES => q{
1205
+ Beginning with the EOS 1D Mark III, Canon finally created a set of custom
1206
+ function tags which are (reasonably) consistent across models. The EOS 1D
1207
+ Mark III has 57 custom function tags divided into four main groups: 1.
1208
+ Exposure (0x0101-0x010f), 2. Image (0x0201-0x0203), Flash Exposure
1209
+ (0x0304-0x0306) and Display (0x0407-0x0409), 3. Auto Focus (0x0501-0x050e)
1210
+ and Drive (0x060f-0x0611), and 4. Operation (0x0701-0x070a) and Others
1211
+ (0x080b-0x0810). The table below lists tags used by the EOS 1D Mark III, as
1212
+ well as newer tags and values added by later models.
1213
+ },
1214
+ # grouped in 4 groups:
1215
+ # 1) Exposure
1216
+ 0x0101 => [
1217
+ {
1218
+ Name => 'ExposureLevelIncrements',
1219
+ Condition => '$$self{Model} =~ /\b1Ds?\b/',
1220
+ Notes => '1DmkIII and 1DmkIV',
1221
+ PrintConv => {
1222
+ 0 => '1/3-stop set, 1/3-stop comp.',
1223
+ 1 => '1-stop set, 1/3-stop comp.',
1224
+ 2 => '1/2-stop set, 1/2-stop comp.',
1225
+ },
1226
+ },
1227
+ {
1228
+ Name => 'ExposureLevelIncrements',
1229
+ Notes => 'other models',
1230
+ PrintConv => {
1231
+ 0 => '1/3 Stop',
1232
+ 1 => '1/2 Stop',
1233
+ },
1234
+ },
1235
+ ],
1236
+ 0x0102 => {
1237
+ Name => 'ISOSpeedIncrements',
1238
+ PrintConv => {
1239
+ 0 => '1/3 Stop',
1240
+ 1 => '1 Stop',
1241
+ },
1242
+ },
1243
+ 0x0103 => [
1244
+ {
1245
+ Name => 'ISOSpeedRange',
1246
+ Condition => '$$self{Model} =~ /\b1D/',
1247
+ Notes => '1DmkIII and 1DmkIV',
1248
+ Count => 3,
1249
+ # (this decoding may not be valid for CR2 images?)
1250
+ ValueConv => [
1251
+ undef,
1252
+ # this may also be set to "H" (Hi6400) -- is this the -1 value I see? - PH
1253
+ '$val < 2 ? $val : ($val < 1000 ? exp(($val/8-9)*log(2))*100 : 0)', # (educated guess)
1254
+ # this may also be set to "L" (Lo50) -- is this the 1 value I see? - PH
1255
+ '$val < 2 ? $val : ($val < 1000 ? exp(($val/8-9)*log(2))*100 : 0)', # (educated guess)
1256
+ ],
1257
+ ValueConvInv => [
1258
+ undef,
1259
+ '$val < 2 ? $val : int(8*(log($val/100)/log(2)+9) + 0.5)',
1260
+ '$val < 2 ? $val : int(8*(log($val/100)/log(2)+9) + 0.5)',
1261
+ ],
1262
+ PrintConv => [
1263
+ \%disableEnable,
1264
+ 'sprintf("Max %.0f",$val)',
1265
+ 'sprintf("Min %.0f",$val)',
1266
+ ],
1267
+ PrintConvInv => [
1268
+ undef,
1269
+ '$val=~/(-?[\d.]+)/ ? $1 : 0',
1270
+ '$val=~/(-?[\d.]+)/ ? $1 : 0',
1271
+ ],
1272
+ },
1273
+ {
1274
+ Name => 'ISOExpansion',
1275
+ Notes => 'other models',
1276
+ PrintConv => \%offOn,
1277
+ },
1278
+ ],
1279
+ 0x0104 => {
1280
+ Name => 'AEBAutoCancel',
1281
+ PrintConv => \%onOff,
1282
+ },
1283
+ 0x0105 => {
1284
+ Name => 'AEBSequence',
1285
+ Notes => 'value of 2 not used by 40D, 50D, 60D, 5DmkII and 7D',
1286
+ PrintConv => {
1287
+ 0 => '0,-,+',
1288
+ 1 => '-,0,+',
1289
+ 2 => '+,0,-',
1290
+ },
1291
+ },
1292
+ 0x0106 => {
1293
+ Name => 'AEBShotCount',
1294
+ Count => -1,
1295
+ Notes => '1 value for the 1DmkIII and 5DmkIII, 2 for the 1DmkIV',
1296
+ PrintConv => [{
1297
+ 0 => 3,
1298
+ 1 => 2,
1299
+ 2 => 5,
1300
+ 3 => 7,
1301
+ }],
1302
+ },
1303
+ 0x0107 => {
1304
+ Name => 'SpotMeterLinkToAFPoint',
1305
+ PrintConv => {
1306
+ 0 => 'Disable (use center AF point)',
1307
+ 1 => 'Enable (use active AF point)',
1308
+ },
1309
+ },
1310
+ 0x0108 => {
1311
+ Name => 'SafetyShift',
1312
+ Notes => 'value of 2 not used by 40D, 50D, 60D, 5DmkII and 7D',
1313
+ PrintConv => {
1314
+ 0 => 'Disable',
1315
+ 1 => 'Enable (Tv/Av)',
1316
+ 2 => 'Enable (ISO speed)',
1317
+ },
1318
+ },
1319
+ 0x0109 => {
1320
+ Name => 'UsableShootingModes',
1321
+ Count => 2,
1322
+ PrintConv => [
1323
+ \%disableEnable,
1324
+ 'sprintf("Flags 0x%x",$val)', # (M, Tv, Av, P, Bulb)
1325
+ ],
1326
+ PrintConvInv => [
1327
+ undef,
1328
+ '$val=~/0x([\dA-F]+)/i ? hex($1) : undef',
1329
+ ],
1330
+ },
1331
+ 0x010a => {
1332
+ Name => 'UsableMeteringModes',
1333
+ Count => 2,
1334
+ PrintConv => [
1335
+ \%disableEnable,
1336
+ 'sprintf("Flags 0x%x",$val)', # (evaluative,partial,spot,center-weighted average)
1337
+ ],
1338
+ PrintConvInv => [
1339
+ undef,
1340
+ '$val=~/0x([\dA-F]+)/i ? hex($1) : undef',
1341
+ ],
1342
+ },
1343
+ 0x010b => {
1344
+ Name => 'ExposureModeInManual',
1345
+ PrintConv => {
1346
+ 0 => 'Specified metering mode',
1347
+ 1 => 'Evaluative metering',
1348
+ 2 => 'Partial metering',
1349
+ 3 => 'Spot metering',
1350
+ 4 => 'Center-weighted average',
1351
+ },
1352
+ },
1353
+ 0x010c => {
1354
+ Name => 'ShutterSpeedRange',
1355
+ Count => 3,
1356
+ ValueConv => [
1357
+ undef,
1358
+ 'exp(-($val/8-7)*log(2))',
1359
+ 'exp(-($val/8-7)*log(2))',
1360
+ ],
1361
+ ValueConvInv => [
1362
+ undef,
1363
+ 'int(-8*(log($val)/log(2)-7) + 0.5)',
1364
+ 'int(-8*(log($val)/log(2)-7) + 0.5)',
1365
+ ],
1366
+ PrintConv => [
1367
+ \%disableEnable,
1368
+ '"Hi " . Image::ExifTool::Exif::PrintExposureTime($val)',
1369
+ '"Lo " . Image::ExifTool::Exif::PrintExposureTime($val)',
1370
+ ],
1371
+ PrintConvInv => [
1372
+ undef,
1373
+ '$val=~m{([\d./]+)} ? eval $1 : 0',
1374
+ '$val=~m{([\d./]+)} ? eval $1 : 0',
1375
+ ],
1376
+ },
1377
+ 0x010d => {
1378
+ Name => 'ApertureRange',
1379
+ Count => 3,
1380
+ ValueConv => [
1381
+ undef,
1382
+ 'exp(($val/8-1)*log(2)/2)',
1383
+ 'exp(($val/8-1)*log(2)/2)',
1384
+ ],
1385
+ ValueConvInv => [
1386
+ undef,
1387
+ 'int(8*(log($val)*2/log(2)+1) + 0.5)',
1388
+ 'int(8*(log($val)*2/log(2)+1) + 0.5)',
1389
+ ],
1390
+ PrintConv => [
1391
+ \%disableEnable,
1392
+ 'sprintf("Closed %.2g",$val)',
1393
+ 'sprintf("Open %.2g",$val)',
1394
+ ],
1395
+ PrintConvInv => [
1396
+ undef,
1397
+ '$val=~/([\d.]+)/ ? $1 : 0',
1398
+ '$val=~/([\d.]+)/ ? $1 : 0',
1399
+ ],
1400
+ },
1401
+ 0x010e => {
1402
+ Name => 'ApplyShootingMeteringMode',
1403
+ Count => 8,
1404
+ PrintConv => [ \%disableEnable ],
1405
+ },
1406
+ 0x010f => [
1407
+ {
1408
+ Name => 'FlashSyncSpeedAv',
1409
+ Condition => '$$self{Model} =~ /\b40D\b/',
1410
+ Notes => '40D',
1411
+ PrintConv => {
1412
+ 0 => 'Auto',
1413
+ 1 => '1/250 Fixed',
1414
+ },
1415
+ },
1416
+ {
1417
+ Name => 'FlashSyncSpeedAv',
1418
+ Condition => '$$self{Model} =~ /\b(50D|60D|7D)\b/',
1419
+ Notes => '50D, 60D and 7D',
1420
+ PrintConv => {
1421
+ 0 => 'Auto',
1422
+ 1 => '1/250-1/60 Auto',
1423
+ 2 => '1/250 Fixed',
1424
+ },
1425
+ },
1426
+ {
1427
+ Name => 'FlashSyncSpeedAv',
1428
+ Condition => '$$self{Model} =~ /\b(450D|XSi|Kiss X2|1000D|XS|Kiss F)\b/',
1429
+ Notes => '450D and 1000D',
1430
+ PrintConv => {
1431
+ 0 => 'Auto',
1432
+ 1 => '1/200 Fixed',
1433
+ },
1434
+ },
1435
+ {
1436
+ Name => 'FlashSyncSpeedAv',
1437
+ Condition => '$$self{Model} =~ /\bEOS-1Ds? Mark III\b/',
1438
+ Notes => '1D Mark III and 1Ds Mark III',
1439
+ PrintConv => {
1440
+ 0 => 'Auto',
1441
+ 1 => '1/300 Fixed',
1442
+ },
1443
+ },
1444
+ {
1445
+ Name => 'FlashSyncSpeedAv',
1446
+ Condition => '$$self{Model} =~ /\bEOS-1D Mark IV\b/',
1447
+ Notes => '1D Mark IV',
1448
+ PrintConv => {
1449
+ 0 => 'Auto',
1450
+ 1 => '1/300-1/60 Auto',
1451
+ 2 => '1/300 Fixed',
1452
+ },
1453
+ },
1454
+ {
1455
+ Name => 'FlashSyncSpeedAv',
1456
+ Notes => '5D Mark II, 5D Mark III, 500D, 550D, 600D and 1100D',
1457
+ PrintConv => {
1458
+ 0 => 'Auto',
1459
+ 1 => '1/200-1/60 Auto',
1460
+ 2 => '1/200 Fixed',
1461
+ },
1462
+ },
1463
+ ],
1464
+ 0x0110 => { # new for 1DmkIV
1465
+ Name => 'FEMicroadjustment',
1466
+ Count => 3,
1467
+ PrintConv => [ \%disableEnable ],
1468
+ },
1469
+ 0x0111 => { # new for 1DmkIV
1470
+ Name => 'AEMicroadjustment',
1471
+ Count => 3,
1472
+ PrintConv => [ \%disableEnable ],
1473
+ },
1474
+ #### 2a) Image
1475
+ 0x0201 => {
1476
+ Name => 'LongExposureNoiseReduction',
1477
+ PrintConv => {
1478
+ 0 => 'Off',
1479
+ 1 => 'Auto',
1480
+ 2 => 'On',
1481
+ },
1482
+ },
1483
+ 0x0202 => [
1484
+ {
1485
+ Name => 'HighISONoiseReduction',
1486
+ Condition => q{
1487
+ $$self{Model} =~ /\b(50D|60D|5D Mark II|7D|500D|T1i|Kiss X3|550D|T2i|Kiss X4)\b/ or
1488
+ $$self{Model} =~ /\b(600D|T3i|Kiss X5|1100D|T3|Kiss X50)\b/
1489
+ },
1490
+ Notes => '50D, 60D, 500D, 550D, 600D, 1100D, 5DmkII and 7D',
1491
+ PrintConv => {
1492
+ 0 => 'Standard',
1493
+ 1 => 'Low',
1494
+ 2 => 'Strong',
1495
+ 3 => 'Off',
1496
+ },
1497
+ },
1498
+ {
1499
+ Name => 'HighISONoiseReduction',
1500
+ Notes => 'other models',
1501
+ PrintConv => \%offOn,
1502
+ },
1503
+ ],
1504
+ 0x0203 => {
1505
+ Name => 'HighlightTonePriority',
1506
+ PrintConv => \%disableEnable
1507
+ },
1508
+ 0x0204 => [
1509
+ {
1510
+ Name => 'AutoLightingOptimizer',
1511
+ Condition => '$$self{Model} =~ /\b(50D|5D Mark II|500D|T1i|Kiss X3|1D Mark IV)\b/',
1512
+ Notes => '50D, 500D, 5DmkII and 1DmkIV',
1513
+ PrintConv => {
1514
+ 0 => 'Standard',
1515
+ 1 => 'Low',
1516
+ 2 => 'Strong',
1517
+ 3 => 'Disable',
1518
+ },
1519
+ },
1520
+ {
1521
+ Name => 'AutoLightingOptimizer',
1522
+ Notes => 'other models',
1523
+ PrintConv => \%enableDisable,
1524
+ },
1525
+ ],
1526
+ #### 2b) Flash exposure
1527
+ 0x0304 => {
1528
+ Name => 'ETTLII',
1529
+ Description => 'E-TTL II',
1530
+ PrintConv => {
1531
+ 0 => 'Evaluative',
1532
+ 1 => 'Average',
1533
+ },
1534
+ },
1535
+ 0x0305 => {
1536
+ Name => 'ShutterCurtainSync',
1537
+ PrintConv => {
1538
+ 0 => '1st-curtain sync',
1539
+ 1 => '2nd-curtain sync',
1540
+ },
1541
+ },
1542
+ 0x0306 => {
1543
+ Name => 'FlashFiring',
1544
+ PrintConv => {
1545
+ 0 => 'Fires',
1546
+ 1 => 'Does not fire',
1547
+ },
1548
+ },
1549
+ #### 2c) Display
1550
+ 0x0407 => {
1551
+ Name => 'ViewInfoDuringExposure',
1552
+ PrintConv => \%disableEnable,
1553
+ },
1554
+ 0x0408 => {
1555
+ Name => 'LCDIlluminationDuringBulb',
1556
+ PrintConv => \%offOn,
1557
+ },
1558
+ 0x0409 => [
1559
+ {
1560
+ Name => 'InfoButtonWhenShooting',
1561
+ Condition => '$$self{Model} =~ /\b1Ds? Mark III\b/',
1562
+ Notes => '1D Mark III',
1563
+ PrintConv => {
1564
+ 0 => 'Displays camera settings',
1565
+ 1 => 'Displays shooting functions',
1566
+ },
1567
+ },
1568
+ {
1569
+ Name => 'InfoButtonWhenShooting',
1570
+ Notes => '1D Mark IV',
1571
+ PrintConv => {
1572
+ # reversed from earlier models. grr...
1573
+ 0 => 'Displays shooting functions',
1574
+ 1 => 'Displays camera settings',
1575
+ },
1576
+ },
1577
+ ],
1578
+ 0x040a => { # new for 5DmkIII
1579
+ Name => 'ViewfinderWarnings',
1580
+ PrintConv => { BITMASK => { # (NC)
1581
+ 0 => 'Monochrome', # (have seen for: 5DmkII, 6D)
1582
+ 1 => 'WB corrected', # (have seen for: 5DmkII, 6D)
1583
+ 2 => 'One-touch image quality', # (have seen for: 5DmkII; doesn't exist for 6D)
1584
+ 3 => 'ISO expansion', # (have seen for: 5DmkII)
1585
+ 4 => 'Spot metering', # (have seen for: 5DmkII, 6D)
1586
+ }},
1587
+ },
1588
+ 0x040b => { # new for 5DmkIII
1589
+ Name => 'LVShootingAreaDisplay',
1590
+ PrintConv => {
1591
+ 0 => 'Masked',
1592
+ 1 => 'Outlined',
1593
+ },
1594
+ },
1595
+ #### 3a) Auto focus
1596
+ 0x0501 => {
1597
+ Name => 'USMLensElectronicMF',
1598
+ PrintConv => {
1599
+ 0 => 'Enable after one-shot AF',
1600
+ 1 => 'Disable after one-shot AF',
1601
+ 2 => 'Disable in AF mode',
1602
+ },
1603
+ },
1604
+ 0x0502 => {
1605
+ Name => 'AIServoTrackingSensitivity',
1606
+ PrintConv => {
1607
+ -2 => 'Slow', # (Locked on -2 for 6D)
1608
+ -1 => 'Medium Slow', # (Locked on -1 for 6D)
1609
+ 0 => 'Standard',
1610
+ 1 => 'Medium Fast', # (Responsive +1 for 6D)
1611
+ 2 => 'Fast', # (Responsive +2 for 6D)
1612
+ },
1613
+ },
1614
+ 0x0503 => {
1615
+ Name => 'AIServoImagePriority',
1616
+ PrintConv => {
1617
+ 0 => '1: AF, 2: Tracking',
1618
+ 1 => '1: AF, 2: Drive speed',
1619
+ 2 => '1: Release, 2: Drive speed',
1620
+ 3 => '1: Release, 2: Tracking', # 7D/1DmkIV
1621
+ },
1622
+ },
1623
+ 0x0504 => {
1624
+ Name => 'AIServoTrackingMethod',
1625
+ PrintConv => {
1626
+ 0 => 'Main focus point priority',
1627
+ 1 => 'Continuous AF track priority',
1628
+ },
1629
+ },
1630
+ 0x0505 => {
1631
+ Name => 'LensDriveNoAF',
1632
+ PrintConv => {
1633
+ 0 => 'Focus search on',
1634
+ 1 => 'Focus search off',
1635
+ },
1636
+ },
1637
+ 0x0506 => {
1638
+ Name => 'LensAFStopButton',
1639
+ Notes => 'value of 6 not used by 40D, 50D and 5DmkII',
1640
+ PrintConv => {
1641
+ 0 => 'AF stop',
1642
+ 1 => 'AF start',
1643
+ 2 => 'AE lock',
1644
+ 3 => 'AF point: M->Auto/Auto->ctr',
1645
+ 4 => 'One Shot <-> AI servo',
1646
+ 5 => 'IS start',
1647
+ 6 => 'Switch to registered AF point',
1648
+ 7 => 'Spot AF', # 1DmkIV
1649
+ },
1650
+ },
1651
+ 0x0507 => {
1652
+ Name => 'AFMicroadjustment',
1653
+ Count => 5,
1654
+ PrintConv => [
1655
+ {
1656
+ 0 => 'Disable',
1657
+ 1 => 'Adjust all by same amount',
1658
+ 2 => 'Adjust by lens',
1659
+ },
1660
+ # DECODE OTHER VALUES
1661
+ ],
1662
+ },
1663
+ 0x0508 => [
1664
+ {
1665
+ Name => 'AFPointAreaExpansion',
1666
+ Condition => '$$self{Model} =~ /\b5D Mark II\b/',
1667
+ Notes => '5D Mark II',
1668
+ PrintConv => {
1669
+ 0 => 'Disable',
1670
+ 1 => 'Enable',
1671
+ },
1672
+ },
1673
+ {
1674
+ Name => 'AFPointAreaExpansion',
1675
+ PrintConv => {
1676
+ 0 => 'Disable',
1677
+ 1 => 'Left/right AF points',
1678
+ 2 => 'Surrounding AF points',
1679
+ 3 => 'All 45 points area', # 1DmkIV
1680
+ },
1681
+ },
1682
+ ],
1683
+ 0x0509 => [
1684
+ {
1685
+ Name => 'SelectableAFPoint',
1686
+ Condition => '$$self{Model} =~ /\b1D Mark IV\b/',
1687
+ Notes => '1D Mark IV',
1688
+ PrintConv => {
1689
+ 0 => '45 points',
1690
+ 1 => '19 points',
1691
+ 2 => '11 points',
1692
+ 3 => 'Inner 9 points',
1693
+ 4 => 'Outer 9 points',
1694
+ },
1695
+ },
1696
+ {
1697
+ Name => 'SelectableAFPoint',
1698
+ Notes => 'other models',
1699
+ PrintConv => {
1700
+ 0 => '19 points',
1701
+ 1 => 'Inner 9 points',
1702
+ 2 => 'Outer 9 points',
1703
+ 3 => '19 Points, Multi-controller selectable', #4
1704
+ 4 => 'Inner 9 Points, Multi-controller selectable', #4
1705
+ 5 => 'Outer 9 Points, Multi-controller selectable', #4
1706
+ },
1707
+ },
1708
+ ],
1709
+ 0x050a => [
1710
+ {
1711
+ Name => 'SwitchToRegisteredAFPoint',
1712
+ Condition => '$$self{Model} =~ /\b1D Mark IV\b/',
1713
+ Notes => '1D Mark IV',
1714
+ PrintConv => {
1715
+ 0 => 'Disable',
1716
+ 1 => 'Switch with multi-controller',
1717
+ 2 => 'Only while AEL is pressed',
1718
+ },
1719
+ },
1720
+ {
1721
+ Name => 'SwitchToRegisteredAFPoint',
1722
+ Notes => 'other models',
1723
+ PrintConv => \%disableEnable,
1724
+ },
1725
+ ],
1726
+ 0x050b => {
1727
+ Name => 'AFPointAutoSelection',
1728
+ PrintConv => {
1729
+ 0 => 'Control-direct:disable/Main:enable',
1730
+ 1 => 'Control-direct:disable/Main:disable',
1731
+ 2 => 'Control-direct:enable/Main:enable',
1732
+ },
1733
+ },
1734
+ 0x050c => {
1735
+ Name => 'AFPointDisplayDuringFocus',
1736
+ PrintConv => {
1737
+ 0 => 'On',
1738
+ 1 => 'Off',
1739
+ 2 => 'On (when focus achieved)',
1740
+ },
1741
+ },
1742
+ 0x050d => {
1743
+ Name => 'AFPointBrightness',
1744
+ PrintConv => {
1745
+ 0 => 'Normal',
1746
+ 1 => 'Brighter',
1747
+ },
1748
+ },
1749
+ 0x050e => [
1750
+ {
1751
+ Name => 'AFAssistBeam',
1752
+ Condition => '$$self{Model} =~ /\b(1D Mark IV|6D)\b/',
1753
+ Notes => '1D Mark IV and 6D',
1754
+ PrintConv => {
1755
+ 0 => 'Emits',
1756
+ 1 => 'Does not emit',
1757
+ 2 => 'IR AF assist beam only',
1758
+ },
1759
+ },
1760
+ {
1761
+ Name => 'AFAssistBeam',
1762
+ Notes => 'other models; values 2-3 not used by 1DmkIII or 5DmkII, value 3 new for 7D',
1763
+ PrintConv => {
1764
+ 0 => 'Emits',
1765
+ 1 => 'Does not emit',
1766
+ 2 => 'Only ext. flash emits',
1767
+ 3 => 'IR AF assist beam only', # new for 7D
1768
+ },
1769
+ },
1770
+ ],
1771
+ 0x050f => [ # new for 40D
1772
+ {
1773
+ Name => 'AFPointSelectionMethod',
1774
+ Condition => '$$self{Model} !~ /\b60D\b/',
1775
+ Notes => '40D, 50D and 5DmkII',
1776
+ PrintConv => {
1777
+ 0 => 'Normal',
1778
+ 1 => 'Multi-controller direct',
1779
+ 2 => 'Quick Control Dial direct',
1780
+ },
1781
+ },
1782
+ {
1783
+ Name => 'AFPointSelectionMethod',
1784
+ Notes => '60D',
1785
+ PrintConv => {
1786
+ 0 => 'AF point button: Activate AF Sel; Rear dial: Select AF points',
1787
+ 1 => 'AF point button: Auto selection; Rear dial: Manual selection',
1788
+ },
1789
+ },
1790
+ ],
1791
+ 0x0510 => [ # new for 40D
1792
+ {
1793
+ Name => 'VFDisplayIllumination',
1794
+ Condition => '$$self{Model} =~ /\b7D\b/',
1795
+ Notes => '7D',
1796
+ PrintConv => {
1797
+ 0 => 'Auto',
1798
+ 1 => 'Enable',
1799
+ 2 => 'Disable',
1800
+ },
1801
+ },
1802
+ {
1803
+ Name => 'SuperimposedDisplay',
1804
+ Notes => 'other models',
1805
+ PrintConv => \%onOff,
1806
+ },
1807
+ ],
1808
+ 0x0511 => [ # new for 40D
1809
+ {
1810
+ Name => 'AFDuringLiveView',
1811
+ Condition => '$$self{Model} =~ /\b40D\b/',
1812
+ Notes => '40D',
1813
+ PrintConv => \%disableEnable,
1814
+ },
1815
+ {
1816
+ Name => 'AFDuringLiveView',
1817
+ Notes => '450D and 1000D',
1818
+ PrintConv => {
1819
+ 0 => 'Disable',
1820
+ 1 => 'Quick mode',
1821
+ 2 => 'Live mode',
1822
+ },
1823
+ },
1824
+ ],
1825
+ 0x0512 => { # new for 7D
1826
+ Name => 'SelectAFAreaSelectMode',
1827
+ PrintConv => [
1828
+ {
1829
+ 0 => 'Disable',
1830
+ 1 => 'Enable',
1831
+ 2 => 'Register',
1832
+ 3 => 'Select AF-modes',
1833
+ },
1834
+ # must decode 2nd value
1835
+ ],
1836
+ },
1837
+ 0x0513 => { # new for 7D
1838
+ Name => 'ManualAFPointSelectPattern',
1839
+ PrintConv => {
1840
+ 0 => 'Stops at AF area edges',
1841
+ 1 => 'Continuous',
1842
+ },
1843
+ },
1844
+ 0x0514 => { # new for 7D
1845
+ Name => 'DisplayAllAFPoints',
1846
+ PrintConv => \%enableDisable,
1847
+ },
1848
+ 0x0515 => { # new for 7D
1849
+ Name => 'FocusDisplayAIServoAndMF',
1850
+ PrintConv => \%enableDisable,
1851
+ },
1852
+ 0x0516 => { # new for 7D and 1DmkIV
1853
+ Name => 'OrientationLinkedAFPoint',
1854
+ PrintConv => {
1855
+ 0 => 'Same for verical and horizontal',
1856
+ 1 => 'Select different AF points',
1857
+ },
1858
+ },
1859
+ 0x0517 => { # new for 1DmkIV
1860
+ Name => 'MultiControllerWhileMetering',
1861
+ PrintConv => {
1862
+ 0 => 'Off',
1863
+ 1 => 'AF point selection',
1864
+ },
1865
+ },
1866
+ 0x0518 => { # new for 6D
1867
+ Name => 'AccelerationTracking',
1868
+ },
1869
+ 0x0519 => { # new for 6D
1870
+ Name => 'AIServoFirstImagePriority',
1871
+ PrintConv => { # (NC)
1872
+ -1 => 'Release priority',
1873
+ 0 => 'Equal priority',
1874
+ 1 => 'Focus priority',
1875
+ },
1876
+ },
1877
+ 0x051a => { # new for 6D
1878
+ Name => 'AIServoSecondImagePriority',
1879
+ PrintConv => { # (NC)
1880
+ -1 => 'Shooting speed priority',
1881
+ 0 => 'Equal priority',
1882
+ 1 => 'Focus priority',
1883
+ },
1884
+ },
1885
+ #### 3b) Drive
1886
+ 0x060f => {
1887
+ Name => 'MirrorLockup',
1888
+ Notes => 'value of 2 not used by some models',
1889
+ PrintConv => {
1890
+ 0 => 'Disable',
1891
+ 1 => 'Enable',
1892
+ 2 => 'Enable: Down with Set',
1893
+ },
1894
+ },
1895
+ 0x0610 => {
1896
+ Name => 'ContinuousShootingSpeed',
1897
+ Count => 3,
1898
+ PrintConv => [
1899
+ \%disableEnable,
1900
+ '"Hi $val"',
1901
+ '"Lo $val"',
1902
+ ],
1903
+ PrintConvInv => [
1904
+ undef,
1905
+ '$val=~/(\d+)/ ? $1 : 0',
1906
+ '$val=~/(\d+)/ ? $1 : 0',
1907
+ ],
1908
+ },
1909
+ 0x0611 => {
1910
+ Name => 'ContinuousShotLimit',
1911
+ Count => 2,
1912
+ PrintConv => [
1913
+ \%disableEnable,
1914
+ '"$val shots"',
1915
+ ],
1916
+ PrintConvInv => [
1917
+ undef,
1918
+ '$val=~/(\d+)/ ? $1 : 0',
1919
+ ],
1920
+ },
1921
+ #### 4a) Operation
1922
+ 0x0701 => [
1923
+ {
1924
+ Name => 'Shutter-AELock',
1925
+ Condition => q{
1926
+ $$self{Model} =~ /\b(1000D|XS|Kiss F|500D|T1i|Kiss X3|550D|T2i|Kiss X4)\b/ or
1927
+ $$self{Model} =~ /\b(600D|T3i|Kiss X5|1100D|T3|Kiss X50)\b/
1928
+ },
1929
+ Notes => '500D, 550D, 600D, 1000D and 1100D',
1930
+ PrintConv => {
1931
+ 0 => 'AF/AE lock',
1932
+ 1 => 'AE lock/AF',
1933
+ 2 => 'AF/AF lock, No AE lock',
1934
+ 3 => 'AE/AF, No AE lock',
1935
+ },
1936
+ },
1937
+ {
1938
+ Name => 'AFAndMeteringButtons',
1939
+ Condition => '$$self{Model} =~ /\b60D\b/',
1940
+ Notes => '60D',
1941
+ PrintConv => {
1942
+ 0 => 'Metering start',
1943
+ 1 => 'Metering + AF start',
1944
+ 2 => 'AE lock',
1945
+ 3 => 'AF stop',
1946
+ 4 => 'No function',
1947
+ },
1948
+ },
1949
+ {
1950
+ Name => 'ShutterButtonAFOnButton',
1951
+ Notes => 'other models',
1952
+ PrintConv => {
1953
+ 0 => 'Metering + AF start',
1954
+ 1 => 'Metering + AF start/AF stop',
1955
+ 2 => 'Metering start/Meter + AF start',
1956
+ 3 => 'AE lock/Metering + AF start',
1957
+ 4 => 'Metering + AF start/disable',
1958
+ },
1959
+ },
1960
+ ],
1961
+ 0x0702 => {
1962
+ Name => 'AFOnAELockButtonSwitch',
1963
+ PrintConv => \%disableEnable,
1964
+ },
1965
+ 0x0703 => {
1966
+ Name => 'QuickControlDialInMeter',
1967
+ PrintConv => {
1968
+ 0 => 'Exposure comp/Aperture',
1969
+ 1 => 'AF point selection',
1970
+ 2 => 'ISO speed',
1971
+ 3 => 'AF point selection swapped with Exposure comp', #4
1972
+ 4 => 'ISO speed swapped with Exposure comp', #4
1973
+ },
1974
+ },
1975
+ 0x0704 => [
1976
+ {
1977
+ Name => 'SetButtonWhenShooting',
1978
+ Condition => '$$self{Model} =~ /\b(40D|50D|5D Mark II)\b/',
1979
+ Notes => '40D, 50D and 5DmkII; value of 5 is new for 50D, and 6 is new for 5DmkII',
1980
+ PrintConv => {
1981
+ 0 => 'Normal (disabled)',
1982
+ 1 => 'Image quality',
1983
+ 2 => 'Picture style',
1984
+ 3 => 'Menu display',
1985
+ 4 => 'Image playback',
1986
+ 5 => 'Quick control screen', #50D
1987
+ 6 => 'Record movie (Live View)', #5DmkII
1988
+ },
1989
+ },
1990
+ {
1991
+ Name => 'SetButtonWhenShooting',
1992
+ Condition => '$$self{Model} =~ /\b60D\b/',
1993
+ Notes => '60D',
1994
+ PrintConv => {
1995
+ 0 => 'Normal (disabled)',
1996
+ 1 => 'Image quality',
1997
+ 2 => 'Picture style',
1998
+ 3 => 'White balance',
1999
+ 4 => 'Flash exposure compensation',
2000
+ 5 => 'Viewfinder leveling gauge',
2001
+ },
2002
+ },
2003
+ {
2004
+ Name => 'SetButtonWhenShooting',
2005
+ Condition => '$$self{Model} =~ /\b(450D|XSi|Kiss X2|550D|T2i|Kiss X4|600D|T3i|Kiss X5)\b/',
2006
+ Notes => '450D, 550D and 600D; value of 5 is new for 550D',
2007
+ PrintConv => {
2008
+ 0 => 'Normal (disabled)',
2009
+ 1 => 'Image quality',
2010
+ 2 => 'Flash exposure compensation',
2011
+ 3 => 'LCD monitor On/Off',
2012
+ 4 => 'Menu display',
2013
+ 5 => 'ISO speed',
2014
+ },
2015
+ },
2016
+ {
2017
+ Name => 'SetButtonWhenShooting',
2018
+ Condition => '$$self{Model} =~ /\b(1100D|T3|Kiss X50)\b/',
2019
+ Notes => '1100D',
2020
+ PrintConv => {
2021
+ 0 => 'Normal (disabled)',
2022
+ 1 => 'Image quality',
2023
+ 2 => 'Flash exposure compensation',
2024
+ 3 => 'LCD monitor On/Off',
2025
+ 4 => 'Menu display',
2026
+ 5 => 'Depth-of-field preview',
2027
+ },
2028
+ },
2029
+ {
2030
+ Name => 'SetButtonWhenShooting',
2031
+ Condition => '$$self{Model} =~ /\b(1000D|XS|Kiss F)\b/',
2032
+ Notes => '1000D',
2033
+ PrintConv => {
2034
+ 0 => 'LCD monitor On/Off',
2035
+ 1 => 'Image quality',
2036
+ 2 => 'Flash exposure compensation',
2037
+ 3 => 'Menu display',
2038
+ 4 => 'Disabled',
2039
+ },
2040
+ },
2041
+ {
2042
+ Name => 'SetButtonWhenShooting',
2043
+ Condition => '$$self{Model} =~ /\b(500D|T1i|Kiss X3)\b/',
2044
+ Notes => '500D',
2045
+ PrintConv => {
2046
+ 0 => 'Quick control screen',
2047
+ 1 => 'Image quality',
2048
+ 2 => 'Flash exposure compensation',
2049
+ 3 => 'LCD monitor On/Off',
2050
+ 4 => 'Menu display',
2051
+ 5 => 'Disabled',
2052
+ },
2053
+ },
2054
+ {
2055
+ Name => 'SetButtonWhenShooting',
2056
+ Notes => '1DmkIII and 1DmkIV',
2057
+ PrintConv => {
2058
+ 0 => 'Normal (disabled)',
2059
+ 1 => 'White balance',
2060
+ 2 => 'Image size',
2061
+ 3 => 'ISO speed',
2062
+ 4 => 'Picture style',
2063
+ 5 => 'Record func. + media/folder',
2064
+ 6 => 'Menu display',
2065
+ 7 => 'Image playback',
2066
+ },
2067
+ },
2068
+ ],
2069
+ 0x0705 => {
2070
+ Name => 'ManualTv',
2071
+ Description => 'Manual Tv/Av For M',
2072
+ PrintConv => {
2073
+ 0 => 'Tv=Main/Av=Control',
2074
+ 1 => 'Tv=Control/Av=Main',
2075
+ },
2076
+ },
2077
+ 0x0706 => {
2078
+ Name => 'DialDirectionTvAv',
2079
+ PrintConv => {
2080
+ 0 => 'Normal',
2081
+ 1 => 'Reversed',
2082
+ },
2083
+ },
2084
+ 0x0707 => {
2085
+ Name => 'AvSettingWithoutLens',
2086
+ PrintConv => \%disableEnable,
2087
+ },
2088
+ 0x0708 => {
2089
+ Name => 'WBMediaImageSizeSetting',
2090
+ PrintConv => {
2091
+ 0 => 'Rear LCD panel',
2092
+ 1 => 'LCD monitor',
2093
+ },
2094
+ },
2095
+ 0x0709 => {
2096
+ Name => 'LockMicrophoneButton',
2097
+ PrintConv => [{
2098
+ # called "sound" in 1DmkIII manual, and "memo" in 1DmkIV manual
2099
+ 0 => 'Protect (hold:record memo)',
2100
+ 1 => 'Record memo (protect:disable)',
2101
+ 2 => 'Play memo (hold:record memo)', # new with 1DmkIV
2102
+ 3 => 'Rating (protect/memo:disable)', # new with 1DX
2103
+ }],
2104
+ # (not sure what the 2nd number is -- new for 1DX. Seen a value of 31.
2105
+ # Memo quality may be set to 48kHz or 8kHz through another option that
2106
+ # doesn't seem to be stored separately -- is this it?)
2107
+ },
2108
+ 0x070a => {
2109
+ Name => 'ButtonFunctionControlOff',
2110
+ PrintConv => {
2111
+ 0 => 'Normal (enable)',
2112
+ 1 => 'Disable main, Control, Multi-control',
2113
+ },
2114
+ },
2115
+ 0x070b => { # 50D (also, 5DmkII writes this but it isn't in user guide)
2116
+ Name => 'AssignFuncButton',
2117
+ PrintConv => {
2118
+ 0 => 'LCD brightness',
2119
+ 1 => 'Image quality',
2120
+ 2 => 'Exposure comp./AEB setting',
2121
+ 3 => 'Image jump with main dial',
2122
+ 4 => 'Live view function settings',
2123
+ },
2124
+ },
2125
+ 0x070c => { # new for 7D
2126
+ Name => 'CustomControls',
2127
+ # (too much stuff to decode)
2128
+ },
2129
+ 0x070d => { # new for 1DmkIV
2130
+ Name => 'StartMovieShooting',
2131
+ PrintConv => {
2132
+ 0 => 'Default (from LV)',
2133
+ 1 => 'Quick start (FEL button)',
2134
+ },
2135
+ },
2136
+ 0x070e => { # new for 1100D
2137
+ Name => 'FlashButtonFunction',
2138
+ PrintConv => {
2139
+ 0 => 'Raise built-in flash',
2140
+ 1 => 'ISO speed',
2141
+ },
2142
+ },
2143
+ 0x070f => { # new for 5DmkIII
2144
+ Name => 'MultiFunctionLock',
2145
+ PrintConv => [
2146
+ \%offOn, # (NC)
2147
+ { BITMASK => { # (NC)
2148
+ 0 => 'Main dial',
2149
+ 1 => 'Quick control dial',
2150
+ 2 => 'Multi-controller',
2151
+ }},
2152
+ ],
2153
+ },
2154
+ #### 4b) Others
2155
+ 0x080b => [
2156
+ {
2157
+ Name => 'FocusingScreen',
2158
+ Condition => '$$self{Model} =~ /\b(40D|50D|60D)\b/',
2159
+ Notes => '40D, 50D and 60D',
2160
+ PrintConv => {
2161
+ 0 => 'Ef-A',
2162
+ 1 => 'Ef-D',
2163
+ 2 => 'Ef-S',
2164
+ },
2165
+ },
2166
+ {
2167
+ Name => 'FocusingScreen',
2168
+ Condition => '$$self{Model} =~ /\b5D Mark II\b/',
2169
+ Notes => '5D Mark II',
2170
+ PrintConv => {
2171
+ 0 => 'Eg-A',
2172
+ 1 => 'Eg-D',
2173
+ 2 => 'Eg-S',
2174
+ },
2175
+ },
2176
+ {
2177
+ Name => 'FocusingScreen',
2178
+ Condition => '$$self{Model} =~ /\b6D\b/',
2179
+ Notes => '6D',
2180
+ PrintConv => {
2181
+ 0 => 'Eg-A II',
2182
+ 1 => 'Eg-D',
2183
+ 2 => 'Eg-S',
2184
+ },
2185
+ },
2186
+ {
2187
+ Name => 'FocusingScreen',
2188
+ Condition => '$$self{Model} =~ /\b1D X\b/',
2189
+ Notes => '1DX',
2190
+ PrintConv => {
2191
+ 0 => 'Ec-CV',
2192
+ 1 => 'Ec-A,B,D,H,I,L',
2193
+ },
2194
+ },
2195
+ {
2196
+ Name => 'FocusingScreen',
2197
+ Notes => '1DmkIII and 1DmkIV',
2198
+ PrintConv => {
2199
+ 0 => 'Ec-CIV',
2200
+ 1 => 'Ec-A,B,C,CII,CIII,D,H,I,L',
2201
+ 2 => 'Ec-S',
2202
+ 3 => 'Ec-N,R',
2203
+ },
2204
+ },
2205
+ ],
2206
+ 0x080c => {
2207
+ Name => 'TimerLength',
2208
+ Count => 4,
2209
+ PrintConv => [
2210
+ \%disableEnable,
2211
+ '"6 s: $val"',
2212
+ '"16 s: $val"',
2213
+ '"After release: $val"',
2214
+ ],
2215
+ PrintConvInv => [
2216
+ undef,
2217
+ '$val=~/(\d+)$/ ? $1 : 0',
2218
+ '$val=~/(\d+)$/ ? $1 : 0',
2219
+ '$val=~/(\d+)$/ ? $1 : 0',
2220
+ ],
2221
+ },
2222
+ 0x080d => {
2223
+ Name => 'ShortReleaseTimeLag',
2224
+ PrintConv => \%disableEnable,
2225
+ },
2226
+ 0x080e => {
2227
+ Name => 'AddAspectRatioInfo',
2228
+ PrintConv => {
2229
+ 0 => 'Off',
2230
+ 1 => '6:6',
2231
+ 2 => '3:4',
2232
+ 3 => '4:5',
2233
+ 4 => '6:7',
2234
+ 5 => '10:12',
2235
+ 6 => '5:7',
2236
+ },
2237
+ },
2238
+ 0x080f => {
2239
+ Name => 'AddOriginalDecisionData', # called ("image verification" in 1DmkIV manual)
2240
+ PrintConv => \%offOn,
2241
+ },
2242
+ 0x0810 => {
2243
+ Name => 'LiveViewExposureSimulation',
2244
+ PrintConv => {
2245
+ 0 => 'Disable (LCD auto adjust)',
2246
+ 1 => 'Enable (simulates exposure)',
2247
+ },
2248
+ },
2249
+ 0x0811 => {
2250
+ Name => 'LCDDisplayAtPowerOn',
2251
+ PrintConv => {
2252
+ 0 => 'Display',
2253
+ 1 => 'Retain power off status',
2254
+ },
2255
+ },
2256
+ 0x0813 => { # new for 5DmkIII
2257
+ Name => 'DefaultEraseOption',
2258
+ PrintConv => {
2259
+ 0 => 'Cancel selected',
2260
+ 1 => 'Erase selected',
2261
+ },
2262
+ },
2263
+ );
2264
+
2265
+ #------------------------------------------------------------------------------
2266
+ # Conversion routines
2267
+ # Inputs: 0) value to convert
2268
+ sub ConvertPfn($)
2269
+ {
2270
+ my $val = shift;
2271
+ return $val ? ($val==1 ? 'On' : "On ($val)") : "Off";
2272
+ }
2273
+ sub ConvertPfnInv($)
2274
+ {
2275
+ my $val = shift;
2276
+ return $1 if $val =~ /(\d+)/;
2277
+ return 1 if $val =~ /on/i;
2278
+ return 0 if $val =~ /off/i;
2279
+ return undef;
2280
+ }
2281
+
2282
+ #------------------------------------------------------------------------------
2283
+ # Read/Write Canon custom 2 directory (used by 1D Mark III)
2284
+ # Inputs: 0) ExifTool object ref, 1) dirInfo ref, 2) tag table ref
2285
+ # Returns: 1 on success
2286
+ sub ProcessCanonCustom2($$$)
2287
+ {
2288
+ my ($exifTool, $dirInfo, $tagTablePtr) = @_;
2289
+ my $dataPt = $$dirInfo{DataPt};
2290
+ my $offset = $$dirInfo{DirStart};
2291
+ my $size = $$dirInfo{DirLen};
2292
+ my $write = $$dirInfo{Write};
2293
+ my $verbose = $exifTool->Options('Verbose');
2294
+ my $newTags;
2295
+
2296
+ # first entry in array must be the size
2297
+ my $len = Get16u($dataPt, $offset);
2298
+ unless ($len == $size and $len >= 8) {
2299
+ $exifTool->Warn("Invalid CanonCustom2 data");
2300
+ return 0;
2301
+ }
2302
+ # get group count
2303
+ my $count = Get32u($dataPt, $offset + 4);
2304
+ if ($write) {
2305
+ $newTags = $exifTool->GetNewTagInfoHash($tagTablePtr);
2306
+ $exifTool->VPrint(0, " Rewriting CanonCustom2\n");
2307
+ } elsif ($verbose) {
2308
+ $exifTool->VerboseDir('CanonCustom2', $count);
2309
+ }
2310
+ my $pos = $offset + 8;
2311
+ my $end = $offset + $size;
2312
+ # loop through group records
2313
+ for (; $pos<$end; ) {
2314
+ last if $pos + 12 > $end;
2315
+ my $recNum = Get32u($dataPt, $pos);
2316
+ my $recLen = Get32u($dataPt, $pos + 4);
2317
+ my $recCount = Get32u($dataPt, $pos + 8);
2318
+ last if $recLen < 8; # must be at least 8 bytes for recNum and recLen
2319
+ $pos += 12;
2320
+ my $recPos = $pos;
2321
+ my $recEnd = $pos + $recLen;
2322
+ if ($verbose and not $write) {
2323
+ $exifTool->VerboseDir("CanonCustom2 group $recNum", $recCount);
2324
+ }
2325
+ my ($i, $num, $tag);
2326
+ for ($i=0; $recPos + 8 < $recEnd; ++$i, $recPos+=4*$num) {
2327
+ $tag = Get32u($dataPt, $recPos);
2328
+ $num = Get32u($dataPt, $recPos + 4);
2329
+ $recPos += 8;
2330
+ last if $recPos + $num * 4 > $recEnd;
2331
+ my $val = ReadValue($dataPt, $recPos, 'int32s', $num, $num * 4);
2332
+ if ($write) {
2333
+ # write new value
2334
+ my $tagInfo = $$newTags{$tag};
2335
+ next unless $tagInfo;
2336
+ my $nvHash = $exifTool->GetNewValueHash($tagInfo);
2337
+ next unless $exifTool->IsOverwriting($nvHash, $val);
2338
+ my $newVal = $exifTool->GetNewValues($nvHash);
2339
+ next unless defined $newVal; # can't delete from a custom table
2340
+ WriteValue($newVal, 'int32s', $num, $dataPt, $recPos);
2341
+ $exifTool->VerboseValue("- CanonCustom:$$tagInfo{Name}", $val);
2342
+ $exifTool->VerboseValue("+ CanonCustom:$$tagInfo{Name}", $newVal);
2343
+ ++$exifTool->{CHANGED};
2344
+ } else {
2345
+ # save extracted tag
2346
+ my $oldInfo = $$tagTablePtr{$tag};
2347
+ $exifTool->HandleTag($tagTablePtr, $tag, $val,
2348
+ Index => $i,
2349
+ Format => 'int32u',
2350
+ Count => $num,
2351
+ Size => $num * 4,
2352
+ );
2353
+ my $tagInfo = $$tagTablePtr{$tag};
2354
+ # generate properly formatted description if we just added the tag
2355
+ if ($tagInfo and not $oldInfo) {
2356
+ ($$tagInfo{Description} = $$tagInfo{Name}) =~ tr/_/ /;
2357
+ $$tagInfo{Description} =~ s/CanonCustom Functions/Canon Custom Functions /;
2358
+ }
2359
+ }
2360
+ }
2361
+ $pos += $recLen - 8;
2362
+ }
2363
+ if ($pos != $end) {
2364
+ $exifTool->Warn('Possibly corrupted CanonCustom2 data');
2365
+ return 0;
2366
+ }
2367
+ return 1;
2368
+ }
2369
+
2370
+ #------------------------------------------------------------------------------
2371
+ # Write Canon custom 2 data
2372
+ # Inputs: 0) ExifTool object reference, 1) dirInfo hash ref, 2) tag table ref
2373
+ # Returns: New custom data block or undefined on error
2374
+ sub WriteCanonCustom2($$$)
2375
+ {
2376
+ my ($exifTool, $dirInfo, $tagTablePtr) = @_;
2377
+ $exifTool or return 1; # allow dummy access to autoload this package
2378
+ my $dataPt = $$dirInfo{DataPt};
2379
+ # edit a copy of the custom function 2 data
2380
+ my $buff = substr($$dataPt, $$dirInfo{DirStart}, $$dirInfo{DirLen});
2381
+ my %dirInfo = (
2382
+ DataPt => \$buff,
2383
+ DirStart => 0,
2384
+ DirLen => $$dirInfo{DirLen},
2385
+ Write => 1,
2386
+ );
2387
+ ProcessCanonCustom2($exifTool, \%dirInfo, $tagTablePtr) or return undef;
2388
+ return $buff;
2389
+ }
2390
+
2391
+ #------------------------------------------------------------------------------
2392
+ # Process Canon custom directory
2393
+ # Inputs: 0) ExifTool object ref, 1) dirInfo ref, 2) tag table ref
2394
+ # Returns: 1 on success
2395
+ sub ProcessCanonCustom($$$)
2396
+ {
2397
+ my ($exifTool, $dirInfo, $tagTablePtr) = @_;
2398
+ my $dataPt = $$dirInfo{DataPt};
2399
+ my $offset = $$dirInfo{DirStart};
2400
+ my $size = $$dirInfo{DirLen};
2401
+ my $verbose = $exifTool->Options('Verbose');
2402
+
2403
+ # first entry in array must be the size
2404
+ my $len = Get16u($dataPt,$offset);
2405
+ unless ($len == $size or ($$exifTool{Model}=~/\bD60\b/ and $len+2 == $size)) {
2406
+ $exifTool->Warn("Invalid CanonCustom data");
2407
+ return 0;
2408
+ }
2409
+ $verbose and $exifTool->VerboseDir('CanonCustom', $size/2-1);
2410
+ my $pos;
2411
+ for ($pos=2; $pos<$size; $pos+=2) {
2412
+ # ($pos is position within custom directory)
2413
+ my $val = Get16u($dataPt,$offset+$pos);
2414
+ my $tag = ($val >> 8);
2415
+ $val = ($val & 0xff);
2416
+ $exifTool->HandleTag($tagTablePtr, $tag, $val,
2417
+ Index => $pos/2-1,
2418
+ Format => 'int8u',
2419
+ Count => 1,
2420
+ Size => 1,
2421
+ );
2422
+ }
2423
+ return 1;
2424
+ }
2425
+
2426
+ #------------------------------------------------------------------------------
2427
+ # Check new value for Canon custom data block
2428
+ # Inputs: 0) ExifTool object reference, 1) tagInfo hash ref, 2) raw value ref
2429
+ # Returns: error string or undef (and may modify value) on success
2430
+ sub CheckCanonCustom($$$)
2431
+ {
2432
+ my ($exifTool, $tagInfo, $valPtr) = @_;
2433
+ return Image::ExifTool::CheckValue($valPtr, 'int8u');
2434
+ }
2435
+
2436
+ #------------------------------------------------------------------------------
2437
+ # Write Canon custom data
2438
+ # Inputs: 0) ExifTool object reference, 1) dirInfo hash ref, 2) tag table ref
2439
+ # Returns: New custom data block or undefined on error
2440
+ sub WriteCanonCustom($$$)
2441
+ {
2442
+ my ($exifTool, $dirInfo, $tagTablePtr) = @_;
2443
+ $exifTool or return 1; # allow dummy access to autoload this package
2444
+ my $dataPt = $$dirInfo{DataPt};
2445
+ my $dirStart = $$dirInfo{DirStart} || 0;
2446
+ my $dirLen = $$dirInfo{DirLen} || length($$dataPt) - $dirStart;
2447
+ my $dirName = $$dirInfo{DirName};
2448
+ my $newData = substr($$dataPt, $dirStart, $dirLen) or return undef;
2449
+ $dataPt = \$newData;
2450
+
2451
+ # first entry in array must be the size
2452
+ my $len = Get16u($dataPt, 0);
2453
+ unless ($len == $dirLen or ($$exifTool{Model}=~/\bD60\b/ and $len+2 == $dirLen)) {
2454
+ $exifTool->Warn("Invalid CanonCustom data");
2455
+ return undef;
2456
+ }
2457
+ my $newTags = $exifTool->GetNewTagInfoHash($tagTablePtr);
2458
+ my $pos;
2459
+ for ($pos=2; $pos<$dirLen; $pos+=2) {
2460
+ my $val = Get16u($dataPt, $pos);
2461
+ my $tag = ($val >> 8);
2462
+ my $tagInfo = $$newTags{$tag};
2463
+ next unless $tagInfo;
2464
+ my $nvHash = $exifTool->GetNewValueHash($tagInfo);
2465
+ $val = ($val & 0xff);
2466
+ next unless $exifTool->IsOverwriting($nvHash, $val);
2467
+ my $newVal = $exifTool->GetNewValues($nvHash);
2468
+ next unless defined $newVal; # can't delete from a custom table
2469
+ Set16u(($newVal & 0xff) + ($tag << 8), $dataPt, $pos);
2470
+ $exifTool->VerboseValue("- $dirName:$$tagInfo{Name}", $val);
2471
+ $exifTool->VerboseValue("+ $dirName:$$tagInfo{Name}", $newVal);
2472
+ ++$exifTool->{CHANGED};
2473
+ }
2474
+ return $newData;
2475
+ }
2476
+
2477
+
2478
+ 1; # end
2479
+
2480
+ __END__
2481
+
2482
+ =head1 NAME
2483
+
2484
+ Image::ExifTool::CanonCustom - Read and Write Canon custom functions
2485
+
2486
+ =head1 SYNOPSIS
2487
+
2488
+ This module is loaded automatically by Image::ExifTool when required.
2489
+
2490
+ =head1 DESCRIPTION
2491
+
2492
+ The Canon custom functions meta information is very specific to the
2493
+ camera model, and is found in both the EXIF maker notes and in the
2494
+ Canon RAW files. This module contains the definitions necessary for
2495
+ Image::ExifTool to read this information.
2496
+
2497
+ =head1 AUTHOR
2498
+
2499
+ Copyright 2003-2013, Phil Harvey (phil at owl.phy.queensu.ca)
2500
+
2501
+ This library is free software; you can redistribute it and/or modify it
2502
+ under the same terms as Perl itself.
2503
+
2504
+ =head1 REFERENCES
2505
+
2506
+ =over 4
2507
+
2508
+ =item L<http://park2.wakwak.com/~tsuruzoh/Computer/Digicams/exif-e.html>
2509
+
2510
+ =back
2511
+
2512
+ =head1 ACKNOWLEDGEMENTS
2513
+
2514
+ Thanks to Christian Koller for his work in decoding the 20D custom
2515
+ functions, Rainer Honle for decoding the 5D custom functions and David
2516
+ Pitcher for adding a few undocumented 1DmkIII settings.
2517
+
2518
+ =head1 SEE ALSO
2519
+
2520
+ L<Image::ExifTool::TagNames/Canon Tags>,
2521
+ L<Image::ExifTool(3pm)|Image::ExifTool>
2522
+
2523
+ =cut