exiftool_vendored 10.31.0 → 10.40.0

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

Potentially problematic release.


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

Files changed (1296) hide show
  1. checksums.yaml +4 -4
  2. data/bin/Image-ExifTool-10.40/Changes +7693 -0
  3. data/bin/Image-ExifTool-10.40/MANIFEST +998 -0
  4. data/bin/Image-ExifTool-10.40/META.json +51 -0
  5. data/bin/Image-ExifTool-10.40/META.yml +31 -0
  6. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/Makefile.PL +0 -0
  7. data/bin/Image-ExifTool-10.40/README +240 -0
  8. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/arg_files/exif2iptc.args +0 -0
  9. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/arg_files/exif2xmp.args +0 -0
  10. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/arg_files/gps2xmp.args +0 -0
  11. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/arg_files/iptc2exif.args +0 -0
  12. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/arg_files/iptc2xmp.args +0 -0
  13. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/arg_files/iptcCore.args +0 -0
  14. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/arg_files/pdf2xmp.args +0 -0
  15. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/arg_files/xmp2exif.args +0 -0
  16. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/arg_files/xmp2gps.args +0 -0
  17. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/arg_files/xmp2iptc.args +0 -0
  18. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/arg_files/xmp2pdf.args +0 -0
  19. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/config_files/bibble.config +0 -0
  20. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/config_files/convert_regions.config +0 -0
  21. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/config_files/example.config +0 -0
  22. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/config_files/fotoware.config +0 -0
  23. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/config_files/gps2utm.config +0 -0
  24. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/config_files/photoshop_paths.config +0 -0
  25. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/config_files/picasa_faces.config +0 -0
  26. data/bin/Image-ExifTool-10.40/config_files/time_zone.config +76 -0
  27. data/bin/Image-ExifTool-10.40/exiftool +6462 -0
  28. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/fmt_files/gpx.fmt +0 -0
  29. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/fmt_files/gpx_wpt.fmt +0 -0
  30. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/fmt_files/kml.fmt +0 -0
  31. data/bin/Image-ExifTool-10.40/html/ExifTool.html +2122 -0
  32. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/MIE1.1-20070121.pdf +0 -0
  33. data/bin/Image-ExifTool-10.40/html/Shift.html +179 -0
  34. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/AFCP.html +0 -0
  35. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/AIFF.html +0 -0
  36. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/APE.html +0 -0
  37. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/APP12.html +0 -0
  38. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/ASF.html +0 -0
  39. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Apple.html +0 -0
  40. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Audible.html +0 -0
  41. data/bin/Image-ExifTool-10.40/html/TagNames/BMP.html +233 -0
  42. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/BPG.html +0 -0
  43. data/bin/Image-ExifTool-10.40/html/TagNames/Canon.html +9741 -0
  44. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/CanonCustom.html +0 -0
  45. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/CanonRaw.html +0 -0
  46. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/CanonVRD.html +0 -0
  47. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Casio.html +0 -0
  48. data/bin/Image-ExifTool-10.40/html/TagNames/Composite.html +745 -0
  49. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/DICOM.html +0 -0
  50. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/DJI.html +0 -0
  51. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/DNG.html +0 -0
  52. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/DPX.html +0 -0
  53. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/DV.html +0 -0
  54. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/DarwinCore.html +0 -0
  55. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/DjVu.html +0 -0
  56. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/EXE.html +0 -0
  57. data/bin/Image-ExifTool-10.40/html/TagNames/EXIF.html +3484 -0
  58. data/bin/Image-ExifTool-10.40/html/TagNames/Extra.html +471 -0
  59. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/FLAC.html +0 -0
  60. data/bin/Image-ExifTool-10.40/html/TagNames/FLIF.html +84 -0
  61. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/FLIR.html +0 -0
  62. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Flash.html +0 -0
  63. data/bin/Image-ExifTool-10.40/html/TagNames/FlashPix.html +1475 -0
  64. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Font.html +0 -0
  65. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/FotoStation.html +0 -0
  66. data/bin/Image-ExifTool-10.40/html/TagNames/FujiFilm.html +867 -0
  67. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/GE.html +0 -0
  68. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/GIF.html +0 -0
  69. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/GIMP.html +0 -0
  70. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/GPS.html +0 -0
  71. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/GeoTiff.html +0 -0
  72. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/H264.html +0 -0
  73. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/HP.html +0 -0
  74. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/HTML.html +0 -0
  75. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/ICC_Profile.html +0 -0
  76. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/ID3.html +0 -0
  77. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/IPTC.html +0 -0
  78. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/ISO.html +0 -0
  79. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/ITC.html +0 -0
  80. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/JFIF.html +0 -0
  81. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/JPEG.html +0 -0
  82. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/JVC.html +0 -0
  83. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Jpeg2000.html +0 -0
  84. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Kodak.html +0 -0
  85. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/KyoceraRaw.html +0 -0
  86. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/LNK.html +0 -0
  87. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Leaf.html +0 -0
  88. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Lytro.html +0 -0
  89. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/M2TS.html +0 -0
  90. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/MIE.html +0 -0
  91. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/MIFF.html +0 -0
  92. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/MNG.html +0 -0
  93. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/MOI.html +0 -0
  94. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/MPC.html +0 -0
  95. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/MPEG.html +0 -0
  96. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/MPF.html +0 -0
  97. data/bin/Image-ExifTool-10.40/html/TagNames/MWG.html +584 -0
  98. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/MXF.html +0 -0
  99. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Matroska.html +0 -0
  100. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Microsoft.html +0 -0
  101. data/bin/Image-ExifTool-10.40/html/TagNames/Minolta.html +2634 -0
  102. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/MinoltaRaw.html +0 -0
  103. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Motorola.html +0 -0
  104. data/bin/Image-ExifTool-10.40/html/TagNames/Nikon.html +6016 -0
  105. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/NikonCapture.html +0 -0
  106. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/NikonCustom.html +0 -0
  107. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Nintendo.html +0 -0
  108. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/OOXML.html +0 -0
  109. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Ogg.html +0 -0
  110. data/bin/Image-ExifTool-10.40/html/TagNames/Olympus.html +3655 -0
  111. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/OpenEXR.html +0 -0
  112. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Opus.html +0 -0
  113. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/PDF.html +0 -0
  114. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/PGF.html +0 -0
  115. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/PICT.html +0 -0
  116. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/PLIST.html +0 -0
  117. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/PLUS.html +0 -0
  118. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/PNG.html +0 -0
  119. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/PSP.html +0 -0
  120. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Palm.html +0 -0
  121. data/bin/Image-ExifTool-10.40/html/TagNames/Panasonic.html +1701 -0
  122. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/PanasonicRaw.html +0 -0
  123. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Pentax.html +0 -0
  124. data/bin/Image-ExifTool-10.40/html/TagNames/PhaseOne.html +263 -0
  125. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/PhotoCD.html +0 -0
  126. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/PhotoMechanic.html +0 -0
  127. data/bin/Image-ExifTool-10.40/html/TagNames/Photoshop.html +739 -0
  128. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/PostScript.html +0 -0
  129. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/PrintIM.html +0 -0
  130. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Qualcomm.html +0 -0
  131. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/QuickTime.html +0 -0
  132. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/RIFF.html +0 -0
  133. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/RSRC.html +0 -0
  134. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/RTF.html +0 -0
  135. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Radiance.html +0 -0
  136. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Rawzor.html +0 -0
  137. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Real.html +0 -0
  138. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Reconyx.html +0 -0
  139. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Ricoh.html +0 -0
  140. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Samsung.html +0 -0
  141. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Sanyo.html +0 -0
  142. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Scalado.html +0 -0
  143. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Shortcuts.html +0 -0
  144. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Sigma.html +0 -0
  145. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/SigmaRaw.html +0 -0
  146. data/bin/Image-ExifTool-10.40/html/TagNames/Sony.html +10305 -0
  147. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/SonyIDC.html +0 -0
  148. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Stim.html +0 -0
  149. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Theora.html +0 -0
  150. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Torrent.html +0 -0
  151. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Unknown.html +0 -0
  152. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/VCard.html +0 -0
  153. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/Vorbis.html +0 -0
  154. data/bin/Image-ExifTool-10.40/html/TagNames/XMP.html +10158 -0
  155. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/ZIP.html +0 -0
  156. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/iWork.html +0 -0
  157. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/index.html +0 -0
  158. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/TagNames/style.css +0 -0
  159. data/bin/Image-ExifTool-10.40/html/ancient_history.html +8365 -0
  160. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/canon_raw.html +0 -0
  161. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/commentary.html +0 -0
  162. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/config.html +0 -0
  163. data/bin/Image-ExifTool-10.40/html/data_members.html +286 -0
  164. data/bin/Image-ExifTool-10.40/html/exiftool_pod.html +1873 -0
  165. data/bin/Image-ExifTool-10.40/html/faq.html +1591 -0
  166. data/bin/Image-ExifTool-10.40/html/filename.html +353 -0
  167. data/bin/Image-ExifTool-10.40/html/geotag.html +661 -0
  168. data/bin/Image-ExifTool-10.40/html/history.html +317 -0
  169. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/htmldump.html +0 -0
  170. data/bin/Image-ExifTool-10.40/html/idiosyncracies.html +272 -0
  171. data/bin/Image-ExifTool-10.40/html/index.html +1363 -0
  172. data/bin/Image-ExifTool-10.40/html/install.html +261 -0
  173. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/metafiles.html +0 -0
  174. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/overview.png +0 -0
  175. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/standards.html +0 -0
  176. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/struct.html +0 -0
  177. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/style.css +0 -0
  178. data/bin/Image-ExifTool-10.40/html/under.html +137 -0
  179. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/verbose.html +0 -0
  180. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/html/writing.html +0 -0
  181. data/bin/Image-ExifTool-10.40/lib/File/RandomAccess.pm +378 -0
  182. data/bin/Image-ExifTool-10.40/lib/File/RandomAccess.pod +231 -0
  183. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool.pm +7773 -0
  184. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool.pod +2569 -0
  185. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/AES.pm +501 -0
  186. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/AFCP.pm +286 -0
  187. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/AIFF.pm +289 -0
  188. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/APE.pm +282 -0
  189. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/APP12.pm +322 -0
  190. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/ASF.pm +885 -0
  191. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Apple.pm +153 -0
  192. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Audible.pm +317 -0
  193. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/BMP.pm +361 -0
  194. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/BPG.pm +251 -0
  195. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/BZZ.pm +472 -0
  196. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/BigTIFF.pm +282 -0
  197. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/BuildTagLookup.pm +2562 -0
  198. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Canon.pm +8929 -0
  199. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/CanonCustom.pm +2667 -0
  200. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/CanonRaw.pm +910 -0
  201. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/CanonVRD.pm +2273 -0
  202. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/CaptureOne.pm +235 -0
  203. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Casio.pm +2060 -0
  204. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Charset.pm +423 -0
  205. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/Arabic.pm +0 -0
  206. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/Baltic.pm +0 -0
  207. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/Cyrillic.pm +0 -0
  208. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/Greek.pm +0 -0
  209. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/Hebrew.pm +0 -0
  210. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/JIS.pm +0 -0
  211. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/Latin.pm +0 -0
  212. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/Latin2.pm +0 -0
  213. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/MacArabic.pm +0 -0
  214. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/MacChineseCN.pm +0 -0
  215. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/MacChineseTW.pm +0 -0
  216. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/MacCroatian.pm +0 -0
  217. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/MacCyrillic.pm +0 -0
  218. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/MacGreek.pm +0 -0
  219. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/MacHebrew.pm +0 -0
  220. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/MacIceland.pm +0 -0
  221. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/MacJapanese.pm +0 -0
  222. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/MacKorean.pm +0 -0
  223. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/MacLatin2.pm +0 -0
  224. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/MacRSymbol.pm +0 -0
  225. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/MacRoman.pm +0 -0
  226. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/MacRomanian.pm +0 -0
  227. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/MacThai.pm +0 -0
  228. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/MacTurkish.pm +0 -0
  229. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/PDFDoc.pm +0 -0
  230. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/ShiftJIS.pm +0 -0
  231. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/Symbol.pm +0 -0
  232. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/Thai.pm +0 -0
  233. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/Turkish.pm +0 -0
  234. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/lib/Image/ExifTool/Charset/Vietnam.pm +0 -0
  235. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/DICOM.pm +3874 -0
  236. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/DJI.pm +71 -0
  237. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/DNG.pm +835 -0
  238. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/DPX.pm +182 -0
  239. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/DV.pm +319 -0
  240. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/DarwinCore.pm +322 -0
  241. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/DjVu.pm +376 -0
  242. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/EXE.pm +1401 -0
  243. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Exif.pm +6097 -0
  244. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/FLAC.pm +297 -0
  245. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/FLIF.pm +353 -0
  246. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/FLIR.pm +1535 -0
  247. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Fixup.pm +366 -0
  248. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Flash.pm +755 -0
  249. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/FlashPix.pm +1960 -0
  250. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Font.pm +647 -0
  251. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/FotoStation.pm +261 -0
  252. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/FujiFilm.pm +1264 -0
  253. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/GE.pm +81 -0
  254. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/GIF.pm +542 -0
  255. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/GIMP.pm +258 -0
  256. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/GPS.pm +559 -0
  257. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/GeoTiff.pm +2263 -0
  258. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Geotag.pm +1287 -0
  259. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/H264.pm +1110 -0
  260. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/HP.pm +263 -0
  261. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/HTML.pm +576 -0
  262. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/HtmlDump.pm +898 -0
  263. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/ICC_Profile.pm +1013 -0
  264. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/ID3.pm +1570 -0
  265. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/IPTC.pm +1264 -0
  266. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/ISO.pm +206 -0
  267. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/ITC.pm +215 -0
  268. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Import.pm +329 -0
  269. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/InDesign.pm +277 -0
  270. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/JPEG.pm +605 -0
  271. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/JPEGDigest.pm +2616 -0
  272. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/JVC.pm +130 -0
  273. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Jpeg2000.pm +898 -0
  274. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Kodak.pm +2096 -0
  275. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/KyoceraRaw.pm +173 -0
  276. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/LNK.pm +723 -0
  277. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Lang/cs.pm +1588 -0
  278. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Lang/de.pm +8692 -0
  279. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Lang/en_ca.pm +940 -0
  280. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Lang/en_gb.pm +983 -0
  281. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Lang/es.pm +4019 -0
  282. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Lang/fi.pm +2854 -0
  283. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Lang/fr.pm +4758 -0
  284. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Lang/it.pm +7918 -0
  285. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Lang/ja.pm +5835 -0
  286. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Lang/ko.pm +2330 -0
  287. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Lang/nl.pm +3222 -0
  288. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Lang/pl.pm +1276 -0
  289. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Lang/ru.pm +768 -0
  290. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Lang/sv.pm +638 -0
  291. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Lang/tr.pm +544 -0
  292. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Lang/zh_cn.pm +1330 -0
  293. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Lang/zh_tw.pm +801 -0
  294. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Leaf.pm +517 -0
  295. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Lytro.pm +217 -0
  296. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/M2TS.pm +729 -0
  297. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/MIE.pm +2564 -0
  298. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/MIEUnits.pod +377 -0
  299. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/MIFF.pm +279 -0
  300. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/MNG.pm +684 -0
  301. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/MOI.pm +158 -0
  302. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/MPC.pm +156 -0
  303. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/MPEG.pm +736 -0
  304. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/MPF.pm +288 -0
  305. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/MWG.pm +757 -0
  306. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/MXF.pm +3031 -0
  307. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/MakerNotes.pm +1745 -0
  308. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Matroska.pm +932 -0
  309. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Microsoft.pm +904 -0
  310. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Minolta.pm +2996 -0
  311. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/MinoltaRaw.pm +535 -0
  312. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Motorola.pm +62 -0
  313. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Nikon.pm +8173 -0
  314. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/NikonCapture.pm +940 -0
  315. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/NikonCustom.pm +8682 -0
  316. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Nintendo.pm +128 -0
  317. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/OOXML.pm +409 -0
  318. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Ogg.pm +240 -0
  319. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Olympus.pm +3998 -0
  320. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/OpenEXR.pm +323 -0
  321. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Opus.pm +98 -0
  322. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/PDF.pm +2367 -0
  323. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/PGF.pm +143 -0
  324. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/PICT.pm +1260 -0
  325. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/PLIST.pm +448 -0
  326. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/PLUS.pm +2607 -0
  327. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/PNG.pm +1255 -0
  328. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/PPM.pm +169 -0
  329. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/PSP.pm +306 -0
  330. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Palm.pm +403 -0
  331. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Panasonic.pm +2378 -0
  332. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/PanasonicRaw.pm +643 -0
  333. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Pentax.pm +6135 -0
  334. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/PhaseOne.pm +725 -0
  335. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/PhotoCD.pm +507 -0
  336. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/PhotoMechanic.pm +256 -0
  337. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Photoshop.pm +952 -0
  338. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/PostScript.pm +699 -0
  339. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/PrintIM.pm +125 -0
  340. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Qualcomm.pm +1344 -0
  341. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/QuickTime.pm +6708 -0
  342. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/README +1010 -0
  343. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/RIFF.pm +1587 -0
  344. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/RSRC.pm +241 -0
  345. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/RTF.pm +383 -0
  346. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Radiance.pm +144 -0
  347. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Rawzor.pm +189 -0
  348. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Real.pm +739 -0
  349. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Reconyx.pm +190 -0
  350. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Ricoh.pm +1150 -0
  351. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Samsung.pm +1271 -0
  352. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Sanyo.pm +440 -0
  353. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Scalado.pm +141 -0
  354. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Shift.pl +627 -0
  355. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Shortcuts.pm +338 -0
  356. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Sigma.pm +764 -0
  357. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/SigmaRaw.pm +670 -0
  358. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Sony.pm +9800 -0
  359. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/SonyIDC.pm +333 -0
  360. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Stim.pm +196 -0
  361. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/TagInfoXML.pm +827 -0
  362. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/TagLookup.pm +9515 -0
  363. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/TagNames.pod +30714 -0
  364. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Theora.pm +145 -0
  365. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Torrent.pm +317 -0
  366. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Unknown.pm +66 -0
  367. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/VCard.pm +405 -0
  368. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Vorbis.pm +255 -0
  369. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/WriteCanonRaw.pl +637 -0
  370. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/WriteExif.pl +2483 -0
  371. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/WriteIPTC.pl +706 -0
  372. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/WritePDF.pl +771 -0
  373. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/WritePNG.pl +390 -0
  374. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/WritePhotoshop.pl +266 -0
  375. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/WritePostScript.pl +772 -0
  376. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/WriteQuickTime.pl +358 -0
  377. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/WriteXMP.pl +1381 -0
  378. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/Writer.pl +6322 -0
  379. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/XMP.pm +3897 -0
  380. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/XMP2.pl +1705 -0
  381. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/XMPStruct.pl +843 -0
  382. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/ZIP.pm +667 -0
  383. data/bin/Image-ExifTool-10.40/lib/Image/ExifTool/iWork.pm +223 -0
  384. data/bin/Image-ExifTool-10.40/perl-Image-ExifTool.spec +113 -0
  385. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/AFCP.t +0 -0
  386. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/AFCP_2.out +0 -0
  387. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/AFCP_3.out +0 -0
  388. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/AIFF.t +0 -0
  389. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/AIFF_2.out +0 -0
  390. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/APE.t +0 -0
  391. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/APE_2.out +0 -0
  392. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/APE_3.out +0 -0
  393. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ASF.t +0 -0
  394. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ASF_2.out +0 -0
  395. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Apple.t +0 -0
  396. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Apple_2.out +0 -0
  397. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Audible.t +0 -0
  398. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Audible_2.out +0 -0
  399. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/BMP.t +0 -0
  400. data/bin/Image-ExifTool-10.40/t/BMP_2.out +24 -0
  401. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/BPG.t +0 -0
  402. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/BPG_2.out +0 -0
  403. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/BigTIFF.t +0 -0
  404. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/BigTIFF_2.out +0 -0
  405. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Canon.t +0 -0
  406. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonRaw.t +0 -0
  407. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonRaw_2.out +0 -0
  408. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonRaw_4.out +0 -0
  409. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonRaw_5.out +0 -0
  410. data/bin/Image-ExifTool-10.40/t/CanonRaw_6.out +233 -0
  411. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonRaw_7.out +0 -0
  412. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD.t +0 -0
  413. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_11.out +0 -0
  414. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_12.out +0 -0
  415. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_13.out +0 -0
  416. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_14.out +0 -0
  417. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_15.out +0 -0
  418. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_16.out +0 -0
  419. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_17.out +0 -0
  420. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_18.out +0 -0
  421. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_19.out +0 -0
  422. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_2.out +0 -0
  423. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_20.out +0 -0
  424. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_21.out +0 -0
  425. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_3.out +0 -0
  426. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_4.out +0 -0
  427. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_5.out +0 -0
  428. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_6.out +0 -0
  429. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_7.out +0 -0
  430. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_8.out +0 -0
  431. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/CanonVRD_9.out +0 -0
  432. data/bin/Image-ExifTool-10.40/t/Canon_2.out +358 -0
  433. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Canon_3.out +0 -0
  434. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Casio.t +0 -0
  435. data/bin/Image-ExifTool-10.40/t/Casio_2.out +72 -0
  436. data/bin/Image-ExifTool-10.40/t/Casio_3.out +102 -0
  437. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Casio_4.out +0 -0
  438. data/bin/Image-ExifTool-10.40/t/Casio_5.out +80 -0
  439. data/bin/Image-ExifTool-10.40/t/Casio_6.out +117 -0
  440. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/DICOM.t +0 -0
  441. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/DICOM_2.out +0 -0
  442. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/DNG.t +0 -0
  443. data/bin/Image-ExifTool-10.40/t/DNG_2.out +329 -0
  444. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/DNG_3.out +0 -0
  445. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/DPX.t +0 -0
  446. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/DPX_2.out +0 -0
  447. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/DV.t +0 -0
  448. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/DV_2.out +0 -0
  449. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/DjVu.t +0 -0
  450. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/DjVu_2.out +0 -0
  451. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/EXE.t +0 -0
  452. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/EXE_2.out +0 -0
  453. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/EXE_3.out +0 -0
  454. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/EXE_4.out +0 -0
  455. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/EXE_5.out +0 -0
  456. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/EXE_6.out +0 -0
  457. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/EXE_7.out +0 -0
  458. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool.t +0 -0
  459. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_16.out +0 -0
  460. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_17.out +0 -0
  461. data/bin/Image-ExifTool-10.40/t/ExifTool_2.out +427 -0
  462. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_20.out +0 -0
  463. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_21.out +0 -0
  464. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_22.out +0 -0
  465. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_23.out +0 -0
  466. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_24.out +0 -0
  467. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_25.out +0 -0
  468. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_26.out +0 -0
  469. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_27.out +0 -0
  470. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_28.out +0 -0
  471. data/bin/Image-ExifTool-10.40/t/ExifTool_29.out +426 -0
  472. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_3.out +0 -0
  473. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_30.out +0 -0
  474. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_4.out +0 -0
  475. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_5.out +0 -0
  476. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_6.out +0 -0
  477. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_7.out +0 -0
  478. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_8.out +0 -0
  479. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ExifTool_9.out +0 -0
  480. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/FLAC.t +0 -0
  481. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/FLAC_2.out +0 -0
  482. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/FLAC_3.out +0 -0
  483. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/FLIF.t +0 -0
  484. data/bin/Image-ExifTool-10.40/t/FLIF_2.out +51 -0
  485. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/FLIF_3.out +0 -0
  486. data/bin/Image-ExifTool-10.40/t/FLIF_4.out +18 -0
  487. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/FLIF_5.out +0 -0
  488. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/FLIF_6.out +0 -0
  489. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/FLIR.t +0 -0
  490. data/bin/Image-ExifTool-10.40/t/FLIR_2.out +118 -0
  491. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/FLIR_3.out +0 -0
  492. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Flash.t +0 -0
  493. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/FlashPix.t +0 -0
  494. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/FlashPix_2.out +0 -0
  495. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Flash_2.out +0 -0
  496. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Flash_3.out +0 -0
  497. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Font.t +0 -0
  498. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Font_2.out +0 -0
  499. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Font_3.out +0 -0
  500. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Font_4.out +0 -0
  501. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Font_5.out +0 -0
  502. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Font_6.out +0 -0
  503. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Font_7.out +0 -0
  504. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/FotoStation.t +0 -0
  505. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/FotoStation_2.out +0 -0
  506. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/FotoStation_3.out +0 -0
  507. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/FujiFilm.t +0 -0
  508. data/bin/Image-ExifTool-10.40/t/FujiFilm_2.out +89 -0
  509. data/bin/Image-ExifTool-10.40/t/FujiFilm_3.out +90 -0
  510. data/bin/Image-ExifTool-10.40/t/FujiFilm_4.out +143 -0
  511. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/FujiFilm_5.out +0 -0
  512. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/GE.t +0 -0
  513. data/bin/Image-ExifTool-10.40/t/GE_2.out +86 -0
  514. data/bin/Image-ExifTool-10.40/t/GE_3.out +86 -0
  515. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/GIF.t +0 -0
  516. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/GIF_2.out +0 -0
  517. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/GIF_3.out +0 -0
  518. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/GIF_4.out +0 -0
  519. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/GIMP.t +0 -0
  520. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/GIMP_2.out +0 -0
  521. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/GPS.t +0 -0
  522. data/bin/Image-ExifTool-10.40/t/GPS_2.out +96 -0
  523. data/bin/Image-ExifTool-10.40/t/GPS_3.out +98 -0
  524. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/GeoTiff.t +0 -0
  525. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/GeoTiff_2.out +0 -0
  526. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/GeoTiff_3.out +0 -0
  527. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/GeoTiff_4.out +0 -0
  528. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Geotag.t +0 -0
  529. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Geotag_10.out +0 -0
  530. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Geotag_11.out +0 -0
  531. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Geotag_2.out +0 -0
  532. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Geotag_3.out +0 -0
  533. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Geotag_5.out +0 -0
  534. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Geotag_6.out +0 -0
  535. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Geotag_7.out +0 -0
  536. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Geotag_8.out +0 -0
  537. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Geotag_9.out +0 -0
  538. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/HTML.t +0 -0
  539. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/HTML_2.out +0 -0
  540. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/IPTC.t +0 -0
  541. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/IPTC_2.out +0 -0
  542. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/IPTC_4.out +0 -0
  543. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/IPTC_5.out +0 -0
  544. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/IPTC_6.out +0 -0
  545. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/IPTC_7.out +0 -0
  546. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/IPTC_8.out +0 -0
  547. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ISO.t +0 -0
  548. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ISO_2.out +0 -0
  549. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ITC.t +0 -0
  550. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ITC_2.out +0 -0
  551. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/InDesign.t +0 -0
  552. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/InDesign_2.out +0 -0
  553. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/InDesign_3.out +0 -0
  554. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/InDesign_4.out +0 -0
  555. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/JVC.t +0 -0
  556. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/JVC_2.out +0 -0
  557. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/JVC_3.out +0 -0
  558. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Jpeg2000.t +0 -0
  559. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Jpeg2000_2.out +0 -0
  560. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Jpeg2000_3.out +0 -0
  561. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Jpeg2000_4.out +0 -0
  562. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Kodak.t +0 -0
  563. data/bin/Image-ExifTool-10.40/t/Kodak_2.out +111 -0
  564. data/bin/Image-ExifTool-10.40/t/Kodak_3.out +121 -0
  565. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/KyoceraRaw.t +0 -0
  566. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/KyoceraRaw_2.out +0 -0
  567. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/LNK.t +0 -0
  568. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/LNK_2.out +0 -0
  569. data/bin/Image-ExifTool-10.40/t/Lang.t +42 -0
  570. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Lang_1.out +0 -0
  571. data/bin/Image-ExifTool-10.40/t/Lang_10.out +47 -0
  572. data/bin/Image-ExifTool-10.40/t/Lang_11.out +47 -0
  573. data/bin/Image-ExifTool-10.40/t/Lang_12.out +47 -0
  574. data/bin/Image-ExifTool-10.40/t/Lang_13.out +47 -0
  575. data/bin/Image-ExifTool-10.40/t/Lang_14.out +47 -0
  576. data/bin/Image-ExifTool-10.40/t/Lang_15.out +47 -0
  577. data/bin/Image-ExifTool-10.40/t/Lang_16.out +47 -0
  578. data/bin/Image-ExifTool-10.40/t/Lang_17.out +47 -0
  579. data/bin/Image-ExifTool-10.40/t/Lang_18.out +47 -0
  580. data/bin/Image-ExifTool-10.40/t/Lang_2.out +47 -0
  581. data/bin/Image-ExifTool-10.40/t/Lang_3.out +47 -0
  582. data/bin/Image-ExifTool-10.40/t/Lang_4.out +47 -0
  583. data/bin/Image-ExifTool-10.40/t/Lang_5.out +47 -0
  584. data/bin/Image-ExifTool-10.40/t/Lang_6.out +47 -0
  585. data/bin/Image-ExifTool-10.40/t/Lang_7.out +47 -0
  586. data/bin/Image-ExifTool-10.40/t/Lang_8.out +47 -0
  587. data/bin/Image-ExifTool-10.40/t/Lang_9.out +47 -0
  588. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Lytro.t +0 -0
  589. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Lytro_2.out +0 -0
  590. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/M2TS.t +0 -0
  591. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/M2TS_2.out +0 -0
  592. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/MIE.t +0 -0
  593. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/MIE_2.out +0 -0
  594. data/bin/Image-ExifTool-10.40/t/MIE_3.out +136 -0
  595. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/MIE_5.out +0 -0
  596. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/MIE_6.out +0 -0
  597. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/MIFF.t +0 -0
  598. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/MIFF_2.out +0 -0
  599. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/MOI.t +0 -0
  600. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/MOI_2.out +0 -0
  601. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/MP3.t +0 -0
  602. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/MP3_2.out +0 -0
  603. data/bin/Image-ExifTool-10.40/t/MWG.t +99 -0
  604. data/bin/Image-ExifTool-10.40/t/MWG_2.out +13 -0
  605. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/MWG_3.out +0 -0
  606. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/MWG_4.out +0 -0
  607. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/MWG_5.out +0 -0
  608. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/MWG_6.out +0 -0
  609. data/bin/Image-ExifTool-10.40/t/MWG_7.out +11 -0
  610. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/MXF.t +0 -0
  611. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/MXF_2.out +0 -0
  612. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Matroska.t +0 -0
  613. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Matroska_2.out +0 -0
  614. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Minolta.t +0 -0
  615. data/bin/Image-ExifTool-10.40/t/Minolta_2.out +135 -0
  616. data/bin/Image-ExifTool-10.40/t/Minolta_3.out +148 -0
  617. data/bin/Image-ExifTool-10.40/t/Minolta_4.out +150 -0
  618. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Motorola.t +0 -0
  619. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Motorola_2.out +0 -0
  620. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Nikon.t +0 -0
  621. data/bin/Image-ExifTool-10.40/t/Nikon_2.out +84 -0
  622. data/bin/Image-ExifTool-10.40/t/Nikon_3.out +100 -0
  623. data/bin/Image-ExifTool-10.40/t/Nikon_4.out +176 -0
  624. data/bin/Image-ExifTool-10.40/t/Nikon_5.out +169 -0
  625. data/bin/Image-ExifTool-10.40/t/Nikon_7.out +261 -0
  626. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Nikon_8.out +0 -0
  627. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Olympus.t +0 -0
  628. data/bin/Image-ExifTool-10.40/t/Olympus_2.out +81 -0
  629. data/bin/Image-ExifTool-10.40/t/Olympus_3.out +83 -0
  630. data/bin/Image-ExifTool-10.40/t/Olympus_4.out +194 -0
  631. data/bin/Image-ExifTool-10.40/t/Olympus_5.out +266 -0
  632. data/bin/Image-ExifTool-10.40/t/Olympus_6.out +153 -0
  633. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Olympus_7.out +0 -0
  634. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Olympus_8.out +0 -0
  635. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/OpenEXR.t +0 -0
  636. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/OpenEXR_2.out +0 -0
  637. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Opus.t +0 -0
  638. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Opus_2.out +0 -0
  639. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF.t +0 -0
  640. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF_10.out +0 -0
  641. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF_11.out +0 -0
  642. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF_12.out +0 -0
  643. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF_14.out +0 -0
  644. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF_15.out +0 -0
  645. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF_16.out +0 -0
  646. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF_17.out +0 -0
  647. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF_18.out +0 -0
  648. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF_19.out +0 -0
  649. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF_2.out +0 -0
  650. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF_20.out +0 -0
  651. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF_22.out +0 -0
  652. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF_4.out +0 -0
  653. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF_5.out +0 -0
  654. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF_6.out +0 -0
  655. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF_7.out +0 -0
  656. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF_8.out +0 -0
  657. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PDF_9.out +0 -0
  658. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PGF.t +0 -0
  659. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PGF_2.out +0 -0
  660. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PICT.t +0 -0
  661. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PICT_2.out +0 -0
  662. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PLIST.t +0 -0
  663. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PLIST_2.out +0 -0
  664. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PLIST_3.out +0 -0
  665. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PLUS.t +0 -0
  666. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PLUS_2.out +0 -0
  667. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PNG.t +0 -0
  668. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PNG_2.out +0 -0
  669. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PNG_3.out +0 -0
  670. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PNG_4.out +0 -0
  671. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PNG_5.out +0 -0
  672. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PPM.t +0 -0
  673. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PPM_2.out +0 -0
  674. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PPM_3.out +0 -0
  675. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PSP.t +0 -0
  676. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PSP_2.out +0 -0
  677. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Palm.t +0 -0
  678. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Palm_2.out +0 -0
  679. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Panasonic.t +0 -0
  680. data/bin/Image-ExifTool-10.40/t/Panasonic_2.out +101 -0
  681. data/bin/Image-ExifTool-10.40/t/Panasonic_3.out +121 -0
  682. data/bin/Image-ExifTool-10.40/t/Panasonic_4.out +206 -0
  683. data/bin/Image-ExifTool-10.40/t/Panasonic_5.out +244 -0
  684. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Pentax.t +0 -0
  685. data/bin/Image-ExifTool-10.40/t/Pentax_2.out +225 -0
  686. data/bin/Image-ExifTool-10.40/t/Pentax_3.out +266 -0
  687. data/bin/Image-ExifTool-10.40/t/Pentax_4.out +132 -0
  688. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PhaseOne.t +0 -0
  689. data/bin/Image-ExifTool-10.40/t/PhaseOne_2.out +99 -0
  690. data/bin/Image-ExifTool-10.40/t/PhaseOne_3.out +170 -0
  691. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PhotoCD.t +0 -0
  692. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PhotoCD_2.out +0 -0
  693. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PhotoMechanic.t +0 -0
  694. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PhotoMechanic_2.out +0 -0
  695. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PhotoMechanic_3.out +0 -0
  696. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Photoshop.t +0 -0
  697. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Photoshop_2.out +0 -0
  698. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Photoshop_3.out +0 -0
  699. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PostScript.t +0 -0
  700. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PostScript_2.out +0 -0
  701. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/PostScript_3.out +0 -0
  702. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/QuickTime.t +0 -0
  703. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/QuickTime_2.out +0 -0
  704. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/QuickTime_3.out +0 -0
  705. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/QuickTime_4.out +0 -0
  706. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/QuickTime_5.out +0 -0
  707. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/RIFF.t +0 -0
  708. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/RIFF_2.out +0 -0
  709. data/bin/Image-ExifTool-10.40/t/RIFF_3.out +55 -0
  710. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/RIFF_4.out +0 -0
  711. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/RTF.t +0 -0
  712. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/RTF_2.out +0 -0
  713. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Radiance.t +0 -0
  714. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Radiance_2.out +0 -0
  715. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Real.t +0 -0
  716. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Real_2.out +0 -0
  717. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Real_3.out +0 -0
  718. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Real_4.out +0 -0
  719. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Ricoh.t +0 -0
  720. data/bin/Image-ExifTool-10.40/t/Ricoh_2.out +72 -0
  721. data/bin/Image-ExifTool-10.40/t/Ricoh_3.out +100 -0
  722. data/bin/Image-ExifTool-10.40/t/Ricoh_4.out +114 -0
  723. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Sanyo.t +0 -0
  724. data/bin/Image-ExifTool-10.40/t/Sanyo_2.out +103 -0
  725. data/bin/Image-ExifTool-10.40/t/Sanyo_3.out +113 -0
  726. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Sigma.t +0 -0
  727. data/bin/Image-ExifTool-10.40/t/Sigma_2.out +93 -0
  728. data/bin/Image-ExifTool-10.40/t/Sigma_3.out +96 -0
  729. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Sigma_4.out +0 -0
  730. data/bin/Image-ExifTool-10.40/t/Sigma_5.out +194 -0
  731. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Sony.t +0 -0
  732. data/bin/Image-ExifTool-10.40/t/Sony_2.out +86 -0
  733. data/bin/Image-ExifTool-10.40/t/Sony_3.out +87 -0
  734. data/bin/Image-ExifTool-10.40/t/Sony_5.out +34 -0
  735. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/TestLib.pm +0 -0
  736. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Torrent.t +0 -0
  737. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Torrent_2.out +0 -0
  738. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Unknown.t +0 -0
  739. data/bin/Image-ExifTool-10.40/t/Unknown_2.out +92 -0
  740. data/bin/Image-ExifTool-10.40/t/Unknown_3.out +92 -0
  741. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/VCard.t +0 -0
  742. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/VCard_2.out +0 -0
  743. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/VCard_3.out +0 -0
  744. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Vorbis.t +0 -0
  745. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Vorbis_2.out +0 -0
  746. data/bin/Image-ExifTool-10.40/t/Writer.t +1071 -0
  747. data/bin/Image-ExifTool-10.40/t/Writer_10.out +246 -0
  748. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_11.out +0 -0
  749. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_13.out +0 -0
  750. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_14.out +0 -0
  751. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_15.out +0 -0
  752. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_16.out +0 -0
  753. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_17.out +0 -0
  754. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_18.out +0 -0
  755. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_19.out +0 -0
  756. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_2.out +0 -0
  757. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_22.out +0 -0
  758. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_24.out +0 -0
  759. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_25.out +0 -0
  760. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_26.out +0 -0
  761. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_27.out +0 -0
  762. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_28.out +0 -0
  763. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_29.out +0 -0
  764. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_30.out +0 -0
  765. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_31.out +0 -0
  766. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_32.out +0 -0
  767. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_33.out +0 -0
  768. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_34.out +0 -0
  769. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_35.out +0 -0
  770. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_36.out +0 -0
  771. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_37.out +0 -0
  772. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_38.out +0 -0
  773. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_39.out +0 -0
  774. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_4.out +0 -0
  775. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_40.out +0 -0
  776. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_41.out +0 -0
  777. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_42.out +0 -0
  778. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_43.out +0 -0
  779. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_44.out +0 -0
  780. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_45.out +0 -0
  781. data/bin/Image-ExifTool-10.40/t/Writer_46.out +111 -0
  782. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_47.out +0 -0
  783. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_48.out +0 -0
  784. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_50.out +0 -0
  785. data/bin/Image-ExifTool-10.40/t/Writer_51.out +414 -0
  786. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_52.out +0 -0
  787. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_53.out +0 -0
  788. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_54.out +0 -0
  789. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_55.out +0 -0
  790. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_56.out +0 -0
  791. data/bin/Image-ExifTool-10.40/t/Writer_58.out +44 -0
  792. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_6.out +0 -0
  793. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/Writer_7.out +0 -0
  794. data/bin/Image-ExifTool-10.40/t/Writer_9.out +243 -0
  795. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP.t +0 -0
  796. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_10.out +0 -0
  797. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_11.out +0 -0
  798. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_12.out +0 -0
  799. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_13.out +0 -0
  800. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_14.out +0 -0
  801. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_15.out +0 -0
  802. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_16.out +0 -0
  803. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_17.out +0 -0
  804. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_18.out +0 -0
  805. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_19.out +0 -0
  806. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_2.out +0 -0
  807. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_20.out +0 -0
  808. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_21.out +0 -0
  809. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_22.out +0 -0
  810. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_23.out +0 -0
  811. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_24.out +0 -0
  812. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_25.out +0 -0
  813. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_26.out +0 -0
  814. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_27.out +0 -0
  815. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_28.out +0 -0
  816. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_29.out +0 -0
  817. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_3.out +0 -0
  818. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_30.out +0 -0
  819. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_31.out +0 -0
  820. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_32.out +0 -0
  821. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_34.out +0 -0
  822. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_36.out +0 -0
  823. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_37.out +0 -0
  824. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_39.out +0 -0
  825. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_40.out +0 -0
  826. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_41.out +0 -0
  827. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_42.out +0 -0
  828. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_43.out +0 -0
  829. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_44.out +0 -0
  830. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_45.out +0 -0
  831. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_5.out +0 -0
  832. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_6.out +0 -0
  833. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_7.out +0 -0
  834. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_8.out +0 -0
  835. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/XMP_9.out +0 -0
  836. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ZIP.t +0 -0
  837. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ZIP_2.out +0 -0
  838. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ZIP_3.out +0 -0
  839. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ZIP_4.out +0 -0
  840. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ZIP_5.out +0 -0
  841. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ZIP_6.out +0 -0
  842. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/ZIP_7.out +0 -0
  843. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/AFCP.jpg +0 -0
  844. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/AIFF.aif +0 -0
  845. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/APE.ape +0 -0
  846. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/APE.mpc +0 -0
  847. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/ASF.wmv +0 -0
  848. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Apple.jpg +0 -0
  849. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Audible.aa +0 -0
  850. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/BMP.bmp +0 -0
  851. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/BPG.bpg +0 -0
  852. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/BigTIFF.btf +0 -0
  853. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Canon.jpg +0 -0
  854. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Canon1DmkIII.jpg +0 -0
  855. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/CanonRaw.cr2 +0 -0
  856. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/CanonRaw.crw +0 -0
  857. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/CanonVRD.dr4 +0 -0
  858. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/CanonVRD.vrd +0 -0
  859. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/CaptureOne.eip +0 -0
  860. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Casio.jpg +0 -0
  861. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Casio2.jpg +0 -0
  862. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/CasioQVCI.jpg +0 -0
  863. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/DICOM.dcm +0 -0
  864. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/DNG.dng +0 -0
  865. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/DPX.dpx +0 -0
  866. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/DV.dv +0 -0
  867. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/DjVu.djvu +0 -0
  868. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/EXE.a +0 -0
  869. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/EXE.dylib +0 -0
  870. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/EXE.elf +0 -0
  871. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/EXE.exe +0 -0
  872. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/EXE.macho +0 -0
  873. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/EXE.so +0 -0
  874. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/ExifTool.jpg +0 -0
  875. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/ExifTool.tif +0 -0
  876. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/ExtendedXMP.jpg +0 -0
  877. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/FLAC.flac +0 -0
  878. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/FLAC.ogg +0 -0
  879. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/FLIF.flif +0 -0
  880. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/FLIR.fpf +0 -0
  881. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/FLIR.jpg +0 -0
  882. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Flash.flv +0 -0
  883. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Flash.swf +0 -0
  884. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/FlashPix.ppt +0 -0
  885. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Font.afm +0 -0
  886. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Font.dfont +0 -0
  887. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Font.pfa +0 -0
  888. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Font.pfb +0 -0
  889. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Font.pfm +0 -0
  890. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Font.ttf +0 -0
  891. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/FotoStation.jpg +0 -0
  892. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/FujiFilm.jpg +0 -0
  893. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/FujiFilm.raf +0 -0
  894. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/GE.jpg +0 -0
  895. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/GIF.gif +0 -0
  896. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/GIMP.xcf +0 -0
  897. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/GPS.jpg +0 -0
  898. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/GeoTiff.tif +0 -0
  899. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Geotag.gpx +0 -0
  900. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Geotag.igc +0 -0
  901. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Geotag.kml +0 -0
  902. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Geotag.log +0 -0
  903. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Geotag.xml +0 -0
  904. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Geotag2.log +0 -0
  905. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Geotag3.log +0 -0
  906. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/HTML.html +0 -0
  907. data/bin/Image-ExifTool-10.40/t/images/ICC_Profile.icc +0 -0
  908. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/IPTC.jpg +0 -0
  909. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/ISO.iso +0 -0
  910. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/ITC.itc +0 -0
  911. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/InDesign.indd +0 -0
  912. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/JVC.jpg +0 -0
  913. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/JVC2.jpg +0 -0
  914. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Jpeg2000.j2c +0 -0
  915. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Jpeg2000.jp2 +0 -0
  916. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Kodak.jpg +0 -0
  917. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/KyoceraRaw.raw +0 -0
  918. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/LNK.lnk +0 -0
  919. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Lytro.lfp +0 -0
  920. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/M2TS.mts +0 -0
  921. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/MIE.mie +0 -0
  922. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/MIFF.miff +0 -0
  923. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/MOI.moi +0 -0
  924. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/MP3.mp3 +0 -0
  925. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/MWG.jpg +0 -0
  926. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/MXF.mxf +0 -0
  927. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Matroska.mkv +0 -0
  928. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Minolta.jpg +0 -0
  929. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Minolta.mrw +0 -0
  930. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Motorola.jpg +0 -0
  931. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Nikon.jpg +0 -0
  932. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Nikon.nef +0 -0
  933. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/NikonD2Hs.jpg +0 -0
  934. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/NikonD70.jpg +0 -0
  935. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/OOXML.docx +0 -0
  936. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Olympus.dss +0 -0
  937. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Olympus.jpg +0 -0
  938. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Olympus2.jpg +0 -0
  939. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/OlympusE1.jpg +0 -0
  940. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/OpenDoc.ods +0 -0
  941. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/OpenEXR.exr +0 -0
  942. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Opus.opus +0 -0
  943. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/PDF.pdf +0 -0
  944. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/PDF2.pdf +0 -0
  945. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/PGF.pgf +0 -0
  946. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/PICT.pict +0 -0
  947. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/PLIST-bin.plist +0 -0
  948. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/PLIST-xml.plist +0 -0
  949. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/PLUS.xmp +0 -0
  950. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/PNG.png +0 -0
  951. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/PPM.ppm +0 -0
  952. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/PSP.psp +0 -0
  953. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Palm.mobi +0 -0
  954. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Panasonic.jpg +0 -0
  955. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Panasonic.rw2 +0 -0
  956. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Pentax.avi +0 -0
  957. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Pentax.jpg +0 -0
  958. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/PhaseOne.iiq +0 -0
  959. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/PhotoCD.pcd +0 -0
  960. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/PhotoMechanic.jpg +0 -0
  961. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Photoshop.psd +0 -0
  962. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/PostScript.eps +0 -0
  963. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/QuickTime.m4a +0 -0
  964. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/QuickTime.mov +0 -0
  965. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/RIFF.avi +0 -0
  966. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/RIFF.wav +0 -0
  967. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/RIFF.webp +0 -0
  968. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/RTF.rtf +0 -0
  969. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Radiance.hdr +0 -0
  970. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Real.ra +0 -0
  971. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Real.ram +0 -0
  972. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Real.rm +0 -0
  973. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Ricoh.jpg +0 -0
  974. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Ricoh2.jpg +0 -0
  975. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Sanyo.jpg +0 -0
  976. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Sigma.jpg +0 -0
  977. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Sigma.x3f +0 -0
  978. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/SigmaDP2.x3f +0 -0
  979. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Sony.jpg +0 -0
  980. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Sony.pmp +0 -0
  981. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Torrent.torrent +0 -0
  982. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Unknown.jpg +0 -0
  983. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/VCard.ics +0 -0
  984. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/VCard.vcf +0 -0
  985. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Vorbis.ogg +0 -0
  986. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/Writer.jpg +0 -0
  987. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/XMP.inx +0 -0
  988. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/XMP.jpg +0 -0
  989. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/XMP.svg +0 -0
  990. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/XMP.xml +0 -0
  991. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/XMP.xmp +0 -0
  992. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/XMP2.xmp +0 -0
  993. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/XMP3.xmp +0 -0
  994. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/XMP4.xmp +0 -0
  995. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/XMP5.xmp +0 -0
  996. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/XMP6.xmp +0 -0
  997. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/ZIP.gz +0 -0
  998. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/ZIP.zip +0 -0
  999. data/bin/{Image-ExifTool-10.31 → Image-ExifTool-10.40}/t/images/iWork.numbers +0 -0
  1000. data/lib/exiftool_vendored/version.rb +1 -1
  1001. metadata +1000 -997
  1002. data/bin/Image-ExifTool-10.31/Changes +0 -7604
  1003. data/bin/Image-ExifTool-10.31/MANIFEST +0 -995
  1004. data/bin/Image-ExifTool-10.31/META.json +0 -51
  1005. data/bin/Image-ExifTool-10.31/META.yml +0 -31
  1006. data/bin/Image-ExifTool-10.31/README +0 -239
  1007. data/bin/Image-ExifTool-10.31/config_files/time_zone.config +0 -56
  1008. data/bin/Image-ExifTool-10.31/exiftool +0 -6431
  1009. data/bin/Image-ExifTool-10.31/html/ExifTool.html +0 -2114
  1010. data/bin/Image-ExifTool-10.31/html/Shift.html +0 -209
  1011. data/bin/Image-ExifTool-10.31/html/TagNames/BMP.html +0 -110
  1012. data/bin/Image-ExifTool-10.31/html/TagNames/Canon.html +0 -9740
  1013. data/bin/Image-ExifTool-10.31/html/TagNames/Composite.html +0 -739
  1014. data/bin/Image-ExifTool-10.31/html/TagNames/EXIF.html +0 -3482
  1015. data/bin/Image-ExifTool-10.31/html/TagNames/Extra.html +0 -469
  1016. data/bin/Image-ExifTool-10.31/html/TagNames/FLIF.html +0 -79
  1017. data/bin/Image-ExifTool-10.31/html/TagNames/FlashPix.html +0 -1465
  1018. data/bin/Image-ExifTool-10.31/html/TagNames/FujiFilm.html +0 -849
  1019. data/bin/Image-ExifTool-10.31/html/TagNames/MWG.html +0 -584
  1020. data/bin/Image-ExifTool-10.31/html/TagNames/Minolta.html +0 -2633
  1021. data/bin/Image-ExifTool-10.31/html/TagNames/Nikon.html +0 -6002
  1022. data/bin/Image-ExifTool-10.31/html/TagNames/Olympus.html +0 -3655
  1023. data/bin/Image-ExifTool-10.31/html/TagNames/Panasonic.html +0 -1700
  1024. data/bin/Image-ExifTool-10.31/html/TagNames/PhaseOne.html +0 -253
  1025. data/bin/Image-ExifTool-10.31/html/TagNames/Photoshop.html +0 -739
  1026. data/bin/Image-ExifTool-10.31/html/TagNames/Sony.html +0 -10219
  1027. data/bin/Image-ExifTool-10.31/html/TagNames/XMP.html +0 -9332
  1028. data/bin/Image-ExifTool-10.31/html/ancient_history.html +0 -8209
  1029. data/bin/Image-ExifTool-10.31/html/data_members.html +0 -280
  1030. data/bin/Image-ExifTool-10.31/html/exiftool_pod.html +0 -2567
  1031. data/bin/Image-ExifTool-10.31/html/faq.html +0 -1589
  1032. data/bin/Image-ExifTool-10.31/html/filename.html +0 -352
  1033. data/bin/Image-ExifTool-10.31/html/geotag.html +0 -658
  1034. data/bin/Image-ExifTool-10.31/html/history.html +0 -375
  1035. data/bin/Image-ExifTool-10.31/html/idiosyncracies.html +0 -272
  1036. data/bin/Image-ExifTool-10.31/html/index.html +0 -1358
  1037. data/bin/Image-ExifTool-10.31/html/install.html +0 -259
  1038. data/bin/Image-ExifTool-10.31/html/under.html +0 -128
  1039. data/bin/Image-ExifTool-10.31/lib/File/RandomAccess.pm +0 -378
  1040. data/bin/Image-ExifTool-10.31/lib/File/RandomAccess.pod +0 -231
  1041. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool.pm +0 -7765
  1042. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool.pod +0 -2556
  1043. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/AES.pm +0 -501
  1044. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/AFCP.pm +0 -286
  1045. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/AIFF.pm +0 -289
  1046. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/APE.pm +0 -282
  1047. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/APP12.pm +0 -322
  1048. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/ASF.pm +0 -885
  1049. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Apple.pm +0 -153
  1050. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Audible.pm +0 -317
  1051. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/BMP.pm +0 -179
  1052. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/BPG.pm +0 -251
  1053. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/BZZ.pm +0 -472
  1054. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/BigTIFF.pm +0 -282
  1055. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/BuildTagLookup.pm +0 -2563
  1056. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Canon.pm +0 -8926
  1057. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/CanonCustom.pm +0 -2667
  1058. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/CanonRaw.pm +0 -910
  1059. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/CanonVRD.pm +0 -2273
  1060. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/CaptureOne.pm +0 -235
  1061. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Casio.pm +0 -2058
  1062. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Charset.pm +0 -423
  1063. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/DICOM.pm +0 -3874
  1064. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/DJI.pm +0 -71
  1065. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/DNG.pm +0 -835
  1066. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/DPX.pm +0 -182
  1067. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/DV.pm +0 -319
  1068. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/DarwinCore.pm +0 -322
  1069. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/DjVu.pm +0 -376
  1070. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/EXE.pm +0 -1401
  1071. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Exif.pm +0 -6038
  1072. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/FLAC.pm +0 -297
  1073. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/FLIF.pm +0 -345
  1074. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/FLIR.pm +0 -1533
  1075. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Fixup.pm +0 -366
  1076. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Flash.pm +0 -755
  1077. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/FlashPix.pm +0 -1935
  1078. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Font.pm +0 -647
  1079. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/FotoStation.pm +0 -261
  1080. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/FujiFilm.pm +0 -1257
  1081. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/GE.pm +0 -81
  1082. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/GIF.pm +0 -542
  1083. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/GIMP.pm +0 -258
  1084. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/GPS.pm +0 -558
  1085. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/GeoTiff.pm +0 -2263
  1086. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Geotag.pm +0 -1287
  1087. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/H264.pm +0 -1110
  1088. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/HP.pm +0 -263
  1089. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/HTML.pm +0 -576
  1090. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/HtmlDump.pm +0 -898
  1091. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/ICC_Profile.pm +0 -1013
  1092. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/ID3.pm +0 -1570
  1093. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/IPTC.pm +0 -1264
  1094. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/ISO.pm +0 -206
  1095. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/ITC.pm +0 -215
  1096. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Import.pm +0 -329
  1097. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/InDesign.pm +0 -277
  1098. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/JPEG.pm +0 -605
  1099. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/JPEGDigest.pm +0 -2616
  1100. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/JVC.pm +0 -130
  1101. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Jpeg2000.pm +0 -898
  1102. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Kodak.pm +0 -2096
  1103. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/KyoceraRaw.pm +0 -173
  1104. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/LNK.pm +0 -723
  1105. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Lang/cs.pm +0 -1588
  1106. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Lang/de.pm +0 -8692
  1107. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Lang/en_ca.pm +0 -934
  1108. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Lang/en_gb.pm +0 -977
  1109. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Lang/es.pm +0 -4019
  1110. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Lang/fi.pm +0 -2854
  1111. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Lang/fr.pm +0 -4758
  1112. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Lang/it.pm +0 -7918
  1113. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Lang/ja.pm +0 -5835
  1114. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Lang/ko.pm +0 -2330
  1115. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Lang/nl.pm +0 -3222
  1116. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Lang/pl.pm +0 -1276
  1117. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Lang/ru.pm +0 -768
  1118. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Lang/sv.pm +0 -638
  1119. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Lang/tr.pm +0 -544
  1120. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Lang/zh_cn.pm +0 -1330
  1121. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Lang/zh_tw.pm +0 -801
  1122. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Leaf.pm +0 -517
  1123. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Lytro.pm +0 -217
  1124. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/M2TS.pm +0 -729
  1125. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/MIE.pm +0 -2564
  1126. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/MIEUnits.pod +0 -377
  1127. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/MIFF.pm +0 -279
  1128. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/MNG.pm +0 -684
  1129. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/MOI.pm +0 -158
  1130. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/MPC.pm +0 -156
  1131. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/MPEG.pm +0 -736
  1132. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/MPF.pm +0 -292
  1133. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/MWG.pm +0 -751
  1134. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/MXF.pm +0 -3031
  1135. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/MakerNotes.pm +0 -1745
  1136. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Matroska.pm +0 -932
  1137. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Microsoft.pm +0 -904
  1138. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Minolta.pm +0 -2993
  1139. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/MinoltaRaw.pm +0 -535
  1140. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Motorola.pm +0 -62
  1141. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Nikon.pm +0 -8155
  1142. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/NikonCapture.pm +0 -940
  1143. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/NikonCustom.pm +0 -8682
  1144. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Nintendo.pm +0 -128
  1145. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/OOXML.pm +0 -409
  1146. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Ogg.pm +0 -240
  1147. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Olympus.pm +0 -3989
  1148. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/OpenEXR.pm +0 -323
  1149. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Opus.pm +0 -98
  1150. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/PDF.pm +0 -2367
  1151. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/PGF.pm +0 -143
  1152. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/PICT.pm +0 -1260
  1153. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/PLIST.pm +0 -448
  1154. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/PLUS.pm +0 -2607
  1155. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/PNG.pm +0 -1255
  1156. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/PPM.pm +0 -169
  1157. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/PSP.pm +0 -306
  1158. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Palm.pm +0 -403
  1159. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Panasonic.pm +0 -2374
  1160. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/PanasonicRaw.pm +0 -643
  1161. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Pentax.pm +0 -6133
  1162. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/PhaseOne.pm +0 -707
  1163. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/PhotoCD.pm +0 -507
  1164. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/PhotoMechanic.pm +0 -256
  1165. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Photoshop.pm +0 -939
  1166. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/PostScript.pm +0 -699
  1167. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/PrintIM.pm +0 -125
  1168. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Qualcomm.pm +0 -1344
  1169. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/QuickTime.pm +0 -6697
  1170. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/README +0 -1000
  1171. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/RIFF.pm +0 -1587
  1172. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/RSRC.pm +0 -241
  1173. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/RTF.pm +0 -383
  1174. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Radiance.pm +0 -144
  1175. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Rawzor.pm +0 -189
  1176. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Real.pm +0 -739
  1177. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Reconyx.pm +0 -190
  1178. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Ricoh.pm +0 -1148
  1179. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Samsung.pm +0 -1269
  1180. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Sanyo.pm +0 -440
  1181. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Scalado.pm +0 -141
  1182. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Shift.pl +0 -627
  1183. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Shortcuts.pm +0 -338
  1184. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Sigma.pm +0 -760
  1185. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/SigmaRaw.pm +0 -670
  1186. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Sony.pm +0 -9634
  1187. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/SonyIDC.pm +0 -332
  1188. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Stim.pm +0 -196
  1189. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/TagInfoXML.pm +0 -827
  1190. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/TagLookup.pm +0 -9367
  1191. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/TagNames.pod +0 -30437
  1192. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Theora.pm +0 -145
  1193. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Torrent.pm +0 -317
  1194. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Unknown.pm +0 -66
  1195. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/VCard.pm +0 -405
  1196. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Vorbis.pm +0 -255
  1197. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/WriteCanonRaw.pl +0 -637
  1198. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/WriteExif.pl +0 -2472
  1199. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/WriteIPTC.pl +0 -706
  1200. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/WritePDF.pl +0 -771
  1201. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/WritePNG.pl +0 -390
  1202. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/WritePhotoshop.pl +0 -266
  1203. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/WritePostScript.pl +0 -772
  1204. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/WriteQuickTime.pl +0 -358
  1205. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/WriteXMP.pl +0 -1381
  1206. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/Writer.pl +0 -6260
  1207. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/XMP.pm +0 -4087
  1208. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/XMP2.pl +0 -1321
  1209. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/XMPStruct.pl +0 -843
  1210. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/ZIP.pm +0 -667
  1211. data/bin/Image-ExifTool-10.31/lib/Image/ExifTool/iWork.pm +0 -223
  1212. data/bin/Image-ExifTool-10.31/perl-Image-ExifTool.spec +0 -113
  1213. data/bin/Image-ExifTool-10.31/t/BMP_2.out +0 -23
  1214. data/bin/Image-ExifTool-10.31/t/CanonRaw_6.out +0 -233
  1215. data/bin/Image-ExifTool-10.31/t/Canon_2.out +0 -358
  1216. data/bin/Image-ExifTool-10.31/t/Casio_2.out +0 -72
  1217. data/bin/Image-ExifTool-10.31/t/Casio_3.out +0 -102
  1218. data/bin/Image-ExifTool-10.31/t/Casio_5.out +0 -80
  1219. data/bin/Image-ExifTool-10.31/t/Casio_6.out +0 -117
  1220. data/bin/Image-ExifTool-10.31/t/DNG_2.out +0 -329
  1221. data/bin/Image-ExifTool-10.31/t/ExifTool_2.out +0 -427
  1222. data/bin/Image-ExifTool-10.31/t/ExifTool_29.out +0 -426
  1223. data/bin/Image-ExifTool-10.31/t/FLIF_2.out +0 -50
  1224. data/bin/Image-ExifTool-10.31/t/FLIF_4.out +0 -17
  1225. data/bin/Image-ExifTool-10.31/t/FLIR_2.out +0 -118
  1226. data/bin/Image-ExifTool-10.31/t/FujiFilm_2.out +0 -89
  1227. data/bin/Image-ExifTool-10.31/t/FujiFilm_3.out +0 -90
  1228. data/bin/Image-ExifTool-10.31/t/FujiFilm_4.out +0 -143
  1229. data/bin/Image-ExifTool-10.31/t/GE_2.out +0 -86
  1230. data/bin/Image-ExifTool-10.31/t/GE_3.out +0 -86
  1231. data/bin/Image-ExifTool-10.31/t/GPS_2.out +0 -96
  1232. data/bin/Image-ExifTool-10.31/t/GPS_3.out +0 -98
  1233. data/bin/Image-ExifTool-10.31/t/Kodak_2.out +0 -111
  1234. data/bin/Image-ExifTool-10.31/t/Kodak_3.out +0 -121
  1235. data/bin/Image-ExifTool-10.31/t/Lang.t +0 -40
  1236. data/bin/Image-ExifTool-10.31/t/Lang_10.out +0 -46
  1237. data/bin/Image-ExifTool-10.31/t/Lang_11.out +0 -46
  1238. data/bin/Image-ExifTool-10.31/t/Lang_12.out +0 -46
  1239. data/bin/Image-ExifTool-10.31/t/Lang_13.out +0 -46
  1240. data/bin/Image-ExifTool-10.31/t/Lang_14.out +0 -46
  1241. data/bin/Image-ExifTool-10.31/t/Lang_15.out +0 -46
  1242. data/bin/Image-ExifTool-10.31/t/Lang_16.out +0 -46
  1243. data/bin/Image-ExifTool-10.31/t/Lang_17.out +0 -46
  1244. data/bin/Image-ExifTool-10.31/t/Lang_18.out +0 -46
  1245. data/bin/Image-ExifTool-10.31/t/Lang_2.out +0 -46
  1246. data/bin/Image-ExifTool-10.31/t/Lang_3.out +0 -46
  1247. data/bin/Image-ExifTool-10.31/t/Lang_4.out +0 -46
  1248. data/bin/Image-ExifTool-10.31/t/Lang_5.out +0 -46
  1249. data/bin/Image-ExifTool-10.31/t/Lang_6.out +0 -46
  1250. data/bin/Image-ExifTool-10.31/t/Lang_7.out +0 -46
  1251. data/bin/Image-ExifTool-10.31/t/Lang_8.out +0 -46
  1252. data/bin/Image-ExifTool-10.31/t/Lang_9.out +0 -46
  1253. data/bin/Image-ExifTool-10.31/t/MIE_3.out +0 -136
  1254. data/bin/Image-ExifTool-10.31/t/MWG.t +0 -90
  1255. data/bin/Image-ExifTool-10.31/t/MWG_2.out +0 -13
  1256. data/bin/Image-ExifTool-10.31/t/Minolta_2.out +0 -135
  1257. data/bin/Image-ExifTool-10.31/t/Minolta_3.out +0 -148
  1258. data/bin/Image-ExifTool-10.31/t/Minolta_4.out +0 -150
  1259. data/bin/Image-ExifTool-10.31/t/Nikon_2.out +0 -84
  1260. data/bin/Image-ExifTool-10.31/t/Nikon_3.out +0 -100
  1261. data/bin/Image-ExifTool-10.31/t/Nikon_4.out +0 -176
  1262. data/bin/Image-ExifTool-10.31/t/Nikon_5.out +0 -169
  1263. data/bin/Image-ExifTool-10.31/t/Nikon_7.out +0 -261
  1264. data/bin/Image-ExifTool-10.31/t/Olympus_2.out +0 -81
  1265. data/bin/Image-ExifTool-10.31/t/Olympus_3.out +0 -83
  1266. data/bin/Image-ExifTool-10.31/t/Olympus_4.out +0 -194
  1267. data/bin/Image-ExifTool-10.31/t/Olympus_5.out +0 -266
  1268. data/bin/Image-ExifTool-10.31/t/Olympus_6.out +0 -153
  1269. data/bin/Image-ExifTool-10.31/t/Panasonic_2.out +0 -101
  1270. data/bin/Image-ExifTool-10.31/t/Panasonic_3.out +0 -121
  1271. data/bin/Image-ExifTool-10.31/t/Panasonic_4.out +0 -206
  1272. data/bin/Image-ExifTool-10.31/t/Panasonic_5.out +0 -244
  1273. data/bin/Image-ExifTool-10.31/t/Pentax_2.out +0 -225
  1274. data/bin/Image-ExifTool-10.31/t/Pentax_3.out +0 -266
  1275. data/bin/Image-ExifTool-10.31/t/Pentax_4.out +0 -131
  1276. data/bin/Image-ExifTool-10.31/t/PhaseOne_2.out +0 -99
  1277. data/bin/Image-ExifTool-10.31/t/PhaseOne_3.out +0 -170
  1278. data/bin/Image-ExifTool-10.31/t/RIFF_3.out +0 -54
  1279. data/bin/Image-ExifTool-10.31/t/Ricoh_2.out +0 -72
  1280. data/bin/Image-ExifTool-10.31/t/Ricoh_3.out +0 -100
  1281. data/bin/Image-ExifTool-10.31/t/Ricoh_4.out +0 -114
  1282. data/bin/Image-ExifTool-10.31/t/Sanyo_2.out +0 -103
  1283. data/bin/Image-ExifTool-10.31/t/Sanyo_3.out +0 -113
  1284. data/bin/Image-ExifTool-10.31/t/Sigma_2.out +0 -93
  1285. data/bin/Image-ExifTool-10.31/t/Sigma_3.out +0 -96
  1286. data/bin/Image-ExifTool-10.31/t/Sigma_5.out +0 -194
  1287. data/bin/Image-ExifTool-10.31/t/Sony_2.out +0 -86
  1288. data/bin/Image-ExifTool-10.31/t/Sony_3.out +0 -87
  1289. data/bin/Image-ExifTool-10.31/t/Sony_5.out +0 -34
  1290. data/bin/Image-ExifTool-10.31/t/Unknown_2.out +0 -92
  1291. data/bin/Image-ExifTool-10.31/t/Unknown_3.out +0 -92
  1292. data/bin/Image-ExifTool-10.31/t/Writer.t +0 -999
  1293. data/bin/Image-ExifTool-10.31/t/Writer_10.out +0 -246
  1294. data/bin/Image-ExifTool-10.31/t/Writer_46.out +0 -107
  1295. data/bin/Image-ExifTool-10.31/t/Writer_51.out +0 -414
  1296. data/bin/Image-ExifTool-10.31/t/Writer_9.out +0 -243
