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