exiftool_vendored 9.37.0 → 9.41.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 +6 -14
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/Changes +74 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/MANIFEST +14 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/META.yml +1 -1
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/Makefile.PL +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/README +30 -30
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/exif2iptc.args +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/exif2xmp.args +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/gps2xmp.args +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/iptc2exif.args +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/iptc2xmp.args +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/iptcCore.args +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/pdf2xmp.args +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/xmp2exif.args +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/xmp2gps.args +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/xmp2iptc.args +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/arg_files/xmp2pdf.args +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/config_files/ExifTool_config +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/config_files/convert_regions.config +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/exiftool +266 -226
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/fmt_files/gpx.fmt +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/fmt_files/gpx_wpt.fmt +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/fmt_files/kml.fmt +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/ExifTool.html +79 -54
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/MIE1.1-20070121.pdf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/Shift.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/AFCP.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/AIFF.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/APE.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/APP12.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/ASF.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Apple.html +11 -8
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/BMP.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Canon.html +138 -14
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/CanonCustom.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/CanonRaw.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/CanonVRD.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Casio.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Composite.html +19 -13
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/DICOM.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/DNG.html +0 -0
- data/bin/Image-ExifTool-9.41/html/TagNames/DPX.html +190 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/DV.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/DarwinCore.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/DjVu.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/EXE.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/EXIF.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Extra.html +13 -6
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/FLAC.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/FLIR.html +166 -2
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Flash.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/FlashPix.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Font.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/FotoStation.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/FujiFilm.html +11 -1
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/GE.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/GIF.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/GIMP.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/GPS.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/GeoTiff.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/H264.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/HP.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/HTML.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/ICC_Profile.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/ID3.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/IPTC.html +3 -3
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/ITC.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/JFIF.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/JPEG.html +6 -4
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/JVC.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Jpeg2000.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Kodak.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/KyoceraRaw.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/LNK.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Leaf.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/M2TS.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/MIE.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/MIFF.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/MNG.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/MPC.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/MPEG.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/MPF.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/MWG.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/MXF.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Matroska.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Microsoft.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Minolta.html +30 -19
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/MinoltaRaw.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Nikon.html +81 -60
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/NikonCapture.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/NikonCustom.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/OOXML.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Ogg.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Olympus.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/OpenEXR.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PDF.html +6 -6
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PGF.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PICT.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PLIST.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PNG.html +25 -18
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PSP.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Panasonic.html +51 -14
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PanasonicRaw.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Pentax.html +23 -6
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PhaseOne.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PhotoCD.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PhotoMechanic.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Photoshop.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PostScript.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/PrintIM.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Qualcomm.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/QuickTime.html +404 -126
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/RIFF.html +19 -13
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/RSRC.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/RTF.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Radiance.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Rawzor.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Real.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Reconyx.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Ricoh.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Samsung.html +27 -1
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Sanyo.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Scalado.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Shortcuts.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Sigma.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/SigmaRaw.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Sony.html +491 -121
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/SonyIDC.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Stim.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Theora.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Torrent.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Unknown.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/Vorbis.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/XMP.html +824 -175
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/ZIP.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/iWork.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/index.html +7 -5
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/TagNames/style.css +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/ancient_history.html +201 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/canon_raw.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/commentary.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/config.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/data_members.html +9 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/exiftool_pod.html +92 -71
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/faq.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/filename.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/geotag.html +13 -9
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/history.html +82 -201
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/htmldump.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/idiosyncracies.html +4 -2
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/index.html +46 -35
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/install.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/metafiles.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/overview.png +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/standards.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/struct.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/style.css +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/under.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/verbose.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/html/writing.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/File/RandomAccess.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/File/RandomAccess.pod +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool.pm +387 -331
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool.pod +101 -81
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/AES.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/AFCP.pm +14 -14
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/AIFF.pm +17 -17
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/APE.pm +18 -18
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/APP12.pm +21 -21
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/ASF.pm +48 -48
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Apple.pm +31 -19
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/BMP.pm +4 -4
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/BZZ.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/BigTIFF.pm +36 -36
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/BuildTagLookup.pm +12 -12
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Canon.pm +126 -38
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/CanonCustom.pm +37 -37
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/CanonRaw.pm +30 -30
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/CanonVRD.pm +75 -75
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/CaptureOne.pm +18 -18
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Casio.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset.pm +13 -13
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Arabic.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Baltic.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Cyrillic.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Greek.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Hebrew.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/JIS.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Latin.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Latin2.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacArabic.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacChineseCN.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacChineseTW.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacCroatian.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacCyrillic.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacGreek.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacHebrew.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacIceland.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacJapanese.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacKorean.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacLatin2.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacRSymbol.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacRoman.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacRomanian.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacThai.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/MacTurkish.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/PDFDoc.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/ShiftJIS.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Symbol.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Thai.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Turkish.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Charset/Vietnam.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/DICOM.pm +56 -17
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/DNG.pm +85 -85
- data/bin/Image-ExifTool-9.41/lib/Image/ExifTool/DPX.pm +151 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/DV.pm +6 -6
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/DarwinCore.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/DjVu.pm +14 -14
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/EXE.pm +47 -47
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Exif.pm +126 -116
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/FLAC.pm +14 -14
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/FLIR.pm +282 -22
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Fixup.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Flash.pm +41 -41
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/FlashPix.pm +97 -97
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Font.pm +46 -46
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/FotoStation.pm +21 -20
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/FujiFilm.pm +40 -38
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/GE.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/GIF.pm +32 -32
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/GIMP.pm +11 -11
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/GPS.pm +3 -3
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/GeoTiff.pm +19 -19
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Geotag.pm +69 -66
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/H264.pm +42 -42
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/HP.pm +9 -9
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/HTML.pm +16 -16
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/HtmlDump.pm +10 -10
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/ICC_Profile.pm +48 -48
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/ID3.pm +84 -84
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/IPTC.pm +38 -38
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/ITC.pm +11 -11
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Import.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/InDesign.pm +18 -18
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/JPEG.pm +10 -6
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/JPEGDigest.pm +4 -4
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/JVC.pm +8 -8
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Jpeg2000.pm +50 -58
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Kodak.pm +15 -15
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/KyoceraRaw.pm +4 -4
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/LNK.pm +24 -24
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/cs.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/de.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/en_ca.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/en_gb.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/es.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/fi.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/fr.pm +1 -1
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/it.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/ja.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/ko.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/nl.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/pl.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/ru.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/sv.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/tr.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/zh_cn.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Lang/zh_tw.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Leaf.pm +11 -11
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/M2TS.pm +37 -37
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MIE.pm +95 -95
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MIEUnits.pod +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MIFF.pm +17 -17
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MNG.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MPC.pm +11 -11
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MPEG.pm +28 -28
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MPF.pm +22 -22
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MWG.pm +9 -9
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MXF.pm +46 -46
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MakerNotes.pm +61 -59
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Matroska.pm +27 -27
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Microsoft.pm +8 -8
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Minolta.pm +50 -28
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/MinoltaRaw.pm +17 -17
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Nikon.pm +80 -63
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/NikonCapture.pm +29 -29
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/NikonCustom.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/OOXML.pm +20 -20
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Ogg.pm +19 -19
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Olympus.pm +3 -3
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/OpenEXR.pm +16 -16
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PDF.pm +126 -126
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PGF.pm +7 -7
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PICT.pm +18 -18
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PLIST.pm +39 -39
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PNG.pm +141 -95
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PPM.pm +11 -11
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PSP.pm +14 -14
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Panasonic.pm +82 -37
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PanasonicRaw.pm +40 -40
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Pentax.pm +86 -14
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PhaseOne.pm +36 -36
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PhotoCD.pm +4 -4
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PhotoMechanic.pm +12 -12
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Photoshop.pm +23 -23
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PostScript.pm +36 -36
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/PrintIM.pm +10 -10
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Qualcomm.pm +5 -5
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/QuickTime.pm +528 -219
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/README +5 -3
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/RIFF.pm +40 -32
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/RSRC.pm +15 -15
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/RTF.pm +15 -15
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Radiance.pm +9 -9
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Rawzor.pm +19 -19
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Real.pm +43 -43
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Reconyx.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Ricoh.pm +24 -24
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Samsung.pm +41 -15
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Sanyo.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Scalado.pm +5 -5
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Shift.pl +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Shortcuts.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Sigma.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/SigmaRaw.pm +56 -56
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Sony.pm +450 -166
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/SonyIDC.pm +9 -9
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Stim.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/TagInfoXML.pm +6 -4
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/TagLookup.pm +1707 -1468
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/TagNames.pod +568 -102
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Theora.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Torrent.pm +11 -11
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Unknown.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Vorbis.pm +5 -5
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/WriteCanonRaw.pl +51 -51
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/WriteExif.pl +273 -273
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/WriteIPTC.pl +44 -44
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/WritePDF.pl +45 -39
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/WritePNG.pl +86 -40
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/WritePhotoshop.pl +27 -27
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/WritePostScript.pl +47 -47
- data/bin/Image-ExifTool-9.41/lib/Image/ExifTool/WriteQuickTime.pl +344 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/WriteXMP.pl +112 -112
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/Writer.pl +428 -360
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/XMP.pm +195 -104
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/XMP2.pl +1 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/XMPStruct.pl +53 -52
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/ZIP.pm +50 -50
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/lib/Image/ExifTool/iWork.pm +17 -17
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/perl-Image-ExifTool.spec +31 -31
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/AFCP.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/AFCP_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/AFCP_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/AIFF.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/AIFF_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/APE.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/APE_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/APE_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ASF.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ASF_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/BMP.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/BMP_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/BigTIFF.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/BigTIFF_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Canon.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonRaw.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonRaw_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonRaw_4.out +5 -7
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonRaw_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonRaw_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonRaw_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_11.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_12.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_8.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/CanonVRD_9.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Canon_2.out +4 -3
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Canon_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Casio.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Casio_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Casio_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Casio_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Casio_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Casio_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/DICOM.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/DICOM_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/DNG.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/DNG_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/DNG_3.out +0 -0
- data/bin/Image-ExifTool-9.41/t/DPX.t +28 -0
- data/bin/Image-ExifTool-9.41/t/DPX_2.out +35 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/DV.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/DV_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/DjVu.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/DjVu_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/EXE.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/EXE_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/EXE_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/EXE_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_16.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_17.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_20.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_21.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_22.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_23.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_24.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_25.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_26.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_8.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ExifTool_9.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FLAC.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FLAC_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FLAC_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FLIR.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FLIR_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FLIR_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Flash.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FlashPix.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FlashPix_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Flash_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Flash_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Font.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Font_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Font_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Font_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Font_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Font_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Font_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FotoStation.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FotoStation_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FotoStation_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FujiFilm.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FujiFilm_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FujiFilm_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FujiFilm_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/FujiFilm_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GE.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GE_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GE_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GIF.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GIF_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GIF_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GIF_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GIMP.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GIMP_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GPS.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GPS_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GPS_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GeoTiff.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GeoTiff_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/GeoTiff_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Geotag.t +18 -1
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Geotag_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Geotag_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Geotag_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Geotag_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Geotag_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Geotag_8.out +0 -0
- data/bin/Image-ExifTool-9.41/t/Geotag_9.out +7 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/HTML.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/HTML_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/IPTC.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/IPTC_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/IPTC_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/IPTC_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/IPTC_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/IPTC_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/IPTC_8.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ITC.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ITC_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/InDesign.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/InDesign_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/InDesign_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/InDesign_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/JVC.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/JVC_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/JVC_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Jpeg2000.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Jpeg2000_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Jpeg2000_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Jpeg2000_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Kodak.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Kodak_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Kodak_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/KyoceraRaw.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/KyoceraRaw_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/LNK.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/LNK_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_1.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_10.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_11.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_12.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_13.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_14.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_15.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_16.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_17.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_18.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_8.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Lang_9.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/M2TS.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/M2TS_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MIE.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MIE_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MIE_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MIE_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MIE_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MIFF.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MIFF_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MP3.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MP3_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MWG.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MWG_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MWG_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MWG_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MWG_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MWG_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MXF.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/MXF_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Matroska.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Matroska_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Minolta.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Minolta_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Minolta_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Minolta_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Nikon.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Nikon_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Nikon_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Nikon_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Nikon_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Nikon_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Nikon_8.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Olympus.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Olympus_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Olympus_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Olympus_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Olympus_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Olympus_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Olympus_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/OpenEXR.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/OpenEXR_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_10.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_11.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_12.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_14.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_15.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_16.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_17.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_18.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_19.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_20.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_22.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_8.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PDF_9.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PGF.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PGF_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PICT.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PICT_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PLIST.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PLIST_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PLIST_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PNG.t +31 -1
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PNG_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PNG_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PNG_4.out +0 -0
- data/bin/Image-ExifTool-9.41/t/PNG_5.out +17 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PPM.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PPM_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PPM_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PSP.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PSP_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Panasonic.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Panasonic_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Panasonic_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Panasonic_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Panasonic_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Pentax.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Pentax_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Pentax_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Pentax_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PhotoCD.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PhotoCD_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PhotoMechanic.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PhotoMechanic_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PhotoMechanic_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Photoshop.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Photoshop_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Photoshop_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PostScript.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PostScript_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/PostScript_3.out +0 -0
- data/bin/Image-ExifTool-9.41/t/QuickTime.t +54 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/QuickTime_2.out +10 -8
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/QuickTime_3.out +10 -8
- data/bin/Image-ExifTool-9.41/t/QuickTime_4.out +16 -0
- data/bin/Image-ExifTool-9.41/t/QuickTime_5.out +12 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/RIFF.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/RIFF_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/RIFF_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/RIFF_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/RTF.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/RTF_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Radiance.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Radiance_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Real.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Real_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Real_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Real_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Ricoh.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Ricoh_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Ricoh_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Ricoh_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sanyo.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sanyo_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sanyo_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sigma.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sigma_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sigma_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sigma_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sigma_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sony.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sony_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sony_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Sony_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/TestLib.pm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Torrent.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Torrent_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Unknown.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Unknown_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Unknown_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Vorbis.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Vorbis_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer.t +53 -1
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_10.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_11.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_13.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_14.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_15.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_16.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_17.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_18.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_19.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_22.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_24.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_25.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_26.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_27.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_28.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_29.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_30.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_31.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_32.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_33.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_34.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_35.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_36.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_37.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_38.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_39.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_40.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_41.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_42.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_43.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_44.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_45.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_46.out +8 -6
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_47.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_48.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_50.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_51.out +0 -0
- data/bin/Image-ExifTool-9.41/t/Writer_52.out +22 -0
- data/bin/Image-ExifTool-9.41/t/Writer_53.out +33 -0
- data/bin/Image-ExifTool-9.41/t/Writer_54.out +2 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/Writer_9.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_10.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_11.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_12.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_13.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_14.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_15.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_16.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_17.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_18.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_19.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_20.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_21.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_22.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_23.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_24.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_25.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_26.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_27.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_28.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_29.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_30.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_31.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_32.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_34.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_36.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_37.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_39.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_40.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_41.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_8.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/XMP_9.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ZIP.t +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ZIP_2.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ZIP_3.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ZIP_4.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ZIP_5.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ZIP_6.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/ZIP_7.out +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/AFCP.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/AIFF.aif +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/APE.ape +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/APE.mpc +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/ASF.wmv +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/BMP.bmp +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/BigTIFF.btf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Canon.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Canon1DmkIII.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/CanonRaw.cr2 +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/CanonRaw.crw +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/CanonVRD.vrd +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/CaptureOne.eip +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Casio.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Casio2.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/CasioQVCI.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/DICOM.dcm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/DNG.dng +0 -0
- data/bin/Image-ExifTool-9.41/t/images/DPX.dpx +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/DV.dv +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/DjVu.djvu +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/EXE.elf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/EXE.exe +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/EXE.macho +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/ExifTool.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/ExifTool.tif +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/ExtendedXMP.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/FLAC.flac +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/FLAC.ogg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/FLIR.fpf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/FLIR.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Flash.flv +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Flash.swf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/FlashPix.ppt +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Font.afm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Font.dfont +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Font.pfa +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Font.pfb +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Font.pfm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Font.ttf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/FotoStation.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/FujiFilm.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/FujiFilm.raf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/GE.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/GIF.gif +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/GIMP.xcf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/GPS.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/GeoTiff.tif +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Geotag.gpx +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Geotag.igc +0 -0
- data/bin/Image-ExifTool-9.41/t/images/Geotag.kml +55 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Geotag.log +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Geotag.xml +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Geotag2.log +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/HTML.html +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/IPTC.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/ITC.itc +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/InDesign.indd +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/JVC.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/JVC2.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Jpeg2000.j2c +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Jpeg2000.jp2 +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Kodak.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/KyoceraRaw.raw +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/LNK.lnk +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/M2TS.mts +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/MIE.mie +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/MIFF.miff +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/MP3.mp3 +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/MWG.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/MXF.mxf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Matroska.mkv +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Minolta.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Minolta.mrw +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Nikon.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Nikon.nef +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/NikonD2Hs.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/NikonD70.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/OOXML.docx +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Olympus.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Olympus2.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/OlympusE1.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/OpenDoc.ods +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/OpenEXR.exr +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PDF.pdf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PDF2.pdf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PGF.pgf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PICT.pict +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PLIST-bin.plist +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PLIST-xml.plist +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PNG.png +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PPM.ppm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PSP.psp +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Panasonic.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Panasonic.rw2 +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Pentax.avi +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Pentax.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PhotoCD.pcd +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PhotoMechanic.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Photoshop.psd +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/PostScript.eps +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/QuickTime.m4a +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/QuickTime.mov +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/RIFF.avi +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/RIFF.wav +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/RIFF.webp +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/RTF.rtf +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Radiance.hdr +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Real.ra +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Real.ram +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Real.rm +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Ricoh.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Ricoh2.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Sanyo.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Sigma.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Sigma.x3f +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/SigmaDP2.x3f +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Sony.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Sony.pmp +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Torrent.torrent +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Unknown.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Vorbis.ogg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/Writer.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/XMP.inx +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/XMP.jpg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/XMP.svg +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/XMP.xml +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/XMP.xmp +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/XMP2.xmp +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/XMP3.xmp +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/XMP4.xmp +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/XMP5.xmp +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/ZIP.gz +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/ZIP.zip +0 -0
- data/bin/{Image-ExifTool-9.37 → Image-ExifTool-9.41}/t/images/iWork.numbers +0 -0
- data/lib/exiftool_vendored.rb +11 -3
- data/lib/exiftool_vendored/version.rb +1 -1
- data/lib/exiftool_vendored/version_extractor.rb +5 -7
- metadata +942 -886
- data/bin/Image-ExifTool-9.37/t/QuickTime.t +0 -31
File without changes
|
@@ -26,7 +26,7 @@ use vars qw($VERSION);
|
|
26
26
|
use Image::ExifTool qw(:DataAccess :Utils);
|
27
27
|
use Image::ExifTool::FLAC;
|
28
28
|
|
29
|
-
$VERSION = '1.
|
29
|
+
$VERSION = '1.10';
|
30
30
|
|
31
31
|
sub ProcessMeta($$$;$);
|
32
32
|
|
@@ -289,14 +289,14 @@ my %isStruct = ( 0x03 => 1, 0x08 => 1, 0x10 => 1 );
|
|
289
289
|
# Notes: Updates DataPos in dirInfo if extracting single value
|
290
290
|
sub ProcessMeta($$$;$)
|
291
291
|
{
|
292
|
-
my ($
|
292
|
+
my ($et, $dirInfo, $tagTablePtr, $single) = @_;
|
293
293
|
my $dataPt = $$dirInfo{DataPt};
|
294
294
|
my $dataPos = $$dirInfo{DataPos};
|
295
295
|
my $dirLen = $$dirInfo{DirLen} || length($$dataPt);
|
296
296
|
my $pos = $$dirInfo{Pos} || 0;
|
297
297
|
my ($type, $val, $rec);
|
298
298
|
|
299
|
-
$
|
299
|
+
$et->VerboseDir('Meta') unless $single;
|
300
300
|
|
301
301
|
Record: for ($rec=0; ; ++$rec) {
|
302
302
|
last if $pos >= $dirLen;
|
@@ -341,7 +341,7 @@ Record: for ($rec=0; ; ++$rec) {
|
|
341
341
|
$val = substr($$dataPt, $pos + 2, $len);
|
342
342
|
$pos += 2 + $len;
|
343
343
|
} elsif ($isStruct{$type}) { # object, mixed array or typed object
|
344
|
-
$
|
344
|
+
$et->VPrint(1, " + [$amfType[$type]]\n");
|
345
345
|
my $getName;
|
346
346
|
$val = ''; # dummy value
|
347
347
|
if ($type == 0x08) { # mixed array
|
@@ -356,14 +356,14 @@ Record: for ($rec=0; ; ++$rec) {
|
|
356
356
|
last Record if $pos + 2 > $dirLen;
|
357
357
|
my $len = Get16u($dataPt, $pos);
|
358
358
|
if ($pos + 2 + $len > $dirLen) {
|
359
|
-
$
|
359
|
+
$et->Warn("Truncated $amfType[$type] record");
|
360
360
|
last Record;
|
361
361
|
}
|
362
362
|
my $tag = substr($$dataPt, $pos + 2, $len);
|
363
363
|
$pos += 2 + $len;
|
364
364
|
# first string of a typed object is the object name
|
365
365
|
if ($getName) {
|
366
|
-
$
|
366
|
+
$et->VPrint(1," | (object name '$tag')\n");
|
367
367
|
undef $getName;
|
368
368
|
next; # (ignore name for now)
|
369
369
|
}
|
@@ -385,7 +385,7 @@ Record: for ($rec=0; ; ++$rec) {
|
|
385
385
|
# add structure name to start of tag name
|
386
386
|
$tag = $structName . ucfirst($tag) if defined $structName;
|
387
387
|
$$dirInfo{StructName} = $tag; # set new structure name
|
388
|
-
my ($t, $v) = ProcessMeta($
|
388
|
+
my ($t, $v) = ProcessMeta($et, $dirInfo, $subTablePtr, 1);
|
389
389
|
$$dirInfo{StructName} = $structName;# restore original structure name
|
390
390
|
$pos = $$dirInfo{Pos}; # update to new position in packet
|
391
391
|
# all done if this value contained tags
|
@@ -395,9 +395,9 @@ Record: for ($rec=0; ; ++$rec) {
|
|
395
395
|
last if $t == 0x09; # (end of object)
|
396
396
|
if (not $$subTablePtr{$tag} and $tag =~ /^\w+$/) {
|
397
397
|
AddTagToTable($subTablePtr, $tag, { Name => ucfirst($tag) });
|
398
|
-
$
|
398
|
+
$et->VPrint(1, " | (adding $tag)\n");
|
399
399
|
}
|
400
|
-
$
|
400
|
+
$et->HandleTag($subTablePtr, $tag, $v,
|
401
401
|
DataPt => $dataPt,
|
402
402
|
DataPos => $dataPos,
|
403
403
|
Start => $valPos,
|
@@ -422,7 +422,7 @@ Record: for ($rec=0; ; ++$rec) {
|
|
422
422
|
my $structName = $$dirInfo{StructName};
|
423
423
|
for ($i=0; $i<$num; ++$i) {
|
424
424
|
$$dirInfo{StructName} = $structName . $i if defined $structName;
|
425
|
-
my ($t, $v) = ProcessMeta($
|
425
|
+
my ($t, $v) = ProcessMeta($et, $dirInfo, $tagTablePtr, 1);
|
426
426
|
last Record unless defined $v;
|
427
427
|
# save value unless contained in a sub-structure
|
428
428
|
push @vals, $v unless $isStruct{$t};
|
@@ -440,7 +440,7 @@ Record: for ($rec=0; ; ++$rec) {
|
|
440
440
|
# } elsif ($type == 0x11) { # AMF3 data (can't add support for this without a test sample)
|
441
441
|
} else {
|
442
442
|
my $t = $amfType[$type] || sprintf('type 0x%x',$type);
|
443
|
-
$
|
443
|
+
$et->Warn("AMF $t record not yet supported");
|
444
444
|
undef $type; # (so we don't print another warning)
|
445
445
|
last; # can't continue
|
446
446
|
}
|
@@ -449,17 +449,17 @@ Record: for ($rec=0; ; ++$rec) {
|
|
449
449
|
# only process certain Meta packets
|
450
450
|
if ($type == 0x02 and not $rec) {
|
451
451
|
my $verb = $processMetaPacket{$val} ? 'processing' : 'ignoring';
|
452
|
-
$
|
452
|
+
$et->VPrint(0, " | ($verb $val information)\n");
|
453
453
|
last unless $processMetaPacket{$val};
|
454
454
|
} else {
|
455
455
|
# give verbose indication if we ignore a lone value
|
456
456
|
my $t = $amfType[$type] || sprintf('type 0x%x',$type);
|
457
|
-
$
|
457
|
+
$et->VPrint(1, " | (ignored lone $t value '$val')\n");
|
458
458
|
}
|
459
459
|
}
|
460
460
|
}
|
461
461
|
if (not defined $val and defined $type) {
|
462
|
-
$
|
462
|
+
$et->Warn(sprintf("Truncated AMF record 0x%x",$type));
|
463
463
|
}
|
464
464
|
return 1 unless $single; # all done
|
465
465
|
$$dirInfo{Pos} = $pos; # update position
|
@@ -472,15 +472,15 @@ Record: for ($rec=0; ; ++$rec) {
|
|
472
472
|
# Returns: 1 on success, 0 if this wasn't a valid Flash Video file
|
473
473
|
sub ProcessFLV($$)
|
474
474
|
{
|
475
|
-
my ($
|
476
|
-
my $verbose = $
|
475
|
+
my ($et, $dirInfo) = @_;
|
476
|
+
my $verbose = $et->Options('Verbose');
|
477
477
|
my $raf = $$dirInfo{RAF};
|
478
478
|
my $buff;
|
479
479
|
|
480
480
|
$raf->Read($buff, 9) == 9 or return 0;
|
481
481
|
$buff =~ /^FLV\x01/ or return 0;
|
482
482
|
SetByteOrder('MM');
|
483
|
-
$
|
483
|
+
$et->SetFileType();
|
484
484
|
my ($flags, $offset) = unpack('x4CN', $buff);
|
485
485
|
$raf->Seek($offset-9, 1) or return 1 if $offset > 9;
|
486
486
|
$flags &= 0x05; # only look for audio/video
|
@@ -491,10 +491,10 @@ sub ProcessFLV($$)
|
|
491
491
|
my $len = unpack('x4N', $buff);
|
492
492
|
my $type = $len >> 24;
|
493
493
|
$len &= 0x00ffffff;
|
494
|
-
my $tagInfo = $
|
494
|
+
my $tagInfo = $et->GetTagInfo($tagTablePtr, $type);
|
495
495
|
if ($verbose > 1) {
|
496
496
|
my $name = $tagInfo ? $$tagInfo{Name} : "type $type";
|
497
|
-
$
|
497
|
+
$et->VPrint(1, "FLV $name packet, len $len\n");
|
498
498
|
}
|
499
499
|
undef $buff;
|
500
500
|
if ($tagInfo and $$tagInfo{SubDirectory}) {
|
@@ -507,19 +507,19 @@ sub ProcessFLV($$)
|
|
507
507
|
if ($len>=1 and $raf->Read($buff, 1) == 1) {
|
508
508
|
$len -= 1;
|
509
509
|
} else {
|
510
|
-
$
|
510
|
+
$et->Warn("Bad $$tagInfo{Name} packet");
|
511
511
|
last;
|
512
512
|
}
|
513
513
|
}
|
514
514
|
} elsif ($raf->Read($buff, $len) == $len) {
|
515
515
|
$len = 0;
|
516
516
|
} else {
|
517
|
-
$
|
517
|
+
$et->Warn('Truncated Meta packet');
|
518
518
|
last;
|
519
519
|
}
|
520
520
|
}
|
521
521
|
if (defined $buff) {
|
522
|
-
$
|
522
|
+
$et->HandleTag($tagTablePtr, $type, undef,
|
523
523
|
DataPt => \$buff,
|
524
524
|
DataPos => $raf->Tell() - length($buff),
|
525
525
|
);
|
@@ -535,8 +535,8 @@ sub ProcessFLV($$)
|
|
535
535
|
# Inputs: 0) ExifTool object ref, 1) tag name, 2) tag value
|
536
536
|
sub FoundFlashTag($$$)
|
537
537
|
{
|
538
|
-
my ($
|
539
|
-
$
|
538
|
+
my ($et, $tag, $val) = @_;
|
539
|
+
$et->HandleTag(\%Image::ExifTool::Flash::Main, $tag, $val);
|
540
540
|
}
|
541
541
|
|
542
542
|
#------------------------------------------------------------------------------
|
@@ -596,7 +596,7 @@ sub ReadCompressed($$$$)
|
|
596
596
|
# Returns: 1 on success, 0 if this wasn't a valid Flash file
|
597
597
|
sub ProcessSWF($$)
|
598
598
|
{
|
599
|
-
my ($
|
599
|
+
my ($et, $dirInfo) = @_;
|
600
600
|
my $raf = $$dirInfo{RAF};
|
601
601
|
my ($buff, $hasMeta);
|
602
602
|
|
@@ -605,16 +605,16 @@ sub ProcessSWF($$)
|
|
605
605
|
my ($compressed, $vers) = ($1 eq 'C' ? 1 : 0, ord($2));
|
606
606
|
|
607
607
|
SetByteOrder('II');
|
608
|
-
$
|
608
|
+
$et->SetFileType();
|
609
609
|
GetTagTable('Image::ExifTool::Flash::Main'); # make sure table is initialized
|
610
610
|
|
611
|
-
FoundFlashTag($
|
612
|
-
FoundFlashTag($
|
611
|
+
FoundFlashTag($et, FlashVersion => $vers);
|
612
|
+
FoundFlashTag($et, Compressed => $compressed);
|
613
613
|
|
614
614
|
# read the next 64 bytes of the file (and inflate if necessary)
|
615
615
|
$buff = '';
|
616
616
|
unless (ReadCompressed($raf, $buff, 64, $compressed)) {
|
617
|
-
$
|
617
|
+
$et->Warn($compressed) if $compressed;
|
618
618
|
return 1;
|
619
619
|
}
|
620
620
|
|
@@ -623,7 +623,7 @@ sub ProcessSWF($$)
|
|
623
623
|
my $totBits = 5 + $nBits * 4; # total bits in Rect structure
|
624
624
|
my $nBytes = int(($totBits + 7) / 8); # byte length of Rect structure
|
625
625
|
if (length $buff < $nBytes + 4) {
|
626
|
-
$
|
626
|
+
$et->Warn('Truncated Flash file');
|
627
627
|
return 1;
|
628
628
|
}
|
629
629
|
my $bits = unpack("B$totBits", $buff);
|
@@ -633,14 +633,14 @@ sub ProcessSWF($$)
|
|
633
633
|
map { $_ = unpack('N', pack('B32', '0' x (32 - length $_) . $_)) } @vals;
|
634
634
|
|
635
635
|
# calculate and store ImageWidth/Height
|
636
|
-
FoundFlashTag($
|
637
|
-
FoundFlashTag($
|
636
|
+
FoundFlashTag($et, ImageWidth => ($vals[1] - $vals[0]) / 20);
|
637
|
+
FoundFlashTag($et, ImageHeight => ($vals[3] - $vals[2]) / 20);
|
638
638
|
|
639
639
|
# get frame rate and count
|
640
640
|
@vals = unpack("x${nBytes}v2", $buff);
|
641
|
-
FoundFlashTag($
|
642
|
-
FoundFlashTag($
|
643
|
-
FoundFlashTag($
|
641
|
+
FoundFlashTag($et, FrameRate => $vals[0] / 256);
|
642
|
+
FoundFlashTag($et, FrameCount => $vals[1]);
|
643
|
+
FoundFlashTag($et, Duration => $vals[1] * 256 / $vals[0]) if $vals[0];
|
644
644
|
|
645
645
|
# scan through the tags to find FileAttributes and XMP
|
646
646
|
$buff = substr($buff, $nBytes + 4);
|
@@ -651,13 +651,13 @@ sub ProcessSWF($$)
|
|
651
651
|
my $pos = 2;
|
652
652
|
my $tag = $code >> 6;
|
653
653
|
my $size = $code & 0x3f;
|
654
|
-
$
|
654
|
+
$et->VPrint(1, "SWF tag $tag ($size bytes):\n");
|
655
655
|
last unless $tag == 69 or $tag == 77 or $hasMeta;
|
656
656
|
# read enough to get a complete short record
|
657
657
|
if ($pos + $size > $buffLen) {
|
658
658
|
# (read 2 extra bytes if available to get next tag word)
|
659
659
|
unless (ReadCompressed($raf, $buff, $size + 2, $compressed)) {
|
660
|
-
$
|
660
|
+
$et->Warn($compressed) if $compressed;
|
661
661
|
return 1;
|
662
662
|
}
|
663
663
|
$buffLen = length $buff;
|
@@ -671,23 +671,23 @@ sub ProcessSWF($$)
|
|
671
671
|
last if $size > 1000000; # don't read anything huge
|
672
672
|
if ($pos + $size > $buffLen) {
|
673
673
|
unless (ReadCompressed($raf, $buff, $size + 2, $compressed)) {
|
674
|
-
$
|
674
|
+
$et->Warn($compressed) if $compressed;
|
675
675
|
return 1;
|
676
676
|
}
|
677
677
|
$buffLen = length $buff;
|
678
678
|
last if $pos + $size > $buffLen;
|
679
679
|
}
|
680
|
-
$
|
680
|
+
$et->VPrint(1, " [extended size $size bytes]\n");
|
681
681
|
}
|
682
682
|
if ($tag == 69) { # FileAttributes
|
683
683
|
last unless $size;
|
684
684
|
my $flags = Get8u(\$buff, $pos);
|
685
|
-
FoundFlashTag($
|
685
|
+
FoundFlashTag($et, $tag => $flags);
|
686
686
|
last unless $flags & 0x10; # only continue if we have metadata (XMP)
|
687
687
|
$hasMeta = 1;
|
688
688
|
} elsif ($tag == 77) { # Metadata
|
689
689
|
my $val = substr($buff, $pos, $size);
|
690
|
-
FoundFlashTag($
|
690
|
+
FoundFlashTag($et, $tag => $val);
|
691
691
|
last;
|
692
692
|
}
|
693
693
|
last if $pos + 2 > $buffLen;
|
@@ -19,7 +19,7 @@ use Image::ExifTool qw(:DataAccess :Utils);
|
|
19
19
|
use Image::ExifTool::Exif;
|
20
20
|
use Image::ExifTool::ASF; # for GetGUID()
|
21
21
|
|
22
|
-
$VERSION = '1.
|
22
|
+
$VERSION = '1.22';
|
23
23
|
|
24
24
|
sub ProcessFPX($$);
|
25
25
|
sub ProcessFPXR($$$);
|
@@ -1010,7 +1010,7 @@ Image::ExifTool::AddCompositeTags('Image::ExifTool::FlashPix');
|
|
1010
1010
|
# Returns: list of hyperlinks
|
1011
1011
|
sub ProcessHyperlinks($$)
|
1012
1012
|
{
|
1013
|
-
my ($val, $
|
1013
|
+
my ($val, $et) = @_;
|
1014
1014
|
|
1015
1015
|
# process as an array of VT_VARIANT's
|
1016
1016
|
my $dirEnd = length $val;
|
@@ -1020,7 +1020,7 @@ sub ProcessHyperlinks($$)
|
|
1020
1020
|
my ($i, @vals);
|
1021
1021
|
for ($i=0; $i<$num; ++$i) {
|
1022
1022
|
# read VT_BLOB entries as an array of VT_VARIANT's
|
1023
|
-
my $value = ReadFPXValue($
|
1023
|
+
my $value = ReadFPXValue($et, \$val, $valPos, VT_VARIANT, $dirEnd);
|
1024
1024
|
last unless defined $value;
|
1025
1025
|
push @vals, $value;
|
1026
1026
|
}
|
@@ -1041,7 +1041,7 @@ sub ProcessHyperlinks($$)
|
|
1041
1041
|
# value offset to end of value if successful, or returns undef on error
|
1042
1042
|
sub ReadFPXValue($$$$$;$$)
|
1043
1043
|
{
|
1044
|
-
my ($
|
1044
|
+
my ($et, $dataPt, $valPos, $type, $dirEnd, $noPad, $codePage) = @_;
|
1045
1045
|
my @vals;
|
1046
1046
|
|
1047
1047
|
my $format = $oleFormat{$type & 0x0fff};
|
@@ -1077,7 +1077,7 @@ sub ReadFPXValue($$$$$;$$)
|
|
1077
1077
|
if ($format eq 'VT_VARIANT') {
|
1078
1078
|
my $subType = Get32u($dataPt, $valPos);
|
1079
1079
|
$valPos += $size;
|
1080
|
-
$val = ReadFPXValue($
|
1080
|
+
$val = ReadFPXValue($et, $dataPt, $valPos, $subType, $dirEnd, $noPad, $codePage);
|
1081
1081
|
last unless defined $val;
|
1082
1082
|
push @vals, $val;
|
1083
1083
|
next; # avoid adding $size to $valPos again
|
@@ -1102,13 +1102,13 @@ sub ReadFPXValue($$$$$;$$)
|
|
1102
1102
|
$val = substr($$dataPt, $valPos + 4, $len);
|
1103
1103
|
if ($format eq 'VT_LPWSTR') {
|
1104
1104
|
# convert wide string from Unicode
|
1105
|
-
$val = $
|
1105
|
+
$val = $et->Decode($val, 'UCS2');
|
1106
1106
|
} elsif ($codePage) {
|
1107
1107
|
my $charset = $Image::ExifTool::charsetName{"cp$codePage"};
|
1108
1108
|
if ($charset) {
|
1109
|
-
$val = $
|
1109
|
+
$val = $et->Decode($val, $charset);
|
1110
1110
|
} elsif ($codePage eq 1200) { # UTF-16, little endian
|
1111
|
-
$val = $
|
1111
|
+
$val = $et->Decode(undef, 'UCS2', 'II');
|
1112
1112
|
}
|
1113
1113
|
}
|
1114
1114
|
$val =~ s/\0.*//s; # truncate at null terminator
|
@@ -1130,7 +1130,7 @@ sub ReadFPXValue($$$$$;$$)
|
|
1130
1130
|
push @vals, $val;
|
1131
1131
|
}
|
1132
1132
|
# join VT_ values with commas unless we want an array
|
1133
|
-
@vals = ( join $
|
1133
|
+
@vals = ( join $et->Options('ListSep'), @vals ) if @vals > 1 and not wantarray;
|
1134
1134
|
last; # didn't really want to loop
|
1135
1135
|
}
|
1136
1136
|
$_[2] = $valPos; # return updated value position
|
@@ -1152,7 +1152,7 @@ sub ReadFPXValue($$$$$;$$)
|
|
1152
1152
|
# so this routine is entirely based on observations from sample files
|
1153
1153
|
sub ProcessContents($$$)
|
1154
1154
|
{
|
1155
|
-
my ($
|
1155
|
+
my ($et, $dirInfo, $tagTablePtr) = @_;
|
1156
1156
|
my $dataPt = $$dirInfo{DataPt};
|
1157
1157
|
my $isFLA;
|
1158
1158
|
|
@@ -1169,13 +1169,13 @@ sub ProcessContents($$$)
|
|
1169
1169
|
$$dirInfo{DirStart} = pos($$dataPt) - 36;
|
1170
1170
|
if ($$dataPt =~ /<\0\?\0x\0p\0a\0c\0k\0e\0t\0 \0e\0n\0d\0=\0['"]\0[wr]\0['"]\0\?\0>\0?/g) {
|
1171
1171
|
$$dirInfo{DirLen} = pos($$dataPt) - $$dirInfo{DirStart};
|
1172
|
-
Image::ExifTool::XMP::ProcessXMP($
|
1172
|
+
Image::ExifTool::XMP::ProcessXMP($et, $dirInfo, $tagTablePtr);
|
1173
1173
|
# override format if not already FLA but XMP-dc:Format indicates it is
|
1174
|
-
$isFLA = 1 if $$
|
1175
|
-
$$
|
1174
|
+
$isFLA = 1 if $$et{FILE_TYPE} ne 'FLA' and $$et{VALUE}{Format} and
|
1175
|
+
$$et{VALUE}{Format} eq 'application/vnd.adobe.fla';
|
1176
1176
|
}
|
1177
1177
|
}
|
1178
|
-
$
|
1178
|
+
$et->OverrideFileType('FLA') if $isFLA;
|
1179
1179
|
return 1;
|
1180
1180
|
}
|
1181
1181
|
|
@@ -1199,27 +1199,27 @@ sub CheckBOM($$)
|
|
1199
1199
|
# Returns: 1 on success
|
1200
1200
|
sub ProcessProperties($$$)
|
1201
1201
|
{
|
1202
|
-
my ($
|
1202
|
+
my ($et, $dirInfo, $tagTablePtr) = @_;
|
1203
1203
|
my $dataPt = $$dirInfo{DataPt};
|
1204
1204
|
my $pos = $$dirInfo{DirStart} || 0;
|
1205
1205
|
my $dirLen = $$dirInfo{DirLen} || length($$dataPt) - $pos;
|
1206
1206
|
my $dirEnd = $pos + $dirLen;
|
1207
|
-
my $verbose = $
|
1207
|
+
my $verbose = $et->Options('Verbose');
|
1208
1208
|
my $n;
|
1209
1209
|
|
1210
1210
|
if ($dirLen < 48) {
|
1211
|
-
$
|
1211
|
+
$et->Warn('Truncated FPX properties');
|
1212
1212
|
return 0;
|
1213
1213
|
}
|
1214
1214
|
# check and set our byte order if necessary
|
1215
1215
|
unless (CheckBOM($dataPt, $pos)) {
|
1216
|
-
$
|
1216
|
+
$et->Warn('Bad FPX property byte order mark');
|
1217
1217
|
return 0;
|
1218
1218
|
}
|
1219
1219
|
# get position of start of section
|
1220
1220
|
$pos = Get32u($dataPt, $pos + 44);
|
1221
1221
|
if ($pos < 48) {
|
1222
|
-
$
|
1222
|
+
$et->Warn('Bad FPX property section offset');
|
1223
1223
|
return 0;
|
1224
1224
|
}
|
1225
1225
|
for ($n=0; $n<2; ++$n) {
|
@@ -1230,9 +1230,9 @@ sub ProcessProperties($$$)
|
|
1230
1230
|
my $size = Get32u($dataPt, $pos);
|
1231
1231
|
last unless $size;
|
1232
1232
|
my $numEntries = Get32u($dataPt, $pos + 4);
|
1233
|
-
$verbose and $
|
1233
|
+
$verbose and $et->VerboseDir('Property Info', $numEntries, $size);
|
1234
1234
|
if ($pos + 8 + 8 * $numEntries > $dirEnd) {
|
1235
|
-
$
|
1235
|
+
$et->Warn('Truncated property list');
|
1236
1236
|
last;
|
1237
1237
|
}
|
1238
1238
|
my $index;
|
@@ -1262,7 +1262,7 @@ sub ProcessProperties($$$)
|
|
1262
1262
|
$name =~ s/(^| )([a-z])/\U$2/g; # start with uppercase
|
1263
1263
|
$name =~ tr/-_a-zA-Z0-9//dc; # remove illegal characters
|
1264
1264
|
next unless length $name;
|
1265
|
-
$
|
1265
|
+
$et->VPrint(0, "$$et{INDENT}\[adding $name]\n") if $verbose;
|
1266
1266
|
AddTagToTable($tagTablePtr, $tag, { Name => $name });
|
1267
1267
|
}
|
1268
1268
|
next;
|
@@ -1273,8 +1273,8 @@ sub ProcessProperties($$$)
|
|
1273
1273
|
$tag = $dictionary{$tag};
|
1274
1274
|
$custom = 1;
|
1275
1275
|
}
|
1276
|
-
my @vals = ReadFPXValue($
|
1277
|
-
@vals or $
|
1276
|
+
my @vals = ReadFPXValue($et, $dataPt, $valPos, $type, $dirEnd, undef, $codePage);
|
1277
|
+
@vals or $et->Warn('Error reading property value');
|
1278
1278
|
$val = @vals > 1 ? \@vals : $vals[0];
|
1279
1279
|
my $format = $type & 0x0fff;
|
1280
1280
|
my $flags = $type & 0xf000;
|
@@ -1286,25 +1286,25 @@ sub ProcessProperties($$$)
|
|
1286
1286
|
if (not $custom and ($tag == 1 or $tag == 0x80000000)) {
|
1287
1287
|
# get tagInfo from SummaryInfo table
|
1288
1288
|
my $summaryTable = GetTagTable('Image::ExifTool::FlashPix::SummaryInfo');
|
1289
|
-
$tagInfo = $
|
1289
|
+
$tagInfo = $et->GetTagInfo($summaryTable, $tag);
|
1290
1290
|
if ($tag == 1) {
|
1291
1291
|
$val += 0x10000 if $val < 0; # (may be incorrectly stored as int16s)
|
1292
1292
|
$codePage = $val; # save code page for translating values
|
1293
1293
|
}
|
1294
1294
|
} elsif ($$tagTablePtr{$tag}) {
|
1295
|
-
$tagInfo = $
|
1295
|
+
$tagInfo = $et->GetTagInfo($tagTablePtr, $tag);
|
1296
1296
|
} elsif ($$tagTablePtr{VARS} and not $custom) {
|
1297
1297
|
# mask off insignificant bits of tag ID if necessary
|
1298
1298
|
my $masked = $$tagTablePtr{VARS};
|
1299
1299
|
my $mask;
|
1300
1300
|
foreach $mask (keys %$masked) {
|
1301
1301
|
if ($masked->{$mask}->{$tag & $mask}) {
|
1302
|
-
$tagInfo = $
|
1302
|
+
$tagInfo = $et->GetTagInfo($tagTablePtr, $tag & $mask);
|
1303
1303
|
last;
|
1304
1304
|
}
|
1305
1305
|
}
|
1306
1306
|
}
|
1307
|
-
$
|
1307
|
+
$et->HandleTag($tagTablePtr, $tag, $val,
|
1308
1308
|
DataPt => $dataPt,
|
1309
1309
|
Start => $valStart,
|
1310
1310
|
Size => $valPos - $valStart,
|
@@ -1315,7 +1315,7 @@ sub ProcessProperties($$$)
|
|
1315
1315
|
);
|
1316
1316
|
}
|
1317
1317
|
# issue warning if we hit end of property section prematurely
|
1318
|
-
$
|
1318
|
+
$et->Warn('Truncated property data') if $index < $numEntries;
|
1319
1319
|
last unless $$dirInfo{Multi};
|
1320
1320
|
$pos += $size;
|
1321
1321
|
}
|
@@ -1354,14 +1354,14 @@ sub LoadChain($$$$$)
|
|
1354
1354
|
# Returns: 1 on success
|
1355
1355
|
sub ProcessFPXR($$$)
|
1356
1356
|
{
|
1357
|
-
my ($
|
1357
|
+
my ($et, $dirInfo, $tagTablePtr) = @_;
|
1358
1358
|
my $dataPt = $$dirInfo{DataPt};
|
1359
1359
|
my $dirStart = $$dirInfo{DirStart};
|
1360
1360
|
my $dirLen = $$dirInfo{DirLen};
|
1361
|
-
my $verbose = $
|
1361
|
+
my $verbose = $et->Options('Verbose');
|
1362
1362
|
|
1363
1363
|
if ($dirLen < 13) {
|
1364
|
-
$
|
1364
|
+
$et->Warn('FPXR segment to small');
|
1365
1365
|
return 0;
|
1366
1366
|
}
|
1367
1367
|
|
@@ -1370,19 +1370,19 @@ sub ProcessFPXR($$$)
|
|
1370
1370
|
|
1371
1371
|
if ($type == 1) { # a "Contents List" segment
|
1372
1372
|
|
1373
|
-
$vers != 0 and $
|
1374
|
-
if ($$
|
1375
|
-
$
|
1376
|
-
delete $$
|
1373
|
+
$vers != 0 and $et->Warn("Untested FPXR version $vers");
|
1374
|
+
if ($$et{FPXR}) {
|
1375
|
+
$et->Warn('Multiple FPXR contents lists');
|
1376
|
+
delete $$et{FPXR};
|
1377
1377
|
}
|
1378
1378
|
my $numEntries = unpack('x7n', $$dataPt);
|
1379
1379
|
my @contents;
|
1380
|
-
$verbose and $
|
1380
|
+
$verbose and $et->VerboseDir('Contents List', $numEntries);
|
1381
1381
|
my $pos = 9;
|
1382
1382
|
my $entry;
|
1383
1383
|
for ($entry = 0; $entry < $numEntries; ++$entry) {
|
1384
1384
|
if ($pos + 4 > $dirLen) {
|
1385
|
-
$
|
1385
|
+
$et->Warn('Truncated FPXR contents');
|
1386
1386
|
return 0;
|
1387
1387
|
}
|
1388
1388
|
my ($size, $default) = unpack("x${pos}Na", $$dataPt);
|
@@ -1391,14 +1391,14 @@ sub ProcessFPXR($$$)
|
|
1391
1391
|
# (very odd, since the size word is big-endian),
|
1392
1392
|
# and the first char must be '/'
|
1393
1393
|
unless ($$dataPt =~ m{\G(/\0(..)*?)\0\0}sg) {
|
1394
|
-
$
|
1394
|
+
$et->Warn('Invalid FPXR stream name');
|
1395
1395
|
return 0;
|
1396
1396
|
}
|
1397
1397
|
# convert stream pathname to ascii
|
1398
1398
|
my $name = Image::ExifTool::Decode(undef, $1, 'UCS2', 'II', 'Latin');
|
1399
1399
|
if ($verbose) {
|
1400
1400
|
my $psize = ($size == 0xffffffff) ? 'storage' : "$size bytes";
|
1401
|
-
$
|
1401
|
+
$et->VPrint(0," | $entry) Name: '$name' [$psize]\n");
|
1402
1402
|
}
|
1403
1403
|
# remove directory specification
|
1404
1404
|
$name =~ s{.*/}{}s;
|
@@ -1406,7 +1406,7 @@ sub ProcessFPXR($$$)
|
|
1406
1406
|
my $classID;
|
1407
1407
|
if ($size == 0xffffffff) {
|
1408
1408
|
unless ($$dataPt =~ m{(.{16})}sg) {
|
1409
|
-
$
|
1409
|
+
$et->Warn('Truncated FPXR storage class ID');
|
1410
1410
|
return 0;
|
1411
1411
|
}
|
1412
1412
|
# unpack class ID in case we want to use it sometime
|
@@ -1422,15 +1422,15 @@ sub ProcessFPXR($$$)
|
|
1422
1422
|
ClassID => $classID,
|
1423
1423
|
};
|
1424
1424
|
}
|
1425
|
-
# save contents list as $
|
1425
|
+
# save contents list as $et member variable
|
1426
1426
|
# (must do this last so we don't save list on error)
|
1427
|
-
$$
|
1427
|
+
$$et{FPXR} = \@contents;
|
1428
1428
|
|
1429
1429
|
} elsif ($type == 2) { # a "Stream Data" segment
|
1430
1430
|
|
1431
1431
|
# get the contents list index and stream data offset
|
1432
1432
|
my ($index, $offset) = unpack('x7nN', $$dataPt);
|
1433
|
-
my $fpxr = $$
|
1433
|
+
my $fpxr = $$et{FPXR};
|
1434
1434
|
if ($fpxr and $$fpxr[$index]) {
|
1435
1435
|
my $obj = $$fpxr[$index];
|
1436
1436
|
# extract stream data (after 13-byte header)
|
@@ -1444,17 +1444,17 @@ sub ProcessFPXR($$$)
|
|
1444
1444
|
if ($pad >= 0) {
|
1445
1445
|
if ($pad) {
|
1446
1446
|
if ($pad > 0x10000) {
|
1447
|
-
$
|
1447
|
+
$et->Warn("Bad FPXR stream offset ($offset)");
|
1448
1448
|
} else {
|
1449
1449
|
# pad with default value to specified offset
|
1450
|
-
$
|
1450
|
+
$et->Warn("Padding FPXR stream with $pad default bytes",1);
|
1451
1451
|
$$obj{Stream} .= ($$obj{Default} x $pad);
|
1452
1452
|
}
|
1453
1453
|
}
|
1454
1454
|
# concatenate data with this stream
|
1455
1455
|
$$obj{Stream} .= substr($$dataPt, $dirStart+13);
|
1456
1456
|
} else {
|
1457
|
-
$
|
1457
|
+
$et->Warn("Duplicate FPXR stream data at offset $offset");
|
1458
1458
|
substr($$obj{Stream}, $offset, -$pad) = substr($$dataPt, $dirStart+13);
|
1459
1459
|
}
|
1460
1460
|
}
|
@@ -1462,62 +1462,62 @@ sub ProcessFPXR($$$)
|
|
1462
1462
|
my $len = length $$obj{Stream};
|
1463
1463
|
if ($len >= $$obj{Size}) {
|
1464
1464
|
if ($verbose) {
|
1465
|
-
$
|
1465
|
+
$et->VPrint(0, " + [FPXR stream, Contents index $index, $len bytes]\n");
|
1466
1466
|
}
|
1467
1467
|
if ($len > $$obj{Size}) {
|
1468
|
-
$
|
1468
|
+
$et->Warn('Extra data in FPXR segment (truncated)');
|
1469
1469
|
$$obj{Stream} = substr($$obj{Stream}, 0, $$obj{Size});
|
1470
1470
|
}
|
1471
1471
|
my $tag = $$obj{Name};
|
1472
1472
|
my $tagInfo;
|
1473
1473
|
unless ($$tagTablePtr{$tag}) {
|
1474
1474
|
# remove instance number or class ID from tag if necessary
|
1475
|
-
$tagInfo = $
|
1475
|
+
$tagInfo = $et->GetTagInfo($tagTablePtr, $1) if
|
1476
1476
|
($tag =~ /(.*) \d{6}$/s and $$tagTablePtr{$1}) or
|
1477
1477
|
($tag =~ /(.*)_[0-9a-f]{16}$/s and $$tagTablePtr{$1});
|
1478
1478
|
}
|
1479
1479
|
# save the data for this tag
|
1480
|
-
$
|
1480
|
+
$et->HandleTag($tagTablePtr, $tag, $$obj{Stream},
|
1481
1481
|
DataPt => \$$obj{Stream},
|
1482
1482
|
TagInfo => $tagInfo,
|
1483
1483
|
);
|
1484
1484
|
delete $$obj{Stream}; # done with this stream
|
1485
1485
|
}
|
1486
1486
|
# hack for improperly stored FujiFilm PreviewImage (stored with no contents list)
|
1487
|
-
} elsif ($index == 512 and $dirLen > 60 and ($$
|
1487
|
+
} elsif ($index == 512 and $dirLen > 60 and ($$et{FujiPreview} or
|
1488
1488
|
($dirLen > 64 and substr($$dataPt, $dirStart+60, 4) eq "\xff\xd8\xff\xdb")))
|
1489
1489
|
{
|
1490
1490
|
# recombine PreviewImage, skipping unknown 60 byte header
|
1491
|
-
if ($$
|
1492
|
-
$$
|
1491
|
+
if ($$et{FujiPreview}) {
|
1492
|
+
$$et{FujiPreview} .= substr($$dataPt, $dirStart+60);
|
1493
1493
|
} else {
|
1494
|
-
$$
|
1494
|
+
$$et{FujiPreview} = substr($$dataPt, $dirStart+60);
|
1495
1495
|
}
|
1496
1496
|
} else {
|
1497
1497
|
# (Kodak uses index 255 for a free segment in images from some cameras)
|
1498
|
-
$
|
1498
|
+
$et->Warn("Unlisted FPXR segment (index $index)") if $index != 255;
|
1499
1499
|
}
|
1500
1500
|
|
1501
1501
|
} elsif ($type ne 3) { # not a "Reserved" segment
|
1502
1502
|
|
1503
|
-
$
|
1503
|
+
$et->Warn("Unknown FPXR segment (type $type)");
|
1504
1504
|
|
1505
1505
|
}
|
1506
1506
|
|
1507
1507
|
# clean up if this was the last FPXR segment
|
1508
1508
|
if ($$dirInfo{LastFPXR}) {
|
1509
|
-
if ($$
|
1509
|
+
if ($$et{FPXR}) {
|
1510
1510
|
my $obj;
|
1511
1511
|
my $i = 0;
|
1512
|
-
foreach $obj (@{$$
|
1513
|
-
$
|
1512
|
+
foreach $obj (@{$$et{FPXR}}) {
|
1513
|
+
$et->Warn("Missing stream for FPXR object $i") if defined $$obj{Stream};
|
1514
1514
|
++$i;
|
1515
1515
|
}
|
1516
|
-
delete $$
|
1516
|
+
delete $$et{FPXR}; # delete our temporary variables
|
1517
1517
|
}
|
1518
|
-
if ($$
|
1519
|
-
$
|
1520
|
-
delete $$
|
1518
|
+
if ($$et{FujiPreview}) {
|
1519
|
+
$et->FoundTag('PreviewImage', $$et{FujiPreview});
|
1520
|
+
delete $$et{FujiPreview};
|
1521
1521
|
}
|
1522
1522
|
}
|
1523
1523
|
return 1;
|
@@ -1558,7 +1558,7 @@ sub SetDocNum($$;$$$)
|
|
1558
1558
|
# Returns: 1 on success, 0 if this wasn't a valid FPX-format file
|
1559
1559
|
sub ProcessFPX($$)
|
1560
1560
|
{
|
1561
|
-
my ($
|
1561
|
+
my ($et, $dirInfo) = @_;
|
1562
1562
|
my $raf = $$dirInfo{RAF};
|
1563
1563
|
my ($buff, $out, %dumpParms, $oldIndent, $miniStreamBuff);
|
1564
1564
|
my ($tag, %hier, %objIndex);
|
@@ -1569,14 +1569,14 @@ sub ProcessFPX($$)
|
|
1569
1569
|
return 0 unless $buff =~ /^\xd0\xcf\x11\xe0\xa1\xb1\x1a\xe1/;
|
1570
1570
|
|
1571
1571
|
# set FileType initially based on file extension (we may override this later)
|
1572
|
-
my $fileType =
|
1572
|
+
my $fileType = $$et{FILE_EXT};
|
1573
1573
|
$fileType = 'FPX' unless $fileType and $fpxFileType{$fileType};
|
1574
|
-
$
|
1574
|
+
$et->SetFileType($fileType);
|
1575
1575
|
SetByteOrder(substr($buff, 0x1c, 2) eq "\xff\xfe" ? 'MM' : 'II');
|
1576
1576
|
my $tagTablePtr = GetTagTable('Image::ExifTool::FlashPix::Main');
|
1577
|
-
my $verbose = $
|
1577
|
+
my $verbose = $et->Options('Verbose');
|
1578
1578
|
# copy LargeFileSupport option to RAF for use in LoadChain
|
1579
|
-
$$raf{LargeFileSupport} = $
|
1579
|
+
$$raf{LargeFileSupport} = $et->Options('LargeFileSupport');
|
1580
1580
|
|
1581
1581
|
my $sectSize = 1 << Get16u(\$buff, 0x1e);
|
1582
1582
|
my $miniSize = 1 << Get16u(\$buff, 0x20);
|
@@ -1589,7 +1589,7 @@ sub ProcessFPX($$)
|
|
1589
1589
|
my $difCount = Get32u(\$buff, 0x48); # number of DIF sectors
|
1590
1590
|
|
1591
1591
|
if ($verbose) {
|
1592
|
-
$out = $
|
1592
|
+
$out = $et->Options('TextOut');
|
1593
1593
|
$dumpParms{Out} = $out;
|
1594
1594
|
$dumpParms{MaxLen} = 96 if $verbose == 3;
|
1595
1595
|
print $out " Sector size=$sectSize\n FAT: Count=$fatCount\n";
|
@@ -1614,7 +1614,7 @@ sub ProcessFPX($$)
|
|
1614
1614
|
unless ($raf->Seek($offset, 0) and
|
1615
1615
|
$raf->Read($fatSect, $sectSize) == $sectSize)
|
1616
1616
|
{
|
1617
|
-
$
|
1617
|
+
$et->Error("Error reading FAT from sector $sect");
|
1618
1618
|
return 1;
|
1619
1619
|
}
|
1620
1620
|
$fat .= $fatSect;
|
@@ -1624,7 +1624,7 @@ sub ProcessFPX($$)
|
|
1624
1624
|
# read next DIF (Dual Indirect FAT) sector
|
1625
1625
|
my $offset = $difStart * $sectSize + HDR_SIZE;
|
1626
1626
|
unless ($raf->Seek($offset, 0) and $raf->Read($buff, $sectSize) == $sectSize) {
|
1627
|
-
$
|
1627
|
+
$et->Error("Error reading DIF sector $difStart");
|
1628
1628
|
return 1;
|
1629
1629
|
}
|
1630
1630
|
# set end of sector information in this DIF
|
@@ -1634,7 +1634,7 @@ sub ProcessFPX($$)
|
|
1634
1634
|
$difStart = Get32u(\$buff, $endPos);
|
1635
1635
|
}
|
1636
1636
|
if ($fatCountCheck != $fatCount) {
|
1637
|
-
$
|
1637
|
+
$et->Warn("Bad number of FAT sectors (expected $fatCount but found $fatCountCheck)");
|
1638
1638
|
}
|
1639
1639
|
#
|
1640
1640
|
# load the mini-FAT and the directory
|
@@ -1642,7 +1642,7 @@ sub ProcessFPX($$)
|
|
1642
1642
|
my $miniFat = LoadChain($raf, $miniStart, \$fat, $sectSize, HDR_SIZE);
|
1643
1643
|
my $dir = LoadChain($raf, $dirStart, \$fat, $sectSize, HDR_SIZE);
|
1644
1644
|
unless (defined $miniFat and defined $dir) {
|
1645
|
-
$
|
1645
|
+
$et->Error('Error reading mini-FAT or directory stream');
|
1646
1646
|
return 1;
|
1647
1647
|
}
|
1648
1648
|
if ($verbose) {
|
@@ -1657,9 +1657,9 @@ sub ProcessFPX($$)
|
|
1657
1657
|
# process the directory
|
1658
1658
|
#
|
1659
1659
|
if ($verbose) {
|
1660
|
-
$oldIndent =
|
1661
|
-
|
1662
|
-
$
|
1660
|
+
$oldIndent = $$et{INDENT};
|
1661
|
+
$$et{INDENT} .= '| ';
|
1662
|
+
$et->VerboseDir('FPX', undef, length $dir);
|
1663
1663
|
}
|
1664
1664
|
my $miniStream;
|
1665
1665
|
$endPos = length($dir);
|
@@ -1672,7 +1672,7 @@ sub ProcessFPX($$)
|
|
1672
1672
|
my $type = Get8u(\$dir, $pos + 0x42);
|
1673
1673
|
next if $type == 0; # skip invalid entries
|
1674
1674
|
if ($type > 5) {
|
1675
|
-
$
|
1675
|
+
$et->Warn("Invalid directory entry type $type");
|
1676
1676
|
last; # rest of directory is probably garbage
|
1677
1677
|
}
|
1678
1678
|
# get entry name (note: this is supposed to be length in 2-byte
|
@@ -1690,7 +1690,7 @@ sub ProcessFPX($$)
|
|
1690
1690
|
unless ($miniStream) {
|
1691
1691
|
$miniStreamBuff = LoadChain($raf, $sect, \$fat, $sectSize, HDR_SIZE);
|
1692
1692
|
unless (defined $miniStreamBuff) {
|
1693
|
-
$
|
1693
|
+
$et->Warn('Error loading Mini-FAT stream');
|
1694
1694
|
last;
|
1695
1695
|
}
|
1696
1696
|
$miniStream = new File::RandomAccess(\$miniStreamBuff);
|
@@ -1698,10 +1698,10 @@ sub ProcessFPX($$)
|
|
1698
1698
|
|
1699
1699
|
my $tagInfo;
|
1700
1700
|
if ($$tagTablePtr{$tag}) {
|
1701
|
-
$tagInfo = $
|
1701
|
+
$tagInfo = $et->GetTagInfo($tagTablePtr, $tag);
|
1702
1702
|
} else {
|
1703
1703
|
# remove instance number or class ID from tag if necessary
|
1704
|
-
$tagInfo = $
|
1704
|
+
$tagInfo = $et->GetTagInfo($tagTablePtr, $1) if
|
1705
1705
|
($tag =~ /(.*) \d{6}$/s and $$tagTablePtr{$1}) or
|
1706
1706
|
($tag =~ /(.*)_[0-9a-f]{16}$/s and $$tagTablePtr{$1});
|
1707
1707
|
}
|
@@ -1738,7 +1738,7 @@ sub ProcessFPX($$)
|
|
1738
1738
|
}
|
1739
1739
|
unless (defined $buff) {
|
1740
1740
|
my $name = $tagInfo ? $$tagInfo{Name} : 'unknown';
|
1741
|
-
$
|
1741
|
+
$et->Warn("Error reading $name stream");
|
1742
1742
|
$buff = '';
|
1743
1743
|
}
|
1744
1744
|
} elsif ($typeStr eq 'ROOT') {
|
@@ -1755,7 +1755,7 @@ sub ProcessFPX($$)
|
|
1755
1755
|
$extra .= " Left=$lSib" unless $lSib == FREE_SECT;
|
1756
1756
|
$extra .= " Right=$rSib" unless $rSib == FREE_SECT;
|
1757
1757
|
$extra .= " Child=$chld" unless $chld == FREE_SECT;
|
1758
|
-
$
|
1758
|
+
$et->VerboseInfo($tag, $tagInfo,
|
1759
1759
|
Index => $index,
|
1760
1760
|
Value => $buff,
|
1761
1761
|
DataPt => \$buff,
|
@@ -1764,7 +1764,7 @@ sub ProcessFPX($$)
|
|
1764
1764
|
);
|
1765
1765
|
}
|
1766
1766
|
if ($tagInfo and $buff) {
|
1767
|
-
my $num = $$
|
1767
|
+
my $num = $$et{NUM_FOUND};
|
1768
1768
|
my $subdir = $$tagInfo{SubDirectory};
|
1769
1769
|
if ($subdir) {
|
1770
1770
|
my %dirInfo = (
|
@@ -1774,21 +1774,21 @@ sub ProcessFPX($$)
|
|
1774
1774
|
Multi => $$tagInfo{Multi},
|
1775
1775
|
);
|
1776
1776
|
my $subTablePtr = GetTagTable($$subdir{TagTable});
|
1777
|
-
$
|
1777
|
+
$et->ProcessDirectory(\%dirInfo, $subTablePtr, $$subdir{ProcessProc});
|
1778
1778
|
} else {
|
1779
|
-
$
|
1779
|
+
$et->FoundTag($tagInfo, $buff);
|
1780
1780
|
}
|
1781
1781
|
# save object index number for all found tags
|
1782
|
-
my $num2 = $$
|
1782
|
+
my $num2 = $$et{NUM_FOUND};
|
1783
1783
|
$objIndex{++$num} = $index while $num < $num2;
|
1784
1784
|
}
|
1785
1785
|
}
|
1786
1786
|
# set document numbers for tags extracted from embedded documents
|
1787
|
-
unless ($$
|
1787
|
+
unless ($$et{DOC_NUM}) {
|
1788
1788
|
# initialize document number for all objects, beginning at root (index 0)
|
1789
1789
|
SetDocNum(\%hier, 0);
|
1790
1790
|
# set family 3 group name for all tags in embedded documents
|
1791
|
-
my $order = $$
|
1791
|
+
my $order = $$et{FILE_ORDER};
|
1792
1792
|
my (@pri, $copy, $member);
|
1793
1793
|
foreach $tag (keys %$order) {
|
1794
1794
|
my $num = $$order{$tag};
|
@@ -1796,18 +1796,18 @@ sub ProcessFPX($$)
|
|
1796
1796
|
my $obj = $hier{$objIndex{$num}} or next;
|
1797
1797
|
my $docNums = $$obj{DocNum};
|
1798
1798
|
next unless $docNums and @$docNums;
|
1799
|
-
$$
|
1799
|
+
$$et{TAG_EXTRA}{$tag}{G3} = join '-', @$docNums;
|
1800
1800
|
push @pri, $tag unless $tag =~ / /; # save keys for priority sub-doc tags
|
1801
1801
|
}
|
1802
1802
|
# swap priority sub-document tags with main document tags if they exist
|
1803
1803
|
foreach $tag (@pri) {
|
1804
1804
|
for ($copy=1; ;++$copy) {
|
1805
1805
|
my $key = "$tag ($copy)";
|
1806
|
-
last unless defined $$
|
1807
|
-
my $extra = $$
|
1806
|
+
last unless defined $$et{VALUE}{$key};
|
1807
|
+
my $extra = $$et{TAG_EXTRA}{$key};
|
1808
1808
|
next if $extra and $$extra{G3}; # not Main if family 3 group is set
|
1809
1809
|
foreach $member ('PRIORITY','VALUE','FILE_ORDER','TAG_INFO','TAG_EXTRA') {
|
1810
|
-
my $pHash = $$
|
1810
|
+
my $pHash = $$et{$member};
|
1811
1811
|
my $t = $$pHash{$tag};
|
1812
1812
|
$$pHash{$tag} = $$pHash{$key};
|
1813
1813
|
$$pHash{$key} = $t;
|
@@ -1816,16 +1816,16 @@ sub ProcessFPX($$)
|
|
1816
1816
|
}
|
1817
1817
|
}
|
1818
1818
|
}
|
1819
|
-
|
1819
|
+
$$et{INDENT} = $oldIndent if $verbose;
|
1820
1820
|
# try to better identify the file type
|
1821
|
-
if ($$
|
1822
|
-
my $val = $$
|
1821
|
+
if ($$et{VALUE}{FileType} eq 'FPX') {
|
1822
|
+
my $val = $$et{CompObjUserType} || $$et{Software};
|
1823
1823
|
if ($val) {
|
1824
1824
|
my %type = ( Word => 'DOC', PowerPoint => 'PPT', Excel => 'XLS' );
|
1825
1825
|
my $pat;
|
1826
1826
|
foreach $pat (sort keys %type) {
|
1827
1827
|
next unless $val =~ /$pat/;
|
1828
|
-
$
|
1828
|
+
$et->OverrideFileType($type{$pat});
|
1829
1829
|
last;
|
1830
1830
|
}
|
1831
1831
|
}
|