@@ -1,240 +0,0 @@
1
- #------------------------------------------------------------------------------
2
- # File: Ogg.pm
3
- #
4
- # Description: Read Ogg meta information
5
- #
6
- # Revisions: 2011/07/13 - P. Harvey Created (split from Vorbis.pm)
7
- # 2016/07/14 - PH Added Ogg Opus support
8
- #
9
- # References: 1) http://www.xiph.org/vorbis/doc/
10
- # 2) http://flac.sourceforge.net/ogg_mapping.html
11
- # 3) http://www.theora.org/doc/Theora.pdf
12
- #------------------------------------------------------------------------------
13
-
14
- package Image::ExifTool::Ogg;
15
-
16
- use strict;
17
- use vars qw($VERSION);
18
- use Image::ExifTool qw(:DataAccess :Utils);
19
-
20
- $VERSION = '1.02';
21
-
22
- my $MAX_PACKETS = 2; # maximum packets to scan from each stream at start of file
23
-
24
- # Information types recognizedi in Ogg files
25
- %Image::ExifTool::Ogg::Main = (
26
- NOTES => q{
27
- ExifTool extracts the following types of information from Ogg files. See
28
- L<http://www.xiph.org/vorbis/doc/> for the Ogg specification.
29
- },
30
- # (these are for documentation purposes only, and aren't used by the code below)
31
- vorbis => { SubDirectory => { TagTable => 'Image::ExifTool::Vorbis::Main' } },
32
- theora => { SubDirectory => { TagTable => 'Image::ExifTool::Theora::Main' } },
33
- Opus => { SubDirectory => { TagTable => 'Image::ExifTool::Opus::Main' } },
34
- FLAC => { SubDirectory => { TagTable => 'Image::ExifTool::FLAC::Main' } },
35
- ID3 => { SubDirectory => { TagTable => 'Image::ExifTool::ID3::Main' } },
36
- );
37
-
38
- #------------------------------------------------------------------------------
39
- # Process Ogg packet
40
- # Inputs: 0) ExifTool object ref, 1) data ref
41
- # Returns: 1 on success
42
- sub ProcessPacket($$)
43
- {
44
- my ($et, $dataPt) = @_;
45
- my $rtnVal = 0;
46
- if ($$dataPt =~ /^(.)(vorbis|theora)/s or $$dataPt =~ /^(OpusHead|OpusTags)/) {
47
- my ($tag, $type, $pos) = $2 ? (ord($1), ucfirst($2), 7) : ($1, 'Opus', 8);
48
- # this is an OGV file if it contains Theora video
49
- $et->OverrideFileType('OGV') if $type eq 'Theora' and $$et{FILE_TYPE} eq 'OGG';
50
- $et->OverrideFileType('OPUS') if $type eq 'Opus' and $$et{FILE_TYPE} eq 'OGG';
51
- my $tagTablePtr = GetTagTable("Image::ExifTool::${type}::Main");
52
- my $tagInfo = $et->GetTagInfo($tagTablePtr, $tag);
53
- return 0 unless $tagInfo and $$tagInfo{SubDirectory};
54
- my $subdir = $$tagInfo{SubDirectory};
55
- my %dirInfo = (
56
- DataPt => $dataPt,
57
- DirName => $$tagInfo{Name},
58
- DirStart => $pos,
59
- );
60
- my $table = GetTagTable($$subdir{TagTable});
61
- # set group1 so Theoris comments can be distinguised from Vorbis comments
62
- $$et{SET_GROUP1} = $type if $type eq 'Theora';
63
- SetByteOrder($$subdir{ByteOrder}) if $$subdir{ByteOrder};
64
- $rtnVal = $et->ProcessDirectory(\%dirInfo, $table);
65
- SetByteOrder('II');
66
- delete $$et{SET_GROUP1};
67
- }
68
- return $rtnVal;
69
- }
70
-
71
- #------------------------------------------------------------------------------
72
- # Extract information from an Ogg file
73
- # Inputs: 0) ExifTool object reference, 1) dirInfo reference
74
- # Returns: 1 on success, 0 if this wasn't a valid Ogg file
75
- sub ProcessOGG($$)
76
- {
77
- my ($et, $dirInfo) = @_;
78
-
79
- # must first check for leading/trailing ID3 information
80
- unless ($$et{DoneID3}) {
81
- require Image::ExifTool::ID3;
82
- Image::ExifTool::ID3::ProcessID3($et, $dirInfo) and return 1;
83
- }
84
- my $raf = $$dirInfo{RAF};
85
- my $verbose = $et->Options('Verbose');
86
- my $out = $et->Options('TextOut');
87
- my ($success, $page, $packets, $streams, $stream) = (0,0,0,0,'');
88
- my ($buff, $flag, %val, $numFlac, %streamPage);
89
-
90
- for (;;) {
91
- # must read ahead to next page to see if it is a continuation
92
- # (this code would be a lot simpler if the continuation flag
93
- # was on the leading instead of the trailing page!)
94
- if ($raf and $raf->Read($buff, 28) == 28) {
95
- # validate magic number
96
- unless ($buff =~ /^OggS/) {
97
- $success and $et->Warn('Lost synchronization');
98
- last;
99
- }
100
- unless ($success) {
101
- # set file type and initialize on first page
102
- $success = 1;
103
- $et->SetFileType();
104
- SetByteOrder('II');
105
- }
106
- $flag = Get8u(\$buff, 5); # page flag
107
- $stream = Get32u(\$buff, 14); # stream serial number
108
- if ($flag & 0x02) {
109
- ++$streams; # count start-of-stream pages
110
- $streamPage{$stream} = $page = 0;
111
- } else {
112
- $page = $streamPage{$stream};
113
- }
114
- ++$packets unless $flag & 0x01; # keep track of packet count
115
- } else {
116
- # all done unless we have to process our last packet
117
- last unless %val;
118
- ($stream) = sort keys %val; # take a stream
119
- $flag = 0; # no continuation
120
- undef $raf; # flag for done reading
121
- }
122
-
123
- if (defined $numFlac) {
124
- # stop to process FLAC headers if we hit the end of file
125
- last unless $raf;
126
- --$numFlac; # one less header packet to read
127
- } else {
128
- # can finally process previous packet from this stream
129
- # unless this is a continuation page
130
- if (defined $val{$stream} and not $flag & 0x01) {
131
- ProcessPacket($et, \$val{$stream});
132
- delete $val{$stream};
133
- # only read the first $MAX_PACKETS packets from each stream
134
- if ($packets > $MAX_PACKETS * $streams or not defined $raf) {
135
- last unless %val; # all done (success!)
136
- }
137
- }
138
- # stop processing Ogg if we have scanned enough packets
139
- last if $packets > $MAX_PACKETS * $streams and not %val;
140
- }
141
-
142
- # continue processing the current page
143
- my $pageNum = Get32u(\$buff, 18); # page sequence number
144
- my $nseg = Get8u(\$buff, 26); # number of segments
145
- # calculate total data length
146
- my $dataLen = Get8u(\$buff, 27);
147
- if ($nseg) {
148
- $raf->Read($buff, $nseg-1) == $nseg-1 or last;
149
- my @segs = unpack('C*', $buff);
150
- # could check that all these (but the last) are 255...
151
- foreach (@segs) { $dataLen += $_ }
152
- }
153
- if (defined $page) {
154
- if ($page == $pageNum) {
155
- $streamPage{$stream} = ++$page;
156
- } else {
157
- $et->Warn('Missing page(s) in Ogg file');
158
- undef $page;
159
- delete $streamPage{$stream};
160
- }
161
- }
162
- # read page data
163
- $raf->Read($buff, $dataLen) == $dataLen or last;
164
- if ($verbose > 1) {
165
- printf $out "Page %d, stream 0x%x, flag 0x%x (%d bytes)\n",
166
- $pageNum, $stream, $flag, $dataLen;
167
- $et->VerboseDump(\$buff, DataPos => $raf->Tell() - $dataLen);
168
- }
169
- if (defined $val{$stream}) {
170
- $val{$stream} .= $buff; # add this continuation page
171
- } elsif (not $flag & 0x01) { # ignore remaining pages of a continued packet
172
- # ignore the first page of any packet we aren't parsing
173
- if ($buff =~ /^(.(vorbis|theora)|Opus(Head|Tags))/s) {
174
- $val{$stream} = $buff; # save this page
175
- } elsif ($buff =~ /^\x7fFLAC..(..)/s) {
176
- $numFlac = unpack('n',$1);
177
- $val{$stream} = substr($buff, 9);
178
- }
179
- }
180
- if (defined $numFlac) {
181
- # stop to process FLAC headers if we have them all
182
- last if $numFlac <= 0;
183
- } elsif (defined $val{$stream} and $flag & 0x04) {
184
- # process Ogg packet now if end-of-stream bit is set
185
- ProcessPacket($et, \$val{$stream});
186
- delete $val{$stream};
187
- }
188
- }
189
- if (defined $numFlac and defined $val{$stream}) {
190
- # process FLAC headers as if it was a complete FLAC file
191
- require Image::ExifTool::FLAC;
192
- my %dirInfo = ( RAF => new File::RandomAccess(\$val{$stream}) );
193
- Image::ExifTool::FLAC::ProcessFLAC($et, \%dirInfo);
194
- }
195
- return $success;
196
- }
197
-
198
- 1; # end
199
-
200
- __END__
201
-
202
- =head1 NAME
203
-
204
- Image::ExifTool::Ogg - Read Ogg meta information
205
-
206
- =head1 SYNOPSIS
207
-
208
- This module is used by Image::ExifTool
209
-
210
- =head1 DESCRIPTION
211
-
212
- This module contains definitions required by Image::ExifTool to extract meta
213
- information from Ogg bitstream container files.
214
-
215
- =head1 AUTHOR
216
-
217
- Copyright 2003-2016, Phil Harvey (phil at owl.phy.queensu.ca)
218
-
219
- This library is free software; you can redistribute it and/or modify it
220
- under the same terms as Perl itself.
221
-
222
- =head1 REFERENCES
223
-
224
- =over 4
225
-
226
- =item L<http://www.xiph.org/vorbis/doc/>
227
-
228
- =item L<http://flac.sourceforge.net/ogg_mapping.html>
229
-
230
- =item L<http://www.theora.org/doc/Theora.pdf>
231
-
232
- =back
233
-
234
- =head1 SEE ALSO
235
-
236
- L<Image::ExifTool::TagNames/Ogg Tags>,
237
- L<Image::ExifTool(3pm)|Image::ExifTool>
238
-
239
- =cut
240
-
@@ -1,3989 +0,0 @@
1
- #------------------------------------------------------------------------------
2
- # File: Olympus.pm
3
- #
4
- # Description: Olympus/Epson EXIF maker notes tags
5
- #
6
- # Revisions: 12/09/2003 - P. Harvey Created
7
- # 11/11/2004 - P. Harvey Added Epson support
8
- #
9
- # References: 1) http://park2.wakwak.com/~tsuruzoh/Computer/Digicams/exif-e.html
10
- # 2) http://www.cybercom.net/~dcoffin/dcraw/
11
- # 3) http://www.ozhiker.com/electronics/pjmt/jpeg_info/olympus_mn.html
12
- # 4) Markku H�nninen private communication (tests with E-1)
13
- # 5) R�mi Guyomarch from http://forums.dpreview.com/forums/read.asp?forum=1022&message=12790396
14
- # 6) Frank Ledwon private communication (tests with E/C-series cameras)
15
- # 7) Michael Meissner private communication
16
- # 8) Shingo Noguchi, PhotoXP (http://www.daifukuya.com/photoxp/)
17
- # 9) Mark Dapoz private communication
18
- # 10) Lilo Huang private communication (E-330)
19
- # 11) http://olypedia.de/Olympus_Makernotes (May 30, 2013)
20
- # 12) Ioannis Panagiotopoulos private communication (E-510)
21
- # 13) Chris Shaw private communication (E-3)
22
- # 14) Viktor Lushnikov private communication (E-400)
23
- # 15) Yrjo Rauste private communication (E-30)
24
- # 16) Godfrey DiGiorgi private communcation (E-P1) + http://forums.dpreview.com/forums/read.asp?message=33187567
25
- # 17) Martin Hibers private communication
26
- # 18) Tomasz Kawecki private communication
27
- # 19) Brad Grier private communication
28
- # 22) Herbert Kauer private communication
29
- # 23) Daniel Pollock private communication (PEN-F)
30
- # IB) Iliah Borg private communication (LibRaw)
31
- # NJ) Niels Kristian Bech Jensen private communication
32
- #------------------------------------------------------------------------------
33
-
34
- package Image::ExifTool::Olympus;
35
-
36
- use strict;
37
- use vars qw($VERSION);
38
- use Image::ExifTool qw(:DataAccess :Utils);
39
- use Image::ExifTool::Exif;
40
- use Image::ExifTool::APP12;
41
-
42
- $VERSION = '2.44';
43
-
44
- sub PrintLensInfo($$$);
45
-
46
- my %offOn = ( 0 => 'Off', 1 => 'On' );
47
-
48
- # lookup for Olympus LensType values
49
- # (as of ExifTool 9.15, this was the complete list of chipped lenses at www.four-thirds.org)
50
- my %olympusLensTypes = (
51
- Notes => q{
52
- The numerical values below are given in hexadecimal. (Prior to ExifTool
53
- 9.15 these were in decimal.)
54
- },
55
- '0 00 00' => 'None',
56
- # Olympus lenses (also Kenko Tokina)
57
- '0 01 00' => 'Olympus Zuiko Digital ED 50mm F2.0 Macro',
58
- '0 01 01' => 'Olympus Zuiko Digital 40-150mm F3.5-4.5', #8
59
- '0 01 10' => 'Olympus M.Zuiko Digital ED 14-42mm F3.5-5.6', #PH (E-P1 pre-production)
60
- '0 02 00' => 'Olympus Zuiko Digital ED 150mm F2.0',
61
- '0 02 10' => 'Olympus M.Zuiko Digital 17mm F2.8 Pancake', #PH (E-P1 pre-production)
62
- '0 03 00' => 'Olympus Zuiko Digital ED 300mm F2.8',
63
- '0 03 10' => 'Olympus M.Zuiko Digital ED 14-150mm F4.0-5.6 [II]', #11 (The second version of this lens seems to have the same lens ID number as the first version #NJ)
64
- '0 04 10' => 'Olympus M.Zuiko Digital ED 9-18mm F4.0-5.6', #11
65
- '0 05 00' => 'Olympus Zuiko Digital 14-54mm F2.8-3.5',
66
- '0 05 01' => 'Olympus Zuiko Digital Pro ED 90-250mm F2.8', #9
67
- '0 05 10' => 'Olympus M.Zuiko Digital ED 14-42mm F3.5-5.6 L', #11 (E-PL1)
68
- '0 06 00' => 'Olympus Zuiko Digital ED 50-200mm F2.8-3.5',
69
- '0 06 01' => 'Olympus Zuiko Digital ED 8mm F3.5 Fisheye', #9
70
- '0 06 10' => 'Olympus M.Zuiko Digital ED 40-150mm F4.0-5.6', #PH
71
- '0 07 00' => 'Olympus Zuiko Digital 11-22mm F2.8-3.5',
72
- '0 07 01' => 'Olympus Zuiko Digital 18-180mm F3.5-6.3', #6
73
- '0 07 10' => 'Olympus M.Zuiko Digital ED 12mm F2.0', #PH
74
- '0 08 01' => 'Olympus Zuiko Digital 70-300mm F4.0-5.6', #7 (seen as release 1 - PH)
75
- '0 08 10' => 'Olympus M.Zuiko Digital ED 75-300mm F4.8-6.7', #PH
76
- '0 09 10' => 'Olympus M.Zuiko Digital 14-42mm F3.5-5.6 II', #PH (E-PL2)
77
- '0 10 01' => 'Kenko Tokina Reflex 300mm F6.3 MF Macro', #NJ
78
- '0 10 10' => 'Olympus M.Zuiko Digital ED 12-50mm F3.5-6.3 EZ', #PH
79
- '0 11 10' => 'Olympus M.Zuiko Digital 45mm F1.8', #17
80
- '0 12 10' => 'Olympus M.Zuiko Digital ED 60mm F2.8 Macro', #NJ
81
- '0 13 10' => 'Olympus M.Zuiko Digital 14-42mm F3.5-5.6 II R', #PH/NJ
82
- '0 14 10' => 'Olympus M.Zuiko Digital ED 40-150mm F4.0-5.6 R', #19
83
- # '0 14 10.1' => 'Olympus M.Zuiko Digital ED 14-150mm F4.0-5.6 II', #11 (questionable & unconfirmed -- all samples I can find are '0 3 10' - PH)
84
- '0 15 00' => 'Olympus Zuiko Digital ED 7-14mm F4.0',
85
- '0 15 10' => 'Olympus M.Zuiko Digital ED 75mm F1.8', #PH
86
- '0 16 10' => 'Olympus M.Zuiko Digital 17mm F1.8', #NJ
87
- '0 17 00' => 'Olympus Zuiko Digital Pro ED 35-100mm F2.0', #7
88
- '0 18 00' => 'Olympus Zuiko Digital 14-45mm F3.5-5.6',
89
- '0 18 10' => 'Olympus M.Zuiko Digital ED 75-300mm F4.8-6.7 II', #NJ
90
- '0 19 10' => 'Olympus M.Zuiko Digital ED 12-40mm F2.8 Pro', #PH
91
- '0 20 00' => 'Olympus Zuiko Digital 35mm F3.5 Macro', #9
92
- '0 20 10' => 'Olympus M.Zuiko Digital ED 40-150mm F2.8 Pro', #NJ
93
- '0 21 10' => 'Olympus M.Zuiko Digital ED 14-42mm F3.5-5.6 EZ', #NJ
94
- '0 22 00' => 'Olympus Zuiko Digital 17.5-45mm F3.5-5.6', #9
95
- '0 22 10' => 'Olympus M.Zuiko Digital 25mm F1.8', #NJ
96
- '0 23 00' => 'Olympus Zuiko Digital ED 14-42mm F3.5-5.6', #PH
97
- '0 23 10' => 'Olympus M.Zuiko Digital ED 7-14mm F2.8 Pro', #NJ
98
- '0 24 00' => 'Olympus Zuiko Digital ED 40-150mm F4.0-5.6', #PH
99
- '0 24 10' => 'Olympus M.Zuiko Digital ED 300mm F4.0 IS Pro', #NJ
100
- '0 25 10' => 'Olympus M.Zuiko Digital ED 8mm F1.8 Fisheye Pro', #NJ
101
- '0 26 10' => 'Olympus M.Zuiko Digital ED 12-100mm F4.0 IS Pro', #IB/NJ
102
- '0 27 10' => 'Olympus M.Zuiko Digital ED 30mm F3.5 Macro', #IB/NJ
103
- '0 28 10' => 'Olympus M.Zuiko Digital ED 25mm F1.2 Pro', #IB/NJ
104
- '0 30 00' => 'Olympus Zuiko Digital ED 50-200mm F2.8-3.5 SWD', #7
105
- '0 31 00' => 'Olympus Zuiko Digital ED 12-60mm F2.8-4.0 SWD', #7
106
- '0 32 00' => 'Olympus Zuiko Digital ED 14-35mm F2.0 SWD', #PH
107
- '0 33 00' => 'Olympus Zuiko Digital 25mm F2.8', #PH
108
- '0 34 00' => 'Olympus Zuiko Digital ED 9-18mm F4.0-5.6', #7
109
- '0 35 00' => 'Olympus Zuiko Digital 14-54mm F2.8-3.5 II', #PH
110
- # Sigma lenses
111
- '1 01 00' => 'Sigma 18-50mm F3.5-5.6 DC', #8
112
- '1 01 10' => 'Sigma 30mm F2.8 EX DN', #NJ
113
- '1 02 00' => 'Sigma 55-200mm F4.0-5.6 DC',
114
- '1 02 10' => 'Sigma 19mm F2.8 EX DN', #NJ
115
- '1 03 00' => 'Sigma 18-125mm F3.5-5.6 DC',
116
- '1 03 10' => 'Sigma 30mm F2.8 DN | A', #NJ
117
- '1 04 00' => 'Sigma 18-125mm F3.5-5.6 DC', #7
118
- '1 04 10' => 'Sigma 19mm F2.8 DN | A', #NJ
119
- '1 05 00' => 'Sigma 30mm F1.4 EX DC HSM', #10
120
- '1 05 10' => 'Sigma 60mm F2.8 DN | A', #NJ
121
- '1 06 00' => 'Sigma APO 50-500mm F4.0-6.3 EX DG HSM', #6
122
- '1 06 10' => 'Sigma 30mm F1.4 DC DN | C', #NJ
123
- '1 07 00' => 'Sigma Macro 105mm F2.8 EX DG', #PH
124
- '1 08 00' => 'Sigma APO Macro 150mm F2.8 EX DG HSM', #PH
125
- '1 09 00' => 'Sigma 18-50mm F2.8 EX DC Macro', #NJ
126
- '1 10 00' => 'Sigma 24mm F1.8 EX DG Aspherical Macro', #PH
127
- '1 11 00' => 'Sigma APO 135-400mm F4.5-5.6 DG', #11
128
- '1 12 00' => 'Sigma APO 300-800mm F5.6 EX DG HSM', #11
129
- '1 13 00' => 'Sigma 30mm F1.4 EX DC HSM', #11
130
- '1 14 00' => 'Sigma APO 50-500mm F4.0-6.3 EX DG HSM', #11
131
- '1 15 00' => 'Sigma 10-20mm F4.0-5.6 EX DC HSM', #11
132
- '1 16 00' => 'Sigma APO 70-200mm F2.8 II EX DG Macro HSM', #11
133
- '1 17 00' => 'Sigma 50mm F1.4 EX DG HSM', #11
134
- # Panasonic/Leica lenses
135
- '2 01 00' => 'Leica D Vario Elmarit 14-50mm F2.8-3.5 Asph.', #11
136
- '2 01 10' => 'Lumix G Vario 14-45mm F3.5-5.6 Asph. Mega OIS', #16
137
- '2 02 00' => 'Leica D Summilux 25mm F1.4 Asph.', #11
138
- '2 02 10' => 'Lumix G Vario 45-200mm F4.0-5.6 Mega OIS', #16
139
- '2 03 00' => 'Leica D Vario Elmar 14-50mm F3.8-5.6 Asph. Mega OIS', #11
140
- '2 03 01' => 'Leica D Vario Elmar 14-50mm F3.8-5.6 Asph.', #14 (L10 kit)
141
- '2 03 10' => 'Lumix G Vario HD 14-140mm F4.0-5.8 Asph. Mega OIS', #16
142
- '2 04 00' => 'Leica D Vario Elmar 14-150mm F3.5-5.6', #13
143
- '2 04 10' => 'Lumix G Vario 7-14mm F4.0 Asph.', #PH (E-P1 pre-production)
144
- '2 05 10' => 'Lumix G 20mm F1.7 Asph.', #16
145
- '2 06 10' => 'Leica DG Macro-Elmarit 45mm F2.8 Asph. Mega OIS', #PH
146
- '2 07 10' => 'Lumix G Vario 14-42mm F3.5-5.6 Asph. Mega OIS', #NJ
147
- '2 08 10' => 'Lumix G Fisheye 8mm F3.5', #PH
148
- '2 09 10' => 'Lumix G Vario 100-300mm F4.0-5.6 Mega OIS', #11
149
- '2 10 10' => 'Lumix G 14mm F2.5 Asph.', #17
150
- '2 11 10' => 'Lumix G 12.5mm F12 3D', #NJ (H-FT012)
151
- '2 12 10' => 'Leica DG Summilux 25mm F1.4 Asph.', #NJ
152
- '2 13 10' => 'Lumix G X Vario PZ 45-175mm F4.0-5.6 Asph. Power OIS', #NJ
153
- '2 14 10' => 'Lumix G X Vario PZ 14-42mm F3.5-5.6 Asph. Power OIS', #NJ
154
- '2 15 10' => 'Lumix G X Vario 12-35mm F2.8 Asph. Power OIS', #PH
155
- '2 16 10' => 'Lumix G Vario 45-150mm F4.0-5.6 Asph. Mega OIS', #NJ
156
- '2 17 10' => 'Lumix G X Vario 35-100mm F2.8 Power OIS', #PH
157
- '2 18 10' => 'Lumix G Vario 14-42mm F3.5-5.6 II Asph. Mega OIS', #NJ
158
- '2 19 10' => 'Lumix G Vario 14-140mm F3.5-5.6 Asph. Power OIS', #NJ
159
- '2 20 10' => 'Lumix G Vario 12-32mm F3.5-5.6 Asph. Mega OIS', #NJ
160
- '2 21 10' => 'Leica DG Nocticron 42.5mm F1.2 Asph. Power OIS', #NJ
161
- '2 22 10' => 'Leica DG Summilux 15mm F1.7 Asph.', #NJ
162
- '2 23 10' => 'Lumix G Vario 35-100mm F4.0-5.6 Asph. Mega OIS', #NJ
163
- '2 24 10' => 'Lumix G Macro 30mm F2.8 Asph. Mega OIS', #NJ
164
- '2 25 10' => 'Lumix G 42.5mm F1.7 Asph. Power OIS', #NJ
165
- '2 26 10' => 'Lumix G 25mm F1.7 Asph.', #NJ
166
- '2 27 10' => 'Leica DG Vario-Elmar 100-400mm F4.0-6.3 Asph. Power OIS', #NJ
167
- '2 28 10' => 'Lumix G Vario 12-60mm F3.5-5.6 Asph. Power OIS', #NJ
168
- '3 01 00' => 'Leica D Vario Elmarit 14-50mm F2.8-3.5 Asph.', #11
169
- '3 02 00' => 'Leica D Summilux 25mm F1.4 Asph.', #11
170
- # Tamron lenses
171
- '5 01 10' => 'Tamron 14-150mm F3.5-5.8 Di III', #NJ (model C001)
172
- );
173
-
174
- # lookup for Olympus camera types (ref PH)
175
- my %olympusCameraTypes = (
176
- Notes => q{
177
- These values are currently decoded only for Olympus models. Models with
178
- Olympus-style maker notes from other brands such as Acer, BenQ, Hitachi, HP,
179
- Premier, Konica-Minolta, Maginon, Ricoh, Rollei, SeaLife, Sony, Supra,
180
- Vivitar are not listed.
181
- },
182
- D4028 => 'X-2,C-50Z',
183
- D4029 => 'E-20,E-20N,E-20P',
184
- D4034 => 'C720UZ',
185
- D4040 => 'E-1',
186
- D4041 => 'E-300',
187
- D4083 => 'C2Z,D520Z,C220Z',
188
- D4106 => 'u20D,S400D,u400D',
189
- D4120 => 'X-1',
190
- D4122 => 'u10D,S300D,u300D',
191
- D4125 => 'AZ-1',
192
- D4141 => 'C150,D390',
193
- D4193 => 'C-5000Z',
194
- D4194 => 'X-3,C-60Z',
195
- D4199 => 'u30D,S410D,u410D',
196
- D4205 => 'X450,D535Z,C370Z',
197
- D4210 => 'C160,D395',
198
- D4211 => 'C725UZ',
199
- D4213 => 'FerrariMODEL2003',
200
- D4216 => 'u15D',
201
- D4217 => 'u25D',
202
- D4220 => 'u-miniD,Stylus V',
203
- D4221 => 'u40D,S500,uD500',
204
- D4231 => 'FerrariMODEL2004',
205
- D4240 => 'X500,D590Z,C470Z',
206
- D4244 => 'uD800,S800',
207
- D4256 => 'u720SW,S720SW',
208
- D4261 => 'X600,D630,FE5500',
209
- D4262 => 'uD600,S600',
210
- D4301 => 'u810/S810', # (yes, "/". Olympus is not consistent in the notation)
211
- D4302 => 'u710,S710',
212
- D4303 => 'u700,S700',
213
- D4304 => 'FE100,X710',
214
- D4305 => 'FE110,X705',
215
- D4310 => 'FE-130,X-720',
216
- D4311 => 'FE-140,X-725',
217
- D4312 => 'FE150,X730',
218
- D4313 => 'FE160,X735',
219
- D4314 => 'u740,S740',
220
- D4315 => 'u750,S750',
221
- D4316 => 'u730/S730',
222
- D4317 => 'FE115,X715',
223
- D4321 => 'SP550UZ',
224
- D4322 => 'SP510UZ',
225
- D4324 => 'FE170,X760',
226
- D4326 => 'FE200',
227
- D4327 => 'FE190/X750', # (also SX876)
228
- D4328 => 'u760,S760',
229
- D4330 => 'FE180/X745', # (also SX875)
230
- D4331 => 'u1000/S1000',
231
- D4332 => 'u770SW,S770SW',
232
- D4333 => 'FE240/X795',
233
- D4334 => 'FE210,X775',
234
- D4336 => 'FE230/X790',
235
- D4337 => 'FE220,X785',
236
- D4338 => 'u725SW,S725SW',
237
- D4339 => 'FE250/X800',
238
- D4341 => 'u780,S780',
239
- D4343 => 'u790SW,S790SW',
240
- D4344 => 'u1020,S1020',
241
- D4346 => 'FE15,X10',
242
- D4348 => 'FE280,X820,C520',
243
- D4349 => 'FE300,X830',
244
- D4350 => 'u820,S820',
245
- D4351 => 'u1200,S1200',
246
- D4352 => 'FE270,X815,C510',
247
- D4353 => 'u795SW,S795SW',
248
- D4354 => 'u1030SW,S1030SW',
249
- D4355 => 'SP560UZ',
250
- D4356 => 'u1010,S1010',
251
- D4357 => 'u830,S830',
252
- D4359 => 'u840,S840',
253
- D4360 => 'FE350WIDE,X865',
254
- D4361 => 'u850SW,S850SW',
255
- D4362 => 'FE340,X855,C560',
256
- D4363 => 'FE320,X835,C540',
257
- D4364 => 'SP570UZ',
258
- D4366 => 'FE330,X845,C550',
259
- D4368 => 'FE310,X840,C530',
260
- D4370 => 'u1050SW,S1050SW',
261
- D4371 => 'u1060,S1060',
262
- D4372 => 'FE370,X880,C575',
263
- D4374 => 'SP565UZ',
264
- D4377 => 'u1040,S1040',
265
- D4378 => 'FE360,X875,C570',
266
- D4379 => 'FE20,X15,C25',
267
- D4380 => 'uT6000,ST6000',
268
- D4381 => 'uT8000,ST8000',
269
- D4382 => 'u9000,S9000',
270
- D4384 => 'SP590UZ',
271
- D4385 => 'FE3010,X895',
272
- D4386 => 'FE3000,X890',
273
- D4387 => 'FE35,X30',
274
- D4388 => 'u550WP,S550WP',
275
- D4390 => 'FE5000,X905',
276
- D4391 => 'u5000',
277
- D4392 => 'u7000,S7000',
278
- D4396 => 'FE5010,X915',
279
- D4397 => 'FE25,X20',
280
- D4398 => 'FE45,X40',
281
- D4401 => 'XZ-1',
282
- D4402 => 'uT6010,ST6010',
283
- D4406 => 'u7010,S7010 / u7020,S7020',
284
- D4407 => 'FE4010,X930',
285
- D4408 => 'X560WP',
286
- D4409 => 'FE26,X21',
287
- D4410 => 'FE4000,X920,X925',
288
- D4411 => 'FE46,X41,X42',
289
- D4412 => 'FE5020,X935',
290
- D4413 => 'uTough-3000',
291
- D4414 => 'StylusTough-6020',
292
- D4415 => 'StylusTough-8010',
293
- D4417 => 'u5010,S5010',
294
- D4418 => 'u7040,S7040',
295
- D4419 => 'u9010,S9010',
296
- D4423 => 'FE4040',
297
- D4424 => 'FE47,X43',
298
- D4426 => 'FE4030,X950',
299
- D4428 => 'FE5030,X965,X960',
300
- D4430 => 'u7030,S7030',
301
- D4432 => 'SP600UZ',
302
- D4434 => 'SP800UZ',
303
- D4439 => 'FE4020,X940',
304
- D4442 => 'FE5035',
305
- D4448 => 'FE4050,X970',
306
- D4450 => 'FE5050,X985',
307
- D4454 => 'u-7050',
308
- D4464 => 'T10,X27',
309
- D4470 => 'FE5040,X980',
310
- D4472 => 'TG-310',
311
- D4474 => 'TG-610',
312
- D4476 => 'TG-810',
313
- D4478 => 'VG145,VG140,D715',
314
- D4479 => 'VG130,D710',
315
- D4480 => 'VG120,D705',
316
- D4482 => 'VR310,D720',
317
- D4484 => 'VR320,D725',
318
- D4486 => 'VR330,D730',
319
- D4488 => 'VG110,D700',
320
- D4490 => 'SP-610UZ',
321
- D4492 => 'SZ-10',
322
- D4494 => 'SZ-20',
323
- D4496 => 'SZ-30MR',
324
- D4498 => 'SP-810UZ',
325
- D4500 => 'SZ-11',
326
- D4504 => 'TG-615',
327
- D4508 => 'TG-620',
328
- D4510 => 'TG-820',
329
- D4512 => 'TG-1',
330
- D4516 => 'SH-21',
331
- D4519 => 'SZ-14',
332
- D4520 => 'SZ-31MR',
333
- D4521 => 'SH-25MR',
334
- D4523 => 'SP-720UZ',
335
- D4529 => 'VG170',
336
- D4531 => 'XZ-2',
337
- D4535 => 'SP-620UZ',
338
- D4536 => 'TG-320',
339
- D4537 => 'VR340,D750',
340
- D4538 => 'VG160,X990,D745',
341
- D4541 => 'SZ-12',
342
- D4545 => 'VH410',
343
- D4546 => 'XZ-10', #IB
344
- D4547 => 'TG-2',
345
- D4548 => 'TG-830',
346
- D4549 => 'TG-630',
347
- D4550 => 'SH-50',
348
- D4553 => 'SZ-16,DZ-105',
349
- D4562 => 'SP-820UZ',
350
- D4566 => 'SZ-15',
351
- D4572 => 'STYLUS1',
352
- D4574 => 'TG-3',
353
- D4575 => 'TG-850',
354
- D4579 => 'SP-100EE',
355
- D4580 => 'SH-60',
356
- D4581 => 'SH-1',
357
- D4582 => 'TG-835',
358
- D4585 => 'SH-2 / SH-3',
359
- D4586 => 'TG-4',
360
- D4587 => 'TG-860',
361
- D4591 => 'TG-870',
362
- D4809 => 'C2500L',
363
- D4842 => 'E-10',
364
- D4856 => 'C-1',
365
- D4857 => 'C-1Z,D-150Z',
366
- DCHC => 'D500L',
367
- DCHT => 'D600L / D620L',
368
- K0055 => 'AIR-A01',
369
- S0003 => 'E-330',
370
- S0004 => 'E-500',
371
- S0009 => 'E-400',
372
- S0010 => 'E-510',
373
- S0011 => 'E-3',
374
- S0013 => 'E-410',
375
- S0016 => 'E-420',
376
- S0017 => 'E-30',
377
- S0018 => 'E-520',
378
- S0019 => 'E-P1',
379
- S0023 => 'E-620',
380
- S0026 => 'E-P2',
381
- S0027 => 'E-PL1',
382
- S0029 => 'E-450',
383
- S0030 => 'E-600',
384
- S0032 => 'E-P3',
385
- S0033 => 'E-5',
386
- S0034 => 'E-PL2',
387
- S0036 => 'E-M5',
388
- S0038 => 'E-PL3',
389
- S0039 => 'E-PM1',
390
- S0040 => 'E-PL1s',
391
- S0042 => 'E-PL5',
392
- S0043 => 'E-PM2',
393
- S0044 => 'E-P5',
394
- S0045 => 'E-PL6',
395
- S0046 => 'E-PL7', #IB
396
- S0047 => 'E-M1',
397
- S0051 => 'E-M10',
398
- S0052 => 'E-M5MarkII', #IB
399
- S0059 => 'E-M10MarkII',
400
- S0061 => 'PEN-F', #forum7005
401
- S0065 => 'E-PL8',
402
- SR45 => 'D220',
403
- SR55 => 'D320L',
404
- SR83 => 'D340L',
405
- SR85 => 'C830L,D340R',
406
- SR852 => 'C860L,D360L',
407
- SR872 => 'C900Z,D400Z',
408
- SR874 => 'C960Z,D460Z',
409
- SR951 => 'C2000Z',
410
- SR952 => 'C21',
411
- SR953 => 'C21T.commu',
412
- SR954 => 'C2020Z',
413
- SR955 => 'C990Z,D490Z',
414
- SR956 => 'C211Z',
415
- SR959 => 'C990ZS,D490Z',
416
- SR95A => 'C2100UZ',
417
- SR971 => 'C100,D370',
418
- SR973 => 'C2,D230',
419
- SX151 => 'E100RS',
420
- SX351 => 'C3000Z / C3030Z',
421
- SX354 => 'C3040Z',
422
- SX355 => 'C2040Z',
423
- SX357 => 'C700UZ',
424
- SX358 => 'C200Z,D510Z',
425
- SX374 => 'C3100Z,C3020Z',
426
- SX552 => 'C4040Z',
427
- SX553 => 'C40Z,D40Z',
428
- SX556 => 'C730UZ',
429
- SX558 => 'C5050Z',
430
- SX571 => 'C120,D380',
431
- SX574 => 'C300Z,D550Z',
432
- SX575 => 'C4100Z,C4000Z',
433
- SX751 => 'X200,D560Z,C350Z',
434
- SX752 => 'X300,D565Z,C450Z',
435
- SX753 => 'C750UZ',
436
- SX754 => 'C740UZ',
437
- SX755 => 'C755UZ',
438
- SX756 => 'C5060WZ',
439
- SX757 => 'C8080WZ',
440
- SX758 => 'X350,D575Z,C360Z',
441
- SX759 => 'X400,D580Z,C460Z',
442
- SX75A => 'AZ-2ZOOM',
443
- SX75B => 'D595Z,C500Z',
444
- SX75C => 'X550,D545Z,C480Z',
445
- SX75D => 'IR-300',
446
- SX75F => 'C55Z,C5500Z',
447
- SX75G => 'C170,D425',
448
- SX75J => 'C180,D435',
449
- SX771 => 'C760UZ',
450
- SX772 => 'C770UZ',
451
- SX773 => 'C745UZ',
452
- SX774 => 'X250,D560Z,C350Z',
453
- SX775 => 'X100,D540Z,C310Z',
454
- SX776 => 'C460ZdelSol',
455
- SX777 => 'C765UZ',
456
- SX77A => 'D555Z,C315Z',
457
- SX851 => 'C7070WZ',
458
- SX852 => 'C70Z,C7000Z',
459
- SX853 => 'SP500UZ',
460
- SX854 => 'SP310',
461
- SX855 => 'SP350',
462
- SX873 => 'SP320',
463
- SX875 => 'FE180/X745', # (also D4330)
464
- SX876 => 'FE190/X750', # (also D4327)
465
- # other brands
466
- # 4MP9Q3 => 'Camera 4MP-9Q3'
467
- # 4MP9T2 => 'BenQ DC C420 / Camera 4MP-9T2'
468
- # 5MP9Q3 => 'Camera 5MP-9Q3',
469
- # 5MP9X9 => 'Camera 5MP-9X9',
470
- # '5MP-9T'=> 'Camera 5MP-9T3',
471
- # '5MP-9Y'=> 'Camera 5MP-9Y2',
472
- # '6MP-9U'=> 'Camera 6MP-9U9',
473
- # 7MP9Q3 => 'Camera 7MP-9Q3',
474
- # '8MP-9U'=> 'Camera 8MP-9U4',
475
- # CE5330 => 'Acer CE-5330',
476
- # 'CP-853'=> 'Acer CP-8531',
477
- # CS5531 => 'Acer CS5531',
478
- # DC500 => 'SeaLife DC500',
479
- # DC7370 => 'Camera 7MP-9GA',
480
- # DC7371 => 'Camera 7MP-9GM',
481
- # DC7371 => 'Hitachi HDC-751E',
482
- # DC7375 => 'Hitachi HDC-763E / Rollei RCP-7330X / Ricoh Caplio RR770 / Vivitar ViviCam 7330',
483
- # 'DC E63'=> 'BenQ DC E63+',
484
- # 'DC P86'=> 'BenQ DC P860',
485
- # DS5340 => 'Maginon Performic S5 / Premier 5MP-9M7',
486
- # DS5341 => 'BenQ E53+ / Supra TCM X50 / Maginon X50 / Premier 5MP-9P8',
487
- # DS5346 => 'Premier 5MP-9Q2',
488
- # E500 => 'Konica Minolta DiMAGE E500',
489
- # MAGINO => 'Maginon X60',
490
- # Mz60 => 'HP Photosmart Mz60',
491
- # Q3DIGI => 'Camera 5MP-9Q3',
492
- # SLIMLI => 'Supra Slimline X6',
493
- # V8300s => 'Vivitar V8300s',
494
- );
495
-
496
- # ArtFilter, ArtFilterEffect and MagicFilter values (ref PH)
497
- my %filters = (
498
- 0 => 'Off',
499
- 1 => 'Soft Focus', # (XZ-1)
500
- 2 => 'Pop Art', # (SZ-10 magic filter 1,SZ-31MR,E-M5,E-PL3)
501
- 3 => 'Pale & Light Color',
502
- 4 => 'Light Tone',
503
- 5 => 'Pin Hole', # (SZ-10 magic filter 2,SZ-31MR,E-PL3)
504
- 6 => 'Grainy Film',
505
- 9 => 'Diorama',
506
- 10 => 'Cross Process',
507
- 12 => 'Fish Eye', # (SZ-10 magic filter 3)
508
- 13 => 'Drawing', # (SZ-10 magic filter 4)
509
- 14 => 'Gentle Sepia', # (E-5)
510
- 15 => 'Pale & Light Color II', #forum6269 ('Tender Light' ref 11)
511
- 16 => 'Pop Art II', #11 (E-PL3 "(dark)" - PH)
512
- 17 => 'Pin Hole II', #11 (E-PL3 "(color 2)" - PH)
513
- 18 => 'Pin Hole III', #11 (E-M5, E-PL3 "(color 3)" - PH)
514
- 19 => 'Grainy Film II', #11
515
- 20 => 'Dramatic Tone', # (XZ-1,SZ-31MR)
516
- 21 => 'Punk', # (SZ-10 magic filter 6)
517
- 22 => 'Soft Focus 2', # (SZ-10 magic filter 5)
518
- 23 => 'Sparkle', # (SZ-10 magic filter 7)
519
- 24 => 'Watercolor', # (SZ-10 magic filter 8)
520
- 25 => 'Key Line', # (E-M5)
521
- 26 => 'Key Line II', #forum6269
522
- 27 => 'Miniature', # (SZ-31MR)
523
- 28 => 'Reflection', # (TG-820,SZ-31MR)
524
- 29 => 'Fragmented', # (TG-820,SZ-31MR)
525
- 31 => 'Cross Process II', #forum6269
526
- 32 => 'Dramatic Tone II', #forum6269 (Dramatic Tone B&W for E-M5)
527
- 33 => 'Watercolor I', # ('Watercolor I' for EM-1 ref forum6269, 'Watercolor II' for E-PM2 ref PH)
528
- 34 => 'Watercolor II', #forum6269
529
- 35 => 'Diorama II', #forum6269
530
- 36 => 'Vintage', #forum6269
531
- 37 => 'Vintage II', #forum6269
532
- 38 => 'Vintage III', #forum6269
533
- 39 => 'Partial Color', #forum6269
534
- 40 => 'Partial Color II', #forum6269
535
- 41 => 'Partial Color III', #forum6269
536
- );
537
-
538
- my %toneLevelType = (
539
- 0 => '0',
540
- -31999 => 'Highlights',
541
- -31998 => 'Shadows',
542
- -31997 => 'Midtones',
543
- );
544
-
545
- # tag information for WAV "Index" tags
546
- my %indexInfo = (
547
- Format => 'int32u',
548
- RawConv => '$val == 0xffffffff ? undef : $val',
549
- ValueConv => '$val / 1000',
550
- PrintConv => 'ConvertDuration($val)',
551
- );
552
-
553
- # Olympus tags
554
- %Image::ExifTool::Olympus::Main = (
555
- WRITE_PROC => \&Image::ExifTool::Exif::WriteExif,
556
- CHECK_PROC => \&Image::ExifTool::Exif::CheckExif,
557
- WRITABLE => 1,
558
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
559
- #
560
- # Tags 0x0000 through 0x0103 are the same as Konica/Minolta cameras (ref 3)
561
- # (removed 0x0101-0x0103 because they weren't supported by my samples - PH)
562
- #
563
- 0x0000 => {
564
- Name => 'MakerNoteVersion',
565
- Writable => 'undef',
566
- },
567
- 0x0001 => {
568
- Name => 'MinoltaCameraSettingsOld',
569
- SubDirectory => {
570
- TagTable => 'Image::ExifTool::Minolta::CameraSettings',
571
- ByteOrder => 'BigEndian',
572
- },
573
- },
574
- 0x0003 => {
575
- Name => 'MinoltaCameraSettings',
576
- SubDirectory => {
577
- TagTable => 'Image::ExifTool::Minolta::CameraSettings',
578
- ByteOrder => 'BigEndian',
579
- },
580
- },
581
- 0x0040 => {
582
- Name => 'CompressedImageSize',
583
- Writable => 'int32u',
584
- },
585
- 0x0081 => {
586
- Name => 'PreviewImageData',
587
- Binary => 1,
588
- Writable => 0,
589
- },
590
- 0x0088 => {
591
- Name => 'PreviewImageStart',
592
- Flags => 'IsOffset',
593
- OffsetPair => 0x0089, # point to associated byte count
594
- DataTag => 'PreviewImage',
595
- Writable => 0,
596
- Protected => 2,
597
- },
598
- 0x0089 => {
599
- Name => 'PreviewImageLength',
600
- OffsetPair => 0x0088, # point to associated offset
601
- DataTag => 'PreviewImage',
602
- Writable => 0,
603
- Protected => 2,
604
- },
605
- 0x0100 => {
606
- Name => 'ThumbnailImage',
607
- Groups => { 2 => 'Preview' },
608
- Writable => 'undef',
609
- WriteCheck => '$self->CheckImage(\$val)',
610
- Binary => 1,
611
- },
612
- 0x0104 => { Name => 'BodyFirmwareVersion', Writable => 'string' }, #11
613
- #
614
- # end Konica/Minolta tags
615
- #
616
- 0x0200 => {
617
- Name => 'SpecialMode',
618
- Notes => q{
619
- 3 numbers: 1. Shooting mode: 0=Normal, 2=Fast, 3=Panorama;
620
- 2. Sequence Number; 3. Panorama Direction: 1=Left-right,
621
- 2=Right-left, 3=Bottom-Top, 4=Top-Bottom
622
- },
623
- Writable => 'int32u',
624
- Count => 3,
625
- PrintConv => sub { #3
626
- my $val = shift;
627
- my @v = split ' ', $val;
628
- return $val unless @v >= 3;
629
- my @v0 = ('Normal','Unknown (1)','Fast','Panorama');
630
- my @v2 = ('(none)','Left to Right','Right to Left','Bottom to Top','Top to Bottom');
631
- $val = $v0[$v[0]] || "Unknown ($v[0])";
632
- $val .= ", Sequence: $v[1]";
633
- $val .= ', Panorama: ' . ($v2[$v[2]] || "Unknown ($v[2])");
634
- return $val;
635
- },
636
- },
637
- 0x0201 => {
638
- Name => 'Quality',
639
- Writable => 'int16u',
640
- Notes => q{
641
- Quality values are decoded based on the CameraType tag. All types
642
- represent SQ, HQ and SHQ as sequential integers, but in general
643
- SX-type cameras start with a value of 0 for SQ while others start
644
- with 1
645
- },
646
- # These values are different for different camera types
647
- # (can't have Condition based on CameraType because it isn't known
648
- # when this tag is extracted)
649
- PrintConv => sub {
650
- my ($val, $self) = @_;
651
- my %t1 = ( # all SX camera types except SX151
652
- 0 => 'SQ (Low)',
653
- 1 => 'HQ (Normal)',
654
- 2 => 'SHQ (Fine)',
655
- 6 => 'RAW', #PH - C5050WZ
656
- );
657
- my %t2 = ( # all other types (except D4322, ref 22)
658
- 1 => 'SQ (Low)',
659
- 2 => 'HQ (Normal)',
660
- 3 => 'SHQ (Fine)',
661
- 4 => 'RAW',
662
- 5 => 'Medium-Fine', #PH
663
- 6 => 'Small-Fine', #PH
664
- 33 => 'Uncompressed', #PH - C2100Z
665
- );
666
- my $conv = $self->{CameraType} =~ /^(SX(?!151\b)|D4322)/ ? \%t1 : \%t2;
667
- return $$conv{$val} ? $$conv{$val} : "Unknown ($val)";
668
- },
669
- # (no PrintConvInv because we don't know CameraType at write time)
670
- },
671
- 0x0202 => {
672
- Name => 'Macro',
673
- Writable => 'int16u',
674
- PrintConv => {
675
- 0 => 'Off',
676
- 1 => 'On',
677
- 2 => 'Super Macro', #6
678
- },
679
- },
680
- 0x0203 => { #6
681
- Name => 'BWMode',
682
- Description => 'Black And White Mode',
683
- Writable => 'int16u',
684
- PrintConv => {
685
- 0 => 'Off',
686
- 1 => 'On',
687
- 6 => '(none)', #22
688
- },
689
- },
690
- 0x0204 => {
691
- Name => 'DigitalZoom',
692
- Writable => 'rational64u',
693
- PrintConv => '$val=~/\./ or $val.=".0"; $val',
694
- PrintConvInv => '$val',
695
- },
696
- 0x0205 => { #6
697
- Name => 'FocalPlaneDiagonal',
698
- Writable => 'rational64u',
699
- PrintConv => '"$val mm"',
700
- PrintConvInv => '$val=~s/\s*mm$//;$val',
701
- },
702
- 0x0206 => { Name => 'LensDistortionParams', Writable => 'int16s', Count => 6 }, #6
703
- 0x0207 => { #PH (was incorrectly FirmwareVersion, ref 1/3)
704
- Name => 'CameraType',
705
- Condition => '$$valPt ne "NORMAL"', # FE240, SP510, u730 and u1000 write this
706
- Writable => 'string',
707
- DataMember => 'CameraType',
708
- RawConv => '$self->{CameraType} = $val',
709
- SeparateTable => 'CameraType',
710
- ValueConv => '$val =~ s/\s+$//; $val', # ("SX151 " has trailing space)
711
- ValueConvInv => '$val',
712
- PrintConv => \%olympusCameraTypes,
713
- Priority => 0,
714
- # 'NORMAL' for some models: u730,SP510UZ,u1000,FE240
715
- },
716
- 0x0208 => {
717
- Name => 'TextInfo',
718
- SubDirectory => {
719
- TagTable => 'Image::ExifTool::Olympus::TextInfo',
720
- },
721
- },
722
- 0x0209 => {
723
- Name => 'CameraID',
724
- Format => 'string', # this really should have been a string
725
- },
726
- 0x020b => { Name => 'EpsonImageWidth', Writable => 'int16u' }, #PH
727
- 0x020c => { Name => 'EpsonImageHeight', Writable => 'int16u' }, #PH
728
- 0x020d => { Name => 'EpsonSoftware', Writable => 'string' }, #PH
729
- 0x0280 => { #PH
730
- %Image::ExifTool::previewImageTagInfo,
731
- Groups => { 2 => 'Preview' },
732
- Notes => 'found in ERF and JPG images from some Epson models',
733
- Format => 'undef',
734
- Writable => 'int8u',
735
- },
736
- 0x0300 => { Name => 'PreCaptureFrames', Writable => 'int16u' }, #6
737
- 0x0301 => { Name => 'WhiteBoard', Writable => 'int16u' }, #11
738
- 0x0302 => { #6
739
- Name => 'OneTouchWB',
740
- Writable => 'int16u',
741
- PrintConv => {
742
- 0 => 'Off',
743
- 1 => 'On',
744
- 2 => 'On (Preset)',
745
- },
746
- },
747
- 0x0303 => { Name => 'WhiteBalanceBracket', Writable => 'int16u' }, #11
748
- 0x0304 => { Name => 'WhiteBalanceBias', Writable => 'int16u' }, #11
749
- # 0x0305 => 'PrintMatching', ? #11
750
- 0x0401 => { #IB
751
- Name => 'BlackLevel',
752
- Condition => '$format eq "int32u" and $count == 4',
753
- Writable => 'int32u',
754
- Count => 4,
755
- Notes => 'found in Epson ERF images',
756
- },
757
- # 0x0402 - BitCodedAutoFocus (ref 11)
758
- 0x0403 => { #11
759
- Name => 'SceneMode',
760
- Writable => 'int16u',
761
- PrintConvColumns => 2,
762
- PrintConv => {
763
- 0 => 'Normal',
764
- 1 => 'Standard',
765
- 2 => 'Auto',
766
- 3 => 'Intelligent Auto', #PH (guess, u7040)
767
- 4 => 'Portrait',
768
- 5 => 'Landscape+Portrait',
769
- 6 => 'Landscape',
770
- 7 => 'Night Scene',
771
- 8 => 'Night+Portrait',
772
- 9 => 'Sport',
773
- 10 => 'Self Portrait',
774
- 11 => 'Indoor',
775
- 12 => 'Beach & Snow',
776
- 13 => 'Beach',
777
- 14 => 'Snow',
778
- 15 => 'Self Portrait+Self Timer',
779
- 16 => 'Sunset',
780
- 17 => 'Cuisine',
781
- 18 => 'Documents',
782
- 19 => 'Candle',
783
- 20 => 'Fireworks',
784
- 21 => 'Available Light',
785
- 22 => 'Vivid',
786
- 23 => 'Underwater Wide1',
787
- 24 => 'Underwater Macro',
788
- 25 => 'Museum',
789
- 26 => 'Behind Glass',
790
- 27 => 'Auction',
791
- 28 => 'Shoot & Select1',
792
- 29 => 'Shoot & Select2',
793
- 30 => 'Underwater Wide2',
794
- 31 => 'Digital Image Stabilization',
795
- 32 => 'Face Portrait',
796
- 33 => 'Pet',
797
- 34 => 'Smile Shot',
798
- 35 => 'Quick Shutter',
799
- 43 => 'Hand-held Starlight', #PH (SH-21)
800
- 100 => 'Panorama', #PH (SH-21)
801
- 101 => 'Magic Filter', #PH
802
- 103 => 'HDR', #PH (XZ-2)
803
- },
804
- },
805
- 0x0404 => { Name => 'SerialNumber', Writable => 'string' }, #PH (D595Z, C7070WZ)
806
- 0x0405 => { Name => 'Firmware', Writable => 'string' }, #11
807
- 0x0e00 => { # (AFFieldCoord for models XZ-2 and XZ-10, ref 11)
808
- Name => 'PrintIM',
809
- Description => 'Print Image Matching',
810
- Writable => 0,
811
- SubDirectory => {
812
- TagTable => 'Image::ExifTool::PrintIM::Main',
813
- },
814
- },
815
- 0x0f00 => {
816
- Name => 'DataDump',
817
- Writable => 0,
818
- Binary => 1,
819
- },
820
- 0x0f01 => { #6
821
- Name => 'DataDump2',
822
- Writable => 0,
823
- Binary => 1,
824
- },
825
- 0x0f04 => {
826
- Name => 'ZoomedPreviewStart',
827
- # NOTE: this tag is currently not updated properly when the image is rewritten!
828
- OffsetPair => 0xf05,
829
- DataTag => 'ZoomedPreviewImage',
830
- Writable => 'int32u',
831
- Protected => 2,
832
- },
833
- 0x0f05 => {
834
- Name => 'ZoomedPreviewLength',
835
- OffsetPair => 0xf04,
836
- DataTag => 'ZoomedPreviewImage',
837
- Writable => 'int32u',
838
- Protected => 2,
839
- },
840
- 0x0f06 => {
841
- Name => 'ZoomedPreviewSize',
842
- Writable => 'int16u',
843
- Count => 2,
844
- },
845
- 0x1000 => { #6
846
- Name => 'ShutterSpeedValue',
847
- Writable => 'rational64s',
848
- Priority => 0,
849
- ValueConv => 'abs($val)<100 ? 2**(-$val) : 0',
850
- ValueConvInv => '$val>0 ? -log($val)/log(2) : -100',
851
- PrintConv => 'Image::ExifTool::Exif::PrintExposureTime($val)',
852
- PrintConvInv => 'Image::ExifTool::Exif::ConvertFraction($val)',
853
- },
854
- 0x1001 => { #6
855
- Name => 'ISOValue',
856
- Writable => 'rational64s',
857
- Priority => 0,
858
- ValueConv => '100 * 2 ** ($val - 5)',
859
- ValueConvInv => '$val>0 ? log($val/100)/log(2)+5 : 0',
860
- PrintConv => 'int($val * 100 + 0.5) / 100',
861
- PrintConvInv => '$val',
862
- },
863
- 0x1002 => { #6
864
- Name => 'ApertureValue',
865
- Writable => 'rational64s',
866
- Priority => 0,
867
- ValueConv => '2 ** ($val / 2)',
868
- ValueConvInv => '$val>0 ? 2*log($val)/log(2) : 0',
869
- PrintConv => 'sprintf("%.1f",$val)',
870
- PrintConvInv => '$val',
871
- },
872
- 0x1003 => { #6
873
- Name => 'BrightnessValue',
874
- Writable => 'rational64s',
875
- Priority => 0,
876
- },
877
- 0x1004 => { #3
878
- Name => 'FlashMode',
879
- Writable => 'int16u',
880
- PrintConv => {
881
- 2 => 'On', #PH
882
- 3 => 'Off', #PH
883
- },
884
- },
885
- 0x1005 => { #6
886
- Name => 'FlashDevice',
887
- Writable => 'int16u',
888
- PrintConv => {
889
- 0 => 'None',
890
- 1 => 'Internal',
891
- 4 => 'External',
892
- 5 => 'Internal + External',
893
- },
894
- },
895
- 0x1006 => { #6
896
- Name =>'ExposureCompensation',
897
- Writable => 'rational64s',
898
- },
899
- 0x1007 => { Name => 'SensorTemperature',Writable => 'int16s' }, #6 (E-10, E-20 and C2500L - numbers usually around 30-40)
900
- 0x1008 => { Name => 'LensTemperature', Writable => 'int16s' }, #6
901
- 0x1009 => { Name => 'LightCondition', Writable => 'int16u' }, #11
902
- 0x100a => { #11
903
- Name => 'FocusRange',
904
- Writable => 'int16u',
905
- PrintConv => {
906
- 0 => 'Normal',
907
- 1 => 'Macro',
908
- },
909
- },
910
- 0x100b => { #6
911
- Name => 'FocusMode',
912
- Writable => 'int16u',
913
- PrintConv => {
914
- 0 => 'Auto',
915
- 1 => 'Manual',
916
- },
917
- },
918
- 0x100c => { #6
919
- Name => 'ManualFocusDistance',
920
- Writable => 'rational64u',
921
- PrintConv => '"$val mm"', #11
922
- PrintConvInv => '$val=~s/\s*mm$//; $val',
923
- },
924
- 0x100d => { Name => 'ZoomStepCount', Writable => 'int16u' }, #6
925
- 0x100e => { Name => 'FocusStepCount', Writable => 'int16u' }, #6
926
- 0x100f => { #6
927
- Name => 'Sharpness',
928
- Writable => 'int16u',
929
- Priority => 0,
930
- PrintConv => {
931
- 0 => 'Normal',
932
- 1 => 'Hard',
933
- 2 => 'Soft',
934
- },
935
- },
936
- 0x1010 => { Name => 'FlashChargeLevel', Writable => 'int16u' }, #6
937
- 0x1011 => { #3
938
- Name => 'ColorMatrix',
939
- Writable => 'int16u',
940
- Format => 'int16s',
941
- Count => 9,
942
- },
943
- 0x1012 => { Name => 'BlackLevel', Writable => 'int16u', Count => 4 }, #3
944
- 0x1013 => { #11
945
- Name => 'ColorTemperatureBG',
946
- Writable => 'int16u',
947
- Unknown => 1, # (doesn't look like a temperature)
948
- },
949
- 0x1014 => { #11
950
- Name => 'ColorTemperatureRG',
951
- Writable => 'int16u',
952
- Unknown => 1, # (doesn't look like a temperature)
953
- },
954
- 0x1015 => { #6
955
- Name => 'WBMode',
956
- Writable => 'int16u',
957
- Count => 2,
958
- PrintConvColumns => 2,
959
- PrintConv => {
960
- '1' => 'Auto',
961
- '1 0' => 'Auto',
962
- '1 2' => 'Auto (2)',
963
- '1 4' => 'Auto (4)',
964
- '2 2' => '3000 Kelvin',
965
- '2 3' => '3700 Kelvin',
966
- '2 4' => '4000 Kelvin',
967
- '2 5' => '4500 Kelvin',
968
- '2 6' => '5500 Kelvin',
969
- '2 7' => '6500 Kelvin',
970
- '2 8' => '7500 Kelvin',
971
- '3 0' => 'One-touch',
972
- },
973
- },
974
- 0x1017 => { #2
975
- Name => 'RedBalance',
976
- Writable => 'int16u',
977
- Count => 2,
978
- ValueConv => '$val=~s/ .*//; $val / 256',
979
- ValueConvInv => '$val*=256;"$val 64"',
980
- },
981
- 0x1018 => { #2
982
- Name => 'BlueBalance',
983
- Writable => 'int16u',
984
- Count => 2,
985
- ValueConv => '$val=~s/ .*//; $val / 256',
986
- ValueConvInv => '$val*=256;"$val 64"',
987
- },
988
- 0x1019 => { Name => 'ColorMatrixNumber', Writable => 'int16u' }, #11
989
- # 0x101a is same as CameraID ("OLYMPUS DIGITAL CAMERA") for C2500L - PH
990
- 0x101a => { Name => 'SerialNumber', Writable => 'string' }, #3
991
- 0x101b => { #11
992
- Name => 'ExternalFlashAE1_0',
993
- Writable => 'int32u',
994
- Unknown => 1, # (what are these?)
995
- },
996
- 0x101c => { Name => 'ExternalFlashAE2_0', Writable => 'int32u', Unknown => 1 }, #11
997
- 0x101d => { Name => 'InternalFlashAE1_0', Writable => 'int32u', Unknown => 1 }, #11
998
- 0x101e => { Name => 'InternalFlashAE2_0', Writable => 'int32u', Unknown => 1 }, #11
999
- 0x101f => { Name => 'ExternalFlashAE1', Writable => 'int32u', Unknown => 1 }, #11
1000
- 0x1020 => { Name => 'ExternalFlashAE2', Writable => 'int32u', Unknown => 1 }, #11
1001
- 0x1021 => { Name => 'InternalFlashAE1', Writable => 'int32u', Unknown => 1 }, #11
1002
- 0x1022 => { Name => 'InternalFlashAE2', Writable => 'int32u', Unknown => 1 }, #11
1003
- 0x1023 => { Name => 'FlashExposureComp', Writable => 'rational64s' }, #6
1004
- 0x1024 => { Name => 'InternalFlashTable', Writable => 'int16u' }, #11
1005
- 0x1025 => { Name => 'ExternalFlashGValue', Writable => 'rational64s' }, #11
1006
- 0x1026 => { #6
1007
- Name => 'ExternalFlashBounce',
1008
- Writable => 'int16u',
1009
- PrintConv => {
1010
- 0 => 'No',
1011
- 1 => 'Yes',
1012
- },
1013
- },
1014
- 0x1027 => { Name => 'ExternalFlashZoom', Writable => 'int16u' }, #6
1015
- 0x1028 => { Name => 'ExternalFlashMode', Writable => 'int16u' }, #6
1016
- 0x1029 => { #3
1017
- Name => 'Contrast',
1018
- Writable => 'int16u',
1019
- PrintConv => { #PH (works with E1)
1020
- 0 => 'High',
1021
- 1 => 'Normal',
1022
- 2 => 'Low',
1023
- },
1024
- },
1025
- 0x102a => { Name => 'SharpnessFactor', Writable => 'int16u' }, #3
1026
- 0x102b => { Name => 'ColorControl', Writable => 'int16u', Count => 6 }, #3
1027
- 0x102c => { Name => 'ValidBits', Writable => 'int16u', Count => 2 }, #3
1028
- 0x102d => { Name => 'CoringFilter', Writable => 'int16u' }, #3
1029
- 0x102e => { Name => 'OlympusImageWidth', Writable => 'int32u' }, #PH
1030
- 0x102f => { Name => 'OlympusImageHeight', Writable => 'int32u' }, #PH
1031
- 0x1030 => { Name => 'SceneDetect', Writable => 'int16u' }, #11
1032
- 0x1031 => { #11
1033
- Name => 'SceneArea',
1034
- Writable => 'int32u',
1035
- Count => 8,
1036
- Unknown => 1, # (numbers don't make much sense?)
1037
- },
1038
- # 0x1032 HAFFINAL? #11
1039
- 0x1033 => { #11
1040
- Name => 'SceneDetectData',
1041
- Writable => 'int32u',
1042
- Count => 720,
1043
- Binary => 1,
1044
- Unknown => 1, # (but what does it mean?)
1045
- },
1046
- 0x1034 => { Name => 'CompressionRatio', Writable => 'rational64u' }, #3
1047
- 0x1035 => { #6
1048
- Name => 'PreviewImageValid',
1049
- Writable => 'int32u',
1050
- PrintConv => { 0 => 'No', 1 => 'Yes' },
1051
- },
1052
- 0x1036 => { #6
1053
- Name => 'PreviewImageStart',
1054
- Flags => 'IsOffset',
1055
- OffsetPair => 0x1037, # point to associated byte count
1056
- DataTag => 'PreviewImage',
1057
- Writable => 'int32u',
1058
- Protected => 2,
1059
- },
1060
- 0x1037 => { #6
1061
- # (may contain data from multiple previews - PH, FE320)
1062
- Name => 'PreviewImageLength',
1063
- OffsetPair => 0x1036, # point to associated offset
1064
- DataTag => 'PreviewImage',
1065
- Writable => 'int32u',
1066
- Protected => 2,
1067
- },
1068
- 0x1038 => { Name => 'AFResult', Writable => 'int16u' }, #11
1069
- 0x1039 => { #6
1070
- Name => 'CCDScanMode',
1071
- Writable => 'int16u',
1072
- PrintConv => {
1073
- 0 => 'Interlaced',
1074
- 1 => 'Progressive',
1075
- },
1076
- },
1077
- 0x103a => { #6
1078
- Name => 'NoiseReduction',
1079
- Writable => 'int16u',
1080
- PrintConv => \%offOn,
1081
- },
1082
- 0x103b => { Name => 'FocusStepInfinity', Writable => 'int16u' }, #6
1083
- 0x103c => { Name => 'FocusStepNear', Writable => 'int16u' }, #6
1084
- 0x103d => { Name => 'LightValueCenter', Writable => 'rational64s' }, #11
1085
- 0x103e => { Name => 'LightValuePeriphery', Writable => 'rational64s' }, #11
1086
- 0x103f => { #11
1087
- Name => 'FieldCount',
1088
- Writable => 'int16u',
1089
- Unknown => 1, # (but what does it mean?)
1090
- },
1091
- #
1092
- # Olympus really screwed up the format of the following subdirectories (for the
1093
- # E-1 and E-300 anyway). Not only is the subdirectory value data not included in
1094
- # the size, but also the count is 2 bytes short for the subdirectory itself
1095
- # (presumably the Olympus programmers forgot about the 2-byte entry count at the
1096
- # start of the subdirectory). This mess is straightened out and these subdirs
1097
- # are written properly when ExifTool rewrites the file. Note that this problem
1098
- # has been fixed by Olympus in the new-style IFD maker notes since a standard
1099
- # SubIFD offset value is used. As written by the camera, the old style
1100
- # directories have format 'undef' or 'string', and the new style has format
1101
- # 'ifd'. However, some older versions of exiftool may have rewritten the new
1102
- # style as 'int32u', so handle both cases. - PH
1103
- #
1104
- 0x2010 => [ #PH
1105
- {
1106
- Name => 'Equipment',
1107
- Condition => '$format ne "ifd" and $format ne "int32u"',
1108
- NestedHtmlDump => 2, # (so HtmlDump doesn't show these as double-referenced)
1109
- SubDirectory => {
1110
- TagTable => 'Image::ExifTool::Olympus::Equipment',
1111
- ByteOrder => 'Unknown',
1112
- },
1113
- },
1114
- {
1115
- Name => 'EquipmentIFD',
1116
- Groups => { 1 => 'MakerNotes' }, # SubIFD needs group 1 set
1117
- Flags => 'SubIFD',
1118
- FixFormat => 'ifd',
1119
- SubDirectory => {
1120
- TagTable => 'Image::ExifTool::Olympus::Equipment',
1121
- Start => '$val',
1122
- },
1123
- },
1124
- ],
1125
- 0x2020 => [ #PH
1126
- {
1127
- Name => 'CameraSettings',
1128
- Condition => '$format ne "ifd" and $format ne "int32u"',
1129
- NestedHtmlDump => 2,
1130
- SubDirectory => {
1131
- TagTable => 'Image::ExifTool::Olympus::CameraSettings',
1132
- ByteOrder => 'Unknown',
1133
- },
1134
- },
1135
- {
1136
- Name => 'CameraSettingsIFD',
1137
- Groups => { 1 => 'MakerNotes' },
1138
- Flags => 'SubIFD',
1139
- FixFormat => 'ifd',
1140
- SubDirectory => {
1141
- TagTable => 'Image::ExifTool::Olympus::CameraSettings',
1142
- Start => '$val',
1143
- },
1144
- },
1145
- ],
1146
- 0x2030 => [ #PH
1147
- {
1148
- Name => 'RawDevelopment',
1149
- Condition => '$format ne "ifd" and $format ne "int32u"',
1150
- NestedHtmlDump => 2,
1151
- SubDirectory => {
1152
- TagTable => 'Image::ExifTool::Olympus::RawDevelopment',
1153
- ByteOrder => 'Unknown',
1154
- },
1155
- },
1156
- {
1157
- Name => 'RawDevelopmentIFD',
1158
- Groups => { 1 => 'MakerNotes' },
1159
- Flags => 'SubIFD',
1160
- FixFormat => 'ifd',
1161
- SubDirectory => {
1162
- TagTable => 'Image::ExifTool::Olympus::RawDevelopment',
1163
- Start => '$val',
1164
- },
1165
- },
1166
- ],
1167
- 0x2031 => [ #11
1168
- {
1169
- Name => 'RawDev2',
1170
- Condition => '$format ne "ifd" and $format ne "int32u"',
1171
- NestedHtmlDump => 2,
1172
- SubDirectory => {
1173
- TagTable => 'Image::ExifTool::Olympus::RawDevelopment2',
1174
- ByteOrder => 'Unknown',
1175
- },
1176
- },
1177
- {
1178
- Name => 'RawDev2IFD',
1179
- Groups => { 1 => 'MakerNotes' },
1180
- Flags => 'SubIFD',
1181
- FixFormat => 'ifd',
1182
- SubDirectory => {
1183
- TagTable => 'Image::ExifTool::Olympus::RawDevelopment2',
1184
- Start => '$val',
1185
- },
1186
- },
1187
- ],
1188
- 0x2040 => [ #PH
1189
- {
1190
- Name => 'ImageProcessing',
1191
- Condition => '$format ne "ifd" and $format ne "int32u"',
1192
- NestedHtmlDump => 2,
1193
- SubDirectory => {
1194
- TagTable => 'Image::ExifTool::Olympus::ImageProcessing',
1195
- ByteOrder => 'Unknown',
1196
- },
1197
- },
1198
- {
1199
- Name => 'ImageProcessingIFD',
1200
- Groups => { 1 => 'MakerNotes' },
1201
- Flags => 'SubIFD',
1202
- FixFormat => 'ifd',
1203
- SubDirectory => {
1204
- TagTable => 'Image::ExifTool::Olympus::ImageProcessing',
1205
- Start => '$val',
1206
- },
1207
- },
1208
- ],
1209
- 0x2050 => [ #PH
1210
- {
1211
- Name => 'FocusInfo',
1212
- Condition => '$format ne "ifd" and $format ne "int32u" and not $$self{OlympusCAMER}',
1213
- NestedHtmlDump => 2,
1214
- SubDirectory => {
1215
- TagTable => 'Image::ExifTool::Olympus::FocusInfo',
1216
- ByteOrder => 'Unknown',
1217
- },
1218
- },
1219
- {
1220
- Name => 'FocusInfoIFD',
1221
- Condition => 'not $$self{OlympusCAMER}',
1222
- Groups => { 1 => 'MakerNotes' },
1223
- Flags => 'SubIFD',
1224
- FixFormat => 'ifd',
1225
- SubDirectory => {
1226
- TagTable => 'Image::ExifTool::Olympus::FocusInfo',
1227
- Start => '$val',
1228
- },
1229
- },
1230
- {
1231
- # ASCII-based camera parameters if makernotes starts with "CAMER\0"
1232
- # (or for Sony models starting with "SONY PI\0" or "PREMI\0")
1233
- Name => 'CameraParameters',
1234
- Writable => 'undef',
1235
- Binary => 1,
1236
- },
1237
- ],
1238
- 0x2100 => [
1239
- { #11
1240
- Name => 'Olympus2100',
1241
- Condition => '$format ne "ifd" and $format ne "int32u"',
1242
- NestedHtmlDump => 2,
1243
- SubDirectory => {
1244
- TagTable => 'Image::ExifTool::Olympus::FETags',
1245
- ByteOrder => 'Unknown',
1246
- },
1247
- },
1248
- { #PH
1249
- Name => 'Olympus2100IFD',
1250
- Groups => { 1 => 'MakerNotes' },
1251
- Flags => 'SubIFD',
1252
- FixFormat => 'ifd',
1253
- SubDirectory => {
1254
- TagTable => 'Image::ExifTool::Olympus::FETags',
1255
- ByteOrder => 'Unknown',
1256
- Start => '$val',
1257
- },
1258
- },
1259
- ],
1260
- 0x2200 => [
1261
- { #11
1262
- Name => 'Olympus2200',
1263
- Condition => '$format ne "ifd" and $format ne "int32u"',
1264
- NestedHtmlDump => 2,
1265
- SubDirectory => {
1266
- TagTable => 'Image::ExifTool::Olympus::FETags',
1267
- ByteOrder => 'Unknown',
1268
- },
1269
- },
1270
- { #PH
1271
- Name => 'Olympus2200IFD',
1272
- Groups => { 1 => 'MakerNotes' },
1273
- Flags => 'SubIFD',
1274
- FixFormat => 'ifd',
1275
- SubDirectory => {
1276
- TagTable => 'Image::ExifTool::Olympus::FETags',
1277
- ByteOrder => 'Unknown',
1278
- Start => '$val',
1279
- },
1280
- },
1281
- ],
1282
- 0x2300 => [
1283
- { #11
1284
- Name => 'Olympus2300',
1285
- Condition => '$format ne "ifd" and $format ne "int32u"',
1286
- NestedHtmlDump => 2,
1287
- SubDirectory => {
1288
- TagTable => 'Image::ExifTool::Olympus::FETags',
1289
- ByteOrder => 'Unknown',
1290
- },
1291
- },
1292
- { #PH
1293
- Name => 'Olympus2300IFD',
1294
- Groups => { 1 => 'MakerNotes' },
1295
- Flags => 'SubIFD',
1296
- FixFormat => 'ifd',
1297
- SubDirectory => {
1298
- TagTable => 'Image::ExifTool::Olympus::FETags',
1299
- ByteOrder => 'Unknown',
1300
- Start => '$val',
1301
- },
1302
- },
1303
- ],
1304
- 0x2400 => [
1305
- { #11
1306
- Name => 'Olympus2400',
1307
- Condition => '$format ne "ifd" and $format ne "int32u"',
1308
- NestedHtmlDump => 2,
1309
- SubDirectory => {
1310
- TagTable => 'Image::ExifTool::Olympus::FETags',
1311
- ByteOrder => 'Unknown',
1312
- },
1313
- },
1314
- { #PH
1315
- Name => 'Olympus2400IFD',
1316
- Groups => { 1 => 'MakerNotes' },
1317
- Flags => 'SubIFD',
1318
- FixFormat => 'ifd',
1319
- SubDirectory => {
1320
- TagTable => 'Image::ExifTool::Olympus::FETags',
1321
- ByteOrder => 'Unknown',
1322
- Start => '$val',
1323
- },
1324
- },
1325
- ],
1326
- 0x2500 => [
1327
- { #11
1328
- Name => 'Olympus2500',
1329
- Condition => '$format ne "ifd" and $format ne "int32u"',
1330
- NestedHtmlDump => 2,
1331
- SubDirectory => {
1332
- TagTable => 'Image::ExifTool::Olympus::FETags',
1333
- ByteOrder => 'Unknown',
1334
- },
1335
- },
1336
- { #PH
1337
- Name => 'Olympus2500IFD',
1338
- Groups => { 1 => 'MakerNotes' },
1339
- Flags => 'SubIFD',
1340
- FixFormat => 'ifd',
1341
- SubDirectory => {
1342
- TagTable => 'Image::ExifTool::Olympus::FETags',
1343
- ByteOrder => 'Unknown',
1344
- Start => '$val',
1345
- },
1346
- },
1347
- ],
1348
- 0x2600 => [
1349
- { #11
1350
- Name => 'Olympus2600',
1351
- Condition => '$format ne "ifd" and $format ne "int32u"',
1352
- NestedHtmlDump => 2,
1353
- SubDirectory => {
1354
- TagTable => 'Image::ExifTool::Olympus::FETags',
1355
- ByteOrder => 'Unknown',
1356
- },
1357
- },
1358
- { #PH
1359
- Name => 'Olympus2600IFD',
1360
- Groups => { 1 => 'MakerNotes' },
1361
- Flags => 'SubIFD',
1362
- FixFormat => 'ifd',
1363
- SubDirectory => {
1364
- TagTable => 'Image::ExifTool::Olympus::FETags',
1365
- ByteOrder => 'Unknown',
1366
- Start => '$val',
1367
- },
1368
- },
1369
- ],
1370
- 0x2700 => [
1371
- { #11
1372
- Name => 'Olympus2700',
1373
- Condition => '$format ne "ifd" and $format ne "int32u"',
1374
- NestedHtmlDump => 2,
1375
- SubDirectory => {
1376
- TagTable => 'Image::ExifTool::Olympus::FETags',
1377
- ByteOrder => 'Unknown',
1378
- },
1379
- },
1380
- { #PH
1381
- Name => 'Olympus2700IFD',
1382
- Groups => { 1 => 'MakerNotes' },
1383
- Flags => 'SubIFD',
1384
- FixFormat => 'ifd',
1385
- SubDirectory => {
1386
- TagTable => 'Image::ExifTool::Olympus::FETags',
1387
- ByteOrder => 'Unknown',
1388
- Start => '$val',
1389
- },
1390
- },
1391
- ],
1392
- 0x2800 => [
1393
- { #11
1394
- Name => 'Olympus2800',
1395
- Condition => '$format ne "ifd" and $format ne "int32u"',
1396
- NestedHtmlDump => 2,
1397
- SubDirectory => {
1398
- TagTable => 'Image::ExifTool::Olympus::FETags',
1399
- ByteOrder => 'Unknown',
1400
- },
1401
- },
1402
- { #PH
1403
- Name => 'Olympus2800IFD',
1404
- Groups => { 1 => 'MakerNotes' },
1405
- Flags => 'SubIFD',
1406
- FixFormat => 'ifd',
1407
- SubDirectory => {
1408
- TagTable => 'Image::ExifTool::Olympus::FETags',
1409
- ByteOrder => 'Unknown',
1410
- Start => '$val',
1411
- },
1412
- },
1413
- ],
1414
- 0x2900 => [
1415
- { #11
1416
- Name => 'Olympus2900',
1417
- Condition => '$format ne "ifd" and $format ne "int32u"',
1418
- NestedHtmlDump => 2,
1419
- SubDirectory => {
1420
- TagTable => 'Image::ExifTool::Olympus::FETags',
1421
- ByteOrder => 'Unknown',
1422
- },
1423
- },
1424
- { #PH
1425
- Name => 'Olympus2900IFD',
1426
- Groups => { 1 => 'MakerNotes' },
1427
- Flags => 'SubIFD',
1428
- FixFormat => 'ifd',
1429
- SubDirectory => {
1430
- TagTable => 'Image::ExifTool::Olympus::FETags',
1431
- ByteOrder => 'Unknown',
1432
- Start => '$val',
1433
- },
1434
- },
1435
- ],
1436
- 0x3000 => [
1437
- { #6
1438
- Name => 'RawInfo',
1439
- Condition => '$format ne "ifd" and $format ne "int32u"',
1440
- NestedHtmlDump => 2,
1441
- SubDirectory => {
1442
- TagTable => 'Image::ExifTool::Olympus::RawInfo',
1443
- ByteOrder => 'Unknown',
1444
- },
1445
- },
1446
- { #PH
1447
- Name => 'RawInfoIFD',
1448
- Groups => { 1 => 'MakerNotes' },
1449
- Flags => 'SubIFD',
1450
- FixFormat => 'ifd',
1451
- SubDirectory => {
1452
- TagTable => 'Image::ExifTool::Olympus::RawInfo',
1453
- Start => '$val',
1454
- },
1455
- },
1456
- ],
1457
- 0x4000 => [ #PH
1458
- {
1459
- Name => 'MainInfo',
1460
- Condition => '$format ne "ifd" and $format ne "int32u"',
1461
- NestedHtmlDump => 2,
1462
- SubDirectory => {
1463
- TagTable => 'Image::ExifTool::Olympus::Main',
1464
- ByteOrder => 'Unknown',
1465
- },
1466
- },
1467
- {
1468
- Name => 'MainInfoIFD',
1469
- Groups => { 1 => 'MakerNotes' },
1470
- Flags => 'SubIFD',
1471
- FixFormat => 'ifd',
1472
- SubDirectory => {
1473
- TagTable => 'Image::ExifTool::Olympus::Main',
1474
- Start => '$val',
1475
- },
1476
- },
1477
- ],
1478
- 0x5000 => [ #PH
1479
- {
1480
- Name => 'UnknownInfo',
1481
- Condition => '$format ne "ifd" and $format ne "int32u"',
1482
- NestedHtmlDump => 2,
1483
- SubDirectory => {
1484
- TagTable => 'Image::ExifTool::Olympus::UnknownInfo',
1485
- ByteOrder => 'Unknown',
1486
- },
1487
- },
1488
- {
1489
- Name => 'UnknownInfoIFD',
1490
- Groups => { 1 => 'MakerNotes' },
1491
- Flags => 'SubIFD',
1492
- FixFormat => 'ifd',
1493
- SubDirectory => {
1494
- TagTable => 'Image::ExifTool::Olympus::UnknownInfo',
1495
- Start => '$val',
1496
- },
1497
- },
1498
- ],
1499
- );
1500
-
1501
- # TextInfo tags
1502
- %Image::ExifTool::Olympus::TextInfo = (
1503
- PROCESS_PROC => \&Image::ExifTool::APP12::ProcessAPP12,
1504
- NOTES => q{
1505
- This information is in text format (similar to APP12 information, but with
1506
- spaces instead of linefeeds). Below are tags which have been observed, but
1507
- any information found here will be extracted, even if the tag is not listed.
1508
- },
1509
- GROUPS => { 0 => 'MakerNotes', 1 => 'Olympus', 2 => 'Image' },
1510
- Resolution => { },
1511
- Type => {
1512
- Name => 'CameraType',
1513
- Groups => { 2 => 'Camera' },
1514
- DataMember => 'CameraType',
1515
- RawConv => '$self->{CameraType} = $val',
1516
- SeparateTable => 'CameraType',
1517
- PrintConv => \%olympusCameraTypes,
1518
- },
1519
- );
1520
-
1521
- # Olympus Equipment IFD
1522
- %Image::ExifTool::Olympus::Equipment = (
1523
- WRITE_PROC => \&Image::ExifTool::Exif::WriteExif,
1524
- CHECK_PROC => \&Image::ExifTool::Exif::CheckExif,
1525
- WRITABLE => 1,
1526
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
1527
- 0x000 => { #PH
1528
- Name => 'EquipmentVersion',
1529
- Writable => 'undef',
1530
- RawConv => '$val=~s/\0+$//; $val', # (may be null terminated)
1531
- Count => 4,
1532
- },
1533
- 0x100 => { #6
1534
- Name => 'CameraType2',
1535
- Writable => 'string',
1536
- Count => 6,
1537
- SeparateTable => 'CameraType',
1538
- PrintConv => \%olympusCameraTypes,
1539
- },
1540
- 0x101 => { #PH
1541
- Name => 'SerialNumber',
1542
- Writable => 'string',
1543
- Count => 32,
1544
- PrintConv => '$val=~s/\s+$//;$val',
1545
- PrintConvInv => 'pack("A31",$val)', # pad with spaces to 31 chars
1546
- },
1547
- 0x102 => { #6
1548
- Name => 'InternalSerialNumber',
1549
- Notes => '16 digits: 0-3=model, 4=year, 5-6=month, 8-12=unit number',
1550
- Writable => 'string',
1551
- Count => 32,
1552
- },
1553
- 0x103 => { #6
1554
- Name => 'FocalPlaneDiagonal',
1555
- Writable => 'rational64u',
1556
- PrintConv => '"$val mm"',
1557
- PrintConvInv => '$val=~s/\s*mm$//;$val',
1558
- },
1559
- 0x104 => { #6
1560
- Name => 'BodyFirmwareVersion',
1561
- Writable => 'int32u',
1562
- PrintConv => '$val=sprintf("%x",$val);$val=~s/(.{3})$/\.$1/;$val',
1563
- PrintConvInv => '$val=sprintf("%.3f",$val);$val=~s/\.//;hex($val)',
1564
- },
1565
- 0x201 => { #6
1566
- Name => 'LensType',
1567
- Writable => 'int8u',
1568
- Count => 6,
1569
- Notes => q{
1570
- 6 numbers: 0. Make, 1. Unknown, 2. Model, 3. Sub-model, 4-5. Unknown. Only
1571
- the Make, Model and Sub-model are used to identify the lens type
1572
- },
1573
- SeparateTable => 'LensType',
1574
- # Have seen these values for the unknown numbers:
1575
- # 1: 0
1576
- # 4: 0, 2(Olympus lenses for which I have also seen 0 for this number)
1577
- # 5: 0, 16(new Lumix lenses)
1578
- ValueConv => 'my @a=split(" ",$val); sprintf("%x %.2x %.2x",@a[0,2,3])',
1579
- # set unknown values to zero when writing
1580
- ValueConvInv => 'my @a=split(" ",$val); hex($a[0])." 0 ".hex($a[1])." ".hex($a[2])." 0 0"',
1581
- PrintConv => \%olympusLensTypes,
1582
- },
1583
- # apparently the first 3 digits of the lens s/n give the type (ref 4):
1584
- # 010 = 50macro
1585
- # 040 = EC-14
1586
- # 050 = 14-54
1587
- # 060 = 50-200
1588
- # 080 = EX-25
1589
- # 101 = FL-50
1590
- # 272 = EC-20 #7
1591
- 0x202 => { #PH
1592
- Name => 'LensSerialNumber',
1593
- Writable => 'string',
1594
- Count => 32,
1595
- PrintConv => '$val=~s/\s+$//;$val',
1596
- PrintConvInv => 'pack("A31",$val)', # pad with spaces to 31 chars
1597
- },
1598
- 0x203 => { Name => 'LensModel', Writable => 'string' }, #17
1599
- 0x204 => { #6
1600
- Name => 'LensFirmwareVersion',
1601
- Writable => 'int32u',
1602
- PrintConv => '$val=sprintf("%x",$val);$val=~s/(.{3})$/\.$1/;$val',
1603
- PrintConvInv => '$val=sprintf("%.3f",$val);$val=~s/\.//;hex($val)',
1604
- },
1605
- 0x205 => { #11
1606
- Name => 'MaxApertureAtMinFocal',
1607
- Writable => 'int16u',
1608
- ValueConv => '$val ? sqrt(2)**($val/256) : 0',
1609
- ValueConvInv => '$val>0 ? int(512*log($val)/log(2)+0.5) : 0',
1610
- PrintConv => 'sprintf("%.1f",$val)',
1611
- PrintConvInv => '$val',
1612
- },
1613
- 0x206 => { #5
1614
- Name => 'MaxApertureAtMaxFocal',
1615
- Writable => 'int16u',
1616
- ValueConv => '$val ? sqrt(2)**($val/256) : 0',
1617
- ValueConvInv => '$val>0 ? int(512*log($val)/log(2)+0.5) : 0',
1618
- PrintConv => 'sprintf("%.1f",$val)',
1619
- PrintConvInv => '$val',
1620
- },
1621
- 0x207 => { Name => 'MinFocalLength', Writable => 'int16u' }, #PH
1622
- 0x208 => { Name => 'MaxFocalLength', Writable => 'int16u' }, #PH
1623
- 0x20a => { #9
1624
- Name => 'MaxAperture', # (at current focal length)
1625
- Writable => 'int16u',
1626
- ValueConv => '$val ? sqrt(2)**($val/256) : 0',
1627
- ValueConvInv => '$val>0 ? int(512*log($val)/log(2)+0.5) : 0',
1628
- PrintConv => 'sprintf("%.1f",$val)',
1629
- PrintConvInv => '$val',
1630
- },
1631
- 0x20b => { #11
1632
- Name => 'LensProperties',
1633
- Writable => 'int16u',
1634
- PrintConv => 'sprintf("0x%x",$val)',
1635
- PrintConvInv => '$val',
1636
- },
1637
- 0x301 => { #6
1638
- Name => 'Extender',
1639
- Writable => 'int8u',
1640
- Count => 6,
1641
- Notes => q{
1642
- 6 numbers: 0. Make, 1. Unknown, 2. Model, 3. Sub-model, 4-5. Unknown. Only
1643
- the Make and Model are used to identify the extender
1644
- },
1645
- ValueConv => 'my @a=split(" ",$val); sprintf("%x %.2x",@a[0,2])',
1646
- ValueConvInv => 'my @a=split(" ",$val); hex($a[0])." 0 ".hex($a[1])." 0 0 0"',
1647
- PrintConv => {
1648
- '0 00' => 'None',
1649
- '0 04' => 'Olympus Zuiko Digital EC-14 1.4x Teleconverter',
1650
- '0 08' => 'Olympus EX-25 Extension Tube',
1651
- '0 10' => 'Olympus Zuiko Digital EC-20 2.0x Teleconverter', #7
1652
- },
1653
- },
1654
- 0x302 => { Name => 'ExtenderSerialNumber', Writable => 'string', Count => 32 }, #4
1655
- 0x303 => { Name => 'ExtenderModel', Writable => 'string' }, #9
1656
- 0x304 => { #6
1657
- Name => 'ExtenderFirmwareVersion',
1658
- Writable => 'int32u',
1659
- PrintConv => '$val=sprintf("%x",$val);$val=~s/(.{3})$/\.$1/;$val',
1660
- PrintConvInv => '$val=sprintf("%.3f",$val);$val=~s/\.//;hex($val)',
1661
- },
1662
- 0x403 => { #http://dev.exiv2.org/issues/870
1663
- Name => 'ConversionLens',
1664
- Writable => 'string',
1665
- # (observed values: '','TCON','FCON','WCON')
1666
- },
1667
- 0x1000 => { #6
1668
- Name => 'FlashType',
1669
- Writable => 'int16u',
1670
- PrintConv => {
1671
- 0 => 'None',
1672
- 2 => 'Simple E-System',
1673
- 3 => 'E-System',
1674
- },
1675
- },
1676
- 0x1001 => { #6
1677
- Name => 'FlashModel',
1678
- Writable => 'int16u',
1679
- PrintConvColumns => 2,
1680
- PrintConv => {
1681
- 0 => 'None',
1682
- 1 => 'FL-20', # (or subtronic digital or Inon UW flash, ref 11)
1683
- 2 => 'FL-50', # (or Metzblitz+SCA or Cullmann 34, ref 11)
1684
- 3 => 'RF-11',
1685
- 4 => 'TF-22',
1686
- 5 => 'FL-36',
1687
- 6 => 'FL-50R', #11 (or Metz mecablitz digital)
1688
- 7 => 'FL-36R', #11
1689
- 9 => 'FL-14', #11
1690
- 11 => 'FL-600R', #11
1691
- },
1692
- },
1693
- 0x1002 => { #6
1694
- Name => 'FlashFirmwareVersion',
1695
- Writable => 'int32u',
1696
- PrintConv => '$val=sprintf("%x",$val);$val=~s/(.{3})$/\.$1/;$val',
1697
- PrintConvInv => '$val=sprintf("%.3f",$val);$val=~s/\.//;hex($val)',
1698
- },
1699
- 0x1003 => { Name => 'FlashSerialNumber', Writable => 'string', Count => 32 }, #4
1700
- );
1701
-
1702
- # Olympus camera settings IFD
1703
- %Image::ExifTool::Olympus::CameraSettings = (
1704
- WRITE_PROC => \&Image::ExifTool::Exif::WriteExif,
1705
- CHECK_PROC => \&Image::ExifTool::Exif::CheckExif,
1706
- WRITABLE => 1,
1707
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
1708
- 0x000 => { #PH
1709
- Name => 'CameraSettingsVersion',
1710
- Writable => 'undef',
1711
- RawConv => '$val=~s/\0+$//; $val', # (may be null terminated)
1712
- Count => 4,
1713
- },
1714
- 0x100 => { #6
1715
- Name => 'PreviewImageValid',
1716
- Writable => 'int32u',
1717
- PrintConv => { 0 => 'No', 1 => 'Yes' },
1718
- },
1719
- 0x101 => { #PH
1720
- Name => 'PreviewImageStart',
1721
- Flags => 'IsOffset',
1722
- OffsetPair => 0x102,
1723
- DataTag => 'PreviewImage',
1724
- Writable => 'int32u',
1725
- Protected => 2,
1726
- },
1727
- 0x102 => { #PH
1728
- Name => 'PreviewImageLength',
1729
- OffsetPair => 0x101,
1730
- DataTag => 'PreviewImage',
1731
- Writable => 'int32u',
1732
- Protected => 2,
1733
- },
1734
- 0x200 => { #4
1735
- Name => 'ExposureMode',
1736
- Writable => 'int16u',
1737
- PrintConv => {
1738
- 1 => 'Manual',
1739
- 2 => 'Program', #6
1740
- 3 => 'Aperture-priority AE',
1741
- 4 => 'Shutter speed priority AE',
1742
- 5 => 'Program-shift', #6
1743
- }
1744
- },
1745
- 0x201 => { #6
1746
- Name => 'AELock',
1747
- Writable => 'int16u',
1748
- PrintConv => \%offOn,
1749
- },
1750
- 0x202 => { #PH/4
1751
- Name => 'MeteringMode',
1752
- Writable => 'int16u',
1753
- PrintConv => {
1754
- 2 => 'Center-weighted average',
1755
- 3 => 'Spot',
1756
- 5 => 'ESP',
1757
- 261 => 'Pattern+AF', #6
1758
- 515 => 'Spot+Highlight control', #6
1759
- 1027 => 'Spot+Shadow control', #6
1760
- },
1761
- },
1762
- 0x203 => { Name => 'ExposureShift', Writable => 'rational64s' }, #11 (some models only)
1763
- 0x204 => { #11 (XZ-1)
1764
- Name => 'NDFilter',
1765
- PrintConv => \%offOn,
1766
- },
1767
- 0x300 => { #6
1768
- Name => 'MacroMode',
1769
- Writable => 'int16u',
1770
- PrintConv => {
1771
- 0 => 'Off',
1772
- 1 => 'On',
1773
- 2 => 'Super Macro', #11
1774
- },
1775
- },
1776
- 0x301 => { #6
1777
- Name => 'FocusMode',
1778
- Writable => 'int16u',
1779
- Count => -1,
1780
- Notes => '1 or 2 values',
1781
- PrintConv => [{
1782
- 0 => 'Single AF',
1783
- 1 => 'Sequential shooting AF',
1784
- 2 => 'Continuous AF',
1785
- 3 => 'Multi AF',
1786
- 4 => 'Face detect', #11
1787
- 10 => 'MF',
1788
- }, {
1789
- 0 => '(none)',
1790
- BITMASK => { #11
1791
- 0 => 'S-AF',
1792
- 2 => 'C-AF',
1793
- 4 => 'MF',
1794
- 5 => 'Face detect',
1795
- 6 => 'Imager AF',
1796
- 7 => 'Live View Magnification Frame',
1797
- 8 => 'AF sensor',
1798
- },
1799
- }],
1800
- },
1801
- 0x302 => { #6
1802
- Name => 'FocusProcess',
1803
- Writable => 'int16u',
1804
- Count => -1,
1805
- Notes => '1 or 2 values',
1806
- PrintConv => [{
1807
- 0 => 'AF Not Used',
1808
- 1 => 'AF Used',
1809
- }],
1810
- # 2nd value written only by some models (u1050SW, u9000, uT6000, uT6010,
1811
- # uT8000, E-30, E-420, E-450, E-520, E-620, E-P1 and E-P2): - PH
1812
- # observed values when "AF Not Used": 0, 16
1813
- # observed values when "AF Used": 64, 96(face detect on), 256
1814
- },
1815
- 0x303 => { #6
1816
- Name => 'AFSearch',
1817
- Writable => 'int16u',
1818
- PrintConv => {
1819
- 0 => 'Not Ready',
1820
- 1 => 'Ready',
1821
- },
1822
- },
1823
- 0x304 => { #PH/4
1824
- Name => 'AFAreas',
1825
- Notes => 'coordinates range from 0 to 255',
1826
- Writable => 'int32u',
1827
- Count => 64,
1828
- PrintConv => 'Image::ExifTool::Olympus::PrintAFAreas($val)',
1829
- },
1830
- 0x0305 => { #PH
1831
- Name => 'AFPointSelected',
1832
- Notes => 'coordinates expressed as a percent',
1833
- Writable => 'rational64s',
1834
- Count => 5,
1835
- ValueConv => '$val =~ s/\S* //; $val', # ignore first undefined value
1836
- ValueConvInv => '"undef $val"',
1837
- PrintConv => q{
1838
- return 'n/a' if $val =~ /undef/;
1839
- sprintf("(%d%%,%d%%) (%d%%,%d%%)", map {$_ * 100} split(" ",$val));
1840
- },
1841
- PrintConvInv => q{
1842
- return 'undef undef undef undef' if $val eq 'n/a';
1843
- my @nums = $val =~ /\d+(?:\.\d+)?/g;
1844
- return undef unless @nums == 4;
1845
- join ' ', map {$_ / 100} @nums;
1846
- },
1847
- },
1848
- 0x306 => { #11
1849
- Name => 'AFFineTune',
1850
- Writable => 'int8u',
1851
- PrintConv => { 0 => 'Off', 1 => 'On' },
1852
- },
1853
- 0x307 => { #15
1854
- Name => 'AFFineTuneAdj',
1855
- Format => 'int16s',
1856
- Count => 3, # not sure what the 3 values mean
1857
- },
1858
- 0x400 => { #6
1859
- Name => 'FlashMode',
1860
- Writable => 'int16u',
1861
- PrintConv => {
1862
- 0 => 'Off',
1863
- BITMASK => {
1864
- 0 => 'On',
1865
- 1 => 'Fill-in',
1866
- 2 => 'Red-eye',
1867
- 3 => 'Slow-sync',
1868
- 4 => 'Forced On',
1869
- 5 => '2nd Curtain',
1870
- },
1871
- },
1872
- },
1873
- 0x401 => { Name => 'FlashExposureComp', Writable => 'rational64s' }, #6
1874
- # 0x402 - FlashMode? bit0=TTL, bit1=auto, bit2=SuperFP (ref 11)
1875
- 0x403 => { #11
1876
- Name => 'FlashRemoteControl',
1877
- Writable => 'int16u',
1878
- PrintHex => 1,
1879
- PrintConvColumns => 2,
1880
- PrintConv => {
1881
- 0 => 'Off',
1882
- 0x01 => 'Channel 1, Low',
1883
- 0x02 => 'Channel 2, Low',
1884
- 0x03 => 'Channel 3, Low',
1885
- 0x04 => 'Channel 4, Low',
1886
- 0x09 => 'Channel 1, Mid',
1887
- 0x0a => 'Channel 2, Mid',
1888
- 0x0b => 'Channel 3, Mid',
1889
- 0x0c => 'Channel 4, Mid',
1890
- 0x11 => 'Channel 1, High',
1891
- 0x12 => 'Channel 2, High',
1892
- 0x13 => 'Channel 3, High',
1893
- 0x14 => 'Channel 4, High',
1894
- },
1895
- },
1896
- 0x404 => { #11
1897
- Name => 'FlashControlMode',
1898
- Writable => 'int16u',
1899
- Count => -1,
1900
- Notes => '3 or 4 values',
1901
- PrintConv => [{
1902
- 0 => 'Off',
1903
- 3 => 'TTL',
1904
- 4 => 'Auto',
1905
- 5 => 'Manual',
1906
- }],
1907
- },
1908
- 0x405 => { #11
1909
- Name => 'FlashIntensity',
1910
- Writable => 'rational64s',
1911
- Count => -1,
1912
- Notes => '3 or 4 values',
1913
- PrintConv => {
1914
- OTHER => sub { shift },
1915
- 'undef undef undef' => 'n/a',
1916
- 'undef undef undef undef' => 'n/a (x4)',
1917
- },
1918
- },
1919
- 0x406 => { #11
1920
- Name => 'ManualFlashStrength',
1921
- Writable => 'rational64s',
1922
- Count => -1,
1923
- Notes => '3 or 4 values',
1924
- PrintConv => {
1925
- OTHER => sub { shift },
1926
- 'undef undef undef' => 'n/a',
1927
- 'undef undef undef undef' => 'n/a (x4)',
1928
- },
1929
- },
1930
- 0x500 => { #6
1931
- Name => 'WhiteBalance2',
1932
- Writable => 'int16u',
1933
- PrintConv => {
1934
- 0 => 'Auto',
1935
- 1 => 'Auto (Keep Warm Color Off)', #IB
1936
- 16 => '7500K (Fine Weather with Shade)',
1937
- 17 => '6000K (Cloudy)',
1938
- 18 => '5300K (Fine Weather)',
1939
- 20 => '3000K (Tungsten light)',
1940
- 21 => '3600K (Tungsten light-like)',
1941
- 22 => 'Auto Setup', #IB
1942
- 23 => '5500K (Flash)', #IB
1943
- 33 => '6600K (Daylight fluorescent)',
1944
- 34 => '4500K (Neutral white fluorescent)',
1945
- 35 => '4000K (Cool white fluorescent)',
1946
- 36 => 'White Fluorescent', #IB
1947
- 48 => '3600K (Tungsten light-like)',
1948
- 67 => 'Underwater', #IB
1949
- 256 => 'One Touch WB 1', #IB
1950
- 257 => 'One Touch WB 2', #IB
1951
- 258 => 'One Touch WB 3', #IB
1952
- 259 => 'One Touch WB 4', #IB
1953
- 512 => 'Custom WB 1', #IB
1954
- 513 => 'Custom WB 2', #IB
1955
- 514 => 'Custom WB 3', #IB
1956
- 515 => 'Custom WB 4', #IB
1957
- },
1958
- },
1959
- 0x501 => { #PH/4
1960
- Name => 'WhiteBalanceTemperature',
1961
- Writable => 'int16u',
1962
- PrintConv => '$val ? $val : "Auto"',
1963
- PrintConvInv => '$val=~/^\d+$/ ? $val : 0',
1964
- },
1965
- 0x502 => { #PH/4
1966
- Name => 'WhiteBalanceBracket',
1967
- Writable => 'int16s',
1968
- },
1969
- 0x503 => { #PH/4/6
1970
- Name => 'CustomSaturation',
1971
- Writable => 'int16s',
1972
- Count => 3,
1973
- Notes => '3 numbers: 1. CS Value, 2. Min, 3. Max',
1974
- PrintConv => q{
1975
- my ($a,$b,$c)=split ' ',$val;
1976
- if ($self->{Model} =~ /^E-1\b/) {
1977
- $a-=$b; $c-=$b;
1978
- return "CS$a (min CS0, max CS$c)";
1979
- } else {
1980
- return "$a (min $b, max $c)";
1981
- }
1982
- },
1983
- },
1984
- 0x504 => { #PH/4
1985
- Name => 'ModifiedSaturation',
1986
- Writable => 'int16u',
1987
- PrintConv => {
1988
- 0 => 'Off',
1989
- 1 => 'CM1 (Red Enhance)',
1990
- 2 => 'CM2 (Green Enhance)',
1991
- 3 => 'CM3 (Blue Enhance)',
1992
- 4 => 'CM4 (Skin Tones)',
1993
- },
1994
- },
1995
- 0x505 => { #PH/4
1996
- Name => 'ContrastSetting',
1997
- Writable => 'int16s',
1998
- Count => 3,
1999
- Notes => 'value, min, max',
2000
- PrintConv => 'my @v=split " ",$val; "$v[0] (min $v[1], max $v[2])"',
2001
- PrintConvInv => '$val=~tr/-0-9 //dc;$val',
2002
- },
2003
- 0x506 => { #PH/4
2004
- Name => 'SharpnessSetting',
2005
- Writable => 'int16s',
2006
- Count => 3,
2007
- Notes => 'value, min, max',
2008
- PrintConv => 'my @v=split " ",$val; "$v[0] (min $v[1], max $v[2])"',
2009
- PrintConvInv => '$val=~tr/-0-9 //dc;$val',
2010
- },
2011
- 0x507 => { #PH/4
2012
- Name => 'ColorSpace',
2013
- Writable => 'int16u',
2014
- PrintConv => { #6
2015
- 0 => 'sRGB',
2016
- 1 => 'Adobe RGB',
2017
- 2 => 'Pro Photo RGB',
2018
- },
2019
- },
2020
- 0x509 => { #6
2021
- Name => 'SceneMode',
2022
- Writable => 'int16u',
2023
- PrintConvColumns => 2,
2024
- PrintConv => {
2025
- 0 => 'Standard',
2026
- 6 => 'Auto', #6
2027
- 7 => 'Sport',
2028
- 8 => 'Portrait',
2029
- 9 => 'Landscape+Portrait',
2030
- 10 => 'Landscape',
2031
- 11 => 'Night Scene',
2032
- 12 => 'Self Portrait', #11
2033
- 13 => 'Panorama', #6
2034
- 14 => '2 in 1', #11
2035
- 15 => 'Movie', #11
2036
- 16 => 'Landscape+Portrait', #6
2037
- 17 => 'Night+Portrait',
2038
- 18 => 'Indoor', #11 (Party - PH)
2039
- 19 => 'Fireworks',
2040
- 20 => 'Sunset',
2041
- 21 => 'Beauty Skin', #PH
2042
- 22 => 'Macro',
2043
- 23 => 'Super Macro', #11
2044
- 24 => 'Food', #11
2045
- 25 => 'Documents',
2046
- 26 => 'Museum',
2047
- 27 => 'Shoot & Select', #11
2048
- 28 => 'Beach & Snow',
2049
- 29 => 'Self Protrait+Timer', #11
2050
- 30 => 'Candle',
2051
- 31 => 'Available Light', #11
2052
- 32 => 'Behind Glass', #11
2053
- 33 => 'My Mode', #11
2054
- 34 => 'Pet', #11
2055
- 35 => 'Underwater Wide1', #6
2056
- 36 => 'Underwater Macro', #6
2057
- 37 => 'Shoot & Select1', #11
2058
- 38 => 'Shoot & Select2', #11
2059
- 39 => 'High Key',
2060
- 40 => 'Digital Image Stabilization', #6
2061
- 41 => 'Auction', #11
2062
- 42 => 'Beach', #11
2063
- 43 => 'Snow', #11
2064
- 44 => 'Underwater Wide2', #6
2065
- 45 => 'Low Key', #6
2066
- 46 => 'Children', #6
2067
- 47 => 'Vivid', #11
2068
- 48 => 'Nature Macro', #6
2069
- 49 => 'Underwater Snapshot', #11
2070
- 50 => 'Shooting Guide', #11
2071
- 54 => 'Face Portrait', #11
2072
- 57 => 'Bulb', #11
2073
- 59 => 'Smile Shot', #11
2074
- 60 => 'Quick Shutter', #11
2075
- 63 => 'Slow Shutter', #11
2076
- 64 => 'Bird Watching', #11
2077
- 65 => 'Multiple Exposure', #11
2078
- 66 => 'e-Portrait', #11
2079
- 67 => 'Soft Background Shot', #11
2080
- 142 => 'Hand-held Starlight', #PH (SH-21)
2081
- 154 => 'HDR', #PH (XZ-2)
2082
- },
2083
- },
2084
- 0x50a => { #PH/4/6
2085
- Name => 'NoiseReduction',
2086
- Writable => 'int16u',
2087
- PrintConv => {
2088
- 0 => '(none)',
2089
- BITMASK => {
2090
- 0 => 'Noise Reduction',
2091
- 1 => 'Noise Filter',
2092
- 2 => 'Noise Filter (ISO Boost)',
2093
- 3 => 'Auto', #11
2094
- },
2095
- },
2096
- },
2097
- 0x50b => { #6
2098
- Name => 'DistortionCorrection',
2099
- Writable => 'int16u',
2100
- PrintConv => \%offOn,
2101
- },
2102
- 0x50c => { #PH/4
2103
- Name => 'ShadingCompensation',
2104
- Writable => 'int16u',
2105
- PrintConv => \%offOn,
2106
- },
2107
- 0x50d => { Name => 'CompressionFactor', Writable => 'rational64u' }, #PH/4
2108
- 0x50f => { #6
2109
- Name => 'Gradation',
2110
- Writable => 'int16s',
2111
- Notes => '3 or 4 values',
2112
- Count => -1,
2113
- Relist => [ [0..2], 3 ], # join values 0-2 for PrintConv
2114
- PrintConv => [{
2115
- '0 0 0' => 'n/a', #PH (?)
2116
- '-1 -1 1' => 'Low Key',
2117
- '0 -1 1' => 'Normal',
2118
- '1 -1 1' => 'High Key',
2119
- },{
2120
- 0 => 'User-Selected',
2121
- 1 => 'Auto-Override',
2122
- }],
2123
- },
2124
- 0x520 => { #6
2125
- Name => 'PictureMode',
2126
- Writable => 'int16u',
2127
- Notes => '1 or 2 values',
2128
- Count => -1,
2129
- PrintConv => [{
2130
- 1 => 'Vivid',
2131
- 2 => 'Natural',
2132
- 3 => 'Muted',
2133
- 4 => 'Portrait',
2134
- 5 => 'i-Enhance', #11
2135
- 6 => 'e-Portrait', #23
2136
- 7 => 'Color Creator', #23
2137
- 9 => 'Color Profile 1', #23
2138
- 10 => 'Color Profile 2', #23
2139
- 11 => 'Color Profile 3', #23
2140
- 12 => 'Monochrome Profile 1', #23
2141
- 13 => 'Monochrome Profile 2', #23
2142
- 14 => 'Monochrome Profile 3', #23
2143
- 256 => 'Monotone',
2144
- 512 => 'Sepia',
2145
- }],
2146
- },
2147
- 0x521 => { #6
2148
- Name => 'PictureModeSaturation',
2149
- Writable => 'int16s',
2150
- Count => 3,
2151
- Notes => 'value, min, max',
2152
- PrintConv => 'my @v=split " ",$val; "$v[0] (min $v[1], max $v[2])"',
2153
- PrintConvInv => '$val=~tr/-0-9 //dc;$val',
2154
- },
2155
- 0x522 => { #6
2156
- Name => 'PictureModeHue',
2157
- Writable => 'int16s',
2158
- Unknown => 1, # (needs verification)
2159
- },
2160
- 0x523 => { #6
2161
- Name => 'PictureModeContrast',
2162
- Writable => 'int16s',
2163
- Count => 3,
2164
- Notes => 'value, min, max',
2165
- PrintConv => 'my @v=split " ",$val; "$v[0] (min $v[1], max $v[2])"',
2166
- PrintConvInv => '$val=~tr/-0-9 //dc;$val',
2167
- },
2168
- 0x524 => { #6
2169
- Name => 'PictureModeSharpness',
2170
- # verified as the Sharpness setting in the Picture Mode menu for the E-410
2171
- Writable => 'int16s',
2172
- Count => 3,
2173
- Notes => 'value, min, max',
2174
- PrintConv => 'my @v=split " ",$val; "$v[0] (min $v[1], max $v[2])"',
2175
- PrintConvInv => '$val=~tr/-0-9 //dc;$val',
2176
- },
2177
- 0x525 => { #6
2178
- Name => 'PictureModeBWFilter',
2179
- Writable => 'int16s',
2180
- PrintConvColumns => 2,
2181
- PrintConv => {
2182
- 0 => 'n/a',
2183
- 1 => 'Neutral',
2184
- 2 => 'Yellow',
2185
- 3 => 'Orange',
2186
- 4 => 'Red',
2187
- 5 => 'Green',
2188
- },
2189
- },
2190
- 0x526 => { #6
2191
- Name => 'PictureModeTone',
2192
- Writable => 'int16s',
2193
- PrintConvColumns => 2,
2194
- PrintConv => {
2195
- 0 => 'n/a',
2196
- 1 => 'Neutral',
2197
- 2 => 'Sepia',
2198
- 3 => 'Blue',
2199
- 4 => 'Purple',
2200
- 5 => 'Green',
2201
- },
2202
- },
2203
- 0x527 => { #12
2204
- Name => 'NoiseFilter',
2205
- Writable => 'int16s',
2206
- Count => 3,
2207
- PrintConv => {
2208
- '0 0 0' => 'n/a', #PH (?)
2209
- '-2 -2 1' => 'Off',
2210
- '-1 -2 1' => 'Low',
2211
- '0 -2 1' => 'Standard',
2212
- '1 -2 1' => 'High',
2213
- },
2214
- },
2215
- 0x529 => { #PH
2216
- Name => 'ArtFilter',
2217
- Writable => 'int16u',
2218
- Count => 4,
2219
- PrintConvColumns => 2,
2220
- PrintConv => [ \%filters ],
2221
- },
2222
- 0x52c => { #PH
2223
- Name => 'MagicFilter',
2224
- Writable => 'int16u',
2225
- Count => 4, # (2nd number is 0, 1280 or 1792, 3rd/4th are 0)
2226
- # (1792 observed for E-5 Gentle Sepia and XZ-1 Dramatic Tone)
2227
- PrintConvColumns => 2,
2228
- PrintConv => [ \%filters ],
2229
- },
2230
- 0x52d => { #11
2231
- Name => 'PictureModeEffect',
2232
- Writable => 'int16s',
2233
- Count => 3,
2234
- PrintConv => {
2235
- '0 0 0' => 'n/a', #PH (?)
2236
- '-1 -1 1' => 'Low',
2237
- '0 -1 1' => 'Standard',
2238
- '1 -1 1' => 'High',
2239
- },
2240
- },
2241
- 0x52e => { #11/PH
2242
- Name => 'ToneLevel',
2243
- PrintConv => [
2244
- \%toneLevelType,
2245
- undef, # (highlights value)
2246
- undef, # (highlights min)
2247
- undef, # (highlights max)
2248
- \%toneLevelType,
2249
- undef, # (shadows value)
2250
- undef, # (shadows min)
2251
- undef, # (shadows max)
2252
- \%toneLevelType,
2253
- undef, # (midtones value)
2254
- undef, # (midtones min)
2255
- undef, # (midtones max)
2256
- \%toneLevelType,
2257
- undef,
2258
- undef,
2259
- undef,
2260
- \%toneLevelType,
2261
- undef,
2262
- undef,
2263
- undef,
2264
- \%toneLevelType,
2265
- undef,
2266
- undef,
2267
- undef,
2268
- \%toneLevelType,
2269
- undef,
2270
- undef,
2271
- undef,
2272
- ]
2273
- },
2274
- 0x52f => { #PH
2275
- Name => 'ArtFilterEffect',
2276
- Writable => 'int16u',
2277
- Count => 20,
2278
- PrintHex => 1,
2279
- PrintConvColumns => 2,
2280
- PrintConv => [
2281
- \%filters,
2282
- undef,
2283
- undef,
2284
- '"Partial Color $val"', #23
2285
- { # there are 5 available art filter effects for the E-PL3...
2286
- 0x0000 => 'No Effect',
2287
- 0x8010 => 'Star Light',
2288
- 0x8020 => 'Pin Hole',
2289
- 0x8030 => 'Frame',
2290
- 0x8040 => 'Soft Focus',
2291
- 0x8050 => 'White Edge',
2292
- 0x8060 => 'B&W', # (NC - E-PL2 with "Grainy Film" filter)
2293
- 0x8080 => 'Blur Top and Bottom', #23
2294
- 0x8081 => 'Blur Left and Right', #23
2295
- # (E-PL2 also has "Pict. Tone" effect)
2296
- },
2297
- undef,
2298
- { #23
2299
- 0 => 'No Color Filter',
2300
- 1 => 'Yellow Color Filter',
2301
- 2 => 'Orange Color Filter',
2302
- 3 => 'Red Color Filter',
2303
- 4 => 'Green Color Filter',
2304
- },
2305
- ],
2306
- },
2307
- 0x532 => { #23
2308
- Name => 'ColorCreatorEffect',
2309
- Writable => 'int16s',
2310
- Count => 6,
2311
- PrintConv => [
2312
- '"Color $val"',
2313
- undef, # (Color min)
2314
- undef, # (Color max)
2315
- '"Strength $val"',
2316
- undef, # (Strength min)
2317
- undef, # (Strength max)
2318
- ],
2319
- },
2320
- 0x537 => { #23
2321
- Name => 'MonochromeProfileSettings',
2322
- Writable => 'int16s',
2323
- Count => 6,
2324
- PrintConv => [
2325
- {
2326
- 0 => 'No Filter',
2327
- 1 => 'Yellow Filter',
2328
- 2 => 'Orange Filter',
2329
- 3 => 'Red Filter',
2330
- 4 => 'Magenta Filter',
2331
- 5 => 'Blue Filter',
2332
- 6 => 'Cyan Filter',
2333
- 7 => 'Green Filter',
2334
- 8 => 'Yellow-green Filter',
2335
- },
2336
- undef, # (Filter number min)
2337
- undef, # (Filter number max)
2338
- '"Strength $val"',
2339
- undef, # (Strength min)
2340
- undef, # (Strength max)
2341
- ],
2342
- },
2343
- 0x538 => { #23
2344
- Name => 'FilmGrainEffect',
2345
- Writable => 'int16s',
2346
- PrintConv => {
2347
- 0 => 'Off',
2348
- 1 => 'Low',
2349
- 2 => 'Medium',
2350
- 3 => 'High',
2351
- },
2352
- },
2353
- 0x539 => { #23
2354
- Name => 'ColorProfileSettings',
2355
- Writable => 'int16s',
2356
- Count => 14,
2357
- PrintConv => [
2358
- '"Min $val"',
2359
- '"Max $val"',
2360
- '"Yellow $val"',
2361
- '"Orange $val"',
2362
- '"Orange-red $val"',
2363
- '"Red $val"',
2364
- '"Magenta $val"',
2365
- '"Violet $val"',
2366
- '"Blue $val"',
2367
- '"Blue-cyan $val"',
2368
- '"Cyan $val"',
2369
- '"Green-cyan $val"',
2370
- '"Green $val"',
2371
- '"Yellow-green $val"',
2372
- ],
2373
- },
2374
- 0x53a => { #23
2375
- Name => 'MonochromeVignetting',
2376
- Writable => 'int16s',
2377
- Notes => '-5 to +5: positive is white vignetting, negative is black vignetting',
2378
- },
2379
- 0x53b => { #23
2380
- Name => 'MonochromeColor',
2381
- Writable => 'int16s',
2382
- PrintConv => {
2383
- 0 => '(none)',
2384
- 1 => 'Normal',
2385
- 2 => 'Sepia',
2386
- 3 => 'Blue',
2387
- 4 => 'Purple',
2388
- 5 => 'Green',
2389
- },
2390
- },
2391
- 0x600 => { #PH/4
2392
- Name => 'DriveMode',
2393
- Writable => 'int16u',
2394
- Count => -1,
2395
- Notes => '2 or 3 numbers: 1. Mode, 2. Shot number, 3. Mode bits',
2396
- PrintConv => q{
2397
- my ($a,$b,$c) = split ' ',$val;
2398
- return 'Single Shot' unless $a;
2399
- if ($a == 5 and defined $c) {
2400
- $a = DecodeBits($c, { #6
2401
- 0 => 'AE',
2402
- 1 => 'WB',
2403
- 2 => 'FL',
2404
- 3 => 'MF',
2405
- 6 => 'Focus', #PH
2406
- }) . ' Bracketing';
2407
- $a =~ s/, /+/g;
2408
- } else {
2409
- my %a = (
2410
- 1 => 'Continuous Shooting',
2411
- 2 => 'Exposure Bracketing',
2412
- 3 => 'White Balance Bracketing',
2413
- 4 => 'Exposure+WB Bracketing', #6
2414
- );
2415
- $a = $a{$a} || "Unknown ($a)";
2416
- }
2417
- return "$a, Shot $b";
2418
- },
2419
- },
2420
- 0x601 => { #6
2421
- Name => 'PanoramaMode',
2422
- Writable => 'int16u',
2423
- Notes => '2 numbers: 1. Mode, 2. Shot number',
2424
- PrintConv => q{
2425
- my ($a,$b) = split ' ',$val;
2426
- return 'Off' unless $a;
2427
- my %a = (
2428
- 1 => 'Left to Right',
2429
- 2 => 'Right to Left',
2430
- 3 => 'Bottom to Top',
2431
- 4 => 'Top to Bottom',
2432
- );
2433
- return ($a{$a} || "Unknown ($a)") . ', Shot ' . $b;
2434
- },
2435
- },
2436
- 0x603 => { #PH/4
2437
- Name => 'ImageQuality2',
2438
- Writable => 'int16u',
2439
- PrintConv => {
2440
- 1 => 'SQ',
2441
- 2 => 'HQ',
2442
- 3 => 'SHQ',
2443
- 4 => 'RAW',
2444
- 5 => 'SQ (5)', # (E-500)
2445
- },
2446
- },
2447
- 0x604 => { #PH
2448
- Name => 'ImageStabilization',
2449
- Writable => 'int32u',
2450
- DataMember => 'ImageStabilization',
2451
- RawConv => '$$self{ImageStabilization} = $val',
2452
- PrintConv => {
2453
- 0 => 'Off',
2454
- 1 => 'On, Mode 1',
2455
- 2 => 'On, Mode 2',
2456
- 3 => 'On, Mode 3',
2457
- 4 => 'On, Mode 4', # (NC, E-P5)
2458
- },
2459
- },
2460
- 0x804 => { #PH (E-M1 with firmware update)
2461
- Name => 'StackedImage',
2462
- Writable => 'int32u',
2463
- Count => 2,
2464
- PrintConv => {
2465
- '0 0' => 'No',
2466
- '9 8' => 'Focus-stacked (8 images)',
2467
- },
2468
- },
2469
- 0x900 => { #11
2470
- Name => 'ManometerPressure',
2471
- Writable => 'int16u',
2472
- ValueConv => '$val / 10',
2473
- ValueConvInv => '$val * 10',
2474
- PrintConv => '"$val kPa"',
2475
- PrintConvInv => '$val=~s/ ?kPa//i; $val',
2476
- },
2477
- 0x901 => { #PH (u770SW)
2478
- # 2 numbers: 1st looks like meters above sea level, 2nd is usually 3x the 1st (feet?)
2479
- Name => 'ManometerReading',
2480
- Writable => 'int32s',
2481
- Count => 2,
2482
- ValueConv => 'my @a=split(" ",$val); $_ /= 10 foreach @a; "@a"',
2483
- ValueConvInv => 'my @a=split(" ",$val); $_ *= 10 foreach @a; "@a"',
2484
- PrintConv => '$val=~s/(\S+) (\S+)/$1 m, $2 ft/; $val',
2485
- PrintConvInv => '$val=~s/ ?(m|ft)//gi; $val',
2486
- },
2487
- 0x902 => { #11
2488
- Name => 'ExtendedWBDetect',
2489
- Writable => 'int16u',
2490
- PrintConv => \%offOn,
2491
- },
2492
- 0x903 => { #11
2493
- Name => 'RollAngle',
2494
- Notes => 'converted to degrees of clockwise camera rotation',
2495
- Writable => 'int16s',
2496
- Count => 2, # (second value is 0 if level gauge is off)
2497
- # negate to express as clockwise rotation
2498
- ValueConv => '$val=~s/ 1$// ? -$val/10 : "n/a"',
2499
- ValueConvInv => 'IsFloat($val) ? sprintf("%.0f 1",-$val*10) : "0 0"',
2500
- },
2501
- 0x904 => { #11
2502
- Name => 'PitchAngle',
2503
- Notes => 'converted to degrees of upward camera tilt',
2504
- Writable => 'int16s',
2505
- Count => 2, # (second value is 0 if level gauge is off)
2506
- ValueConv => '$val =~ s/ 1$// ? $val / 10 : "n/a"',
2507
- ValueConvInv => 'IsFloat($val) ? sprintf("%.0f 1",$val*10) : "0 0"',
2508
- },
2509
- 0x908 => { #PH (NC, E-M1)
2510
- Name => 'DateTimeUTC',
2511
- Writable => 'string',
2512
- Groups => { 2 => 'Time' },
2513
- Shift => 'Time',
2514
- PrintConv => '$self->ConvertDateTime($val)',
2515
- PrintConvInv => '$self->InverseDateTime($val,undef,1)',
2516
- },
2517
- );
2518
-
2519
- # Olympus RAW processing IFD (ref 6)
2520
- %Image::ExifTool::Olympus::RawDevelopment = (
2521
- WRITE_PROC => \&Image::ExifTool::Exif::WriteExif,
2522
- CHECK_PROC => \&Image::ExifTool::Exif::CheckExif,
2523
- WRITABLE => 1,
2524
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
2525
- 0x000 => { #PH
2526
- Name => 'RawDevVersion',
2527
- Writable => 'undef',
2528
- RawConv => '$val=~s/\0+$//; $val', # (may be null terminated)
2529
- Count => 4,
2530
- },
2531
- 0x100 => { Name => 'RawDevExposureBiasValue', Writable => 'rational64s' },
2532
- 0x101 => { Name => 'RawDevWhiteBalanceValue', Writable => 'int16u' },
2533
- 0x102 => { Name => 'RawDevWBFineAdjustment', Writable => 'int16s' },
2534
- 0x103 => { Name => 'RawDevGrayPoint', Writable => 'int16u', Count => 3 },
2535
- 0x104 => { Name => 'RawDevSaturationEmphasis', Writable => 'int16s', Count => 3 },
2536
- 0x105 => { Name => 'RawDevMemoryColorEmphasis', Writable => 'int16u' },
2537
- 0x106 => { Name => 'RawDevContrastValue', Writable => 'int16s', Count => 3 },
2538
- 0x107 => { Name => 'RawDevSharpnessValue', Writable => 'int16s', Count => 3 },
2539
- 0x108 => {
2540
- Name => 'RawDevColorSpace',
2541
- Writable => 'int16u',
2542
- PrintConv => { #11
2543
- 0 => 'sRGB',
2544
- 1 => 'Adobe RGB',
2545
- 2 => 'Pro Photo RGB',
2546
- },
2547
- },
2548
- 0x109 => {
2549
- Name => 'RawDevEngine',
2550
- Writable => 'int16u',
2551
- PrintConv => { #11
2552
- 0 => 'High Speed',
2553
- 1 => 'High Function',
2554
- 2 => 'Advanced High Speed',
2555
- 3 => 'Advanced High Function',
2556
- },
2557
- },
2558
- 0x10a => {
2559
- Name => 'RawDevNoiseReduction',
2560
- Writable => 'int16u',
2561
- PrintConv => { #11
2562
- 0 => '(none)',
2563
- BITMASK => {
2564
- 0 => 'Noise Reduction',
2565
- 1 => 'Noise Filter',
2566
- 2 => 'Noise Filter (ISO Boost)',
2567
- },
2568
- },
2569
- },
2570
- 0x10b => {
2571
- Name => 'RawDevEditStatus',
2572
- Writable => 'int16u',
2573
- PrintConv => { #11
2574
- 0 => 'Original',
2575
- 1 => 'Edited (Landscape)',
2576
- 6 => 'Edited (Portrait)',
2577
- 8 => 'Edited (Portrait)',
2578
- },
2579
- },
2580
- 0x10c => {
2581
- Name => 'RawDevSettings',
2582
- Writable => 'int16u',
2583
- PrintConv => { #11
2584
- 0 => '(none)',
2585
- BITMASK => {
2586
- 0 => 'WB Color Temp',
2587
- 1 => 'WB Gray Point',
2588
- 2 => 'Saturation',
2589
- 3 => 'Contrast',
2590
- 4 => 'Sharpness',
2591
- 5 => 'Color Space',
2592
- 6 => 'High Function',
2593
- 7 => 'Noise Reduction',
2594
- },
2595
- },
2596
- },
2597
- );
2598
-
2599
- # Olympus RAW processing B IFD (ref 11)
2600
- %Image::ExifTool::Olympus::RawDevelopment2 = (
2601
- WRITE_PROC => \&Image::ExifTool::Exif::WriteExif,
2602
- CHECK_PROC => \&Image::ExifTool::Exif::CheckExif,
2603
- WRITABLE => 1,
2604
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
2605
- 0x000 => {
2606
- Name => 'RawDevVersion',
2607
- Writable => 'undef',
2608
- RawConv => '$val=~s/\0+$//; $val', # (may be null terminated)
2609
- Count => 4,
2610
- },
2611
- 0x100 => { Name => 'RawDevExposureBiasValue', Writable => 'rational64s' },
2612
- 0x101 => {
2613
- Name => 'RawDevWhiteBalance',
2614
- Writable => 'int16u',
2615
- PrintConv => {
2616
- 1 => 'Color Temperature',
2617
- 2 => 'Gray Point',
2618
- },
2619
- },
2620
- 0x102 => { Name => 'RawDevWhiteBalanceValue', Writable => 'int16u' },
2621
- 0x103 => { Name => 'RawDevWBFineAdjustment', Writable => 'int16s' },
2622
- 0x104 => { Name => 'RawDevGrayPoint', Writable => 'int16u', Count => 3 },
2623
- 0x105 => { Name => 'RawDevContrastValue', Writable => 'int16s', Count => 3 },
2624
- 0x106 => { Name => 'RawDevSharpnessValue', Writable => 'int16s', Count => 3 },
2625
- 0x107 => { Name => 'RawDevSaturationEmphasis', Writable => 'int16s', Count => 3 },
2626
- 0x108 => { Name => 'RawDevMemoryColorEmphasis', Writable => 'int16u' },
2627
- 0x109 => {
2628
- Name => 'RawDevColorSpace',
2629
- Writable => 'int16u',
2630
- PrintConv => {
2631
- 0 => 'sRGB',
2632
- 1 => 'Adobe RGB',
2633
- 2 => 'Pro Photo RGB',
2634
- },
2635
- },
2636
- 0x10a => {
2637
- Name => 'RawDevNoiseReduction',
2638
- Writable => 'int16u',
2639
- PrintConv => {
2640
- 0 => '(none)',
2641
- BITMASK => {
2642
- 0 => 'Noise Reduction',
2643
- 1 => 'Noise Filter',
2644
- 2 => 'Noise Filter (ISO Boost)',
2645
- },
2646
- },
2647
- },
2648
- 0x10b => {
2649
- Name => 'RawDevEngine',
2650
- Writable => 'int16u',
2651
- PrintConv => {
2652
- 0 => 'High Speed',
2653
- 1 => 'High Function',
2654
- },
2655
- },
2656
- 0x10c => {
2657
- Name => 'RawDevPictureMode',
2658
- Writable => 'int16u',
2659
- PrintConv => {
2660
- 1 => 'Vivid',
2661
- 2 => 'Natural',
2662
- 3 => 'Muted',
2663
- 256 => 'Monotone',
2664
- 512 => 'Sepia',
2665
- },
2666
- },
2667
- 0x10d => { Name => 'RawDevPMSaturation', Writable => 'int16s', Count => 3 },
2668
- 0x10e => { Name => 'RawDevPMContrast', Writable => 'int16s', Count => 3 },
2669
- 0x10f => { Name => 'RawDevPMSharpness', Writable => 'int16s', Count => 3 },
2670
- 0x110 => {
2671
- Name => 'RawDevPM_BWFilter',
2672
- Writable => 'int16u',
2673
- PrintConv => {
2674
- 1 => 'Neutral',
2675
- 2 => 'Yellow',
2676
- 3 => 'Orange',
2677
- 4 => 'Red',
2678
- 5 => 'Green',
2679
- },
2680
- },
2681
- 0x111 => {
2682
- Name => 'RawDevPMPictureTone',
2683
- Writable => 'int16u',
2684
- PrintConv => {
2685
- 1 => 'Neutral',
2686
- 2 => 'Sepia',
2687
- 3 => 'Blue',
2688
- 4 => 'Purple',
2689
- 5 => 'Green',
2690
- },
2691
- },
2692
- 0x112 => { Name => 'RawDevGradation', Writable => 'int16s', Count => 3 },
2693
- 0x113 => { Name => 'RawDevSaturation3', Writable => 'int16s', Count => 3 }, #(NC Count)
2694
- 0x119 => { Name => 'RawDevAutoGradation', Writable => 'int16u', PrintConv => \%offOn },
2695
- 0x120 => { Name => 'RawDevPMNoiseFilter', Writable => 'int16u' }, #(NC format)
2696
- 0x121 => { #PH (E-P5)
2697
- Name => 'RawDevArtFilter',
2698
- Writable => 'int16u',
2699
- Count => 4,
2700
- PrintConvColumns => 2,
2701
- PrintConv => [ \%filters ],
2702
- },
2703
- );
2704
-
2705
- # Olympus Image processing IFD
2706
- %Image::ExifTool::Olympus::ImageProcessing = (
2707
- WRITE_PROC => \&Image::ExifTool::Exif::WriteExif,
2708
- CHECK_PROC => \&Image::ExifTool::Exif::CheckExif,
2709
- WRITABLE => 1,
2710
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
2711
- 0x000 => { #PH
2712
- Name => 'ImageProcessingVersion',
2713
- Writable => 'undef',
2714
- RawConv => '$val=~s/\0+$//; $val', # (may be null terminated)
2715
- Count => 4,
2716
- },
2717
- 0x100 => { Name => 'WB_RBLevels', Writable => 'int16u', Count => 2 }, #6
2718
- # 0x101 - in-camera AutoWB unless it is all 0's or all 256's (ref IB)
2719
- 0x102 => { Name => 'WB_RBLevels3000K', Writable => 'int16u', Count => 2 }, #11
2720
- 0x103 => { Name => 'WB_RBLevels3300K', Writable => 'int16u', Count => 2 }, #11
2721
- 0x104 => { Name => 'WB_RBLevels3600K', Writable => 'int16u', Count => 2 }, #11
2722
- 0x105 => { Name => 'WB_RBLevels3900K', Writable => 'int16u', Count => 2 }, #11
2723
- 0x106 => { Name => 'WB_RBLevels4000K', Writable => 'int16u', Count => 2 }, #11
2724
- 0x107 => { Name => 'WB_RBLevels4300K', Writable => 'int16u', Count => 2 }, #11
2725
- 0x108 => { Name => 'WB_RBLevels4500K', Writable => 'int16u', Count => 2 }, #11
2726
- 0x109 => { Name => 'WB_RBLevels4800K', Writable => 'int16u', Count => 2 }, #11
2727
- 0x10a => { Name => 'WB_RBLevels5300K', Writable => 'int16u', Count => 2 }, #11
2728
- 0x10b => { Name => 'WB_RBLevels6000K', Writable => 'int16u', Count => 2 }, #11
2729
- 0x10c => { Name => 'WB_RBLevels6600K', Writable => 'int16u', Count => 2 }, #11
2730
- 0x10d => { Name => 'WB_RBLevels7500K', Writable => 'int16u', Count => 2 }, #11
2731
- 0x10e => { Name => 'WB_RBLevelsCWB1', Writable => 'int16u', Count => 2 }, #11
2732
- 0x10f => { Name => 'WB_RBLevelsCWB2', Writable => 'int16u', Count => 2 }, #11
2733
- 0x110 => { Name => 'WB_RBLevelsCWB3', Writable => 'int16u', Count => 2 }, #11
2734
- 0x111 => { Name => 'WB_RBLevelsCWB4', Writable => 'int16u', Count => 2 }, #11
2735
- 0x113 => { Name => 'WB_GLevel3000K', Writable => 'int16u' }, #11
2736
- 0x114 => { Name => 'WB_GLevel3300K', Writable => 'int16u' }, #11
2737
- 0x115 => { Name => 'WB_GLevel3600K', Writable => 'int16u' }, #11
2738
- 0x116 => { Name => 'WB_GLevel3900K', Writable => 'int16u' }, #11
2739
- 0x117 => { Name => 'WB_GLevel4000K', Writable => 'int16u' }, #11
2740
- 0x118 => { Name => 'WB_GLevel4300K', Writable => 'int16u' }, #11
2741
- 0x119 => { Name => 'WB_GLevel4500K', Writable => 'int16u' }, #11
2742
- 0x11a => { Name => 'WB_GLevel4800K', Writable => 'int16u' }, #11
2743
- 0x11b => { Name => 'WB_GLevel5300K', Writable => 'int16u' }, #11
2744
- 0x11c => { Name => 'WB_GLevel6000K', Writable => 'int16u' }, #11
2745
- 0x11d => { Name => 'WB_GLevel6600K', Writable => 'int16u' }, #11
2746
- 0x11e => { Name => 'WB_GLevel7500K', Writable => 'int16u' }, #11
2747
- 0x11f => { Name => 'WB_GLevel', Writable => 'int16u' }, #11
2748
- # 0x121 = WB preset for flash (about 6000K) (ref IB)
2749
- # 0x125 = WB preset for underwater (ref IB)
2750
- 0x200 => { #6
2751
- Name => 'ColorMatrix',
2752
- Writable => 'int16u',
2753
- Format => 'int16s',
2754
- Count => 9,
2755
- },
2756
- # color matrices (ref 11):
2757
- # 0x0201-0x020d are sRGB color matrices
2758
- # 0x020e-0x021a are Adobe RGB color matrices
2759
- # 0x021b-0x0227 are ProPhoto RGB color matrices
2760
- # 0x0228 and 0x0229 are ColorMatrix for E-330
2761
- # 0x0250-0x0252 are sRGB color matrices
2762
- # 0x0253-0x0255 are Adobe RGB color matrices
2763
- # 0x0256-0x0258 are ProPhoto RGB color matrices
2764
- 0x300 => { Name => 'Enhancer', Writable => 'int16u' }, #11
2765
- 0x301 => { Name => 'EnhancerValues', Writable => 'int16u', Count => 7 }, #11
2766
- 0x310 => { Name => 'CoringFilter', Writable => 'int16u' }, #11
2767
- 0x311 => { Name => 'CoringValues', Writable => 'int16u', Count => 7 }, #11
2768
- 0x600 => { Name => 'BlackLevel2', Writable => 'int16u', Count => 4 }, #11
2769
- 0x610 => { Name => 'GainBase', Writable => 'int16u' }, #11
2770
- 0x611 => { Name => 'ValidBits', Writable => 'int16u', Count => 2 }, #4/6
2771
- 0x612 => { Name => 'CropLeft', Writable => 'int16u', Count => 2 }, #11
2772
- 0x613 => { Name => 'CropTop', Writable => 'int16u', Count => 2 }, #11
2773
- 0x614 => { Name => 'CropWidth', Writable => 'int32u' }, #PH/11
2774
- 0x615 => { Name => 'CropHeight', Writable => 'int32u' }, #PH/11
2775
- 0x635 => { #PH (data starts with "CMIO\x01\0")
2776
- Name => 'UnknownBlock1',
2777
- Writable => 'undef',
2778
- Notes => 'large unknown data block in ORF images but not JPG images',
2779
- # 'Drop' because too large for APP1 in JPEG images
2780
- Flags => [ 'Unknown', 'Binary', 'Drop' ],
2781
- },
2782
- 0x636 => { #PH (data starts with "CMIO\x01\0")
2783
- Name => 'UnknownBlock2',
2784
- Writable => 'undef',
2785
- Notes => 'large unknown data block in ORF images but not JPG images',
2786
- # 'Drop' because too large for APP1 in JPEG images
2787
- Flags => [ 'Unknown', 'Binary', 'Drop' ],
2788
- },
2789
- # 0x800 LensDistortionParams, float[9] (ref 11)
2790
- # 0x801 LensShadingParams, int16u[16] (ref 11)
2791
- 0x0805 => { #IB
2792
- Name => 'SensorCalibration',
2793
- Notes => '2 numbers: 1. recommended maximum, 2. calibration midpoint',
2794
- Writable => 'int16s',
2795
- Count => 2,
2796
- },
2797
- # 0x1010-0x1012 are the processing options used in camera or in
2798
- # Olympus software, which 0x050a-0x050c are in-camera only (ref 6)
2799
- 0x1010 => { #PH/4
2800
- Name => 'NoiseReduction2',
2801
- Writable => 'int16u',
2802
- PrintConv => {
2803
- 0 => '(none)',
2804
- BITMASK => {
2805
- 0 => 'Noise Reduction',
2806
- 1 => 'Noise Filter',
2807
- 2 => 'Noise Filter (ISO Boost)',
2808
- },
2809
- },
2810
- },
2811
- 0x1011 => { #6
2812
- Name => 'DistortionCorrection2',
2813
- Writable => 'int16u',
2814
- PrintConv => \%offOn,
2815
- },
2816
- 0x1012 => { #PH/4
2817
- Name => 'ShadingCompensation2',
2818
- Writable => 'int16u',
2819
- PrintConv => \%offOn,
2820
- },
2821
- 0x101c => { #11
2822
- Name => 'MultipleExposureMode',
2823
- Writable => 'int16u',
2824
- Count => 2,
2825
- PrintConv => [{
2826
- 0 => 'Off',
2827
- 2 => 'On (2 frames)',
2828
- 3 => 'On (3 frames)',
2829
- }],
2830
- },
2831
- 0x1103 => { #PH
2832
- Name => 'UnknownBlock3',
2833
- Writable => 'undef',
2834
- Notes => 'large unknown data block in ORF images but not JPG images',
2835
- # 'Drop' because too large for APP1 in JPEG images
2836
- Flags => [ 'Unknown', 'Binary', 'Drop' ],
2837
- },
2838
- 0x1104 => { #PH (overlaps data for 0x1103 in E-M5 ORF images)
2839
- Name => 'UnknownBlock4',
2840
- Writable => 'undef',
2841
- Notes => 'large unknown data block in ORF images but not JPG images',
2842
- # 'Drop' because too large for APP1 in JPEG images
2843
- Flags => [ 'Unknown', 'Binary', 'Drop' ],
2844
- },
2845
- 0x1112 => { #11
2846
- Name => 'AspectRatio',
2847
- Writable => 'int8u',
2848
- Count => 2,
2849
- PrintConv => {
2850
- # '0 0' - have seen this with a 16:9 XZ-1 image - PH
2851
- '1 1' => '4:3',
2852
- '1 4' => '1:1', #PH (E-P5 Storyboard effect, does this indicate 4:3 converted to 6:6?)
2853
- '2 1' => '3:2 (RAW)', #forum6285
2854
- '2 2' => '3:2',
2855
- '3 1' => '16:9 (RAW)', #forum6285
2856
- '3 3' => '16:9',
2857
- '4 1' => '1:1 (RAW)', #forum6285
2858
- '4 4' => '6:6',
2859
- '5 5' => '5:4',
2860
- '6 6' => '7:6',
2861
- '7 7' => '6:5',
2862
- '8 8' => '7:5',
2863
- '9 1' => '3:4 (RAW)', #forum6285
2864
- '9 9' => '3:4',
2865
- },
2866
- },
2867
- 0x1113 => { Name => 'AspectFrame', Writable => 'int16u', Count => 4 }, #11
2868
- 0x1200 => { #11/PH
2869
- Name => 'FacesDetected',
2870
- Writable => 'int32u',
2871
- Count => -1,
2872
- Notes => '2 or 3 values',
2873
- },
2874
- 0x1201 => { #11/PH
2875
- Name => 'FaceDetectArea',
2876
- Writable => 'int16s',
2877
- Count => -1, # (varies with model)
2878
- Binary => 1, # (too long)
2879
- Notes => q{
2880
- for models with 2 values in FacesDetected this gives X/Y coordinates in the
2881
- FaceDetectFrame for all 4 corners of the face rectangle. For models with 3
2882
- values in FacesDetected this gives X/Y coordinates, size and rotation angle
2883
- of the face detect square
2884
- },
2885
- },
2886
- 0x1202 => { Name => 'MaxFaces', Writable => 'int32u', Count => 3 }, #PH
2887
- 0x1203 => { #PH
2888
- Name => 'FaceDetectFrameSize',
2889
- Writable => 'int16u',
2890
- Count => 6,
2891
- Notes => 'width/height of the full face detect frame',
2892
- },
2893
- 0x1207 => { #PH
2894
- Name => 'FaceDetectFrameCrop',
2895
- Writable => 'int16s',
2896
- Count => 12,
2897
- Notes => 'X/Y offset and width/height of the cropped face detect frame',
2898
- },
2899
- 0x1306 => { #PH (NC, E-M1)
2900
- Name => 'CameraTemperature',
2901
- Writable => 'int16u',
2902
- Format => 'int16s', #(NC)
2903
- ValueConv => '$val ? $val : undef', # zero for some models (how to differentiate from 0 C?)
2904
- Notes => 'this seems to be in degrees C only for some models',
2905
- },
2906
- 0x1900 => { #23
2907
- Name => 'KeystoneCompensation',
2908
- Writable => 'int8u',
2909
- Count => 2,
2910
- PrintConv => {
2911
- '0 0' => 'Off',
2912
- '0 1' => 'On',
2913
- },
2914
- },
2915
- 0x1901 => { #23
2916
- Name => 'KeystoneDirection',
2917
- Writable => 'int8u',
2918
- Count => 2,
2919
- PrintConv => {
2920
- 0 => 'Vertical',
2921
- 1 => 'Horizontal',
2922
- },
2923
- },
2924
- # 0x1905 - focal length (PH, E-M1)
2925
- 0x1906 => { #23
2926
- Name => 'KeystoneValue',
2927
- Writable => 'int16s',
2928
- Count => 3,
2929
- # (use in conjunction with KeystoneDirection, -ve is Top or Right, +ve is Bottom or Left)
2930
- Notes => '3 numbers: 1. Keystone Value, 2. Min, 3. Max',
2931
- },
2932
- );
2933
-
2934
- # Olympus Focus Info IFD
2935
- %Image::ExifTool::Olympus::FocusInfo = (
2936
- WRITE_PROC => \&Image::ExifTool::Exif::WriteExif,
2937
- CHECK_PROC => \&Image::ExifTool::Exif::CheckExif,
2938
- WRITABLE => 1,
2939
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
2940
- 0x000 => { #PH
2941
- Name => 'FocusInfoVersion',
2942
- Writable => 'undef',
2943
- RawConv => '$val=~s/\0+$//; $val', # (may be null terminated)
2944
- Count => 4,
2945
- },
2946
- 0x209 => { #PH/4
2947
- Name => 'AutoFocus',
2948
- Writable => 'int16u',
2949
- PrintConv => \%offOn,
2950
- Unknown => 1, #6
2951
- },
2952
- 0x210 => { Name => 'SceneDetect', Writable => 'int16u' }, #11
2953
- 0x211 => { #11
2954
- Name => 'SceneArea',
2955
- Writable => 'int32u',
2956
- Count => 8,
2957
- Unknown => 1, # (numbers don't make much sense?)
2958
- },
2959
- 0x212 => { #11
2960
- Name => 'SceneDetectData',
2961
- Writable => 'int32u',
2962
- Count => 720,
2963
- Binary => 1,
2964
- Unknown => 1, # (but what does it mean?)
2965
- },
2966
- # 0x214 - int16u: normally 0, but 1 for E-M1 focus-bracketing, and have seen 1 and 256 at other times
2967
- 0x300 => { Name => 'ZoomStepCount', Writable => 'int16u' }, #6
2968
- 0x301 => { Name => 'FocusStepCount', Writable => 'int16u' }, #11
2969
- 0x303 => { Name => 'FocusStepInfinity', Writable => 'int16u' }, #11
2970
- 0x304 => { Name => 'FocusStepNear', Writable => 'int16u' }, #11
2971
- 0x305 => { #4
2972
- Name => 'FocusDistance',
2973
- Writable => 'rational64u',
2974
- # this rational value looks like it is in mm when the denominator is
2975
- # 1 (E-1), and cm when denominator is 10 (E-300), so if we ignore the
2976
- # denominator we are consistently in mm - PH
2977
- Format => 'int32u',
2978
- Count => 2,
2979
- ValueConv => q{
2980
- my ($a,$b) = split ' ',$val;
2981
- return 0 if $a == 0xffffffff;
2982
- return $a / 1000;
2983
- },
2984
- ValueConvInv => q{
2985
- return '4294967295 1' unless $val;
2986
- $val = int($val * 1000 + 0.5);
2987
- return "$val 1";
2988
- },
2989
- PrintConv => '$val ? "$val m" : "inf"',
2990
- PrintConvInv => '$val eq "inf" ? 0 : $val=~s/\s*m$//, $val',
2991
- },
2992
- 0x308 => [ # NEED A BETTER WAY TO DETERMINE WHICH MODELS USE WHICH ENCODING!
2993
- {
2994
- Name => 'AFPoint',
2995
- Condition => '$$self{Model} =~ /E-(3|5|30)\b/',
2996
- Writable => 'int16u',
2997
- PrintHex => 1,
2998
- # decoded by ref 6
2999
- Notes => q{
3000
- for the E-3, E-5 and E-30 the value is separated into 2 parts: low 5 bits
3001
- give AF point, upper bits give AF target selection mode
3002
- },
3003
- ValueConv => '($val & 0x1f) . " " . ($val & 0xffe0)',
3004
- ValueConvInv => 'my @v=split(" ",$val); @v == 2 ? $v[0] + $v[1] : $val',
3005
- PrintConvColumns => 2,
3006
- PrintConv => [
3007
- {
3008
- 0x00 => '(none)',
3009
- 0x01 => 'Top-left (horizontal)',
3010
- 0x02 => 'Top-center (horizontal)',
3011
- 0x03 => 'Top-right (horizontal)',
3012
- 0x04 => 'Left (horizontal)',
3013
- 0x05 => 'Mid-left (horizontal)',
3014
- 0x06 => 'Center (horizontal)',
3015
- 0x07 => 'Mid-right (horizontal)',
3016
- 0x08 => 'Right (horizontal)',
3017
- 0x09 => 'Bottom-left (horizontal)',
3018
- 0x0a => 'Bottom-center (horizontal)',
3019
- 0x0b => 'Bottom-right (horizontal)',
3020
- 0x0c => 'Top-left (vertical)',
3021
- 0x0d => 'Top-center (vertical)',
3022
- 0x0e => 'Top-right (vertical)',
3023
- 0x0f => 'Left (vertical)',
3024
- 0x10 => 'Mid-left (vertical)',
3025
- 0x11 => 'Center (vertical)',
3026
- 0x12 => 'Mid-right (vertical)',
3027
- 0x13 => 'Right (vertical)',
3028
- 0x14 => 'Bottom-left (vertical)',
3029
- 0x15 => 'Bottom-center (vertical)',
3030
- 0x16 => 'Bottom-right (vertical)',
3031
- 0x1f => 'n/a', #PH (NC, E-3)
3032
- },
3033
- {
3034
- 0x00 => 'Single Target',
3035
- 0x40 => 'All Target',
3036
- 0x80 => 'Dynamic Single Target',
3037
- 0xe0 => 'n/a', #PH (NC, E-3)
3038
- }
3039
- ],
3040
- },{ #PH (models with 7-point AF)
3041
- Name => 'AFPoint',
3042
- Condition => '$$self{Model} =~ /E-(520|600|620)\b/',
3043
- Notes => 'models with 7-point AF',
3044
- Writable => 'int16u',
3045
- PrintHex => 1,
3046
- ValueConv => '($val & 0x1f) . " " . ($val & 0xffe0)',
3047
- ValueConvInv => 'my @v=split(" ",$val); @v == 2 ? $v[0] + $v[1] : $val',
3048
- PrintConv => [
3049
- {
3050
- 0x00 => '(none)',
3051
- 0x01 => 'Center',
3052
- # need to fill this in...
3053
- },
3054
- {
3055
- 0x00 => 'Single Target',
3056
- 0x40 => 'All Target', # (guess)
3057
- },
3058
- ]
3059
- },{ #11
3060
- Name => 'AFPoint',
3061
- Writable => 'int16u',
3062
- Notes => 'other models',
3063
- RawConv => '($val or $$self{Model} ne "E-P1") ? $val : undef',
3064
- PrintConv => {
3065
- # (E-P1 always writes 0, maybe other models do too - PH)
3066
- 0 => 'Left (or n/a)',
3067
- 1 => 'Center (horizontal)', #6 (E-510)
3068
- 2 => 'Right',
3069
- 3 => 'Center (vertical)', #6 (E-510)
3070
- 255 => 'None',
3071
- },
3072
- }
3073
- ],
3074
- # 0x31a Continuous AF parameters?
3075
- 0x328 => { #PH
3076
- Name => 'AFInfo',
3077
- SubDirectory => { TagTable => 'Image::ExifTool::Olympus::AFInfo' },
3078
- },
3079
- # 0x1200-0x1209 Flash information:
3080
- 0x1201 => { #6
3081
- Name => 'ExternalFlash',
3082
- Writable => 'int16u',
3083
- Count => 2,
3084
- PrintConv => {
3085
- '0 0' => 'Off',
3086
- '1 0' => 'On',
3087
- },
3088
- },
3089
- 0x1203 => { #11
3090
- Name => 'ExternalFlashGuideNumber',
3091
- Writable => 'rational64s',
3092
- Unknown => 1, # (needs verification)
3093
- },
3094
- 0x1204 => { #11(reversed)/7
3095
- Name => 'ExternalFlashBounce',
3096
- Writable => 'int16u',
3097
- PrintConv => {
3098
- 0 => 'Bounce or Off',
3099
- 1 => 'Direct',
3100
- },
3101
- },
3102
- 0x1205 => { Name => 'ExternalFlashZoom', Writable => 'rational64u' }, #11 (ref converts to mm using table)
3103
- 0x1208 => { #6
3104
- Name => 'InternalFlash',
3105
- Writable => 'int16u',
3106
- Count => -1,
3107
- PrintConv => {
3108
- '0' => 'Off',
3109
- '1' => 'On',
3110
- '0 0' => 'Off',
3111
- '1 0' => 'On',
3112
- },
3113
- },
3114
- 0x1209 => { #6
3115
- Name => 'ManualFlash',
3116
- Writable => 'int16u',
3117
- Count => 2,
3118
- Notes => '2 numbers: 1. 0=Off, 1=On, 2. Flash strength',
3119
- PrintConv => q{
3120
- my ($a,$b) = split ' ',$val;
3121
- return 'Off' unless $a;
3122
- $b = ($b == 1) ? 'Full' : "1/$b";
3123
- return "On ($b strength)";
3124
- },
3125
- },
3126
- 0x120a => { #PH
3127
- Name => 'MacroLED',
3128
- Writable => 'int16u',
3129
- PrintConv => \%offOn,
3130
- },
3131
- 0x1500 => [{ #6
3132
- Name => 'SensorTemperature',
3133
- # (Stylus 1 stores values like "34 0 0")
3134
- Condition => '$$self{Model} =~ /E-(1|M5)\b/ || $count != 1',
3135
- Writable => 'int16s',
3136
- PrintConv => '$val=~s/ 0 0$//; "$val C"',
3137
- PrintConvInv => '$val=~s/ ?C$//; $val',
3138
- },{
3139
- Name => 'SensorTemperature',
3140
- Writable => 'int16s',
3141
- RawConv => '($val and $val ne "-32768") ? $val : undef', # ignore 0 and -32768
3142
- # ValueConv => '-2*(($val/135)**2)+55', #11
3143
- ValueConv => '84 - 3 * $val / 26', #http://u88.n24.queensu.ca/exiftool/forum/index.php/topic,5423.0.html
3144
- ValueConvInv => 'int((84 - $val) * 26 / 3 + 0.5)',
3145
- PrintConv => 'sprintf("%.1f C",$val)',
3146
- PrintConvInv => '$val=~s/ ?C$//; $val',
3147
- # data from test shots by Eric Sibert:
3148
- # E-510 E-620
3149
- # Raw Ambient Raw Ambient
3150
- # --- ------- --- -------
3151
- # 534 22.7 518 22.7
3152
- # 550 20.6 531 19.3
3153
- # 552 20.8 533 17.9
3154
- # 558 19.3 582 17.2
3155
- # 564 19.1 621 12.3
3156
- # 567 17.8 634 9.7
3157
- # 576 18.6 650 8.0
3158
- # 582 17.2 660 7.7
3159
- # 599 13.8 703 3.3
3160
- # 631 10.7 880 -20.6
3161
- # 642 12.4 880 -20.6
3162
- # 652 9.6 892 -24.4
3163
- # 692 5.2 892 -22.7
3164
- # 714 3.3
3165
- # 895 -19.8
3166
- # 895 -19.2
3167
- # 900 -21.7
3168
- }],
3169
- 0x1600 => { # ref http://fourthirdsphoto.com/vbb/showpost.php?p=107607&postcount=15
3170
- Name => 'ImageStabilization',
3171
- # (the other value is more reliable, so ignore this totally if the other exists)
3172
- Condition => 'not defined $$self{ImageStabilization}',
3173
- Writable => 'undef',
3174
- # if the first 4 bytes are non-zero, then bit 0x01 of byte 44
3175
- # gives the stabilization mode
3176
- PrintConv => q{
3177
- $val =~ /^\0{4}/ ? 'Off' : 'On, ' .
3178
- (unpack('x44C',$val) & 0x01 ? 'Mode 1' : 'Mode 2')
3179
- },
3180
- },
3181
- # 0x102a same as Subdir4-0x300
3182
- );
3183
-
3184
- # AF information (ref PH)
3185
- %Image::ExifTool::Olympus::AFInfo = (
3186
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
3187
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
3188
- FIRST_ENTRY => 0,
3189
- # 0x2a - int8u: ImagerAFMode? 0=Manual, 1=Auto
3190
- # 0x30 - int16u: AFAreaXPosition?
3191
- # 0x32 - int16u: AFAreaWidth? (202)
3192
- # 0x34 - int16u: AFAreaYPosition?
3193
- # 0x36 - int16u: AFAreaHeight? (50)
3194
- # (AF area positions above give the top-left coordinates of the AF area in the
3195
- # AF frame. Increasing Y is downwards, and the AF frame size is about 1280x256)
3196
- );
3197
-
3198
- # Olympus raw information tags (ref 6)
3199
- %Image::ExifTool::Olympus::RawInfo = (
3200
- WRITE_PROC => \&Image::ExifTool::Exif::WriteExif,
3201
- CHECK_PROC => \&Image::ExifTool::Exif::CheckExif,
3202
- NOTES => 'These tags are found only in ORF images of some models (eg. C8080WZ).',
3203
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
3204
- 0x000 => {
3205
- Name => 'RawInfoVersion',
3206
- Writable => 'undef',
3207
- RawConv => '$val=~s/\0+$//; $val', # (may be null terminated)
3208
- Count => 4,
3209
- },
3210
- 0x100 => { Name => 'WB_RBLevelsUsed', Writable => 'int16u', Count => 2 },
3211
- 0x110 => { Name => 'WB_RBLevelsAuto', Writable => 'int16u', Count => 2 },
3212
- 0x120 => { Name => 'WB_RBLevelsShade', Writable => 'int16u', Count => 2 },
3213
- 0x121 => { Name => 'WB_RBLevelsCloudy', Writable => 'int16u', Count => 2 },
3214
- 0x122 => { Name => 'WB_RBLevelsFineWeather', Writable => 'int16u', Count => 2 },
3215
- 0x123 => { Name => 'WB_RBLevelsTungsten', Writable => 'int16u', Count => 2 },
3216
- 0x124 => { Name => 'WB_RBLevelsEveningSunlight',Writable => 'int16u', Count => 2 },
3217
- 0x130 => { Name => 'WB_RBLevelsDaylightFluor', Writable => 'int16u', Count => 2 },
3218
- 0x131 => { Name => 'WB_RBLevelsDayWhiteFluor', Writable => 'int16u', Count => 2 },
3219
- 0x132 => { Name => 'WB_RBLevelsCoolWhiteFluor', Writable => 'int16u', Count => 2 },
3220
- 0x133 => { Name => 'WB_RBLevelsWhiteFluorescent',Writable => 'int16u', Count => 2 },
3221
- 0x200 => {
3222
- Name => 'ColorMatrix2',
3223
- Format => 'int16s',
3224
- Writable => 'int16u',
3225
- Count => 9,
3226
- },
3227
- # 0x240 => 'ColorMatrixDefault', ?
3228
- # 0x250 => 'ColorMatrixSaturation', ?
3229
- # 0x251 => 'ColorMatrixHue', ?
3230
- # 0x252 => 'ColorMatrixContrast', ?
3231
- # 0x300 => sharpness-related
3232
- # 0x301 => list of sharpness-related values
3233
- 0x310 => { Name => 'CoringFilter', Writable => 'int16u' },
3234
- 0x311 => { Name => 'CoringValues', Writable => 'int16u', Count => 11 },
3235
- 0x600 => { Name => 'BlackLevel2', Writable => 'int16u', Count => 4 },
3236
- 0x601 => {
3237
- Name => 'YCbCrCoefficients',
3238
- Notes => 'stored as int16u[6], but extracted as rational32u[3]',
3239
- Format => 'rational32u',
3240
- },
3241
- 0x611 => { Name => 'ValidPixelDepth', Writable => 'int16u', Count => 2 },
3242
- 0x612 => { Name => 'CropLeft', Writable => 'int16u' }, #11
3243
- 0x613 => { Name => 'CropTop', Writable => 'int16u' }, #11
3244
- 0x614 => { Name => 'CropWidth', Writable => 'int32u' },
3245
- 0x615 => { Name => 'CropHeight', Writable => 'int32u' },
3246
- 0x1000 => {
3247
- Name => 'LightSource',
3248
- Writable => 'int16u',
3249
- PrintConv => {
3250
- 0 => 'Unknown',
3251
- 16 => 'Shade',
3252
- 17 => 'Cloudy',
3253
- 18 => 'Fine Weather',
3254
- 20 => 'Tungsten (Incandescent)',
3255
- 22 => 'Evening Sunlight',
3256
- 33 => 'Daylight Fluorescent',
3257
- 34 => 'Day White Fluorescent',
3258
- 35 => 'Cool White Fluorescent',
3259
- 36 => 'White Fluorescent',
3260
- 256 => 'One Touch White Balance',
3261
- 512 => 'Custom 1-4',
3262
- },
3263
- },
3264
- # the following 5 tags all have 3 values: val, min, max
3265
- 0x1001 => { Name => 'WhiteBalanceComp', Writable => 'int16s', Count => 3 },
3266
- 0x1010 => { Name => 'SaturationSetting', Writable => 'int16s', Count => 3 },
3267
- 0x1011 => { Name => 'HueSetting', Writable => 'int16s', Count => 3 },
3268
- 0x1012 => { Name => 'ContrastSetting', Writable => 'int16s', Count => 3 },
3269
- 0x1013 => { Name => 'SharpnessSetting', Writable => 'int16s', Count => 3 },
3270
- # settings written by Camedia Master 4.x
3271
- 0x2000 => { Name => 'CMExposureCompensation', Writable => 'rational64s' },
3272
- 0x2001 => { Name => 'CMWhiteBalance', Writable => 'int16u' },
3273
- 0x2002 => { Name => 'CMWhiteBalanceComp', Writable => 'int16s' },
3274
- 0x2010 => { Name => 'CMWhiteBalanceGrayPoint', Writable => 'int16u', Count => 3 },
3275
- 0x2020 => { Name => 'CMSaturation', Writable => 'int16s', Count => 3 },
3276
- 0x2021 => { Name => 'CMHue', Writable => 'int16s', Count => 3 },
3277
- 0x2022 => { Name => 'CMContrast', Writable => 'int16s', Count => 3 },
3278
- 0x2023 => { Name => 'CMSharpness', Writable => 'int16s', Count => 3 },
3279
- );
3280
-
3281
- # Olympus unknown information tags
3282
- %Image::ExifTool::Olympus::UnknownInfo = (
3283
- WRITE_PROC => \&Image::ExifTool::Exif::WriteExif,
3284
- CHECK_PROC => \&Image::ExifTool::Exif::CheckExif,
3285
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
3286
- );
3287
-
3288
- # Tags found only in some FE models
3289
- %Image::ExifTool::Olympus::FETags = (
3290
- WRITE_PROC => \&Image::ExifTool::Exif::WriteExif,
3291
- CHECK_PROC => \&Image::ExifTool::Exif::CheckExif,
3292
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
3293
- NOTES => q{
3294
- Some FE models write a large number of tags here, but most of this
3295
- information remains unknown.
3296
- },
3297
- 0x0100 => {
3298
- Name => 'BodyFirmwareVersion',
3299
- Writable => 'string',
3300
- },
3301
- );
3302
-
3303
- # tags in Olympus QuickTime videos (ref PH)
3304
- # (similar information in Kodak,Minolta,Nikon,Olympus,Pentax and Sanyo videos)
3305
- %Image::ExifTool::Olympus::MOV1 = (
3306
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
3307
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
3308
- FIRST_ENTRY => 0,
3309
- NOTES => q{
3310
- This information is found in MOV videos from Olympus models such as the
3311
- D540Z, D595Z, FE100, FE110, FE115, FE170 and FE200.
3312
- },
3313
- 0x00 => {
3314
- Name => 'Make',
3315
- Format => 'string[24]',
3316
- },
3317
- 0x18 => {
3318
- Name => 'Model',
3319
- Description => 'Camera Model Name',
3320
- Format => 'string[8]',
3321
- SeparateTable => 'CameraType',
3322
- PrintConv => \%olympusCameraTypes,
3323
- },
3324
- # (01 00 at offset 0x20)
3325
- 0x26 => {
3326
- Name => 'ExposureUnknown',
3327
- Unknown => 1,
3328
- Format => 'int32u',
3329
- # this conversion doesn't work for all models (eg. gives "1/100000")
3330
- ValueConv => '$val ? 10 / $val : 0',
3331
- PrintConv => 'Image::ExifTool::Exif::PrintExposureTime($val)',
3332
- },
3333
- 0x2a => {
3334
- Name => 'FNumber',
3335
- Format => 'rational64u',
3336
- PrintConv => 'sprintf("%.1f",$val)',
3337
- },
3338
- 0x32 => { #(NC)
3339
- Name => 'ExposureCompensation',
3340
- Format => 'rational64s',
3341
- PrintConv => 'Image::ExifTool::Exif::PrintFraction($val)',
3342
- },
3343
- # 0x44 => WhiteBalance ?
3344
- 0x48 => {
3345
- Name => 'FocalLength',
3346
- Format => 'rational64u',
3347
- PrintConv => 'sprintf("%.1f mm",$val)',
3348
- },
3349
- # 0xb1 => 'ISO', #(I don't think this works - PH)
3350
- );
3351
-
3352
- # tags in Olympus QuickTime videos (ref PH)
3353
- # (similar information in Kodak,Minolta,Nikon,Olympus,Pentax and Sanyo videos)
3354
- %Image::ExifTool::Olympus::MOV2 = (
3355
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
3356
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
3357
- FIRST_ENTRY => 0,
3358
- NOTES => q{
3359
- This information is found in MOV videos from Olympus models such as the
3360
- FE120, FE140 and FE190.
3361
- },
3362
- 0x00 => {
3363
- Name => 'Make',
3364
- Format => 'string[24]',
3365
- },
3366
- 0x18 => {
3367
- Name => 'Model',
3368
- Description => 'Camera Model Name',
3369
- Format => 'string[24]',
3370
- Notes => 'the actual model name, no decoding necessary',
3371
- },
3372
- # (01 00 at offset 0x30)
3373
- 0x36 => {
3374
- Name => 'ExposureTime',
3375
- Format => 'int32u',
3376
- ValueConv => '$val ? 10 / $val : 0',
3377
- PrintConv => 'Image::ExifTool::Exif::PrintExposureTime($val)',
3378
- },
3379
- 0x3a => {
3380
- Name => 'FNumber',
3381
- Format => 'rational64u',
3382
- PrintConv => 'sprintf("%.1f",$val)',
3383
- },
3384
- 0x42 => { #(NC)
3385
- Name => 'ExposureCompensation',
3386
- Format => 'rational64s',
3387
- PrintConv => 'Image::ExifTool::Exif::PrintFraction($val)',
3388
- },
3389
- 0x58 => {
3390
- Name => 'FocalLength',
3391
- Format => 'rational64u',
3392
- PrintConv => 'sprintf("%.1f mm",$val)',
3393
- },
3394
- 0xc1 => {
3395
- Name => 'ISO',
3396
- Format => 'int16u',
3397
- },
3398
- );
3399
-
3400
- # tags in Olympus MP4 videos (ref PH)
3401
- %Image::ExifTool::Olympus::MP4 = (
3402
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
3403
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
3404
- FIRST_ENTRY => 0,
3405
- NOTES => q{
3406
- This information is found in MP4 videos from Olympus models such as the
3407
- u7040 and u9010.
3408
- },
3409
- 0x00 => {
3410
- Name => 'Make',
3411
- Format => 'string[24]',
3412
- },
3413
- 0x18 => {
3414
- Name => 'Model',
3415
- Description => 'Camera Model Name',
3416
- Format => 'string[24]',
3417
- Notes => 'oddly different than CameraType values in JPEG images by the same camera',
3418
- PrintConv => {
3419
- SG472 => 'u7040,S7040',
3420
- SG473 => 'u9010,S9010',
3421
- SG475 => 'SP800UZ',
3422
- SG551 => 'SZ-30MR',
3423
- SG553 => 'SP-610UZ',
3424
- SG554 => 'SZ-10',
3425
- SG555 => 'SZ-20',
3426
- SG573 => 'SZ-14',
3427
- SG575 => 'SP-620UZ',
3428
- },
3429
- },
3430
- 0x28 => {
3431
- Name => 'FNumber',
3432
- Format => 'rational64u',
3433
- PrintConv => 'sprintf("%.1f",$val)',
3434
- },
3435
- 0x30 => { #(NC)
3436
- Name => 'ExposureCompensation',
3437
- Format => 'rational64s',
3438
- PrintConv => 'Image::ExifTool::Exif::PrintFraction($val)',
3439
- },
3440
- # 0x38 - int32u: 3
3441
- # 0x3c - int32u: 1
3442
- # 0x40 - int16u: 5
3443
- # 0x42 - int16u: 0,4,9
3444
- # 0x64 - int32u: 0,6000,12000
3445
- # 0x48 - int32u: 100 (ISO?)
3446
- 0x68 => {
3447
- Name => 'MovableInfo',
3448
- Condition => '$$valPt =~ /^DIGI/',
3449
- SubDirectory => { TagTable => 'Image::ExifTool::Olympus::MovableInfo' },
3450
- },
3451
- 0x72 => {
3452
- Name => 'MovableInfo',
3453
- Condition => '$$valPt =~ /^DIGI/',
3454
- SubDirectory => { TagTable => 'Image::ExifTool::Olympus::MovableInfo' },
3455
- },
3456
- );
3457
-
3458
- # yet a different QuickTime TAGS format (PH, E-M5)
3459
- %Image::ExifTool::Olympus::MOV3 = (
3460
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
3461
- NOTES => 'QuickTime information found in the TAGS atom of MOV videos from the E-M5.',
3462
- OLYM => {
3463
- Name => 'OlympusAtom',
3464
- SubDirectory => { TagTable => 'Image::ExifTool::Olympus::OLYM2' },
3465
- },
3466
- );
3467
-
3468
- # yet a different QuickTime OLYM atom format (PH, E-M5)
3469
- %Image::ExifTool::Olympus::OLYM2 = (
3470
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
3471
- prms => {
3472
- Name => 'MakerNotes',
3473
- SubDirectory => { TagTable => 'Image::ExifTool::Olympus::prms' },
3474
- },
3475
- thmb =>{
3476
- Name => 'ThumbInfo',
3477
- SubDirectory => { TagTable => 'Image::ExifTool::Olympus::thmb2' },
3478
- },
3479
- scrn =>{
3480
- Name => 'PreviewInfo',
3481
- SubDirectory => { TagTable => 'Image::ExifTool::Olympus::scrn2' },
3482
- },
3483
- );
3484
-
3485
- # the "prms" atom in E-M5 MOV videos (PH, E-M5)
3486
- %Image::ExifTool::Olympus::prms = (
3487
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
3488
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
3489
- FIRST_ENTRY => 0,
3490
- NOTES => q{
3491
- Information extracted from the "prms" atom in MOV videos from Olympus models
3492
- such as the OM E-M5.
3493
- },
3494
- 0x12 => {
3495
- Name => 'Make',
3496
- Format => 'string[24]',
3497
- },
3498
- 0x2c => {
3499
- Name => 'Model',
3500
- Description => 'Camera Model Name',
3501
- Format => 'string[24]',
3502
- SeparateTable => 'CameraType',
3503
- PrintConv => \%olympusCameraTypes,
3504
- },
3505
- 0x83 => {
3506
- Name => 'DateTime1',
3507
- Format => 'string[24]',
3508
- Groups => { 2 => 'Time' },
3509
- },
3510
- 0x9d => {
3511
- Name => 'DateTime2',
3512
- Format => 'string[24]',
3513
- Groups => { 2 => 'Time' },
3514
- },
3515
- );
3516
-
3517
- # yet a different "thmb" atom format (PH, E-M5)
3518
- %Image::ExifTool::Olympus::thmb2 = (
3519
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
3520
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
3521
- 0 => {
3522
- Name => 'ThumbnailWidth',
3523
- Format => 'int16u',
3524
- },
3525
- 2 => {
3526
- Name => 'ThumbnailHeight',
3527
- Format => 'int16u',
3528
- },
3529
- 4 => {
3530
- Name => 'ThumbnailLength',
3531
- Format => 'int32u',
3532
- },
3533
- 8 => {
3534
- Name => 'ThumbnailImage',
3535
- Groups => { 2 => 'Preview' },
3536
- Format => 'undef[$val{4}]',
3537
- Notes => '160x120 JPEG thumbnail image',
3538
- RawConv => '$self->ValidateImage(\$val,$tag)',
3539
- },
3540
- );
3541
-
3542
- # yet a different "scrn" atom format (PH, E-M5)
3543
- %Image::ExifTool::Olympus::scrn2 = (
3544
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
3545
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
3546
- # 0 => int16u: 1 - number of preview images?
3547
- 2 => {
3548
- Name => 'OlympusPreview',
3549
- SubDirectory => { TagTable => 'Image::ExifTool::Olympus::scrn' },
3550
- },
3551
- );
3552
-
3553
- # movable information found in MP4 videos
3554
- %Image::ExifTool::Olympus::MovableInfo = (
3555
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
3556
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
3557
- FIRST_ENTRY => 0,
3558
- 0x04 => { #(NC)
3559
- Name => 'ISO',
3560
- Format => 'int32u',
3561
- },
3562
- 0x2c => {
3563
- Name => 'EncoderVersion',
3564
- Format => 'string[16]',
3565
- },
3566
- 0x3c => {
3567
- Name => 'DecoderVersion',
3568
- Format => 'string[16]',
3569
- },
3570
- 0x83 => {
3571
- Name => 'Thumbnail',
3572
- SubDirectory => {
3573
- TagTable => 'Image::ExifTool::Olympus::Thumbnail',
3574
- Base => '$start', # (use a separate table because of this)
3575
- },
3576
- },
3577
- );
3578
-
3579
- # thumbnail image information found in MP4 videos (similar in Olympus,Samsung,Sanyo) (ref PH)
3580
- %Image::ExifTool::Olympus::Thumbnail = (
3581
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
3582
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
3583
- FIRST_ENTRY => 0,
3584
- FORMAT => 'int32u',
3585
- 1 => 'ThumbnailWidth',
3586
- 2 => 'ThumbnailHeight',
3587
- 3 => 'ThumbnailLength',
3588
- 4 => { Name => 'ThumbnailOffset', IsOffset => 1 },
3589
- );
3590
-
3591
- # thumbnail information found in 'thmb' atom of MP4 videos from the TG-810 (ref PH)
3592
- %Image::ExifTool::Olympus::thmb = (
3593
- NOTES => 'Information extracted from the "thmb" atom of Olympus MP4 videos.',
3594
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
3595
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
3596
- 0 => {
3597
- Name => 'ThumbnailLength',
3598
- Format => 'int32u',
3599
- },
3600
- 4 => {
3601
- Name => 'ThumbnailImage',
3602
- Groups => { 2 => 'Preview' },
3603
- Format => 'undef[$val{0}]',
3604
- Notes => '160x120 JPEG thumbnail image',
3605
- RawConv => '$self->ValidateImage(\$val,$tag)',
3606
- },
3607
- );
3608
-
3609
- # thumbnail information found in 'scrn' atom of MP4 videos from the TG-810 (ref PH)
3610
- %Image::ExifTool::Olympus::scrn = (
3611
- NOTES => 'Information extracted from the "scrn" atom of Olympus MP4 videos.',
3612
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
3613
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
3614
- 0 => {
3615
- Name => 'PreviewImageLength',
3616
- Format => 'int32u',
3617
- },
3618
- 4 => {
3619
- Name => 'PreviewImage',
3620
- Groups => { 2 => 'Preview' },
3621
- Format => 'undef[$val{0}]',
3622
- Notes => '640x480 JPEG preview image',
3623
- RawConv => '$self->ValidateImage(\$val,$tag)',
3624
- },
3625
- );
3626
-
3627
- # information in OLYM atom of MP4 videos from the TG-810 (ref PH)
3628
- %Image::ExifTool::Olympus::OLYM = (
3629
- NOTES => 'Tags found in the OLYM atom of MP4 videos from the TG-810.',
3630
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
3631
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
3632
- 0x0e => {
3633
- Name => 'Make',
3634
- Format => 'string[26]',
3635
- },
3636
- 0x28 => {
3637
- Name => 'Model',
3638
- Description => 'Camera Model Name',
3639
- Format => 'string[24]',
3640
- SeparateTable => 'CameraType',
3641
- PrintConv => \%olympusCameraTypes,
3642
- },
3643
- 0x5a => {
3644
- Name => 'FNumber',
3645
- Format => 'rational64u',
3646
- PrintConv => 'sprintf("%.1f",$val)',
3647
- },
3648
- 0x7f => {
3649
- Name => 'DateTimeOriginal', #(NC)
3650
- Format => 'string[24]',
3651
- Groups => { 2 => 'Time' },
3652
- PrintConv => '$self->ConvertDateTime($val)',
3653
- },
3654
- 0x99 => {
3655
- Name => 'DateTime2',
3656
- Format => 'string[24]',
3657
- Groups => { 2 => 'Time' },
3658
- },
3659
- 0x109 => {
3660
- Name => 'ThumbnailWidth',
3661
- Format => 'int16u',
3662
- },
3663
- 0x10b => {
3664
- Name => 'ThumbnailHeight',
3665
- Format => 'int16u',
3666
- },
3667
- );
3668
-
3669
- # tags in Olympus AVI videos (ref PH)
3670
- # (very similar to Pentax::Junk2 tags)
3671
- %Image::ExifTool::Olympus::AVI = (
3672
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
3673
- GROUPS => { 0 => 'MakerNotes', 2 => 'Camera' },
3674
- FIRST_ENTRY => 0,
3675
- NOTES => 'This information is found in Olympus AVI videos.',
3676
- 0x12 => {
3677
- Name => 'Make',
3678
- Format => 'string[24]',
3679
- },
3680
- 0x2c => {
3681
- Name => 'Model',
3682
- Description => 'Camera Model Name',
3683
- Format => 'string[24]',
3684
- SeparateTable => 'CameraType',
3685
- PrintConv => \%olympusCameraTypes,
3686
- },
3687
- 0x5e => {
3688
- Name => 'FNumber',
3689
- Format => 'rational64u',
3690
- PrintConv => 'sprintf("%.1f",$val)',
3691
- },
3692
- 0x83 => {
3693
- Name => 'DateTime1',
3694
- Format => 'string[24]',
3695
- Groups => { 2 => 'Time' },
3696
- },
3697
- 0x9d => {
3698
- Name => 'DateTime2',
3699
- Format => 'string[24]',
3700
- Groups => { 2 => 'Time' },
3701
- },
3702
- 0x129 => {
3703
- Name => 'ThumbInfo',
3704
- SubDirectory => { TagTable => 'Image::ExifTool::Olympus::thmb2' },
3705
- },
3706
- );
3707
-
3708
- # tags in WAV files from Olympus PCM linear recorders (ref 18)
3709
- %Image::ExifTool::Olympus::WAV = (
3710
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
3711
- GROUPS => { 0 => 'MakerNotes', 2 => 'Audio' },
3712
- FIRST_ENTRY => 0,
3713
- NOTES => q{
3714
- This information is found in WAV files from Olympus PCM linear recorders
3715
- like the LS-5, LS-10, LS-11.
3716
- },
3717
- 0x0c => {
3718
- Name => 'Model',
3719
- Description => 'Camera Model Name',
3720
- Format => 'string[16]',
3721
- },
3722
- 0x1c => {
3723
- Name => 'FileNumber',
3724
- Format => 'int32u',
3725
- PrintConv => 'sprintf("%.4d", $val)',
3726
- },
3727
- 0x26 => {
3728
- Name => 'DateTimeOriginal',
3729
- Description => 'Date/Time Original',
3730
- Groups => { 2 => 'Time' },
3731
- Format => 'undef[12]',
3732
- Notes => 'time at start of recording',
3733
- ValueConv => q{
3734
- return undef unless $val =~ /^(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})$/;
3735
- my $y = $1 < 70 ? "20$1" : "19$1";
3736
- return "$y:$2:$3 $4:$5:$6";
3737
- },
3738
- PrintConv => '$self->ConvertDateTime($val)',
3739
- },
3740
- 0x32 => {
3741
- Name => 'DateTimeEnd',
3742
- Groups => { 2 => 'Time' },
3743
- Format => 'undef[12]',
3744
- Notes => 'time at end of recording',
3745
- ValueConv => q{
3746
- return undef unless $val =~ /^(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})$/;
3747
- my $y = $1 < 70 ? "20$1" : "19$1";
3748
- return "$y:$2:$3 $4:$5:$6";
3749
- },
3750
- PrintConv => '$self->ConvertDateTime($val)',
3751
- },
3752
- 0x3e => {
3753
- Name => 'RecordingTime',
3754
- Format => 'undef[6]',
3755
- ValueConv => '$val =~ s/^(\d{2})(\d{2})/$1:$2:/; $val',
3756
- },
3757
- 0x200 => {
3758
- Name => 'Duration',
3759
- Format => 'int32u',
3760
- ValueConv => '$val / 1000',
3761
- PrintConv => 'ConvertDuration($val)',
3762
- },
3763
- 0x20a => { Name => 'Index01', %indexInfo },
3764
- 0x214 => { Name => 'Index02', %indexInfo },
3765
- 0x21e => { Name => 'Index03', %indexInfo },
3766
- 0x228 => { Name => 'Index04', %indexInfo },
3767
- 0x232 => { Name => 'Index05', %indexInfo },
3768
- 0x23c => { Name => 'Index06', %indexInfo },
3769
- 0x246 => { Name => 'Index07', %indexInfo },
3770
- 0x250 => { Name => 'Index08', %indexInfo },
3771
- 0x25a => { Name => 'Index09', %indexInfo },
3772
- 0x264 => { Name => 'Index10', %indexInfo },
3773
- 0x26e => { Name => 'Index11', %indexInfo },
3774
- 0x278 => { Name => 'Index12', %indexInfo },
3775
- 0x282 => { Name => 'Index13', %indexInfo },
3776
- 0x28c => { Name => 'Index14', %indexInfo },
3777
- 0x296 => { Name => 'Index15', %indexInfo },
3778
- 0x2a0 => { Name => 'Index16', %indexInfo },
3779
- );
3780
-
3781
- # DSS information written by Olympus voice recorders (ref PH)
3782
- %Image::ExifTool::Olympus::DSS = (
3783
- PROCESS_PROC => \&Image::ExifTool::ProcessBinaryData,
3784
- GROUPS => { 0 => 'MakerNotes', 2 => 'Audio' },
3785
- FIRST_ENTRY => 0,
3786
- NOTES => q{
3787
- Information extracted from DSS/DS2 files and the ID3 XOLY frame of MP3 files
3788
- written by some Olympus voice recorders.
3789
- },
3790
- # 0 - file format:
3791
- # "\x02dss"(DSS file and XOLY frame in MP3 file)
3792
- # "\x03ds2"(DS2 file)
3793
- # "\x03mp3"(ID3 XOLY frame in MP3 file)
3794
- 12 => { Name => 'Model', Format => 'string[16]' }, # (name truncated by some models)
3795
- 38 => {
3796
- Name => 'StartTime',
3797
- Format => 'string[12]',
3798
- Groups => { 2 => 'Time' },
3799
- ValueConv => '$val =~ s/(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/20$1:$2:$3 $4:$5:$6/; $val',
3800
- PrintConv => '$self->ConvertDateTime($val)',
3801
- },
3802
- 50 => {
3803
- Name => 'EndTime',
3804
- Format => 'string[12]',
3805
- Groups => { 2 => 'Time' },
3806
- ValueConv => '$val =~ s/(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})(\d{2})/20$1:$2:$3 $4:$5:$6/; $val',
3807
- PrintConv => '$self->ConvertDateTime($val)',
3808
- },
3809
- 62 => {
3810
- Name => 'Duration',
3811
- Format => 'string[6]',
3812
- ValueConv => '$val =~ /(\d{2})(\d{2})(\d{2})/ ? ($1 * 60 + $2) * 60 + $3 : undef',
3813
- PrintConv => 'ConvertDuration($val)',
3814
- },
3815
- 798 => { # (ref http://search.cpan.org/~rgibson/Audio-DSS-0.02/)
3816
- Name => 'Comment',
3817
- Format => 'string[100]',
3818
- },
3819
- );
3820
-
3821
- # Olympus composite tags
3822
- %Image::ExifTool::Olympus::Composite = (
3823
- GROUPS => { 2 => 'Camera' },
3824
- ExtenderStatus => {
3825
- Notes => q{
3826
- Olympus cameras have the quirk that they may retain the extender settings
3827
- after the extender is removed until the camera is powered off. This tag is
3828
- an attempt to represent the actual status of the extender.
3829
- },
3830
- Require => {
3831
- 0 => 'Olympus:Extender',
3832
- 1 => 'Olympus:LensType',
3833
- 2 => 'MaxApertureValue',
3834
- },
3835
- ValueConv => 'Image::ExifTool::Olympus::ExtenderStatus($val[0],$prt[1],$val[2])',
3836
- PrintConv => {
3837
- 0 => 'Not attached',
3838
- 1 => 'Attached',
3839
- 2 => 'Removed',
3840
- },
3841
- },
3842
- ZoomedPreviewImage => {
3843
- Groups => { 2 => 'Preview' },
3844
- Require => {
3845
- 0 => 'ZoomedPreviewStart',
3846
- 1 => 'ZoomedPreviewLength',
3847
- },
3848
- RawConv => 'Image::ExifTool::Exif::ExtractImage($self,$val[0],$val[1],"ZoomedPreviewImage")',
3849
- },
3850
- );
3851
-
3852
- # add our composite tags
3853
- Image::ExifTool::AddCompositeTags('Image::ExifTool::Olympus');
3854
-
3855
-
3856
- #------------------------------------------------------------------------------
3857
- # Determine if the extender (EX-25/EC-14) was really attached (ref 9)
3858
- # Inputs: 0) Extender, 1) LensType string, 2) MaxApertureAtMaxFocal
3859
- # Returns: 0=not attached, 1=attached, 2=could have been removed
3860
- # Notes: Olympus has a bug in the in-camera firmware which results in the
3861
- # extender information being cached and written into the EXIF data even after
3862
- # the extender has been removed. You must power cycle the camera to prevent it
3863
- # from writing the cached extender information into the EXIF data.
3864
- sub ExtenderStatus($$$)
3865
- {
3866
- my ($extender, $lensType, $maxAperture) = @_;
3867
- my @info = split ' ', $extender;
3868
- # validate that extender identifier is reasonable
3869
- return 0 unless @info >= 2 and hex($info[1]);
3870
- # if it's not an EC-14 (id '0 04') then assume it was really attached
3871
- # (other extenders don't seem to affect the reported max aperture)
3872
- return 1 if "$info[0] $info[1]" ne '0 04';
3873
- # get the maximum aperture for this lens (in $1)
3874
- $lensType =~ / F(\d+(\.\d+)?)/ or return 1;
3875
- # If the maximum aperture at the maximum focal length is greater than the
3876
- # known max/max aperture of the lens, then the extender must be attached
3877
- return ($maxAperture - $1 > 0.2) ? 1 : 2;
3878
- }
3879
-
3880
- #------------------------------------------------------------------------------
3881
- # Print AF points
3882
- # Inputs: 0) AF point data (string of integers)
3883
- # Notes: I'm just guessing that the 2nd and 4th bytes are the Y coordinates,
3884
- # and that more AF points will show up in the future (derived from E-1 images,
3885
- # and the E-1 uses just one of 3 possible AF points, all centered in Y) - PH
3886
- sub PrintAFAreas($)
3887
- {
3888
- my $val = shift;
3889
- my @points = split ' ', $val;
3890
- my %afPointNames = (
3891
- 0x36794285 => 'Left',
3892
- 0x79798585 => 'Center',
3893
- 0xBD79C985 => 'Right',
3894
- );
3895
- $val = '';
3896
- my $pt;
3897
- foreach $pt (@points) {
3898
- next unless $pt;
3899
- $val and $val .= ', ';
3900
- $afPointNames{$pt} and $val .= $afPointNames{$pt} . ' ';
3901
- my @coords = unpack('C4',pack('N',$pt));
3902
- $val .= "($coords[0],$coords[1])-($coords[2],$coords[3])";
3903
- }
3904
- $val or $val = 'none';
3905
- return $val;
3906
- }
3907
-
3908
- #------------------------------------------------------------------------------
3909
- # Extract information from a DSS/DS2 voice recorder audio file or ID3 XOLY frame
3910
- # Inputs: 0) ExifTool object reference, 1) dirInfo reference
3911
- # Returns: 1 on success
3912
- sub ProcessDSS($$;$)
3913
- {
3914
- my ($et, $dirInfo) = @_;
3915
-
3916
- # allow this to be called with either RAF or DataPt
3917
- my $raf = $$dirInfo{RAF};
3918
- if ($raf) {
3919
- my $buff;
3920
- $raf->Read($buff, 898) > 68 or return 0;
3921
- $buff =~ /^(\x02dss|\x03ds2)/ or return 0;
3922
- $dirInfo = { DataPt => \$buff };
3923
- $et->SetFileType(uc substr $buff, 1, 3);
3924
- }
3925
- my $tagTablePtr = GetTagTable('Image::ExifTool::Olympus::DSS');
3926
- return $et->ProcessBinaryData($dirInfo, $tagTablePtr);
3927
- }
3928
-
3929
- #------------------------------------------------------------------------------
3930
- # Process ORF file
3931
- # Inputs: 0) ExifTool object reference, 1) directory information reference
3932
- # Returns: 1 if this looked like a valid ORF file, 0 otherwise
3933
- sub ProcessORF($$)
3934
- {
3935
- my ($et, $dirInfo) = @_;
3936
- return $et->ProcessTIFF($dirInfo);
3937
- }
3938
-
3939
- 1; # end
3940
-
3941
- __END__
3942
-
3943
- =head1 NAME
3944
-
3945
- Image::ExifTool::Olympus - Olympus/Epson maker notes tags
3946
-
3947
- =head1 SYNOPSIS
3948
-
3949
- This module is loaded automatically by Image::ExifTool when required.
3950
-
3951
- =head1 DESCRIPTION
3952
-
3953
- This module contains definitions required by Image::ExifTool to interpret
3954
- Olympus or Epson maker notes in EXIF information.
3955
-
3956
- =head1 AUTHOR
3957
-
3958
- Copyright 2003-2016, Phil Harvey (phil at owl.phy.queensu.ca)
3959
-
3960
- This library is free software; you can redistribute it and/or modify it
3961
- under the same terms as Perl itself.
3962
-
3963
- =head1 REFERENCES
3964
-
3965
- =over 4
3966
-
3967
- =item L<http://park2.wakwak.com/~tsuruzoh/Computer/Digicams/exif-e.html>
3968
-
3969
- =item L<http://www.cybercom.net/~dcoffin/dcraw/>
3970
-
3971
- =item L<http://www.ozhiker.com/electronics/pjmt/jpeg_info/olympus_mn.html>
3972
-
3973
- =item L<http://olypedia.de/Olympus_Makernotes>
3974
-
3975
- =back
3976
-
3977
- =head1 ACKNOWLEDGEMENTS
3978
-
3979
- Thanks to Markku Hanninen, Remi Guyomarch, Frank Ledwon, Michael Meissner,
3980
- Mark Dapoz, Ioannis Panagiotopoulos and Tomasz Kawecki for their help
3981
- figuring out some Olympus tags, and Lilo Huang, Chris Shaw and Viktor
3982
- Lushnikov for adding to the LensType list.
3983
-
3984
- =head1 SEE ALSO
3985
-
3986
- L<Image::ExifTool::TagNames/Olympus Tags>,
3987
- L<Image::ExifTool(3pm)|Image::ExifTool>
3988
-
3989
- =cut